Your very own offline-first privacy-centric open-source data-center! https://homelabos.com/
  • Jinja 69.8%
  • CSS 12.6%
  • PHP 6.4%
  • HTML 3.3%
  • Makefile 2.1%
  • Other 5.8%
Find a file
ssa d2103a9ea1 Update README with comprehensive project information
Generated automatically with structured sections (overview, project structure, installation, usage, contributing, license, repository links). Original README content preserved under "Original README".
2026-04-27 20:37:38 +00:00
.gitlab/merge_request_templates Adding contributing guidelines 2019-05-29 07:37:40 -06:00
bin moving from 'pages' to 'nav' in mkdocs 2019-09-11 15:29:31 +00:00
docs Adding Debian 10.3 to supported list 2020-04-09 11:18:03 -06:00
group_vars Working one-line install command 2020-04-08 12:42:10 -06:00
host_vars Removing tinc, wg fixes 2019-07-17 10:05:28 -06:00
package_template Update all ansible role files with configurable volumes_root 2020-03-23 15:13:17 -04:00
roles Closes #230 - Use ansible vault for secrets 2020-04-08 09:55:46 -06:00
src/gitlab.com/nickbusey/homelabosCtl Adding Go files, updating Dockerfile 2019-06-12 08:56:25 -06:00
static Formatting 2020-04-07 21:44:28 -06:00
website Adding showcase to homepage 2020-04-09 13:19:01 -06:00
.gitignore Merge resolution 2019-08-14 08:44:58 -06:00
.gitlab-ci.yml Disable docs 2020-04-08 15:06:35 -06:00
.yamllint Added yamllint and refactored the gitlab-ci 2018-11-12 22:00:17 -05:00
CHANGELOG.md One liner fix 2020-04-08 13:42:37 -06:00
check_version.sh Closes #199 2020-04-07 22:40:48 -06:00
config.yml.blank Config 2018-11-20 14:06:37 -07:00
config_inventory Renaming setup role to config for clarity 2019-01-24 10:24:12 -07:00
docker_helper.sh Closes #230 - Use ansible vault for secrets 2020-04-08 09:55:46 -06:00
Dockerfile Closes #230 - Use ansible vault for secrets 2020-04-08 09:55:46 -06:00
Gemfile Gemfile 2019-06-05 04:16:03 +00:00
Gemfile.lock Gemfile 2019-06-05 04:16:03 +00:00
get_setting.sh install_homelabos.sh 2019-08-21 09:00:00 -06:00
git_sync.sh Fixes git_sync.sh executable permission 2019-05-25 12:41:40 -07:00
homelaboslogo.txt Logo file colors 2019-05-19 22:45:05 -04:00
install_homelabos.sh Install script fix 2020-04-08 14:10:15 -06:00
LICENSE Initial commit 2018-06-03 22:12:21 -06:00
Makefile Vault fix 2020-04-09 10:47:23 -06:00
mkdocs.yml Merge branch 'luismanson/HomelabOS-searx' into HEAD 2020-04-07 21:32:28 -06:00
MOTD MOTD update 2019-04-23 09:01:11 -06:00
Pipfile Builds the docs on the target server 2019-01-14 09:06:33 +01:00
Pipfile.lock Merge pull request #1 from kebertxela/dependabot/pip/pyyaml-5.1 2019-05-28 09:12:47 -07:00
playbook.config.yml Working one-line install command 2020-04-08 12:42:10 -06:00
playbook.homelabos.yml Removing tinc, wg fixes 2019-07-17 10:05:28 -06:00
playbook.remove.yml Uninstall fixes 2019-05-22 08:34:34 -06:00
playbook.restart.yml Lint 2019-03-05 22:01:53 -07:00
playbook.terraform.yml Terraform, docker fixes 2019-05-31 21:20:10 -06:00
README.md Update README with comprehensive project information 2026-04-27 20:37:38 +00:00
restore.yml Makefile improvements, git_sync improvements 2019-05-22 22:36:22 -06:00
set_setting.sh set_setting now cleans up after itself 2020-04-09 11:09:38 -06:00
set_vault_pass.sh Closes #230 - Use ansible vault for secrets 2020-04-08 09:55:46 -06:00
terraform.sh #256 - Fix for jq error in make terraform 2019-10-25 08:41:24 -06:00
test_hosts Ran yaml files through yamllint 2018-11-12 21:50:36 -05:00
test_inventory Removing tinc, wg fixes 2019-07-17 10:05:28 -06:00
Vagrantfile Adding vagrant dev docs, fixing provisioning/DHCP 2020-03-05 13:11:06 -07:00
VERSION v0.6.4 pi deployment fixes 2019-06-07 14:56:13 -06:00
yamllint.conf Adding roadmap to readme, website dir to yamllint ignore list 2020-04-08 10:58:41 -06:00

HomelabOS

Your very own offline-first privacy-centric open-source data-center! https://homelabos.com/

Overview

Your very own offline-first open-source data-center! Includes over 50 services!

Detected project types: Python, Ruby, Docker, Make-based, Documentation.

At a glance

  • Default branch: dev
  • Visibility: public
  • Size: 9.2 MB
  • Created: 2026-04-27
  • Last updated: 2026-04-27
  • Stars / Forks / Open issues: 0 / 0 / 0
  • License: MIT

Languages

Language Bytes Share
Jinja 290,501 bytes 69.8%
CSS 52,531 bytes 12.6%
PHP 26,799 bytes 6.4%
HTML 13,602 bytes 3.3%
Makefile 8,766 bytes 2.1%
Go 6,182 bytes 1.5%
Ruby 5,502 bytes 1.3%
Python 4,520 bytes 1.1%
Shell 4,462 bytes 1.1%
Dockerfile 2,124 bytes 0.5%
JavaScript 1,149 bytes 0.3%

Repository structure

  • .gitlab/
  • bin/
  • docs/
  • group_vars/
  • host_vars/
  • package_template/
  • roles/
  • src/
  • static/
  • website/
  • .gitignore (189 B)
  • .gitlab-ci.yml (755 B)
  • .yamllint (593 B)
  • CHANGELOG.md (5,911 B)
  • check_version.sh (625 B)
  • config.yml.blank (62 B)
  • config_inventory (22 B)
  • docker_helper.sh (212 B)
  • Dockerfile (2,124 B)
  • Gemfile (167 B)
  • Gemfile.lock (653 B)
  • get_setting.sh (111 B)
  • git_sync.sh (261 B)
  • homelaboslogo.txt (5,969 B)
  • install_homelabos.sh (2,283 B)
  • LICENSE (1,067 B)
  • Makefile (8,766 B)
  • mkdocs.yml (3,058 B)
  • MOTD (209 B)
  • Pipfile (171 B)
  • Pipfile.lock (7,618 B)
  • playbook.config.yml (1,049 B)
  • playbook.homelabos.yml (1,197 B)
  • playbook.remove.yml (245 B)
  • playbook.restart.yml (107 B)
  • playbook.terraform.yml (192 B)
  • README.md (11,192 B)
  • restore.yml (160 B)
  • set_setting.sh (317 B)
  • set_vault_pass.sh (112 B)
  • terraform.sh (541 B)
  • test_hosts (23 B)
  • test_inventory (46 B)
  • Vagrantfile (816 B)
  • VERSION (5 B)
  • yamllint.conf (163 B)

Getting started

Clone the repository:

git clone https://forgejo.deployview.com/ssa/HomelabOS.git
cd HomelabOS

Installation

python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
bundle install
docker build -t image-name .
docker run --rm -it image-name
# or with compose
docker compose up -d
make

Usage

Invoke the main entry point:

python3 main.py    # or the appropriate module

After building, run the container with the command shown above. Mount volumes and forward ports as required by the application.

Original README

The content below is preserved from the previous README. Headings have been demoted so they don't compete with the new top-level sections.

HomelabOS

Your very own offline-first open-source data-center! Includes over 50 services!

Beta Software Warning

This software has not reached version 1.0 and should therefore be considered unstable. While any tagged version should work well on its own, a nice friendly upgrade path from one version to another is not guaranteed.

If you like getting your hands dirty in early versions of software, this is for you. If you prefer to wait till things are stable and friendly, maybe hold off for a while.

Also, if you trash your server or wreck your data, that's on you. Test your backups. Trust nothing.

Documentation

Installation

Summary

A set of Ansible scripts to configure a Docker based Homelab server with all sorts of goodies. Following the unix philosophy we gather together many specific tools to build the exact end result desired.

Goals

To make it easy for anyone to own all their data in an easy and secure way, without the need of cloud providers.

Features

  • One command deployment bash <(curl -s https://gitlab.com/NickBusey/HomelabOS/-/raw/dev/install_homelabos.sh)
  • Manual deployment - Installation
  • Automated Backups
  • Easy Restore
  • Automated Tor Onion Service access
  • Automated HTTPS via LetsEncrypt
  • Automated Settings Sync
  • OpenVPN
  • OpenLDAP
  • Cloud Bastion Server with WireGuard VPN

Planned Features

Installation Tutorial / Demo

Local Demo

If you have the latest version of Vagrant and Virtual Box setup you can demo things locally by running make develop. This will spin up a temporary developer copy on your local computer without needing an actual server to point things at. Note no data will actually be saved from inside the VM, so this is for testing only.

Available Software

  • Airsonic - Airsonic is a free, web-based media streamer, providing ubiquitous access to your music.
  • Apache - Web server
  • Authelia - Authelia is an open-source full-featured authentication server available on Github
  • Beets - Beets is the media library management system for obsessive-compulsive music geeks.
  • Bitwarden - Password and secrets manager via bitwarden-rs
  • BookStack - Simple & Free Wiki Software
  • BulletNotes - Note taking application
  • Calibre - Complete ebook library management.
  • Code-Server - Run VS Code on a remote server.
  • Darksky - Local weather reported via darksky-influxdb
  • Dasher - Amazon Dash button support
  • Digikam - Professional Photo Management with the Power of Open Source
  • Documentation - Offline, searchable documentation via MkDocs
  • Drone - Drone is a self-service continuous delivery platform
  • Emby - Personal Media Server
  • Firefly III - Money management budgeting app
  • FreshRSS - A free, self-hostable aggregator
  • Ghost - Ghost is a platform for building and running a modern online publication
  • Gitea - Git hosting
  • Grafana - Pretty graphs
  • Guacamole - a clientless remote desktop gateway
  • HealthChecks - A Cron Monitoring Tool written in Python & Django https://healthchecks.io
  • Home Assistant - Home Automation
  • HomeBridge - HomeKit support for the impatient
  • Homedash - Dashboard
  • InfluxDB - Time series data storage
  • Inventario - Home inventory management
  • Jackett - API Support for your favorite torrent trackers (helps Sonarr and Radarr)
  • Jellyfin - The Free Software Media System
  • Kibitzr - IFTTT replacement
  • Lidarr - Sonarr but for Music.
  • MStream - All your music, everywhere you go.
  • Mailserver - Fully featured mail server
  • Mailu - is a simple yet full-featured mail server as a set of Docker images.
  • Mashio - Home brewery management software
  • Matomo - Web analytics
  • Mayan EDMS - Free Open Source DMS (document management system).
  • Minio - S3 hosting
  • Miniflux - Miniflux is a minimalist and opinionated feed reader.
  • Monica - Contact / relationship manager
  • Mylar - An automated Comic Book manager
  • NetData - Monitor your systems and applications, the right way!
  • NextCloud - Private Cloud Storage, Calendar, Contacts, etc.
  • Ombi - Ombi is a self-hosted web application that automatically gives your shared Plex or Emby users the ability to request content by themselves!
  • Organizr - Access all your HomelabOS services in one easy place.
  • OwnPhotos Self hosted Google Photos clone.
  • Paperless - Document management
  • PhpLDAPadmin - LDAP management interface
  • Pi-hole - Ad blocking
  • Piwigo - Manage your photo collection
  • Pixelfed - A free and ethical photo sharing platform, powered by ActivityPub federation.
  • Plex - Personal Media Server
  • Poli - An easy-to-use BI server built for SQL lovers. Power data analysis in SQL and gain faster business insights.
  • Portainer - Easy Docker management
  • Radarr - Automated movie downloading
  • Searx - A privacy-respecting, hackable metasearch engine.
  • SickChill - SickChill is an automatic Video Library Manager for TV Shows.
  • Sonarr - Automated TV downloading
  • Speedtest - A tool to run periodic speedtests and save them in InfluxDB for graphing in Grafana
  • Syncthing - File syncing software
  • Tautulli - Monitor your Plex Server
  • Telegraf - Server statistics reporting
  • The Lounge - Always-on IRC client (IRC bouncer)
  • Transmission - BitTorrent client
  • Trilium - Build your personal knowledge base with Trilium Notes
  • Ubooquity - Ubooquity is a free home server for your comics and ebooks library
  • Wallabag - Save and classify articles. Read them later. Freely.
  • Watchtower - A process for automating Docker container base image updates
  • WebVirtMg is a complete Kernel Virtual Machine (KVM) hypervisor manager.
  • Wekan - Open source Kanban board with MIT license
  • Zulip - Threaded chat software

Requirements

A server with:

Another computer with:

  • Docker

Note: Two separate computers are not required, but are highly recommended. The idea is you have a server and then your personal computer, say a laptop or desktop. You deploy from your personal computer to the server. This way your settings are saved on your personal computer, and can be used to re-build the server and restore from backups if anything goes wrong.

Optional Items

Domain Name

A domain configured with a A type DNS record of *.yourdomain.com pointed at your server's IP address. (This is optional because you can use Tor to access your services without registering a domain. For best support from 3rd party clients an actual domain is highly recommended. Also certain services do not work through TOR at the moment.) Note you can hang this off a subdomain as well, so *.homelab.yourdomain.com will work as well.

Port Forwarding

Ports 80 and 443 punched through any firewalls and port forwarded at your server in question. (This is also optional due to Tor access, but again highly recommended.)

Cloud Bastion Server

Rather than pointing the domain at your home IP and having to manage DDNS, you can utilize a cloud server to act as a bastion host via Tinc vpn and nginx.

S3 Account

S3 is Amazon's Simple Storage Service which HomelabOS can optionally use to back up to. You can use Amazon's service, or one of many other S3 compatible providers. You can also back up to another HomelabOS instance if that other instance is running Minio, a self-hosted S3 service.

Installation

Roadmap

  • Actual OS bundle with everything pre-configured
  • Web interface to enable/disable services

Alternatives

Get Support

Give Support

Become a Supporter on Patreon

Contributing

Watch Live Development

You can watch live development of this project on Nick Busey's Twitch Stream.

Contributing

Contributions are welcome. The typical workflow is:

  1. Open an issue describing the change you'd like to make.
  2. Fork the repository (or create a feature branch if you have write access).
  3. Commit your changes with clear, descriptive messages.
  4. Open a pull request against the dev branch.

Please follow the existing code style and include tests or reproduction steps where relevant.

License

This project is licensed under the MIT license. See the LICENSE file for the full text.

Repository


This README was generated automatically based on repository metadata, contents, and any prior README content. Edit any section above to add project-specific detail.