#!/bin/bash #=============================================================================== # ШАГ 7: УСТАНОВКА NGINX (HTTP ONLY) #=============================================================================== # Запуск: sudo bash 02-k-git-server-deploy.07.sh # # Важно: Этот шаг создаёт только HTTP конфигурацию. # SSL-сертификаты получаются на шаге 8. # HTTPS активируется на шаге 9. #=============================================================================== SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) source "$SCRIPT_DIR/02-k-git-server-deploy.00.sh" init_log check_root print_header "ШАГ 7: УСТАНОВКА NGINX (HTTP ONLY)" #------------------------------------------------------------------------------- # 7.1 Установка Nginx #------------------------------------------------------------------------------- print_subheader "Установка Nginx" install_packages nginx systemctl enable nginx print_success "Nginx установлен" #------------------------------------------------------------------------------- # 7.2 Создание директории для Certbot #------------------------------------------------------------------------------- print_subheader "Создание директории для Certbot" create_dir "/var/www/certbot" "www-data:www-data" "755" #------------------------------------------------------------------------------- # 7.3 Создание HTTP-only конфигурации #------------------------------------------------------------------------------- print_subheader "Создание HTTP конфигурации" # Временная HTTP-only конфигурация для получения сертификата cat > /etc/nginx/sites-available/gitea << EOF # Gitea HTTP Configuration (временная для получения SSL) # После получения сертификата будет заменена на HTTPS конфигурацию server { listen 80; listen [::]:80; server_name $GIT_DOMAIN; # Для Let's Encrypt challenge location /.well-known/acme-challenge/ { root /var/www/certbot; } # Проксирование в Gitea location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host \$host; proxy_set_header X-Real-IP \$remote_addr; proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto \$scheme; # Таймауты для git операций proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; # Размер для больших push client_max_body_size 100M; } # Логи access_log /var/log/nginx/gitea.access.log; error_log /var/log/nginx/gitea.error.log; } EOF print_success "HTTP конфигурация создана" #------------------------------------------------------------------------------- # 7.4 Активация конфигурации #------------------------------------------------------------------------------- print_subheader "Активация конфигурации" # Удалить default если существует rm -f /etc/nginx/sites-enabled/default # Активировать gitea ln -sf /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/ #------------------------------------------------------------------------------- # 7.5 Проверка и перезагрузка #------------------------------------------------------------------------------- print_subheader "Проверка конфигурации" if check_nginx_config; then systemctl reload nginx print_success "Nginx перезагружен" else print_error "Ошибка в конфигурации Nginx" exit 1 fi print_info "Веб-интерфейс доступен на: http://$GIT_DOMAIN" print_success "Шаг 7 завершён: Nginx установлен (HTTP only)"