services: # Web Server webserver: image: saintfrater/php8-3-custom:latest container_name: proj01-webserver restart: unless-stopped tty: true stdin_open: true volumes: - public:/var/www/html environment: - TZ=Europe/Brussels depends_on: - db networks: - server - backend # MariaDB Server db: image: mariadb:latest container_name: proj01-db restart: unless-stopped environment: # update with YOUR requiered db informations - MARIADB_DATABASE=__YOUR_DATABASE_NAME__ # So you don't have to use root, but you can if you like - MARIADB_USER=__YOUR_APPLICATION_USER__ # You can use whatever password you like - MARIADB_PASSWORD=__YOUR_APPLICATION_DB_PASSWORD__ # Password for root access - MARIADB_ROOT_HOST=localhost - MARIADB_ROOT_PASSWORD=__YOUR_DB_ROOT_PASSWORD__ volumes: - db:/var/lib/mysql networks: - backend # phpMyAdmin phpmyadmin: image: phpmyadmin container_name: proj01-phpmyadmin restart: unless-stopped environment: - TZ=Europe/Brussels - # define the SQL host name & connection port - PMA_HOST=proj01-db - PMA_PORT=3306 # credentials for connection - PMA_USER=__YOUR_APPLICATION_USER__ or root - PMA_PASSWORD=__YOUR_APPLICATION_DB_PASSWORD__ or __YOUR_DB_ROOT_PASSWORD__ depends_on: - db networks: - server - backend # webIDE theia: image: ghcr.io/eclipse-theia/theia-ide/theia-ide:latest container_name: proj01-ide restart: unless-stopped volumes: # shared volume - public:/home/project # dedicated IDE volume - theia-data:/home/theia networks: - servers # NGINX Proxy Manager proxy: image: jc21/nginx-proxy-manager:2.12.3 container_name: proj01-proxy restart: unless-stopped ports: - 80:80 - 81:81 - 443:443 - 3000:3000 volumes: - npm-data:/data - npm-letsencrypt:/etc/letsencrypt networks: - servers volumes: db: public: theia-data: npm-data: npm-letsencrypt: networks: server: external: true backend: driver: bridge