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

185 lines
6.5 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
#===============================================================================
# ШАГ 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 ""