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-nixbefore 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, minecraft map, ... |
| bicep | Virtual | Database host, matrix, git mirrors, ... |
| bikkje | Virtual | Experimental login box |
| brzeczyszczykiewicz | Physical | Shared music player |
| georg | Physical | Shared music player |
| 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 |
| wenche | Virtual | Nix-builders, general purpose compute |