diff --git a/app/views/install/compose.phtml b/app/views/install/compose.phtml
new file mode 100644
index 0000000000..2cbd063a0f
--- /dev/null
+++ b/app/views/install/compose.phtml
@@ -0,0 +1,378 @@
+getParam('httpPort', '');
+$httpsPort = $this->getParam('httpsPort', '');
+$version = $this->getParam('version', '');
+?>version: '3'
+
+services:
+ traefik:
+ image: traefik:2.3
+ container_name: appwrite-traefik
+ command:
+ - --providers.file.directory=/storage/config
+ - --providers.file.watch=true
+ - --providers.docker=true
+ - --providers.docker.exposedByDefault=false
+ - --providers.docker.constraints=Label(`traefik.constraint-label-stack`,`appwrite`)
+ - --entrypoints.web.address=:80
+ - --entrypoints.websecure.address=:443
+ restart: unless-stopped
+ ports:
+ - :80
+ - :443
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ - appwrite-config:/storage/config:ro
+ - appwrite-certificates:/storage/certificates:ro
+ depends_on:
+ - appwrite
+ networks:
+ - gateway
+ - appwrite
+
+ appwrite:
+ image: appwrite/appwrite:
+ container_name: appwrite
+ restart: unless-stopped
+ networks:
+ - appwrite
+ labels:
+ - traefik.enable=true
+ - traefik.constraint-label-stack=appwrite
+ - traefik.http.routers.appwrite.rule=PathPrefix(`/`)
+ - traefik.http.routers.appwrite-secure.rule=PathPrefix(`/`)
+ - traefik.http.routers.appwrite-secure.tls=true
+ volumes:
+ - appwrite-uploads:/storage/uploads:rw
+ - appwrite-cache:/storage/cache:rw
+ - appwrite-config:/storage/config:rw
+ - appwrite-certificates:/storage/certificates:rw
+ - appwrite-functions:/storage/functions:rw
+ depends_on:
+ - mariadb
+ - redis
+ - clamav
+ - influxdb
+ environment:
+ - _APP_ENV
+ - _APP_SYSTEM_EMAIL_NAME
+ - _APP_SYSTEM_EMAIL_ADDRESS
+ - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
+ - _APP_OPTIONS_ABUSE
+ - _APP_OPTIONS_FORCE_HTTPS
+ - _APP_OPENSSL_KEY_V1
+ - _APP_DOMAIN
+ - _APP_DOMAIN_TARGET
+ - _APP_REDIS_HOST
+ - _APP_REDIS_PORT
+ - _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_INFLUXDB_HOST
+ - _APP_INFLUXDB_PORT
+ - _APP_STORAGE_LIMIT
+ - _APP_FUNCTIONS_TIMEOUT
+ - _APP_FUNCTIONS_CONTAINERS
+ - _APP_FUNCTIONS_CPUS
+ - _APP_FUNCTIONS_MEMORY
+ - _APP_FUNCTIONS_MEMORY_SWAP
+ - _APP_FUNCTIONS_ENVS
+ - _APP_STORAGE_LIMIT
+ - _APP_STORAGE_ANTIVIRUS
+ - _APP_STORAGE_ANTIVIRUS_HOST
+ - _APP_STORAGE_ANTIVIRUS_PORT
+
+ appwrite-worker-usage:
+ image: appwrite/appwrite:
+ entrypoint: worker-usage
+ container_name: appwrite-worker-usage
+ restart: unless-stopped
+ networks:
+ - appwrite
+ depends_on:
+ - redis
+ - telegraf
+ environment:
+ - _APP_ENV
+ - _APP_REDIS_HOST
+ - _APP_REDIS_PORT
+ - _APP_STATSD_HOST
+ - _APP_STATSD_PORT
+
+ appwrite-worker-audits:
+ image: appwrite/appwrite:
+ entrypoint: worker-audits
+ container_name: appwrite-worker-audits
+ restart: unless-stopped
+ networks:
+ - appwrite
+ depends_on:
+ - redis
+ - mariadb
+ environment:
+ - _APP_ENV
+ - _APP_REDIS_HOST
+ - _APP_REDIS_PORT
+ - _APP_DB_HOST
+ - _APP_DB_PORT
+ - _APP_DB_SCHEMA
+ - _APP_DB_USER
+ - _APP_DB_PASS
+
+ appwrite-worker-webhooks:
+ image: appwrite/appwrite:
+ entrypoint: worker-webhooks
+ container_name: appwrite-worker-webhooks
+ restart: unless-stopped
+ networks:
+ - appwrite
+ depends_on:
+ - redis
+ - mariadb
+ environment:
+ - _APP_ENV
+ - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
+ - _APP_REDIS_HOST
+ - _APP_REDIS_PORT
+ - _APP_DB_HOST
+ - _APP_DB_PORT
+ - _APP_DB_SCHEMA
+ - _APP_DB_USER
+ - _APP_DB_PASS
+
+ appwrite-worker-tasks:
+ image: appwrite/appwrite:
+ entrypoint: worker-tasks
+ container_name: appwrite-worker-tasks
+ restart: unless-stopped
+ networks:
+ - appwrite
+ depends_on:
+ - redis
+ - mariadb
+ environment:
+ - _APP_ENV
+ - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
+ - _APP_REDIS_HOST
+ - _APP_REDIS_PORT
+ - _APP_DB_HOST
+ - _APP_DB_PORT
+ - _APP_DB_SCHEMA
+ - _APP_DB_USER
+ - _APP_DB_PASS
+
+ appwrite-worker-deletes:
+ image: appwrite/appwrite:
+ entrypoint: worker-deletes
+ container_name: appwrite-worker-deletes
+ restart: unless-stopped
+ networks:
+ - appwrite
+ depends_on:
+ - redis
+ - mariadb
+ volumes:
+ - appwrite-uploads:/storage/uploads:rw
+ - appwrite-cache:/storage/cache:rw
+ - appwrite-certificates:/storage/certificates:rw
+ environment:
+ - _APP_ENV
+ - _APP_REDIS_HOST
+ - _APP_REDIS_PORT
+ - _APP_DB_HOST
+ - _APP_DB_PORT
+ - _APP_DB_SCHEMA
+ - _APP_DB_USER
+ - _APP_DB_PASS
+
+ appwrite-worker-certificates:
+ image: appwrite/appwrite:
+ entrypoint: worker-certificates
+ container_name: appwrite-worker-certificates
+ restart: unless-stopped
+ networks:
+ - appwrite
+ depends_on:
+ - redis
+ - mariadb
+ volumes:
+ - appwrite-config:/storage/config:rw
+ - appwrite-certificates:/storage/certificates:rw
+ environment:
+ - _APP_ENV
+ - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
+ - _APP_REDIS_HOST
+ - _APP_REDIS_PORT
+ - _APP_DOMAIN_TARGET
+ - _APP_DB_HOST
+ - _APP_DB_PORT
+ - _APP_DB_SCHEMA
+ - _APP_DB_USER
+ - _APP_DB_PASS
+
+ appwrite-worker-functions:
+ image: appwrite/appwrite:
+ entrypoint: worker-functions
+ container_name: appwrite-worker-functions
+ restart: unless-stopped
+ networks:
+ - appwrite
+ depends_on:
+ - redis
+ - mariadb
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ - appwrite-functions:/storage/functions:rw
+ - /tmp:/tmp:rw
+ environment:
+ - _APP_ENV
+ - _APP_REDIS_HOST
+ - _APP_REDIS_PORT
+ - _APP_DB_HOST
+ - _APP_DB_PORT
+ - _APP_DB_SCHEMA
+ - _APP_DB_USER
+ - _APP_DB_PASS
+ - _APP_FUNCTIONS_TIMEOUT
+ - _APP_FUNCTIONS_CONTAINERS
+ - _APP_FUNCTIONS_CPUS
+ - _APP_FUNCTIONS_MEMORY
+ - _APP_FUNCTIONS_MEMORY_SWAP
+ - _APP_USAGE_STATS
+
+ appwrite-worker-mails:
+ image: appwrite/appwrite:
+ entrypoint: worker-mails
+ container_name: appwrite-worker-mails
+ restart: unless-stopped
+ networks:
+ - appwrite
+ depends_on:
+ - redis
+ - smtp
+ environment:
+ - _APP_ENV
+ - _APP_SYSTEM_EMAIL_NAME
+ - _APP_SYSTEM_EMAIL_ADDRESS
+ - _APP_REDIS_HOST
+ - _APP_REDIS_PORT
+ - _APP_SMTP_HOST
+ - _APP_SMTP_PORT
+ - _APP_SMTP_SECURE
+ - _APP_SMTP_USERNAME
+ - _APP_SMTP_PASSWORD
+
+ appwrite-maintenance:
+ image: appwrite/appwrite:
+ entrypoint: maintenance
+ container_name: appwrite-maintenance
+ restart: unless-stopped
+ networks:
+ - appwrite
+ depends_on:
+ - redis
+ environment:
+ - _APP_ENV
+ - _APP_REDIS_HOST
+ - _APP_REDIS_PORT
+ - _APP_MAINTENANCE_INTERVAL
+ - _APP_MAINTENANCE_RETENTION_EXECUTION
+ - _APP_MAINTENANCE_RETENTION_ABUSE
+ - _APP_MAINTENANCE_RETENTION_AUDIT
+
+
+ appwrite-schedule:
+ image: appwrite/appwrite:
+ entrypoint: schedule
+ container_name: appwrite-schedule
+ restart: unless-stopped
+ networks:
+ - appwrite
+ depends_on:
+ - redis
+ environment:
+ - _APP_ENV
+ - _APP_REDIS_HOST
+ - _APP_REDIS_PORT
+
+ mariadb:
+ image: appwrite/mariadb:1.2.0 # fix issues when upgrading using: mysql_upgrade -u root -p
+ container_name: appwrite-mariadb
+ restart: unless-stopped
+ networks:
+ - appwrite
+ volumes:
+ - appwrite-mariadb:/var/lib/mysql:rw
+ environment:
+ - MYSQL_ROOT_PASSWORD=rootsecretpassword
+ - MYSQL_DATABASE=${_APP_DB_SCHEMA}
+ - MYSQL_USER=${_APP_DB_USER}
+ - MYSQL_PASSWORD=${_APP_DB_PASS}
+ command: 'mysqld --innodb-flush-method=fsync'
+
+ smtp:
+ image: appwrite/smtp:1.0.1
+ container_name: appwrite-smtp
+ restart: unless-stopped
+ networks:
+ - appwrite
+ environment:
+ - MAILNAME=appwrite
+ - RELAY_NETWORKS=:192.168.0.0/24:10.0.0.0/16
+
+ redis:
+ image: redis:6.0-alpine3.12
+ container_name: appwrite-redis
+ restart: unless-stopped
+ networks:
+ - appwrite
+ 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
+
+ influxdb:
+ image: influxdb:1.8-alpine
+ container_name: appwrite-influxdb
+ restart: unless-stopped
+ networks:
+ - appwrite
+ volumes:
+ - appwrite-influxdb:/var/lib/influxdb:rw
+
+ telegraf:
+ image: appwrite/telegraf:1.0.0
+ container_name: appwrite-telegraf
+ restart: unless-stopped
+ networks:
+ - appwrite
+
+networks:
+ gateway:
+ appwrite:
+
+volumes:
+ appwrite-mariadb:
+ appwrite-redis:
+ appwrite-cache:
+ appwrite-uploads:
+ appwrite-certificates:
+ appwrite-functions:
+ appwrite-influxdb:
+ appwrite-config: