MMO Linux Server Scripts
Fifteen Bash tools for the jobs every Linux server needs anyway
- Language Shell
- License MIT
- Last activity August 6, 2026
- Bash
- Linux
- cron
- Docker
Every one of these scripts started the same way: I did the job by hand on one server, wrote down what I had done, and then did it again on the next one. At some point writing it down properly was less work than doing it a third time. This website runs on them — Caddy is configured by caddy-manager.sh, and git-updater.sh keeps the working copy on the server in sync.
The tools come in three groups, in the order in which you actually set a machine up. Securing access: base tools, SSH hardening, ufw firewall rules, WireGuard, Tailscale. Watching operations: a mailer (msmtp or Microsoft Graph) first, because an update run or a monitor whose alert reaches nobody is unattended, then apt updates by cron and monitors for TCP reachability, HTTP status and certificate expiry, and disk space. Running applications: nginx as a TCP relay with SNI routing, Caddy vhosts with TLS terminated on the server, Docker, and a git updater that pulls working copies and optionally redeploys a Compose stack.
Each script is interactive, menu-driven, wants root and can be run again without harm — existing values come back as defaults. The ones that could lock you out are deliberately careful: SSH hardening validates the configuration before applying it and keeps a fallback port, the firewall checks its rules before enabling them, and anything that removes a configuration backs it up first. Every tool that needs it has non-interactive flags for cron and scripting.
There is one documentation file per tool, each complete on its own. And there is a manual setup guide that uses no scripts at all, only the standard tools — for the case where you would rather not run someone else's shell script as root. That guide is the honest alternative to this repository, and it is part of it on purpose.
What it does
- Fifteen standalone scripts behind one menu (setup.sh); each also runs on its own.
- Access: base tools, SSH hardening, ufw firewall, WireGuard, Tailscale.
- Operations: msmtp or Microsoft Graph mail, cron apt updates, TCP, HTTP and disk monitors that alert on state change.
- Applications: nginx SNI relay, Caddy vhosts, Docker, git updater with optional Compose redeploy.
- Idempotent and interactive — run it again and your existing values come back as defaults.
- Guards against locking yourself out: config validation, fallback SSH port, backup before removal.
- Non-interactive flags per tool: --status, --check, --run, --uninstall, --version.
- One documentation file per tool, plus a script-free manual setup guide.