/compose-platforms

Proxy-enabled open source platforms via Docker-Compose

Primary LanguageShellMIT LicenseMIT

Compose Platforms

Proxy-enabled open source platforms via Docker-Compose

Configure the *.env.example files and rename to *.env files

Note: Not all docker-compose.yml files read from *.env files (TODO)

Set up domains pointing to platforms using Nginx-Proxy

Create proxy network to containers to be exposed via port 80/443

docker network create proxy

Run docker-compose up -d from the nginx-proxy folder and ensure that ports 80 and 443 are bindable.

cd nginx-proxy
docker-compose up -d

docker-compose -f # To see added services and HTTP requests log

Point domains to your instances and generate SSL certificates with LetsEncrypt by

  • Setting env VIRTUAL_HOST and LETSENCRYPT_HOST to "subdomain.example.com" or "example.com"
  • Setting env VIRTUAL_PORT to the exposed port for your app service in the docker-compose.yml files
  • Setting env DEFAULT_EMAIL in the nginx-proxy/nginx-proxy-letsencrypt service for your support account

Credit

Portainer

Browser-based monitoring for single or multiple Docker installations

Credit

Botpress

Studio-style chatbot design and configuration

Credit

Directus

Headless CMS that maps to raw MySQL structure

Remember to initialize the DB and admin user

docker-compose run --rm directus install --email email@example.com --password d1r3ctu5

Credit

Contributing

Create a pull request after checking that your setup is ready to go with Docker Compose and nginx-proxy

  1. Server services should contain the environment variables VIRTUAL_HOST, VIRTUAL_PORT and LETSENCRYPT_HOST
  2. Server services in docker-compose.yml should belong to default and proxy if they have other services
  3. Other services like databases in docker-compose.yml shouldn't be on the network proxy
  4. Avoid sharing .env files between services; use postgres.env or service.env where possible

License

MIT License