Your very own offline-first open-source data-center!
Beta Software
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.
Documentation
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
- Automated Backups
- Easy Restore
- Automated Apple Health Data import
- Automated Tor Onion Service access
- Automated HTTPS via LetsEncrypt
- OpenVPN
- Cloud Bastion Server with Tinc VPN
Planned Features
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.
Included Software
- Bitwarden - Password and secrets manager via bitwarden-rs
- Darksky - Local weather reported via darksky-influxdb
- Dasher - Amazon Dash button support
- Documentation - Offline, searchable documentation via MkDocs
- Emby - Media player
- Firefly III - Money management budgeting app
- Gitea - Git hosting
- Grafana - Pretty graphs
- Home Assistant - Home Automation
- InfluxDB - Time series data storage
- Jackett - API Support for your favorite torrent trackers (helps Sonarr and Radarr)
- Kibitzr - IFTTT replacement
- Koel - Music streaming server that works
- Matomo - Web analytics
- Minio - S3 hosting
- Miniflux - Miniflux is a minimalist and opinionated feed reader.
- Monica - Contact / relationship manager
- NextCloud - Private Cloud Storage, Calendar, Contacts, etc.
- Organizr - Access all your HomelabOS services in one easy place.
- Paperless - Document management
- Pi-hole - Ad blocking
- Portainer - Easy Docker management
- Radarr - Automated movie downloading
- Sonarr - Automated TV downloading
- Telegraf - Server statistics reporting
- The Lounge - Always-on IRC client (IRC bouncer)
- Transmission - BitTorrent client
Requirements
A server with:
- 8G of RAM (to run all services, you can disable a bunch potentially and run with less memory)
- Ubuntu 18.04
- Passwordless SSH (with ssh keys)
- A user that has passwordless sudo
Ansible version 2.5+ installed on your computer (not the server).
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.
Installation
Support
- File an issue
- Ask a question on Reddit
- Chat on irc.freenode.net in #homelabos
Contributing
Please do!
Developing Locally
Run make develop
to spin up a local instance inside a Vagrant machine. If you make changes to the Ansible scripts you can run make provision
to run them again.
Working locally on the documentation
Follow the MkDocs Material Theme setup directions.
Then run mkdocs serve
.
To build changes to the docs run make docs
.