Greenlens/docker-compose.yml

55 lines
1.5 KiB
YAML

version: '3.8'
services:
server:
build:
context: ./server
ports:
- "${PORT:-3005}:3000"
environment:
PORT: 3000
PLANT_DB_PATH: /data/greenlns.sqlite
MINIO_ENDPOINT: minio
MINIO_PORT: 9000
MINIO_USE_SSL: "false"
MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY:-minioadmin}
MINIO_SECRET_KEY: ${MINIO_SECRET_KEY:-minioadmin123}
MINIO_BUCKET: ${MINIO_BUCKET:-plant-images}
# Public URL for MinIO — set this to your Railway MinIO public domain
MINIO_PUBLIC_URL: ${MINIO_PUBLIC_URL:-http://localhost:9000}
# App secrets (set via Railway env vars)
OPENAI_API_KEY: ${OPENAI_API_KEY}
STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY}
STRIPE_PUBLISHABLE_KEY: ${STRIPE_PUBLISHABLE_KEY}
STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET}
JWT_SECRET: ${JWT_SECRET}
PLANT_IMPORT_ADMIN_KEY: ${PLANT_IMPORT_ADMIN_KEY}
volumes:
- db_data:/data
depends_on:
minio:
condition: service_healthy
restart: unless-stopped
minio:
image: minio/minio:latest
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: ${MINIO_ACCESS_KEY:-minioadmin}
MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY:-minioadmin123}
volumes:
- minio_data:/data
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
volumes:
db_data:
minio_data: