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:
@@ -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
@@ -1,14 +1,32 @@
|
|||||||
services:
|
services:
|
||||||
backend:
|
backend:
|
||||||
build: ./backend
|
build:
|
||||||
|
context: ./backend
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
image: sentinelmesh-backend:latest
|
||||||
|
container_name: sentinelmesh-backend
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
volumes:
|
volumes:
|
||||||
- sentinelmesh-data:/data
|
- sentinelmesh-data:/data
|
||||||
environment:
|
environment:
|
||||||
DATABASE_URL: sqlite:///data/sentinelmesh.sqlite
|
DATABASE_URL: sqlite:///data/sentinelmesh.sqlite
|
||||||
|
LISTEN_ADDR: 0.0.0.0:8080
|
||||||
RUST_LOG: info
|
RUST_LOG: info
|
||||||
restart: unless-stopped
|
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:
|
volumes:
|
||||||
sentinelmesh-data:
|
sentinelmesh-data:
|
||||||
|
driver: local
|
||||||
|
|||||||
Executable
+25
@@ -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."
|
||||||
Reference in New Issue
Block a user