From 50117c821993560a9a15ec1a4f1808104ee390c0 Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Sun, 20 Jul 2025 16:42:11 +0200 Subject: [PATCH] Update 99-run.sh --- ente/rootfs/etc/cont-init.d/99-run.sh | 271 +++++++++++++------------- 1 file changed, 134 insertions(+), 137 deletions(-) diff --git a/ente/rootfs/etc/cont-init.d/99-run.sh b/ente/rootfs/etc/cont-init.d/99-run.sh index 0b6596c32..497a618fc 100755 --- a/ente/rootfs/etc/cont-init.d/99-run.sh +++ b/ente/rootfs/etc/cont-init.d/99-run.sh @@ -38,34 +38,34 @@ S3_BUCKET="b2-eu-cen" USE_EXTERNAL_DB=false if bashio::config.true 'USE_EXTERNAL_DB'; then - USE_EXTERNAL_DB=true - bashio::log.warning "USE_EXTERNAL_DB enabled: will connect to external Postgres." + USE_EXTERNAL_DB=true + bashio::log.warning "USE_EXTERNAL_DB enabled: will connect to external Postgres." else - bashio::log.info "Using internal Postgres." + bashio::log.info "Using internal Postgres." fi DISABLE_WEB_UI=false if bashio::config.true 'DISABLE_WEB_UI'; then - DISABLE_WEB_UI=true + DISABLE_WEB_UI=true fi # Active DB connection target (may be overridden below) if $USE_EXTERNAL_DB; then - DB_HOST="$DB_HOST_EXT" - DB_PORT="$DB_PORT_EXT" + DB_HOST="$DB_HOST_EXT" + DB_PORT="$DB_PORT_EXT" else - DB_HOST="$DB_HOST_INTERNAL" - DB_PORT="$DB_PORT_INTERNAL" + DB_HOST="$DB_HOST_INTERNAL" + DB_PORT="$DB_PORT_INTERNAL" fi ############################################ # Ensure persistent dirs ############################################ mkdir -p /config/ente/custom-logs \ - /config/data \ - /config/minio-data \ - "$PGDATA" \ - /config/scripts/compose + /config/data \ + /config/minio-data \ + "$PGDATA" \ + /config/scripts/compose ############################################ # Locate binaries @@ -77,8 +77,8 @@ MC_BIN="/usr/local/bin/mc" MUSEUM_BIN="$(command -v museum || true)" [ -z "$MUSEUM_BIN" ] && [ -x /app/museum ] && MUSEUM_BIN=/app/museum -[ -z "$MUSEUM_BIN" ] && [ -x /museum ] && MUSEUM_BIN=/museum -[ -z "$MUSEUM_BIN" ] && MUSEUM_BIN=museum +[ -z "$MUSEUM_BIN" ] && [ -x /museum ] && MUSEUM_BIN=/museum +[ -z "$MUSEUM_BIN" ] && MUSEUM_BIN=museum # fallback in PATH WEB_PREP_BIN=/usr/local/bin/ente-web-prepare WEB_NGINX_CONF=/etc/ente-web/nginx.conf @@ -87,35 +87,33 @@ WEB_NGINX_CONF=/etc/ente-web/nginx.conf # Config generation ############################################ create_config() { - bashio::log.info "Generating new museum config at $CFG" - # small helpers - _rand_b64() { head -c "$1" /dev/urandom | base64 | tr -d '\n'; } - _rand_b64url() { head -c "$1" /dev/urandom | base64 | tr '+/' '-_' | tr -d '\n'; } + bashio::log.info "Generating new museum config at $CFG" + _rand_b64() { head -c "$1" /dev/urandom | base64 | tr -d '\n'; } + _rand_b64url() { head -c "$1" /dev/urandom | base64 | tr '+/' '-_' | tr -d '\n'; } - # Write minimal functional YAML; you can expand if you ship a richer template. - cat >"$CFG" <"$CFG" </dev/null; do - sleep 1 - done - bashio::log.info "Ensuring buckets..." - "$MC_BIN" mb -p "h0/${S3_BUCKET}" || true - "$MC_BIN" mb -p "h0/wasabi-eu-central-2-v3" || true - "$MC_BIN" mb -p "h0/scw-eu-fr-v3" || true - bashio::log.info "MinIO buckets ready." + bashio::log.info "Waiting for MinIO API..." + until "$MC_BIN" alias set h0 http://127.0.0.1:3200 "$MINIO_USER" "$MINIO_PASS" 2>/dev/null; do + sleep 1 + done + bashio::log.info "Ensuring buckets..." + "$MC_BIN" mb -p "h0/${S3_BUCKET}" || true + "$MC_BIN" mb -p "h0/wasabi-eu-central-2-v3" || true + "$MC_BIN" mb -p "h0/scw-eu-fr-v3" || true + bashio::log.info "MinIO buckets ready." } ############################################ # Web (static nginx bundle) ############################################ start_web() { - if $DISABLE_WEB_UI; then - bashio::log.info "Web UI disabled." - return 0 - fi + if $DISABLE_WEB_UI; then + bashio::log.info "Web UI disabled." + return 0 + fi - ENTE_API_ORIGIN="${ENTE_API_ORIGIN:-http://[HOST]:[PORT:8080]}" - ENTE_ALBUMS_ORIGIN="${ENTE_ALBUMS_ORIGIN:-${ENTE_API_ORIGIN}}" - export ENTE_API_ORIGIN ENTE_ALBUMS_ORIGIN + ENTE_API_ORIGIN="${ENTE_API_ORIGIN:-http://[HOST]:[PORT:8080]}" + ENTE_ALBUMS_ORIGIN="${ENTE_ALBUMS_ORIGIN:-${ENTE_API_ORIGIN}}" + export ENTE_API_ORIGIN ENTE_ALBUMS_ORIGIN - if [ -x "$WEB_PREP_BIN" ]; then - "$WEB_PREP_BIN" || bashio::log.warning "Web env substitution step failed (non‑fatal)." - else - bashio::log.warning "Web prep helper not found ($WEB_PREP_BIN); skipping substitution." - fi + if [ -x "$WEB_PREP_BIN" ]; then + "$WEB_PREP_BIN" || bashio::log.warning "Web env substitution step failed (non‑fatal)." + else + bashio::log.warning "Web prep helper not found ($WEB_PREP_BIN); skipping substitution." + fi - mkdir -p /run/nginx /var/log/nginx - if [ ! -f "$WEB_NGINX_CONF" ]; then - bashio::log.error "Missing nginx conf at $WEB_NGINX_CONF; cannot start web." - return 1 - fi + mkdir -p /run/nginx /var/log/nginx + if [ ! -f "$WEB_NGINX_CONF" ]; then + bashio::log.error "Missing nginx conf at $WEB_NGINX_CONF; cannot start web." + return 1 + fi - bashio::log.info "Starting Ente web (nginx, ports 3000‑3004)..." - nginx -c "$WEB_NGINX_CONF" -g 'daemon off;' & - WEB_PID=$! + bashio::log.info "Starting Ente web (nginx, ports 3000‑3004)..." + nginx -c "$WEB_NGINX_CONF" -g 'daemon off;' & + WEB_PID=$! } ############################################ # Museum (API) ############################################ start_museum_foreground() { - if [ ! -f "$CFG" ]; then - bashio::log.error "$CFG missing; cannot start museum." - return 1 - fi - if [ ! -x "$MUSEUM_BIN" ] && ! command -v "$MUSEUM_BIN" >/dev/null 2>&1; then - bashio::log.error "Museum binary not found; cannot launch Ente API." - return 1 - fi + if [ ! -f "$CFG" ]; then + bashio::log.error "$CFG missing; cannot start museum." + return 1 + fi + if [ ! -x "$MUSEUM_BIN" ] && ! command -v "$MUSEUM_BIN" >/dev/null 2>&1; then + bashio::log.error "Museum binary not found; cannot launch Ente API." + return 1 + fi - # Force env overrides (museum merges env > yaml) - if $USE_EXTERNAL_DB; then - export ENTE_DB_HOST="$DB_HOST_EXT" - export ENTE_DB_PORT="$DB_PORT_EXT" - else - export ENTE_DB_HOST="$DB_HOST_INTERNAL" - export ENTE_DB_PORT="$DB_PORT_INTERNAL" - fi - export ENTE_DB_USER="$DB_USER" - export ENTE_DB_PASSWORD="$DB_PASS" - export ENTE_DB_NAME="$DB_NAME" - export ENTE_DB_SSLMODE=disable + # Force env overrides (museum merges env > yaml) + if $USE_EXTERNAL_DB; then + export ENTE_DB_HOST="$DB_HOST_EXT" + export ENTE_DB_PORT="$DB_PORT_EXT" + else + export ENTE_DB_HOST="$DB_HOST_INTERNAL" + export ENTE_DB_PORT="$DB_PORT_INTERNAL" + fi + export ENTE_DB_USER="$DB_USER" + export ENTE_DB_PASSWORD="$DB_PASS" + export ENTE_DB_NAME="$DB_NAME" + export ENTE_DB_SSLMODE=disable - bashio::log.info "Starting museum (foreground)..." - exec "$MUSEUM_BIN" --config "$CFG" + bashio::log.info "Starting museum (foreground)..." + exec "$MUSEUM_BIN" --config "$CFG" } ############################################ @@ -276,9 +273,9 @@ start_museum_foreground() { bashio::log.info "=== Ente startup sequence ===" if [ ! -f "$CFG" ]; then - create_config + create_config else - bashio::log.info "Using existing $CFG." + bashio::log.info "Using existing $CFG." fi start_postgres @@ -290,5 +287,5 @@ wait_minio_ready_and_bucket start_web -# Foreground (keeps container alive) +# Foreground — keeps container alive start_museum_foreground