[CI]: Add full-stack Docker Compose smoke tests through nginx
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 68/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- docker, docker-compose, nginx
- Domain
- ci-cd, devops, infrastructure, testing-qa
Research direction
Start with the repository's Docker Compose setup and nginx configuration, then inspect how CI workflows are defined. Bring up the full stack, wait for healthy services, and run checks through nginx for frontend loading, login, authenticated API access, Cloud file upload/download, WebSocket handshake, and persistence across a restart; ensure teardown runs regardless of failures.
Written by the indexing model from the issue text.
Description
Problem
Each service repo tests itself in isolation, but nothing tests the stack the way a real user actually reaches it, through nginx. A change can pass every individual CI job and still break in production because of something only visible at the integration layer: a wrong nginx path, a missing volume, a wrong service hostname, broken CORS, a broken WebSocket proxy.
#19 is a concrete example already sitting in this repo: the backend correctly serves profile pictures, but nginx never routes /uploads to it, so they never load. Nothing in CI today would have caught that, and nothing currently would catch the next one like it.
Proposed scope
- add a CI workflow in this repo that brings up the full stack with
docker compose up, the same way it runs in production - wait for all services to report healthy
- run HTTP checks against the stack through nginx, not directly against individual service ports, so routing and proxy config are actually exercised
- cover at minimum: frontend loads, login works, an authenticated backend call succeeds, the Cloud API responds, a file can be uploaded and downloaded, the WebSocket handshake succeeds, and a volume actually persists data across a container restart
- tear the stack down at the end regardless of outcome
Explicitly not part of this
Replacing the existing per-service unit and integration tests. This is specifically about catching the class of bug that only shows up when the services are wired together behind nginx, not about testing business logic that is already covered elsewhere.
Acceptance criteria
- CI brings the full stack up with docker compose and waits for it to be healthy
- requests in the test go through nginx, not directly to a service's own port
- login, an authenticated API call, Cloud file upload/download, and the WebSocket handshake are all checked
- a regression like #19 would fail this workflow
- Dominant language
- Dockerfile
- Stars
- 2
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Vault-Web/deploy
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
docker enhancement
Difficulty 5/5 Over a week Newbie friendliness 45/100
-
docker documentation enhancement
Difficulty 3/5 1-2 days Newbie friendliness 70/100
All issues in Vault-Web/deploy
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
danielmiessler/LifeOS#2215 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
sympozium-ai/sympozium#627 ·
-
repo:raw-data
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
hotosm/raw-data-api#316 · 1 comment ·
-
agentic-workflows cascade-suspected
Difficulty 2/5 1-3 hours Newbie friendliness 68/100