50 lines
1.1 KiB
Bash
50 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
[[ -f .env ]] && set -a && source .env && set +a
|
|
|
|
check_required_var() {
|
|
if [[ -z "${!1:-}" ]]; then
|
|
echo "ERROR: Required variable $1 not set (check .env)"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
usage() {
|
|
cat <<'EOF'
|
|
Usage: ./deploy.sh {up|down|logs|restart}
|
|
|
|
Actions:
|
|
up Build and start dashboard + database
|
|
down Stop containers (volumes preserved)
|
|
logs Tail logs
|
|
restart Restart dashboard without rebuild
|
|
EOF
|
|
}
|
|
|
|
check_required_var DASHBOARD_DB_USER
|
|
check_required_var DASHBOARD_DB_PASSWORD
|
|
check_required_var DASHBOARD_DB_NAME
|
|
check_required_var DASHBOARD_EXTERNAL_URL
|
|
|
|
case "${1:-}" in
|
|
up)
|
|
docker compose --profile dashboard up -d --build
|
|
echo "Dashboard started at ${DASHBOARD_EXTERNAL_URL}"
|
|
;;
|
|
down)
|
|
docker compose --profile dashboard down
|
|
;;
|
|
logs)
|
|
docker compose --profile dashboard logs -f --tail=100
|
|
;;
|
|
restart)
|
|
docker compose --profile dashboard restart
|
|
;;
|
|
*)
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|