Docker compose ECIS with letsencrypt
Find below an example configuration of Docker compose using Traefik (with letsencrypt)
services:
reverse-proxy:
# The official v2 Traefik docker image
image: traefik:latest
# Enables the web UI and tells Traefik to listen to docker
command:
- --log.level=DEBUG
- --providers.docker
- --providers.docker.network=web
- --certificatesresolvers.letsencrypt.acme.httpchallenge=true
- --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=http
- --certificatesresolvers.letsencrypt.acme.email=info@jield.nl
- --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json
- --entrypoints.http.address=:80
- --entrypoints.http.http.redirections.entrypoint.to=https
- --entrypoints.http.http.redirections.entrypoint.scheme=https
- --entrypoints.https.address=:443
- --entrypoints.https.http.tls=true
- --entrypoints.https.http.tls.certResolver=letsencrypt
- --entrypoints.https.http.tls.domains[0].main=hostname.ecis.net
restart: always
networks:
web: { }
ports:
- "80:80"
- "443:443"
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock
- certs:/letsencrypt
ecis:
image: ghcr.io/jield-webdev/ecis/app:latest
labels:
- traefik.enable=true
- traefik.http.services.ecis.loadbalancer.server.port=80
- traefik.http.routers.ecis.service=webserver
- traefik.http.routers.ecis.rule=Host(`hostname.ecis.net`)
- traefik.http.routers.ecis.entrypoints=https
- traefik.http.routers.ecis.tls=true
restart: always
volumes:
- ./conf/production.global.php:/var/www/config/autoload/production.global.php
environment:
ecis_ENVIRONMENT: production
ecis_HOST: black-semiconductor
networks:
- internal
volumes:
certs:
networks:
web:
external: true
internal:
external: false
Last modified: 11 April 2025