[CI]: Add full-stack Docker Compose smoke tests through nginx

Open
#25 0 comments 0 reactions 0 assignees View on GitHub

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

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

enhancement

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Vault-Web/deploy

All issues in Vault-Web/deploy

Similar issues

More DevOps issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.