- Use --must-change-password=false (equals syntax) in gitea CLI The space-separated form was parsed as boolean flag + extra arg - Fix auto-setup readiness check: use Basic Auth instead of unauthenticated /version endpoint (blocked by REQUIRE_SIGNIN_VIEW) - Increase retries to 8 to accommodate gitea-init container startup Bunker Admin
51 lines
1.9 KiB
Bash
Executable File
51 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
# =============================================================================
|
|
# Gitea Admin User Initialization
|
|
# =============================================================================
|
|
# Runs as a separate init container (like nocodb-init) AFTER gitea-app is healthy.
|
|
# Shares the gitea-data volume so the app.ini config is available.
|
|
# Creates the admin user if it doesn't exist, then exits.
|
|
# =============================================================================
|
|
set -e
|
|
|
|
PREFIX="[gitea-init]"
|
|
log() { echo "$PREFIX $1"; }
|
|
|
|
# The gitea binary needs app.ini to know the database connection.
|
|
# On the Gitea Docker image, GITEA_CUSTOM defaults to /data/gitea
|
|
# and app.ini lives at /data/gitea/conf/app.ini (created by gitea-app's entrypoint).
|
|
# Gitea refuses to run as root. The init container bypasses the Gitea entrypoint,
|
|
# so we must drop privileges ourselves. Re-exec as 'git' user via su-exec.
|
|
if [ "$(id -u)" = "0" ]; then
|
|
exec su-exec git "$0" "$@"
|
|
fi
|
|
|
|
export GITEA_CUSTOM="${GITEA_CUSTOM:-/data/gitea}"
|
|
|
|
if [ ! -f "$GITEA_CUSTOM/conf/app.ini" ]; then
|
|
log "ERROR: No app.ini found at $GITEA_CUSTOM/conf/app.ini"
|
|
log "This means gitea-app hasn't completed its first startup yet."
|
|
exit 1
|
|
fi
|
|
|
|
log "Found app.ini at $GITEA_CUSTOM/conf/app.ini"
|
|
|
|
if [ -z "$GITEA_ADMIN_USER" ] || [ -z "$GITEA_ADMIN_PASSWORD" ] || [ -z "$GITEA_ADMIN_EMAIL" ]; then
|
|
log "No GITEA_ADMIN_USER/PASSWORD/EMAIL set — skipping"
|
|
exit 0
|
|
fi
|
|
|
|
# Create admin user (idempotent — returns non-zero if user exists)
|
|
log "Creating admin user '${GITEA_ADMIN_USER}' (${GITEA_ADMIN_EMAIL})..."
|
|
if gitea admin user create --admin \
|
|
--username "$GITEA_ADMIN_USER" \
|
|
--password "$GITEA_ADMIN_PASSWORD" \
|
|
--email "$GITEA_ADMIN_EMAIL" \
|
|
--must-change-password=false 2>&1; then
|
|
log "Admin user created successfully"
|
|
else
|
|
log "Admin user already exists (or creation skipped)"
|
|
fi
|
|
|
|
log "Done"
|