Развёртывание на собственном сервере с доменом hexdrive.tech
Internet → hexdrive.tech:443 (HTTPS)
↓
nginx (reverse proxy)
↓
localhost:3000 (bot_final.py)
├─ Telegram bot (async polling)
└─ FastAPI web + API (async)
- Ubuntu/Debian сервер
- root или sudo доступ
- Домен hexdrive.tech (DNS указывает на IP сервера)
- Python 3.12+
- nginx установлен
# Обновить репозиторий
cd ~/.hermes/agents/accessibility-auditor
git pull
# Убедиться, что venv установлен
source venv/bin/activate
pip install -r requirements.txtsudo cp ~/.hermes/agents/accessibility-auditor/nginx.conf \
/etc/nginx/sites-available/hexdrive.techsudo ln -s /etc/nginx/sites-available/hexdrive.tech \
/etc/nginx/sites-enabled/hexdrive.tech
# Отключить default если нужно
sudo rm /etc/nginx/sites-enabled/default 2>/dev/null || truesudo nginx -tДолжно вывести:
nginx: configuration file /etc/nginx/nginx.conf test is successful
sudo systemctl reload nginxsudo apt-get update
sudo apt-get install -y certbot python3-certbot-nginxsudo certbot certonly --nginx -d hexdrive.tech -d www.hexdrive.techСледуй инструкциям на экране:
- Введи email
- Примени Terms of Service
- Выбери опции по предпочтению
sudo systemctl reload nginx# Включить auto-renewal
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer
# Проверить статус
sudo systemctl status certbot.timerВ панели управления доменом (регистратор):
- Тип: A
- Имя: @ (или hexdrive.tech)
- Значение: IP_ТВОЕГО_СЕРВЕРА
- TTL: 300 или меньше
Проверить:
nslookup hexdrive.tech
# или
dig hexdrive.techecho $TELEGRAM_BOT_TOKEN
# Если пусто:
export TELEGRAM_BOT_TOKEN="твой_токен_здесь"cd ~/.hermes/agents/accessibility-auditor
source venv/bin/activate
python3 -u bot_final.pyДолжны увидеть:
Telegram bot initializing...
Starting FastAPI server on http://127.0.0.1:3000 (localhost only)
Нажать Ctrl+C для остановки
nohup python3 -u ~/.hermes/agents/accessibility-auditor/bot_final.py \
>> ~/.hermes/agents/accessibility-auditor/bot.log 2>&1 &Проверить:
ps aux | grep bot_final.pychmod +x ~/.hermes/agents/accessibility-auditor/keep-alive.sh# Открыть редактор crontab
crontab -e
# Добавить эту строку (каждую минуту):
*/1 * * * * ~/.hermes/agents/accessibility-auditor/keep-alive.sh# Список активных cronjobs
crontab -l
# Журнал keep-alive
tail -f ~/.hermes/agents/accessibility-auditor/keep-alive.logcurl http://127.0.0.1:3000/health
# Ответ: {"status":"ok"}
curl https://hexdrive.tech/health
# Ответ: {"status":"ok"}Открыть в браузере: https://hexdrive.tech
Должны увидеть:
- Форму для ввода URL
- Чекбокс "Allow public display"
- Список последних публичных аудитов
Отправить /audit https://example.com боту @accessibilityAuditAgentBot
Должен ответить с результатами и ссылкой на hexdrive.tech
tail -f /var/log/nginx/accessibility-auditor-access.log
tail -f /var/log/nginx/accessibility-auditor-error.logtail -f ~/.hermes/agents/accessibility-auditor/bot.logtail -f ~/.hermes/agents/accessibility-auditor/keep-alive.logps aux | grep bot_final
pgrep -f bot_final.pycd ~/.hermes/agents/accessibility-auditor
git pull
source venv/bin/activate
pip install -r requirements.txt
# Перезагрузить процесс (keep-alive сделает автоматически)
pkill -f bot_final.py
# или подожди 1 минуту, cronjob перезапустит
# Проверить
curl https://hexdrive.tech/health# Проверить, работает ли bot
ps aux | grep bot_final.py
# Если нет - запустить вручную
source ~/.hermes/agents/accessibility-auditor/venv/bin/activate
cd ~/.hermes/agents/accessibility-auditor
python3 -u bot_final.py
# Проверить логи
tail -f ~/.hermes/agents/accessibility-auditor/bot.log# Проверить статус
sudo certbot status
# Обновить вручную
sudo certbot renew --force-renewal
# Перезагрузить nginx
sudo systemctl reload nginx# Проверить, запущен ли cron-демон
sudo systemctl status cron
# Проверить логи cron
grep CRON /var/log/syslog | tail -20
# Убедиться, что скрипт исполняемый
ls -la ~/.hermes/agents/accessibility-auditor/keep-alive.sh
# Должен быть: -rwxr-xr-x (755)Теперь у тебя есть:
- ✅ Accessibility Auditor доступен на https://hexdrive.tech
- ✅ Telegram bot работает
- ✅ API скрыт за nginx (боты не увидят)
- ✅ HTTPS с Let's Encrypt (бесплатный, автоматическое обновление)
- ✅ Auto-restart если упадёт (cronjob каждую минуту)
Если у тебя на сервере уже nginx и Let's Encrypt:
# 1. Скопировать nginx конфиг
sudo cp ~/.hermes/agents/accessibility-auditor/nginx.conf /etc/nginx/sites-available/hexdrive.tech
sudo ln -s /etc/nginx/sites-available/hexdrive.tech /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
# 2. SSL сертификат
sudo certbot certonly --nginx -d hexdrive.tech -d www.hexdrive.tech
# 3. Запустить бот
source ~/.hermes/agents/accessibility-auditor/venv/bin/activate
nohup python3 -u ~/.hermes/agents/accessibility-auditor/bot_final.py >> ~/.hermes/agents/accessibility-auditor/bot.log 2>&1 &
# 4. Cronjob
chmod +x ~/.hermes/agents/accessibility-auditor/keep-alive.sh
(crontab -l 2>/dev/null; echo "*/1 * * * * ~/.hermes/agents/accessibility-auditor/keep-alive.sh") | crontab -
# 5. Проверить
curl https://hexdrive.tech/health