Go to file
kalle 756b3dd576 Cleanup README 2025-02-16 14:11:01 +01:00
docs Unmanaged host documentation 2025-02-16 14:10:20 +01:00
hosts Add forgejo role 2025-02-16 13:05:00 +01:00
roles Add todo to forgejo about backing up data 2025-02-16 13:52:38 +01:00
secrets Add forgejo role 2025-02-16 13:05:00 +01:00
systems Cleanup old stuff 2025-02-05 20:10:24 +01:00
.gitignore This should fix it I hope 2024-12-26 20:48:00 +01:00
.sops.yaml Add PC secret keys 2025-02-06 18:54:24 +01:00
README.md Cleanup README 2025-02-16 14:11:01 +01:00
authorized_keys Add PC to authorized keys 2025-02-03 16:58:21 +01:00
config.nix Add non managed hosts 2025-02-05 16:27:50 +01:00
example_secrets.yaml Add forgejo role 2025-02-16 13:05:00 +01:00
flake.lock Add sops-nix 2024-12-26 19:41:49 +01:00
flake.nix Add postgres role 2025-02-12 01:02:15 +01:00
hosts.nix Add non managed hosts 2025-02-05 16:27:50 +01:00
utils.nix Add non managed hosts 2025-02-05 16:27:50 +01:00

README.md

Home lab configuration

The nix based configuration for my home lab.

Deploying a new VM

  1. Create a clone of the template VM in proxmox.
  2. Change cloud-init config of the clone to contain the new IP address.
  3. Create the configuration file in the hosts/ folder.
  4. Make sure the IPs match between the configuration file and the cloud-init config.
  5. Create a secrets file with sops edit secrets/HOSTNAME.yml and put all required secrets in there.
  6. Commit changes to git.
  7. Start the VM.
  8. Deploy the configuration with colmena apply HOSTNAME.
  9. (Optional) If the VM requires an update to traefik run colmena apply to update all hosts.

Updating packages

  1. Run nix flake update.
  2. Commit the changes to git.
  3. 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