Skip to content

Add local development environment with Docker Compose for full stack #616

Description

@Smartdevs17

Context

New contributors spend hours setting up dependencies: PostgreSQL, Redis, Soroban CLI, Node.js, Rust, Python, and more. No single-command setup exists.

Current Limitation/Problem

Setup instructions rely on manual installation via brew, nvm, rustup, etc. Inconsistent environments cause 'works on my machine' bugs.

Expected Outcome

Single-command docker compose up that starts the full stack: API server, background workers, PostgreSQL, Redis, Soroban standalone node, ML service, webhook dispatcher.

Acceptance Criteria

  • docker-compose.yml with all services: backend, workers, postgres, redis, soroban-standalone, ml-service, webhook-dispatcher
  • Volume mounts: hot-reload for backend (ts-node-dev) and mobile (Expo)
  • Health checks: each service waits for dependencies before starting (depends_on with condition)
  • Seed script: docker compose run seed populates test data (5 plans, 10 users, 20 invoices)
  • Documentation: README section with architecture diagram and setup steps
  • Resource limits: total 8GB RAM, 4 CPU cores for all services
  • Platform support: amd64 and arm64 (Apple Silicon) tested with Rosetta where needed
  • Edge case: port conflicts (configurable via COMPOSE_PORT_* env vars)

Technical Scope

  • docker-compose.yml - root composition with all services
  • docker-compose.override.yml - local development overrides (hot-reload, debug ports)
  • docker/backend.Dockerfile - Node.js backend service
  • docker/ml.Dockerfile - Python ML service
  • docker/seed/ - SQL seed data and contract deployment scripts
  • .env.example - environment variable template with defaults
  • scripts/setup.sh - initial setup script (checks Docker, pulls images)

Metadata

Metadata

Assignees

Labels

200-points200 point issueStellar WaveIssues in the Stellar wave programdrips-waveIssues in the Drips Wave programhighHigh complexity issue

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions