version 1

This commit is contained in:
2025-11-20 22:45:38 +01:00
commit a2b6bc848f
5 changed files with 129 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
.env
.DS_Store
db_dumps/

48
config/app.ini Normal file
View File

@@ -0,0 +1,48 @@
WORK_PATH = /data/gitea
[database]
DB_TYPE = sqlite3
PATH = /data/gitea/gitea.db
LOG_SQL = false
[server]
DOMAIN = gitea.knusperkerne.de
ROOT_URL = https://gitea.knusperkerne.de/
SSH_PORT = 22
HTTP_PORT = 3000
PROTOCOL = http
DISABLE_SSH = false
START_SSH_SERVER = false
LFS_START_SERVER = true
LFS_JWT_SECRET = 2xM3-DRC9F9_bp43VPQLOEkmO0pqVSJB5CqNp4h_PeA
[security]
INSTALL_LOCK = true
SECRET_KEY = Z675CFjgVmLFGkjc6cMRRT2Nk0nZLHKK
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NjIyOTg5NTJ9.RhtwHQ-B88_QzFqxB8U6lk_KQ2LZ4WEF99VeO-I0ZaU
[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DISABLE_REGISTRATION = true
[admin]
DEFAULT_ADMIN_NAME = admin
DEFAULT_ADMIN_PASSWORD = VcIRBERKGhUfEzdHyoxAV2JEcAu0D3J1
DEFAULT_ADMIN_EMAIL = lklemstein@axway.com
[oauth2]
JWT_SECRET = sqDdGTpJRLaIuX3bioYYGGMNL_WiyyVNJ-IrFXkCnKA
[mailer]
ENABLED = true
FROM = Gitea <knusperkerne@posteo.de>
PROTOCOL = smtp
SMTP_ADDR = posteo.de
SMTP_PORT = 587
IS_TLS_ENABLED = true
USER = knusperkerne@posteo.de
PASSWD = KOLVS2+xo47!7HUlRfBp
HELO_HOSTNAME = gitea.knusperkerne.de
SKIP_VERIFY = false

26
docker-compose.yml Normal file
View File

@@ -0,0 +1,26 @@
---
services:
gitea:
container_name: gitea-app
image: gitea/gitea:1.25
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- data:/data
- ./config/app.ini:/data/gitea/conf/app.ini:ro
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "127.0.0.1:13000:3000"
- "127.0.0.1:13022:22"
networks:
- gitea
networks:
gitea:
driver: bridge
volumes:
data:

1
private/pwd_lars Normal file
View File

@@ -0,0 +1 @@
J9GzdGPg0RKBmKVy6Zutgj1URLAopnCM

51
tools/create_admin.sh Executable file
View 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."