Files
gitserver/02/02-k-git-server-deploy.07.sh
2026-02-19 20:05:04 +03:00

108 lines
4.0 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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)"