Linux guides
29 guides in Server Setup · beginner.
Self-Host Vikunja for To-Do and Projects
Deploy Vikunja, a self-hosted open-source task manager, using Docker Compose with PostgreSQL, set up sharing, connect the mobile app, and compare it to Todoist.
Self-Host Planka (Trello Alternative)
Deploy Planka, a self-hosted Trello alternative, using Docker Compose with PostgreSQL, HTTPS via Caddy, and full support for boards, cards, comments, and attachments.
Self-Host Navidrome (Subsonic-compatible Music)
Install Navidrome on Linux, configure your music library, set up systemd, and connect Android/iOS clients via the Subsonic API in under 30 minutes.
Build a Documentation Site with MkDocs Material
Install MkDocs Material, configure navigation and theme features, preview locally, then deploy to GitHub Pages or serve with Caddy on your own server.
Self-Host Linkding for Bookmarks
Deploy Linkding, the self-hosted bookmark manager, with Docker Compose, configure the browser extension, enable HTML snapshots, and organise bookmarks with tags.
Run Docker on a Raspberry Pi
Install Docker and Docker Compose on a Raspberry Pi, handle arm64 vs armv7 images, protect your SD card, and configure log rotation with journald.
Turn a Raspberry Pi into a Network Print Server
Turn any USB printer into an AirPrint-capable network printer using a Raspberry Pi, CUPS, and Avahi — with SD card-friendly tuning included.
Use a Raspberry Pi as a Headless Server
Turn a Raspberry Pi into a reliable headless server: configure SSH-only access, set a static IP, mount USB storage persistently, enable the hardware watchdog, and tune swap.
Install Uptime Kuma for Uptime Monitoring
Self-host Uptime Kuma with Docker Compose to monitor websites, TCP ports, and services — then configure alerts and a public status page in under 30 minutes.
Install Typesense on Linux
Install Typesense on Debian, Ubuntu, Fedora, or Arch; configure a secure API key; define a collection schema; index documents; and run filtered search queries.
Install the gcloud SDK on Linux
Install the Google Cloud CLI on Linux via package repository or tarball, then configure authentication, optional components, and kubectl for GKE.
Install the Azure CLI (az) on Linux
Install the Azure CLI on Debian, Ubuntu, Fedora, RHEL, and Arch Linux using package repos, then authenticate, switch subscriptions, and add extensions.
Install and Configure the AWS CLI
Install AWS CLI v2 on Linux, configure IAM credentials, named profiles, SSO login, MFA-backed roles, region defaults, and shell tab completions.
Install Meilisearch on Linux
Install Meilisearch on Linux, secure it with a master key, create indexes, tune typo tolerance, and sync data from PostgreSQL using a systemd timer.
Install Grafana on Linux
Install Grafana from the official repo on Debian, Ubuntu, Fedora, RHEL, or Arch, then configure datasources, dashboards, alert rules, and authentication.
Install Ansible and Run Your First Playbook
Install Ansible via pip or your distro package manager, build an inventory file, then write and run your first idempotent playbook with privilege escalation.
Set Up a Hetzner Cloud Server from Scratch
Create a Hetzner Cloud server from scratch: project setup, SSH key upload, cloud-init bootstrapping, cloud firewall, IPv6, and snapshots in one structured guide.
Set Up a DigitalOcean Droplet for Production
Create a hardened, production-ready DigitalOcean Droplet: SSH keys, doctl, cloud and host firewalls, monitoring agents, backups, and Reserved IPs explained step by step.
Caddy as a Reverse Proxy
Set up Caddy as a reverse proxy with automatic HTTPS, load balancing, WebSocket passthrough, reusable snippets, and header control — no certbot required.
Install Python with pyenv
Install pyenv on Linux to manage multiple Python versions safely alongside your distro Python, with build deps, version switching, and virtualenv setup.
Install Pi-hole for Network-Wide Ad Blocking
Install Pi-hole on Linux to block ads and trackers network-wide via DNS. Covers install, blocklists, router DNS setup, whitelisting, and keeping it updated.
Install Node.js with nvm on Linux
Install nvm on Linux to manage multiple Node.js versions per project, set defaults, pin versions with .nvmrc, and choose the right approach for servers and CI.
Install Go and Rust on Linux
Install Go via the official tarball and Rust via rustup on Linux. Covers PATH setup, multiple versions side by side, and keeping both toolchains updated.
Install and Configure Caddy
Install Caddy on Linux, configure auto-HTTPS, set up reverse proxying and static file serving, and extend Caddy with third-party modules — all via the Caddyfile.
Host Static Sites with nginx
Install nginx on Linux, host multiple static sites with SSL, gzip/brotli compression, long-lived caching headers, and HTTP-to-HTTPS redirects.
How to Set Up Tailscale on Linux
Install Tailscale on Linux, authenticate devices, configure ACLs, and enable MagicDNS to build a secure WireGuard mesh VPN in minutes.
How to Install Caddy: The TLS-Automatic Web Server
Install Caddy web server, configure the Caddyfile, get automatic HTTPS from Let's Encrypt, and set up reverse proxying in under 15 minutes.
How to Host a Website on a Linux Server
From a fresh VPS to a live HTTPS site: configure DNS, install Nginx, set up a virtual host, and issue a free Let's Encrypt TLS certificate with Certbot.
How to Change the Webmin Port
Move Webmin off its default port 10000 by editing miniserv.conf, updating your firewall (ufw, firewalld, or nftables), and restarting the service.