mirror of
https://github.com/swissmakers/fail2ban-ui.git
synced 2026-04-17 05:53:15 +02:00
72 lines
2.1 KiB
Bash
Executable File
72 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# cleanup_dev.sh -- Reset the OIDC dev environment to a clean state.
|
|
# This stops and removes all containers, networks, and volumes defined in
|
|
# container-compose.yml, then deletes the generated data directories so you
|
|
# can start fresh with "podman compose up -d" (or docker compose).
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
COMPOSE_FILE="${SCRIPT_DIR}/container-compose.yml"
|
|
|
|
# colour helpers
|
|
if [ -t 1 ]; then
|
|
BOLD='\033[1m' RESET='\033[0m' GREEN='\033[0;32m' YELLOW='\033[0;33m'
|
|
else
|
|
BOLD='' RESET='' GREEN='' YELLOW=''
|
|
fi
|
|
info() { echo -e "${GREEN}[INFO]${RESET} $*"; }
|
|
warn() { echo -e "${YELLOW}[WARN]${RESET} $*"; }
|
|
|
|
# detect compose command
|
|
if command -v podman &>/dev/null && podman compose version &>/dev/null 2>&1; then
|
|
COMPOSE="podman compose"
|
|
elif command -v docker &>/dev/null && docker compose version &>/dev/null 2>&1; then
|
|
COMPOSE="docker compose"
|
|
else
|
|
warn "Neither 'podman compose' nor 'docker compose' found."
|
|
warn "Skipping container teardown - only data directories will be removed."
|
|
COMPOSE=""
|
|
fi
|
|
|
|
# stop and remove containers / networks
|
|
if [ -n "$COMPOSE" ] && [ -f "$COMPOSE_FILE" ]; then
|
|
info "Stopping and removing containers defined in container-compose.yml …"
|
|
$COMPOSE -f "$COMPOSE_FILE" down --volumes --remove-orphans 2>/dev/null || true
|
|
else
|
|
warn "Compose file not found at ${COMPOSE_FILE} - skipping container teardown."
|
|
fi
|
|
|
|
# remove generated data directories
|
|
# These match the volume mounts and the .gitignore entries
|
|
DATA_DIRS=(
|
|
config
|
|
f2b-run-local
|
|
fail2ban-config-local
|
|
keycloak-data
|
|
keycloak-db
|
|
pocket-id-data
|
|
authentik-media
|
|
authentik-db
|
|
authelia-config
|
|
authelia-db
|
|
authelia-redis
|
|
)
|
|
|
|
info "Removing generated data directories …"
|
|
for dir in "${DATA_DIRS[@]}"; do
|
|
target="${SCRIPT_DIR}/${dir}"
|
|
if [ -e "$target" ]; then
|
|
rm -rf "$target"
|
|
info " Removed ${dir}/"
|
|
fi
|
|
done
|
|
|
|
# remove generated .env
|
|
if [ -f "${SCRIPT_DIR}/.env" ]; then
|
|
rm -f "${SCRIPT_DIR}/.env"
|
|
info " Removed .env"
|
|
fi
|
|
|
|
echo ""
|
|
info "${BOLD}OIDC dev environment cleaned.${RESET} Run 'podman compose up -d' (or docker compose) to start fresh."
|