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

184
02/02-k-git-server-deploy.99.sh Executable file
View File

@@ -0,0 +1,184 @@
#!/bin/bash
#===============================================================================
# ШАГ 99: ФИНАЛЬНАЯ ПРОВЕРКА
#===============================================================================
# Запуск: sudo bash 02-k-git-server-deploy.99.sh
#===============================================================================
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
source "$SCRIPT_DIR/02-k-git-server-deploy.00.sh"
init_log
check_root
print_header "ШАГ 99: ФИНАЛЬНАЯ ПРОВЕРКА"
echo ""
echo -e "${BLUE}================================================================${NC}"
echo -e "${BLUE} ПРОВЕРКА КОМПОНЕНТОВ СИСТЕМЫ${NC}"
echo -e "${BLUE}================================================================${NC}"
#-------------------------------------------------------------------------------
# Проверка сервисов
#-------------------------------------------------------------------------------
echo ""
echo "Статус сервисов:"
echo ""
# Gitea
if service_running gitea; then
echo -e " Gitea: ${GREEN}OK${NC} (port 3000)"
else
echo -e " Gitea: ${RED}FAILED${NC}"
fi
# Nginx
if service_running nginx; then
echo -e " Nginx: ${GREEN}OK${NC} (ports 80, 443)"
else
echo -e " Nginx: ${RED}FAILED${NC}"
fi
# SSH
if service_running sshd || service_running ssh; then
echo -e " SSH: ${GREEN}OK${NC} (port 22)"
else
echo -e " SSH: ${RED}FAILED${NC}"
fi
# Certbot timer
if service_running certbot.timer; then
echo -e " Certbot: ${GREEN}OK${NC} (auto-renewal)"
else
echo -e " Certbot: ${YELLOW}WARNING${NC} (timer not running)"
fi
#-------------------------------------------------------------------------------
# Проверка SSL
#-------------------------------------------------------------------------------
echo ""
echo "SSL-сертификат:"
CERT_PATH="/etc/letsencrypt/live/$GIT_DOMAIN/fullchain.pem"
if [[ -f "$CERT_PATH" ]]; then
EXPIRE=$(openssl x509 -enddate -noout -in "$CERT_PATH" 2>/dev/null | cut -d= -f2)
ISSUER=$(openssl x509 -issuer -noout -in "$CERT_PATH" 2>/dev/null | cut -d= -f2)
echo -e " Статус: ${GREEN}OK${NC}"
echo " Истекает: $EXPIRE"
echo " Издатель: $ISSUER"
else
echo -e " Статус: ${RED}НЕ НАЙДЕН${NC}"
fi
#-------------------------------------------------------------------------------
# Проверка DNS
#-------------------------------------------------------------------------------
echo ""
echo "DNS:"
if host $GIT_DOMAIN &>/dev/null; then
GIT_IP=$(host $GIT_DOMAIN | head -1 | awk '{print $NF}')
echo -e " $GIT_DOMAIN: ${GREEN}$GIT_IP${NC}"
else
echo -e " $GIT_DOMAIN: ${RED}НЕ РЕЗОЛВИТСЯ${NC}"
fi
#-------------------------------------------------------------------------------
# Проверка доступности
#-------------------------------------------------------------------------------
echo ""
echo "Доступность:"
# HTTP check
if curl -sI "http://$GIT_DOMAIN" 2>/dev/null | head -1 | grep -q "200\|301"; then
echo -e " HTTP: ${GREEN}OK${NC}"
else
echo -e " HTTP: ${YELLOW}CHECK MANUALLY${NC}"
fi
# HTTPS check
if curl -skI "https://$GIT_DOMAIN" 2>/dev/null | head -1 | grep -q "200"; then
echo -e " HTTPS: ${GREEN}OK${NC}"
else
echo -e " HTTPS: ${YELLOW}CHECK MANUALLY${NC}"
fi
# Gitea API check
if curl -s "http://localhost:3000/api/v1/version" 2>/dev/null | grep -q "version"; then
echo -e " Gitea API: ${GREEN}OK${NC}"
else
echo -e " Gitea API: ${YELLOW}CHECK MANUALLY${NC}"
fi
#-------------------------------------------------------------------------------
# Проверка firewall
#-------------------------------------------------------------------------------
echo ""
echo "Firewall (nftables):"
if nft list table inet filter &>/dev/null; then
OPEN_PORTS=$(nft list table inet filter 2>/dev/null | grep "dport" | grep -oE "dport [0-9]+" | sort -u | tr '\n' ' ')
echo -e " Статус: ${GREEN}OK${NC}"
echo " Открытые: $OPEN_PORTS"
else
echo -e " Статус: ${YELLOW}НЕ НАСТРОЕН${NC}"
fi
#-------------------------------------------------------------------------------
# Проверка скриптов
#-------------------------------------------------------------------------------
echo ""
echo "Скрипты:"
if [[ -x /usr/local/bin/gitea-backup.sh ]]; then
echo -e " backup: ${GREEN}OK${NC}"
else
echo -e " backup: ${RED}MISSING${NC}"
fi
if [[ -x /usr/local/bin/gitea-restore.sh ]]; then
echo -e " restore: ${GREEN}OK${NC}"
else
echo -e " restore: ${RED}MISSING${NC}"
fi
if [[ -x /usr/local/bin/gitea-to-github.sh ]]; then
echo -e " to-github: ${GREEN}OK${NC}"
else
echo -e " to-github: ${RED}MISSING${NC}"
fi
#-------------------------------------------------------------------------------
# Итоговая информация
#-------------------------------------------------------------------------------
echo ""
echo -e "${GREEN}================================================================${NC}"
echo -e "${GREEN} РАЗВЁРТЫВАНИЕ ЗАВЕРШЕНО${NC}"
echo -e "${GREEN}================================================================${NC}"
echo ""
echo "Веб-интерфейс: https://$GIT_DOMAIN"
echo "SSH git clone: git clone git@$GIT_DOMAIN:user/repo.git"
echo "HTTPS git clone: git clone https://$GIT_DOMAIN/user/repo.git"
echo ""
if [[ -f /root/.gitea-admin-credentials ]]; then
echo "Администратор: см. /root/.gitea-admin-credentials"
else
echo "Администратор: создайте через веб-интерфейс"
fi
echo ""
echo "Полезные команды:"
echo " Статус Gitea: systemctl status gitea"
echo " Логи Gitea: journalctl -u gitea -f"
echo " Бэкап: /usr/local/bin/gitea-backup.sh"
echo " Восстановление: /usr/local/bin/gitea-restore.sh /path/to/backup"
echo ""
echo "Следующие шаги:"
echo " 1. Войдите в веб-интерфейс: https://$GIT_DOMAIN"
echo " 2. Смените пароль администратора"
echo " 3. Создайте пользователей"
echo " 4. Добавьте SSH-ключи пользователей"
echo " 5. Создайте репозитории"
echo " 6. Настройте NFS для бэкапов (опционально)"
echo ""