Initial commit

This commit is contained in:
AVS
2026-06-26 16:42:07 +05:00
commit da6b107066
17 changed files with 1448 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
# TNProxy - Telegram Notification Proxy
Прокси-сервер для отправки сообщений в Telegram через внешний сервер с авторизацией приложений.
## Возможности
- Множество приложений с индивидуальными токенами
- Каждое приложение привязывается к своему боту Telegram
- Веб-интерфейс для управления приложениями
- Docker для простого развертывания
## Быстрый старт (Docker)
```bash
cp .env.example .env
# Отредактируйте .env
docker-compose up -d
```
Откройте `http://localhost:8880/adtn` для управления приложениями.
## Использование
### 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 БД (создается при запуске)
```