advancements for the startup and stopping script

This commit is contained in:
2026-07-12 12:50:06 +02:00
parent 43df6945cf
commit bd56dcbdc9
2 changed files with 41 additions and 35 deletions
+36 -34
View File
@@ -15,37 +15,7 @@ ensure_mongo_secrets() {
if [ -z "${MONGO_INITDB_ROOT_PASSWORD:-}" ]; then if [ -z "${MONGO_INITDB_ROOT_PASSWORD:-}" ]; then
MONGO_INITDB_ROOT_PASSWORD="$(openssl rand -hex 24)" MONGO_INITDB_ROOT_PASSWORD="$(openssl rand -hex 24)"
ensure_mongo_app_user() {
"${DOCKER_CMD[@]}" compose --env-file "$SECRETS_FILE" exec -T mongodb mongosh --quiet \
--username "$MONGO_INITDB_ROOT_USERNAME" \
--password "$MONGO_INITDB_ROOT_PASSWORD" \
--authenticationDatabase admin \
--eval '
const appDatabase = process.env.MONGO_DB_NAME || "Invario_Website";
const appUser = process.env.MONGO_APP_USER || "website_app";
const appPassword = process.env.MONGO_APP_PASSWORD;
if (!appPassword) {
throw new Error("Missing MONGO_APP_PASSWORD");
}
const appDb = db.getSiblingDB(appDatabase);
if (!appDb.getUser(appUser)) {
appDb.createUser({
user: appUser,
pwd: appPassword,
roles: [{ role: "readWrite", db: appDatabase }],
});
print("created app user");
} else {
print("app user already exists");
}
'
}
fi fi
ensure_mongo_app_user
if [ -z "${MONGO_APP_PASSWORD:-}" ]; then if [ -z "${MONGO_APP_PASSWORD:-}" ]; then
MONGO_APP_PASSWORD="$(openssl rand -hex 24)" MONGO_APP_PASSWORD="$(openssl rand -hex 24)"
fi fi
@@ -62,6 +32,34 @@ EOF
export MONGO_INITDB_ROOT_USERNAME MONGO_INITDB_ROOT_PASSWORD MONGO_APP_USER MONGO_APP_PASSWORD export MONGO_INITDB_ROOT_USERNAME MONGO_INITDB_ROOT_PASSWORD MONGO_APP_USER MONGO_APP_PASSWORD
} }
ensure_mongo_app_user() {
"${DOCKER_CMD[@]}" compose --env-file "$SECRETS_FILE" exec -T mongodb mongosh --quiet \
--username "$MONGO_INITDB_ROOT_USERNAME" \
--password "$MONGO_INITDB_ROOT_PASSWORD" \
--authenticationDatabase admin \
--eval '
const appDatabase = process.env.MONGO_DB_NAME || "Invario_Website";
const appUser = process.env.MONGO_APP_USER || "website_app";
const appPassword = process.env.MONGO_APP_PASSWORD;
if (!appPassword) {
throw new Error("Missing MONGO_APP_PASSWORD");
}
const appDb = db.getSiblingDB(appDatabase);
if (!appDb.getUser(appUser)) {
appDb.createUser({
user: appUser,
pwd: appPassword,
roles: [{ role: "readWrite", db: appDatabase }],
});
print("created app user");
} else {
print("app user already exists");
}
'
}
resolve_docker_cmd() { resolve_docker_cmd() {
if docker info >/dev/null 2>&1; then if docker info >/dev/null 2>&1; then
DOCKER_CMD=(docker) DOCKER_CMD=(docker)
@@ -88,6 +86,10 @@ resolve_docker_cmd() {
exit 3 exit 3
} }
compose() {
"${DOCKER_CMD[@]}" compose --env-file "$SECRETS_FILE" "$@"
}
export SESSION_COOKIE_SECURE="0" export SESSION_COOKIE_SECURE="0"
export INSTANCE_TLS_MODE="development" export INSTANCE_TLS_MODE="development"
export INSTANCE_PARENT_DOMAIN="${INSTANCE_PARENT_DOMAIN:-meine-domain}" export INSTANCE_PARENT_DOMAIN="${INSTANCE_PARENT_DOMAIN:-meine-domain}"
@@ -109,9 +111,9 @@ fi
resolve_docker_cmd resolve_docker_cmd
"${DOCKER_CMD[@]}" compose --env-file "$SECRETS_FILE" build website compose build website
"${DOCKER_CMD[@]}" compose --env-file "$SECRETS_FILE" up -d mongodb compose up -d mongodb
"${DOCKER_CMD[@]}" compose --env-file "$SECRETS_FILE" up -d --no-deps website compose up -d --no-deps website
# Wait for website to become healthy (simple HTTP check) # Wait for website to become healthy (simple HTTP check)
check_url="http://localhost:4999" check_url="http://localhost:4999"
@@ -132,7 +134,7 @@ done
if [ $elapsed -ge $timeout_seconds ]; then if [ $elapsed -ge $timeout_seconds ]; then
echo "[FEHLER] Website nicht erreichbar nach ${timeout_seconds}s. Sammle Diagnosedaten..." echo "[FEHLER] Website nicht erreichbar nach ${timeout_seconds}s. Sammle Diagnosedaten..."
echo "--- docker compose ps ---" echo "--- docker compose ps ---"
"${DOCKER_CMD[@]}" compose --env-file "$SECRETS_FILE" ps || true compose ps || true
echo "--- docker logs website (tail 200) ---" echo "--- docker logs website (tail 200) ---"
"${DOCKER_CMD[@]}" logs --tail 200 website-website-1 || true "${DOCKER_CMD[@]}" logs --tail 200 website-website-1 || true
echo "Bitte prüfe Container-Logs und nginx-Konfiguration." echo "Bitte prüfe Container-Logs und nginx-Konfiguration."
+5 -1
View File
@@ -52,9 +52,13 @@ resolve_docker_cmd() {
exit 3 exit 3
} }
compose() {
"${DOCKER_CMD[@]}" compose --env-file "$COMPOSE_ENV_FILE" "$@"
}
resolve_docker_cmd resolve_docker_cmd
echo "Stopping WEBSITE stack" echo "Stopping WEBSITE stack"
"${DOCKER_CMD[@]}" compose --env-file "$COMPOSE_ENV_FILE" down compose down
echo "Website stack stopped" echo "Website stack stopped"