Commit graph

11 commits

Author SHA1 Message Date
steffen
c45a603d1c replace deploy-rs CI with Comin pull-based deployment
- Add Comin service for cryodev-main (polls git repo, auto-deploys)
- Fix cryodev-pi Comin URL (cryodev-server.git -> cryodev.git)
- Remove deploy-rs from CI pipeline (was insecure with shared runner)
- Remove deploy SSH key, root SSH login, sudo rules for gitea-runner
- Revert PermitRootLogin back to 'no'
- CI now only runs flake-check + build (no deploy)
- Deployment happens via Comin (both hosts poll and self-deploy)
2026-03-14 14:43:15 +01:00
steffen
402086b374 move deploy key to host config, add ralph and benjamin users
- Move forgejo-deploy pubkey from users/steffen to hosts/cryodev-main/
  (deploy key belongs to the host, not a user)
- Remove deploy key from steffen's authorized keys
- Add users ralph and benjamin (pubkeys pending)
- Register both new users in cryodev-main host config
2026-03-14 14:15:40 +01:00
steffen
92abe2574d enable root SSH key-only login for deploy-rs
- Change PermitRootLogin from 'no' to 'prohibit-password' (key-only)
- Add forgejo-deploy public key to root's authorized_keys
- Revert deploy-rs user back to root (needs root for activation)

Root can only login via SSH key, password auth remains disabled.
2026-03-14 14:13:26 +01:00
steffen
5225974c2a fix headplane: disable strict config validation
NixOS headscale module generates a minimal config.yaml with only
explicitly set values. Headplane with config_strict=true rejects this
because fields like database, derp, dns, listen_addr are missing
(headscale fills these with internal defaults). Setting config_strict
to false makes headplane tolerate the incomplete config.
2026-03-14 13:25:59 +01:00
steffen
da219a52ec fix forgejo-runner: use local URL instead of public FQDN
Runner on the same host cannot reach Forgejo via the public HTTPS URL
during boot (ACME certs not ready, nginx not fully up). Use the local
HTTP endpoint instead.
2026-03-14 12:52:46 +01:00
steffen
82f3be3b9d fix forgejo-runner token: use SOPS template with TOKEN= prefix
The gitea-actions-runner NixOS module expects tokenFile to be an
EnvironmentFile containing TOKEN=<value>, but sops-nix writes only
the raw secret value. Use a sops template to prepend TOKEN= prefix.
2026-03-14 12:43:07 +01:00
steffen
4c560abffd split forgejo-runner into own service file for staged deployment
- Extract forgejo-runner config from forgejo.nix into forgejo-runner.nix
- Move forgejo-runner to stage 2 (requires running Forgejo for token)
- Remove all stage-2 secrets from sops.nix (each service file owns its secrets)
- Update first-install docs with corrected staged deployment flow
- Fixes deployment failure caused by runner crashing with placeholder token
2026-03-14 12:22:33 +01:00
steffen
728edd0036 updated pubkey for server, reenabled services, updated docs 2026-03-14 11:19:48 +01:00
steffen
304afdc0d4 prepearing first installations 2026-03-14 10:44:36 +01:00
steffen
5ba78886d2 Add SD image pipeline, documentation overhaul, and fix module issues
- Add automatic SD image builds for Raspberry Pi via Forgejo Actions
- Enable binfmt emulation on cryodev-main for aarch64 cross-builds
- Add sd-image.nix module to cryodev-pi configuration
- Create comprehensive docs/ structure with installation guides
- Split installation docs into: first-install (server), reinstall, new-client (Pi)
- Add lib/utils.nix and apps/rebuild from synix
- Fix headplane module for new upstream API (tale/headplane)
- Fix various module issues (mailserver stateVersion, option conflicts)
- Add placeholder secrets.yaml files for both hosts
- Remove old INSTRUCTIONS.md (content moved to docs/)
2026-03-11 08:41:58 +01:00
stherm
430194beda Initial commit 2026-03-06 08:31:13 +01:00