snackpot.yml templates/* - add navidrome and bonob containers

This commit is contained in:
Nick Stokoe
2024-01-03 13:29:51 +00:00
parent b40cb39327
commit 2669b6f466
4 changed files with 60 additions and 0 deletions

View File

@@ -9,6 +9,7 @@
nextcloud_db_user: nextcloud nextcloud_db_user: nextcloud
nextcloud_db: nextcloud nextcloud_db: nextcloud
jellyfin_hostname: jf.noodlefactory.co.uk jellyfin_hostname: jf.noodlefactory.co.uk
navidrome_hostname: nd.noodlefactory.co.uk
letsencrypt_email: webmaster@noodlefactory.co.uk letsencrypt_email: webmaster@noodlefactory.co.uk
docker_compose_base_dir: /opt/docker-compose docker_compose_base_dir: /opt/docker-compose
docker_compose_cmd: docker-compose docker_compose_cmd: docker-compose

View File

@@ -17,6 +17,8 @@ volumes:
minidlna_state: minidlna_state:
minidlna_data: minidlna_data:
mopidy_data: mopidy_data:
navidrome_cache:
navidrome_data:
borgmatic-cache: borgmatic-cache:
networks: networks:
@@ -132,6 +134,45 @@ services:
env_file: env_file:
- letsencrypt-companion.env - letsencrypt-companion.env
navidrome:
build: ./navidrome
ports:
- "4533:4533"
volumes:
- navidrome_data:/data
- navidrome_cache:/cache
- minidlna_data:/music
networks:
proxy-tier:
default:
group_add:
# audio group ID (gid) on host system
- "29"
devices:
- "/dev/snd:/dev/snd"
depends_on:
- letsencrypt-companion
env_file:
- navidrome.env
bonob:
image: simojenki/bonob:latest
ports:
- "4534:4534"
networks:
lan: # Static ip for the container on the macvlan net
ipv4_address: 192.168.0.244
restart: unless-stopped
environment:
BNB_PORT: 4534
# ip address of your machine running bonob
BNB_URL: http://192.168.0.244:4534
BNB_SONOS_AUTO_REGISTER: "true"
BNB_SONOS_DEVICE_DISCOVERY: "true"
BNB_SUBSONIC_URL: http://navidrome:4533
depends_on:
- navidrome
jellyfin: jellyfin:
image: jellyfin/jellyfin:latest image: jellyfin/jellyfin:latest
restart: always restart: always
@@ -159,6 +200,7 @@ services:
lan: # Static ip for the container on the macvlan net lan: # Static ip for the container on the macvlan net
ipv4_address: 192.168.0.242 ipv4_address: 192.168.0.242
environment: environment:
# UID/GID are assumed to both be 2000 in other containers, to allow access
- UPID=2000 - UPID=2000
- UGID=2000 - UGID=2000
- MINIDLNA_INOTIFY=yes - MINIDLNA_INOTIFY=yes
@@ -202,11 +244,13 @@ services:
image: alpine:latest # a small dumy image image: alpine:latest # a small dumy image
command: sh -c "sleep infinity" command: sh -c "sleep infinity"
depends_on: depends_on:
- bonob
- nextcloud - nextcloud
- nextcloud_cron - nextcloud_cron
- web - web
- jellyfin - jellyfin
- minidlna - minidlna
- navidrome
- upmpdcli - upmpdcli
borgmatic: borgmatic:
@@ -228,6 +272,7 @@ services:
- jellyfin_config:/mnt/source/jellyfin_config:ro - jellyfin_config:/mnt/source/jellyfin_config:ro
- minidlna_state:/mnt/source/minidlna_state:ro - minidlna_state:/mnt/source/minidlna_state:ro
- minidlna_data:/mnt/source/minidlna_data:ro - minidlna_data:/mnt/source/minidlna_data:ro
- navidrome_data:/mnt/source/navidrome_data:ro
# System volumes # System volumes
- /etc/timezone:/etc/timezone:ro # timezone - /etc/timezone:/etc/timezone:ro # timezone
- /etc/localtime:/etc/localtime:ro # localtime - /etc/localtime:/etc/localtime:ro # localtime

View File

@@ -0,0 +1,9 @@
ND_SCANSCHEDULE=1h
ND_LOGLEVEL=info
ND_CACHEFOLDER="/cache"
ND_JUKEBOX_ENABLED="true"
ND_BASEURL="https://{{ navidrome_hostname }}"
VIRTUAL_HOST="{{ navidrome_hostname }}"
VIRTUAL_PORT=4533
LETSENCRYPT_HOST="{{ navidrome_hostname }}"
LETSENCRYPT_EMAIL="{{ letsencrypt_email }}"

View File

@@ -0,0 +1,5 @@
FROM deluan/navidrome:0.50.2
RUN apk add --no-cache mpv
# Ensure that navidrome has access to these directories
RUN mkdir -p /data /cache && chown -R 1000:1000 /data /cache