# 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 80:80 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=80 HOST=0.0.0.0 ``` `API_PASS` должен совпадать с `api_pass` в запросах к `POST /api/v1/create-receipt`. ## Timeweb Cloud Что заполнить при деплое: | Поле | Значение | | --- | --- | | Runtime | Node.js 22 | | Фреймворк | Express | | Команда сборки | `npm install` | | Зависимости | `npm install` | | Команда запуска | `npm start` | | Путь до директории проекта | `/fns-receipt-service` | | Путь проверки состояния | `/health` | Если Timeweb Cloud сам устанавливает зависимости, в поле команды сборки можно оставить `npm install` или не указывать команду сборки, если интерфейс позволяет. ## 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 } ] } ```