feat(deploy): Docker Compose production + script désinstallation

- docker-compose.yml : healthcheck, réseau interne, volumes nommés
- docker-compose.dev.yml : profil développement (logs debug, restart no)
- install/uninstall.sh : arrêt service, suppression binaire + config + unit

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-19 06:25:20 +02:00
parent 10cc6979c9
commit b9e3188cb4
3 changed files with 60 additions and 1 deletions
+16
View File
@@ -0,0 +1,16 @@
# Profil développement — remplace docker-compose.yml
# Usage : docker compose -f docker-compose.dev.yml up
services:
backend:
build:
context: ./backend
dockerfile: Dockerfile
ports:
- "8080:8080"
volumes:
- ./data:/data
environment:
DATABASE_URL: sqlite:///data/sentinelmesh.sqlite
LISTEN_ADDR: 0.0.0.0:8080
RUST_LOG: debug
restart: "no"
+19 -1
View File
@@ -1,14 +1,32 @@
services:
backend:
build: ./backend
build:
context: ./backend
dockerfile: Dockerfile
image: sentinelmesh-backend:latest
container_name: sentinelmesh-backend
ports:
- "8080:8080"
volumes:
- sentinelmesh-data:/data
environment:
DATABASE_URL: sqlite:///data/sentinelmesh.sqlite
LISTEN_ADDR: 0.0.0.0:8080
RUST_LOG: info
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:8080/api/v1/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
networks:
- sentinelmesh
networks:
sentinelmesh:
driver: bridge
volumes:
sentinelmesh-data:
driver: local
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/env bash
# Désinstallation d'un agent SentinelMesh
set -euo pipefail
AGENT_TYPE="${1:-}"
[[ -z "$AGENT_TYPE" ]] && { echo "Usage: $0 <scan-network|metric>"; exit 1; }
SERVICE_NAME="sentinelmesh-${AGENT_TYPE}"
BINARY="/usr/local/bin/agent-${AGENT_TYPE}"
CONFIG="/etc/sentinelmesh/${AGENT_TYPE}.yaml"
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
[[ "$EUID" -ne 0 ]] && { echo "Erreur : ce script doit être exécuté en root."; exit 1; }
echo "Désinstallation de ${SERVICE_NAME}"
systemctl stop "$SERVICE_NAME" 2>/dev/null && echo " Service arrêté" || true
systemctl disable "$SERVICE_NAME" 2>/dev/null && echo " Service désactivé" || true
rm -f "$SERVICE_FILE" && echo " Service systemd supprimé"
rm -f "$BINARY" && echo " Binaire supprimé"
rm -f "$CONFIG" && echo " Configuration supprimée"
systemctl daemon-reload
echo "Désinstallation terminée."