version: '3' services: myreverse: image: bunkerity/bunkerized-nginx restart: always depends_on: - app1 - app2 ports: - 80:8080 - 443:8443 # bunkerized-nginx runs as an unprivileged user with UID/GID 101 # don't forget to edit the permissions of the files and folders accordingly volumes: - ./letsencrypt:/etc/letsencrypt environment: - MULTISITE=yes - SERVER_NAME=app1.example.com app2.example.com # replace with your domain - SERVE_FILES=no - DISABLE_DEFAULT_SERVER=yes - REDIRECT_HTTP_TO_HTTPS=yes - AUTO_LETS_ENCRYPT=yes - USE_PROXY_CACHE=yes - USE_CLIENT_CACHE=yes - USE_GZIP=yes - USE_REVERSE_PROXY=yes - app1.example.com_REVERSE_PROXY_URL=/ - app1.example.com_REVERSE_PROXY_HOST=http://app1:3000 - app2.example.com_REVERSE_PROXY_URL=/ - app2.example.com_REVERSE_PROXY_HOST=http://app2 app1: image: node restart: always working_dir: /home/node/app volumes: - ./js-app:/home/node/app environment: - NODE_ENV=production command: bash -c "npm install express && node index.js" app2: image: phpmyadmin:apache restart: always environment: - PMA_ARBITRARY=1 - PMA_ABSOLUTE_URI=https://app2.example.com