cianmawhinney / homelab

The IaC configuration for the services running on my homelab
0 stars 0 forks source link

IaC Homelab Configuration

CI Deploy

Originally based on David Stephen's ansible-nas.

Future Plans

This repository is currently undergoing a revamp. At present the Ansible playbook is the only section ready for use.

Goals for the repo:

Additionally, one of the longer term goals is to eventually migrate away from spinning up individual containers 'orchestrated' (term used loosely) by the Ansible playbook. At the beginning when deployment was against a single host this worked well, though as more and more services have been added, deployment times have increased significantly. A further annoyance is how containers have to be manually namespaced to avoid conflicts and how links between containers can feel flimsy at times.

Kubernetes looks like a good fit to help with these problems, even if it is a tad overkill for hosting the services for 1 user.

Disclaimer

I don't recommend you use this repository, it's intended to be purely a reference (and probably not even a very good one at that).

The configuration sets up services the way I like them I like them. At a miniumum, you'll need to override some variables (especially secrets/passwords).

Services

Usage

Before running, the following is necessary:

data_dir: ~/docker_data
homelab_domain: "example.com"
letsencrypt_email: "admin@example.com"
media_dir: /path/to/media

The playbook also depends on the geerlingguy.pip and geerlingguy.docker roles. These can be installed by running:

ansible-galaxy install -r requirements.yml

Running everything

ansible-playbook -i inventory main.yml