~/tutorials $
Linux server tutorials
Step-by-step tutorials for a Linux server: VPNs, web servers, databases, containers, security and backups. Each one names the distributions it was tested on.
9 of 45 tutorials tested on Debian 12 Oldstable
How to host a static website with nginx on Ubuntu or Debian
Serve a static site with nginx from your own server, with clean URLs, gzip, HTTP/2, the right caching headers and one-command deploys with rsync.
How to install and secure MariaDB on Ubuntu 24.04
Install MariaDB on Ubuntu 24.04, answer mariadb-secure-installation correctly, give each app its own user and keep port 3306 private.
Use curl and jq with the VPSNine API
Drive the VPSNine API from a shell with curl and jq: filter servers, take snapshots and wait for them, read errors, page invoices, edit the firewall.
Get Slack and Discord alerts from VPSNine webhooks
VPSNine has no Slack or Discord integration, so run a tiny relay that verifies webhook signatures and posts alerts and events to your channels.
How to get a Let's Encrypt wildcard certificate with the DNS challenge
Get a free *.example.com certificate from Let's Encrypt with certbot or acme.sh and your DNS provider's API, renew it automatically and reload your web server.
How to upgrade Debian 12 (bookworm) to Debian 13 (trixie)
Upgrade a Debian 12 server to Debian 13 in place, the way the release notes describe, with a snapshot to fall back on and checks before and after.
How to use Caddy as a reverse proxy for multiple sites and apps
One Caddyfile that serves several domains and apps on one server, each with its own automatic HTTPS certificate, path routing, headers, logs and basic auth.
Receive VPSNine webhooks in Node.js and Python
A dependency-free webhook receiver in Node.js or Python that checks every VPSNine signature, refuses replays, skips duplicates and runs under systemd.
Script your infrastructure with the TypeScript SDK
Use @vpsnine/sdk from TypeScript to list servers, snapshot before a reboot, order a server safely and handle errors, with retries and idempotency keys built in.