DocHub
N8N development server with 12 Docker containers on OVH VPS

OVH2 Dev Server (15.204.10.51)

Server Specs

Item Value
Provider OVH (vps-bbb7b303.vps.ovh.us)
IP 15.204.10.51
SSH ssh ovh2
OS Ubuntu 25.04
CPU 12 vCPU
RAM 45 GB
Disk 290 GB SSD
Kernel 6.14.0-37-generic

Security

  • fail2ban: 3 retries → 24h ban
  • UFW: SSH (22), HTTP (80), HTTPS (443) only
  • SSH: Key-only auth, no root login, no password, max 3 attempts
  • Docker: Log rotation (10MB, 3 files)
  • Updates: unattended-upgrades enabled

Docker Architecture

All containers run on a shared proxy bridge network. Caddy handles TLS termination and reverse proxying.

Containers (12 total)

Container Image Purpose Restart Policy
postgres postgres:15 Shared database (hypno_help) unless-stopped
caddy caddy:latest Reverse proxy + auto TLS always
n8n-dev1 n8nio/n8n:latest Main dev (50 workflows) unless-stopped
n8n-dev2 n8nio/n8n:latest Testing (14 workflows) unless-stopped
n8n n8nio/n8n:latest Staging workflows unless-stopped
max n8nio/n8n:latest Max Shipping chatbot unless-stopped
nocodb nocodb/nocodb:latest Spreadsheet DB UI unless-stopped
portainer portainer/portainer-ce Container management always
qdrant qdrant/qdrant Vector database
python-svc python-svc:latest (custom) FastAPI audio processing unless-stopped
n8n-audio-server nginx:alpine Audio file serving (port 8081) unless-stopped
watchtower containrrr/watchtower Auto-update containers unless-stopped

Domain Routing (Caddy)

Domain Container
dev1.lifeonroatan.net n8n-dev1:5678
dev2.lifeonroatan.net n8n-dev2:5678
n8n.lifeonroatan.net n8n:5678
max.lifeonroatan.net max:5678
portainer.lifeonroatan.net portainer:9000
mcp.{name}.lifeonroatan.net Same as above (MCP endpoints)

Key Files

File Purpose
/root/docker-compose.yml All container definitions
/opt/caddy/Caddyfile Caddy reverse proxy config
/root/nginx-audio-server/nginx.conf Audio server nginx config
/root/python-svc/ Python service source + Dockerfile

Docker Volumes

Volume Container Size
n8n_dev1_data n8n-dev1 2.8 GB
n8n_max_data max 301 MB
n8n_data n8n 110 MB
postgres_data postgres 68 MB
n8n_dev2_data n8n-dev2 36 MB
caddy_data/config caddy 220 KB
portainer_data portainer 412 KB
python-svc-data/scripts python-svc 16 KB

DNS

Managed in Cloudflare under lifeonroatan.net. All A records point to 15.204.10.51.