### Minimum File Structure
```
/home/
└── ~/
    └── docker/
        └── zoneminder/
            ├── .env
            ├── docker-compose.yml
```

### Add to Caddyfile (from ~/docker/caddy)
Remember to `docker exec -w /etc/caddy caddy caddy reload` after editing your Caddyfile.
```
zoneminder.yourdomain.com {
	reverse_proxy zoneminder:80
}
```

### docker-compose.yml
Notes on some compose settings.
Why is priviledged set to true? So the docker container can access system resources like a CUDA GPU for object detection.
Timezone should be adjusted to your time zone.

WIP: In the original compose, network_mode: "bridge" , was added I left it here but you can remove it. There should be a way for the docker to detect the cameras via IP addresses on your own network. I'm not certain about this line.

```
version: '3.1'
services:
    zoneminder:
        container_name: zoneminder
        image: dlandon/zoneminder.master:latest
        restart: unless-stopped
        network_mode: "bridge"
        privileged: true
        environment:
            - TZ=America/Los_Angeles
            - SHMEM=50%
            - PUID=99
            - PGID=100
            - INSTALL_HOOK=0
            - INSTALL_FACE=1
            - INSTALL_TINY_YOLO3=0
            - INSTALL_YOLO3=0
            - INSTALL_TINY_YOLO4=0
            - INSTALL_YOLO4=0
            - MULTI_PORT_START=0
            - MULTI_PORT_END=0
        volumes:
            - ./config:/config:rw
            - ./data:/var/cache/zoneminder:rw
            
networks:
  default:
    external:
      name: caddy_net
```

### other notes
Certificates are located in /config/keys/
