Tutorials
Step-by-step guides to install and run apps, AI tools and websites on your server, tested on current releases.
- How to install AdGuard Home on a server without an open resolver Run AdGuard Home on an internet-facing Linux server safely: official install script, a private admin UI, plain DNS only over WireGuard, optional DNS-over-HTTPS behind Caddy with ClientIDs, backups and updates. Intermediate 40 min
- How to install Ghost on Ubuntu with Ghost-CLI, Nginx and MySQL Follow Ghost's officially documented Ubuntu method: prepare a non-root user, MySQL and Node.js 22, let Ghost-CLI set up Nginx, TLS and systemd, then configure email, backups and updates. Intermediate 40 min
- How to install Forgejo or Gitea with Docker Compose, PostgreSQL and HTTPS Run your own Git forge with Forgejo or Gitea: official Docker images, PostgreSQL, Caddy for HTTPS, SSH on port 2222 and no open registration, plus dump-based backups and safe major-version updates. Intermediate 40 min
- How to install listmonk with Docker Compose and HTTPS Run listmonk and PostgreSQL from the official Docker Compose file, keep port 9000 private behind Caddy, create the Super Admin, connect an SMTP relay and back up the database and uploads. Intermediate 40 min
- How to install Matrix Synapse and Element Web on Ubuntu or Debian Install Synapse from packages.matrix.org, keep user IDs on your main domain with .well-known delegation, store data in PostgreSQL, add Element Web and back up the signing key and media. Advanced 50 min
- How to install Nextcloud Server manually with Apache, PHP-FPM and MariaDB Build a Nextcloud server from the official archive: verified download, Apache with PHP-FPM, MariaDB, APCu and Redis caching, Certbot HTTPS, a systemd cron timer, backups and upgrades. Advanced 75 min
- How to install Plausible Community Edition with Docker Compose Clone the current Plausible CE release, create .env with BASE_URL and SECRET_KEY_BASE, publish it on 127.0.0.1 behind Caddy, keep registration invite-only, connect SMTP and back up PostgreSQL and ClickHouse. Intermediate 40 min
- How to run llama.cpp server as an OpenAI-compatible API Compile llama.cpp, test llama-server with a GGUF model from Hugging Face, run it as a hardened systemd service on 127.0.0.1 with an API key, and publish the OpenAI-compatible API over HTTPS. Intermediate 40 min
- How to run Traefik v3 as a Docker reverse proxy with Let’s Encrypt Deploy Traefik v3 in Docker Compose with the Docker provider, HTTP to HTTPS redirects and Let’s Encrypt, then publish apps with a few labels instead of open ports, with logs, backups and updates covered. Intermediate 40 min
- How to install GitLab CE on Ubuntu or Debian with built-in Let's Encrypt Set up a self-managed GitLab CE server on Ubuntu or Debian with the Linux package: repository script, automatic Let's Encrypt certificate, root password, sign-up restrictions, backups and upgrades along the required stops. Intermediate 45 min
- How to install Immich with Docker Compose and HTTPS Deploy Immich from its official release files, keep port 2283 on localhost behind Caddy, create the admin account safely, and back up both the database dumps and the photo library. Intermediate 35 min
- How to install Jitsi Meet with Docker and Let's Encrypt Deploy Jitsi Meet from the official docker-jitsi-meet release, get HTTPS from Let's Encrypt, require a login to create rooms and keep the server updated and backed up. Intermediate 40 min
- How to install Portainer CE on Docker and keep it private Run Portainer Community Edition with the official lts image, bind its ports to localhost, reach it through an SSH tunnel or Caddy with HTTPS, and keep it backed up and updated. Beginner 20 min
- How to install Strapi 5 with PostgreSQL, PM2 and HTTPS Create a Strapi 5 project on PostgreSQL, run it under PM2 as a dedicated user, publish it through Caddy with HTTPS, and learn the deploy, backup and upgrade routine. Intermediate 45 min
- How to install vLLM on an NVIDIA GPU server with Docker Prepare an NVIDIA GPU server, run vllm/vllm-openai with Docker Compose on 127.0.0.1, secure it with an API key and a Caddy proxy that only exposes /v1, tune memory and multi-GPU settings, or install it with uv and systemd. Advanced 45 min
- How to install Nginx Proxy Manager with Docker and secure its admin panel Install Nginx Proxy Manager from its official Docker image, create the admin account through an SSH tunnel, publish apps with free Let’s Encrypt certificates from a web interface and keep it backed up and updated. Beginner 30 min
- How to install Directus with Docker Compose, PostgreSQL and HTTPS Run Directus from the official Docker image with PostgreSQL and Redis, keep it on localhost behind Caddy HTTPS, secure the first admin, and back up and update it safely. Intermediate 30 min
- How to install Jellyfin with Docker and HTTPS Deploy Jellyfin from the official image with Docker Compose, keep port 8096 on localhost behind Caddy, finish the setup wizard safely, avoid heavy CPU transcoding and back up the configuration. Intermediate 30 min
- How to install K3s on Ubuntu: single-node Kubernetes with Traefik and HTTPS Set up a single-node K3s Kubernetes cluster on Ubuntu LTS, open only the ports it needs, expose a test app through the bundled Traefik ingress with cert-manager TLS, and learn backups and upgrades. Intermediate 45 min
- How to install LocalAI with Docker Compose as an OpenAI-compatible API Deploy LocalAI from the official container images, require an API key for every request, install a model from the gallery, test the OpenAI-compatible API and publish it over HTTPS behind Caddy. Intermediate 35 min
- How to install Mastodon from source on Ubuntu 24.04 or Debian 13 Build your own Mastodon instance on Ubuntu 24.04 or Debian 13 with the official from-source method, then add HTTPS, SMTP, media cleanup, backups and a safe upgrade routine. Advanced 90 min
- How to run Home Assistant Container with Docker on a server Set up the official Home Assistant Container on a remote server, onboard it through an SSH tunnel, trust Caddy as a reverse proxy, connect to your home over WireGuard and keep backups. Intermediate 35 min
- How to install AnythingLLM with Docker, HTTPS and Ollama Run the official AnythingLLM Docker image with persistent storage and your own secrets, switch on multi-user mode before going public, publish it over HTTPS with Caddy and connect Ollama. Intermediate 30 min
- How to install Discourse with the official Docker installer Set up Discourse the supported way: Docker from the official repository, the discourse_docker installer and setup wizard, automatic Let's Encrypt, backups and one-command upgrades. Intermediate 40 min