Сервис пула прокси для ботов: API для ботов + HTML-дашборд. Postgres (Supabase) + FastAPI.
proxy_service.py— API ботов (X-Bot-Token), дашборд/(Basic auth), пробер и кронdashboard.html— дашбордsql/00_full_install.sql— схема, функции, роли, RLS (накатить первой)sql/03_admin.sql— рольbls_adminиadmin_*функции (накатить второй)deploy/install.sh— разовая установка сервераdeploy/update.sh— автообновление из git (таймер раз в минуту, с откатом).env.example— имена переменных окружения (реальный.envв git не кладём)
- Supabase SQL Editor:
sql/00_full_install.sql, затемsql/03_admin.sql; задать пароли ролям (alter role bls_issuer|bls_reporter|bls_prober|bls_admin password '...'). - Сервер (root):
REPO_URL=git@github.com:<you>/bls-proxy.git bash deploy/install.sh - Заполнить
/etc/bls-proxy.envпо.env.example, повторить шаг 2. - Дашборд: https://bls-proxy.shikinn.com/
Обновление: git push в ветку — сервер подтянет сам в течение минуты.
Клиент шлёт error_code=PROXY_CONNECT_FAILED, когда Chrome видит ERR_SOCKS_CONNECTION_FAILED
или relay признаёт маршрут мёртвым. Сервер:
- кулдаун
cooldown_proxy_fault_s(1 час): прокси не выдаётся никому; - второй такой сбой за
repeat_fault_window_min(180 мин) от любых аккаунтов — карантин 60 -> 120 -> 240 мин.
Для уже работающей базы накатить sql/04_proxy_fault.sql в Supabase SQL Editor (перезапуск сервиса не нужен).
Накатить sql/06_fault_ladder_v3.sql (после 05), затем при необходимости sql/07_reset_all.sql (выдать все прокси наново).
1-й сбой — кулдаун 10 мин · 2-й — кулдаун 60 мин · 3-й в окне — выключено до «Сбросить ступени».
После каждого сбоя — TCP-проверка BLS через прокси (на ступенях 2–3 до 3 попыток); «прощён», если прошёл или BLS лежит.
Аудит: select * from bls_proxy_manager.v_fault_audit;