#!/bin/bash #=============================================================================== # ШАГ 5: КОНФИГУРАЦИЯ GITEA #=============================================================================== # Запуск: sudo bash 02-k-git-server-deploy.05.sh #=============================================================================== SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) source "$SCRIPT_DIR/02-k-git-server-deploy.00.sh" init_log check_root print_header "ШАГ 5: КОНФИГУРАЦИЯ GITEA" #------------------------------------------------------------------------------- # 5.1 Проверка существующей конфигурации #------------------------------------------------------------------------------- print_subheader "Проверка конфигурации" if [[ -f "$GITEA_CONFIG" ]] && grep -q "INSTALL_LOCK = true" "$GITEA_CONFIG"; then print_warning "Конфигурация уже существует и заблокирована" read -p "Перезаписать конфигурацию? [y/N]: " REWRITE if [[ ! "$REWRITE" =~ ^[Yy]$ ]]; then print_info "Конфигурация оставлена без изменений" print_success "Шаг 5 завершён (пропуск)" exit 0 fi # Backup существующей конфигурации cp "$GITEA_CONFIG" "${GITEA_CONFIG}.backup.$(date +%Y%m%d_%H%M%S)" fi #------------------------------------------------------------------------------- # 5.2 Генерация секретных ключей #------------------------------------------------------------------------------- print_subheader "Генерация секретных ключей" SECRET_KEY=$(generate_secret) INTERNAL_TOKEN=$($GITEA_BIN generate secret INTERNAL_TOKEN 2>/dev/null || generate_secret) JWT_SECRET=$($GITEA_BIN generate secret JWT_SECRET 2>/dev/null || generate_secret) print_success "Секретные ключи сгенерированы" #------------------------------------------------------------------------------- # 5.3 Создание конфигурационного файла #------------------------------------------------------------------------------- print_subheader "Создание конфигурации" cat > "$GITEA_CONFIG" << EOF ; Gitea Configuration ; Автоматически сгенерировано скриптом развёртывания [server] APP_DATA_PATH = $GITEA_DATA/data DOMAIN = $GIT_DOMAIN HTTP_PORT = 3000 ROOT_URL = https://$GIT_DOMAIN/ DISABLE_SSH = false SSH_PORT = 22 START_SSH_SERVER = false LFS_START_SERVER = true [lfs] PATH = $GITEA_DATA/data/lfs [database] DB_TYPE = sqlite3 PATH = $GITEA_DATA/data/gitea.db [repository] ROOT = $GITEA_DATA/repositories DEFAULT_PUSH_CREATE_PRIVATE = true MAX_CREATION_LIMIT = 50 [security] INSTALL_LOCK = true SECRET_KEY = $SECRET_KEY INTERNAL_TOKEN = $INTERNAL_TOKEN [service] DISABLE_REGISTRATION = false REQUIRE_SIGNIN_VIEW = false ENABLE_NOTIFY_MAIL = false DEFAULT_KEEP_EMAIL_PRIVATE = true ENABLE_BASIC_AUTHENTICATION = true [oauth2] JWT_SECRET = $JWT_SECRET [mailer] ENABLED = false [session] PROVIDER = file PROVIDER_CONFIG = $GITEA_DATA/data/sessions [picture] AVATAR_UPLOAD_PATH = $GITEA_DATA/data/avatars REPOSITORY_AVATAR_UPLOAD_PATH = $GITEA_DATA/data/repo-avatars [attachment] PATH = $GITEA_DATA/data/attachments [log] ROOT_PATH = $GITEA_DATA/log MODE = file LEVEL = Info [other] SHOW_FOOTER_VERSION = false SHOW_FOOTER_TEMPLATE_LOAD_TIME = false EOF print_success "Конфигурация создана" #------------------------------------------------------------------------------- # 5.4 Установка прав #------------------------------------------------------------------------------- print_subheader "Установка прав" chown root:git "$GITEA_CONFIG" chmod 640 "$GITEA_CONFIG" print_success "Права установлены" print_success "Шаг 5 завершён: Конфигурация Gitea создана"