Version: Jun 2, 2025

Docker Composer Site Side

Breakdown of the File

Services:

This section defines individual services (containers) you want Docker to run. Each service corresponds to a website.

WebSites: dreblowdesigns, mathsheetgen, dreblowandassociates

Each block under services: defines one site. Let's use one as an example:

dreblowdesigns:
    image: nginx:latest
    restart: always

Volumes

volumes:
    - /srv/sites/dreblowdesigns.com:/usr/share/nginx/html:ro

Environment Variables

environment:
- VIRTUAL_HOST=dreblowdesigns.com, www.dreblowdesigns.com
- LETSENCRYPT_HOST=dreblowdesigns.com, www.dreblowdesigns.com
- LETSENCRYPT_EMAIL=####.#####@gmail.com

These are picked up by the nginx-proxy and acme-companion services you defined in the server-side Compose file:

Networks

networks:
    - webproxy
networks:
  webproxy:
    external: true

Why This Works

The entire file

services:
  dreblowdesigns:
    image: nginx:latest
    restart: always
    volumes:
      - /srv/sites/dreblowdesigns.com:/usr/share/nginx/html:ro
    environment:
      - VIRTUAL_HOST=dreblowdesigns.com, www.dreblowdesigns.com
      - LETSENCRYPT_HOST=dreblowdesigns.com, www.dreblowdesigns.com
      - LETSENCRYPT_EMAIL=####.#####@gmail.com                              # Or some email address
    networks:
      - webproxy

  mathsheetgen:
    image: nginx:latest
    restart: always
    volumes:
      - /srv/sites/mathsheetgen.com:/usr/share/nginx/html:ro
    environment:
      - VIRTUAL_HOST=mathsheetgen.com, www.mathsheetgen.com
      - LETSENCRYPT_HOST=mathsheetgen.com, www.mathsheetgen.com
      - LETSENCRYPT_EMAIL=####.#####@gmail.com                              # Or some email address
    networks:
      - webproxy

  dreblowandassociates:
    image: nginx:latest
    restart: always
    volumes:
      - /srv/sites/dreblowandassociates.com:/usr/share/nginx/html:ro
    environment:
      - VIRTUAL_HOST=dreblowandassociates.com, www.dreblowandassociates.com
      - LETSENCRYPT_HOST=dreblowandassociates.com, www.dreblowandassociates.com
      - LETSENCRYPT_EMAIL=####.#####@gmail.com                              # Or some email address
    networks:
      - webproxy

networks:
  webproxy:
    external: true