Planned · the template is the design

A server, written down.

Setting up a VPS properly takes dozens of commands and an afternoon, and none of it is written down. vpsthing is one Nix flake instead.

How it works Built by Rytter

# a human, not root
users.users.admin = {
isNormalUser = true;
extraGroups = [ "wheel" ];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1… you@laptop"
];
};
# keys only, checked at build time
services.openssh = {
enable = true;
settings.PermitRootLogin = "no";
settings.PasswordAuthentication = false;

Features

The runbook, as lines in a file.

  • Checked before it ships

    The ssh config is validated when the system is built, so a typo fails on your laptop.

  • Closed unless listed

    The firewall is on by default, and admin comes in over Tailscale with no port to open.

  • It patches itself

    Nightly, the box rebuilds from the repository and reboots if it has to.

How it works

The parts of iacthing that fit on one box.

  1. 1

    Template

    One command writes a flake that already carries every step of the runbook.

  2. 2

    Edit

    Your key, your app and your secret are the whole edit, and the secret is encrypted before it is saved.

  3. 3

    Up

    One command takes a stock box you can reach as root and leaves it running exactly this system.

Who built it

Built by Rytter.

I'm Jakob Rytter. I build software and run it, from the server to the screen, and vpsthing is the one-box version of how mine run.

rytter.it All the things