In-depth guides, tested on real servers.
Multi-part guides that take a topic from first principles to production. Every command is run and verified on a live server before it is published.
Servers & Security
Run and secure your own infrastructure, hands on.

Linux Server Hardening
A six-part, hands-on guide to securing a Linux server end to end, from the first hour on a new VPS to responding to a breach. Every command tested on a live server.

systemd Deep Dive
A seven-part, hands-on guide to systemd on a single VPS: the unit model and how boot resolves, writing services that recover from a crash, journald and journalctl, timers versus cron, sandboxing and security scoring, cgroups v2 resource control, and socket activation with user services. Every command tested on a live Ubuntu 24.04 server.

SSH Mastery
A six-part, hands-on guide to SSH on a single VPS: key authentication over passwords, the config file with jump hosts and multiplexing, hardening sshd without locking yourself out, local, remote and dynamic port forwarding, agent forwarding and its hijack risk, and file transfer with host-key verification. Every command tested on a live Ubuntu 24.04 server.

Firewalls with nftables
A five-part, hands-on guide to building a firewall with nftables on a single VPS: the family, table and chain model that replaced iptables, a safe policy-drop base ruleset that keeps your SSH session alive, sets, maps and rate limiting, NAT with port forwarding and logging, and persistence with a dry-run and a dead-man revert. Every command tested on a live Ubuntu 24.04 server.

DNS on a Server
A five-part, hands-on guide to running DNS on a single VPS: how resolution walks from root to authoritative, an authoritative BIND9 server with a real zone file, a validating caching resolver with unbound, split-horizon views for internal names, and DNSSEC with troubleshooting. Every command tested on a live Ubuntu 24.04 server with the demo servers bound to loopback.

WireGuard VPN and Private Networking
A five-part, hands-on guide to running your own WireGuard VPN on a slice: install and configure the server from a bare box, connect your real laptop and phone, reach a private service through the tunnel that the public internet cannot see, and keep it running. Every command verified on a live Ubuntu 24.04 server with a real client connecting over the internet.

Secrets Management on a VPS
A four-part, hands-on guide to handling secrets on a single VPS: how plaintext secrets leak through permissions, the process environment, logs and git history, file-based secrets with a dedicated owner and systemd credentials, encryption at rest with age and sops, and rotation, auditing and git-history scrubbing. Every command tested on a live Ubuntu 24.04 server with throwaway demo secrets.
Databases
Run a real database in production, not just install one.

PostgreSQL for Production
A four-part, hands-on guide to running PostgreSQL in production on a single VPS: least-privilege roles, backups that actually restore, connection pooling, and tuning. Every command tested on a live 2-vCPU server.

MySQL / MariaDB for Production
An eight-part, hands-on guide to running MariaDB in production on a single VPS: install and secure, least-privilege users, InnoDB indexing, backups that restore, primary to replica replication, ProxySQL connection pooling, slow-query monitoring, and security hardening. Every command tested on a live Ubuntu 24.04 server.

PostgreSQL Replication and HA
A five-part, hands-on guide to PostgreSQL high availability on a single VPS: streaming replication, synchronous replication and slots, failover and promotion with pg_rewind, connection routing with PgBouncer, and point-in-time recovery. Every command tested on a live Ubuntu 24.04 server running two clusters.

Redis: Caching, Sessions and Queues
A six-part, hands-on guide to running Redis on a single VPS: the five core data types, cache-aside with TTL and eviction, RDB and AOF persistence, a session store and rate limiter, pub/sub and queues with Streams, and security hardening. Every command tested on a live Ubuntu 24.04 server.
Deployment
Get your application onto a server and keep it running.

Nginx in Production
An eight-part, hands-on guide taking Nginx from a fresh install to a hardened, fast production reverse proxy: the config model, server blocks, reverse proxy, HTTP/2 and HTTP/3, caching, rate limiting, load balancing, and hardening. Every command tested on a live server. TLS certificates get their own dedicated series.

Node.js in Production
A six-part, hands-on guide to running Node.js in production on a single VPS: install the LTS and serve behind nginx, run it under systemd, configure it with environment secrets, cluster across cores, deploy with zero downtime, and add health checks and metrics. Every command tested on a live Ubuntu 24.04 server.

Python Web Apps in Production
A six-part, hands-on guide to running a Python web app in production on a single VPS: a virtualenv and Flask under gunicorn, a systemd service, nginx over a unix socket, environment secrets, worker sizing, and zero-downtime reloads with health checks. Every command tested on a live Ubuntu 24.04 server.

PHP-FPM and the LEMP Runtime
A five-part, hands-on guide to running PHP in a LEMP stack on a single VPS: install php-fpm and serve through nginx, size a dedicated fpm pool, put a real app behind nginx with a safe FastCGI config, tune OPcache, and harden the runtime. Every command tested on a live Ubuntu 24.04 server.

Caddy: the Auto-HTTPS Web Server
A five-part, hands-on guide to running Caddy on a single slice: install it from the official repo and read the Caddyfile, serve a static site with automatic HTTPS, reverse proxy an app with load balancing and websockets, serve PHP over FastCGI, and harden it for production. Every command verified on a live Ubuntu 24.04 server.

TLS and Certificates
A five-part, hands-on guide to TLS and certificates on a live server: reading the handshake and certificate chain, issuing Let's Encrypt and wildcard certificates, automating renewal with certbot, enforcing client certificates with mTLS, and debugging TLS with openssl and testssl.sh. Every command tested on a live Ubuntu 24.04 server.

Deploying an App on a VPS
A four-part, hands-on guide to getting an app onto a server the right way: behind nginx, running under systemd, served over HTTPS, and deployed with zero downtime. Every command tested on a live server.

CI/CD on a Single VM
A five-part, hands-on guide to real CI/CD on one VPS: push-to-deploy with a git hook, a self-hosted webhook runner, a build to test to deploy pipeline where a red test blocks the release, secrets kept out of the repo and the logs, and a health-gated zero-downtime release with one-command rollback. Every command tested on a live Ubuntu 24.04 server.
Containers
Docker and friends, without the cargo-culting.

Docker & Compose on a VPS
A four-part, hands-on guide to Docker without the cargo-culting: your first container, building your app's image, a real app-plus-database stack with Compose, and running it safely in production. Every command tested on a live server.

Docker in Production
A seven-part, hands-on guide to running Docker in production on a single VPS: your first container and the image model, a Dockerfile and a multi-stage build, a Compose stack with a datastore, volumes and networks, resource limits and restart policies, logging and observability, and security hardening. Every command tested on a live Ubuntu 24.04 server.

Podman and Rootless Containers
A four-part, hands-on guide to running containers rootless with Podman on a single slice: install and run your first daemonless container as an ordinary user, the user namespace and networking that make it safe, an app-and-datastore pod that talks over localhost, and Quadlet units that run it under systemd. Every command verified on a live Ubuntu 24.04 server.

k3s: Kubernetes on One VM
A seven-part, hands-on guide to running Kubernetes on a single VPS with k3s: install and your first pod, Deployments and self-healing, Services and networking, Ingress, ConfigMaps and Secrets, persistent storage with limits and probes, and day-two operations with backup and upgrades. Every command tested on a live Ubuntu 24.04 server.
Storage
Object storage and backups you can actually restore.

Object Storage with MinIO
A four-part, hands-on guide to self-hosting S3-compatible object storage with MinIO: run it as a service, work with buckets and objects, use the S3 API and presigned URLs from your app, and turn on versioning and lifecycle rules. Every command tested on a live server.

Backups & Disaster Recovery
A four-part, hands-on guide to backups that actually restore: an encrypted deduplicated restic repository in object storage, snapshots and cheap history, the restore test that most teams skip, and retention plus a nightly systemd timer. Every command tested on a live server.
Monitoring
See inside your server before it surprises you.

Metrics & Monitoring with Prometheus
A four-part, hands-on guide to seeing inside your server: node_exporter metrics, Prometheus collecting and storing them, PromQL to ask real questions, and alert rules that page you before users notice. Every command tested on a live server.

Logging and Log Management
A five-part, hands-on guide to logging on a single VPS: how journald and rsyslog fit together and where logs live, structured JSON logs with jq and logrotate, shipping logs to a central rsyslog collector over TCP, querying with journalctl and jq plus a threshold alert, and a retention, masking and compliance policy. Every command tested on a live Ubuntu 24.04 server.

Linux Performance and Troubleshooting
A seven-part, hands-on guide to finding why a Linux server is slow: the USE method with top and vmstat, CPU saturation with mpstat and pidstat, memory and the OOM killer, disk IO with iostat and iotop, network throughput with ss and tcpdump, a sixty-second triage playbook, and inodes, lsof and file limits. Every command tested on a live Ubuntu 24.04 server.
Linux Fundamentals
The command line, from first login to writing your own scripts.

The Linux Command Line
A nine-part, hands-on introduction to the Linux command line and filesystem, from your first login to writing dotfiles. Every command run on a live Ubuntu server so you see the real output, not a mock-up.

Users and Permissions
A nine-part, hands-on guide to Linux users, groups and file permissions: ownership, chmod, sudo, SSH keys, umask, ACLs and password policy. Every command run on a live Ubuntu server against a real service account.

Processes and Services
A nine-part, hands-on guide to what runs on a Linux server: processes and signals, background jobs, systemd services and journald, enabling and masking units, cron, systemd timers, and resource limits. Every command run on a live Ubuntu server.

Package Management
A nine-part, hands-on guide to installing and managing software on Ubuntu: apt, searching and inspecting packages, repositories and GPG keys, dpkg, pinning versions, PPAs, building from source, snap, and keeping a server patched. Every command run on a live Ubuntu server.

Linux Networking
A nine-part, hands-on guide to networking from the Linux command line: interfaces and ip, ports and ss, DNS, curl, scp and rsync, ufw, ping and traceroute, SSH tunnels, and diagnosing a slow connection. Every command run on a live Ubuntu server.

Storage and Scripting
A nine-part, hands-on guide to disks and filesystems, tar, the text tools sed, awk, cut, sort and uniq, and writing your first bash script and scheduled backup. Every command run on a live Ubuntu server.