diff --git a/blueprints/appwrite/docker-compose.yml b/blueprints/appwrite/docker-compose.yml index 130bb5d3..cb622284 100644 --- a/blueprints/appwrite/docker-compose.yml +++ b/blueprints/appwrite/docker-compose.yml @@ -6,31 +6,32 @@ x-logging: &x-logging options: max-file: "5" max-size: "10m" - services: appwrite: - image: appwrite/appwrite:1.6.1 - container_name: appwrite + image: appwrite/appwrite:1.8.0 <<: *x-logging restart: unless-stopped - networks: - - dokploy-network labels: - traefik.enable=true - traefik.constraint-label-stack=appwrite volumes: - appwrite-uploads:/storage/uploads:rw + - appwrite-imports:/storage/imports:rw - appwrite-cache:/storage/cache:rw - appwrite-config:/storage/config:rw - appwrite-certificates:/storage/certificates:rw - appwrite-functions:/storage/functions:rw + - appwrite-sites:/storage/sites:rw + - appwrite-builds:/storage/builds:rw depends_on: - mariadb - redis + # - clamav environment: - _APP_ENV - _APP_WORKER_PER_CORE - _APP_LOCALE + - _APP_COMPRESSION_MIN_SIZE_BYTES - _APP_CONSOLE_WHITELIST_ROOT - _APP_CONSOLE_WHITELIST_EMAILS - _APP_CONSOLE_SESSION_ALERTS @@ -43,10 +44,14 @@ services: - _APP_OPTIONS_ABUSE - _APP_OPTIONS_ROUTER_PROTECTION - _APP_OPTIONS_FORCE_HTTPS - - _APP_OPTIONS_FUNCTIONS_FORCE_HTTPS + - _APP_OPTIONS_ROUTER_FORCE_HTTPS - _APP_OPENSSL_KEY_V1 - _APP_DOMAIN - - _APP_DOMAIN_TARGET + - _APP_DOMAIN_TARGET_CNAME + - _APP_DOMAIN_TARGET_AAAA + - _APP_DOMAIN_TARGET_A + - _APP_DOMAIN_TARGET_CAA + - _APP_DNS - _APP_DOMAIN_FUNCTIONS - _APP_REDIS_HOST - _APP_REDIS_PORT @@ -73,6 +78,7 @@ services: - _APP_STORAGE_S3_SECRET - _APP_STORAGE_S3_REGION - _APP_STORAGE_S3_BUCKET + - _APP_STORAGE_S3_ENDPOINT - _APP_STORAGE_DO_SPACES_ACCESS_KEY - _APP_STORAGE_DO_SPACES_SECRET - _APP_STORAGE_DO_SPACES_REGION @@ -89,21 +95,26 @@ services: - _APP_STORAGE_WASABI_SECRET - _APP_STORAGE_WASABI_REGION - _APP_STORAGE_WASABI_BUCKET - - _APP_FUNCTIONS_SIZE_LIMIT + - _APP_COMPUTE_SIZE_LIMIT - _APP_FUNCTIONS_TIMEOUT - - _APP_FUNCTIONS_BUILD_TIMEOUT - - _APP_FUNCTIONS_CPUS - - _APP_FUNCTIONS_MEMORY + - _APP_SITES_TIMEOUT + - _APP_COMPUTE_BUILD_TIMEOUT + - _APP_COMPUTE_CPUS + - _APP_COMPUTE_MEMORY - _APP_FUNCTIONS_RUNTIMES + - _APP_SITES_RUNTIMES + - _APP_DOMAIN_SITES - _APP_EXECUTOR_SECRET - _APP_EXECUTOR_HOST - _APP_LOGGING_CONFIG - _APP_MAINTENANCE_INTERVAL - _APP_MAINTENANCE_DELAY + - _APP_MAINTENANCE_START_TIME - _APP_MAINTENANCE_RETENTION_EXECUTION - _APP_MAINTENANCE_RETENTION_CACHE - _APP_MAINTENANCE_RETENTION_ABUSE - _APP_MAINTENANCE_RETENTION_AUDIT + - _APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE - _APP_MAINTENANCE_RETENTION_USAGE_HOURLY - _APP_MAINTENANCE_RETENTION_SCHEDULES - _APP_SMS_PROVIDER @@ -120,94 +131,25 @@ services: - _APP_MIGRATIONS_FIREBASE_CLIENT_ID - _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET - _APP_ASSISTANT_OPENAI_API_KEY - appwrite-console: - image: appwrite/console:5.0.12 - container_name: appwrite-console <<: *x-logging + image: appwrite/console:7.4.7 restart: unless-stopped - networks: - - dokploy-network labels: - "traefik.enable=true" - "traefik.constraint-label-stack=appwrite" - environment: - - _APP_ENV - - _APP_WORKER_PER_CORE - - _APP_LOCALE - - _APP_CONSOLE_WHITELIST_ROOT - - _APP_CONSOLE_WHITELIST_EMAILS - - _APP_CONSOLE_SESSION_ALERTS - - _APP_CONSOLE_WHITELIST_IPS - - _APP_CONSOLE_HOSTNAMES - - _APP_SYSTEM_EMAIL_NAME - - _APP_SYSTEM_EMAIL_ADDRESS - - _APP_EMAIL_SECURITY - - _APP_SYSTEM_RESPONSE_FORMAT - - _APP_OPTIONS_ABUSE - - _APP_OPTIONS_ROUTER_PROTECTION - - _APP_OPTIONS_FORCE_HTTPS - - _APP_OPTIONS_FUNCTIONS_FORCE_HTTPS - - _APP_OPENSSL_KEY_V1 - - _APP_DOMAIN - - _APP_DOMAIN_TARGET - - _APP_DOMAIN_FUNCTIONS - - _APP_REDIS_HOST - - _APP_REDIS_PORT - - _APP_REDIS_USER - - _APP_REDIS_PASS - - _APP_DB_HOST - - _APP_DB_PORT - - _APP_DB_SCHEMA - - _APP_DB_USER - - _APP_DB_PASS - - _APP_SMTP_HOST - - _APP_SMTP_PORT - - _APP_SMTP_SECURE - - _APP_SMTP_USERNAME - - _APP_SMTP_PASSWORD - - _APP_USAGE_STATS - - _APP_STORAGE_LIMIT - - _APP_STORAGE_PREVIEW_LIMIT - - _APP_STORAGE_ANTIVIRUS - - _APP_STORAGE_ANTIVIRUS_HOST - - _APP_STORAGE_ANTIVIRUS_PORT - - _APP_STORAGE_DEVICE - - _APP_STORAGE_S3_ACCESS_KEY - - _APP_STORAGE_S3_SECRET - - _APP_STORAGE_S3_REGION - - _APP_STORAGE_S3_BUCKET - - _APP_STORAGE_DO_SPACES_ACCESS_KEY - - _APP_STORAGE_DO_SPACES_SECRET - - _APP_STORAGE_DO_SPACES_REGION - - _APP_STORAGE_DO_SPACES_BUCKET - - _APP_STORAGE_BACKBLAZE_ACCESS_KEY - - _APP_STORAGE_BACKBLAZE_SECRET - - _APP_STORAGE_BACKBLAZE_REGION - - _APP_STORAGE_BACKBLAZE_BUCKET - - _APP_STORAGE_LINODE_ACCESS_KEY - - _APP_STORAGE_LINODE_SECRET - - _APP_STORAGE_LINODE_REGION - - _APP_STORAGE_LINODE_BUCKET - - _APP_STORAGE_WASABI_ACCESS_KEY - - _APP_STORAGE_WASABI_SECRET - - _APP_STORAGE_WASABI_REGION - - _APP_STORAGE_WASABI_BUCKET appwrite-realtime: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: realtime - container_name: appwrite-realtime <<: *x-logging restart: unless-stopped - networks: - - dokploy-network + labels: + - "traefik.enable=true" + - "traefik.constraint-label-stack=appwrite" depends_on: - mariadb - redis - labels: - - "traefik.enable=true" - - "traefik.constraint-label-stack=appwrite" environment: - _APP_ENV - _APP_WORKER_PER_CORE @@ -227,13 +169,10 @@ services: - _APP_LOGGING_CONFIG appwrite-worker-audits: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: worker-audits <<: *x-logging - container_name: appwrite-worker-audits restart: unless-stopped - networks: - - dokploy-network depends_on: - redis - mariadb @@ -253,13 +192,10 @@ services: - _APP_LOGGING_CONFIG appwrite-worker-webhooks: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: worker-webhooks <<: *x-logging - container_name: appwrite-worker-webhooks restart: unless-stopped - networks: - - dokploy-network depends_on: - redis - mariadb @@ -281,13 +217,10 @@ services: - _APP_LOGGING_CONFIG appwrite-worker-deletes: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: worker-deletes <<: *x-logging - container_name: appwrite-worker-deletes restart: unless-stopped - networks: - - dokploy-network depends_on: - redis - mariadb @@ -295,6 +228,7 @@ services: - appwrite-uploads:/storage/uploads:rw - appwrite-cache:/storage/cache:rw - appwrite-functions:/storage/functions:rw + - appwrite-sites:/storage/sites:rw - appwrite-builds:/storage/builds:rw - appwrite-certificates:/storage/certificates:rw environment: @@ -315,6 +249,7 @@ services: - _APP_STORAGE_S3_SECRET - _APP_STORAGE_S3_REGION - _APP_STORAGE_S3_BUCKET + - _APP_STORAGE_S3_ENDPOINT - _APP_STORAGE_DO_SPACES_ACCESS_KEY - _APP_STORAGE_DO_SPACES_SECRET - _APP_STORAGE_DO_SPACES_REGION @@ -336,16 +271,16 @@ services: - _APP_EXECUTOR_HOST - _APP_MAINTENANCE_RETENTION_ABUSE - _APP_MAINTENANCE_RETENTION_AUDIT + - _APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE - _APP_MAINTENANCE_RETENTION_EXECUTION + - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS + - _APP_EMAIL_CERTIFICATES appwrite-worker-databases: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: worker-databases <<: *x-logging - container_name: appwrite-worker-databases restart: unless-stopped - networks: - - dokploy-network depends_on: - redis - mariadb @@ -365,19 +300,18 @@ services: - _APP_LOGGING_CONFIG appwrite-worker-builds: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: worker-builds <<: *x-logging - container_name: appwrite-worker-builds restart: unless-stopped - networks: - - dokploy-network depends_on: - redis - mariadb volumes: - appwrite-functions:/storage/functions:rw + - appwrite-sites:/storage/sites:rw - appwrite-builds:/storage/builds:rw + - appwrite-uploads:/storage/uploads:rw environment: - _APP_ENV - _APP_WORKER_PER_CORE @@ -398,18 +332,20 @@ services: - _APP_VCS_GITHUB_PRIVATE_KEY - _APP_VCS_GITHUB_APP_ID - _APP_FUNCTIONS_TIMEOUT - - _APP_FUNCTIONS_BUILD_TIMEOUT - - _APP_FUNCTIONS_CPUS - - _APP_FUNCTIONS_MEMORY - - _APP_FUNCTIONS_SIZE_LIMIT + - _APP_SITES_TIMEOUT + - _APP_COMPUTE_BUILD_TIMEOUT + - _APP_COMPUTE_CPUS + - _APP_COMPUTE_MEMORY + - _APP_COMPUTE_SIZE_LIMIT - _APP_OPTIONS_FORCE_HTTPS - - _APP_OPTIONS_FUNCTIONS_FORCE_HTTPS + - _APP_OPTIONS_ROUTER_FORCE_HTTPS - _APP_DOMAIN - _APP_STORAGE_DEVICE - _APP_STORAGE_S3_ACCESS_KEY - _APP_STORAGE_S3_SECRET - _APP_STORAGE_S3_REGION - _APP_STORAGE_S3_BUCKET + - _APP_STORAGE_S3_ENDPOINT - _APP_STORAGE_DO_SPACES_ACCESS_KEY - _APP_STORAGE_DO_SPACES_SECRET - _APP_STORAGE_DO_SPACES_REGION @@ -426,15 +362,13 @@ services: - _APP_STORAGE_WASABI_SECRET - _APP_STORAGE_WASABI_REGION - _APP_STORAGE_WASABI_BUCKET + - _APP_DOMAIN_SITES appwrite-worker-certificates: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: worker-certificates <<: *x-logging - container_name: appwrite-worker-certificates restart: unless-stopped - networks: - - dokploy-network depends_on: - redis - mariadb @@ -446,7 +380,11 @@ services: - _APP_WORKER_PER_CORE - _APP_OPENSSL_KEY_V1 - _APP_DOMAIN - - _APP_DOMAIN_TARGET + - _APP_DOMAIN_TARGET_CNAME + - _APP_DOMAIN_TARGET_AAAA + - _APP_DOMAIN_TARGET_A + - _APP_DOMAIN_TARGET_CAA + - _APP_DNS - _APP_DOMAIN_FUNCTIONS - _APP_EMAIL_CERTIFICATES - _APP_REDIS_HOST @@ -461,13 +399,10 @@ services: - _APP_LOGGING_CONFIG appwrite-worker-functions: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: worker-functions <<: *x-logging - container_name: appwrite-worker-functions restart: unless-stopped - networks: - - dokploy-network depends_on: - redis - mariadb @@ -488,9 +423,10 @@ services: - _APP_DB_USER - _APP_DB_PASS - _APP_FUNCTIONS_TIMEOUT - - _APP_FUNCTIONS_BUILD_TIMEOUT - - _APP_FUNCTIONS_CPUS - - _APP_FUNCTIONS_MEMORY + - _APP_SITES_TIMEOUT + - _APP_COMPUTE_BUILD_TIMEOUT + - _APP_COMPUTE_CPUS + - _APP_COMPUTE_MEMORY - _APP_EXECUTOR_SECRET - _APP_EXECUTOR_HOST - _APP_USAGE_STATS @@ -499,13 +435,10 @@ services: - _APP_LOGGING_CONFIG appwrite-worker-mails: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: worker-mails <<: *x-logging - container_name: appwrite-worker-mails restart: unless-stopped - networks: - - dokploy-network depends_on: - redis environment: @@ -529,15 +462,14 @@ services: - _APP_SMTP_USERNAME - _APP_SMTP_PASSWORD - _APP_LOGGING_CONFIG + - _APP_DOMAIN + - _APP_OPTIONS_FORCE_HTTPS appwrite-worker-messaging: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: worker-messaging - container_name: appwrite-worker-messaging <<: *x-logging restart: unless-stopped - networks: - - dokploy-network volumes: - appwrite-uploads:/storage/uploads:rw depends_on: @@ -563,6 +495,7 @@ services: - _APP_STORAGE_S3_SECRET - _APP_STORAGE_S3_REGION - _APP_STORAGE_S3_BUCKET + - _APP_STORAGE_S3_ENDPOINT - _APP_STORAGE_DO_SPACES_ACCESS_KEY - _APP_STORAGE_DO_SPACES_SECRET - _APP_STORAGE_DO_SPACES_REGION @@ -581,13 +514,12 @@ services: - _APP_STORAGE_WASABI_BUCKET appwrite-worker-migrations: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: worker-migrations <<: *x-logging - container_name: appwrite-worker-migrations restart: unless-stopped - networks: - - dokploy-network + volumes: + - appwrite-imports:/storage/imports:rw depends_on: - mariadb environment: @@ -595,7 +527,11 @@ services: - _APP_WORKER_PER_CORE - _APP_OPENSSL_KEY_V1 - _APP_DOMAIN - - _APP_DOMAIN_TARGET + - _APP_DOMAIN_TARGET_CNAME + - _APP_DOMAIN_TARGET_AAAA + - _APP_DOMAIN_TARGET_A + - _APP_DOMAIN_TARGET_CAA + - _APP_DNS - _APP_EMAIL_SECURITY - _APP_REDIS_HOST - _APP_REDIS_PORT @@ -611,20 +547,21 @@ services: - _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET appwrite-task-maintenance: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: maintenance <<: *x-logging - container_name: appwrite-task-maintenance restart: unless-stopped - networks: - - dokploy-network depends_on: - redis environment: - _APP_ENV - _APP_WORKER_PER_CORE - _APP_DOMAIN - - _APP_DOMAIN_TARGET + - _APP_DOMAIN_TARGET_CNAME + - _APP_DOMAIN_TARGET_AAAA + - _APP_DOMAIN_TARGET_A + - _APP_DOMAIN_TARGET_CAA + - _APP_DNS - _APP_DOMAIN_FUNCTIONS - _APP_OPENSSL_KEY_V1 - _APP_REDIS_HOST @@ -641,17 +578,15 @@ services: - _APP_MAINTENANCE_RETENTION_CACHE - _APP_MAINTENANCE_RETENTION_ABUSE - _APP_MAINTENANCE_RETENTION_AUDIT + - _APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE - _APP_MAINTENANCE_RETENTION_USAGE_HOURLY - _APP_MAINTENANCE_RETENTION_SCHEDULES - appwrite-worker-usage: - image: appwrite/appwrite:1.6.1 - entrypoint: worker-usage - container_name: appwrite-worker-usage + appwrite-task-stats-resources: + image: appwrite/appwrite:1.8.0 + entrypoint: stats-resources <<: *x-logging restart: unless-stopped - networks: - - dokploy-network depends_on: - redis - mariadb @@ -670,15 +605,39 @@ services: - _APP_REDIS_PASS - _APP_USAGE_STATS - _APP_LOGGING_CONFIG - - _APP_USAGE_AGGREGATION_INTERVAL + - _APP_DATABASE_SHARED_TABLES + - _APP_STATS_RESOURCES_INTERVAL - appwrite-worker-usage-dump: - image: appwrite/appwrite:1.6.1 - entrypoint: worker-usage-dump - container_name: appwrite-worker-usage-dump + appwrite-worker-stats-resources: + image: appwrite/appwrite:1.8.0 + entrypoint: worker-stats-resources <<: *x-logging - networks: - - dokploy-network + restart: unless-stopped + depends_on: + - redis + - mariadb + environment: + - _APP_ENV + - _APP_WORKER_PER_CORE + - _APP_OPENSSL_KEY_V1 + - _APP_DB_HOST + - _APP_DB_PORT + - _APP_DB_SCHEMA + - _APP_DB_USER + - _APP_DB_PASS + - _APP_REDIS_HOST + - _APP_REDIS_PORT + - _APP_REDIS_USER + - _APP_REDIS_PASS + - _APP_USAGE_STATS + - _APP_LOGGING_CONFIG + - _APP_STATS_RESOURCES_INTERVAL + + appwrite-worker-stats-usage: + image: appwrite/appwrite:1.8.0 + entrypoint: worker-stats-usage + <<: *x-logging + restart: unless-stopped depends_on: - redis - mariadb @@ -700,13 +659,10 @@ services: - _APP_USAGE_AGGREGATION_INTERVAL appwrite-task-scheduler-functions: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: schedule-functions - container_name: appwrite-task-scheduler-functions <<: *x-logging restart: unless-stopped - networks: - - dokploy-network depends_on: - mariadb - redis @@ -725,13 +681,10 @@ services: - _APP_DB_PASS appwrite-task-scheduler-executions: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: schedule-executions - container_name: appwrite-task-scheduler-executions <<: *x-logging restart: unless-stopped - networks: - - dokploy-network depends_on: - mariadb - redis @@ -750,13 +703,10 @@ services: - _APP_DB_PASS appwrite-task-scheduler-messages: - image: appwrite/appwrite:1.6.1 + image: appwrite/appwrite:1.8.0 entrypoint: schedule-messages - container_name: appwrite-task-scheduler-messages <<: *x-logging restart: unless-stopped - networks: - - dokploy-network depends_on: - mariadb - redis @@ -775,44 +725,48 @@ services: - _APP_DB_PASS appwrite-assistant: - image: appwrite/assistant:0.4.0 - container_name: appwrite-assistant + image: appwrite/assistant:0.8.3 <<: *x-logging restart: unless-stopped - networks: - - dokploy-network environment: - _APP_ASSISTANT_OPENAI_API_KEY + appwrite-browser: + image: appwrite/browser:0.2.4 + <<: *x-logging + restart: unless-stopped + openruntimes-executor: - container_name: openruntimes-executor hostname: exc1 <<: *x-logging restart: unless-stopped stop_signal: SIGINT - image: openruntimes/executor:0.6.11 - networks: - - dokploy-network + image: openruntimes/executor:0.7.22 volumes: - /var/run/docker.sock:/var/run/docker.sock - appwrite-builds:/storage/builds:rw - appwrite-functions:/storage/functions:rw + - appwrite-sites:/storage/sites:rw + # Host mount necessary to share files between executor and runtimes. + # It's not possible to share mount file between 2 containers without host mount (copying is too slow) - /tmp:/tmp:rw environment: - - OPR_EXECUTOR_INACTIVE_TRESHOLD=$_APP_FUNCTIONS_INACTIVE_THRESHOLD - - OPR_EXECUTOR_MAINTENANCE_INTERVAL=$_APP_FUNCTIONS_MAINTENANCE_INTERVAL - - OPR_EXECUTOR_NETWORK=$_APP_FUNCTIONS_RUNTIMES_NETWORK + - OPR_EXECUTOR_INACTIVE_TRESHOLD=$_APP_COMPUTE_INACTIVE_THRESHOLD + - OPR_EXECUTOR_MAINTENANCE_INTERVAL=$_APP_COMPUTE_MAINTENANCE_INTERVAL + - OPR_EXECUTOR_NETWORK=$_APP_COMPUTE_RUNTIMES_NETWORK - OPR_EXECUTOR_DOCKER_HUB_USERNAME=$_APP_DOCKER_HUB_USERNAME - OPR_EXECUTOR_DOCKER_HUB_PASSWORD=$_APP_DOCKER_HUB_PASSWORD - OPR_EXECUTOR_ENV=$_APP_ENV - - OPR_EXECUTOR_RUNTIMES=$_APP_FUNCTIONS_RUNTIMES + - OPR_EXECUTOR_RUNTIMES=$_APP_FUNCTIONS_RUNTIMES,$_APP_SITES_RUNTIMES - OPR_EXECUTOR_SECRET=$_APP_EXECUTOR_SECRET + - OPR_EXECUTOR_RUNTIME_VERSIONS=v5 - OPR_EXECUTOR_LOGGING_CONFIG=$_APP_LOGGING_CONFIG - OPR_EXECUTOR_STORAGE_DEVICE=$_APP_STORAGE_DEVICE - OPR_EXECUTOR_STORAGE_S3_ACCESS_KEY=$_APP_STORAGE_S3_ACCESS_KEY - OPR_EXECUTOR_STORAGE_S3_SECRET=$_APP_STORAGE_S3_SECRET - OPR_EXECUTOR_STORAGE_S3_REGION=$_APP_STORAGE_S3_REGION - OPR_EXECUTOR_STORAGE_S3_BUCKET=$_APP_STORAGE_S3_BUCKET + - OPR_EXECUTOR_STORAGE_S3_ENDPOINT=$_APP_STORAGE_S3_ENDPOINT - OPR_EXECUTOR_STORAGE_DO_SPACES_ACCESS_KEY=$_APP_STORAGE_DO_SPACES_ACCESS_KEY - OPR_EXECUTOR_STORAGE_DO_SPACES_SECRET=$_APP_STORAGE_DO_SPACES_SECRET - OPR_EXECUTOR_STORAGE_DO_SPACES_REGION=$_APP_STORAGE_DO_SPACES_REGION @@ -831,12 +785,9 @@ services: - OPR_EXECUTOR_STORAGE_WASABI_BUCKET=$_APP_STORAGE_WASABI_BUCKET mariadb: - image: mariadb:10.11 - container_name: appwrite-mariadb + image: mariadb:10.11 # fix issues when upgrading using: mysql_upgrade -u root -p <<: *x-logging restart: unless-stopped - networks: - - dokploy-network volumes: - appwrite-mariadb:/var/lib/mysql:rw environment: @@ -849,39 +800,30 @@ services: redis: image: redis:7.2.4-alpine - container_name: appwrite-redis <<: *x-logging restart: unless-stopped command: > redis-server - --maxmemory 512mb - --maxmemory-policy allkeys-lru - --maxmemory-samples 5 - networks: - - dokploy-network + --maxmemory 512mb + --maxmemory-policy allkeys-lru + --maxmemory-samples 5 volumes: - appwrite-redis:/data:rw -# Uncomment and configure if ClamAV is needed -# clamav: -# image: appwrite/clamav:1.2.0 -# container_name: appwrite-clamav -# restart: unless-stopped -# networks: -# - dokploy-network -# volumes: -# - appwrite-uploads:/storage/uploads + # clamav: + # image: appwrite/clamav:1.2.0 + # restart: unless-stopped + # volumes: + # - appwrite-uploads:/storage/uploads volumes: appwrite-mariadb: appwrite-redis: appwrite-cache: appwrite-uploads: + appwrite-imports: appwrite-certificates: appwrite-functions: + appwrite-sites: appwrite-builds: appwrite-config: - -networks: - dokploy-network: - external: true diff --git a/blueprints/appwrite/template.toml b/blueprints/appwrite/template.toml index 3188ea17..cca2d43d 100644 --- a/blueprints/appwrite/template.toml +++ b/blueprints/appwrite/template.toml @@ -1,5 +1,11 @@ [variables] main_domain = "${domain}" +functions_domain = "functions.${main_domain}" +sites_domain = "sites.${main_domain}" +openssl_key = "${password:32}" +db_root_pw = "${password:32}" +db_user_pw = "${password:32}" +executor_secret = "${password:32}" [config] env = [ @@ -8,11 +14,19 @@ env = [ "_APP_OPTIONS_ABUSE=enabled", "_APP_OPTIONS_FORCE_HTTPS=disabled", "_APP_OPTIONS_FUNCTIONS_FORCE_HTTPS=disabled", + "_APP_OPTIONS_ROUTER_FORCE_HTTPS=disabled", "_APP_OPTIONS_ROUTER_PROTECTION=disabled", - "_APP_OPENSSL_KEY_V1=your-secret-key", + "_APP_OPENSSL_KEY_V1=${openssl_key}", "_APP_DOMAIN=${main_domain}", - "_APP_DOMAIN_FUNCTIONS=${main_domain}", - "_APP_DOMAIN_TARGET=${main_domain}", + "_APP_CUSTOM_DOMAIN_DENY_LIST=example.com,test.com,app.example.com", + "_APP_DOMAIN_FUNCTIONS=${functions_domain}", + "_APP_DOMAIN_SITES=${sites_domain}", + "_APP_DOMAIN_TARGET=localhost", + "_APP_DOMAIN_TARGET_CNAME=localhost", + "_APP_DOMAIN_TARGET_AAAA=::1", + "_APP_DOMAIN_TARGET_A=127.0.0.1", + "_APP_DOMAIN_TARGET_CAA=", + "_APP_DNS=8.8.8.8", "_APP_CONSOLE_WHITELIST_ROOT=enabled", "_APP_CONSOLE_WHITELIST_EMAILS=", "_APP_CONSOLE_WHITELIST_IPS=", @@ -32,6 +46,8 @@ env = [ "_APP_USAGE_DATABASE_INTERVAL=900", "_APP_WORKER_PER_CORE=6", "_APP_CONSOLE_SESSION_ALERTS=disabled", + "_APP_COMPRESSION_ENABLED=enabled", + "_APP_COMPRESSION_MIN_SIZE_BYTES=1024", "_APP_REDIS_HOST=redis", "_APP_REDIS_PORT=6379", "_APP_REDIS_USER=", @@ -40,8 +56,8 @@ env = [ "_APP_DB_PORT=3306", "_APP_DB_SCHEMA=appwrite", "_APP_DB_USER=user", - "_APP_DB_PASS=password", - "_APP_DB_ROOT_PASS=rootsecretpassword", + "_APP_DB_PASS=${db_user_pw}", + "_APP_DB_ROOT_PASS=${db_root_pw}", "_APP_INFLUXDB_HOST=influxdb", "_APP_INFLUXDB_PORT=8086", "_APP_STATSD_HOST=telegraf", @@ -63,6 +79,7 @@ env = [ "_APP_STORAGE_S3_SECRET=", "_APP_STORAGE_S3_REGION=us-east-1", "_APP_STORAGE_S3_BUCKET=", + "_APP_STORAGE_S3_ENDPOINT=", "_APP_STORAGE_DO_SPACES_ACCESS_KEY=", "_APP_STORAGE_DO_SPACES_SECRET=", "_APP_STORAGE_DO_SPACES_REGION=us-east-1", @@ -80,27 +97,36 @@ env = [ "_APP_STORAGE_WASABI_REGION=eu-central-1", "_APP_STORAGE_WASABI_BUCKET=", "_APP_FUNCTIONS_SIZE_LIMIT=30000000", + "_APP_COMPUTE_SIZE_LIMIT=30000000", "_APP_FUNCTIONS_BUILD_SIZE_LIMIT=2000000000", "_APP_FUNCTIONS_TIMEOUT=900", "_APP_FUNCTIONS_BUILD_TIMEOUT=900", + "_APP_COMPUTE_BUILD_TIMEOUT=900", "_APP_FUNCTIONS_CONTAINERS=10", "_APP_FUNCTIONS_CPUS=0", + "_APP_COMPUTE_CPUS=0", "_APP_FUNCTIONS_MEMORY=0", + "_APP_COMPUTE_MEMORY=0", "_APP_FUNCTIONS_MEMORY_SWAP=0", "_APP_FUNCTIONS_RUNTIMES=node-16.0,php-8.0,python-3.9,ruby-3.0", - "_APP_EXECUTOR_SECRET=your-secret-key", + "_APP_EXECUTOR_SECRET=${executor_secret}", "_APP_EXECUTOR_HOST=http://exc1/v1", "_APP_EXECUTOR_RUNTIME_NETWORK=appwrite_runtimes", "_APP_FUNCTIONS_ENVS=node-16.0,php-7.4,python-3.9,ruby-3.0", "_APP_FUNCTIONS_INACTIVE_THRESHOLD=60", + "_APP_COMPUTE_INACTIVE_THRESHOLD=60", "DOCKERHUB_PULL_USERNAME=", "DOCKERHUB_PULL_PASSWORD=", "DOCKERHUB_PULL_EMAIL=", "OPEN_RUNTIMES_NETWORK=appwrite_runtimes", - "_APP_FUNCTIONS_RUNTIMES_NETWORK=runtimes", + "_APP_FUNCTIONS_RUNTIMES_NETWORK=dokploy-network", + "_APP_COMPUTE_RUNTIMES_NETWORK=dokploy-network", "_APP_DOCKER_HUB_USERNAME=", "_APP_DOCKER_HUB_PASSWORD=", "_APP_FUNCTIONS_MAINTENANCE_INTERVAL=3600", + "_APP_COMPUTE_MAINTENANCE_INTERVAL=3600", + "_APP_SITES_TIMEOUT=900", + "_APP_SITES_RUNTIMES=static-1,node-22,flutter-3.29", "_APP_VCS_GITHUB_APP_NAME=", "_APP_VCS_GITHUB_PRIVATE_KEY=", "_APP_VCS_GITHUB_APP_ID=", @@ -109,9 +135,11 @@ env = [ "_APP_VCS_GITHUB_WEBHOOK_SECRET=", "_APP_MAINTENANCE_INTERVAL=86400", "_APP_MAINTENANCE_DELAY=0", + "_APP_MAINTENANCE_START_TIME=00:00", "_APP_MAINTENANCE_RETENTION_CACHE=2592000", "_APP_MAINTENANCE_RETENTION_EXECUTION=1209600", "_APP_MAINTENANCE_RETENTION_AUDIT=1209600", + "_APP_MAINTENANCE_RETENTION_AUDIT_CONSOLE=15778800", "_APP_MAINTENANCE_RETENTION_ABUSE=86400", "_APP_MAINTENANCE_RETENTION_USAGE_HOURLY=8640000", "_APP_MAINTENANCE_RETENTION_SCHEDULES=86400", @@ -130,6 +158,18 @@ port = 80 host = "${main_domain}" path = "/" +[[config.domains]] +serviceName = "appwrite" +port = 80 +host = "${sites_domain}" +path = "/" + +[[config.domains]] +serviceName = "appwrite" +port = 80 +host = "${functions_domain}" +path = "/" + [[config.domains]] serviceName = "appwrite-console" port = 80 diff --git a/meta.json b/meta.json index 7dc8663c..9689043e 100644 --- a/meta.json +++ b/meta.json @@ -365,8 +365,8 @@ { "id": "appwrite", "name": "Appwrite", - "version": "1.6.1", - "description": "Appwrite is an end-to-end backend server for Web, Mobile, Native, or Backend apps. Appwrite abstracts the complexity and repetitiveness required to build a modern backend API from scratch and allows you to build secure apps faster.\nUsing Appwrite, you can easily integrate your app with user authentication and multiple sign-in methods, a database for storing and querying users and team data, storage and file management, image manipulation, Cloud Functions, messaging, and more services.", + "version": "1.8.0", + "description": "Appwrite is an end-to-end platform for building Web, Mobile, Native, or Backend apps, packaged as a set of Docker microservices. It includes both a backend server and a fully integrated hosting solution for deploying static and server-side rendered frontends. Appwrite abstracts the complexity and repetitiveness required to build modern apps from scratch and allows you to build secure, full-stack applications faster.\nUsing Appwrite, you can easily integrate your app with user authentication and multiple sign-in methods, a database for storing and querying users and team data, storage and file management, image manipulation, Cloud Functions, messaging, and more services.", "links": { "github": "https://github.com/appwrite/appwrite", "website": "https://appwrite.io/", @@ -376,7 +376,9 @@ "tags": [ "database", "firebase", - "postgres" + "mariadb", + "hosting", + "self-hosted" ] }, {