🗃️ Committing everything that changed 🗃️

configs/gitea/
htdocs/www/js/errorpages/loaddomain.js
init/done/08-gitea.sh
This commit is contained in:
casjay 2024-07-17 19:48:45 -04:00
parent 5d4f990aa5
commit b962a4e391
Signed by untrusted user who does not match committer: jason
GPG Key ID: 1AB309F42A764145
3 changed files with 280 additions and 28 deletions

241
configs/gitea/app.ini Normal file
View File

@ -0,0 +1,241 @@
; https://docs.gitea.io/en-us/config-cheat-sheet/#default-configuration-non-appini-configuration
APP_NAME = REPLACE_GITEA_NAME
RUN_USER = REPLACE_GITEA_USER
RUN_MODE = REPLACE_GITEA_MODE
WORK_PATH = REPLACE_GITEA_DATA_DIR
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[server]
HTTP_PORT = REPLACE_GITEA_PORT
DOMAIN = REPLACE_GITEA_SERVER
ROOT_URL = REPLACE_GITEA_PROTO://REPLACE_GITEA_SERVER/
SSH_DOMAIN = REPLACE_GITEA_SERVER
DISABLE_SSH = false
START_SSH_SERVER = true
SSH_PORT = 7833
SSH_LISTEN_PORT = 22
SSH_CREATE_AUTHORIZED_KEYS_FILE = true
SSH_CREATE_AUTHORIZED_PRINCIPALS_FILE = true
SSH_AUTHORIZED_KEYS_BACKUP = true
SSH_ROOT_PATH = REPLACE_GITEA_DATA_DIR/ssh
APP_DATA_PATH = REPLACE_GITEA_DATA_DIR
OFFLINE_MODE = false
LFS_START_SERVER = true
LFS_JWT_SECRET = REPLACE_GITEA_LFS_JWT_SECRET
LOCAL_ROOT_URL = http://localhost:REPLACE_GITEA_PORT/
LANDING_PAGE = explore
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[lfs]
STORAGE_TYPE = local
LFS_CONTENT_PATH = REPLACE_GITEA_DATA_DIR/lfs
PATH = REPLACE_GITEA_DATA_DIR/lfs
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[storage.repo-archive]
STORAGE_TYPE = local
PATH = REPLACE_GITEA_DATA_DIR/repositories/archive
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[repository]
SCRIPT_TYPE = sh
ROOT = REPLACE_GITEA_DATA_DIR/repositories/root
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[repository.local]
LOCAL_COPY_PATH = REPLACE_GITEA_DATA_DIR/repositories/local
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[repository.upload]
TEMP_PATH = REPLACE_GITEA_DATA_DIR/repositories/uploads
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[attachment]
PATH = REPLACE_GITEA_DATA_DIR/attachments
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[indexer]
ISSUE_INDEXER_PATH = REPLACE_GITEA_DATA_DIR/indexers/issues.bleve
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[session]
PROVIDER = file
PROVIDER_CONFIG = REPLACE_GITEA_DATA_DIR/sessions
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[database]
DB_TYPE = REPLACE_DB_TYPE
HOST = REPLACE_SQL_HOST
USER = REPLACE_SQL_USER
PASSWD = REPLACE_SQL_PASS
NAME = REPLACE_SQL_DB
LOG_SQL = false
SCHEMA =
SSL_MODE = disable
CHARSET = utf8
PATH = REPLACE_DATABASE_DIR_GITEA/gitea.db
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[picture]
ENABLE_FEDERATED_AVATAR = true
DISABLE_GRAVATAR = false
AVATAR_UPLOAD_PATH = REPLACE_GITEA_DATA_DIR/avatars/users
REPOSITORY_AVATAR_UPLOAD_PATH = REPLACE_GITEA_DATA_DIR/avatars/repos
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[log]
MODE = console
LEVEL = info
LOG_ROTATE = true
DAILY_ROTATE = true
MAX_DAYS = 1
ROOT_PATH = REPLACE_GITEA_LOG_DIR
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[security]
INSTALL_LOCK = true
SECRET_KEY = REPLACE_GITEA_SECRET_KEY
REVERSE_PROXY_LIMIT = 1
REVERSE_PROXY_TRUSTED_PROXIES = *
INTERNAL_TOKEN = REPLACE_GITEA_INTERNAL_TOKEN
PASSWORD_HASH_ALGO = pbkdf2
MIN_PASSWORD_LENGTH = 8
PASSWORD_COMPLEXITY = on
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[time]
DEFAULT_UI_LOCATION = REPLACE_GITEA_TZ
FORMAT = RFC1123
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[service]
DISABLE_REGISTRATION = false
REQUIRE_SIGNIN_VIEW = false
REGISTER_EMAIL_CONFIRM = true
ENABLE_NOTIFY_MAIL = true
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = true
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = no-reply.REPLACE_GITEA_SERVER
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[actions]
ENABLED = true
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[mailer]
ENABLED = true
SMTP_ADDR = REPLACE_GITEA_EMAIL_RELAY
SMTP_PORT = 587
FROM = "REPLACE_GITEA_NAME" <no-reply@REPLACE_GITEA_SERVER>
USER =
PASSWD =
PROTOCOL =
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = true
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[oauth2]
ENABLE = true
JWT_SIGNING_ALGORITHM = RS256
ACCESS_TOKEN_EXPIRATION_TIME = 3600
REFRESH_TOKEN_EXPIRATION_TIME = 730
MAX_TOKEN_LENGTH = 32767
JWT_SECRET = REPLACE_GITEA_OAUTH_JWT_SECRET
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[oauth2_client]
REGISTER_EMAIL_CONFIRM = false
OPENID_CONNECT_SCOPES =
ENABLE_AUTO_REGISTRATION = true
USERNAME = nickname
UPDATE_AVATAR = false
ACCOUNT_LINKING = login
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ui]
DEFAULT_THEME = arc-green
SEARCH_REPO_DESCRIPTION = true
USE_SERVICE_WORKER = false
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ui.meta]
AUTHOR = gitea
DESCRIPTION = SelfHosted GIT Server
KEYWORDS = go,git,self-hosted,gitea
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ui.notification]
MIN_TIMEOUT = 10s
MAX_TIMEOUT = 60s
TIMEOUT_STEP = 10s
EVENT_SOURCE_UPDATE_TIME = 10s
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[cors]
ENABLED = true
SCHEME = http
ALLOW_DOMAIN = *
ALLOW_SUBDOMAIN = true
METHODS = GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS
MAX_AGE = 10m
ALLOW_CREDENTIALS = true
X_FRAME_OPTIONS = SAMEORIGIN
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[cron]
ENABLED = false
RUN_AT_START = false
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[cron.archive_cleanup]
ENABLED = true
RUN_AT_START = true
NO_SUCCESS_NOTICE = false
OLDER_THAN = 24h
SCHEDULE = @midnight
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[cron.update_mirrors]
ENABLED = true
RUN_AT_START = false
NO_SUCCESS_NOTICE = true
PULL_LIMIT = 50
PUSH_LIMIT = 50
SCHEDULE = @every 360m
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[cron.repo_health_check]
ENABLED = true
RUN_AT_START = false
NO_SUCCESS_NOTICE = false
TIMEOUT = 60s
SCHEDULE = @midnight
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[cron.delete_inactive_accounts]
ENABLED = false
RUN_AT_START = false
NO_SUCCESS_NOTICE = false
OLDER_THAN = 168h
SCHEDULE = @annually
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[cron.delete_repo_archives]
ENABLED = false
RUN_AT_START = false
NO_SUCCESS_NOTICE = false
SCHEDULE = @annually
[cron.update_checker]
[repository.pull-request]
DEFAULT_MERGE_STYLE = merge
[repository.signing]
DEFAULT_TRUST_MODEL = committer

View File

@ -3,5 +3,5 @@ function loadDomain() {
let port = location.port; let port = location.port;
let url = location.hostname; let url = location.hostname;
var display = document.getElementById('display-domain'); var display = document.getElementById('display-domain');
display.innerHTML = proto + '//' + url + ':' + port; display.innerHTML = `${req.protocol}://${req.get('host')}/${req.originalUrl}`;
} }

View File

@ -50,33 +50,37 @@ DATABASE_DIR="${DATABASE_DIR_GITEA:-/data/db/gitea}"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# port which service is listening on # port which service is listening on
SERVICE_PORT="" SERVICE_PORT="80"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# execute command variables # execute command variables
SERVICE_UID="0" # set the user id SERVICE_UID="0" # set the user id
SERVICE_USER="root" # execute command as another user SERVICE_USER="root" # execute command as another user
EXEC_CMD_BIN="gitea" # command to execute EXEC_CMD_BIN="gitea" # command to execute
EXEC_CMD_ARGS="--port $SERVICE_PORT --config $ETC_DIR/app.ini " # command arguments EXEC_CMD_ARGS="--port $SERVICE_PORT --config $ETC_DIR/app.ini " # command arguments
EXEC_CMD_ARGS+="--custom-path $ETC_DIR/custom --work-path $DATA_DIR/gitea " # continued EXEC_CMD_ARGS+="--custom-path $CONF_DIR/custom --work-path $DATA_DIR/gitea " # continued
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Is this service a web server # Is this service a web server
IS_WEB_SERVER="yes" IS_WEB_SERVER="no"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Is this service a database server # Is this service a database server
IS_DATABASE_SERVICE="no" IS_DATABASE_SERVICE="yes"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Additional variables # Additional variables
GITEA_USER="$SERVICE_USER" GITEA_USER="$SERVICE_USER"
GITEA_TZ="${TZ:-America/New_York}" GITEA_TZ="${TZ:-America/New_York}"
GITEA_PROTO="${GITEA_PROTO:-http}" GITEA_PROTO="${GITEA_PROTO:-http}"
GITEA_EMAIL_CONFIRM="${GITEA_EMAIL_CONFIRM:-false}" GITEA_EMAIL_CONFIRM="${GITEA_EMAIL_CONFIRM:-false}"
GITEA_MODE="${GITEA_MODE:-prod}"
GITEA_DB_TYPE="${GITEA_DB_TYPE:-sqlite3}" GITEA_DB_TYPE="${GITEA_DB_TYPE:-sqlite3}"
GITEA_DATABASE_DIR="${GITEA_DATABASE_DIR:-$DATABASE_DIR}"
GITEA_HOSTNAME="${DOMAINNAME:-$HOSTNAME}" GITEA_HOSTNAME="${DOMAINNAME:-$HOSTNAME}"
GITEA_PORT="${GITEA_PORT:-$SERVICE_PORT}" GITEA_PORT="${GITEA_PORT:-$SERVICE_PORT}"
GITEA_NAME="${GITEA_NAME:-Gitea - GIT Server}" GITEA_NAME="${GITEA_NAME:-Gitea - GIT Server}"
GITEA_SQL_DB_HOST="${GITEA_SQL_DB_HOST:-localhost}" GITEA_SQL_DB_HOST="${GITEA_SQL_DB_HOST:-localhost}"
GITEA_ADMIN="${GITEA_ADMIN:-gitea@${DOMAINNAME:-$HOSTNAME}}" GITEA_ADMIN="${GITEA_ADMIN:-gitea@${DOMAINNAME:-$HOSTNAME}}"
GITEA_EMAIL_RELAY="${GITEA_EMAIL_RELAY:-${EMAIL_RELAY:-localhost}}" GITEA_EMAIL_RELAY="${GITEA_EMAIL_RELAY:-${EMAIL_RELAY:-localhost}}"
GITEA_SECRET_KEY="${GITEA_SECRET_KEY:-$($EXEC_CMD_BIN generate secret SECRET_KEY)}"
GITEA_OAUTH_JWT_SECRET="${GITEA_OAUTH_JWT_SECRET:-$($EXEC_CMD_BIN generate secret JWT_SECRET)}"
GITEA_LFS_JWT_SECRET="${GITEA_LFS_JWT_SECRET:-$($EXEC_CMD_BIN generate secret LFS_JWT_SECRET)}" GITEA_LFS_JWT_SECRET="${GITEA_LFS_JWT_SECRET:-$($EXEC_CMD_BIN generate secret LFS_JWT_SECRET)}"
GITEA_INTERNAL_TOKEN="${GITEA_INTERNAL_TOKEN:-$($EXEC_CMD_BIN generate secret INTERNAL_TOKEN)}" GITEA_INTERNAL_TOKEN="${GITEA_INTERNAL_TOKEN:-$($EXEC_CMD_BIN generate secret INTERNAL_TOKEN)}"
[ "$GITEA_EMAIL_CONFIRM" = "yes" ] && GITEA_EMAIL_CONFIRM="true" [ "$GITEA_EMAIL_CONFIRM" = "yes" ] && GITEA_EMAIL_CONFIRM="true"
@ -140,27 +144,34 @@ __update_conf_files() {
# create directories if variable is yes" # create directories if variable is yes"
[ "$IS_WEB_SERVER" = "yes" ] && APPLICATION_DIRS="$APPLICATION_DIRS $WWW_DIR" && { [ -d "$WWW_DIR" ] || { (echo "Creating directory $WWW_DIR with permissions 777" && mkdir -p "$WWW_DIR" && chmod -f 777 "$WWW_DIR") |& tee -a "$LOG_DIR/init.txt" &>/dev/null; }; } [ "$IS_WEB_SERVER" = "yes" ] && APPLICATION_DIRS="$APPLICATION_DIRS $WWW_DIR" && { [ -d "$WWW_DIR" ] || { (echo "Creating directory $WWW_DIR with permissions 777" && mkdir -p "$WWW_DIR" && chmod -f 777 "$WWW_DIR") |& tee -a "$LOG_DIR/init.txt" &>/dev/null; }; }
[ "$IS_DATABASE_SERVICE" = "yes" ] && APPLICATION_DIRS="$APPLICATION_DIRS $DATABASE_DIR" && { [ -d "$DATABASE_DIR" ] || { (echo "Creating directory $DATABASE_DIR with permissions 777" && mkdir -p "$DATABASE_DIR" && chmod -f 777 "$DATABASE_DIR") |& tee -a "$LOG_DIR/init.txt" &>/dev/null; }; } [ "$IS_DATABASE_SERVICE" = "yes" ] && APPLICATION_DIRS="$APPLICATION_DIRS $DATABASE_DIR" && { [ -d "$DATABASE_DIR" ] || { (echo "Creating directory $DATABASE_DIR with permissions 777" && mkdir -p "$DATABASE_DIR" && chmod -f 777 "$DATABASE_DIR") |& tee -a "$LOG_DIR/init.txt" &>/dev/null; }; }
# replace variables
sed -i "s|REPLACE_GITEA_NAME|$GITEA_NAME|g" "$CONF_DIR/app.ini"
#
__replace "REPLACE_GITEA_LOG_DIR" "$LOG_DIR" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_TZ" "$GITEA_TZ" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_PORT" "$GITEA_PORT" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_USER" "$GITEA_USER" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_MODE" "$GITEA_MODE" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_PROTO" "$GITEA_PROTO" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_ADMIN" "$GITEA_ADMIN" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_SERVER" "$GITEA_SERVER" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_DATA_DIR" "$DATA_DIR/gitea" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_EMAIL_RELAY" "$GITEA_EMAIL_RELAY" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_EMAIL_CONFIRM" "$GITEA_EMAIL_CONFIRM" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_SECRET_KEY" "$GITEA_SECRET_KEY" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_INTERNAL_TOKEN" "$GITEA_INTERNAL_TOKEN" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_LFS_JWT_SECRET" "$GITEA_LFS_JWT_SECRET" "$CONF_DIR/app.ini"
__replace "REPLACE_GITEA_OAUTH_JWT_SECRET" "$GITEA_OAUTH_JWT_SECRET" "$CONF_DIR/app.ini"
# database settings
__replace "REPLACE_DB_TYPE" "$GITEA_DB_TYPE" "$CONF_DIR/app.ini"
[ -n "$GITEA_SQL_DB" ] && __replace "REPLACE_SQL_DB" "$GITEA_SQL_DB" "$CONF_DIR/app.ini"
[ -n "$GITEA_SQL_USER" ] && __replace "REPLACE_SQL_USER" "$GITEA_SQL_USER" "$CONF_DIR/app.ini"
[ -n "$GITEA_SQL_PASS" ] && __replace "REPLACE_SQL_PASS" "$GITEA_SQL_PASS" "$CONF_DIR/app.ini"
[ -n "$GITEA_SQL_DB_HOST" ] && __replace "REPLACE_SQL_HOST" "$GITEA_SQL_DB_HOST" "$CONF_DIR/app.ini"
[ "$GITEA_DB_TYPE" = "sqlite3" ] && __replace "REPLACE_DATABASE_DIR_GITEA" "$DATABASE_DIR" "$CONF_DIR/app.ini"
# copy config files to system # copy config files to system
__file_copy "$CONF_DIR/." "$ETC_DIR/" |& tee -a "$LOG_DIR/init.txt" &>/dev/null __file_copy "$CONF_DIR/." "$ETC_DIR/" |& tee -a "$LOG_DIR/init.txt" &>/dev/null
# replace variables
sed -i "s|REPLACE_GITEA_NAME|$GITEA_NAME|g" "$ETC_DIR/app.ini"
#
__replace "REPLACE_GITEA_TZ" "$GITEA_TZ" "$ETC_DIR/app.ini"
__replace "REPLACE_GITEA_PORT" "$GITEA_PORT" "$ETC_DIR/app.ini"
__replace "REPLACE_GITEA_USER" "$GITEA_USER" "$ETC_DIR/app.ini"
__replace "REPLACE_GITEA_PROTO" "$GITEA_PROTO" "$ETC_DIR/app.ini"
__replace "REPLACE_GITEA_ADMIN" "$GITEA_ADMIN" "$ETC_DIR/app.ini"
__replace "REPLACE_GITEA_SERVER" "$GITEA_SERVER" "$ETC_DIR/app.ini"
__replace "REPLACE_GITEA_EMAIL_RELAY" "$GITEA_EMAIL_RELAY" "$ETC_DIR/app.ini"
__replace "REPLACE_GITEA_EMAIL_CONFIRM" "$GITEA_EMAIL_CONFIRM" "$ETC_DIR/app.ini"
__replace "REPLACE_GITEA_INTERNAL_TOKEN" "$GITEA_INTERNAL_TOKEN" "$ETC_DIR/app.ini"
__replace "REPLACE_GITEA_LFS_JWT_SECRET" "$GITEA_LFS_JWT_SECRET" "$ETC_DIR/app.ini"
# database settings
__replace "REPLACE_DB_TYPE" "$GITEA_DB_TYPE" "$ETC_DIR/app.ini"
[ -n "$GITEA_SQL_DB" ] && __replace "REPLACE_SQL_DB" "$GITEA_SQL_DB" "$ETC_DIR/app.ini"
[ -n "$GITEA_SQL_USER" ] && __replace "REPLACE_SQL_USER" "$GITEA_SQL_USER" "$ETC_DIR/app.ini"
[ -n "$GITEA_SQL_PASS" ] && __replace "REPLACE_SQL_PASS" "$GITEA_SQL_PASS" "$ETC_DIR/app.ini"
[ -n "$GITEA_SQL_DB_HOST" ] && __replace "REPLACE_SQL_HOST" "$GITEA_SQL_DB_HOST" "$ETC_DIR/app.ini"
# custom commands # custom commands
# other # other