SPB Git forge
1commits 1branches 0releases
189.0 KBsize
maindefault branch
2 h agolast push
Python 54.7% TypeScript 42.5% SQL 1.9%
1.9 KB · 55 lines yaml
Raw Blame History
1# Local-first stack for Apple Silicon (arm64 images). `docker compose up -d db redis` then run api/worker/web natively,2# or `docker compose --profile app up` to run everything in containers.3services:4  db:5    image: timescale/timescaledb:latest-pg176    environment:7      POSTGRES_USER: ktrade8      POSTGRES_PASSWORD: ktrade9      POSTGRES_DB: ktrade10    ports: ["5432:5432"]11    volumes: ["pgdata:/var/lib/postgresql/data"]12    healthcheck: { test: ["CMD-SHELL", "pg_isready -U ktrade"], interval: 5s, timeout: 3s, retries: 20 }13  redis:14    image: redis:7-alpine15    ports: ["6379:6379"]16    command: ["redis-server", "--save", "60", "1", "--appendonly", "no"]17  api:18    profiles: ["app"]19    build: { context: ./apps/api }20    env_file: .env21    environment:22      KTRADE_DATABASE_URL: postgresql://ktrade:ktrade@db:5432/ktrade23      KTRADE_REDIS_URL: redis://redis:6379/324      KTRADE_API_HOST: 0.0.0.025    command: ["sh", "-c", "ktrade migrate && ktrade api"]26    ports: ["8470:8470"]27    depends_on: { db: { condition: service_healthy }, redis: { condition: service_started } }28  worker:29    profiles: ["app"]30    build: { context: ./apps/api }31    env_file: .env32    environment:33      KTRADE_DATABASE_URL: postgresql://ktrade:ktrade@db:5432/ktrade34      KTRADE_REDIS_URL: redis://redis:6379/335    command: ["ktrade", "worker"]36    depends_on: [api]37  web:38    profiles: ["app"]39    build: { context: ./apps/web }40    environment: { API_UPSTREAM: http://api:8470, PORT: "8471" }41    ports: ["8471:8471"]42    depends_on: [api]43  prometheus:44    profiles: ["monitoring"]45    image: prom/prometheus:latest46    volumes: ["./deploy/prometheus.yml:/etc/prometheus/prometheus.yml:ro"]47    ports: ["9090:9090"]48  grafana:49    profiles: ["monitoring"]50    image: grafana/grafana:latest51    ports: ["3001:3000"]52    volumes: ["./deploy/grafana:/etc/grafana/provisioning:ro"]53volumes:54  pgdata: {}55