Hetzner dedicated servers require manual provisioning to achieve production-ready storage layouts and network security. The default automated installation does not support custom partition schemes or proper Docker firewall integration. This guide covers booting into rescue mode, deploying Ubuntu with multiple MD RAID arrays, and configuring both UFW and the Hetzner hardware firewall. Prerequisites The following […]
Author: Gund Wehsling
Deploying AdGuard with DNS-over-HTTPS in Docker
AdGuard provides centralized DNS filtering and encrypted upstream queries for infrastructure deployments. This guide covers deploying AdGuard in Docker with DNS-over-HTTPS upstreams, integrating it with Nginx Proxy Manager and WireGuard, and securing administrative access behind VPN boundaries. Prerequisites The following items are required: Checking Port 53 Availability Before deploying AdGuard Home, verify that port 53 […]
Tuning CIFS Mounts for Hetzner Storage Box Performance
Hetzner Storage Box provides CIFS/SMB network storage with cross-datacenter access. Default mount options often result in poor throughput, particularly when accessing storage across geographic distance. A Storage Box in Finland accessed from a server in Germany encounters higher latency than local storage. CIFS mount parameters can be tuned based on the connection characteristics to improve […]
Encrypted Offsite Backups: Hetzner Storage Box with Gocryptfs
Hetzner Storage Boxes provide low-cost offsite backup storage with native snapshot capabilities. This guide covers mounting a Storage Box via CIFS, layering client-side encryption with Gocryptfs, making the encrypted mount persist correctly at boot, and integrating automated rsync pipelines with weekly retention logic backed by Hetzner’s snapshot system. Prerequisites The following items are required: NOTE: […]
WordPress with Docker, Nginx Proxy Manager, and Cloudflare
Deploying WordPress behind Nginx Proxy Manager requires understanding how reverse proxy layers interact with DNS routing and SSL termination. Misconfigured proxy chains produce redirect loops, failed certificate validation, or exposed origin IPs. This guide covers a production Docker Compose stack and routing architecture decisions for self-hosted WordPress. Prerequisites The following items are required: Routing Architecture […]
Deploy wg-easy v15 for WireGuard
The wg-easy project provides a web interface for managing WireGuard VPN servers. Version 15 introduces a first-boot setup wizard while maintaining kernel-level packet routing controls. This guide covers deployment using Docker Compose with explicit IPv4-only configuration to avoid boot loops and routing errors on servers without IPv6 support. Prerequisites The following items are required: Configuration […]
Deploying Fail2ban in Docker
Fail2ban monitors log files for repeated authentication failures and blocks malicious IP addresses at the firewall layer. Running Fail2ban in a Docker container allows it to protect both host-level SSH access and containerized web applications like Nginx Proxy Manager without installing additional packages directly on the host system. Prerequisites The following items are required: How […]
DNS Setup with Cloudflare Proxy for Hetzner Servers
Pointing a domain to a Hetzner server requires DNS configuration, optional proxy services, and verification. This guide covers setting up DNS records at Cloudflare, using the free proxy layer for security and caching, and testing connectivity with standard command line tools. Prerequisites The following items are required: Configure DNS Records at Cloudflare A Hetzner server […]
Install Docker Compose and Deploy Nginx on Ubuntu
Docker Compose extends Docker with declarative configuration files that define multi-container deployments. This guide covers installation of Docker Compose on Ubuntu 22.04, deployment of an Nginx web server, and addition of Heimdall as a second service to demonstrate extensibility. Prerequisites This guide was tested on Ubuntu 22.04 Server in September 2023, updated January 2025. You […]
Configuring Swap Files on Ubuntu
A swap file provides virtual memory when physical RAM runs low. This guide covers the differences between swap partitions and swap files, performance considerations, and the complete setup process for Ubuntu 24.04 but should be fine with any modern debian based distribution. Swap File vs Swap Partition A swap partition is a dedicated disk partition […]