Production-grade self-hosting infrastructure for Raspberry Pi 5.
Traefik · Docker · SSL · Monitoring · One command to launch.
Automatic HTTPS for every service. Wildcard SSL via Cloudflare DNS-01 challenge. Route traffic to any container with a single label. Zero-downtime deploys.
Custom Node.js/Express API with a dark-themed frontend. Deploy, stop, restart, and tail logs for any service — no CLI required.
setup.sh installs Docker, configures UFW firewall, sets up Fail2ban, enables cgroups, and allocates swap — from a fresh Pi OS image.
CPU, memory, disk, temperature, container status, HTTP endpoint checks, and network connectivity — with Slack webhook alerts.
Fail2ban with Traefik jail, UFW rules, rate limiting middleware, HSTS headers, and automatic IP banning on repeated failures.
Drop-in templates for static sites (Nginx ARM64) and Node.js bots (Discord/Telegram). Each includes docker-compose, .env.example, and Traefik labels pre-wired.
$ scp pi5-hosting.zip pi@192.168.1.100:~
$ ssh pi@192.168.1.100
$ unzip pi5-hosting.zip && cd pi5-hosting
$ sudo ./scripts/setup.sh
# Installs Docker, UFW, Fail2ban
# Configures cgroups + swap
# Sets up log rotation
$ cp .env.example .env
$ nano .env
# Set DOMAIN=yourdomain.com
# Set CF_DNS_API_TOKEN=...
# Set DASHBOARD_SECRET=...
$ docker compose up -d
✓ traefik started
✓ portainer started
✓ watchtower started
✓ dashboard started
$ ./scripts/monitor.sh
Everything you need to run production services on a $80 computer. No subscriptions. No vendor lock-in. No cloud bills.