Files
swarm/repomix-output.json
2025-11-19 11:49:26 +00:00

15 lines
49 KiB
JSON

{
"directoryStructure": "compose/\n swarm/\n docker-compose.appwrite.yml\n docker-compose.cap.yml\n docker-compose.gitea.yml\n docker-compose.litellm.yml\n docker-compose.n8n.yml\n docker-compose.newt.yml\n docker-compose.unstructured.yml\n README.md\ntraefik/\n traefik.yaml\ndocker-compose.yml",
"files": {
"compose/swarm/docker-compose.cap.yml": "version: \"3.8\"\n\nname: capso\n\nservices:\n cap-web:\n image: ghcr.io/capsoftware/cap-web:latest\n networks:\n - crackbox-edge\n - cap-net\n environment:\n DATABASE_URL: 'mysql://root:@ps-mysql:3306/planetscale?ssl={\"rejectUnauthorized\":false}'\n WEB_URL: https://cap.sidepiece.rip\n NEXTAUTH_URL: https://cap.sidepiece.rip\n DATABASE_ENCRYPTION_KEY: xbrbw5lbabvno4cin6jfuvtr34le1qih\n NEXTAUTH_SECRET: zpazylxvkjck5z61wf2e07muvfle4hc3\n CAP_AWS_ACCESS_KEY: capS3root\n CAP_AWS_SECRET_KEY: capS3root\n CAP_AWS_BUCKET: capso\n CAP_AWS_REGION: us-east-1\n S3_PUBLIC_ENDPOINT: https://cap.sidepiece.rip/minio\n S3_INTERNAL_ENDPOINT: http://minio-cap:3902\n RESEND_API_KEY: re_5HCAikMc_G49LpJciapMrpg5qz4JRysXY\n RESEND_FROM_DOMAIN: sidepiece.rip\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n labels:\n - \"traefik.enable=true\"\n - \"traefik.http.routers.cap-web.rule=Host(`cap.sidepiece.rip`)\"\n - \"traefik.http.routers.cap-web.entrypoints=websecure\"\n - \"traefik.http.routers.cap-web.tls.certresolver=letsencrypt\"\n - \"traefik.http.services.cap-web.loadbalancer.server.port=3000\"\n\n ps-mysql:\n image: mysql:8.0\n environment:\n MYSQL_DATABASE: planetscale\n MYSQL_ROOT_HOST: \"%\"\n MYSQL_ALLOW_EMPTY_PASSWORD: \"yes\"\n networks:\n - cap-net\n command:\n [\n \"--max_connections=1000\",\n \"--default-authentication-plugin=mysql_native_password\",\n ]\n ports:\n - target: 3306\n published: 3306\n mode: host\n volumes:\n - ps-mysql-cap:/var/lib/mysql\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n minio-cap:\n image: minio/minio:latest\n networks:\n - cap-net\n - crackbox-edge\n environment:\n - MINIO_API_PORT_NUMBER=3902\n - MINIO_CONSOLE_PORT_NUMBER=3903\n - MINIO_ROOT_USER=capS3root\n - MINIO_ROOT_PASSWORD=capS3root\n volumes:\n - cap-minio-data:/bitnami/minio/data\n - cap-minio-certs:/certs\n command: server /data --address \":3902\" --console-address \":3903\"\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n labels:\n - \"traefik.enable=true\"\n - \"traefik.http.routers.minio-cap-api.rule=Host(`cap.sidepiece.rip`) && PathPrefix(`/minio`)\"\n - \"traefik.http.routers.minio-cap-api.entrypoints=websecure\"\n - \"traefik.http.routers.minio-cap-api.tls.certresolver=letsencrypt\"\n - \"traefik.http.routers.minio-cap-api.middlewares=minio-cap-stripprefix\"\n - \"traefik.http.middlewares.minio-cap-stripprefix.stripprefix.prefixes=/minio\"\n - \"traefik.http.services.minio-cap-api.loadbalancer.server.port=3902\"\n - \"traefik.http.routers.minio-cap-console.rule=Host(`minio-cap.sidepiece.rip`)\"\n - \"traefik.http.routers.minio-cap-console.entrypoints=websecure\"\n - \"traefik.http.routers.minio-cap-console.tls.certresolver=letsencrypt\"\n - \"traefik.http.routers.minio-cap-console.service=minio-cap-console\"\n - \"traefik.http.services.minio-cap-console.loadbalancer.server.port=3903\"\n\nvolumes:\n ps-mysql-cap:\n name: mysql-cap\n external: true\n cap-minio-data:\n name: minio-cap\n external: true\n cap-minio-certs:\n name: minio-cap-certs\n external: true\n\nnetworks:\n crackbox-edge:\n external: true\n cap-net:\n driver: overlay\n attachable: true",
"compose/swarm/docker-compose.n8n.yml": "version: \"3.8\"\n\nservices:\n n8n:\n image: docker.n8n.io/n8nio/n8n\n environment:\n - SERVICE_FQDN_N8N_5678\n - \"N8N_EDITOR_BASE_URL=${SERVICE_FQDN_N8N}\"\n - \"WEBHOOK_URL=${SERVICE_FQDN_N8N}\"\n - \"N8N_HOST=${SERVICE_URL_N8N}\"\n - \"GENERIC_TIMEZONE=${GENERIC_TIMEZONE:-America/New_York}\"\n - \"TZ=${TZ:-America/New_York}\"\n - \"DB_SQLITE_POOL_SIZE=10\"\n - \"N8N_RUNNERS_ENABLED=true\"\n - \"N8N_BLOCK_ENV_ACCESS_IN_NODE=false\"\n - \"N8N_GIT_NODE_DISABLE_BARE_REPOS=false\"\n volumes:\n - \"/home/n8n/volumes/data:/home/node/.n8n\"\n networks:\n - crackbox_tunnel\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n labels:\n - \"traefik.enable=true\"\n - \"traefik.http.routers.n8n.rule=Host(`n8n.sidepiece.rip`)\"\n - \"traefik.http.routers.n8n.entrypoints=websecure\"\n - \"traefik.http.routers.n8n.tls.certresolver=letsencrypt\"\n - \"traefik.http.services.n8n.loadbalancer.server.port=5678\"\n healthcheck:\n test:\n - CMD-SHELL\n - \"wget -qO- http://127.0.0.1:5678/\"\n interval: 5s\n timeout: 20s\n retries: 10\n\nnetworks:\n crackbox_tunnel:\n external: true",
"compose/swarm/docker-compose.unstructured.yml": "version: \"3.8\"\n\nservices:\n unstructured-api:\n image: downloads.unstructured.io/unstructured-io/unstructured-api:latest\n environment:\n - PORT=8000\n volumes:\n - /home/trav/biz-bud/docker/volumes/unstructured:/data\n networks:\n - structnet\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n preferences:\n - spread: node.labels.platform\n resources:\n limits:\n cpus: \"2\"\n memory: 4G\n reservations:\n cpus: \"1\"\n memory: 2G\n labels:\n - \"traefik.enable=true\"\n - \"traefik.http.routers.unstructured-api.rule=Host(`unstructured.sidepiece.rip`)\"\n - \"traefik.http.routers.unstructured-api.entrypoints=websecure\"\n - \"traefik.http.routers.unstructured-api.tls.certresolver=letsencrypt\"\n - \"traefik.http.services.unstructured-api.loadbalancer.server.port=8000\"\n healthcheck:\n test: [\"CMD\", \"curl\", \"-f\", \"http://localhost:8000/healthcheck\"]\n interval: 30s\n timeout: 10s\n retries: 5\n\nnetworks:\n structnet:\n driver: overlay\n attachable: true",
"compose/README.md": "# compose",
"compose/swarm/docker-compose.gitea.yml": "services:\n gitea:\n image: 'gitea/gitea:latest'\n environment:\n - SERVICE_FQDN_GITEA_3000\n - USER_UID=1000\n - USER_GID=1000\n - GITEA__database__DB_TYPE=postgres\n - GITEA__database__HOST=postgresql\n - 'GITEA__database__NAME=${POSTGRESQL_DATABASE-gitea}'\n - GITEA__database__USER=gitea\n - GITEA__database__SSL_MODE=disable\n - GITEA__database__PASSWD=$SERVICE_PASSWORD_POSTGRESQL\n - GITEA__actions__ENABLED=true\n volumes:\n - '/home/gitea:/data'\n - 'gitea-timezone:/etc/timezone:ro'\n - 'gitea-localtime:/etc/localtime:ro'\n networks:\n - gitea\n ports:\n - '2222:22'\n - 5000\n - '37770:3000'\n depends_on:\n - postgresql\n healthcheck:\n test:\n - CMD\n - curl\n - '-f'\n - 'http://127.0.0.1:3000'\n interval: 2s\n timeout: 10s\n retries: 15\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.hostname == crackbox\n labels:\n - \"traefik.http.routers.gitea.middlewares=set-forwarded-https@file\"\n runner:\n image: docker.io/gitea/act_runner:nightly\n environment:\n CONFIG_FILE: /config.yaml\n GITEA_INSTANCE_URL: \"${INSTANCE_URL}\"\n GITEA_RUNNER_REGISTRATION_TOKEN: \"${REGISTRATION_TOKEN}\"\n GITEA_RUNNER_NAME: \"${RUNNER_NAME}\"\n GITEA_RUNNER_LABELS: \"${RUNNER_LABELS}\"\n volumes:\n - /home/gitea:/data\n - /home/gitea/gitea/conf/config.yaml:/config.yaml\n - /var/run/docker.sock:/var/run/docker.sock\n networks:\n - gitea\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.hostname == crackbox\n postgresql:\n image: 'postgres:16-alpine'\n networks:\n - gitea\n volumes:\n - 'gitea-postgresql-data:/var/lib/postgresql/data'\n environment:\n - 'POSTGRES_USER=gitea'\n - 'POSTGRES_PASSWORD=GiteaDB_StrongPass_2025!@#'\n - 'POSTGRES_DB=gitea'\n healthcheck:\n test:\n - CMD-SHELL\n - 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'\n interval: 5s\n timeout: 20s\n retries: 10\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.hostname == crackbox\nvolumes:\n gitea-postgresql-data:\n name: gitea-postgresql-data\n external: true\n gitea-timezone: {}\n gitea-localtime: {}\nnetworks:\n gitea:\n internal: true\n public:\n external: true\n badge-net:\n external: true",
"compose/swarm/docker-compose.newt.yml": "services:\n newt:\n image: fosrl/newt\n environment:\n - PANGOLIN_ENDPOINT=https://pangolin.sidepiece.rip\n - NEWT_ID=km7agi2nq7u21sg\n - NEWT_SECRET=xtmr9fvgnhiogpowp9d1c4y9tnll1s41mkgjl44ljthu6n7a\n - DOCKER_SOCKET=/var/run/docker.sock\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock\n networks:\n - public\n - badge-net\n extra_hosts:\n - \"host.docker.internal:host-gateway\"\n cap_add:\n - NET_ADMIN\n - NET_RAW\n - SYS_MODULE\n devices:\n - /dev/net/tun:/dev/net/tun\n sysctls:\n - net.ipv4.ip_forward=1\n ports:\n - \"51820:51820/udp\"\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n\nnetworks:\n badge-net:\n external: true\n name: badge-net\n public:\n external: true\n name: public",
"compose/swarm/docker-compose.appwrite.yml": "x-logging: &x-logging\n logging:\n driver: 'json-file'\n options:\n max-file: '5'\n max-size: '10m'\nservices:\n appwrite:\n image: appwrite/appwrite:1.8.0\n <<: *x-logging\n networks:\n - appwrite\n - public\n volumes:\n - appwrite-uploads:/storage/uploads:rw\n - appwrite-imports:/storage/imports:rw\n - appwrite-cache:/storage/cache:rw\n - appwrite-config:/storage/config:rw\n - appwrite-certificates:/storage/certificates:rw\n - appwrite-functions:/storage/functions:rw\n - appwrite-sites:/storage/sites:rw\n - appwrite-builds:/storage/builds:rw\n depends_on:\n - mariadb\n - redis\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_LOCALE\n - _APP_COMPRESSION_MIN_SIZE_BYTES\n - _APP_CONSOLE_WHITELIST_ROOT\n - _APP_CONSOLE_WHITELIST_EMAILS\n - _APP_CONSOLE_SESSION_ALERTS\n - _APP_CONSOLE_WHITELIST_IPS\n - _APP_CONSOLE_HOSTNAMES\n - _APP_SYSTEM_EMAIL_NAME\n - _APP_SYSTEM_EMAIL_ADDRESS\n - _APP_EMAIL_SECURITY\n - _APP_SYSTEM_RESPONSE_FORMAT\n - _APP_OPTIONS_ABUSE\n - _APP_OPTIONS_ROUTER_PROTECTION\n - _APP_OPTIONS_FORCE_HTTPS\n - _APP_OPTIONS_ROUTER_FORCE_HTTPS\n - _APP_OPENSSL_KEY_V1\n - _APP_DOMAIN\n - _APP_DOMAIN_TARGET_CNAME\n - _APP_DOMAIN_TARGET_AAAA\n - _APP_DOMAIN_TARGET_A\n - _APP_DOMAIN_TARGET_CAA\n - _APP_DNS\n - _APP_DOMAIN_FUNCTIONS\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_SMTP_HOST\n - _APP_SMTP_PORT\n - _APP_SMTP_SECURE\n - _APP_SMTP_USERNAME\n - _APP_SMTP_PASSWORD\n - _APP_USAGE_STATS\n - _APP_STORAGE_LIMIT\n - _APP_STORAGE_PREVIEW_LIMIT\n - _APP_STORAGE_ANTIVIRUS\n - _APP_STORAGE_ANTIVIRUS_HOST\n - _APP_STORAGE_ANTIVIRUS_PORT\n - _APP_STORAGE_DEVICE\n - _APP_STORAGE_S3_ACCESS_KEY\n - _APP_STORAGE_S3_SECRET\n - _APP_STORAGE_S3_REGION\n - _APP_STORAGE_S3_BUCKET\n - _APP_STORAGE_S3_ENDPOINT\n - _APP_STORAGE_DO_SPACES_ACCESS_KEY\n - _APP_STORAGE_DO_SPACES_SECRET\n - _APP_STORAGE_DO_SPACES_REGION\n - _APP_STORAGE_DO_SPACES_BUCKET\n - _APP_STORAGE_BACKBLAZE_ACCESS_KEY\n - _APP_STORAGE_BACKBLAZE_SECRET\n - _APP_STORAGE_BACKBLAZE_REGION\n - _APP_STORAGE_BACKBLAZE_BUCKET\n - _APP_STORAGE_LINODE_ACCESS_KEY\n - _APP_STORAGE_LINODE_SECRET\n - _APP_STORAGE_LINODE_REGION\n - _APP_STORAGE_LINODE_BUCKET\n - _APP_STORAGE_WASABI_ACCESS_KEY\n - _APP_STORAGE_WASABI_SECRET\n - _APP_STORAGE_WASABI_REGION\n - _APP_STORAGE_WASABI_BUCKET\n - _APP_COMPUTE_SIZE_LIMIT\n - _APP_FUNCTIONS_TIMEOUT\n - _APP_SITES_TIMEOUT\n - _APP_COMPUTE_BUILD_TIMEOUT\n - _APP_COMPUTE_CPUS\n - _APP_COMPUTE_MEMORY\n - _APP_FUNCTIONS_RUNTIMES\n - _APP_SITES_RUNTIMES\n - _APP_DOMAIN_SITES\n - _APP_EXECUTOR_SECRET\n - _APP_EXECUTOR_HOST\n - _APP_LOGGING_CONFIG\n - _APP_MAINTENANCE_INTERVAL\n - _APP_MAINTENANCE_DELAY\n - _APP_MAINTENANCE_START_TIME\n - _APP_MAINTENANCE_RETENTION_EXECUTION\n - _APP_MAINTENANCE_RETENTION_CACHE\n - _APP_MAINTENANCE_RETENTION_ABUSE\n - _APP_MAINTENANCE_RETENTION_AUDIT\n - _APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE\n - _APP_MAINTENANCE_RETENTION_USAGE_HOURLY\n - _APP_MAINTENANCE_RETENTION_SCHEDULES\n - _APP_SMS_PROVIDER\n - _APP_SMS_FROM\n - _APP_GRAPHQL_MAX_BATCH_SIZE\n - _APP_GRAPHQL_MAX_COMPLEXITY\n - _APP_GRAPHQL_MAX_DEPTH\n - _APP_VCS_GITHUB_APP_NAME\n - _APP_VCS_GITHUB_PRIVATE_KEY\n - _APP_VCS_GITHUB_APP_ID\n - _APP_VCS_GITHUB_WEBHOOK_SECRET\n - _APP_VCS_GITHUB_CLIENT_SECRET\n - _APP_VCS_GITHUB_CLIENT_ID\n - _APP_MIGRATIONS_FIREBASE_CLIENT_ID\n - _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET\n - _APP_ASSISTANT_OPENAI_API_KEY\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.hostname == crackbox\n labels:\n - \"traefik.enable=true\"\n - \"traefik.http.routers.appwrite_api_http.entrypoints=web\"\n - \"traefik.http.routers.appwrite_api_http.rule=PathPrefix(`/`)\"\n - \"traefik.http.routers.appwrite_api_http.service=appwrite_api\"\n - \"traefik.http.routers.appwrite_api_https.entrypoints=websecure\"\n - \"traefik.http.routers.appwrite_api_https.rule=PathPrefix(`/`)\"\n - \"traefik.http.routers.appwrite_api_https.service=appwrite_api\"\n - \"traefik.http.routers.appwrite_api_https.tls=true\"\n - \"traefik.http.services.appwrite_api.loadbalancer.server.port=80\"\n\n appwrite-console:\n <<: *x-logging\n image: appwrite/console:7.4.7\n networks:\n - appwrite\n - public\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n labels:\n - \"traefik.enable=true\"\n - \"traefik.http.routers.appwrite_console_http.entrypoints=web\"\n - \"traefik.http.routers.appwrite_console_http.rule=PathPrefix(`/console`)\"\n - \"traefik.http.routers.appwrite_console_http.service=appwrite_console\"\n - \"traefik.http.routers.appwrite_console_https.entrypoints=websecure\"\n - \"traefik.http.routers.appwrite_console_https.rule=PathPrefix(`/console`)\"\n - \"traefik.http.routers.appwrite_console_https.service=appwrite_console\"\n - \"traefik.http.routers.appwrite_console_https.tls=true\"\n - \"traefik.http.services.appwrite_console.loadbalancer.server.port=80\"\n\n appwrite-realtime:\n image: appwrite/appwrite:1.8.0\n entrypoint: realtime\n <<: *x-logging\n networks:\n - appwrite\n - public\n depends_on:\n - mariadb\n - redis\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPTIONS_ABUSE\n - _APP_OPTIONS_ROUTER_PROTECTION\n - _APP_OPENSSL_KEY_V1\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_USAGE_STATS\n - _APP_LOGGING_CONFIG\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n labels:\n - \"traefik.enable=true\"\n - \"traefik.http.routers.appwrite_realtime_http.entrypoints=web\"\n - \"traefik.http.routers.appwrite_realtime_http.rule=PathPrefix(`/v1/realtime`)\"\n - \"traefik.http.routers.appwrite_realtime_http.priority=100\"\n - \"traefik.http.routers.appwrite_realtime_http.service=appwrite_realtime\"\n - \"traefik.http.routers.appwrite_realtime_https.entrypoints=websecure\"\n - \"traefik.http.routers.appwrite_realtime_https.rule=PathPrefix(`/v1/realtime`)\"\n - \"traefik.http.routers.appwrite_realtime_https.priority=100\"\n - \"traefik.http.routers.appwrite_realtime_https.service=appwrite_realtime\"\n - \"traefik.http.routers.appwrite_realtime_https.tls=true\"\n - \"traefik.http.services.appwrite_realtime.loadbalancer.server.port=80\"\n\n appwrite-worker-audits:\n image: appwrite/appwrite:1.8.0\n entrypoint: worker-audits\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - redis\n - mariadb\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_LOGGING_CONFIG\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-worker-webhooks:\n image: appwrite/appwrite:1.8.0\n entrypoint: worker-webhooks\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - redis\n - mariadb\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_EMAIL_SECURITY\n - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_LOGGING_CONFIG\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-worker-deletes:\n image: appwrite/appwrite:1.8.0\n entrypoint: worker-deletes\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - redis\n - mariadb\n volumes:\n - appwrite-uploads:/storage/uploads:rw\n - appwrite-cache:/storage/cache:rw\n - appwrite-functions:/storage/functions:rw\n - appwrite-sites:/storage/sites:rw\n - appwrite-builds:/storage/builds:rw\n - appwrite-certificates:/storage/certificates:rw\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_STORAGE_DEVICE\n - _APP_STORAGE_S3_ACCESS_KEY\n - _APP_STORAGE_S3_SECRET\n - _APP_STORAGE_S3_REGION\n - _APP_STORAGE_S3_BUCKET\n - _APP_STORAGE_S3_ENDPOINT\n - _APP_STORAGE_DO_SPACES_ACCESS_KEY\n - _APP_STORAGE_DO_SPACES_SECRET\n - _APP_STORAGE_DO_SPACES_REGION\n - _APP_STORAGE_DO_SPACES_BUCKET\n - _APP_STORAGE_BACKBLAZE_ACCESS_KEY\n - _APP_STORAGE_BACKBLAZE_SECRET\n - _APP_STORAGE_BACKBLAZE_REGION\n - _APP_STORAGE_BACKBLAZE_BUCKET\n - _APP_STORAGE_LINODE_ACCESS_KEY\n - _APP_STORAGE_LINODE_SECRET\n - _APP_STORAGE_LINODE_REGION\n - _APP_STORAGE_LINODE_BUCKET\n - _APP_STORAGE_WASABI_ACCESS_KEY\n - _APP_STORAGE_WASABI_SECRET\n - _APP_STORAGE_WASABI_REGION\n - _APP_STORAGE_WASABI_BUCKET\n - _APP_LOGGING_CONFIG\n - _APP_EXECUTOR_SECRET\n - _APP_EXECUTOR_HOST\n - _APP_MAINTENANCE_RETENTION_ABUSE\n - _APP_MAINTENANCE_RETENTION_AUDIT\n - _APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE\n - _APP_MAINTENANCE_RETENTION_EXECUTION\n - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS\n - _APP_EMAIL_CERTIFICATES\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-worker-databases:\n image: appwrite/appwrite:1.8.0\n entrypoint: worker-databases\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - redis\n - mariadb\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_LOGGING_CONFIG\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-worker-builds:\n image: appwrite/appwrite:1.8.0\n entrypoint: worker-builds\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - redis\n - mariadb\n volumes:\n - appwrite-functions:/storage/functions:rw\n - appwrite-sites:/storage/sites:rw\n - appwrite-builds:/storage/builds:rw\n - appwrite-uploads:/storage/uploads:rw\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_EXECUTOR_SECRET\n - _APP_EXECUTOR_HOST\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_LOGGING_CONFIG\n - _APP_VCS_GITHUB_APP_NAME\n - _APP_VCS_GITHUB_PRIVATE_KEY\n - _APP_VCS_GITHUB_APP_ID\n - _APP_FUNCTIONS_TIMEOUT\n - _APP_SITES_TIMEOUT\n - _APP_COMPUTE_BUILD_TIMEOUT\n - _APP_COMPUTE_CPUS\n - _APP_COMPUTE_MEMORY\n - _APP_COMPUTE_SIZE_LIMIT\n - _APP_OPTIONS_FORCE_HTTPS\n - _APP_OPTIONS_ROUTER_FORCE_HTTPS\n - _APP_DOMAIN\n - _APP_STORAGE_DEVICE\n - _APP_STORAGE_S3_ACCESS_KEY\n - _APP_STORAGE_S3_SECRET\n - _APP_STORAGE_S3_REGION\n - _APP_STORAGE_S3_BUCKET\n - _APP_STORAGE_S3_ENDPOINT\n - _APP_STORAGE_DO_SPACES_ACCESS_KEY\n - _APP_STORAGE_DO_SPACES_SECRET\n - _APP_STORAGE_DO_SPACES_REGION\n - _APP_STORAGE_DO_SPACES_BUCKET\n - _APP_STORAGE_BACKBLAZE_ACCESS_KEY\n - _APP_STORAGE_BACKBLAZE_SECRET\n - _APP_STORAGE_BACKBLAZE_REGION\n - _APP_STORAGE_BACKBLAZE_BUCKET\n - _APP_STORAGE_LINODE_ACCESS_KEY\n - _APP_STORAGE_LINODE_SECRET\n - _APP_STORAGE_LINODE_REGION\n - _APP_STORAGE_LINODE_BUCKET\n - _APP_STORAGE_WASABI_ACCESS_KEY\n - _APP_STORAGE_WASABI_SECRET\n - _APP_STORAGE_WASABI_REGION\n - _APP_STORAGE_WASABI_BUCKET\n - _APP_DOMAIN_SITES\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-worker-certificates:\n image: appwrite/appwrite:1.8.0\n entrypoint: worker-certificates\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - redis\n - mariadb\n volumes:\n - appwrite-config:/storage/config:rw\n - appwrite-certificates:/storage/certificates:rw\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_DOMAIN\n - _APP_DOMAIN_TARGET_CNAME\n - _APP_DOMAIN_TARGET_AAAA\n - _APP_DOMAIN_TARGET_A\n - _APP_DOMAIN_TARGET_CAA\n - _APP_DNS\n - _APP_DOMAIN_FUNCTIONS\n - _APP_EMAIL_CERTIFICATES\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_LOGGING_CONFIG\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-worker-functions:\n image: appwrite/appwrite:1.8.0\n entrypoint: worker-functions\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - redis\n - mariadb\n - openruntimes-executor\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_DOMAIN\n - _APP_OPTIONS_FORCE_HTTPS\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_FUNCTIONS_TIMEOUT\n - _APP_SITES_TIMEOUT\n - _APP_COMPUTE_BUILD_TIMEOUT\n - _APP_COMPUTE_CPUS\n - _APP_COMPUTE_MEMORY\n - _APP_EXECUTOR_SECRET\n - _APP_EXECUTOR_HOST\n - _APP_USAGE_STATS\n - _APP_DOCKER_HUB_USERNAME\n - _APP_DOCKER_HUB_PASSWORD\n - _APP_LOGGING_CONFIG\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-worker-mails:\n image: appwrite/appwrite:1.8.0\n entrypoint: worker-mails\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - redis\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_SYSTEM_EMAIL_NAME\n - _APP_SYSTEM_EMAIL_ADDRESS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_SMTP_HOST\n - _APP_SMTP_PORT\n - _APP_SMTP_SECURE\n - _APP_SMTP_USERNAME\n - _APP_SMTP_PASSWORD\n - _APP_LOGGING_CONFIG\n - _APP_DOMAIN\n - _APP_OPTIONS_FORCE_HTTPS\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-worker-messaging:\n image: appwrite/appwrite:1.8.0\n entrypoint: worker-messaging\n <<: *x-logging\n networks:\n - appwrite\n volumes:\n - appwrite-uploads:/storage/uploads:rw\n depends_on:\n - redis\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_LOGGING_CONFIG\n - _APP_SMS_FROM\n - _APP_SMS_PROVIDER\n - _APP_STORAGE_DEVICE\n - _APP_STORAGE_S3_ACCESS_KEY\n - _APP_STORAGE_S3_SECRET\n - _APP_STORAGE_S3_REGION\n - _APP_STORAGE_S3_BUCKET\n - _APP_STORAGE_S3_ENDPOINT\n - _APP_STORAGE_DO_SPACES_ACCESS_KEY\n - _APP_STORAGE_DO_SPACES_SECRET\n - _APP_STORAGE_DO_SPACES_REGION\n - _APP_STORAGE_DO_SPACES_BUCKET\n - _APP_STORAGE_BACKBLAZE_ACCESS_KEY\n - _APP_STORAGE_BACKBLAZE_SECRET\n - _APP_STORAGE_BACKBLAZE_REGION\n - _APP_STORAGE_BACKBLAZE_BUCKET\n - _APP_STORAGE_LINODE_ACCESS_KEY\n - _APP_STORAGE_LINODE_SECRET\n - _APP_STORAGE_LINODE_REGION\n - _APP_STORAGE_LINODE_BUCKET\n - _APP_STORAGE_WASABI_ACCESS_KEY\n - _APP_STORAGE_WASABI_SECRET\n - _APP_STORAGE_WASABI_REGION\n - _APP_STORAGE_WASABI_BUCKET\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-worker-migrations:\n image: appwrite/appwrite:1.8.0\n entrypoint: worker-migrations\n <<: *x-logging\n networks:\n - appwrite\n volumes:\n - appwrite-imports:/storage/imports:rw\n depends_on:\n - mariadb\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_DOMAIN\n - _APP_DOMAIN_TARGET_CNAME\n - _APP_DOMAIN_TARGET_AAAA\n - _APP_DOMAIN_TARGET_A\n - _APP_DOMAIN_TARGET_CAA\n - _APP_DNS\n - _APP_EMAIL_SECURITY\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_LOGGING_CONFIG\n - _APP_MIGRATIONS_FIREBASE_CLIENT_ID\n - _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-task-maintenance:\n image: appwrite/appwrite:1.8.0\n entrypoint: maintenance\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - redis\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_DOMAIN\n - _APP_DOMAIN_TARGET_CNAME\n - _APP_DOMAIN_TARGET_AAAA\n - _APP_DOMAIN_TARGET_A\n - _APP_DOMAIN_TARGET_CAA\n - _APP_DNS\n - _APP_DOMAIN_FUNCTIONS\n - _APP_OPENSSL_KEY_V1\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_MAINTENANCE_INTERVAL\n - _APP_MAINTENANCE_RETENTION_EXECUTION\n - _APP_MAINTENANCE_RETENTION_CACHE\n - _APP_MAINTENANCE_RETENTION_ABUSE\n - _APP_MAINTENANCE_RETENTION_AUDIT\n - _APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE\n - _APP_MAINTENANCE_RETENTION_USAGE_HOURLY\n - _APP_MAINTENANCE_RETENTION_SCHEDULES\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-task-stats-resources:\n image: appwrite/appwrite:1.8.0\n entrypoint: stats-resources\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - redis\n - mariadb\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_USAGE_STATS\n - _APP_LOGGING_CONFIG\n - _APP_DATABASE_SHARED_TABLES\n - _APP_STATS_RESOURCES_INTERVAL\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-worker-stats-resources:\n image: appwrite/appwrite:1.8.0\n entrypoint: worker-stats-resources\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - redis\n - mariadb\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_USAGE_STATS\n - _APP_LOGGING_CONFIG\n - _APP_STATS_RESOURCES_INTERVAL\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-worker-stats-usage:\n image: appwrite/appwrite:1.8.0\n entrypoint: worker-stats-usage\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - redis\n - mariadb\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_USAGE_STATS\n - _APP_LOGGING_CONFIG\n - _APP_USAGE_AGGREGATION_INTERVAL\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-task-scheduler-functions:\n image: appwrite/appwrite:1.8.0\n entrypoint: schedule-functions\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - mariadb\n - redis\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-task-scheduler-executions:\n image: appwrite/appwrite:1.8.0\n entrypoint: schedule-executions\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - mariadb\n - redis\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-task-scheduler-messages:\n image: appwrite/appwrite:1.8.0\n entrypoint: schedule-messages\n <<: *x-logging\n networks:\n - appwrite\n depends_on:\n - mariadb\n - redis\n environment:\n - _APP_ENV\n - _APP_WORKER_PER_CORE\n - _APP_OPENSSL_KEY_V1\n - _APP_REDIS_HOST\n - _APP_REDIS_PORT\n - _APP_REDIS_USER\n - _APP_REDIS_PASS\n - _APP_DB_HOST\n - _APP_DB_PORT\n - _APP_DB_SCHEMA\n - _APP_DB_USER\n - _APP_DB_PASS\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-assistant:\n image: appwrite/assistant:0.8.3\n <<: *x-logging\n networks:\n - appwrite\n environment:\n - _APP_ASSISTANT_OPENAI_API_KEY\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n appwrite-browser:\n image: appwrite/browser:0.2.4\n <<: *x-logging\n networks:\n - appwrite\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.role == manager\n\n openruntimes-executor:\n hostname: exc1\n <<: *x-logging\n stop_signal: SIGINT\n image: openruntimes/executor:0.7.22\n networks:\n - appwrite\n - runtimes\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock\n - appwrite-builds:/storage/builds:rw\n - appwrite-functions:/storage/functions:rw\n - appwrite-sites:/storage/sites:rw\n # Host mount nessessary to share files between executor and runtimes.\n # It's not possible to share mount file between 2 containers without host mount (copying is too slow)\n - /tmp:/tmp:rw\n environment:\n - OPR_EXECUTOR_INACTIVE_TRESHOLD=$_APP_COMPUTE_INACTIVE_THRESHOLD\n - OPR_EXECUTOR_MAINTENANCE_INTERVAL=$_APP_COMPUTE_MAINTENANCE_INTERVAL\n - OPR_EXECUTOR_NETWORK=$_APP_COMPUTE_RUNTIMES_NETWORK\n - OPR_EXECUTOR_DOCKER_HUB_USERNAME=$_APP_DOCKER_HUB_USERNAME\n - OPR_EXECUTOR_DOCKER_HUB_PASSWORD=$_APP_DOCKER_HUB_PASSWORD\n - OPR_EXECUTOR_ENV=$_APP_ENV\n - OPR_EXECUTOR_RUNTIMES=$_APP_FUNCTIONS_RUNTIMES,$_APP_SITES_RUNTIMES\n - OPR_EXECUTOR_SECRET=$_APP_EXECUTOR_SECRET\n - OPR_EXECUTOR_RUNTIME_VERSIONS=v5\n - OPR_EXECUTOR_LOGGING_CONFIG=$_APP_LOGGING_CONFIG\n - OPR_EXECUTOR_STORAGE_DEVICE=$_APP_STORAGE_DEVICE\n - OPR_EXECUTOR_STORAGE_S3_ACCESS_KEY=$_APP_STORAGE_S3_ACCESS_KEY\n - OPR_EXECUTOR_STORAGE_S3_SECRET=$_APP_STORAGE_S3_SECRET\n - OPR_EXECUTOR_STORAGE_S3_REGION=$_APP_STORAGE_S3_REGION\n - OPR_EXECUTOR_STORAGE_S3_BUCKET=$_APP_STORAGE_S3_BUCKET\n - OPR_EXECUTOR_STORAGE_S3_ENDPOINT=$_APP_STORAGE_S3_ENDPOINT\n - OPR_EXECUTOR_STORAGE_DO_SPACES_ACCESS_KEY=$_APP_STORAGE_DO_SPACES_ACCESS_KEY\n - OPR_EXECUTOR_STORAGE_DO_SPACES_SECRET=$_APP_STORAGE_DO_SPACES_SECRET\n - OPR_EXECUTOR_STORAGE_DO_SPACES_REGION=$_APP_STORAGE_DO_SPACES_REGION\n - OPR_EXECUTOR_STORAGE_DO_SPACES_BUCKET=$_APP_STORAGE_DO_SPACES_BUCKET\n - OPR_EXECUTOR_STORAGE_BACKBLAZE_ACCESS_KEY=$_APP_STORAGE_BACKBLAZE_ACCESS_KEY\n - OPR_EXECUTOR_STORAGE_BACKBLAZE_SECRET=$_APP_STORAGE_BACKBLAZE_SECRET\n - OPR_EXECUTOR_STORAGE_BACKBLAZE_REGION=$_APP_STORAGE_BACKBLAZE_REGION\n - OPR_EXECUTOR_STORAGE_BACKBLAZE_BUCKET=$_APP_STORAGE_BACKBLAZE_BUCKET\n - OPR_EXECUTOR_STORAGE_LINODE_ACCESS_KEY=$_APP_STORAGE_LINODE_ACCESS_KEY\n - OPR_EXECUTOR_STORAGE_LINODE_SECRET=$_APP_STORAGE_LINODE_SECRET\n - OPR_EXECUTOR_STORAGE_LINODE_REGION=$_APP_STORAGE_LINODE_REGION\n - OPR_EXECUTOR_STORAGE_LINODE_BUCKET=$_APP_STORAGE_LINODE_BUCKET\n - OPR_EXECUTOR_STORAGE_WASABI_ACCESS_KEY=$_APP_STORAGE_WASABI_ACCESS_KEY\n - OPR_EXECUTOR_STORAGE_WASABI_SECRET=$_APP_STORAGE_WASABI_SECRET\n - OPR_EXECUTOR_STORAGE_WASABI_REGION=$_APP_STORAGE_WASABI_REGION\n - OPR_EXECUTOR_STORAGE_WASABI_BUCKET=$_APP_STORAGE_WASABI_BUCKET\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.hostname == crackbox\n\n mariadb:\n image: mariadb:10.11 # fix issues when upgrading using: mysql_upgrade -u root -p\n <<: *x-logging\n networks:\n - appwrite\n volumes:\n - appwrite-mariadb:/var/lib/mysql:rw\n environment:\n - MYSQL_ROOT_PASSWORD=${_APP_DB_ROOT_PASS}\n - MYSQL_DATABASE=${_APP_DB_SCHEMA}\n - MYSQL_USER=${_APP_DB_USER}\n - MYSQL_PASSWORD=${_APP_DB_PASS}\n - MARIADB_AUTO_UPGRADE=1\n command: 'mysqld --innodb-flush-method=fsync'\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.hostname == crackbox\n\n redis:\n image: redis:7.2.4-alpine\n <<: *x-logging\n command: >\n redis-server\n --maxmemory 512mb\n --maxmemory-policy allkeys-lru\n --maxmemory-samples 5\n networks:\n - appwrite\n volumes:\n - appwrite-redis:/data:rw\n deploy:\n replicas: 1\n restart_policy:\n condition: any\n delay: 5s\n max_attempts: 3\n placement:\n constraints:\n - node.hostname == crackbox\n\n # clamav:\n # image: appwrite/clamav:1.2.0\n # container_name: appwrite-clamav\n # restart: unless-stopped\n # networks:\n # - appwrite\n # volumes:\n # - appwrite-uploads:/storage/uploads\n\nnetworks:\n public:\n external: true\n appwrite:\n driver: overlay\n attachable: true\n internal: true\n runtimes:\n driver: overlay\n attachable: true\n internal: true\nvolumes:\n appwrite-mariadb:\n external: true\n appwrite-redis:\n external: true\n appwrite-cache:\n external: true\n appwrite-uploads:\n external: true\n appwrite-imports:\n external: true\n appwrite-certificates:\n external: true\n appwrite-functions:\n external: true\n appwrite-sites:\n external: true\n appwrite-builds:\n external: true\n appwrite-config:\n external: true",
"compose/swarm/docker-compose.litellm.yml": "services:\n litellm:\n image: litellm/litellm:latest\n restart: unless-stopped\n # volumes:\n # - /home/litellm/config.yaml:/app/config.yaml\n # command:\n # - \"--config=/app/config.yaml\"\n environment:\n DATABASE_URL: ${DATABASE_URL}\n LITELLM_MASTER_KEY: ${LITELLM_MASTER_KEY}\n LITELLM_SALT_KEY: ${LITELLM_SALT_KEY}\n UI_USERNAME: ${UI_USERNAME}\n UI_PASSWORD: ${UI_PASSWORD}\n STORE_MODEL_IN_DB: \"True\"\n # Provider Keys\n OPENAI_API_KEY: ${OPENAI_API_KEY}\n OPENAI_BASE_URL: ${OPENAI_BASE_URL}\n COHERE_API_KEY: ${COHERE_API_KEY}\n OR_SITE_URL: ${OR_SITE_URL}\n OR_APP_NAME: ${OR_APP_NAME}\n OR_API_KEY: ${OR_API_KEY}\n AZURE_API_BASE: ${AZURE_API_BASE}\n AZURE_API_VERSION: ${AZURE_API_VERSION}\n AZURE_API_KEY: ${AZURE_API_KEY}\n REPLICATE_API_KEY: ${REPLICATE_API_KEY}\n REPLICATE_API_TOKEN: ${REPLICATE_API_TOKEN}\n ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}\n INFISICAL_TOKEN: ${INFISICAL_TOKEN}\n NOVITA_API_KEY: ${NOVITA_API_KEY}\n INFINITY_API_KEY: ${INFINITY_API_KEY}\n LITELLM_LOG: ${LITELLM_LOG:-WARN}\n LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY}\n LANGFUSE_SECRET_KEY: ${LANGFUSE_SECRET_KEY}\n LANGFUSE_OTEL_HOST: ${LANGFUSE_OTEL_HOST}\n networks:\n - litellm\n - badge-net\n - public\n expose:\n - 4000\n deploy:\n replicas: 1\n update_config:\n parallelism: 1\n delay: 10s\n failure_action: rollback\n placement:\n constraints:\n - node.role == worker\n\n litellm-db:\n image: postgres:17-alpine\n restart: unless-stopped\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}\"]\n interval: 5s\n timeout: 5s\n retries: 5\n volumes:\n - litellm-db-data:/var/lib/postgresql/data\n networks:\n - litellm\n environment:\n POSTGRES_DB: ${POSTGRES_DB}\n POSTGRES_USER: ${POSTGRES_USER}\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}\n deploy:\n replicas: 1\n update_config:\n parallelism: 1\n delay: 10s\n failure_action: rollback\n placement:\n constraints:\n - node.hostname == crackbox\n\nvolumes:\n litellm-db-data:\n name: litellm-db-data\n driver: local\n driver_opts:\n type: tmpfs\n device: tmpfs\n\nnetworks:\n litellm:\n name: litellm\n internal: true\n driver: overlay\n badge-net:\n name: badge-net\n external: true\n public:\n name: public\n external: true",
"traefik/traefik.yaml": "global:\n checkNewVersion: false\n sendAnonymousUsage: false\n\nlog:\n level: INFO\n\napi:\n insecure: true\n dashboard: true\n debug: false\n\nentryPoints:\n web:\n address: \":80\"\n websecure:\n address: \":443\"\n traefik:\n address: \":8080\"\n\nproviders:\n swarm:\n endpoint: \"unix:///var/run/docker.sock\"\n exposedByDefault: false\n network: public",
"docker-compose.yml": "version: '3.2'\n\nservices:\n traefik:\n image: \"traefik:latest\"\n ports:\n - \"80:80\"\n - \"443:443\"\n - \"8080:8080\"\n networks:\n - public\n - badge-net\n volumes:\n - \"/var/run/docker.sock:/var/run/docker.sock:ro\"\n - \"/home/trav/portainer/traefik:/etc/traefik:rw\"\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints: [node.hostname == little]\n labels:\n - \"traefik.enable=false\"\n\n agent:\n container_name: portainer-agent\n image: portainer/agent:lts\n environment:\n # REQUIRED: Should be equal to the service name prefixed by \"tasks.\" when\n # deployed inside an overlay network\n AGENT_CLUSTER_ADDR: tasks.agent\n AGENT_SECRET: portainer_agent_secret_key_2024\n AGENT_PORT: 9001\n LOG_LEVEL: WARN\n ports:\n - 9001\n volumes:\n - /var/run/docker.sock:/var/run/docker.sock\n - /var/lib/docker/volumes:/var/lib/docker/volumes\n - /:/host\n networks:\n - portainer_agent_network\n deploy:\n mode: global\n placement:\n constraints: [node.platform.os == linux]\n labels:\n - \"traefik.enable=false\"\n\n portainer:\n container_name: service\n image: portainer/portainer-ee:lts\n command: -H tcp://tasks.agent:9001 --tlsskipverify\n ports:\n - \"9443:9443\"\n - \"9000:9000\"\n - \"8000:8000\"\n volumes:\n - portainer_data:/data\n environment:\n AGENT_SECRET: portainer_agent_secret_key_2024\n networks:\n - public\n - portainer_agent_network\n - badge-net\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints: [node.role == manager]\n labels:\n - \"traefik.enable=true\"\n - \"traefik.http.routers.portainer.rule=Host(`dock.toy`)\"\n - \"traefik.http.routers.portainer.entrypoints=web\"\n - \"traefik.http.services.portainer.loadbalancer.server.port=9000\"\n - \"traefik.http.routers.portainer.service=portainer\"\n # Edge\n - \"traefik.http.routers.edge.rule=Host(`edge.toy`)\"\n - \"traefik.http.routers.edge.entrypoints=web\"\n - \"traefik.http.services.edge.loadbalancer.server.port=8000\"\n - \"traefik.http.routers.edge.service=edge\"\n\nnetworks:\n public:\n external: true\n attachable: true\n portainer_agent_network:\n external: true\n badge-net:\n attachable: true\n external: true\n\nvolumes:\n portainer_data:"
}
}