advancements for the startup and stopping script
This commit is contained in:
+36
-34
@@ -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
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user