services:
backend:
build: .
ports:
- "9898:9898"
env_file: .env
environment:
DATABASE_URL: sqlite:/app/data/raisfast.db?mode=rwc
APP_ENV: production
CORS_ORIGINS: http://localhost:3000
STORAGE_DRIVER: s3
S3_ENDPOINT: http://rustfs:9000
S3_ACCESS_KEY: rustfsadmin
S3_SECRET_KEY: rustfsadmin
S3_BUCKET: raisfast
S3_REGION: us-east-1
volumes:
- raisfast-data:/app/data
- raisfast-logs:/app/logs
- raisfast-plugins:/app/plugins-data
depends_on:
rustfs:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9898/api/v1/healthz"]
interval: 15s
timeout: 5s
retries: 5
start_period: 10s
restart: unless-stopped
frontend:
build: ./web
ports:
- "3000:3000"
environment:
NEXT_PUBLIC_API_URL: http://localhost:9898/api/v1
depends_on:
backend:
condition: service_healthy
restart: unless-stopped
rustfs:
image: rustfs/rustfs:latest
ports:
- "9001:9000"
- "9002:9001"
environment:
RUSTFS_ROOT_USER: rustfsadmin
RUSTFS_ROOT_PASSWORD: rustfsadmin
volumes:
- rustfs-data:/data
- rustfs-logs:/logs
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 10s
timeout: 5s
retries: 5
start_period: 5s
restart: unless-stopped
volumes:
raisfast-data:
raisfast-logs:
raisfast-plugins:
rustfs-data:
rustfs-logs: