Files
tg-proxy/README.md
T

3.4 KiB
Raw Blame History

TNProxy - Telegram Notification Proxy

Прокси-сервер для отправки сообщений в Telegram через внешний сервер с авторизацией приложений.

Возможности

  • Множество приложений с индивидуальными токенами
  • Каждое приложение привязывается к своему боту Telegram
  • Веб-интерфейс для управления приложениями
  • Docker для простого развертывания

Быстрый старт (Docker)

cp .env.example .env
# Отредактируйте .env
docker-compose up -d

Откройте http://localhost:8880/adtn для управления приложениями (требуется ADMIN_PANEL_ENABLED=true).

Управление админ-панелью

По умолчанию админ-панель отключена (ADMIN_PANEL_ENABLED=false).

Включить для настройки:

# В .env установить ADMIN_PANEL_ENABLED=true
docker-compose up -d

Откройте http://localhost:8880/adtn — настройте приложения.

Выключить после настройки:

# В .env вернуть ADMIN_PANEL_ENABLED=false
docker-compose restart tnproxy

Админ-панель вернёт 404. API /send и /health продолжают работать.

Использование

1. Создайте приложение в веб-интерфейсе

Перейдите на /adtn, нажмите "Добавить приложение", введите:

  • Название
  • Telegram Bot Token (получить у @BotFather)
  • Telegram Chat ID (ваш ID или ID канала)

Получите токен приложения.

2. Отправка сообщения

POST /send
X-App-Token: <токен_приложения>
Content-Type: application/json

{"text": "Hello, World!"}

Пример PowerShell:

$body = @{text = "Alert!"} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:8080/send" -Method Post -Body $body -Headers @{
    "Content-Type" = "application/json"
    "X-App-Token" = "YOUR_APP_TOKEN"
}

API Endpoints

Method Path Description
POST /send Отправить сообщение
GET /health Проверка здоровья
GET /adtn Веб-интерфейс
POST /adtn/applications Создать приложение
DELETE /adtn/applications/{id} Удалить приложение
POST /adtn/applications/{id}/toggle Включить/отключить

Структура проекта

.
├── config.py              # Конфигурация
├── server.py              # FastAPI сервер
├── models.py              # Модели SQLAlchemy
├── database.py            # База данных
├── requirements.txt       # Python зависимости
├── Dockerfile             # Docker образ
├── docker-compose.yml     # Docker Compose
├── templates/             # HTML шаблоны
├── clients/               # Примеры клиентов
└── data/                  # SQLite БД (создается при запуске)