90 lines
2.0 KiB
Markdown
90 lines
2.0 KiB
Markdown
# FNS Receipt Service
|
||
|
||
Express-сервис на Node.js 22 для создания чеков через ФНС и отправки ссылки на чек по email.
|
||
|
||
## Локальный запуск
|
||
|
||
```bash
|
||
npm install
|
||
cp .env.example .env
|
||
npm start
|
||
```
|
||
|
||
Сервис запустится на порту из `PORT` или на `4000` по умолчанию.
|
||
|
||
## Docker
|
||
|
||
Сборка образа:
|
||
|
||
```bash
|
||
docker build -t fns-receipt-service .
|
||
```
|
||
|
||
Запуск контейнера:
|
||
|
||
```bash
|
||
docker run --env-file .env -p 3000:3000 fns-receipt-service
|
||
```
|
||
|
||
## Переменные окружения
|
||
|
||
Заполните эти переменные в Timeweb Cloud в разделе переменных окружения:
|
||
|
||
```env
|
||
INN=123456789012
|
||
PASSWORD=your_fns_password
|
||
APPNAME=Название проекта
|
||
ADMIN_EMAIL=admin@example.com
|
||
SMTP_HOST=smtp.example.com
|
||
SMTP_PORT=587
|
||
SMTP_USER=noreply@example.com
|
||
SMTP_PASS=email_app_password
|
||
SMTP_MAIL_FROM=noreply@example.com
|
||
API_PASS=strong_api_password
|
||
PORT=3000
|
||
HOST=0.0.0.0
|
||
```
|
||
|
||
`API_PASS` должен совпадать с `api_pass` в запросах к `POST /api/v1/create-receipt`.
|
||
|
||
## Timeweb Cloud
|
||
|
||
Что заполнить при Docker-деплое:
|
||
|
||
| Поле | Значение |
|
||
| --- | --- |
|
||
| Dockerfile | `Dockerfile` |
|
||
| Порт | `3000` |
|
||
| Путь до директории проекта | `/fns-receipt-service` |
|
||
| Путь проверки состояния | `/health` |
|
||
|
||
Команду запуска для Docker-деплоя отдельно указывать не нужно: она уже задана в `Dockerfile` как `CMD ["node", "/app/server.js"]`.
|
||
|
||
## API
|
||
|
||
Проверка состояния:
|
||
|
||
```http
|
||
GET /health
|
||
```
|
||
|
||
Создание чека:
|
||
|
||
```http
|
||
POST /api/v1/create-receipt
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"api_pass": "strong_api_password",
|
||
"email": "client@example.com",
|
||
"items": [
|
||
{
|
||
"id": "order-1",
|
||
"name": "Услуга",
|
||
"price": 1000,
|
||
"quantity": 1
|
||
}
|
||
]
|
||
}
|
||
```
|