ARM64 · RASPBERRY PI 5 · PRODUCTION READY

YOUR OWN CLOUD. YOUR RULES.

Production-grade self-hosting infrastructure for Raspberry Pi 5.
Traefik · Docker · SSL · Monitoring · One command to launch.

0 FILES
|
0 CORE SERVICES
|
0 COMMAND SETUP
|
SITES HOSTED
pi@raspberrypi5 ~ bash
pi@pi5:~$

EVERYTHING YOU NEED.
NOTHING YOU DON'T.

TRAEFIK REVERSE PROXY

Automatic HTTPS for every service. Wildcard SSL via Cloudflare DNS-01 challenge. Route traffic to any container with a single label. Zero-downtime deploys.

traefik.yml · middlewares.yml · tls.yml

MANAGEMENT DASHBOARD

Custom Node.js/Express API with a dark-themed frontend. Deploy, stop, restart, and tail logs for any service — no CLI required.

dashboard/

ONE-COMMAND BOOTSTRAP

setup.sh installs Docker, configures UFW firewall, sets up Fail2ban, enables cgroups, and allocates swap — from a fresh Pi OS image.

scripts/setup.sh

HEALTH MONITORING

CPU, memory, disk, temperature, container status, HTTP endpoint checks, and network connectivity — with Slack webhook alerts.

scripts/monitor.sh

SECURITY HARDENED

Fail2ban with Traefik jail, UFW rules, rate limiting middleware, HSTS headers, and automatic IP banning on repeated failures.

fail2ban/ · middlewares.yml

SERVICE TEMPLATES

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.

templates/static-site/ · templates/bot/

BUILT ON
PROVEN TOOLS.

Traefik v3 Reverse Proxy · SSL
ACTIVE
Docker Container Runtime
ACTIVE
Portainer CE Container Management
ACTIVE
Watchtower Auto-Updates
ACTIVE
Fail2ban Intrusion Prevention
ACTIVE
Nginx Static Site Serving
ACTIVE
Cloudflare DNS · Tunnel · CDN
ACTIVE
Raspberry Pi 5 ARM64 · 8GB RAM
ACTIVE

UP IN
FOUR STEPS.

01

COPY TO YOUR PI

bash
$ scp pi5-hosting.zip pi@192.168.1.100:~
$ ssh pi@192.168.1.100
$ unzip pi5-hosting.zip && cd pi5-hosting
02

BOOTSTRAP THE SYSTEM

bash
$ sudo ./scripts/setup.sh
# Installs Docker, UFW, Fail2ban
# Configures cgroups + swap
# Sets up log rotation
03

CONFIGURE YOUR DOMAIN

bash
$ cp .env.example .env
$ nano .env
# Set DOMAIN=yourdomain.com
# Set CF_DNS_API_TOKEN=...
# Set DASHBOARD_SECRET=...
04

LAUNCH THE STACK

bash
$ docker compose up -d
✓ traefik started
✓ portainer started
✓ watchtower started
✓ dashboard started
$ ./scripts/monitor.sh

26 FILES.
ZERO BLOAT.

pi5-hosting/
├── docker-compose.yml ← core stack
├── .env.example
├── README.md
├── NETWORKING.md ← DNS/SSL guide
├── traefik/
│ ├── traefik.yml
│ └── config/
│ ├── middlewares.yml
│ └── tls.yml
├── fail2ban/jail.d/traefik.conf
├── dashboard/ ← management UI
│ ├── server.js
│ ├── Dockerfile
│ └── src/ (index.html · style.css · app.js)
├── scripts/
│ ├── setup.sh ← bootstrap
│ ├── deploy-service.sh
│ └── monitor.sh
└── templates/
├── static-site/ ← nginx ARM64
└── bot/ ← node.js bot

READY TO
OWN YOUR STACK?

Everything you need to run production services on a $80 computer. No subscriptions. No vendor lock-in. No cloud bills.

✓ MIT License ✓ No dependencies to install manually ✓ Works on Pi OS Bookworm (64-bit)