# Монитор заявок - CleverParking Node/Express приложение со встроенным фронтендом и SQLite. Проект теперь настроен по той же схеме, что и другой рабочий сервис на этом сервере: - образ собирается в Woodpecker и публикуется в registry; - deploy выполняется на агенте с label `role=work_woodpecker`; - на сервере запускается `docker compose pull && docker compose up -d`. ## Локальный запуск ```bash cp .env.example .env docker compose up -d --build ``` Локальный compose собирает образ из текущего каталога и хранит SQLite в `./data`. ## Production deploy На сервере должен существовать каталог `/opt/intradesk-monitor` с файлом `.env`. Минимальный пример `/opt/intradesk-monitor/.env`: ```dotenv JWT_SECRET=long_random_secret ADMIN_SECRET=another_long_secret APP_PORT=3000 IMAGE_NAME=git.example.com/user/intradesk-monitor ``` Во время deploy pipeline копирует [docker-compose.deploy.yml](c:/Users/Professional/Documents/VSCode/intra_git/intradesk-monitor/docker-compose.deploy.yml) в `/opt/intradesk-monitor/docker-compose.yml`, затем выполняет стандартный `docker compose pull` и `docker compose up -d`. ## Секреты Woodpecker Нужны секреты репозитория: - `forgejo_host` - `forgejo_image` - `forgejo_username` - `forgejo_token` `forgejo_image` должен совпадать с `IMAGE_NAME` в серверном `.env`. ## Что делает pipeline [.woodpecker.yml](c:/Users/Professional/Documents/VSCode/intra_git/intradesk-monitor/.woodpecker.yml) содержит три шага: - `docker-build` — сборка и push `latest` и `sha-` при push в `main`; - `docker-build-tag` — сборка и push git tag, `latest` и `sha-` при событии tag; - `deploy` — deploy на прод-сервере через Docker socket на агенте `role=work_woodpecker`. ## Полезные команды на сервере ```bash cd /opt/intradesk-monitor docker compose ps docker compose logs -f cat .previous_image ```