version 1
This commit is contained in:
51
tools/create_admin.sh
Executable file
51
tools/create_admin.sh
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# create_admin.sh
|
||||
# Creates the Gitea admin user inside the running container.
|
||||
#
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
CONTAINER_NAME="gitea-app"
|
||||
APP_INI_PATH="/data/gitea/conf/app.ini"
|
||||
GITEA_BIN="/usr/local/bin/gitea"
|
||||
|
||||
# --- extract values from app.ini on the host ---
|
||||
get_value() {
|
||||
local section="$1"
|
||||
local key="$2"
|
||||
awk -F'=' -v s="[$section]" -v k="$key" '
|
||||
$0==s {in_section=1; next}
|
||||
/^\[/ {in_section=0}
|
||||
in_section && $1~"^"k"[[:space:]]*$" {
|
||||
gsub(/^[[:space:]]+|[[:space:]]+$/, "", $2)
|
||||
print $2
|
||||
exit
|
||||
}
|
||||
' "config/app.ini"
|
||||
}
|
||||
|
||||
ADMIN_USER=$(get_value admin DEFAULT_ADMIN_NAME)
|
||||
ADMIN_PASS=$(get_value admin DEFAULT_ADMIN_PASSWORD)
|
||||
ADMIN_MAIL=$(get_value admin DEFAULT_ADMIN_EMAIL)
|
||||
|
||||
if [[ -z "$ADMIN_USER" || -z "$ADMIN_PASS" || -z "$ADMIN_MAIL" ]]; then
|
||||
echo "[ERROR] Missing admin fields in config/app.ini" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[INFO] Creating admin user '$ADMIN_USER' in container '$CONTAINER_NAME'..."
|
||||
|
||||
docker exec -u git -i "$CONTAINER_NAME" "$GITEA_BIN" admin user create \
|
||||
--config "$APP_INI_PATH" \
|
||||
--username "$ADMIN_USER" \
|
||||
--password "$ADMIN_PASS" \
|
||||
--email "$ADMIN_MAIL" \
|
||||
--admin 2>&1 | tee /tmp/gitea_create_admin.log
|
||||
|
||||
if grep -q "already exists" /tmp/gitea_create_admin.log; then
|
||||
echo "[INFO] User '$ADMIN_USER' already exists, skipping."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "[INFO] Admin user '$ADMIN_USER' created successfully."
|
||||
Reference in New Issue
Block a user