Files
shopify-ai-backup/stack-portainer.yml
2026-02-07 20:59:44 +00:00

119 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:
- "4501:4501"
- "4500:4500"
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