From 12ba1530e4fb143deaaf43de0cf8fc545ec2b27b Mon Sep 17 00:00:00 2001 From: skisafk Date: Mon, 31 Aug 2026 05:17:50 +0000 Subject: [PATCH] Update docker-compose.coolify.yml --- docker-compose.coolify.yml | 117 +++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/docker-compose.coolify.yml b/docker-compose.coolify.yml index e69de29..d6567b8 100644 --- a/docker-compose.coolify.yml +++ b/docker-compose.coolify.yml @@ -0,0 +1,117 @@ +name: cap + +services: + cap-web: + image: 'ghcr.io/capsoftware/cap-web:latest' + restart: unless-stopped + depends_on: + mysql: + condition: service_healthy + minio: + condition: service_healthy + environment: + SERVICE_URL_CAP_WEB_3000: '' + DATABASE_URL: 'mysql://cap:${SERVICE_PASSWORD_MYSQL}@mysql:3306/cap' + WEB_URL: '${SERVICE_URL_CAP_WEB}' + NEXTAUTH_URL: '${SERVICE_URL_CAP_WEB}' + DATABASE_ENCRYPTION_KEY: '${SERVICE_HEX_32_DATABASEENCRYPTIONKEY}' + NEXTAUTH_SECRET: '${SERVICE_HEX_32_NEXTAUTHSECRET}' + CAP_AWS_ACCESS_KEY: capadmin + CAP_AWS_SECRET_KEY: '${SERVICE_PASSWORD_MINIO}' + CAP_AWS_BUCKET: cap + CAP_AWS_REGION: us-east-1 + S3_PUBLIC_ENDPOINT: '${SERVICE_URL_MINIO}' + S3_INTERNAL_ENDPOINT: 'http://minio:9000' + S3_PATH_STYLE: 'true' + RESEND_API_KEY: '${RESEND_API_KEY:-}' + RESEND_FROM_DOMAIN: '${RESEND_FROM_DOMAIN:-}' + GOOGLE_CLIENT_ID: '${GOOGLE_CLIENT_ID:-}' + GOOGLE_CLIENT_SECRET: '${GOOGLE_CLIENT_SECRET:-}' + APPLE_CLIENT_ID: '${APPLE_CLIENT_ID:-}' + APPLE_CLIENT_SECRET: '${APPLE_CLIENT_SECRET:-}' + MEDIA_SERVER_URL: 'http://media-server:3456' + MEDIA_SERVER_WEBHOOK_SECRET: '${SERVICE_HEX_32_MEDIASERVER}' + MEDIA_SERVER_WEBHOOK_URL: 'http://cap-web:3000' + healthcheck: + test: + - CMD + - wget + - '-q' + - '-O' + - /dev/null + - 'http://127.0.0.1:3000/' + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + + media-server: + image: 'ghcr.io/capsoftware/cap-media-server:latest' + restart: unless-stopped + environment: + PORT: 3456 + MEDIA_SERVER_WEBHOOK_SECRET: '${SERVICE_HEX_32_MEDIASERVER}' + healthcheck: + test: + - CMD + - bun + - '-e' + - "fetch('http://127.0.0.1:3456/health').then((response) => process.exit(response.ok ? 0 : 1)).catch(() => process.exit(1))" + interval: 30s + timeout: 10s + retries: 3 + start_period: 10s + + mysql: + image: 'mysql:8.0' + restart: unless-stopped + environment: + MYSQL_DATABASE: cap + MYSQL_USER: cap + MYSQL_PASSWORD: '${SERVICE_PASSWORD_MYSQL}' + MYSQL_ROOT_PASSWORD: '${SERVICE_PASSWORD_64_MYSQL}' + command: + - '--max_connections=1000' + - '--character-set-server=utf8mb4' + - '--collation-server=utf8mb4_unicode_ci' + volumes: + - 'cap-mysql-data:/var/lib/mysql' + healthcheck: + test: + - CMD + - mysqladmin + - ping + - '-h' + - localhost + - '-u' + - cap + - '-p${SERVICE_PASSWORD_MYSQL}' + interval: 10s + timeout: 5s + retries: 10 + start_period: 30s + + minio: + image: 'minio/minio:latest' + restart: unless-stopped + command: 'server /data --console-address ":9001"' + environment: + MINIO_ROOT_USER: capadmin + MINIO_ROOT_PASSWORD: '${SERVICE_PASSWORD_MINIO}' + SERVICE_URL_MINIO_9000: '' + volumes: + - 'cap-minio-data:/data' + healthcheck: + test: + - CMD + - mc + - ready + - local + interval: 30s + timeout: 10s + retries: 3 + start_period: 10s + +volumes: + cap-mysql-data: null + cap-minio-data: null \ No newline at end of file