Files
tg-proxy/README.md
T

96 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TNProxy - Telegram Notification Proxy
Прокси-сервер для отправки сообщений в Telegram через внешний сервер с авторизацией приложений.
## Возможности
- Множество приложений с индивидуальными токенами
- Каждое приложение привязывается к своему боту Telegram
- Веб-интерфейс для управления приложениями
- Docker для простого развертывания
## Быстрый старт (Docker)
```bash
cp .env.example .env
# Отредактируйте .env
docker-compose up -d
```
Откройте `http://localhost:8880/adtn` для управления приложениями (требуется `ADMIN_PANEL_ENABLED=true`).
## Управление админ-панелью
По умолчанию админ-панель **отключена** (`ADMIN_PANEL_ENABLED=false`).
**Включить для настройки:**
```bash
# В .env установить ADMIN_PANEL_ENABLED=true
docker-compose up -d
```
Откройте `http://localhost:8880/adtn` — настройте приложения.
**Выключить после настройки:**
```bash
# В .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. Отправка сообщения
```http
POST /send
X-App-Token: <токен_приложения>
Content-Type: application/json
{"text": "Hello, World!"}
```
### Пример PowerShell:
```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 БД (создается при запуске)
```