From edcbf679a5fea1078e3a1313b87d32e591f812c7 Mon Sep 17 00:00:00 2001 From: Giorgio Ravera Date: Tue, 16 Jun 2026 14:49:57 +0200 Subject: [PATCH] Added homeassistant networkd & moved from readarr to lazylibrarian --- download/lazylibrarian.yaml | 44 +++++++++++++++++++++++++++++++ download/readarr.yaml | 44 ------------------------------- homeassistant/create_net.sh | 23 ++++++++++++++++ homeassistant/docker-compose.yaml | 11 +++++--- 4 files changed, 74 insertions(+), 48 deletions(-) create mode 100644 download/lazylibrarian.yaml delete mode 100644 download/readarr.yaml create mode 100755 homeassistant/create_net.sh diff --git a/download/lazylibrarian.yaml b/download/lazylibrarian.yaml new file mode 100644 index 0000000..cea1a6b --- /dev/null +++ b/download/lazylibrarian.yaml @@ -0,0 +1,44 @@ +services: + lazylibrarian: + container_name: lazylibrarian + image: lscr.io/linuxserver/lazylibrarian:latest + restart: unless-stopped + #ports: + # - 5299:5299 + environment: + - TZ=${DOCKER_TZ} + - PUID=1000 + - PGID=1000 + #- UMASK_SET=011 #optional + volumes: + - ${DOCKER_CFG_DIR}/download/lazylibrarian:/config + - /mnt/download:/downloads + #- /mnt/nas/Libri:/books + networks: + download: + ipv4_address: 172.19.0.23 + labels: + - "traefik.enable=true" + # Router: HTTP + - "traefik.http.routers.lazylibrarian.entrypoints=http" + - "traefik.http.routers.lazylibrarian.rule=Host(`download.giorgioravera.it`) && + (PathPrefix(`/books`) || PathPrefix(`/lazylibrarian`))" + - "traefik.http.routers.lazylibrarian.middlewares=lazylibrarian-stripprefix" + - "traefik.http.routers.lazylibrarian.middlewares=lazylibrarian-https-redirect" + # Router: HTTPS + - "traefik.http.routers.lazylibrarian-secure.entrypoints=https" + - "traefik.http.routers.lazylibrarian-secure.rule=Host(`download.giorgioravera.it`) && + (PathPrefix(`/books`) || PathPrefix(`/lazylibrarian`))" + - "traefik.http.routers.lazylibrarian-secure.tls=true" + - "traefik.http.routers.lazylibrarian-secure.service=lazylibrarian" + - "traefik.http.routers.lazylibrarian-secure.middlewares=lazylibrarian-stripprefix" + # Middleware: Redirect http to https + - "traefik.http.middlewares.lazylibrarian-https-redirect.redirectscheme.scheme=https" + # Middleware: Prefix + - "traefik.http.middlewares.lazylibrarian-stripprefix.stripprefix.prefixes=/books" + # Service: Loadbalancer + - "traefik.http.services.lazylibrarian.loadbalancer.server.port=5299" + +networks: + download: + external: true diff --git a/download/readarr.yaml b/download/readarr.yaml deleted file mode 100644 index 8e1b214..0000000 --- a/download/readarr.yaml +++ /dev/null @@ -1,44 +0,0 @@ -services: - readarr: - container_name: readarr - image: lscr.io/linuxserver/readarr:develop - restart: unless-stopped - #ports: - # - 8787:8787 - environment: - - TZ=${DOCKER_TZ} - - PUID=1000 - - PGID=1000 - #- UMASK_SET=011 #optional - volumes: - - ${DOCKER_CFG_DIR}/download/readarr:/config - - /mnt/download:/downloads - #- /mnt/nas/Libri:/books - networks: - download: - ipv4_address: 172.19.0.23 - labels: - - "traefik.enable=true" - # Router: HTTP - - "traefik.http.routers.readarr.entrypoints=http" - - "traefik.http.routers.readarr.rule=Host(`download.giorgioravera.it`) && - (PathPrefix(`/books`) || PathPrefix(`/readarr`))" - - "traefik.http.routers.readarr.middlewares=readarr-stripprefix" - - "traefik.http.routers.readarr.middlewares=readarr-https-redirect" - # Router: HTTPS - - "traefik.http.routers.readarr-secure.entrypoints=https" - - "traefik.http.routers.readarr-secure.rule=Host(`download.giorgioravera.it`) && - (PathPrefix(`/books`) || PathPrefix(`/readarr`))" - - "traefik.http.routers.readarr-secure.tls=true" - - "traefik.http.routers.readarr-secure.service=readarr" - - "traefik.http.routers.readarr-secure.middlewares=readarr-stripprefix" - # Middleware: Redirect http to https - - "traefik.http.middlewares.readarr-https-redirect.redirectscheme.scheme=https" - # Middleware: Prefix - - "traefik.http.middlewares.readarr-stripprefix.stripprefix.prefixes=/books" - # Service: Loadbalancer - - "traefik.http.services.readarr.loadbalancer.server.port=8787" - -networks: - download: - external: true diff --git a/homeassistant/create_net.sh b/homeassistant/create_net.sh new file mode 100755 index 0000000..df7a3ef --- /dev/null +++ b/homeassistant/create_net.sh @@ -0,0 +1,23 @@ +#!/bin/bash +set -euo pipefail + +NET_NAME="homeassistant" +IPV4_SUBNET="172.20.0.0/24" +IPV6_SUBNET="fd19:172:20:0::/64" + +# Check if the network already exists +if docker network inspect "$NET_NAME" >/dev/null 2>&1; then + echo "Network '$NET_NAME' already exists. Nothing to do." + exit 0 +fi + +echo "Creating Docker network '$NET_NAME'..." + +docker network create \ + --driver bridge \ + --ipv6 \ + --subnet "$IPV4_SUBNET" \ + --subnet "$IPV6_SUBNET" \ + "$NET_NAME" + +echo "Network '$NET_NAME' created successfully." diff --git a/homeassistant/docker-compose.yaml b/homeassistant/docker-compose.yaml index 92499fa..0930cfa 100644 --- a/homeassistant/docker-compose.yaml +++ b/homeassistant/docker-compose.yaml @@ -15,6 +15,9 @@ services: - ${DOCKER_CFG_DIR}/homeassistant:/config - /var/run/docker.sock:/var/run/docker.sock network_mode: host + cap_add: + - NET_ADMIN + - NET_RAW labels: - "traefik.enable=true" # Router: HTTPS @@ -52,7 +55,7 @@ services: devices: - /dev/ttyACM0:/dev/ttyACM0 networks: - - proxy + - homeassistant labels: - "traefik.enable=true" # Router: HTTP @@ -92,7 +95,7 @@ services: - /etc/ssl/giorgioravera.it/privkey.pem:/certs/privkey.pem - /etc/ssl/giorgioravera.it/chain.pem:/certs/chain.pem networks: - - proxy + - homeassistant labels: - "traefik.enable=false" @@ -106,10 +109,10 @@ services: # - TZ=${DOCKER_TZ} # network_mode: host # networks: -# - proxy +# - homeassistant # labels: # - "traefik.enable=false" networks: - proxy: + homeassistant: external: true -- 2.47.3