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:
|
||||
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
|
||||
|
||||
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