185 lines
6.5 KiB
Bash
Executable File
185 lines
6.5 KiB
Bash
Executable File
#!/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 ""
|