No description
  • Nix 86.8%
  • HCL 12.5%
  • Shell 0.5%
  • CSS 0.2%
Find a file
2024-01-13 11:29:00 -03:00
.github/workflows chore: Initial commit 2023-12-11 19:31:19 -03:00
group_vars feat(terraform-nix): Add traefik config files 2024-01-13 11:20:57 -03:00
host_vars/proxmox1 chore: Initial commit 2023-12-11 19:31:19 -03:00
inventory chore: Initial commit 2023-12-11 19:31:19 -03:00
roles@df3eb03c55 chore: Update roles submodule 2023-12-31 10:35:43 -03:00
scripts chore: Initial commit 2023-12-11 19:31:19 -03:00
terraform-k3s chore: Initial commit 2023-12-11 19:31:19 -03:00
terraform-nix feat(terraform-nix): Add traefik config files 2024-01-13 11:20:57 -03:00
.envrc.example chore: Initial commit 2023-12-11 19:31:19 -03:00
.gitignore chore: Initial commit 2023-12-11 19:31:19 -03:00
.gitmodules chore: Initial commit 2023-12-11 19:31:19 -03:00
.pre-commit-config.yaml chore: Initial commit 2023-12-11 19:31:19 -03:00
ansible.cfg chore: Initial commit 2023-12-11 19:31:19 -03:00
CHANGELOG.md chore(main): release 0.2.0 2024-01-13 14:24:03 +00:00
docker.yml chore: Initial commit 2023-12-11 19:31:19 -03:00
flake.lock chore: Initial commit 2023-12-11 19:31:19 -03:00
flake.nix chore: Initial commit 2023-12-11 19:31:19 -03:00
LICENSE chore: Initial commit 2023-12-11 19:31:19 -03:00
main.yml chore: Initial commit 2023-12-11 19:31:19 -03:00
README.md chore: Initial commit 2023-12-11 19:31:19 -03:00
requirements.txt Merge pull request #5 from lpchaim/dependabot/pip/cryptography-41.0.6 2024-01-13 11:28:09 -03:00
requirements.yml chore: Initial commit 2023-12-11 19:31:19 -03:00

Homelab

Declarative home server deployment and management powered by Terraform, Ansible and Nix.

About

This is a collection of tools to manage my personal home server/NAS setup, still very much a WIP. Right now, all it really does is setup some services and configurations through Ansible. On the Nix side, it also generates proxmox-ready images! nix build outputs a basic, ready to use Proxmox LXC template. The outputs also build specific LXC images Terraform is able to deploy, only caddy has been implemented so far.

I've been working on this in private for a while, and didn't originally intend to make it public. I've since changed my mind but that does mean it's a bit rough, not very cohesive, with stray commented blocks here and there and whatnot. That said, I'm always working on it one way or another and it's only going to improve from here!

General layout

Storage

A variety of disks powered by MergerFS + Snapraid. Services access said storage through a mixture of NFS and LXC mount points.

Backups of critical data are performed daily to a Hetzner storage box. No local backup yet.

Services

Everything runs on a single Proxmox host as of now. It's a pretty standard build with and Intel CPU for QSV encoding.

The following are all LXC containers:

  • Caddy - Reverse proxy, also keeps DNS records updated
  • Docker - Runs smaller, non critical workloads. Auto updates through Watchtower.
  • Jellyfin Media server
  • Nextcloud
  • Tailscale

Planned enhancements

  • Experiment with migrating all docker workloads, plus possibly Jellyfin and Nextcloud, to a simple kubernetes cluster for more robust declarativeness.
  • Make Proxmox infrastructure declarative. Although some configuration has been automated, all of the LXCs are created manually right now.