captainVersion: 4 services: $$cap_appname-db: image: mysql:5.7 volumes: - $$cap_appname-db-data:/var/lib/mysql/ environment: MYSQL_DATABASE: $$cap_mysql_database_name MYSQL_ROOT_PASSWORD: $$cap_mysql_root_passwd MYSQL_USER: $$cap_mysql_user MYSQL_PASSWORD: $$cap_mysql_passwd healthcheck: test: mysql -u$$cap_mysql_user -p$$cap_mysql_passwd -e "SHOW DATABASES;" interval: 10s timeout: 6s retries: '10' restart: always caproverExtra: notExposeAsWebApp: 'true' $$cap_appname-directus: depends_on: $$cap_appname-db: condition: service_healthy image: directus/directus:$$cap_directus_tag volumes: - $$cap_appname-directus-uploads:/var/directus/public/uploads restart: always environment: DIRECTUS_DATABASE_HOST: srv-captain--$$cap_appname-db DIRECTUS_DATABASE_NAME: $$cap_mysql_database_name DIRECTUS_DATABASE_USERNAME: $$cap_mysql_user DIRECTUS_DATABASE_PASSWORD: $$cap_mysql_passwd DIRECTUS_AUTH_SECRETKEY: $$cap_directus_auth_secret_key DIRECTUS_AUTH_PUBLICKEY: $$cap_directus_auth_public_key caproverOneClickApp: variables: - description: Tag of Directus image on https://hub.docker.com/r/directus/directus/tags defaultValue: v8.8.0-apache id: $$cap_directus_tag label: Directus image tag validRegex: /.{1,}/ - description: Name of the Directus backing database instance. defaultValue: directus id: $$cap_mysql_database_name label: mySQL Database Name validRegex: /.{1,}/ - description: Master password for the Directus backing database instance. defaultValue: L4fCizKUZtX4Htwi id: $$cap_mysql_root_passwd label: mySQL Root Password validRegex: /^(?=.*\d).{10,}$/ - description: User for the Directus backing database instance. defaultValue: directus id: $$cap_mysql_user label: mySQL User validRegex: /.{1,}/ - description: User password for the Directus backing database instance. defaultValue: N2cQ4J9VzsfvXwzM id: $$cap_mysql_passwd label: mySQL User Password validRegex: /^(?=.*\d).{10,}$/ - description: Directus Auth Secret Key (must not be the same as Directus Auth Public Key) defaultValue: nsQocnfPjh3Udjyw id: $$cap_directus_auth_secret_key label: Directus Auth Secret Key validRegex: /^(?=.*\d).{10,}$/ - description: Directus Auth Public Key (must not be the same as Directus Auth Secret Key) defaultValue: 8QQc2mv6PXuEcsfw id: $$cap_directus_auth_public_key label: Directus Auth Public Key validRegex: /^(?=.*\d).{10,}$/ - description: Directus admin user email defaultValue: admin@example.com id: $$cap_directus_install_email label: Directus admin user email validRegex: /.{1,}/ - description: Directus admin user password defaultValue: yM7iT3ijt95pyeJP id: $$cap_directus_install_password label: Directus admin user password validRegex: /^(?=.*\d).{10,}$/ instructions: end: > THE INSTALLATION PROCESS IS NOT FINISHED !!! As said in the documentation (https://docs.directus.io/installation/docker.html#step-4-initialize-the-database-and-an-admin-user), currently (30/06/2020), Directus does not support automatic database setup so you need to do it yourself the first time you launch directus. But since Caprover does not use standard docker-compose file, you need to run a slightly uglier command than the one shown in the documentation. Run the following command on your server (using SSH for example, you might need to be root): docker run -e DIRECTUS_DATABASE_HOST=srv-captain--$$cap_appname-db -e DIRECTUS_DATABASE_NAME=$$cap_mysql_database_name -e DIRECTUS_DATABASE_USERNAME=$$cap_mysql_user -e DIRECTUS_DATABASE_PASSWORD=$$cap_mysql_passwd -e DIRECTUS_AUTH_SECRETKEY=$$cap_directus_auth_secret_key -e DIRECTUS_AUTH_PUBLICKEY=$$cap_directus_auth_public_key --network $(docker network ls | grep "captain-overlay-network" | awk '{print $1}') --rm directus/directus:$$cap_directus_tag install --email $$cap_directus_install_email --password $$cap_directus_install_password Once this is done, Directus is deployed and available as $$cap_appname-directus. It may take a few minutes for Directus to initialize. start: >- Directus is an open-source suite of software that wraps custom SQL databases with a dynamic API and intuitive Admin App. For more information and available options, see https://github.com/directus/docker or the official documentation at https://docs.directus.io displayName: '' isOfficial: true description: Directus is an open-source tool for managing content across all your omni-channel digital experiences documentation: Taken from https://github.com/directus/docker.