25 lines
822 B
Bash
Executable File
25 lines
822 B
Bash
Executable File
#!/usr/bin/env bash
|
||
# Déploie le dashboard depuis l’hôte systemd, jamais depuis le conteneur lui-même.
|
||
set -Eeuo pipefail
|
||
|
||
readonly APP_DIR="/opt/manus-deploy/apps/manus-dashboard"
|
||
readonly REQUEST_FILE="${APP_DIR}/.deployment-request"
|
||
readonly PROCESSING_FILE="${APP_DIR}/.deployment-request.processing"
|
||
readonly LOCK_FILE="/run/manus-dashboard-self-deploy.lock"
|
||
|
||
exec 9>"${LOCK_FILE}"
|
||
flock -n 9 || exit 0
|
||
[[ -f "${REQUEST_FILE}" ]] || exit 0
|
||
mv "${REQUEST_FILE}" "${PROCESSING_FILE}"
|
||
|
||
restore_request() {
|
||
[[ -f "${PROCESSING_FILE}" ]] && mv "${PROCESSING_FILE}" "${REQUEST_FILE}"
|
||
}
|
||
trap restore_request ERR
|
||
|
||
cd "${APP_DIR}"
|
||
git pull --ff-only origin main
|
||
docker compose up -d --build
|
||
rm -f "${PROCESSING_FILE}"
|
||
logger -p daemon.info -t manus-dashboard-self-deploy "Dashboard redéployé depuis le service hôte"
|