mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
add deployment documentation and checkpoint file
This commit is contained in:
63
checkpoint.md
Normal file
63
checkpoint.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Checkpoint
|
||||
|
||||
## Major Tasks Completed
|
||||
|
||||
1. Docker deployment scaffolded for all 6 apps in the monorepo.
|
||||
2. Split API images into app-specific Dockerfiles:
|
||||
- `apps/edr-freight-api/Dockerfile`
|
||||
- `apps/edr-passenger-api/Dockerfile`
|
||||
3. Kept shared Vite/nginx image:
|
||||
- `infrastructure/docker/Dockerfile.web`
|
||||
- `infrastructure/nginx/spa.conf`
|
||||
4. Updated `docker-compose.yaml` to run all 6 services (apps only, no Postgres service in compose).
|
||||
5. Added/updated deployment scripts:
|
||||
- `scripts/deploy/create-npmrc.sh`
|
||||
- `scripts/deploy/sync-env-from-server.sh`
|
||||
6. Added self-hosted GitHub Actions deployment workflow:
|
||||
- Consolidated into one file: `.github/workflows/deploy.yml`
|
||||
7. Deployment workflow now:
|
||||
- uses a single checkout (`prepare` job),
|
||||
- deploys services via parallel matrix,
|
||||
- sets compose project names per branch/environment,
|
||||
- passes explicit `docker compose --project-name`.
|
||||
8. Environment sync script now:
|
||||
- supports branch slug paths,
|
||||
- validates each service env file exists,
|
||||
- requires `PORT` in each env file,
|
||||
- exports per-service port vars to `GITHUB_ENV`.
|
||||
9. `docker-compose.yaml` now reads per-service ports via variables exported from env sync.
|
||||
10. Passenger startup flow fixed to run:
|
||||
- `prisma:generate`,
|
||||
- `prisma:migrate`,
|
||||
- `prisma:seed`,
|
||||
before API startup.
|
||||
11. Passenger seed TypeScript issues fixed in `apps/edr-passenger-api/prisma/seed.ts` so it compiles under strict checks.
|
||||
12. Added deployment runbook:
|
||||
- `DEPLOYMENT.md`
|
||||
|
||||
## Key Files to Review
|
||||
|
||||
- `.github/workflows/deploy.yml`
|
||||
- `docker-compose.yaml`
|
||||
- `scripts/deploy/sync-env-from-server.sh`
|
||||
- `scripts/deploy/create-npmrc.sh`
|
||||
- `apps/edr-passenger-api/docker-entrypoint.sh`
|
||||
- `apps/edr-passenger-api/prisma/seed.ts`
|
||||
- `DEPLOYMENT.md`
|
||||
|
||||
## Next Actions
|
||||
|
||||
1. Run full CI on all target branches (`main`, `dev`, `staging`) and verify matrix job behavior.
|
||||
2. Validate server env directory layout matches script expectations:
|
||||
- `/home/<deploy_user>/environment/edr/<branch-slug>/<project>/...`
|
||||
3. Confirm each service env file includes valid `PORT` and service-specific runtime vars.
|
||||
4. Verify branch-specific compose project names produce isolated containers/networks/volumes on runner.
|
||||
5. Smoke test all 6 deployed services behind real environment URLs.
|
||||
|
||||
## Open Risks / Notes
|
||||
|
||||
1. Passenger seed runs on every container start; confirm this is desired for production-like environments.
|
||||
2. Prisma warns about `package.json#prisma` deprecation (Prisma 7 migration pending).
|
||||
3. Matrix parallelism increases runner load; ensure self-hosted runner capacity is sufficient.
|
||||
4. Port collisions are prevented by env-driven mapping, but bad env values can still cause runtime conflicts.
|
||||
|
||||
Reference in New Issue
Block a user