skills/secure-linux-web-hosting/SKILL.md
Use when setting up, hardening, or reviewing a cloud server for self-hosting, including DNS, SSH, firewalls, Nginx, static-site hosting, reverse-proxying an app, HTTPS with Let's Encrypt or ACME clients, safe HTTP-to-HTTPS redirects, or optional post-launch network tuning such as BBR.
npx skillsauth add xixu-me/skills secure-linux-web-hostingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to turn a cloud server into a safely reachable web host without leaning on stale distro-specific memory or outdated Debian-10-era tutorials.
This skill keeps the familiar teaching arc of a beginner-friendly server guide, but turns it into a reusable operator workflow:
Before giving actionable commands, identify the distro family and verify the current package names, service units, config paths, and ACME-client guidance against official documentation for the user's distro and chosen tools.
Open references/workflow-map.md first for the
phase sequence, then open the narrower reference file you need.
Use this skill when the user mentions any of the following:
acme.sh, certificate renewal, or redirecting
HTTP to HTTPSDo not use this skill for:
Start by identifying:
If the distro is unknown, ask for it or have the user inspect /etc/os-release
before giving concrete package or service commands.
Use bundled references for routing, then verify details against live official docs before giving commands that depend on current distro behavior.
Always verify:
If you cannot verify a detail, say so and give high-level guidance instead of pretending the old Debian tutorial path is universal.
Walk through the phases in this order unless the user is explicitly asking for review or remediation of an existing setup:
Do not collapse the static-site branch and reverse-proxy branch into one default answer. Pick the branch that matches the user's goal.
Treat these as hard stop checks:
Always distinguish:
For a fresh setup, provide:
For a hardening or troubleshooting review, provide:
Use references/workflow-map.md for the phase map,
branching logic, and validation order.
Use references/distro-routing.md when distro
family, package manager, firewall tooling, or config layout matters.
Use references/nginx-patterns.md when the user
needs the static-site branch or the reverse-proxy branch.
Use references/security-and-tls.md for SSH
hardening sequence, firewall posture, certificate issuance, renewal, and
redirect timing.
tools
Use when tasks involve Xget URL rewriting, registry/package/container/API acceleration, integrating Xget into Git, download tools, package managers, container builds, AI SDKs, CI/CD, deployment, self-hosting, or adapting commands and config from the live README `Use Cases` section into files, environments, shells, or base URLs.
tools
Use this skill when the user wants to send or fetch files through an Xdrop server from the terminal, asks to automate encrypted Xdrop share-link workflows, provides an Xdrop `/t/:transferId#k=...` link to download and decrypt locally, or needs Xdrop CLI flags such as `--quiet`, `--json`, `--expires-in`, `--output`, or `--api-url`, even if they do not explicitly mention the skill name.
tools
Use when work depends on the user's live browser session or visible rendered state rather than static fetches, especially for browser debugging contexts or DevTools-selected elements or requests, logged-in dashboards or CMS flows, localhost apps, forms, uploads, downloads, media inspection, DOM or iframe inspection, Shadow DOM, or browser failures that look like soft 404s, auth walls, anti-bot checks, or rate limits.
tools
Use when the user needs to create, extract, flatten, list, test, install, script, or troubleshoot `tzst` CLI workflows for `.tzst` or `.tar.zst` archives, including compression levels, streaming mode, extraction filters, conflict resolution, JSON output, or standalone binary setup, even if they describe the archive task without naming `tzst`.