version: '3'

services:

  myreverse:
    image: bunkerity/bunkerized-nginx
    restart: always
    depends_on:
      - app1
      - app2
      - app3
    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:
      - ./apps:/www:ro
      - ./letsencrypt:/etc/letsencrypt
    environment:
      - MULTISITE=yes
      - SERVER_NAME=app1.website.com app2.website.com app3.website.com # replace with your domains
      - DISABLE_DEFAULT_SERVER=yes
      - REDIRECT_HTTP_TO_HTTPS=yes
      - AUTO_LETS_ENCRYPT=yes
      - USE_CLIENT_CACHE=yes
      - USE_GZIP=yes
      - ROOT_SITE_SUBFOLDER=web-files
      - app1.website.com_REMOTE_PHP=app1
      - app1.website.com_REMOTE_PHP_PATH=/var/www/html
      - app2.website.com_REMOTE_PHP=app2
      - app2.website.com_REMOTE_PHP_PATH=/var/www/html
      - app2.website.com_ROOT_SITE_SUBFOLDER=    # no subfolder
      - app3.website.com_REMOTE_PHP=app3
      - app3.website.com_REMOTE_PHP_PATH=/var/www/html
      - app3.website.com_ROOT_SITE_SUBFOLDER=another-folder

  app1:
    image: php:fpm
    restart: always
    volumes:
      - ./apps/app1.website.com/web-files:/var/www/html    # app1 project web root

  app1_db:
    image: mariadb
    restart: always
    volumes:
      - ./apps/app1.website.com/db-data:/var/lib/mysql    # app1 project data
    environment:
      - MYSQL_ROOT_PASSWORD=db-root-pwd         # replace with a stronger password
      - MYSQL_DATABASE=app
      - MYSQL_USER=user
      - MYSQL_PASSWORD=db-user-pwd              # replace with a stronger password

  app2:
    image: php:fpm
    restart: always
    volumes:
      - ./apps/app2.website.com:/var/www/html    # app2 project with no subfolder

  app3:
    build: apps/app3.website.com/.    # project with custom built image
    image: my-php
    restart: always
    volumes:
      - ./apps/app3.website.com/another-folder:/var/www/html    # app3 project web root
