deamon-vault/infra/vps-config-2026-04-17.md
2026-04-17 16:54:34 +02:00

6.0 KiB
Raw Permalink Blame History

title type created owner agent status tags related
Config VPS — Snapshot 17 avril 2026 log 2026-04-17 jerem DAEMON active
infra
vps
config
snapshot
projects/deamon-backend
_adn/routing-llm

Config VPS — 17 avril 2026

Snapshot de l'état du VPS après Phase 1-6 + audit sécurité/stabilité.


Serveur

Élément Valeur
Hébergeur Hostinger — VPS dédié
OS Ubuntu 22.04.5 LTS
Kernel 5.15.0-176-generic
CPU AMD EPYC 9354P — 2 cores
RAM 7.8 GB
Swap 4 GB
Disque 97 GB (15% utilisé)
IP publique 76.13.42.203
IP VPN 10.66.66.1
SSH Port 2222, clé uniquement, root désactivé
Domaine jeremunlimited.com (DNS OVH)
Wildcard DNS *.jeremunlimited.com → 76.13.42.203

Accès

Méthode Commande / URL
SSH ssh -p 2222 jerem@10.66.66.1 (VPN requis)
Coolify https://coolify.jeremunlimited.com
Gitea https://git.jeremunlimited.com
n8n https://n8n.jeremunlimited.com
Uptime Kuma https://kuma.jeremunlimited.com
Whisper https://whisper.jeremunlimited.com

Services Docker

Container Image Port interne Restart Réseau
gitea gitea/gitea:1.22 3000 always coolify + internal
gitea-db postgres:16-alpine 5432 always internal
n8n n8nio/n8n:latest 5678 always coolify
whisper fedirz/faster-whisper-server:latest-cpu 8000 always coolify
uptime-kuma louislam/uptime-kuma:1 3001 always coolify
coolify coolify:4.0.0-beta.473 8080 always coolify
coolify-proxy traefik:v3.6 80/443 unless-stopped coolify
coolify-sentinel sentinel:0.0.21 always coolify
coolify-db postgres:15-alpine 5432 always coolify
coolify-redis redis:7-alpine 6379 always coolify
coolify-realtime coolify-realtime:1.0.13 6001-6002 always coolify

Sécurité

Mesure Status
SSH port 2222 (port 22 fermé)
Root login désactivé (sauf Docker local)
Password auth désactivé
Fail2ban sur sshd
WireGuard VPN (split tunnel)
UFW firewall (deny par défaut)
HTTPS Let's Encrypt sur tous les services
Unattended security upgrades
Kernel à jour

Ports ouverts (UFW)

Port Protocole Usage
2222/tcp ALLOW SSH
51820/udp ALLOW WireGuard
22/tcp ALLOW 10.0.0.0/24, 10.0.1.0/24, 76.13.42.203 Coolify interne
6001, 6002, 8080 DENY Bloqués par UFW (note: Docker bypass UFW)

Limitation connue

Docker manipule iptables directement et bypass UFW. Les ports 6001/6002/8080/8000 exposés par Coolify restent techniquement accessibles depuis l'extérieur malgré les règles DENY. Risque limité car ces services requièrent une authentification.


Stabilité

Mesure Status
Swap 4 GB
Restart policy always sur tous les containers
Log rotation Docker (10MB × 3 fichiers)
Backup quotidien 3h00 UTC (rétention 7 jours)
Backup path /home/jerem/backups/
Backup script /home/jerem/daemon-infra/backup.sh

Fichiers clés sur le VPS

/home/jerem/
├── daemon-infra/
│   ├── docker-compose.yml      # Tous les services DAEMON
│   ├── .env                    # GITEA_DB_PASS
│   ├── backup.sh               # Script backup quotidien
│   ├── gitea/                  # Data Gitea + PostgreSQL
│   ├── n8n/                    # Data n8n
│   ├── uptime-kuma/            # Data Uptime Kuma
│   ├── whisper/                # Modèles Whisper
│   └── openclaw/               # OpenClaw (installé, pas configuré)
├── backups/                    # Backups quotidiens
└── .ssh/                       # Clés SSH

WireGuard

Élément Valeur
VPS (serveur) 10.66.66.1, port 51820
Mac (client) 10.66.66.2
Mode Split tunnel (seul le trafic 10.66.66.x passe par le VPN)
Config VPS /etc/wireguard/wg0.conf

Traefik (reverse proxy)

  • Géré par Coolify (container coolify-proxy)
  • Certificats Let's Encrypt automatiques (HTTP challenge)
  • Config dynamique : /data/coolify/proxy/dynamic/
  • Coolify routé via fichier coolify-domain.yaml (nom container, pas IP)
  • Nos services routés via labels Docker dans docker-compose.yml

Ce qui reste à faire

  • Phase 10 — Doppler (gestion des secrets)
  • Phase 11 — OpenClaw (configuration agent)
  • Phase 12 — Sync Vault Mac ↔ Gitea ↔ VPS
  • Déplacer le vault hors d'iCloud (recommandé pour Git sync)
  • Configurer les monitors Uptime Kuma
  • Tester Whisper (envoi d'un fichier audio)

Généré automatiquement par DAEMON — session du 17 avril 2026


Addendum — Hardening Docker (même session)

Problème résolu

Docker bypass UFW en manipulant iptables directement. Les ports Coolify (8000, 8080, 6001, 6002) et nos services (3000, 3001, 5678) étaient accessibles depuis internet malgré les règles UFW DENY.

Solution

Règles iptables dans la chaîne DOCKER-USER (la seule que Docker respecte) :

Autorisé :

  • Ports 80/443 depuis partout (Traefik HTTPS + Let's Encrypt)
  • Tout trafic depuis le VPN (10.66.66.0/24)
  • Tout trafic Docker interne (10.0.0.0/8, 172.16.0.0/12)
  • Port 22 (Gitea SSH) depuis le VPN uniquement

Bloqué (DROP) depuis internet :

  • Port 8000 (Coolify)
  • Port 8080 (Traefik dashboard)
  • Port 6001/6002 (Coolify Realtime)
  • Port 5678 (n8n)
  • Port 3000 (Gitea)
  • Port 3001 (Uptime Kuma)

Persistance

iptables-persistent installé, règles sauvegardées → survivent au reboot.

Résultat

  • Accès direct IP:port depuis internet → timeout (DROP)
  • Accès HTTPS via domaines → fonctionne (Traefik route en interne)
  • Accès VPN → fonctionne

Risque résiduel : 0 — Seuls les ports 80/443 (Traefik) et 2222 (SSH) sont accessibles depuis internet. Tout le reste est DROP.