2.3 KiB
2.3 KiB
Монитор заявок - CleverParking
Node/Express приложение со встроенным фронтендом и SQLite.
Проект теперь настроен по той же схеме, что и другой рабочий сервис на этом сервере:
- образ собирается в Woodpecker и публикуется в registry;
- deploy выполняется на агенте с label
role=work_woodpecker; - на сервере запускается
docker compose pull && docker compose up -d.
Локальный запуск
cp .env.example .env
docker compose up -d --build
Локальный compose собирает образ из текущего каталога и хранит SQLite в ./data.
Production deploy
На сервере должен существовать каталог /opt/intradesk-monitor с файлом .env.
Минимальный пример /opt/intradesk-monitor/.env:
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 в /opt/intradesk-monitor/docker-compose.yml, затем выполняет стандартный docker compose pull и docker compose up -d.
Секреты Woodpecker
Нужны секреты репозитория:
forgejo_hostforgejo_imageforgejo_usernameforgejo_token
forgejo_image должен совпадать с IMAGE_NAME в серверном .env.
Что делает pipeline
.woodpecker.yml содержит три шага:
docker-build— сборка и pushlatestиsha-<shortsha>при push вmain;docker-build-tag— сборка и push git tag,latestиsha-<shortsha>при событии tag;deploy— deploy на прод-сервере через Docker socket на агентеrole=work_woodpecker.
Полезные команды на сервере
cd /opt/intradesk-monitor
docker compose ps
docker compose logs -f
cat .previous_image