wiki_ghostguild/dokploy.yaml

91 lines
No EOL
1.5 KiB
YAML

# DokPloy Configuration for Wiki.GhostGuild.org
name: wiki-ghostguild
type: nixpacks
# Build Configuration
build:
dockerfile: null # Using Nixpacks auto-detection
context: .
# Environment Configuration
env:
NODE_ENV: production
NITRO_PRESET: node-server
# Secrets (configured in DokPloy UI)
# These should be set in DokPloy interface, not in this file:
# - MONGODB_URI
# - JWT_SECRET
# - JWT_REFRESH_SECRET
# - GHOSTGUILD_CLIENT_ID
# - GHOSTGUILD_CLIENT_SECRET
# - GHOSTGUILD_API_KEY
# Port Configuration
ports:
- 3000:3000
# Health Check
healthcheck:
path: /api/health
interval: 30
timeout: 10
retries: 3
# Resource Limits
resources:
limits:
memory: 1GB
cpu: 1
requests:
memory: 512MB
cpu: 0.5
# Domains
domains:
- wiki.ghostguild.org
# SSL Configuration
ssl:
enabled: true
provider: letsencrypt
email: admin@ghostguild.org
# Deployment Strategy
deploy:
replicas: 1
strategy: rolling
maxSurge: 1
maxUnavailable: 0
# Volume Mounts (for persistent data)
volumes:
- name: content
path: /app/content
size: 5GB
- name: uploads
path: /app/public/uploads
size: 10GB
# Commands
scripts:
prebuild: |
echo "Installing dependencies..."
npm ci
build: |
echo "Building application..."
npm run build
start: |
echo "Starting production server..."
node .output/server/index.mjs
# Monitoring
monitoring:
enabled: true
metrics_path: /metrics
# Backup Configuration
backup:
enabled: true
schedule: "0 2 * * *" # Daily at 2 AM
retention: 30 # Keep 30 days of backups