scrypted/templates/docker-compose.yml.j2
changeset 235 f88bb54f63bd
equal deleted inserted replaced
234:f46b0f7e758c 235:f88bb54f63bd
       
     1 # The Scrypted docker-compose.yml file typically resides at:
       
     2 # ~/.scrypted/docker-compose.yml
       
     3 
       
     4 
       
     5 # Scrypted NVR Storage (Optional Network Volume: Part 1 of 3)
       
     6 # Example volumes SMB (CIFS) and NFS.
       
     7 # Uncomment only one.
       
     8 # volumes:
       
     9 #     nvr:
       
    10 #         driver_opts:
       
    11 #             type: cifs
       
    12 #             o: username=[username],password=[password],vers=3.0,file_mode=0777,dir_mode=0777
       
    13 #             device: //[ip-address]/[path-to-directory]
       
    14 #     nvr:
       
    15 #         driver_opts:
       
    16 #             type: "nfs"
       
    17 #             o: "addr=[ip-address],nolock,soft,rw"
       
    18 #             device: ":[path-to-directory]"
       
    19 
       
    20 services:
       
    21     scrypted:
       
    22         environment:
       
    23             # Scrypted NVR Storage (Part 2 of 3)
       
    24 
       
    25             # Uncomment the next line to configure the NVR plugin to store recordings
       
    26             # use the /nvr directory within the container. This can also be configured
       
    27             # within the plugin manually.
       
    28             # The drive or network share will ALSO need to be configured in the volumes
       
    29             # section below.
       
    30             # - SCRYPTED_NVR_VOLUME=/nvr
       
    31 
       
    32             - SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION=Bearer {{scrypted_auth_key}}
       
    33             - SCRYPTED_WEBHOOK_UPDATE=http://localhost:{{scrypted_auto_update_port}}/v1/update
       
    34 
       
    35             # Avahi can be used for network discovery by passing in the host daemon
       
    36             # or running the daemon inside the container. Choose one or the other.
       
    37             # Uncomment next line to run avahi-daemon inside the container.
       
    38             # See volumes and security_opt section below to use the host daemon.
       
    39             # - SCRYPTED_DOCKER_AVAHI=true
       
    40 
       
    41             # NVIDIA (Part 1 of 4)
       
    42             # - NVIDIA_VISIBLE_DEVICES=all
       
    43             # - NVIDIA_DRIVER_CAPABILITIES=all
       
    44 
       
    45         # NVIDIA (Part 2 of 4)
       
    46         # runtime: nvidia
       
    47 
       
    48         # NVIDIA (Part 3 of 4) - Use NVIDIA image, and remove subsequent default image.
       
    49         # image: ghcr.io/koush/scrypted:nvidia
       
    50         image: ghcr.io/koush/scrypted
       
    51 
       
    52         volumes:
       
    53             # NVIDIA (Part 4 of 4)
       
    54             # - /etc/OpenCL/vendors/nvidia.icd:/etc/OpenCL/vendors/nvidia.icd
       
    55 
       
    56             # Scrypted NVR Storage (Part 3 of 3)
       
    57 
       
    58             # Modify to add the additional volume for Scrypted NVR.
       
    59             # The following example would mount the /mnt/sda/video path on the host
       
    60             # to the /nvr path inside the docker container.
       
    61             # - /mnt/media/video:/nvr
       
    62 
       
    63             # Or use a network mount from one of the CIFS/NFS examples at the top of this file.
       
    64             # - type: volume
       
    65             #   source: nvr
       
    66             #   target: /nvr
       
    67             #   volume:
       
    68             #     nocopy: true
       
    69 
       
    70             # Uncomment the following lines to use Avahi daemon from the host.
       
    71             # Ensure Avahi is running on the host machine:
       
    72             # It can be installed with: sudo apt-get install avahi-daemon
       
    73             # This is not compatible with running avahi inside the container (see above).
       
    74             # Also, uncomment the lines under security_opt
       
    75             - /var/run/dbus:/var/run/dbus
       
    76             - /var/run/avahi-daemon/socket:/var/run/avahi-daemon/socket
       
    77 
       
    78             # Default volume for the Scrypted database. Typically should not be changed.
       
    79             - {{scrypted_dir}}/volume:/server/volume
       
    80         # Uncomment the following lines to use Avahi daemon from the host
       
    81         # Without this, AppArmor will block the container's attempt to talk to Avahi via dbus
       
    82         security_opt:
       
    83             - apparmor:unconfined
       
    84         devices: [
       
    85             # uncomment the common systems devices to pass
       
    86             # them through to docker.
       
    87 
       
    88             # all usb devices, such as coral tpu
       
    89             # "/dev/bus/usb:/dev/bus/usb",
       
    90 
       
    91             # hardware accelerated video decoding, opencl, etc.
       
    92             # "/dev/dri:/dev/dri",
       
    93 
       
    94             # uncomment below as necessary.
       
    95             # zwave usb serial device
       
    96 
       
    97             # "/dev/ttyACM0:/dev/ttyACM0",
       
    98 
       
    99             # coral PCI devices
       
   100             # "/dev/apex_0:/dev/apex_0",
       
   101             # "/dev/apex_1:/dev/apex_1",
       
   102         ]
       
   103 
       
   104         container_name: scrypted
       
   105         restart: unless-stopped
       
   106         network_mode: host
       
   107 
       
   108         # logging is noisy and will unnecessarily wear on flash storage.
       
   109         # scrypted has per device in memory logging that is preferred.
       
   110         # enable the log file if enhanced debugging is necessary.
       
   111         logging:
       
   112             driver: "none"
       
   113             # driver: "json-file"
       
   114             # options:
       
   115             #     max-size: "10m"
       
   116             #     max-file: "10"
       
   117         labels:
       
   118             - "com.centurylinklabs.watchtower.scope=scrypted"
       
   119 
       
   120     # watchtower manages updates for Scrypted.
       
   121     watchtower:
       
   122         environment:
       
   123             - WATCHTOWER_HTTP_API_TOKEN={{scrypted_auth_key}}
       
   124             - WATCHTOWER_HTTP_API_UPDATE=true
       
   125             - WATCHTOWER_SCOPE=scrypted
       
   126             # remove the following line to never allow docker to auto update.
       
   127             # this is not recommended.
       
   128             - WATCHTOWER_HTTP_API_PERIODIC_POLLS=true
       
   129         image: containrrr/watchtower
       
   130         container_name: scrypted-watchtower
       
   131         restart: unless-stopped
       
   132         volumes:
       
   133             - /var/run/docker.sock:/var/run/docker.sock
       
   134         labels:
       
   135             - "com.centurylinklabs.watchtower.scope=scrypted"
       
   136         ports:
       
   137             # The auto update port 10444 can be configured
       
   138             # Must match the port in the auto update url above.
       
   139             - {{scrypted_auto_update_port}}:8080
       
   140         # check for updates once an hour (interval is in seconds)
       
   141         command: --interval 3600 --cleanup --scope scrypted