Reporting service for ezMESURE/ezCOUNTER
git clone https://github.com/ezpaarse-project/ezreeport.git
cd ezreeport
echo 'ELASTIC_URL="${ELASTIC_SCHEME:-https}://${ELASTIC_HOST}:${ELASTIC_PORT:-9200}"\n\nDATABASE_URL="${DATABASE_PROTOCOL:-postgresql}://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}?schema=default"' > .env.local
corepack enable
pnpm i --frozen-lockfile
docker compose -f ezreeport/docker-compose.migrate.yml up -d
docker compose -f ezreeport/docker-compose.migrate.yml wait api
# If you want to see what happened, or if wait returned a non-0 exit code :
docker compose -f ezreeport/docker-compose.migrate.yml logs api
docker compose -f ezreeport/docker-compose.migrate.yml down
docker compose -f docker-compose.yml pull
# Apply database migrations, see previous part
docker compose -f docker-compose.yml up -d
docker compose -f docker-compose.debug.yml pull
# Apply database migrations, see previous part
docker compose -f docker-compose.debug.yml up -d
Workflow used here is the same as Git Flow :
- To make new changes : create a
feature/*
branch - Once feature is completed, run
pnpm changeset add
- Once feature is completed, make a Pull Request from your branch to the
dev
branch - Once a new version is ready, create a new
rc/*
branch and make a (draft) PR to themaster
branch - Once the new version is deployed, merge the PR
services/report
: (ezreeport-report)- Manage templates with HTTP API
services/worker
- Generate PDF reports
services/scheduler
- Cronjob to generate reports
services/mail
: (ezreeport-mail)- Handle email management
They're all under packages/
and follow the name @ezreeport/*
. PNPM will handle dependency tree.
services/cli/ezra
(@ezpaarse-project/ezreeport-admin)- CLI client for managing ezREEPORT instances
services/sdk
(@ezpaarse-project/ezreeport-sdk-js)- SDK for ezREEPORT API
services/vue
(@ezpaarse-project/ezreeport-vue)- Vue components that use SDK for displaying info
Some components are depending on each others, so you may need to build/push some components before others.
Here's a quick view to see thoses relations :
├─ ezreeport-mail
├─ ezreeport-report
├─ ezreeport-scheduler
├─ ezreeport-worker
├─ @ezpaarse-project/ezreeport-admin
└─ @ezpaarse-project/sdk-js
└─ @ezpaarse-project/vue
master
:- Should be the version used on prod (vp)
rc/*
:- Should be the version used on integ (vi)
- Versions are suffixed by
-rc.*
dev
:- Should be the version used on dev (vd)
- Versions are suffixed by
-beta.*