Nix flake managing 5 VM-based services on my homelab hypervisor https://cumsek.com
  • Nix 94.2%
  • JavaScript 3.7%
  • Shell 2.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-01 13:39:27 +01:00
.claude graft 2026-09-26 02:39:22 +02:00
.forgejo/workflows work 2026-09-21 00:04:39 +02:00
custom revert: undo the c72389c system refactor 2026-10-02 19:57:45 +02:00
hosts fix(cum-media): run immich 3 from unstable 2026-11-01 13:36:45 +01:00
nixos revert: undo the c72389c system refactor 2026-10-02 19:57:45 +02:00
users revert: undo the c72389c system refactor 2026-10-02 19:57:45 +02:00
.gitignore sp 2026-10-01 00:53:53 +02:00
.ignore graft 2026-09-26 02:39:22 +02:00
.mcp.json graft 2026-09-26 02:39:22 +02:00
.secrets.yaml feat(secrets): add the rakazo database and app secrets 2026-10-22 23:51:41 +02:00
.sops.yaml pull 2026-07-30 12:57:34 +02:00
AGENTS.md graft 2026-09-26 02:39:22 +02:00
alejandra.toml pull 2026-07-30 12:57:34 +02:00
cum pull 2026-07-30 12:57:34 +02:00
cum.nix feat(cum-tools): deploy rakazo at bot.cumsek.com 2026-10-22 23:48:46 +02:00
deploy.sh revert: undo the c72389c system refactor 2026-10-02 19:57:45 +02:00
flake.lock up 2026-11-01 13:01:39 +01:00
flake.nix revert: undo the c72389c system refactor 2026-10-02 19:57:45 +02:00
opencode.json sp 2026-10-01 00:53:53 +02:00
README.md revert: undo the c72389c system refactor 2026-10-02 19:57:45 +02:00

Cumsek

Nix flake managing 5 VM-based services on my homelab hypervisor (cumsek, 192.168.1.200).

Hosts

Host IP vCPU RAM Role
cum-services .201 2 4G Reverse proxy (Angie/nginx), PostgreSQL, SearXNG, Vaultwarden, n8n
cum-media .202 6 8G Nextcloud+Collabora, Immich, Audiobookshelf, Paperless, Miniflux, Mealie, Microbin, Radicale, *arr stack
cum-games .203 4 8G Minecraft servers: voocraft, voolovesbuilding, mine
cum-sites .204 2 4G Custom web apps (nails, wysi727)
cum-tools .205 8 54G Forgejo+Gitea Actions, llama-swap (9 models), Open WebUI, LiteLLM, social-extract

All VMs share NFS from the hypervisor, run on NixOS 25.05, use systemd-boot + btrfs + disko for partitioning, and expose services through the central reverse proxy on cum-services.

URLs

  • git.cumsek.com — Forgejo (Git hosting + CI)
  • chat.cumsek.com — Open WebUI (LLM chat)
  • ai.cumsek.com — LiteLLM (API proxy/router)
  • search.cumsek.com — SearXNG (private search)
  • passwd.cumsek.com — Vaultwarden (passwords)
  • n8n.cumsek.com — n8n (automation)
  • drive.cumsek.com — Nextcloud (file sync)
  • photos.cumsek.com — Immich (photos)
  • listen.cumsek.com — Audiobookshelf
  • cook.cumsek.com — Mealie (recipes)
  • papers.cumsek.com — Paperless-ngx (documents)
  • rss.cumsek.com — Miniflux (RSS)
  • dav.cumsek.com — Radicale (CalDAV/CardDAV)
  • bin.cumsek.com — Microbin (pastebin)
  • nails.m4rti.dev, wysi727.com — Custom sites
  • collabora.cumsek.com — Collabora Online (Nextcloud integration)

Usage

cum CLI

Installed system-wide on all VMs.

cum switch [machine]          Rebuild and switch (default: current host)
cum deploy <machine> [host]   Deploy locally, or remotely via nixos-anywhere
cum test <machine>             Build toplevel derivation
cum mksecret <keypath>        Convert SSH key to age key
cum secrets                    Edit .secrets.yaml with sops
cum llama-hash                Prefetch llama.cpp hash

Machine short names: services, media, games, sites, tools.

deploy.sh

Legacy script for local deployment:

./deploy.sh <machine>

Secrets

Managed with sops-nix and age encryption. Key at /etc/age/cumsek.key. Edit with cum secrets.

Flake Inputs

Input Source
nixpkgs nixos-25.11
nixpkgs-unstable nixos-unstable
home-manager release-25.11 (follows nixpkgs)
disko nix-community/disko (follows nixpkgs)
sops-nix Mic92/sops-nix (follows nixpkgs)
nix-minecraft Infinidoge/nix-minecraft (follows nixpkgs)
llama.cpp ggml-org/llama.cpp

Users

User Shell Home-manager
m4rti zsh Yes (neovim, tmux, git, etc.)
tumse zsh Yes
cumsek zsh No
root zsh No

SSH-key auth only (m4rti has key; password auth disabled globally).

Structure

├── cum                  # CLI tool (installed system-wide)
├── cum.nix              # Central config (hosts, ports, helpers)
├── deploy.sh            # Legacy deployment script
├── flake.nix            # Entry point; defines 5 NixOS configurations
├── hosts/
│   ├── cum-services/    # Reverse proxy, DB, password manager, automation
│   ├── cum-media/       # Media, documents, recipes, calendar
│   ├── cum-games/       # Minecraft servers
│   ├── cum-sites/       # Custom web apps
│   └── cum-tools/       # AI inference, Git hosting, CI
├── nixos/               # Shared modules (boot, network, hardware, services)
├── users/               # User definitions (m4rti, tumse, cumsek, root)
├── custom/              # Optional modules (sdcpp.nix for stable-diffusion)
└── .secrets.yaml        # Encrypted secrets (age/sops)