PVV's multimachine nixos setup
  • Nix 75.1%
  • PHP 19.1%
  • Python 3.3%
  • Rust 1.9%
  • Just 0.4%
  • Other 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-04 19:57:26 +09: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 base/logrotate: use zst 2026-09-04 19:57:26 +09:00
docs update gpg install cmd for secrets 2026-02-07 21:12:03 +01:00
hosts bicep/coturn: host cert challenges through nginx 2026-09-04 18:53:35 +09:00
keys keys/oysteikt: update 2025-08-03 02:25:57 +02:00
modules revert a285e6df71 2026-08-30 18:40:53 +02:00
packages update ooye 2026-08-24 11:14:40 +02:00
secrets sops: update keys 2026-09-04 17:16:37 +09:00
shells shells/cuda: fix deprecated package attr warnings 2026-05-24 15:23:33 +09:00
topology flake.lock: bump greg-ng 2026-08-25 17:46:48 +09:00
users frero: add new laptop key 2026-08-26 09:53:31 +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 sops: add bicep-hardware with bicep secrets 2026-09-04 17:16:37 +09:00
flake.lock flake.lock: bump dibbler 2026-08-30 16:53:13 +09:00
flake.nix bicep: set up hardware disks with disko 2026-09-04 17:16:35 +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 Revert "values: temporary ip address change" 2026-09-04 17:16:39 +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