Recipe directory
150+ verified server playbooks
Not frozen scripts. Each recipe reads your server first, adapts to what is already there, and proves every step before moving on. Every command is signed by your browser, approved by you, and replayable from the history.
186 recipes17 categoriesRecon → Act → Verify
Every recipe, in order
01Recon
Read-only probes establish what is actually installed, running and listening before anything changes.
02Act
Each command is adapted to the distribution found, classified by risk, signed by your browser and relayed verbatim to the agent.
03Verify
A step only counts as done when its own check passes. The run stops on the first failure, nothing is left half-applied.
186 recipes shown
WEB
Web server
13- nginxnginx web server, started, enabled at boot and verified.WEBWeb servercaution5 steps
- CaddyCaddy with automatic HTTPS for a domain.WEBWeb servercaution6 steps
- Apache httpdApache web server, started, enabled and verified.WEBWeb servercaution5 steps
- HAProxyHAProxy load balancer, started and verified.WEBWeb servercaution3 steps
- TraefikTraefik reverse proxy via Docker, with the dashboard and automatic TLS.WEBWeb servercaution5 steps
- Nginx Proxy ManagerWeb-UI reverse proxy Nginx Proxy Manager via Docker.WEBWeb servercaution5 steps
- Let's Encrypt certificateCertbot + TLS certificate and automatic renewal.WEBWeb servercaution4 steps
- PHP-FPMPHP-FPM (choice of version) for nginx/apache.WEBWeb servercaution4 steps
- Varnish CacheVarnish HTTP cache in front of a web backend.WEBWeb servercaution4 steps
- nginx reverse proxyConfigures nginx as a reverse proxy to a local service (websocket OK).WEBWeb servercaution6 steps
- IIS (web server)Internet Information Services role enabled, started and checked over HTTP.WEBWeb servercaution3 steps
- ASP.NET Core Hosting (IIS)The .NET Hosting Bundle to host ASP.NET Core apps behind IIS.WEBWeb servercaution2 steps
- nginx (macOS)nginx via Homebrew, started at boot (port 8080 by default).WEBWeb servercaution3 steps
DB
Database
19- PostgreSQLPostgreSQL (major version of your choice) from the official PGDG repository, initialized and verified.DBDatabasecaution5 steps
- MySQLMySQL Server, secured, bound to localhost, started and verified.DBDatabasecaution5 steps
- MariaDBMariaDB, secured, bound to localhost, started and verified.DBDatabasecaution4 steps
- MongoDBMongoDB Community 9.0, local, with authentication enabled and verified.DBDatabasecaution5 steps
- RabbitMQRabbitMQ broker (official repository) with management, local and a dedicated admin account.DBDatabasecaution6 steps
- MemcachedMemcached in-memory cache, bound to localhost.DBDatabasesafe3 steps
- ClickHouseClickHouse analytical database (official repository), password-protected and local.DBDatabasecaution5 steps
- SQLiteSQLite command-line client, installed and verified.DBDatabasesafe1 step
- InfluxDBInfluxDB 2 time-series database, local on :8086, initial setup done.DBDatabasecaution5 steps
- TimescaleDBTimescaleDB extension on an existing PostgreSQL, enabled in the database of your choice.DBDatabasecaution5 steps
- Neo4jNeo4j Community graph database, local, with a generated initial password.DBDatabasecaution5 steps
- Postgres Backup (cron)Scheduled PostgreSQL dump (systemd timer), compressed, verified, with 14-day retention.DBDatabasesafe3 steps
- Postgres HardeningHardens PostgreSQL: scram-sha-256, pg_hba without trust, SSL. Destructive: alters access.DBDatabasedestructive5 steps
- CockroachDBCockroachDB local single-node (dev/small load), running as a systemd service.DBDatabasecaution4 steps
- pgBackRestPostgreSQL backups with pgBackRest: WAL archiving, weekly full, daily differential.DBDatabasecaution7 steps
- PostgreSQL (Windows)PostgreSQL (EDB installer) as a service, with a generated superuser password.DBDatabasecaution4 steps
- SQL ServerMicrosoft SQL Server 2025 (Developer or Express), Windows authentication, local.DBDatabasecaution3 steps
- PostgreSQL (macOS)PostgreSQL via Homebrew, started at boot, listening locally.DBDatabasecaution3 steps
- Redis (macOS)Redis via Homebrew, started at boot, listening locally.DBDatabasecaution3 steps
CACHE
Cache & queues
04- RedisRedis, with an optional password, started and verified.CACHECache & queuescaution5 steps
- NATSNATS messaging server (JetStream optional).CACHECache & queuescaution4 steps
- Mosquitto (MQTT)Mosquitto MQTT broker for IoT.CACHECache & queuescaution6 steps
- Apache KafkaKafka in KRaft mode (no ZooKeeper) via Docker.CACHECache & queuescaution4 steps
OBS
Observability
11- node_exporterPrometheus system metrics exporter, as a systemd service.OBSObservabilitycaution4 steps
- NetdataNetdata real-time monitoring (stable channel), local dashboard on :19999.OBSObservabilitycaution3 steps
- PrometheusPrometheus (metrics collection), as a local systemd service on :9090.OBSObservabilitycaution5 steps
- GrafanaGrafana OSS (official repo), local on :3000, admin with a random password.OBSObservabilitycaution6 steps
- Grafana LokiLoki 3.7 log aggregation via Docker, local on :3100.OBSObservabilitycaution3 steps
- Grafana + Prometheus stackGrafana + Prometheus + node_exporter via Docker Compose, datasource preconfigured, all local.OBSObservabilitycaution7 steps
- cAdvisorcAdvisor container metrics via Docker, local only.OBSObservabilitycaution3 steps
- GlancesGlances real-time system monitoring, local web UI on :61208.OBSObservabilitycaution4 steps
- AlertmanagerPrometheus Alertmanager alert routing via Docker, local on :9093.OBSObservabilitycaution3 steps
- VectorVector observability pipeline (logs/metrics), official repo, service running.OBSObservabilitycaution4 steps
- Grafana AlloyGrafana Alloy agent shipping the systemd journal to Loki (successor to Promtail, EOL).OBSObservabilitycaution5 steps
SEC
Security
13- Harden SSHTurns off password login and root password login, keeps keys. Destructive: verify your key access first.SECSecuritydestructive5 steps
- fail2banfail2ban with the SSH jail on the right port, active and verified.SECSecuritycaution6 steps
- UFW firewallUFW: denies incoming by default, allows the real SSH port + chosen ports, with a safety net. Destructive: keeps SSH open.SECSecuritydestructive7 steps
- Automatic security updatesEnables automatic security updates: unattended-upgrades (Debian/Ubuntu) or dnf-automatic (RHEL/Fedora).SECSecuritycaution5 steps
- CrowdSecCrowdSec collaborative IPS, SSH collections and firewall bouncer.SECSecuritycaution6 steps
- ClamAVClamAV antivirus with signatures kept up to date, optional daemon.SECSecuritycaution6 steps
- Lynis auditInstalls Lynis, runs a hardening audit and summarizes the score, warnings and suggestions.SECSecuritysafe4 steps
- nftables firewallBaseline nftables firewall in a dedicated table, SSH guaranteed, with a safety net. Destructive: applies network rules.SECSecuritydestructive6 steps
- auditdauditd kernel audit log, enabled with baseline rules (accounts, sudo, SSH).SECSecuritycaution4 steps
- SSH 2FA (TOTP)SSH key + TOTP code (Google Authenticator PAM). Destructive: touches SSH auth.SECSecuritydestructive8 steps
- Secret scanSearches a folder for plaintext secrets with gitleaks (read-only, redacted report).SECSecuritysafe3 steps
- SSH key rotationAdds a new authorized key, has it tested, then removes the old ones if asked. Destructive: SSH access.SECSecuritydestructive5 steps
- Firewall rule (Windows)Opens an inbound port in the Windows firewall. Destructive: network.SECSecuritydestructive1 step
DEV
Dev tools
23- Node.jsNode.js (LTS version of your choice) installed system-wide from the NodeSource repo.DEVDev toolscaution3 steps
- GoThe Go language (version of your choice) from go.dev, in /usr/local/go and on the PATH.DEVDev toolscaution3 steps
- BunThe Bun JS runtime, installed system-wide in /usr/local/bin.DEVDev toolscaution2 steps
- PythonPython (version of your choice) via pyenv, for the user, without touching the system Python.DEVDev toolscaution4 steps
- RustThe stable Rust toolchain via rustup, for the user.DEVDev toolscaution2 steps
- DenoThe Deno runtime, installed system-wide in /usr/local/bin.DEVDev toolscaution2 steps
- Java (Temurin)Temurin JDK (Adoptium OpenJDK), LTS version of your choice, from the official repo.DEVDev toolscaution2 steps
- GitGit installed from the distro packages and verified.DEVDev toolssafe1 step
- PHP CLIPHP CLI (version of your choice) + common extensions, multi-distro.DEVDev toolscaution3 steps
- Ruby (rbenv)Ruby via rbenv + ruby-build, version of your choice, for the user.DEVDev toolscaution4 steps
- .NET SDKThe .NET SDK (version of your choice) from the distro or Microsoft repos.DEVDev toolscaution2 steps
- Elixir + ErlangElixir and Erlang/OTP from the distro packages.DEVDev toolssafe2 steps
- Build toolchaingcc/g++, make, autotools, pkg-config and git, multi-distro.DEVDev toolssafe1 step
- mise (version management)mise (formerly rtx) to manage runtime versions and per-project environment variables.DEVDev toolscaution2 steps
- ChocolateyChocolatey package manager, installed machine-wide.DEVDev toolscaution2 steps
- Node.js (Windows)Node.js LTS machine-wide (winget, else choco or the official MSI).DEVDev toolssafe2 steps
- Python (Windows)Python 3 for all users, added to the machine PATH.DEVDev toolssafe2 steps
- Git (Windows)Git for Windows, machine-wide.DEVDev toolssafe1 step
- HomebrewHomebrew package manager via the official signed .pkg.DEVDev toolscaution3 steps
- Node.js (macOS)Node.js (major version of your choice) via Homebrew.DEVDev toolssafe2 steps
- Python (macOS)Python 3 (version of your choice) via Homebrew.DEVDev toolssafe1 step
- Git (macOS)Recent Git via Homebrew.DEVDev toolssafe1 step
- Xcode Command Line ToolsXcode command line tools (git, clang, make…), without any GUI.DEVDev toolscaution4 steps
CTR
Containers
13- Docker EngineDocker Engine + Compose from the official repository, service active, hello-world verified.CTRContainerscaution6 steps
- Docker ComposeDocker Compose plugin (docker compose), installed and verified.CTRContainerssafe3 steps
- PodmanPodman (daemonless containers, rootless capable), verified.CTRContainerscaution4 steps
- PortainerPortainer CE (LTS) Docker management web UI, admin preconfigured.CTRContainerscaution3 steps
- k3s (lightweight Kubernetes)Single-node k3s cluster. Destructive: configures networking and a container runtime.CTRContainersdestructive5 steps
- WatchtowerAutomatic, scheduled updates for Docker containers.CTRContainerscaution2 steps
- Private Docker registryPrivate Docker image registry (registry:3) with authentication, TLS with a domain.CTRContainerscaution4 steps
- Docker cleanup (cron)Weekly scheduled prune (systemd timer) of unused Docker images and containers.CTRContainerscaution3 steps
- DockgeDockge Docker Compose stack manager, local only.CTRContainerscaution3 steps
- HashiCorp NomadNomad orchestrator in single-node mode (server + client), local API.CTRContainerscaution5 steps
- Docker Desktop (Windows)Docker Desktop on Windows 10/11 (WSL 2 backend). Destructive: enables WSL/VM Platform, reboot required.CTRContainersdestructive4 steps
- Hyper-VEnables the Hyper-V role. Destructive: virtualization, reboot required.CTRContainersdestructive1 step
- Docker (macOS)Docker Desktop installed from the command line using the official DMG.CTRContainerscaution4 steps
SYS
System
16- TimezoneSets the server timezone.SYSSystemsafe1 step
- CockpitCockpit web administration console, local-only (SSH tunnel) by default, on :9090.SYSSystemcaution5 steps
- Zsh + Oh My ZshZsh with Oh My Zsh for the current user.SYSSystemcaution3 steps
- Synchronized clock (chrony)NTP synchronization via chrony.SYSSystemcaution3 steps
- User + sudoCreates a user with SSH key and sudo access. Destructive: system account.SYSSystemdestructive5 steps
- Log rotationConfigures logrotate for an application log folder.SYSSystemsafe3 steps
- Disk cleanupPurges package caches, old logs and orphaned packages (report first).SYSSystemdestructive5 steps
- System updateUpdates all packages while keeping configs. Destructive: may require a reboot.SYSSystemdestructive4 steps
- HostnameSets the hostname and updates /etc/hosts.SYSSystemcaution3 steps
- LocaleConfigures the system locale.SYSSystemsafe2 steps
- Login banner (MOTD)Installs a custom MOTD banner.SYSSystemsafe1 step
- sysctl tuningAdjusts network/file limits. Destructive: kernel parameters.SYSSystemdestructive2 steps
- OpenSSH ServerEnables the OpenSSH server built into Windows. Destructive: opens remote access.SYSSystemdestructive5 steps
- Remote Desktop (RDP)Enables RDP with NLA and its firewall rule. Destructive: opens remote access.SYSSystemdestructive5 steps
- Windows UpdateInstalls pending Windows updates. Destructive: reboot likely.SYSSystemdestructive4 steps
- Active Directory (domain controller)Promotes the server to a domain controller (new forest). VERY destructive.SYSSystemdestructive4 steps
NET
Networking
09- TailscaleTailscale mesh VPN: auth key or login link, without touching the server DNS.NETNetworkingcaution3 steps
- WireGuardWireGuard VPN server + a first client, without touching routing. Destructive: network interface.NETNetworkingdestructive6 steps
- Pi-holePi-hole v6 (DNS + ad blocking) in a container, on the chosen IP. Destructive when listening on 0.0.0.0 (port 53).NETNetworkingdestructive6 steps
- AdGuard HomeAdGuard Home filtering DNS, local UI. Destructive: may free port 53.NETNetworkingdestructive5 steps
- OpenVPNOpenVPN server via the road-warrior script (angristan), first client created. Destructive: network.NETNetworkingdestructive4 steps
- DNS resolver (Unbound)Unbound validating (DNSSEC) recursive DNS resolver, on localhost.NETNetworkingcaution4 steps
- Network toolsiperf3, mtr, traceroute, dig and tcpdump for network diagnostics.NETNetworkingsafe1 step
- frp tunnelfrp client (systemd service) to expose a local service via a remote frp server.NETNetworkingcaution6 steps
- HeadscaleHeadscale self-hosted Tailscale control plane, behind a TLS reverse proxy.NETNetworkingcaution7 steps
GAME
Game servers
09- Minecraft Server (Java)Minecraft Java server (Paper, Vanilla, Fabric or Forge) under a dedicated user, as a systemd service, with the right Java.GAMEGame serverscaution10 steps
- Valheim ServerDedicated Valheim server via Docker, under a dedicated user, world and backups in /opt/valheim.GAMEGame serverscaution6 steps
- Factorio ServerDedicated Factorio server (stable release) via Docker, non-root, saves in /opt/factorio.GAMEGame serverscaution5 steps
- Mumble ServerMumble (murmur) voice server from the distro packages, generated SuperUser password, started and verified.GAMEGame serverscaution5 steps
- Minecraft Bedrock ServerDedicated Minecraft Bedrock server via Docker, under a dedicated user, world in /opt/bedrock.GAMEGame serverscaution5 steps
- Terraria ServerDedicated Terraria (TShock) server via Docker, worlds in /opt/terraria.GAMEGame serverscaution5 steps
- Palworld ServerDedicated Palworld server via Docker, under a dedicated user, generated admin password.GAMEGame serverscaution6 steps
- CS2 ServerDedicated Counter-Strike 2 server via Docker (SteamCMD), non-root, GSLT token and RCON protected.GAMEGame serverscaution6 steps
- ARK ServerDedicated ARK: Survival Evolved server via Docker, under a dedicated user, generated admin password.GAMEGame serverscaution6 steps
HOST
Self-hosted
17- VaultwardenVaultwarden password manager (Bitwarden-compatible) via Docker Compose, over HTTPS when a domain is provided.HOSTSelf-hostedcaution8 steps
- GiteaLightweight Gitea Git forge via Docker Compose (SQLite), web on localhost, Git SSH on a dedicated port.HOSTSelf-hostedcaution9 steps
- Uptime KumaUptime Kuma 2 uptime monitoring via Docker Compose, over HTTPS when a domain is provided.HOSTSelf-hostedcaution7 steps
- NextcloudNextcloud (file cloud) via Docker Compose: PostgreSQL, Redis, cron, admin created automatically.HOSTSelf-hostedcaution9 steps
- JellyfinJellyfin media server via Docker Compose, media folder mounted read-only, HTTPS when a domain is provided.HOSTSelf-hostedcaution8 steps
- n8nn8n workflow automation via Docker Compose, over HTTPS with webhooks when a domain is provided.HOSTSelf-hostedcaution8 steps
- ImmichImmich photo library with the official docker-compose, generated DB password, HTTPS when a domain is provided.HOSTSelf-hostedcaution9 steps
- Plex Media ServerPlex media server (linuxserver image) via Docker Compose on the host network, claimed with a claim token.HOSTSelf-hostedcaution7 steps
- Home AssistantHome Assistant Container home automation via Docker Compose (official method: host network, privileged).HOSTSelf-hostedcaution8 steps
- Paperless-ngxPaperless-ngx document management via Docker Compose (PostgreSQL + Valkey, official compose), admin and secrets generated.HOSTSelf-hostedcaution9 steps
- Wiki.jsWiki.js 2 modern wiki + PostgreSQL via Docker Compose, generated DB password.HOSTSelf-hostedcaution7 steps
- MetabaseMetabase BI tool via Docker Compose, persisted H2 application database, HTTPS when a domain is provided.HOSTSelf-hostedcaution7 steps
- Umami AnalyticsUmami 3 privacy-friendly analytics + PostgreSQL via Docker Compose, generated secrets.HOSTSelf-hostedcaution7 steps
- Homepage (dashboard)Homepage services dashboard via Docker Compose, configuration in /opt/homepage/config.HOSTSelf-hostedcaution8 steps
- FreshRSSFreshRSS RSS aggregator via Docker Compose (official image, built-in cron refresh), HTTPS when a domain is provided.HOSTSelf-hostedcaution7 steps
- SyncthingSyncthing P2P file sync (official repository), systemd service for one user, password-protected GUI on localhost.HOSTSelf-hostedcaution7 steps
- CoolifyCoolify self-hosted PaaS (Heroku/Vercel-style app deployment) via the official installer.HOSTSelf-hosteddestructive4 steps
MAILMail
04
- SMTP relay (Postfix)Postfix as an outbound relay (satellite) via an authenticated TLS smarthost. Destructive: reconfigures mail delivery.MAILMaildestructive5 steps
- Dovecot IMAPDovecot IMAP server, TLS required, IMAPS on :993.MAILMailcaution5 steps
- RspamdRspamd anti-spam filter + Redis (official repo), wired into Postfix if present.MAILMailcaution6 steps
- ListmonkListmonk newsletter management + Postgres via Docker Compose, admin with a random password.MAILMailcaution5 steps
STOR
Storage & backup
11- Swap fileCreates a persistent swap file of the chosen size. Destructive: modifies /etc/fstab.STORStorage & backupdestructive3 steps
- restic backupsrestic + a scheduled, encrypted backup of a folder to a repository.STORStorage & backupcaution8 steps
- MinIOS3-compatible MinIO object storage via Docker, local-only. Community project archived: frozen image.STORStorage & backupcaution7 steps
- Garage (S3 storage)Garage (Deuxfleurs) S3-compatible object storage via Docker, single-node and local-only, with a first bucket and its key. Maintained alternative to MinIO.STORStorage & backupcaution14 steps
- Samba shareSamba file server (SMB). Destructive: creates a share and a user.STORStorage & backupdestructive8 steps
- Borg backupsBorgBackup + a scheduled encrypted backup of a folder.STORStorage & backupcaution9 steps
- rclonerclone to sync to the cloud (S3, B2, Drive...).STORStorage & backupcaution3 steps
- NFS serverNFS share. Destructive: exposes a folder on the network.STORStorage & backupdestructive5 steps
- Disk mount (fstab)Formats (if empty) and mounts a disk persistently. Destructive: potential ERASE.STORStorage & backupdestructive5 steps
- ZFS poolInstalls ZFS and creates a pool. Destructive: ERASES the disks.STORStorage & backupdestructive6 steps
- SMB file shareCreates a Windows SMB share. Destructive: exposes a folder on the network.STORStorage & backupdestructive3 steps
CI
CI/CD
09- GitHub Actions RunnerSelf-hosted GitHub Actions runner under a dedicated user, registered as a systemd service.CICI/CDcaution5 steps
- GitLab RunnerGitLab Runner from the official repo, registered with the Docker or shell executor.CICI/CDcaution3 steps
- Woodpecker CILightweight Woodpecker CI (server + agent) via Docker Compose, behind an HTTPS reverse proxy.CICI/CDcaution5 steps
- Ansible (control node)Ansible installed as a control node from the distro packages.CICI/CDsafe2 steps
- systemd serviceDaemonize a command into a managed systemd service (auto-restart, at boot).CICI/CDcaution3 steps
- Scheduled task (cron)Add a scheduled task via a systemd timer (logged, catches up if missed).CICI/CDcaution2 steps
- Scheduled task (Windows)Registers a daily scheduled task under a service account.CICI/CDcaution1 step
- launchd Service (macOS)Daemonizes a command via a macOS LaunchDaemon. Destructive: system service.CICI/CDdestructive4 steps
- GitHub Actions Runner (macOS)Self-hosted GitHub Actions runner for Apple builds, under a non-root account.CICI/CDcaution4 steps
AI
AI / ML
07- OllamaOllama to run local LLMs (NVIDIA GPU if present, CPU otherwise), API on 127.0.0.1, optional model pull.AIAI / MLcaution3 steps
- JupyterLabJupyterLab via Docker, on 127.0.0.1 with a generated access token (access through an SSH tunnel).AIAI / MLcaution4 steps
- Open WebUIOpen WebUI, a web interface for LLMs (Ollama), via Docker on 127.0.0.1, wired to the local Ollama.AIAI / MLcaution3 steps
- NVIDIA drivers + CUDANVIDIA driver, CUDA toolkit and Docker Container Toolkit from the official repositories. Destructive: kernel modules, restart likely.AIAI / MLdestructive6 steps
- ComfyUI (Stable Diffusion)ComfyUI for image generation, installed from the official repository as a systemd service (NVIDIA GPU recommended, CPU possible).AIAI / MLcaution7 steps
- vLLM inference servervLLM to serve an LLM through an OpenAI-compatible API on 127.0.0.1, protected by a generated key. NVIDIA GPU required.AIAI / MLcaution6 steps
- Ollama (macOS)Local LLMs with Ollama via Homebrew (Metal-accelerated), local API.AIAI / MLcaution3 steps
CMS
Web & CMS
07- Deploy a Docker Compose appDeploys a (provided) Docker Compose stack, with an HTTPS reverse proxy if a domain is given. Describe your needs in the instructions.CMSWeb & CMScaution4 steps
- WordPressWordPress via Docker Compose (app + MariaDB, generated secrets), HTTPS if a domain is provided.CMSWeb & CMScaution6 steps
- GhostGhost 6 blogging platform via Docker Compose (Ghost + MySQL), served over HTTPS.CMSWeb & CMScaution6 steps
- OdooOdoo 20 Community ERP via Docker Compose (Odoo + Postgres), generated master password, HTTPS if a domain is provided.CMSWeb & CMScaution7 steps
- DiscourseDiscourse forum (official discourse_docker install, Let’s Encrypt HTTPS). Takes ports 80/443.CMSWeb & CMScaution5 steps
- MattermostMattermost team messaging via Docker Compose (Mattermost + Postgres), HTTPS if a domain is provided.CMSWeb & CMScaution6 steps
- DirectusDirectus headless CMS via Docker Compose (Directus + Postgres), generated secrets and admin, HTTPS if a domain is provided.CMSWeb & CMScaution6 steps
MISC
Cross-cutting
01Go further