raisfast 0.2.19

The last backend you'll ever need. Rust-powered headless CMS with built-in blog, ecommerce, wallet, payment and 4 plugin engines.
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: