122 lines
5.1 KiB
YAML
122 lines
5.1 KiB
YAML
version: "3.9"
|
|
services:
|
|
shopify-ai-builder:
|
|
image: shopify-ai-builder:latest
|
|
build:
|
|
context: .
|
|
# Portainer automatically detects host architecture and passes TARGETARCH to Dockerfile
|
|
# This enables reliable multi-architecture builds (amd64, arm64, etc.)
|
|
ports:
|
|
- "4500:4500"
|
|
# OpenSMTPD ports for email functionality
|
|
- "25:25"
|
|
- "587:587"
|
|
- "465:465"
|
|
restart: unless-stopped
|
|
environment:
|
|
- OPENCODE_API_KEY=${OPENCODE_API_KEY:-}
|
|
- XDG_DATA_HOME=/home/web/data/.opencode/local_share
|
|
- GITHUB_PAT=${GITHUB_PAT:-}
|
|
- GITHUB_PAT_FILE=${GITHUB_PAT_FILE:-/run/secrets/GITHUB_PAT}
|
|
- GITHUB_USERNAME=${GITHUB_USERNAME:-}
|
|
- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID:-}
|
|
- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET:-}
|
|
# OpenRouter planning mode
|
|
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}
|
|
- OPENROUTER_API_URL=${OPENROUTER_API_URL:-}
|
|
- OPENROUTER_MODEL_PRIMARY=${OPENROUTER_MODEL_PRIMARY:-}
|
|
- OPENROUTER_MODEL_BACKUP_1=${OPENROUTER_MODEL_BACKUP_1:-}
|
|
- OPENROUTER_MODEL_BACKUP_2=${OPENROUTER_MODEL_BACKUP_2:-}
|
|
- OPENROUTER_MODEL_BACKUP_3=${OPENROUTER_MODEL_BACKUP_3:-}
|
|
- OPENROUTER_DEFAULT_MODEL=${OPENROUTER_DEFAULT_MODEL:-}
|
|
- OPENROUTER_FALLBACK_MODELS=${OPENROUTER_FALLBACK_MODELS:-}
|
|
- OPENROUTER_PLAN_PROMPT_PATH=${OPENROUTER_PLAN_PROMPT_PATH:-}
|
|
- OPENROUTER_APP_NAME=${OPENROUTER_APP_NAME:-}
|
|
- OPENROUTER_SITE_URL=${OPENROUTER_SITE_URL:-}
|
|
# Mistral Configuration
|
|
- MISTRAL_API_KEY=${MISTRAL_API_KEY:-}
|
|
- MISTRAL_API_URL=${MISTRAL_API_URL:-}
|
|
- MISTRAL_MODEL_PRIMARY=${MISTRAL_MODEL_PRIMARY:-}
|
|
- MISTRAL_MODEL_BACKUP_1=${MISTRAL_MODEL_BACKUP_1:-}
|
|
- MISTRAL_MODEL_BACKUP_2=${MISTRAL_MODEL_BACKUP_2:-}
|
|
# Other Providers
|
|
- GROQ_API_KEY=${GROQ_API_KEY:-}
|
|
- GROQ_API_TOKEN=${GROQ_API_TOKEN:-}
|
|
- GOOGLE_API_KEY=${GOOGLE_API_KEY:-}
|
|
- NVIDIA_API_KEY=${NVIDIA_API_KEY:-}
|
|
- OLLAMA_API_URL=${OLLAMA_API_URL:-}
|
|
- OLLAMA_API_KEY=${OLLAMA_API_KEY:-}
|
|
- REPO_URL=${REPO_URL:-}
|
|
- REPO_BRANCH=${REPO_BRANCH:-main}
|
|
- ACCESS_PASSWORD=${ACCESS_PASSWORD:-}
|
|
# Dodo Payments Integration
|
|
- DODO_PAYMENTS_API_KEY=${DODO_PAYMENTS_API_KEY:-}
|
|
- DODO_PAYMENTS_ENV=${DODO_PAYMENTS_ENV:-test}
|
|
- DODO_PAYMENTS_WEBHOOK_KEY=${DODO_PAYMENTS_WEBHOOK_KEY:-}
|
|
- DODO_TOPUP_PRODUCT_1=${DODO_TOPUP_PRODUCT_1:-}
|
|
- DODO_TOPUP_PRODUCT_2=${DODO_TOPUP_PRODUCT_2:-}
|
|
- DODO_TOPUP_PRODUCT_3=${DODO_TOPUP_PRODUCT_3:-}
|
|
- DODO_TOPUP_PRODUCT_4=${DODO_TOPUP_PRODUCT_4:-}
|
|
- DODO_TOPUP_TOKENS_1=${DODO_TOPUP_TOKENS_1:-100000}
|
|
- DODO_TOPUP_TOKENS_2=${DODO_TOPUP_TOKENS_2:-5000000}
|
|
- DODO_TOPUP_TOKENS_3=${DODO_TOPUP_TOKENS_3:-20000000}
|
|
- DODO_TOPUP_TOKENS_4=${DODO_TOPUP_TOKENS_4:-50000000}
|
|
- DODO_MIN_AMOUNT=${DODO_MIN_AMOUNT:-50}
|
|
# Subscription Plans - Starter
|
|
- DODO_STARTER_MONTHLY_USD=${DODO_STARTER_MONTHLY_USD:-}
|
|
- DODO_STARTER_YEARLY_USD=${DODO_STARTER_YEARLY_USD:-}
|
|
- DODO_STARTER_MONTHLY_GBP=${DODO_STARTER_MONTHLY_GBP:-}
|
|
- DODO_STARTER_YEARLY_GBP=${DODO_STARTER_YEARLY_GBP:-}
|
|
- DODO_STARTER_MONTHLY_EUR=${DODO_STARTER_MONTHLY_EUR:-}
|
|
- DODO_STARTER_YEARLY_EUR=${DODO_STARTER_YEARLY_EUR:-}
|
|
# Subscription Plans - Professional
|
|
- DODO_PROFESSIONAL_MONTHLY_USD=${DODO_PROFESSIONAL_MONTHLY_USD:-}
|
|
- DODO_PROFESSIONAL_YEARLY_USD=${DODO_PROFESSIONAL_YEARLY_USD:-}
|
|
- DODO_PROFESSIONAL_MONTHLY_GBP=${DODO_PROFESSIONAL_MONTHLY_GBP:-}
|
|
- DODO_PROFESSIONAL_YEARLY_GBP=${DODO_PROFESSIONAL_YEARLY_GBP:-}
|
|
- DODO_PROFESSIONAL_MONTHLY_EUR=${DODO_PROFESSIONAL_MONTHLY_EUR:-}
|
|
- DODO_PROFESSIONAL_YEARLY_EUR=${DODO_PROFESSIONAL_YEARLY_EUR:-}
|
|
# Subscription Plans - Enterprise
|
|
- DODO_ENTERPRISE_MONTHLY_USD=${DODO_ENTERPRISE_MONTHLY_USD:-}
|
|
- DODO_ENTERPRISE_YEARLY_USD=${DODO_ENTERPRISE_YEARLY_USD:-}
|
|
- DODO_ENTERPRISE_MONTHLY_GBP=${DODO_ENTERPRISE_MONTHLY_GBP:-}
|
|
- DODO_ENTERPRISE_YEARLY_GBP=${DODO_ENTERPRISE_YEARLY_GBP:-}
|
|
- DODO_ENTERPRISE_MONTHLY_EUR=${DODO_ENTERPRISE_MONTHLY_EUR:-}
|
|
- DODO_ENTERPRISE_YEARLY_EUR=${DODO_ENTERPRISE_YEARLY_EUR:-}
|
|
# Pay-as-you-go
|
|
- DODO_PAYG_USD=${DODO_PAYG_USD:-}
|
|
- DODO_PAYG_GBP=${DODO_PAYG_GBP:-}
|
|
- DODO_PAYG_EUR=${DODO_PAYG_EUR:-}
|
|
- DODO_PAYG_ENABLED=${DODO_PAYG_ENABLED:-1}
|
|
# Google OAuth
|
|
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID:-}
|
|
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET:-}
|
|
- PUBLIC_BASE_URL=${PUBLIC_BASE_URL:-}
|
|
# Session Secret
|
|
- SESSION_SECRET=${SESSION_SECRET:-}
|
|
# Admin Authentication
|
|
- ADMIN_USER=${ADMIN_USER:-}
|
|
- ADMIN_PASSWORD=${ADMIN_PASSWORD:-}
|
|
- ADMIN_SESSION_TTL_MS=${ADMIN_SESSION_TTL_MS:-}
|
|
- COOKIE_SECURE=${COOKIE_SECURE:-}
|
|
volumes:
|
|
- pwsh_profile:/root/.config/powershell
|
|
- web_data:/home/web/data
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '0.50'
|
|
memory: 1536M
|
|
secrets:
|
|
- GITHUB_PAT
|
|
stop_grace_period: 30s
|
|
|
|
volumes:
|
|
pwsh_profile:
|
|
name: shopify_ai_pwsh_profile
|
|
web_data:
|
|
name: shopify_ai_data
|
|
secrets:
|
|
GITHUB_PAT:
|
|
external: true
|