From 42ebc501c357d848d270b3c8d251e9dcccdecaa8 Mon Sep 17 00:00:00 2001 From: Dan Date: Sat, 10 Jan 2026 15:58:06 -0800 Subject: [PATCH] Document NixOS 24.11 upgrade impact analysis MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Key findings: - PostgreSQL defaults to 16 (must pin to 15) - Forgejo 7.0→9.0 (review release notes, backup DB) - conduwuit discontinued (we use continuwuity fork, OK) - mautrix-slack, nginx, ACME: no breaking changes Co-Authored-By: Claude Opus 4.5 --- docs/nixos-24.11-upgrade-notes.md | 109 ++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 docs/nixos-24.11-upgrade-notes.md diff --git a/docs/nixos-24.11-upgrade-notes.md b/docs/nixos-24.11-upgrade-notes.md new file mode 100644 index 0000000..7b9b2aa --- /dev/null +++ b/docs/nixos-24.11-upgrade-notes.md @@ -0,0 +1,109 @@ +# NixOS 24.11 Upgrade Notes for ops-jrz1 + +Review completed: 2026-01-10 + +## Summary + +| Component | Impact | Action Required | +|-----------|--------|-----------------| +| PostgreSQL | HIGH | Pin to v15 before upgrade | +| Forgejo | MEDIUM | Review 8.0/9.0 release notes | +| Matrix (continuwuity) | NONE | Already using the fork | +| mautrix-slack | NONE | No breaking changes | +| nginx | NONE | We don't use gd/geoip | +| Python | LOW | Monitor maubot | +| ACME | NONE | No changes | + +## PostgreSQL + +**Change:** Default version bumped from 15 to 16. PostgreSQL 12 removed. + +**Risk:** If we upgrade without pinning, PostgreSQL will upgrade to 16 which requires `pg_upgrade` or dump/restore. + +**Action:** Pin to PostgreSQL 15 before upgrade (task 7qg): +```nix +services.postgresql.package = pkgs.postgresql_15; +``` + +**Other changes:** +- `enableSystemd` → `systemdSupport` (we don't override this) +- `initdbArgs` now shell-escaped (shouldn't affect us) +- Hardened systemd settings by default (good) + +## Forgejo + +**Change:** Major upgrade path 7.0 → 9.0 (skipping 8.0). + +**Breaking changes:** +- `services.forgejo.mailerPasswordFile` deprecated → use `services.forgejo.secrets.mailer.PASSWD` +- Package defaults to `forgejo-lts` now +- PAM authentication removed (we don't use it) + +**Action:** We don't use mailer, so no config changes needed. But should review: +- [Forgejo 8.0 release notes](https://forgejo.org/releases/) +- [Forgejo 9.0 release notes](https://forgejo.org/releases/) + +**Risk:** Database migrations run automatically. Backup before upgrade. + +## Matrix (conduwuit → continuwuity) + +**Change:** Upstream conduwuit discontinued in April 2025. Repository deleted. + +**Impact on us:** NONE - we already use `matrix-continuwuity` which is the community fork. + +**Note:** conduwuit package marked vulnerable in nixpkgs, will be removed in 25.11. Our config already uses the correct fork. + +## mautrix-slack + +**Change:** No breaking changes documented for 24.11. + +**Note:** The NixOS module may have been added/improved in this cycle. Our custom module should continue to work. + +**Related:** mautrix-meta (Facebook/Instagram) updated to 0.4 with breaking changes, but we don't use it. + +## nginx + +**Change:** `gd` and `geoip` dependencies removed from default build. + +**Impact:** NONE - we don't use image filter or GeoIP features. + +**If needed later:** +```nix +services.nginx.package = pkgs.nginx.override { + withImageFilter = true; + withGeoIP = true; +}; +``` + +## Python + +**Change:** `override` and `overrideDerivation` removed from buildPythonPackage in favor of `overridePythonAttrs`. + +**Impact:** LOW - affects package overrides, not runtime. Maubot should work fine. + +**Monitor:** If maubot plugins fail to build, may need adjustment. + +## systemd + +**Change:** cgroup v1 considered obsolete. `systemd.enableUnifiedCgroupHierarchy` option removed. + +**Impact:** NONE - we use cgroup v2 (default). + +## ACME / Let's Encrypt + +**Change:** No breaking changes. + +## Pre-Upgrade Checklist + +- [ ] Pin PostgreSQL to v15 (task 7qg) +- [ ] Take verified backup (task asi) - **DONE: B2 backups operational** +- [ ] Review Forgejo 8.0/9.0 release notes for database migrations +- [ ] Note current NixOS generation number for rollback +- [ ] Test upgrade in VM if possible + +## Sources + +- [NixOS 24.11 Release Notes](https://nixos.org/manual/nixos/stable/release-notes) +- [NixOS 24.11 Announcement](https://nixos.org/blog/announcements/2024/nixos-2411/) +- [nixpkgs release notes source](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2411.section.md) +- [conduwuit deprecation PR](https://github.com/NixOS/nixpkgs/pull/397902)