initial commit

This commit is contained in:
unknown
2026-02-19 20:05:04 +03:00
parent 1ee67d8159
commit 05097d5dda
32 changed files with 4413 additions and 3 deletions

107
02/02-k-git-server-deploy.07.sh Executable file
View File

@@ -0,0 +1,107 @@
#!/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)"