Harden server and add Nix-native CI + self-hosted Gitea Actions
CI / flake-check (aarch64-linux) (push) Failing after 8s
CI / flake-check (x86_64-linux) (push) Failing after 2s
CI / pre-commit (aarch64-linux) (push) Failing after 2s
CI / pre-commit (x86_64-linux) (push) Failing after 2s

- caddy: security headers (X-Content-Type-Options/X-XSS-Protection/
  X-Frame-Options) on all vhosts + baseline CSP; strip SnappyMail
  upstream copies via header_down on mail.severijnse.eu
- tlsa-updater: compute TLSA 3 1 1 from cert SPKI (SHA-256), sync
  _25/_465/_993, fail-safe placeholders; coredns zone updated
- pre-commit: wire cachix/git-hooks.nix (alejandra, statix, actionlint,
  ...); CI pre-commit job over x86_64 + aarch64 matrix
- gitea: enable Gitea Actions + self-hosted runner (native:host,
  aarch64 via binfmt); add .gitea/workflows/ci.yml and local hook
- fix statix warnings (merge repeated systemd/database/configFile keys,
  inherit, bool-compare guards); add missing trailing newlines
This commit is contained in:
2026-07-12 00:05:13 +02:00
parent c5f771bd53
commit 7ed54e51a2
23 changed files with 336 additions and 147 deletions
+10 -7
View File
@@ -45,8 +45,8 @@ jobs:
- name: Flake check (${{ matrix.system }})
run: nix flake check --no-build --system ${{ matrix.system }}
format:
name: Formatting check (${{ matrix.system }})
pre-commit:
name: Pre-commit checks (${{ matrix.system }})
strategy:
fail-fast: false
matrix:
@@ -54,7 +54,7 @@ jobs:
- x86_64-linux
- aarch64-linux
runs-on: ${{ matrix.system == 'aarch64-linux' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
timeout-minutes: 10
timeout-minutes: 20
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
@@ -65,7 +65,10 @@ jobs:
extra_nix_config: |
experimental-features = nix-command flakes
# alejandra is the configured formatter (flake.nix perSystem.formatter).
# Checked per-system so both architectures stay formatted.
- name: Formatting check (${{ matrix.system }})
run: nix run .#formatter.${{ matrix.system }} -- --check .
# Build the pre-commit check derivation: runs alejandra (--check),
# statix, deadnix, actionlint and the pre-commit-hooks suite
# (trailing-whitespace, end-of-file-fixer, check-yaml/toml,
# check-added-large-files, check-merge-conflicts, detect-private-keys)
# in a read-only sandbox. Fails the build on any reported problem.
- name: Pre-commit checks (${{ matrix.system }})
run: nix build .#checks.${{ matrix.system }}.pre-commit