Aller au contenu principal

Ajouter des services à côté d’un bot

Préférez un projet Compose par application exploitée indépendamment :

/srv/discord-bot/{compose.yaml,.env,data/}
/srv/rsshub/{compose.yaml,.env}
/srv/infohub/{compose.yaml,data/}
/srv/caddy/{compose.yaml,Caddyfile}

Compose dérive normalement le nom du projet depuis le répertoire, isolant noms de ressources et réseau par défaut. Le champ name: peut l’expliciter. Ainsi, mettre à jour le bot ne recrée pas RSSHub. Regroupez seulement les composants qui partagent vraiment déploiement et retour arrière.

Un bot Discord Gateway ouvre généralement un WebSocket sortant et n’a besoin d’aucun port entrant publié :

name: discord-bot
services:
bot:
image: ghcr.io/example/discord-bot:<pinned-version>
restart: unless-stopped
env_file: [.env]
volumes: [./data:/app/data]

Les interactions HTTP, webhooks ou panneaux exigent une route entrante. Pour le Web public, utilisez Caddy comme entrée unique 80/443 plutôt que des ports arbitraires. Les services administratifs peuvent écouter sur loopback ou Tailscale ; bases et caches restent sur les réseaux internes.

Pour le proxy entre projets, créez un réseau externe explicite, par exemple docker network create ingress, déclarez-le external: true et n’y reliez que les services concernés.

Le DISCORD_TOKEN est secret : fichier .env ignoré et mode 600 ou gestionnaire de secrets, jamais dans Git ni dans une sortie Compose partagée. En cas de doute, faites une rotation dans le portail Discord.

docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'
docker network ls; docker volume ls
ss -lntup; free -h; df -h /
mkdir -p /srv/new-service/data && cd /srv/new-service
docker compose config --quiet
docker compose config --services
docker compose config --images
docker compose pull
docker compose up -d
docker compose ps
docker compose logs --tail 100

La sortie complète de docker compose config peut développer les secrets. Épinglez versions ou digests. Un conteneur running ne prouve pas la santé : testez la connexion/réponse du bot ou la requête Web via Caddy et les données persistantes.

Avant une mise à jour, notez l’ancienne image et le diff Compose. Pour un seul service :

docker compose pull bot
docker compose up -d --no-deps bot
docker compose ps
docker compose logs --tail 100 bot

Vérifiez dépendances et migrations avant --no-deps. Évitez docker compose down depuis un répertoire ambigu et n’utilisez pas docker system prune -a comme dépannage courant.