61 lines
2.3 KiB
Markdown
61 lines
2.3 KiB
Markdown
# Монитор заявок - 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-<shortsha>` при push в `main`;
|
||
- `docker-build-tag` — сборка и push git tag, `latest` и `sha-<shortsha>` при событии tag;
|
||
- `deploy` — deploy на прод-сервере через Docker socket на агенте `role=work_woodpecker`.
|
||
|
||
## Полезные команды на сервере
|
||
|
||
```bash
|
||
cd /opt/intradesk-monitor
|
||
docker compose ps
|
||
docker compose logs -f
|
||
cat .previous_image
|
||
```
|