From a8f1a56f4058089c55c7a488fbb16ddafc19c04b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Wed, 16 Mar 2022 10:11:04 +0000 Subject: [PATCH 1/3] Merged docker composes (dev&prod) --- app/views/install/compose.phtml | 219 ++++++++++++++++---------------- docker-compose.yml | 75 +++++++---- 2 files changed, 163 insertions(+), 131 deletions(-) diff --git a/app/views/install/compose.phtml b/app/views/install/compose.phtml index 22b95fd2d..5740c8680 100644 --- a/app/views/install/compose.phtml +++ b/app/views/install/compose.phtml @@ -117,8 +117,8 @@ services: - _APP_FUNCTIONS_CPUS - _APP_FUNCTIONS_MEMORY - _APP_FUNCTIONS_MEMORY_SWAP - - _APP_EXECUTOR_SECRET - _APP_FUNCTIONS_RUNTIMES + - _APP_EXECUTOR_SECRET - _APP_LOGGING_PROVIDER - _APP_LOGGING_CONFIG - _APP_STATSD_HOST @@ -169,99 +169,6 @@ services: - _APP_LOGGING_PROVIDER - _APP_LOGGING_CONFIG - appwrite-executor: - image: /: - entrypoint: executor - container_name: appwrite-executor - restart: unless-stopped - stop_signal: SIGINT - networks: - appwrite: - runtimes: - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - appwrite-functions:/storage/functions:rw - - /tmp:/tmp:rw - depends_on: - - redis - - mariadb - - appwrite - environment: - - DOCKERHUB_PULL_USERNAME - - DOCKERHUB_PULL_PASSWORD - - _APP_LOGGING_PROVIDER - - _APP_LOGGING_CONFIG - - _APP_VERSION - - _APP_ENV - - _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_FUNCTIONS_CPUS - - _APP_FUNCTIONS_MEMORY - - _APP_FUNCTIONS_MEMORY_SWAP - - _APP_FUNCTIONS_TIMEOUT - - _APP_EXECUTOR_SECRET - - _APP_FUNCTIONS_RUNTIMES - - _APP_FUNCTIONS_INACTIVE_THRESHOLD - - _APP_EXECUTOR_RUNTIME_NETWORK - - appwrite-worker-database: - image: /: - entrypoint: worker-database - container_name: appwrite-worker-database - restart: unless-stopped - networks: - - appwrite - depends_on: - - redis - - mariadb - environment: - - _APP_ENV - - _APP_OPENSSL_KEY_V1 - - _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_LOGGING_PROVIDER - - _APP_LOGGING_CONFIG - - appwrite-worker-builds: - image: /: - entrypoint: worker-builds - container_name: appwrite-worker-builds - restart: unless-stopped - networks: - - appwrite - depends_on: - - redis - - mariadb - environment: - - _APP_ENV - - _APP_OPENSSL_KEY_V1 - - _APP_EXECUTOR_SECRET - - _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_LOGGING_PROVIDER - - _APP_LOGGING_CONFIG - appwrite-worker-audits: image: /: entrypoint: worker-audits @@ -321,6 +228,8 @@ services: volumes: - appwrite-uploads:/storage/uploads:rw - appwrite-cache:/storage/cache:rw + - appwrite-functions:/storage/functions:rw + - appwrite-builds:/storage/builds:rw - appwrite-certificates:/storage/certificates:rw environment: - _APP_ENV @@ -347,6 +256,57 @@ services: - _APP_LOGGING_CONFIG - _APP_EXECUTOR_SECRET + appwrite-worker-database: + image: /: + entrypoint: worker-database + container_name: appwrite-worker-database + restart: unless-stopped + networks: + - appwrite + depends_on: + - redis + - mariadb + environment: + - _APP_ENV + - _APP_OPENSSL_KEY_V1 + - _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_LOGGING_PROVIDER + - _APP_LOGGING_CONFIG + + appwrite-worker-builds: + image: /: + entrypoint: worker-builds + container_name: appwrite-worker-builds + restart: unless-stopped + networks: + - appwrite + depends_on: + - redis + - mariadb + environment: + - _APP_ENV + - _APP_OPENSSL_KEY_V1 + - _APP_EXECUTOR_SECRET + - _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_LOGGING_PROVIDER + - _APP_LOGGING_CONFIG + appwrite-worker-certificates: image: /: entrypoint: worker-certificates @@ -363,12 +323,12 @@ services: environment: - _APP_ENV - _APP_OPENSSL_KEY_V1 + - _APP_DOMAIN_TARGET - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS - _APP_REDIS_HOST - _APP_REDIS_PORT - _APP_REDIS_USER - _APP_REDIS_PASS - - _APP_DOMAIN_TARGET - _APP_DB_HOST - _APP_DB_PORT - _APP_DB_SCHEMA @@ -406,6 +366,51 @@ services: - DOCKERHUB_PULL_USERNAME - DOCKERHUB_PULL_PASSWORD + appwrite-executor: + image: /: + entrypoint: executor + container_name: appwrite-executor + restart: unless-stopped + stop_signal: SIGINT + networks: + appwrite: + runtimes: + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - appwrite-functions:/storage/functions:rw + - appwrite-builds:/storage/builds:rw + - /tmp:/tmp:rw + depends_on: + - redis + - mariadb + - appwrite + environment: + - _APP_ENV + - _APP_VERSION + - _APP_FUNCTIONS_TIMEOUT + - _APP_FUNCTIONS_BUILD_TIMEOUT + - _APP_FUNCTIONS_CONTAINERS + - _APP_FUNCTIONS_RUNTIMES + - _APP_FUNCTIONS_CPUS + - _APP_FUNCTIONS_MEMORY + - _APP_FUNCTIONS_MEMORY_SWAP + - _APP_FUNCTIONS_INACTIVE_THRESHOLD + - _APP_EXECUTOR_SECRET + - _APP_EXECUTOR_RUNTIME_NETWORK + - _APP_LOGGING_PROVIDER + - _APP_LOGGING_CONFIG + - _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 + - DOCKERHUB_PULL_USERNAME + - DOCKERHUB_PULL_PASSWORD + appwrite-worker-mails: image: /: entrypoint: worker-mails @@ -432,7 +437,6 @@ services: - _APP_LOGGING_PROVIDER - _APP_LOGGING_CONFIG - appwrite-maintenance: image: /: entrypoint: maintenance @@ -512,7 +516,7 @@ services: command: 'mysqld --innodb-flush-method=fsync' redis: - image: redis:6.0-alpine3.12 + image: redis:6.2-alpine container_name: appwrite-redis restart: unless-stopped networks: @@ -520,17 +524,17 @@ services: volumes: - appwrite-redis:/data:rw -# clamav: -# image: appwrite/clamav:1.2.0 -# container_name: appwrite-clamav -# restart: unless-stopped -# networks: -# - appwrite -# volumes: -# - appwrite-uploads:/storage/uploads + # clamav: + # image: appwrite/clamav:1.2.0 + # container_name: appwrite-clamav + # restart: unless-stopped + # networks: + # - appwrite + # volumes: + # - appwrite-uploads:/storage/uploads influxdb: - image: appwrite/influxdb:1.0.0 + image: appwrite/influxdb:1.5.0 container_name: appwrite-influxdb restart: unless-stopped networks: @@ -539,7 +543,7 @@ services: - appwrite-influxdb:/var/lib/influxdb:rw telegraf: - image: appwrite/telegraf:1.2.0 + image: appwrite/telegraf:1.4.0 container_name: appwrite-telegraf restart: unless-stopped networks: @@ -560,6 +564,7 @@ volumes: appwrite-uploads: appwrite-certificates: appwrite-functions: + appwrite-builds: appwrite-influxdb: appwrite-config: appwrite-executor: diff --git a/docker-compose.yml b/docker-compose.yml index ec77a2ece..2ddd5dd51 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -34,7 +34,7 @@ services: networks: - gateway - appwrite - + appwrite: container_name: appwrite build: @@ -88,8 +88,8 @@ services: - -dopcache.preload=opcache.preload=/usr/src/code/app/preload.php environment: - _APP_ENV - - _APP_LOCALE - _APP_WORKER_PER_CORE + - _APP_LOCALE - _APP_CONSOLE_WHITELIST_ROOT - _APP_CONSOLE_WHITELIST_EMAILS - _APP_CONSOLE_WHITELIST_IPS @@ -111,6 +111,15 @@ services: - _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_INFLUXDB_HOST + - _APP_INFLUXDB_PORT + - _APP_STORAGE_LIMIT - _APP_STORAGE_ANTIVIRUS - _APP_STORAGE_ANTIVIRUS_HOST - _APP_STORAGE_ANTIVIRUS_PORT @@ -123,13 +132,6 @@ services: - _APP_STORAGE_DO_SPACES_SECRET - _APP_STORAGE_DO_SPACES_REGION - _APP_STORAGE_DO_SPACES_BUCKET - - _APP_SMTP_HOST - - _APP_SMTP_PORT - - _APP_SMTP_SECURE - - _APP_SMTP_USERNAME - - _APP_SMTP_PASSWORD - - _APP_USAGE_STATS - - _APP_STORAGE_LIMIT - _APP_FUNCTIONS_SIZE_LIMIT - _APP_FUNCTIONS_TIMEOUT - _APP_FUNCTIONS_BUILD_TIMEOUT @@ -141,6 +143,12 @@ services: - _APP_EXECUTOR_SECRET - _APP_LOGGING_PROVIDER - _APP_LOGGING_CONFIG + - _APP_STATSD_HOST + - _APP_STATSD_PORT + - _APP_MAINTENANCE_INTERVAL + - _APP_MAINTENANCE_RETENTION_EXECUTION + - _APP_MAINTENANCE_RETENTION_ABUSE + - _APP_MAINTENANCE_RETENTION_AUDIT appwrite-realtime: entrypoint: realtime @@ -205,6 +213,7 @@ services: - mariadb environment: - _APP_ENV + - _APP_OPENSSL_KEY_V1 - _APP_REDIS_HOST - _APP_REDIS_PORT - _APP_REDIS_USER @@ -233,6 +242,7 @@ services: - request-catcher environment: - _APP_ENV + - _APP_OPENSSL_KEY_V1 - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS - _APP_REDIS_HOST - _APP_REDIS_PORT @@ -248,6 +258,9 @@ services: context: . networks: - appwrite + depends_on: + - redis + - mariadb volumes: - appwrite-uploads:/storage/uploads:rw - appwrite-cache:/storage/cache:rw @@ -256,11 +269,9 @@ services: - appwrite-certificates:/storage/certificates:rw - ./app:/usr/src/code/app - ./src:/usr/src/code/src - depends_on: - - redis - - mariadb environment: - _APP_ENV + - _APP_OPENSSL_KEY_V1 - _APP_REDIS_HOST - _APP_REDIS_PORT - _APP_REDIS_USER @@ -299,6 +310,7 @@ services: - mariadb environment: - _APP_ENV + - _APP_OPENSSL_KEY_V1 - _APP_REDIS_HOST - _APP_REDIS_PORT - _APP_REDIS_USER @@ -310,7 +322,7 @@ services: - _APP_DB_PASS - _APP_LOGGING_PROVIDER - _APP_LOGGING_CONFIG - + appwrite-worker-builds: entrypoint: worker-builds container_name: appwrite-worker-builds @@ -326,6 +338,8 @@ services: - mariadb environment: - _APP_ENV + - _APP_OPENSSL_KEY_V1 + - _APP_EXECUTOR_SECRET - _APP_REDIS_HOST - _APP_REDIS_PORT - _APP_REDIS_USER @@ -337,7 +351,6 @@ services: - _APP_DB_PASS - _APP_LOGGING_PROVIDER - _APP_LOGGING_CONFIG - - _APP_EXECUTOR_SECRET appwrite-worker-certificates: entrypoint: worker-certificates @@ -346,16 +359,17 @@ services: context: . networks: - appwrite + depends_on: + - redis + - mariadb volumes: - appwrite-config:/storage/config:rw - appwrite-certificates:/storage/certificates:rw - ./app:/usr/src/code/app - ./src:/usr/src/code/src - depends_on: - - redis - - mariadb environment: - _APP_ENV + - _APP_OPENSSL_KEY_V1 - _APP_DOMAIN_TARGET - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS - _APP_REDIS_HOST @@ -386,6 +400,7 @@ services: - appwrite-executor environment: - _APP_ENV + - _APP_OPENSSL_KEY_V1 - _APP_REDIS_HOST - _APP_REDIS_PORT - _APP_REDIS_USER @@ -423,8 +438,13 @@ services: - appwrite-functions:/storage/functions:rw - appwrite-builds:/storage/builds:rw - /tmp:/tmp:rw + depends_on: + - redis + - mariadb + - appwrite environment: - _APP_ENV + - _APP_VERSION - _APP_FUNCTIONS_TIMEOUT - _APP_FUNCTIONS_BUILD_TIMEOUT - _APP_FUNCTIONS_CONTAINERS @@ -465,6 +485,7 @@ services: # - smtp environment: - _APP_ENV + - _APP_OPENSSL_KEY_V1 - _APP_SYSTEM_EMAIL_NAME - _APP_SYSTEM_EMAIL_ADDRESS - _APP_REDIS_HOST @@ -493,6 +514,7 @@ services: - redis environment: - _APP_ENV + - _APP_OPENSSL_KEY_V1 - _APP_REDIS_HOST - _APP_REDIS_PORT - _APP_REDIS_USER @@ -520,6 +542,7 @@ services: - mariadb environment: - _APP_ENV + - _APP_OPENSSL_KEY_V1 - _APP_DB_HOST - _APP_DB_PORT - _APP_DB_SCHEMA @@ -527,7 +550,11 @@ services: - _APP_DB_PASS - _APP_INFLUXDB_HOST - _APP_INFLUXDB_PORT - - _APP_USAGE_SYNC_INTERVAL + - _APP_USAGE_AGGREGATION_INTERVAL + - _APP_REDIS_HOST + - _APP_REDIS_PORT + - _APP_REDIS_USER + - _APP_REDIS_PASS appwrite-schedule: entrypoint: schedule @@ -558,9 +585,9 @@ services: ports: - "3306:3306" environment: - - MYSQL_ROOT_PASSWORD=password + - MYSQL_ROOT_PASSWORD=${_APP_DB_ROOT_PASS} - MYSQL_DATABASE=${_APP_DB_SCHEMA} - - MYSQL_USER=user + - MYSQL_USER=${_APP_DB_USER} - MYSQL_PASSWORD=${_APP_DB_PASS} command: 'mysqld --innodb-flush-method=fsync' # add ' --query_cache_size=0' for DB tests # command: mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bu && mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bu @@ -594,9 +621,9 @@ services: # - appwrite # volumes: # - appwrite-uploads:/storage/uploads - + influxdb: - image: appwrite/influxdb:1.4.0 + image: appwrite/influxdb:1.5.0 container_name: appwrite-influxdb networks: - appwrite @@ -604,7 +631,7 @@ services: - appwrite-influxdb:/var/lib/influxdb:rw telegraf: - image: appwrite/telegraf:1.3.0 + image: appwrite/telegraf:1.4.0 container_name: appwrite-telegraf networks: - appwrite @@ -674,7 +701,7 @@ services: # - RESQUE_WEB_HTTP_BASIC_AUTH_PASSWORD=password # chronograf: - # image: chronograf:1.5 + # image: chronograf:1.6 # container_name: appwrite-chronograf # restart: unless-stopped # networks: From a43920336307607bea7777ce9f4b9c3ed8314537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Wed, 16 Mar 2022 13:40:02 +0000 Subject: [PATCH 2/3] Tests fix --- .env | 1 + 1 file changed, 1 insertion(+) diff --git a/.env b/.env index 55b6aae01..4d4231f8b 100644 --- a/.env +++ b/.env @@ -21,6 +21,7 @@ _APP_DB_PORT=3306 _APP_DB_SCHEMA=appwrite _APP_DB_USER=user _APP_DB_PASS=password +_APP_DB_ROOT_PASS=rootsecretpassword _APP_STORAGE_DEVICE=Local _APP_STORAGE_ANTIVIRUS=disabled _APP_STORAGE_ANTIVIRUS_HOST=clamav From 8b8dc7a1f2a4ee4b867220a2419e2a23475531be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Thu, 17 Mar 2022 11:43:01 +0000 Subject: [PATCH 3/3] Synced env file --- .env | 19 ++++++++++++++++--- app/config/variables.php | 6 +++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/.env b/.env index 4d4231f8b..a6bea88b0 100644 --- a/.env +++ b/.env @@ -1,4 +1,3 @@ -_APP_ENV=production _APP_ENV=development _APP_LOCALE=en _APP_WORKER_PER_CORE=6 @@ -16,6 +15,8 @@ _APP_DOMAIN=demo.appwrite.io _APP_DOMAIN_TARGET=demo.appwrite.io _APP_REDIS_HOST=redis _APP_REDIS_PORT=6379 +_APP_REDIS_PASS= +_APP_REDIS_USER= _APP_DB_HOST=mariadb _APP_DB_PORT=3306 _APP_DB_SCHEMA=appwrite @@ -23,6 +24,14 @@ _APP_DB_USER=user _APP_DB_PASS=password _APP_DB_ROOT_PASS=rootsecretpassword _APP_STORAGE_DEVICE=Local +_APP_STORAGE_S3_ACCESS_KEY= +_APP_STORAGE_S3_SECRET= +_APP_STORAGE_S3_REGION=us-eas-1 +_APP_STORAGE_S3_BUCKET= +_APP_STORAGE_DO_SPACES_ACCESS_KEY= +_APP_STORAGE_DO_SPACES_SECRET= +_APP_STORAGE_DO_SPACES_REGION=us-eas-1 +_APP_STORAGE_DO_SPACES_BUCKET= _APP_STORAGE_ANTIVIRUS=disabled _APP_STORAGE_ANTIVIRUS_HOST=clamav _APP_STORAGE_ANTIVIRUS_PORT=3310 @@ -45,11 +54,15 @@ _APP_FUNCTIONS_MEMORY=0 _APP_FUNCTIONS_MEMORY_SWAP=0 _APP_FUNCTIONS_INACTIVE_THRESHOLD=60 _APP_EXECUTOR_RUNTIME_NETWORK=appwrite_runtimes -_APP_EXECUTOR_SECRET=a-random-secret +_APP_EXECUTOR_SECRET=your-secret-key _APP_MAINTENANCE_INTERVAL=86400 _APP_MAINTENANCE_RETENTION_EXECUTION=1209600 _APP_MAINTENANCE_RETENTION_ABUSE=86400 _APP_MAINTENANCE_RETENTION_AUDIT=1209600 +_APP_USAGE_AGGREGATION_INTERVAL=30 _APP_USAGE_STATS=enabled _APP_LOGGING_PROVIDER= -_APP_LOGGING_CONFIG= \ No newline at end of file +_APP_LOGGING_CONFIG= +DOCKERHUB_PULL_USERNAME= +DOCKERHUB_PULL_PASSWORD= +DOCKERHUB_PULL_EMAIL= \ No newline at end of file diff --git a/app/config/variables.php b/app/config/variables.php index 5cae4aa56..918aa24a3 100644 --- a/app/config/variables.php +++ b/app/config/variables.php @@ -547,7 +547,7 @@ return [ 'name' => '_APP_FUNCTIONS_CPUS', 'description' => 'The maximum number of CPU core a single cloud function is allowed to use. Please note that setting a value higher than available cores will result in a function error, which might result in an error. The default value is empty. When it\'s empty, CPU limit will be disabled.', 'introduction' => '0.7.0', - 'default' => '', + 'default' => '0', 'required' => false, 'question' => '', 'filter' => '' @@ -556,7 +556,7 @@ return [ 'name' => '_APP_FUNCTIONS_MEMORY', 'description' => 'The maximum amount of memory a single cloud function is allowed to use in megabytes. The default value is empty. When it\'s empty, memory limit will be disabled.', 'introduction' => '0.7.0', - 'default' => '256', + 'default' => '0', 'required' => false, 'question' => '', 'filter' => '' @@ -565,7 +565,7 @@ return [ 'name' => '_APP_FUNCTIONS_MEMORY_SWAP', 'description' => 'The maximum amount of swap memory a single cloud function is allowed to use in megabytes. The default value is empty. When it\'s empty, swap memory limit will be disabled.', 'introduction' => '0.7.0', - 'default' => '256', + 'default' => '0', 'required' => false, 'question' => '', 'filter' => ''