Files
cymelle/compose.yml
T
2026-06-14 13:19:39 +03:00

75 lines
2.3 KiB
YAML

name: cymelle
services:
db:
image: postgres:18-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB:-cymelle}
POSTGRES_USER: ${POSTGRES_USER:-cymelle}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-cymelle}
ports:
- "${POSTGRES_PORT:-5432}:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test:
[
"CMD-SHELL",
"pg_isready -U ${POSTGRES_USER:-cymelle} -d ${POSTGRES_DB:-cymelle}",
]
interval: 5s
timeout: 5s
retries: 10
api:
image: eclipse-temurin:17-jdk-jammy
working_dir: /workspace
command: ./gradlew --no-daemon bootRun
environment:
PORT: 8080
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${POSTGRES_DB:-cymelle}
SPRING_DATASOURCE_USERNAME: ${POSTGRES_USER:-cymelle}
SPRING_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD:-cymelle}
APP_CORS_ALLOWED_ORIGINS: ${APP_CORS_ALLOWED_ORIGINS:-http://localhost:3000}
SEED_DATA: ${SEED_DATA:-true}
LOW_STOCK_THRESHOLD: ${LOW_STOCK_THRESHOLD:-10}
FARE_BASE_FARE: ${FARE_BASE_FARE:-100.00}
FARE_PER_KM_RATE: ${FARE_PER_KM_RATE:-50.00}
FARE_MINIMUM_FARE: ${FARE_MINIMUM_FARE:-150.00}
FARE_DEFAULT_SURGE_MULTIPLIER: ${FARE_DEFAULT_SURGE_MULTIPLIER:-1.0}
FARE_CURRENCY: ${FARE_CURRENCY:-KES}
PAYSTACK_SECRET_KEY: ${PAYSTACK_SECRET_KEY:-}
PAYSTACK_PUBLIC_KEY: ${PAYSTACK_PUBLIC_KEY:-}
PAYSTACK_CALLBACK_URL: ${PAYSTACK_CALLBACK_URL:-http://localhost:3000/payments/paystack/callback}
PAYSTACK_WEBHOOK_SECRET: ${PAYSTACK_WEBHOOK_SECRET:-}
PAYSTACK_API_BASE_URL: ${PAYSTACK_API_BASE_URL:-https://api.paystack.co}
ports:
- "${API_PORT:-8080}:8080"
volumes:
- ./orders-backend:/workspace
- gradle-cache:/root/.gradle
depends_on:
db:
condition: service_healthy
web:
image: node:24-bookworm-slim
working_dir: /app
command: sh -c "corepack enable && pnpm install --frozen-lockfile && pnpm dev --host 0.0.0.0"
environment:
HOST: 0.0.0.0
PORT: 3000
VITE_API_BASE_URL: ${VITE_API_BASE_URL:-http://localhost:8080/api}
ports:
- "${WEB_PORT:-3000}:3000"
volumes:
- ./orders-frontend:/app
- frontend-node-modules:/app/node_modules
depends_on:
- api
volumes:
postgres-data:
gradle-cache:
frontend-node-modules: