Spaces:
Paused
Paused
| set -e | |
| echo "--- Starting services ---" | |
| CURRENT_USER=$(whoami) | |
| CURRENT_UID=$(id -u) | |
| echo "Script running as user: ${CURRENT_USER} (UID: ${CURRENT_UID})" | |
| echo "HOME directory: ${HOME}" | |
| echo "Working directory: $(pwd)" | |
| # Проверка обязательных переменных для Telegram API (они должны быть установлены как ENV в Dockerfile и переданы через секреты) | |
| if [ -z "$TELEGRAM_API_ID" ] || [ -z "$TELEGRAM_API_HASH" ]; then | |
| echo "Ошибка: Переменные окружения TELEGRAM_API_ID и TELEGRAM_API_HASH должны быть установлены в секретах Space." | |
| echo "Текущие значения: API_ID='${TELEGRAM_API_ID}', API_HASH='${TELEGRAM_API_HASH}'" # Добавим вывод для отладки | |
| exit 1 | |
| fi | |
| if [ -z "$GITHUB_USERNAME" ] || [ -z "$GITHUB_TOKEN" ] || [ -z "$ENV_GIST_ID" ]; then | |
| echo "Внимание: GITHUB_USERNAME, GITHUB_TOKEN или ENV_GIST_ID не установлены. Обновление Gist будет пропущено." | |
| fi | |
| # Порты | |
| INTERNAL_TELEGRAM_API_PORT_VAL=${INTERNAL_TELEGRAM_API_PORT:-8081} | |
| EFFECTIVE_TELEGRAM_DATA_DIR=${TELEGRAM_DATA_DIR:-/var/lib/telegram-bot-api} | |
| echo "Effective Telegram data directory: ${EFFECTIVE_TELEGRAM_DATA_DIR}" | |
| echo "Internal Telegram API port: ${INTERNAL_TELEGRAM_API_PORT_VAL}" | |
| echo "1. Запуск Telegram Bot API на внутреннем порту ${INTERNAL_TELEGRAM_API_PORT_VAL}..." | |
| # Убираем явное указание --api-id и --api-hash, полагаемся на переменные окружения | |
| telegram-bot-api \ | |
| --local \ | |
| --http-port="${INTERNAL_TELEGRAM_API_PORT_VAL}" \ | |
| --http-stat-port=8082 \ | |
| --http-stat-ip-address=127.0.0.1 \ | |
| --dir="${EFFECTIVE_TELEGRAM_DATA_DIR}" \ | |
| --temp-dir="${EFFECTIVE_TELEGRAM_DATA_DIR}" & | |
| TELEGRAM_PID=$! | |
| echo "Telegram Bot API запущен с PID: $TELEGRAM_PID" | |
| sleep 3 | |
| echo "2. Запуск Node.js приложения (Reverse Proxy & Tools)..." | |
| node server.js & | |
| NODE_APP_PID=$! | |
| echo "Node.js приложение запущено с PID: $NODE_APP_PID" | |
| cleanup() { | |
| echo "Получен сигнал завершения. Остановка процессов..." | |
| if kill -0 $NODE_APP_PID 2>/dev/null; then kill $NODE_APP_PID; fi | |
| if kill -0 $TELEGRAM_PID 2>/dev/null; then kill $TELEGRAM_PID; fi | |
| wait $NODE_APP_PID 2>/dev/null | |
| wait $TELEGRAM_PID 2>/dev/null | |
| echo "Процессы остановлены." | |
| exit 0 | |
| } | |
| trap cleanup SIGINT SIGTERM | |
| wait $NODE_APP_PID | |
| EXIT_CODE=$? | |
| echo "Node.js приложение завершилось с кодом $EXIT_CODE. Завершение работы..." | |
| if kill -0 $TELEGRAM_PID 2>/dev/null; then kill $TELEGRAM_PID; wait $TELEGRAM_PID 2>/dev/null; fi | |
| exit $EXIT_CODE |