No description
Find a file
2026-03-28 20:52:09 -07:00
modules fix: website to working webhooks version 2026-03-26 20:23:47 -07:00
secrets feat: remove mymx and fix caddy update 2026-03-25 22:24:44 -07:00
.envrc feat: migrate to agenix for secret management 2026-03-09 19:57:15 -07:00
.gitignore feat: create mymx service 2026-03-04 15:08:44 -08:00
agenix.nix feat: remove mymx and fix caddy update 2026-03-25 22:24:44 -07:00
configuration.nix fix: website to working webhooks version 2026-03-26 20:23:47 -07:00
disk-config.nix initial commit 2026-02-16 21:29:21 -08:00
flake.lock update: update website 2026-03-28 20:52:09 -07:00
flake.nix feat: remove mymx and fix caddy update 2026-03-25 22:24:44 -07:00
README.md feat: migrate to agenix for secret management 2026-03-09 19:57:15 -07:00

extremist software

nixos config for the hetzner vps.

services:

  • forgejo (git.extremist.software)
  • stalwart (mail.extremist.software)
  • searxng (search.extremist.software)
  • synapse (matrix.extremist.software)
  • grafana/prometheus (status.extremist.software)
  • uptime-kuma (uptime.extremist.software)
  • ntfy (ntfy.extremist.software)
  • mymx (mymx.extremist.software)
  • caddy (reverse proxy + rate limiting)
  • fail2ban

Deployment

Secrets are managed with agenix — encrypted in git, decrypted on the server at runtime.

1. Setup Secrets

Key mapping is in agenix.nix. The agenix CLI and RULES env var are provided by the devShell via direnv.

direnv allow
agenix -e secrets/forgejo-db.age
agenix -e secrets/stalwart-admin.age
agenix -e secrets/searx-env.age            # SEARXNG_SECRET=<value>
agenix -e secrets/tailscale-key.age
agenix -e secrets/grafana-secret.age
agenix -e secrets/matrix-macaroon.age      # macaroon_secret_key: "<value>"
agenix -e secrets/ntfy-admin-hash.age
agenix -e secrets/mymx-webhook.age

To edit an existing secret, run the same command again.

2. Verify Configuration

nix flake check

3. Initial Install (Wipe & Install)

Warning: Wipes the server disk.

nix run github:nix-community/nixos-anywhere -- --store-paths \
  $(nix build path:.#nixosConfigurations.extremist-software.config.system.build.diskoScript --print-out-paths --no-link) \
  $(nix build path:.#nixosConfigurations.extremist-software.config.system.build.toplevel --print-out-paths --no-link) \
  root@<TARGET_IP> | tee install.log

4. Update Existing Server

nhs and nh are provided via direnv.

nhs