vps-forge SKILL.md skillB
vps-forge from mountain-beaver/vps-forge is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add mountain-beaver/vps-forge/vps-forge@git:20261026.5e1d6faPins git:20261026.5e1d6fa in mdr.lock. Pin the fingerprint instead.
- Audit grade
- B, 16 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- mountain-beaver/vps-forge
- Path
skills/vps-forge/SKILL.md- Versions recorded
- 5
- Latest version
- git:20261026.5e1d6fa, committed Oct 26, 2026
- First version recorded
- Oct 24, 2026
- Size
- 19,640 bytes
- Repository stars
- 38
- License
- MIT
Set up, harden, audit and polish a Linux VPS (Debian/Ubuntu) to production grade without ever losing access — SSH keys and crypto, firewall, fail2ban/CrowdSec, automatic security updates, kernel hardening, Docker, Caddy/nginx with TLS, WireGuard/Tailscale, restic backups, phone alerts, monitoring and a final verified score. Use this skill whenever the user mentions a VPS, VDS, cloud server, droplet, Hetzner/DigitalOcean/Vultr/Linode/OVH/Oracle Cloud/AWS EC2 or Lightsail box (x86 or ARM), a…
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# VPS Forge Take a fresh or existing Debian/Ubuntu VPS to a state the user will be proud of: locked down, observable, backed up, documented, reproducible and pleasant to live on. Do it with a safety net under every risky step, so access to the server is never lost. Speak the user's language. Before every change, say in one line what you are changing and why. When the user asks "why?", answer properly: the reasoning matters more than the command. ## 1. Rules that keep the user safe These exist because one wrong `sshd` or `ufw` change can make a server unreachable, and the user may have no idea how to use the provider's rescue console. 1. **Never cut off access.** Every SSH, firewall, sudo or PAM change goes inside a dead-man switch: `scripts/deadman.sh arm` → change → validate → test from a **new, unmultiplexed** connection → disarm. If the new connection fails, do nothing and let the timer roll back (default 5 min). Arm longer (`arm 10`) when the change needs several edits or a package install, and if it runs late, `vps-forge-deadman extend <min>` moves the rollback while the snapshot stays the same. Never extend after a failed test login. …
Read the whole file at its exact version.
How to install
mdr add mountain-beaver/vps-forge/vps-forge@sha256:4ccfea37c6083a38The line at the top of this page pins the label git:20261026.5e1d6fa, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_h2yjc2cq75oaxvqw)
1 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 5 versions of this file, between Oct 24, 2026 and Oct 26, 2026, more than one a day.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261026.5e1d6fa latest | 2026-10-26 | 5e1d6fa | 19,640 B | B | view · diff |
| git:20261025.d629dad | 2026-10-25 | d629dad | 19,607 B | B | view · diff |
| git:20261024.79bb60e | 2026-10-24 | 79bb60e | 18,585 B | B | view · diff |
| git:20261024.0715a44 | 2026-10-24 | 0715a44 | 18,149 B | B | view · diff |
| git:20261024.f5baa70 | 2026-10-24 | f5baa70 | 17,373 B | B | view |
Audit of the latest version
- fail: No curl or wget piped into a shell (matched: curl | sh)
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (19640 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Starting a new one? Use a template for SKILL.md on mdpantry, which passes every one of these checks and says what to change in it.
Source
mountain-beaver/vps-forge · 38 stars · license MIT · pushed 2026-10-26 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_h2yjc2cq75oaxvqw GET https://markdownregistry.com/api/v1/resolve?ref=mountain-beaver/vps-forge/vps-forge GET https://markdownregistry.com/api/v1/blob/4ccfea37c6083a3816c7fe1ca8856c6961c3451c0a18bc72cb5dda6594a09ef0
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.