spb/crypto-trade-bot
Public
Python 54.7%
TypeScript 42.5%
SQL 1.9%
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