PVV's multimachine nixos setup
  • Nix 74.3%
  • PHP 19.7%
  • Python 3.4%
  • Rust 2%
  • Just 0.4%
  • Other 0.2%
Find a file
2026-08-13 03:19:55 +02:00
.gitea/workflows .gitea/workflows/*: remove redundant config 2026-05-06 23:34:22 +09:00
assets Add PVV logo to repository 2023-09-07 18:39:21 +02:00
base mitigations: unpatch matrix-synapse 2026-08-13 03:19:55 +02:00
docs update gpg install cmd for secrets 2026-02-07 21:12:03 +01:00
hosts drolsum: unalive 2026-08-03 10:29:28 +02:00
keys keys/oysteikt: update 2025-08-03 02:25:57 +02:00
modules modules/python-http-handlers: better daemon handling 2026-07-27 13:50:19 +02:00
packages packages/bluemap: 5.20 -> 5.22 2026-08-06 20:41:18 +09:00
secrets secrets: add passwords for gatus dbms checkers 2026-07-21 18:44:51 +09:00
shells shells/cuda: fix deprecated package attr warnings 2026-05-24 15:23:33 +09:00
topology drolsum: unalive 2026-08-03 10:29:28 +02:00
users user/vegardbm: change shell to zsh and add ssh key 2026-06-08 11:35:44 +02:00
.editorconfig editorconfig: init 2024-08-04 04:35:25 +02:00
.envrc direnv: yes 2024-08-04 01:19:22 +02:00
.git-blame-ignore-revs add .git-blame-ignore-revs 2024-08-04 04:39:17 +02:00
.gitignore justfile: add recipe run-vm 2024-08-14 17:25:55 +02:00
.mailmap .mailmap: further dedup 2026-01-27 04:07:25 +09:00
.sops.yaml temmie/userweb: inject users from passwd into httpd sandbox 2026-06-07 05:28:24 +09:00
flake.lock mitigations: unpatch matrix-synapse 2026-08-13 03:19:55 +02:00
flake.nix flake.lock: bump roowho2 2026-07-28 06:45:28 +09:00
justfile justfile: update 'update-inputs' to changed nix3 cli, make more robust to dirty tree 2025-05-30 19:17:59 +02:00
README.md Update README.md 2026-08-07 22:52:31 +02:00
shell.nix flake.nix: add disko to default devshell 2026-01-27 18:35:18 +09:00
statix.toml statix: init 2024-08-04 01:45:20 +02:00
values.nix lupine5/openvpn: init 2026-07-05 01:31:15 +09:00

PVV NixOS config

This repository contains the NixOS configurations for Programvareverkstedet's server closet. In addition to machine configurations, it also contains a bunch of shared modules, packages, and more.

Warning

Please read Development - working on the PVV machines before making any changes, and Secret management and sops-nix before adding any credentials such as passwords, API tokens, etc. to the configuration.

Deploying to machines

Warning

Be careful to think about state when testing changes against the machines. Sometimes, a certain change can lead to irreversible changes to the data stored on the machine. An example would be a set of database migrations applied when testing a newer version of a service. Unless that service also comes with downwards migrations, you can not go back to the previous version without losing data.

To deploy the changes to a machine, you should first SSH into the machine, and clone the pvv-nixos-config repository unless you have already done so. After that, checkout the branch you want to deploy from, and rebuild:

# Run this while in the pvv-nixos-config directory
sudo nixos-rebuild switch --update-input nixpkgs --update-input nixpkgs-unstable --no-write-lock-file --refresh --flake .# --upgrade

This will rebuild the NixOS system on the current branch and switch the system configuration to reflect the new changes.

Note that unless you eventually merge the current changes into main, the machine will rebuild itself automatically and revert the changes on the next nightly rebuild (tends to happen when everybody is asleep).

Machine overview

Name Type Description
bekkalokk Physical Our main web host, webmail, wiki, idp, ...
bicep Virtual Database host, matrix, git mirrors, ...
bikkje Virtual Experimental login box
brzeczyszczykiewicz Physical Shared music player
georg Physical Shared music player
gluttony Virtual General purpose compute, minecraft map
ildkule Virtual Logging and monitoring host, prometheus, grafana, ...
kommode Virtual Gitea + Gitea pages
lupine Physical Gitea CI/CD runners
shark Virtual Test host for authentication, absolutely horrendous
skrot Physical Kiosk, snacks and soda
temmie Virtual User websites
wenche Virtual Nix-builders, general purpose compute

Documentation