Skip to content

The IaC configuration for the services running on my homelab

Notifications You must be signed in to change notification settings

cianmawhinney/homelab

Repository files navigation

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:

  • Pre-build VM images for faster deployments
  • Continuous deployment using immutable infrastructure
  • Tightening up on security for secrets (move away from a vars.yml file 👀)
  • Documentation & diagrams

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:

  • An an inventory file needs to be created containing the desired host
  • The file vars.yml needs to be created to set the following variables:
data_dir: ~/docker_data
homelab_domain: "example.com"
letsencrypt_email: "[email protected]"
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

About

The IaC configuration for the services running on my homelab

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors 3

  •  
  •  
  •