mirror of
https://github.com/koush/scrypted.git
synced 2026-02-03 14:13:28 +00:00
169 lines
6.4 KiB
YAML
169 lines
6.4 KiB
YAML
# The Scrypted docker-compose.yml file typically resides at:
|
|
# ~/.scrypted/docker-compose.yml
|
|
|
|
|
|
# Scrypted NVR Storage (Optional Network Volume: Part 1 of 3)
|
|
# Example volumes SMB (CIFS) and NFS.
|
|
# Uncomment only one.
|
|
# volumes:
|
|
# nvr:
|
|
# driver_opts:
|
|
# type: cifs
|
|
# o: username=[username],password=[password],vers=3.0,file_mode=0777,dir_mode=0777
|
|
# device: //[ip-address]/[path-to-directory]
|
|
# nvr:
|
|
# driver_opts:
|
|
# type: "nfs"
|
|
# o: "addr=[ip-address],nolock,soft,rw"
|
|
# device: ":[path-to-directory]"
|
|
|
|
services:
|
|
scrypted:
|
|
# LXC usage only
|
|
# lxc privileged: true
|
|
|
|
environment:
|
|
# Scrypted NVR Storage (Part 2 of 3)
|
|
|
|
# Uncomment the next line to configure the NVR plugin to store recordings
|
|
# use the /nvr directory within the container. This can also be configured
|
|
# within the plugin manually.
|
|
# The drive or network share will ALSO need to be configured in the volumes
|
|
# section below.
|
|
# - SCRYPTED_NVR_VOLUME=/nvr
|
|
|
|
- SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION=Bearer ${WATCHTOWER_HTTP_API_TOKEN:-env_missing_fallback}
|
|
- SCRYPTED_WEBHOOK_UPDATE=http://localhost:10444/v1/update
|
|
|
|
# LXC usage only
|
|
# lxc - SCRYPTED_INSTALL_ENVIRONMENT=lxc-docker
|
|
|
|
# Avahi can be used for network discovery by passing in the host daemon
|
|
# or running the daemon inside the container. Choose one or the other.
|
|
# Uncomment next line to run avahi-daemon inside the container.
|
|
# See volumes and security_opt section below to use the host daemon.
|
|
# - SCRYPTED_DOCKER_AVAHI=true
|
|
|
|
# NVIDIA (Part 1 of 2)
|
|
# nvidia runtime: nvidia
|
|
|
|
# NVIDIA (Part 2 of 2) - Use NVIDIA image, and remove subsequent default image.
|
|
# Valid images:
|
|
# ghcr.io/koush/scrypted
|
|
# ghcr.io/koush/scrypted:nvidia
|
|
# ghcr.io/koush/scrypted:intel
|
|
# ghcr.io/koush/scrypted:lite
|
|
image: ghcr.io/koush/scrypted
|
|
|
|
volumes:
|
|
# Scrypted NVR Storage (Part 3 of 3)
|
|
|
|
# Modify to add the additional volume for Scrypted NVR.
|
|
# The following example would mount the /mnt/media/video path on the host
|
|
# to the /nvr path inside the docker container.
|
|
# - /mnt/media/video:/nvr
|
|
|
|
# Or use a network mount from one of the CIFS/NFS examples at the top of this file.
|
|
# - type: volume
|
|
# source: nvr
|
|
# target: /nvr
|
|
# volume:
|
|
# nocopy: true
|
|
|
|
# Uncomment the following lines to use Avahi daemon from the host.
|
|
# Ensure Avahi is running on the host machine:
|
|
# It can be installed with: sudo apt-get install avahi-daemon
|
|
# This is not compatible with running avahi inside the container (see above).
|
|
# Also, uncomment the lines under security_opt
|
|
# - /var/run/dbus:/var/run/dbus
|
|
# - /var/run/avahi-daemon/socket:/var/run/avahi-daemon/socket
|
|
|
|
# Default volume for the Scrypted database. Typically should not be changed.
|
|
# The volume will be placed relative to this docker-compose.yml.
|
|
- ./volume:/server/volume
|
|
|
|
# LXC usage only
|
|
# lxc - /var/run/docker.sock:/var/run/docker.sock
|
|
# lxc - /root/.scrypted/docker-compose.yml:/root/.scrypted/docker-compose.yml
|
|
# lxc - /root/.scrypted/docker-compose.sh:/root/.scrypted/docker-compose.sh
|
|
# lxc - /root/.scrypted/.env:/root/.scrypted/.env
|
|
# lxc - /mnt:/mnt
|
|
|
|
# Uncomment the following lines to use Avahi daemon from the host
|
|
# Without this, AppArmor will block the container's attempt to talk to Avahi via dbus
|
|
# security_opt:
|
|
# - apparmor:unconfined
|
|
devices: [
|
|
# uncomment the common systems devices to pass
|
|
# them through to docker.
|
|
|
|
# all usb devices, such as coral tpu
|
|
# "/dev/bus/usb:/dev/bus/usb",
|
|
|
|
# hardware accelerated video decoding, opencl, etc.
|
|
# "/dev/dri:/dev/dri",
|
|
|
|
# AMD GPU
|
|
# "/dev/kfd:/dev/kfd",
|
|
|
|
# uncomment below as necessary.
|
|
# zwave usb serial device
|
|
|
|
# "/dev/ttyACM0:/dev/ttyACM0",
|
|
|
|
# coral PCI devices
|
|
# "/dev/apex_0:/dev/apex_0",
|
|
# "/dev/apex_1:/dev/apex_1",
|
|
]
|
|
|
|
container_name: scrypted
|
|
restart: unless-stopped
|
|
network_mode: host
|
|
|
|
# logging is noisy and will unnecessarily wear on flash storage.
|
|
# scrypted has per device in memory logging that is preferred.
|
|
# enable the log file if enhanced debugging is necessary.
|
|
logging:
|
|
driver: "none"
|
|
# driver: "json-file"
|
|
# options:
|
|
# max-size: "10m"
|
|
# max-file: "10"
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.scope=scrypted"
|
|
|
|
# Use global DNS servers to avoid issues with some local DNS servers.
|
|
# particularly with npm registry, etc.
|
|
dns:
|
|
- ${SCRYPTED_DNS_SERVER_0:-1.1.1.1}
|
|
- ${SCRYPTED_DNS_SERVER_1:-8.8.8.8}
|
|
|
|
# watchtower manages updates for Scrypted.
|
|
watchtower:
|
|
environment:
|
|
- WATCHTOWER_HTTP_API_TOKEN=${WATCHTOWER_HTTP_API_TOKEN:-env_missing_fallback}
|
|
- WATCHTOWER_HTTP_API_UPDATE=true
|
|
- WATCHTOWER_SCOPE=scrypted
|
|
- WATCHTOWER_HTTP_API_PERIODIC_POLLS=${WATCHTOWER_HTTP_API_PERIODIC_POLLS:-true}
|
|
image: nickfedor/watchtower
|
|
container_name: scrypted-watchtower
|
|
restart: unless-stopped
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.scope=scrypted"
|
|
ports:
|
|
# The auto update port 10444 can be configured
|
|
# Must match the port in the auto update url above.
|
|
- 10444:8080
|
|
# check for updates once an hour (interval is in seconds)
|
|
command: --interval 3600 --cleanup --scope scrypted
|
|
|
|
# Use global DNS servers to avoid issues with some local DNS servers.
|
|
# particularly with npm registry, etc.
|
|
dns:
|
|
- ${SCRYPTED_DNS_SERVER_0:-1.1.1.1}
|
|
- ${SCRYPTED_DNS_SERVER_1:-8.8.8.8}
|
|
# LXC usage only
|
|
# lxc profiles: ["disabled"]
|