108 lines
4.0 KiB
Bash
Executable File
108 lines
4.0 KiB
Bash
Executable File
#!/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)"
|