Go to file
2019-07-01 21:41:49 -06:00
.gitlab/merge_request_templates Adding contributing guidelines 2019-05-29 07:37:40 -06:00
bin removing commit statements 2019-06-27 01:00:04 +00:00
docs Merge 2019-07-01 08:54:37 -06:00
group_vars Adding apache 2019-06-11 21:40:53 -06:00
host_vars Terraform, tinc tweaks and fixes 2019-06-09 18:13:58 -06:00
package_template Linty 2019-06-11 21:44:57 -06:00
roles Pihole fix 2019-07-01 21:41:49 -06:00
src/gitlab.com/nickbusey/homelabosCtl Adding Go files, updating Dockerfile 2019-06-12 08:56:25 -06:00
static Static assets 2019-05-29 16:23:49 +00:00
.gitignore Adding Go files, updating Dockerfile 2019-06-12 08:56:25 -06:00
.gitlab-ci.yml Upgrade Ansible Docker container to python 3.7.3 2019-06-12 23:09:58 -04:00
.yamllint Added yamllint and refactored the gitlab-ci 2018-11-12 22:00:17 -05:00
CHANGELOG.md Adding apache 2019-06-11 21:40:53 -06:00
check_version.sh Moves to Ansible ipTables plugin 2019-04-19 16:22:54 +00:00
config_inventory Renaming setup role to config for clarity 2019-01-24 10:24:12 -07:00
config.yml.blank Config 2018-11-20 14:06:37 -07:00
docker_helper.sh Terraform, docker fixes 2019-05-31 21:20:10 -06:00
Dockerfile Upgrade Ansible Docker container to python 3.7.3 2019-06-12 23:09:58 -04:00
Gemfile Gemfile 2019-06-05 04:16:03 +00:00
Gemfile.lock Gemfile 2019-06-05 04:16:03 +00: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
LICENSE Initial commit 2018-06-03 22:12:21 -06:00
Makefile Merge 2019-07-01 08:54:37 -06:00
mkdocs.yml Adding apache 2019-06-11 21:40:53 -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 Removing passwordless sudo requirement 2019-05-23 08:58:03 -06:00
playbook.homelabos.yml Adding 2019-04-23 09:27:59 -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 Adding apache 2019-06-11 21:40:53 -06:00
restore.yml Makefile improvements, git_sync improvements 2019-05-22 22:36:22 -06:00
save_setting.sh Terraform, docker fixes 2019-05-31 21:20:10 -06:00
terraform.sh Terraform, tinc tweaks and fixes 2019-06-09 18:13:58 -06:00
test_hosts Ran yaml files through yamllint 2018-11-12 21:50:36 -05:00
Vagrantfile Closes #106 - Replacing all hardcoded passwords with Ansible generated passwords 2019-04-24 08:42:17 -06:00
VERSION v0.6.4 pi deployment fixes 2019-06-07 14:56:13 -06:00
yamllint.conf Improving Tinc docs, linting 2019-06-09 21:07:24 -06:00

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
  • Automated Backups
  • Easy Restore
  • Automated Apple Health Data import
  • Automated Tor Onion Service access
  • Automated HTTPS via LetsEncrypt
  • Automated Settings Sync
  • OpenVPN
  • OpenLDAP
  • Cloud Bastion Server with Tinc 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
  • 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
  • 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.
  • Mailserver - Fully featured mail server
  • 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
  • Plex - Personal Media Server
  • Portainer - Easy Docker management
  • Radarr - Automated movie downloading
  • SickChill - SickChill is an automatic Video Library Manager for TV Shows.
  • Sonarr - Automated TV downloading
  • 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
  • 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:

  • Ubuntu 18.04 and passwordless SSH via SSH keys

Another computer with:

  • Docker

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

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.