|
||
---|---|---|
docs | ||
hosts | ||
roles | ||
secrets | ||
systems | ||
.gitignore | ||
.sops.yaml | ||
README.md | ||
authorized_keys | ||
config.nix | ||
example_secrets.yaml | ||
flake.lock | ||
flake.nix | ||
hosts.nix | ||
utils.nix |
README.md
Home lab configuration
The nix based configuration for my home lab.
Deploying a new VM
- Create a clone of the template VM in proxmox.
- Change cloud-init config of the clone to contain the new IP address.
- Create the configuration file in the
hosts/
folder. - Make sure the IPs match between the configuration file and the cloud-init config.
- Create a secrets file with
sops edit secrets/HOSTNAME.yml
and put all required secrets in there. - Commit changes to git.
- Start the VM.
- Deploy the configuration with
colmena apply HOSTNAME
. - (Optional) If the VM requires an update to traefik run
colmena apply
to update all hosts.
Updating packages
- Run
nix flake update
. - Commit the changes to git.
- Run
colmena apply
.
File Organization
- hosts/ # Host definitions files
- roles/ # Role definition files
- secrets/ # Encrypted secrets for each host
- systems/base/ # Base system configuration shared by all hosts
- confgi.nix # Global configuration options
TODO:
Services
For sure:
-
FreshRSS: RSS server/reader
-
Gramps: Family tree
-
hoarder: Bookmark manager
-
immich: Fotos
-
Jellyfin: Watching media files
-
Nextcloud: Files, contacts, calendar, etc
-
Pterodactyl panel: Game servers
-
Pterodactyl wings: Backend daemon for game servers
-
Vaultwarden: Password manager
-
Forgejo actions runner:
Needs to run over VPN:
- Prowlarr:
- Radarr:
- Lidarr:
- Sonarr:
- Transmission: Torrent clients (Different client maybe?)
Websites: Might want to look at using something to host these + other self hosted projects like coolify on its own machine
- kallestruik.nl
- dchat.kallestruik.nl
- dconfig.kallestruik.nl
- shs.khs.li
- shs-gc.khs.li
Maybe:
- Hedgedoc: Shared markdown note editing
- Linkwarden: Shared link collections
- Mastodon: Federated social media
- Matrix: Federated chat
- Paperless: Document storage
- Stirling PDF: PDF tools
Monitoring: Currently grafana for dashboard with other things supplying data into it. Might want to look at some options before using it again.
Bastion:
- VPN
- SSH jumphost to the rest of the network