Skip to content

Instantly share code, notes, and snippets.

@phillijw
Last active January 28, 2021 19:08
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phillijw/f56b45ede8b262b0aecf0814fe4dcb51 to your computer and use it in GitHub Desktop.
Save phillijw/f56b45ede8b262b0aecf0814fe4dcb51 to your computer and use it in GitHub Desktop.
Working traefik + zoneminder docker setup
version: '3'
services:
traefik:
image: traefik
restart: always
ports:
- "80:80" #http
- "443:443" #https
- "8080:8080" #web ui
networks:
- web
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /opt/traefik/traefik.toml:/etc/traefik/traefik.toml
- /opt/traefik/acme.json:/etc/traefik/acme.json
container_name: traefik
networks:
web:
external:
name: web
debug = false
logLevel = "DEBUG"
defaultEntryPoints = ["https","http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[retry]
[api]
address = ":8080"
[docker]
endpoint="unix:///var/run/docker.sock"
domain = "home.example.com"
watch=true
exposedByDefault=false
[acme]
email = "myemail@gmail.com"
storageFile = "/etc/traefik/acme.json"
entryPoint = "https"
acmeLogging = true
onDemand = false
OnHostRule = true
[acme.httpChallenge]
entryPoint = "http"
version: '3.2'
services:
db:
image: mysql/mysql-server:5.7
volumes:
- /var/lib/docker/volumes/zoneminder/mysql/data:/var/lib/mysql
- /var/lib/docker/volumes/zoneminder/mysql/conf:/etc/mysql:ro
environment:
- TZ=America/Chicago
- MYSQL_USER=zmuser
- MYSQL_PASSWORD=zmpass
- MYSQL_DATABASE=zm
- MYSQL_ROOT_PASSWORD=mysqlpsswd
- MYSQL_ROOT_HOST=%
restart: always
web:
image: quantumobject/docker-zoneminder
networks:
- web
ports:
- "8081:80" #So I can access it on internal network on a shared host
volumes:
- /var/empty
- /var/lib/docker/volumes/zoneminder/backups:/var/backups
- /var/lib/docker/volumes/zoneminder/cache:/var/cache/zoneminder
- type: tmpfs
target: /dev/shm
environment:
- TZ=America/Chicago
# - VIRTUAL_HOST=zm.localhost, stream0.localhost
# - SERVICE_PORTS="8081"
# - ZM_SERVER_HOST=node.0
- ZM_DB_HOST=db
restart: always
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:home.example.com; PathPrefix:/zm"
- "traefik.frontend.redirect.entryPoint=https"
- "traefik.docker.network=web"
- "traefik.port=80"
depends_on:
- db
networks:
web:
external:
name: web
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment