Cap Server YAML
docker-compose.yml
version: "3.9"
services:
cap-web:
container_name: cap-web
image: ghcr.io/capsoftware/cap-web:latest
restart: unless-stopped
environment:
DATABASE_URL: 'mysql://root:@ps-mysql:3306/planetscale?ssl={"rejectUnauthorized":false}'
# WEB URL und NEXTAUTH URL anpassen, die Public erreichbar sind
WEB_URL: https://cap.domain.com
NEXTAUTH_URL: https://cap.domain.com
# Secrets lassen sich mit diesem Befehl generieren: openssl rand -base64 32
DATABASE_ENCRYPTION_KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
NEXTAUTH_SECRET: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# MinIO / S3 Konfiguration
CAP_AWS_ACCESS_KEY: username
CAP_AWS_SECRET_KEY: sicheresKennwort
CAP_AWS_BUCKET: caps
CAP_AWS_REGION: us-east-1 #kann so bleiben
#muss extern erreichbar sein, sonst keine Wiedergabe per Shared Link!
S3_PUBLIC_ENDPOINT: https://bucket.tombehrendt.de
# IP nutzen, ist für Admin Zwecke
S3_INTERNAL_ENDPOINT: http://192.168.178.238:3902
# https://resend.com/ -> für Mail Versand der Codes, API Key erhält man nach registrierung
RESEND_API_KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
RESEND_FROM_DOMAIN: domain.com
# Absolut empfehlenswert, damit nicht jeder sich registrieren kann
CAP_ALLOWED_SIGNUP_DOMAINS: tombehrendt.de
ports:
- "3003:3000"
depends_on:
- ps-mysql
- minio
ps-mysql:
container_name: cap-primary-db
image: mysql:8.0
restart: unless-stopped
environment:
MYSQL_DATABASE: planetscale
MYSQL_ROOT_HOST: "%"
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
command:
[
"--max_connections=1000",
"--default-authentication-plugin=mysql_native_password"
]
ports:
- "3306:3306"
# Volume Path kann nach belieben angepasst werden
volumes:
- /cap-docker/ps-mysql:/var/lib/mysql
minio:
container_name: cap-minio-storage
image: minio/minio:latest
restart: unless-stopped
ports:
- "3902:3902" # API
- "3903:3903" # Console
environment:
MINIO_ROOT_USER: username
MINIO_ROOT_PASSWORD: sicheresKennwort
command: server /data --address ":3902" --console-address ":3903"
# Volume Path kann nach belieben angepasst werden
volumes:
- /cap-docker/minio-data:/data
volumes:
ps-mysql:
minio-data:
Es müssen einige Variablen gesetzt werden siehe Kommentare.