Skip to main content

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.