c49851de8b57c496a6386018d615dcc0575badbe
All checks were successful
Build SMS Gateway / Build image (push) Successful in 19s
SMS OTP Gateway
Легковесный сервис для логирования SMS-сообщений. Принимает запросы в формате SMS-провайдера и сохраняет их в локальный файл для просмотра.
Требования
- Docker и Docker Compose
Быстрый старт
# Сборка и запуск
docker-compose up -d --build
# Просмотр логов
docker-compose logs -f
# Остановка
docker-compose down
Сервис будет доступен на http://localhost:3000
API
POST /send-msg
Принимает SMS-сообщение и сохраняет в протокол.
Content-Type: application/x-www-form-urlencoded
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
| login | string | Логин отправителя |
| psw | string | Пароль |
| phones | string | Номер телефона |
| mes | string | Текст сообщения |
Пример запроса:
curl -X POST http://localhost:3000/send-msg \
-d "login=admin&psw=secret&phones=+79001234567&mes=Your code: 1234"
Ответ (успех):
{
"status": "ok",
"id": 1705678901234
}
Ответ (неверные credentials):
{
"error": "Invalid credentials"
}
GET /view-all-sms
Возвращает все сохраненные сообщения.
Пример запроса:
curl http://localhost:3000/view-all-sms
Ответ:
{
"messages": [
{
"id": 1705678901234,
"timestamp": "2025-01-19T12:00:00.000Z",
"login": "user",
"phone": "+79001234567",
"message": "Your code: 1234"
}
]
}
POST /clear-all-sms
Очищает все сохраненные сообщения.
Пример запроса:
curl -X POST http://localhost:3000/clear-all-sms
Ответ:
{
"status": "ok",
"message": "All messages cleared"
}
Веб-интерфейс
Доступен по адресу http://localhost:3000
Функции:
- Просмотр всех сообщений в реальном времени (автообновление каждые 5 сек)
- Ручное обновление списка
- Очистка всех сообщений
Хранение данных
Сообщения сохраняются в файл data/base.json. Директория data/ монтируется как volume, данные сохраняются между перезапусками контейнера.
Конфигурация
| Переменная | По умолчанию | Описание |
|---|---|---|
| PORT | 3000 | Порт сервера |
| SMS_LOGIN | - | Логин для авторизации (обяз) |
| SMS_PASSWORD | - | Пароль для авторизации (обяз) |
Переменные SMS_LOGIN и SMS_PASSWORD задаются в docker-compose.yml:
environment:
- SMS_LOGIN=admin
- SMS_PASSWORD=secret
Изменение порта в docker-compose.yml:
services:
sms-gateway:
ports:
- "8080:3000" # внешний:внутренний
Структура проекта
sms-opt-gateway/
├── server.js # Express сервер
├── package.json # Зависимости
├── Dockerfile # Docker образ
├── docker-compose.yml # Compose конфигурация
├── .dockerignore
├── public/
│ └── index.html # Веб-интерфейс
└── data/
└── base.json # Хранилище сообщений
Локальная разработка
# Установка зависимостей
npm install
# Запуск
npm start
Description
Languages
HTML
59.3%
JavaScript
38.6%
Dockerfile
2.1%