The catalogue

System

Base packages, sized swap, memory guard, a dev user with sudo, zsh, tmux, git identity, the dev command.

Module
core.system
Category
Base

What it installs

  • Base packages — curl, git, jq, tmux, zsh, unzip, build-essential, ufw, fail2ban — the time zone you pick, and unattended security updates that never reboot the machine on their own.
  • A swap file sized for the RAM — 2 GB, 4 GB above eight of memory — a memory guard, systemd-oomd or earlyoom, and raised inotify limits so a watcher does not run out of them mid-build.
  • A dev user with sudo, whose authorized_keys receives the unrestricted keys already on root, so a key opens it before hardening closes root.
  • zsh as the login shell, a tmux configuration, and OSC 133 prompt markers in zsh and bash that let the app tell one command from the next.
  • The agent’s own systemd unit, and the dev command, linked to the agent binary, so the same operations exist in a plain SSH terminal.

What it asks you for

  • The time zone.
  • The git name and email the server commits under.
  • The directory your projects live in.

Good to know

This module is mandatory. Everything else assumes the dev user, the projects directory and the shells it sets up. Its shell block lives in .zshenv, which zsh reads for every shell — including the one an ssh command opens without logging in.

All services