From 1a3749112d2e27a39c5d72096e64e7c7cf98b4a2 Mon Sep 17 00:00:00 2001 From: traveler Date: Sat, 10 Jan 2026 21:25:19 -0600 Subject: [PATCH] Folder reorg if prep for using git runner --- Docker/Caddy/Another/Dockerfile.2 | 19 -- Docker/Caddy/Another/Dockerfile.old | 20 -- Docker/Caddy/DockerFile | 28 --- Docker/Dockerfile | 10 - Docker/caddy.yaml | 39 ---- Template.yaml | 83 -------- Caddyfile.old => archive/Caddyfile.old | 0 WatchState.yaml => archive/WatchState.yaml | 0 arr.yaml => archive/arr.yaml | 0 cadvisor.yaml => archive/cadvisor.yaml | 0 cal.yaml => archive/cal.yaml | 0 crowdsec.yaml => archive/crowdsec.yaml | 0 komodo.env => archive/komodo.env | 0 komodo.yaml => archive/komodo.yaml | 0 nessus.yaml => archive/nessus.yaml | 0 nxterm.yaml => archive/nxterm.yaml | 0 peekaping.yaml => archive/peekaping.yaml | 0 plex.yaml => archive/plex.yaml | 0 runner.yaml => archive/runner.yaml | 0 sshwifty.yaml => archive/sshwifty.yaml | 0 .../wordpress-classifieds.yaml | 0 .../docker2/Compose-vpn.yaml | 0 compose/docker3/librenms/.env | 8 + compose/docker3/librenms/compose.yml | 188 ++++++++++++++++++ compose/docker3/librenms/librenms.env | 16 ++ compose/docker3/librenms/monitor.yaml | 24 +++ compose/docker3/librenms/msmtpd.env | 10 + .env => compose/docker4/.env | 0 compose/docker4/graylog.yaml | 153 ++++++++++++++ compose/docker5/JellyFin.yaml | 42 ++++ compose/docker5/JellyFinx.yaml | 45 +++++ compose/nas/.env | 23 +++ compose/nas/calibre.yaml | 40 ++++ compose/nas/cloud.yaml | 52 +++++ compose/nas/immich.yaml | 91 +++++++++ compose/nas/monitor.yaml | 49 +++++ compose/nas/namer.yaml | 24 +++ compose/nas/stash.yaml | 39 ++++ compose/nas/windows7.yaml | 27 +++ library copy.yaml | 44 ---- Calibre-web.yaml => swarm/Calibre-web.yaml | 0 JellySeer.yaml => swarm/JellySeer.yaml | 0 JellyStat.yaml => swarm/JellyStat.yaml | 0 SQL-mgmt.yaml => swarm/SQL-mgmt.yaml | 0 authelia.yaml => swarm/authelia.yaml | 0 authentik.yaml => swarm/authentik.yaml | 0 bazarr.yaml => swarm/bazarr.yaml | 0 beets.yaml => swarm/beets.yaml | 0 beszel.yaml => swarm/beszel.yaml | 0 .../beszel_agents.yaml | 0 cloudcmd.yaml => swarm/cloudcmd.yaml | 0 comixed.yaml => swarm/comixed.yaml | 0 commander.yaml => swarm/commander.yaml | 0 configarr.yaml => swarm/configarr.yaml | 0 database.yaml => swarm/database.yaml | 0 diun.yaml => swarm/diun.yaml | 0 dockpeek.yaml => swarm/dockpeek.yaml | 0 dozzle.yaml => swarm/dozzle.yaml | 0 dumbterm.yaml => swarm/dumbterm.yaml | 0 filebrowser.yaml => swarm/filebrowser.yaml | 0 firefox.yaml => swarm/firefox.yaml | 0 forgejo.yaml => swarm/forgejo.yaml | 0 freshrss.yaml => swarm/freshrss.yaml | 0 glance.yaml => swarm/glance.yaml | 0 homepage.yaml => swarm/homepage.yaml | 0 hydra.yaml => swarm/hydra.yaml | 0 joplin.yaml => swarm/joplin.yaml | 0 journiv.yaml => swarm/journiv.yaml | 0 kavita.yaml => swarm/kavita.yaml | 0 kopia.yaml => swarm/kopia.yaml | 3 +- kuma.yaml => swarm/kuma.yaml | 0 library.yaml => swarm/library.yaml | 0 linkding.yaml => swarm/linkding.yaml | 0 lldap.yaml => swarm/lldap.yaml | 0 logging.yaml => swarm/logging.yaml | 0 mealie.yaml => swarm/mealie.yaml | 0 ntfy.yaml => swarm/ntfy.yaml | 0 nzbget.yaml => swarm/nzbget.yaml | 0 phpipam.yaml => swarm/phpipam.yaml | 0 pinchflat.yaml => swarm/pinchflat.yaml | 0 .../portainer-agent-stack.yml | 0 profilarr.yaml => swarm/profilarr.yaml | 0 radarr.yaml => swarm/radarr.yaml | 0 readarr.yaml => swarm/readarr.yaml | 0 recyclarr.yaml => swarm/recyclarr.yaml | 0 roundcube.yaml => swarm/roundcube.yaml | 0 sabnzbd.yaml => swarm/sabnzbd.yaml | 0 scanopy.yaml => swarm/scanopy.yaml | 0 sonarr.yaml => swarm/sonarr.yaml | 0 Caddyfile => swarm/stack/caddy/Caddyfile | 0 caddy.sh => swarm/stack/caddy/caddy.sh | 0 caddy.yaml => swarm/stack/caddy/caddy.yaml | 0 termix.yaml => swarm/termix.yaml | 0 tmm.yaml => swarm/tmm.yaml | 0 tunarr.yaml => swarm/tunarr.yaml | 0 vaultwarden.yaml => swarm/vaultwarden.yaml | 0 vikunja.yaml => swarm/vikunja.yaml | 0 vscode.yaml => swarm/vscode.yaml | 0 wallo.yaml => swarm/wallo.yaml | 0 web.yaml => swarm/web.yaml | 0 webtop.yaml => swarm/webtop.yaml | 0 green.yaml => swarm/whisparr.yaml | 0 102 files changed, 833 insertions(+), 244 deletions(-) delete mode 100644 Docker/Caddy/Another/Dockerfile.2 delete mode 100644 Docker/Caddy/Another/Dockerfile.old delete mode 100644 Docker/Caddy/DockerFile delete mode 100644 Docker/Dockerfile delete mode 100755 Docker/caddy.yaml delete mode 100644 Template.yaml rename Caddyfile.old => archive/Caddyfile.old (100%) rename WatchState.yaml => archive/WatchState.yaml (100%) rename arr.yaml => archive/arr.yaml (100%) rename cadvisor.yaml => archive/cadvisor.yaml (100%) rename cal.yaml => archive/cal.yaml (100%) rename crowdsec.yaml => archive/crowdsec.yaml (100%) rename komodo.env => archive/komodo.env (100%) rename komodo.yaml => archive/komodo.yaml (100%) rename nessus.yaml => archive/nessus.yaml (100%) rename nxterm.yaml => archive/nxterm.yaml (100%) rename peekaping.yaml => archive/peekaping.yaml (100%) rename plex.yaml => archive/plex.yaml (100%) rename runner.yaml => archive/runner.yaml (100%) rename sshwifty.yaml => archive/sshwifty.yaml (100%) rename wordpress-classifieds.yaml => archive/wordpress-classifieds.yaml (100%) rename Compose-vpn.yaml => compose/docker2/Compose-vpn.yaml (100%) create mode 100644 compose/docker3/librenms/.env create mode 100644 compose/docker3/librenms/compose.yml create mode 100644 compose/docker3/librenms/librenms.env create mode 100644 compose/docker3/librenms/monitor.yaml create mode 100644 compose/docker3/librenms/msmtpd.env rename .env => compose/docker4/.env (100%) create mode 100755 compose/docker4/graylog.yaml create mode 100755 compose/docker5/JellyFin.yaml create mode 100644 compose/docker5/JellyFinx.yaml create mode 100755 compose/nas/.env create mode 100644 compose/nas/calibre.yaml create mode 100644 compose/nas/cloud.yaml create mode 100644 compose/nas/immich.yaml create mode 100644 compose/nas/monitor.yaml create mode 100644 compose/nas/namer.yaml create mode 100644 compose/nas/stash.yaml create mode 100644 compose/nas/windows7.yaml delete mode 100755 library copy.yaml rename Calibre-web.yaml => swarm/Calibre-web.yaml (100%) rename JellySeer.yaml => swarm/JellySeer.yaml (100%) rename JellyStat.yaml => swarm/JellyStat.yaml (100%) rename SQL-mgmt.yaml => swarm/SQL-mgmt.yaml (100%) rename authelia.yaml => swarm/authelia.yaml (100%) rename authentik.yaml => swarm/authentik.yaml (100%) rename bazarr.yaml => swarm/bazarr.yaml (100%) rename beets.yaml => swarm/beets.yaml (100%) rename beszel.yaml => swarm/beszel.yaml (100%) rename beszel_agents.yaml => swarm/beszel_agents.yaml (100%) rename cloudcmd.yaml => swarm/cloudcmd.yaml (100%) rename comixed.yaml => swarm/comixed.yaml (100%) rename commander.yaml => swarm/commander.yaml (100%) rename configarr.yaml => swarm/configarr.yaml (100%) rename database.yaml => swarm/database.yaml (100%) rename diun.yaml => swarm/diun.yaml (100%) rename dockpeek.yaml => swarm/dockpeek.yaml (100%) rename dozzle.yaml => swarm/dozzle.yaml (100%) rename dumbterm.yaml => swarm/dumbterm.yaml (100%) rename filebrowser.yaml => swarm/filebrowser.yaml (100%) rename firefox.yaml => swarm/firefox.yaml (100%) rename forgejo.yaml => swarm/forgejo.yaml (100%) rename freshrss.yaml => swarm/freshrss.yaml (100%) rename glance.yaml => swarm/glance.yaml (100%) rename homepage.yaml => swarm/homepage.yaml (100%) rename hydra.yaml => swarm/hydra.yaml (100%) rename joplin.yaml => swarm/joplin.yaml (100%) rename journiv.yaml => swarm/journiv.yaml (100%) rename kavita.yaml => swarm/kavita.yaml (100%) rename kopia.yaml => swarm/kopia.yaml (95%) rename kuma.yaml => swarm/kuma.yaml (100%) rename library.yaml => swarm/library.yaml (100%) rename linkding.yaml => swarm/linkding.yaml (100%) rename lldap.yaml => swarm/lldap.yaml (100%) rename logging.yaml => swarm/logging.yaml (100%) rename mealie.yaml => swarm/mealie.yaml (100%) rename ntfy.yaml => swarm/ntfy.yaml (100%) rename nzbget.yaml => swarm/nzbget.yaml (100%) rename phpipam.yaml => swarm/phpipam.yaml (100%) rename pinchflat.yaml => swarm/pinchflat.yaml (100%) rename portainer-agent-stack.yml => swarm/portainer-agent-stack.yml (100%) rename profilarr.yaml => swarm/profilarr.yaml (100%) rename radarr.yaml => swarm/radarr.yaml (100%) rename readarr.yaml => swarm/readarr.yaml (100%) rename recyclarr.yaml => swarm/recyclarr.yaml (100%) rename roundcube.yaml => swarm/roundcube.yaml (100%) rename sabnzbd.yaml => swarm/sabnzbd.yaml (100%) rename scanopy.yaml => swarm/scanopy.yaml (100%) rename sonarr.yaml => swarm/sonarr.yaml (100%) rename Caddyfile => swarm/stack/caddy/Caddyfile (100%) rename caddy.sh => swarm/stack/caddy/caddy.sh (100%) rename caddy.yaml => swarm/stack/caddy/caddy.yaml (100%) rename termix.yaml => swarm/termix.yaml (100%) rename tmm.yaml => swarm/tmm.yaml (100%) rename tunarr.yaml => swarm/tunarr.yaml (100%) rename vaultwarden.yaml => swarm/vaultwarden.yaml (100%) rename vikunja.yaml => swarm/vikunja.yaml (100%) rename vscode.yaml => swarm/vscode.yaml (100%) rename wallo.yaml => swarm/wallo.yaml (100%) rename web.yaml => swarm/web.yaml (100%) rename webtop.yaml => swarm/webtop.yaml (100%) rename green.yaml => swarm/whisparr.yaml (100%) diff --git a/Docker/Caddy/Another/Dockerfile.2 b/Docker/Caddy/Another/Dockerfile.2 deleted file mode 100644 index e2a9ca1..0000000 --- a/Docker/Caddy/Another/Dockerfile.2 +++ /dev/null @@ -1,19 +0,0 @@ -# Stage 1: Build Caddy with required plugins -FROM golang:latest AS builder - -# Enable Go Modules and set Go proxy to avoid direct GitHub calls -ENV GO111MODULE=on -ENV GOPROXY=https://proxy.golang.org,direct - -# Install xcaddy -RUN go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest - -# Build Caddy with required plugins -RUN xcaddy build \ - --with github.com/lucaslorentz/caddy-docker-proxy/v2 \ - --with github.com/crowdsecurity/caddy-bouncer/v2 -# Stage 2: Create final lightweight image -FROM caddy:latest - -# Copy built Caddy binary from builder stage -COPY --from=builder /go/bin/caddy /usr/bin/caddy diff --git a/Docker/Caddy/Another/Dockerfile.old b/Docker/Caddy/Another/Dockerfile.old deleted file mode 100644 index 35fd7ee..0000000 --- a/Docker/Caddy/Another/Dockerfile.old +++ /dev/null @@ -1,20 +0,0 @@ -FROM golang:latest AS builder - -# Enable Go Modules and force Go proxy usage -ENV GO111MODULE=on -ENV GOPROXY=https://proxy.golang.org,direct - -# Install xcaddy -RUN go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest - -# Build Caddy with required plugins -RUN xcaddy build \ - --with github.com/lucaslorentz/caddy-docker-proxy/v2 \ - --with github.com/crowdsecurity/caddy-bouncer - -# Create a lightweight final image -FROM caddy:latest - -# Copy built Caddy binary from the builder stage -COPY --from=builder /go/bin/caddy /usr/bin/caddy - diff --git a/Docker/Caddy/DockerFile b/Docker/Caddy/DockerFile deleted file mode 100644 index 4f62d01..0000000 --- a/Docker/Caddy/DockerFile +++ /dev/null @@ -1,28 +0,0 @@ -# FROM golang:latest AS builder - -# # Install xcaddy -# RUN go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest - -# # Build Caddy with necessary plugins -# RUN xcaddy build \ -# --with github.com/lucaslorentz/caddy-docker-proxy/v2 \ -# --with github.com/crowdsecurity/caddy-bouncer - -# # Create a lightweight final image -# FROM caddy:latest - -# # Copy built Caddy binary from the builder stage -# COPY --from=builder /go/bin/caddy /usr/bin/caddy - - -FROM lucaslorentz/caddy-docker-proxy:ci-alpine AS base - -FROM caddy:builder AS builder -RUN xcaddy build \ - --with github.com/hslatman/caddy-crowdsec-bouncer \ - --with github.com/mholt/caddy-events-exec - # --with github.com/lucaslorentz/caddy-docker-proxy/v2 - -FROM base -COPY --from=builder /usr/bin/caddy /usr/bin/caddy - diff --git a/Docker/Dockerfile b/Docker/Dockerfile deleted file mode 100644 index 05e719a..0000000 --- a/Docker/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM lucaslorentz/caddy-docker-proxy:ci-alpine AS base -FROM caddy:builder AS builder - -RUN xcaddy build \ - --with github.com/hslatman/caddy-crowdsec-bouncer \ - --with github.com/mholt/caddy-events-exec - -FROM base -COPY --from=builder /usr/bin/caddy /usr/bin/caddy - diff --git a/Docker/caddy.yaml b/Docker/caddy.yaml deleted file mode 100755 index 97df43f..0000000 --- a/Docker/caddy.yaml +++ /dev/null @@ -1,39 +0,0 @@ -configs: - caddy-basic-content: - file: ./Caddyfile - labels: - caddy: - -services: - caddy: - #image: lucaslorentz/caddy-docker-proxy:ci-alpine - #image: ghcr.io/serfriz/caddy-crowdsec:latest - #image: caddy-crowdsec - image: git.netgrimoire.com/traveler/caddy-bounce - ports: - - 80:80 - - 443:443 - environment: - - CADDY_INGRESS_NETWORKS=netgrimoire - networks: - - netgrimoire - - vpn - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - /export/Docker/caddy/Caddyfile:/etc/caddy/Caddyfile - - /export/Docker/caddy:/data - - /export/Docker/caddy/logs:/var/log/caddy # Mount logs for CrowdSec - deploy: - placement: - constraints: - - node.hostname == nas - - # restart: unless-stopped - -networks: - netgrimoire: - external: true - vpn: - external: true - - diff --git a/Template.yaml b/Template.yaml deleted file mode 100644 index f94415b..0000000 --- a/Template.yaml +++ /dev/null @@ -1,83 +0,0 @@ - -version: "3.8" - -services: - {{ service_name }}: - image: {{ image }} - container_name: {{ container_name | default(service_name) }} - restart: unless-stopped - environment: - - PUID={{ puid | default("1001") }} - - PGID={{ pgid | default("998") }} - - TZ={{ timezone | default("America/Chicago") }} - user: "{{ puid | default("1001") }}:{{ pgid | default("998") }}" - volumes: - {% for volume in volumes %} - - {{ volume }} - {% endfor %} - networks: - - {{ network | default("netgrimoire") }} - labels: - - "homepage.group={{ homepage_group }}" - - "homepage.name={{ homepage_name | default(service_name) }}" - - "homepage.icon={{ homepage_icon | default(service_name) }}" - - "homepage.href=https://{{ homepage_href }}" - - "homepage.description={{ homepage_description }}" - - "diun.enable=true" - - "diun.watch_repo=true" - - "diun.max_tags={{ diun_max_tags | default(5) }}" - - "caddy = {{ caddy_address }}" - - "caddy.reverse_proxy={{ caddy_reverse_proxy | default('{{upstreams 80}}') }}" - - "caddy.import={{ caddy_import | default('authentik') }}" - - kuma.jellyseer.http.name="JellySeer" - - kuma.jellyseer.http.url=http://jellyseer:5055 - - - -networks: - {{ network | default("netgrimoire") }}: - external: true - - - - - - - user: "1001:998" - networks: - - netgrimoire - - deploy: - restart_policy: - condition: any - delay: 10s - max_attempts: 5 - window: 60s - labels: - homepage.group: "Application" - homepage.name: "Vikunja" - homepage.icon: "vikunja.png" - homepage.href: "https://task.netgrimoire.com" - homepage.description: "Task Manager" - kuma.vik.http.name: "Vikunja" - kuma.vik.http.url: "http://vikunja:3456" - caddy: "task.netgrimoire.com" - caddy.import: "authentik" - caddy.reverse_proxy: "{{upstreams 3456}}" - placement: - constraints: - - node.hostname == docker4 - - -networks: - netgrimoire: - external: true - - - TZ=America/Chicago - volumes: - - /data/nfs/Baxter/Docker/firefox:/config:rw - -docker network create --driver overlay --attachable --internal komodo - - - \ No newline at end of file diff --git a/Caddyfile.old b/archive/Caddyfile.old similarity index 100% rename from Caddyfile.old rename to archive/Caddyfile.old diff --git a/WatchState.yaml b/archive/WatchState.yaml similarity index 100% rename from WatchState.yaml rename to archive/WatchState.yaml diff --git a/arr.yaml b/archive/arr.yaml similarity index 100% rename from arr.yaml rename to archive/arr.yaml diff --git a/cadvisor.yaml b/archive/cadvisor.yaml similarity index 100% rename from cadvisor.yaml rename to archive/cadvisor.yaml diff --git a/cal.yaml b/archive/cal.yaml similarity index 100% rename from cal.yaml rename to archive/cal.yaml diff --git a/crowdsec.yaml b/archive/crowdsec.yaml similarity index 100% rename from crowdsec.yaml rename to archive/crowdsec.yaml diff --git a/komodo.env b/archive/komodo.env similarity index 100% rename from komodo.env rename to archive/komodo.env diff --git a/komodo.yaml b/archive/komodo.yaml similarity index 100% rename from komodo.yaml rename to archive/komodo.yaml diff --git a/nessus.yaml b/archive/nessus.yaml similarity index 100% rename from nessus.yaml rename to archive/nessus.yaml diff --git a/nxterm.yaml b/archive/nxterm.yaml similarity index 100% rename from nxterm.yaml rename to archive/nxterm.yaml diff --git a/peekaping.yaml b/archive/peekaping.yaml similarity index 100% rename from peekaping.yaml rename to archive/peekaping.yaml diff --git a/plex.yaml b/archive/plex.yaml similarity index 100% rename from plex.yaml rename to archive/plex.yaml diff --git a/runner.yaml b/archive/runner.yaml similarity index 100% rename from runner.yaml rename to archive/runner.yaml diff --git a/sshwifty.yaml b/archive/sshwifty.yaml similarity index 100% rename from sshwifty.yaml rename to archive/sshwifty.yaml diff --git a/wordpress-classifieds.yaml b/archive/wordpress-classifieds.yaml similarity index 100% rename from wordpress-classifieds.yaml rename to archive/wordpress-classifieds.yaml diff --git a/Compose-vpn.yaml b/compose/docker2/Compose-vpn.yaml similarity index 100% rename from Compose-vpn.yaml rename to compose/docker2/Compose-vpn.yaml diff --git a/compose/docker3/librenms/.env b/compose/docker3/librenms/.env new file mode 100644 index 0000000..d6a2188 --- /dev/null +++ b/compose/docker3/librenms/.env @@ -0,0 +1,8 @@ +TZ=America/Chicago +PUID=1001 +PGID=998 + +MYSQL_DATABASE=librenms +MYSQL_USER=librenms +MYSQL_PASSWORD=libenms + diff --git a/compose/docker3/librenms/compose.yml b/compose/docker3/librenms/compose.yml new file mode 100644 index 0000000..6b4106b --- /dev/null +++ b/compose/docker3/librenms/compose.yml @@ -0,0 +1,188 @@ +name: librenms + +services: + libre_db: + image: mariadb:10 + container_name: librenms_db + command: + - "mysqld" + - "--innodb-file-per-table=1" + - "--lower-case-table-names=0" + - "--character-set-server=utf8mb4" + - "--collation-server=utf8mb4_unicode_ci" + networks: + - netgrimoire + volumes: + #- "./db:/var/lib/mysql" + - libre_dbase:/var/lib/mysql + environment: + - "TZ=${TZ}" + - "MARIADB_RANDOM_ROOT_PASSWORD=yes" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + restart: always + + libre_redis: + image: redis:7.2-alpine + container_name: librenms_redis + environment: + - "TZ=${TZ}" + networks: + - netgrimoire + restart: always + + libre_msmtpd: + image: crazymax/msmtpd:latest + container_name: librenms_msmtpd + env_file: + - "./msmtpd.env" + networks: + - netgrimoire + restart: always + + librenms: + image: librenms/librenms:latest + container_name: librenms + hostname: librenms + cap_add: + - NET_ADMIN + - NET_RAW + ports: + - "8000:8000/tcp" + depends_on: + - libre_db + - libre_redis + - libre_msmtpd + volumes: + # - "./librenms:/data" + - librenms:/data + networks: + - netgrimoire + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=libre_db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + restart: always + + dispatcher: + image: librenms/librenms:latest + container_name: librenms_dispatcher + hostname: librenms-dispatcher + cap_add: + - NET_ADMIN + - NET_RAW + depends_on: + - librenms + - libre_redis + volumes: + # - "./librenms:/data" + - librenms:/data + networks: + - netgrimoire + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=libre_db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "DISPATCHER_NODE_ID=dispatcher1" + - "SIDECAR_DISPATCHER=1" + restart: always + + syslogng: + image: librenms/librenms:latest + container_name: librenms_syslogng + hostname: librenms-syslogng + cap_add: + - NET_ADMIN + - NET_RAW + depends_on: + - librenms + - libre_redis + ports: + - "514:514/tcp" + - "514:514/udp" + volumes: + # - "./librenms:/data" + - librenms:/data + networks: + - netgrimoire + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=libre_db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "SIDECAR_SYSLOGNG=1" + restart: always + + snmptrapd: + image: librenms/librenms:latest + container_name: librenms_snmptrapd + hostname: librenms-snmptrapd + cap_add: + - NET_ADMIN + - NET_RAW + depends_on: + - librenms + - libre_redis + ports: + - "162:162/tcp" + - "162:162/udp" + volumes: + # - "./librenms:/data" + - librenms:/data + networks: + - netgrimoire + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=libre_db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "SIDECAR_SNMPTRAPD=1" + restart: always + +volumes: + + libre_dbase: + driver: local + driver_opts: + type: none + o: bind + device: /DockerVol/librenms/libre_db + + librenms: + driver: local + driver_opts: + type: none + o: bind + device: /DockerVol/librenms/data + +networks: + netgrimoire: + external: true + \ No newline at end of file diff --git a/compose/docker3/librenms/librenms.env b/compose/docker3/librenms/librenms.env new file mode 100644 index 0000000..a1d0492 --- /dev/null +++ b/compose/docker3/librenms/librenms.env @@ -0,0 +1,16 @@ +MEMORY_LIMIT=256M +MAX_INPUT_VARS=1000 +UPLOAD_MAX_SIZE=16M +OPCACHE_MEM_SIZE=128 +REAL_IP_FROM=0.0.0.0/32 +REAL_IP_HEADER=X-Forwarded-For +LOG_IP_VAR=remote_addr + +CACHE_DRIVER=redis +SESSION_DRIVER=redis +REDIS_HOST=redis + +LIBRENMS_SNMP_COMMUNITY=librenmsdocker + +LIBRENMS_WEATHERMAP=false +LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/compose/docker3/librenms/monitor.yaml b/compose/docker3/librenms/monitor.yaml new file mode 100644 index 0000000..19a7110 --- /dev/null +++ b/compose/docker3/librenms/monitor.yaml @@ -0,0 +1,24 @@ +services: + + + + glances: + image: nicolargo/glances + container_name: glances + hostname: glances + restart: always + network_mode: host + privileged: true + pid: host + volumes: + - /DockerVol/glances/config:/glances/conf + - /var/run/docker.sock:/var/run/docker.sock + environment: + - TZ=America/Chicago + - "GLANCES_OPT=-w" + ports: + - 61208-61209:61208-61209 + +networks: + netgrimoire: + external: true \ No newline at end of file diff --git a/compose/docker3/librenms/msmtpd.env b/compose/docker3/librenms/msmtpd.env new file mode 100644 index 0000000..f303b76 --- /dev/null +++ b/compose/docker3/librenms/msmtpd.env @@ -0,0 +1,10 @@ +# https://github.com/crazy-max/docker-msmtpd +SMTP_HOST=mail.netgrimoire.com +SMTP_PORT=587 +SMTP_TLS=on +SMTP_STARTTLS=on +SMTP_TLS_CHECKCERT=on +SMTP_AUTH=on +SMTP_USER=traveler@netgrimoire.com +SMTP_PASSWORD=F@lcon13 +SMTP_FROM=network@netgrimoire.com diff --git a/.env b/compose/docker4/.env similarity index 100% rename from .env rename to compose/docker4/.env diff --git a/compose/docker4/graylog.yaml b/compose/docker4/graylog.yaml new file mode 100755 index 0000000..6578e32 --- /dev/null +++ b/compose/docker4/graylog.yaml @@ -0,0 +1,153 @@ +#only works with compose + + + +services: + # MongoDB: https://hub.docker.com/_/mongo/ + mongodb: + container_name: graylog-mongo + image: mongo:5.0 + volumes: + #- /DockerVol/Graylog/Mongo/data/db:/data/db + - mongodb_data:/data/db + networks: + - netgrimoire + environment: + - PGID=998 + - PUID=1001 + - UMASK=002 + # deploy: + # placement: + # constraints: + # - node.hostname == docker2 + + datanode: + container_name: graylog-datanode + image: "${DATANODE_IMAGE:-graylog/graylog-datanode:6.0}" + hostname: "datanode" + environment: + GRAYLOG_DATANODE_NODE_ID_FILE: "/var/lib/graylog-datanode/node-id" + GRAYLOG_DATANODE_PASSWORD_SECRET: "TZ3XajhzIBugTl61oNNgrWL0OHTn4qYcNAuzTTHWRKYxxWf61oAEpHOpesLoP7ssgqBTuainTBX6YIVAcYs2de2jhPHQBYD5" + GRAYLOG_DATANODE_ROOT_PASSWORD_SHA2: "1b12de7f4069972e784d42dbe826c0769f1287412cd35479de127fcf816699dc" + GRAYLOG_DATANODE_MONGODB_URI: "mongodb://mongodb:27017/graylog" + PGID: 998 + PUID: 1001 + UMASK: 002 + ulimits: + memlock: + hard: -1 + soft: -1 + nofile: + soft: 65536 + hard: 65536 + ports: + - "8999:8999/tcp" # DataNode API + - "9200:9200/tcp" + - "9300:9300/tcp" + volumes: + #- /DockerVol/Graylog/datanode:/var/lib/graylog-datanode + - graylog-datanode:/var/lib/graylog-datanode + networks: + - netgrimoire + # deploy: + # placement: + # constraints: + # - node.hostname == docker2 + + graylog: + container_name: graylog + hostname: "server" + image: "${GRAYLOG_IMAGE:-graylog/graylog:6.0}" + depends_on: + - mongodb + # -condition: "service_started" + entrypoint: "/usr/bin/tini -- /docker-entrypoint.sh" + environment: + GRAYLOG_NODE_ID_FILE: "/usr/share/graylog/data/data/node-id" + GRAYLOG_PASSWORD_SECRET: "TZ3XajhzIBugTl61oNNgrWL0OHTn4qYcNAuzTTHWRKYxxWf61oAEpHOpesLoP7ssgqBTuainTBX6YIVAcYs2de2jhPHQBYD5" + GRAYLOG_ROOT_PASSWORD_SHA2: "1b12de7f4069972e784d42dbe826c0769f1287412cd35479de127fcf816699dc" + GRAYLOG_HTTP_BIND_ADDRESS: "0.0.0.0:9000" + GRAYLOG_HTTP_EXTERNAL_URI: "http://log.netgrimoire.com/" + GRAYLOG_MONGODB_URI: "mongodb://mongodb:27017/graylog" + GRAYLOG_ELASTICSEARCH_SSL_VERIFY: false + GRAYLOG_DATANODE_TRANSPORT_URI: "http://datanode:9200" + + PGID: 998 + PUID: 1001 + UMASK: 002 + ports: + - "5044:5044/tcp" # Beats + - "5140:5140/udp" # Syslog + - "5140:5140/tcp" # Syslog + - "5555:5555/tcp" # RAW TCP + - "5555:5555/udp" # RAW UDP + - "9000:9000/tcp" # Server API + - "12201:12201/tcp" # GELF TCP + - "12201:12201/udp" # GELF UDP + - "10000:10000/tcp" # Custom TCP port + - "10000:10000/udp" # Custom UDP port + - "13301:13301/tcp" # Forwarder data + - "13302:13302/tcp" # Forwarder config + volumes: + #- "/DockerVol/Graylog/graylog_data:/usr/share/graylog/data/data" + #- "/DockerVol/Graylog/graylog_journal:/usr/share/graylog/data/journal" + - graylog_data:/usr/share/graylog/data/data + - graylog_journal:/usr/share/graylog/data/journal + networks: + - netgrimoire + # deploy: + # labels: + # - homepage.group=Monitoring + # - homepage.name=Graylog + # - homepage.icon=graylog.png + # - homepage.href=https://log.netgrimoire.com + # - homepage.description=Logging Server + # - caddy=log.netgrimoire.com + # - caddy.reverse_proxy="{{upstreams 9000}}" + # placement: + # constraints: + # - node.hostname == docker2 + + +volumes: + mongodb_data: + driver: local + driver_opts: + type: none + o: bind + device: /DockerVol/Graylog/Mongo/data/db + + graylog-datanode: + driver: local + driver_opts: + type: none + o: bind + device: /DockerVol/Graylog/datanode + + graylog_data: + driver: local + driver_opts: + type: none + o: bind + device: /DockerVol/Graylog/graylog_data + + graylog_journal: + driver: local + driver_opts: + type: none + o: bind + device: /DockerVol/Graylog/graylog_journal + + +networks: + netgrimoire: + external: true + + + + + + + + + diff --git a/compose/docker5/JellyFin.yaml b/compose/docker5/JellyFin.yaml new file mode 100755 index 0000000..8b817ce --- /dev/null +++ b/compose/docker5/JellyFin.yaml @@ -0,0 +1,42 @@ +version: "3.8" + +services: + jellyfin: + image: lscr.io/linuxserver/jellyfin + container_name: jellyfin + environment: + - PUID=1001 + - PGID=998 + - TZ=America/Chicago + # - JELLYFIN_PublishedServerUrl=http://jellyfin.local:8096 # Optional, helps clients find the server + volumes: + - /DockerVol/Jellyfin/config:/config + - /data/nfs/Baxter/Data/media:/data:shared + ports: + - "8096:8096" + - "8920:8920" + # - "7359:7359/udp" + # - "1900:1900/udp" + devices: + - /dev/dri:/dev/dri # Intel iGPU for VAAPI + restart: unless-stopped + networks: + - netgrimoire + labels: + # Homepage Dashboard + homepage.group: "Media" + homepage.name: "Jellyfin" + homepage.icon: "jellyfin.jpg" + homepage.href: "http://jellyfin.netgrimoire.com:8096" + homepage.description: "Media server with VAAPI transcoding" + + + + # Diun (Docker Image Update Notifier) + diun.enable: "true" + diun.watch_repo: "true" + diun.notify: "ntfy" # change to your preferred notifier if needed + +networks: + netgrimoire: + external: true diff --git a/compose/docker5/JellyFinx.yaml b/compose/docker5/JellyFinx.yaml new file mode 100644 index 0000000..69b0fed --- /dev/null +++ b/compose/docker5/JellyFinx.yaml @@ -0,0 +1,45 @@ +version: "3.8" + +services: + jellyfinx: + image: lscr.io/linuxserver/jellyfin + container_name: jellyfinx + environment: + - PUID=1001 + - PGID=998 + - TZ=America/Chicago + # - JELLYFIN_PublishedServerUrl=http://jellyfin.local:7096 + volumes: + - /DockerVol/Jellyfinx/config:/config + - /data/nfs/Baxter/Data/media:/data:shared + - /data/nfs/Baxter/Green/media/movies:/green:shared + - /data/nfs/Baxter/Green/media/After_Dark:/AfterDark:shared + ports: + - "7096:8096" + - "7920:8920" + devices: + - /dev/dri:/dev/dri # Intel iGPU for VAAPI + restart: unless-stopped + networks: + - netgrimoire + labels: + # Homepage Dashboard + homepage.group: "Media" + homepage.name: "Jellyfinx" + homepage.icon: "jellyfin" + homepage.href: http://jellyfinx.netgrimoire.com:7096 + homepage.description: "Media server with VAAPI transcoding" + homepage.weight: "1" + + + + # Diun (Docker Image Update Notifier) + diun.enable: "true" + diun.watch_repo: "true" + diun.notify: "ntfy" # or your notifier key/topic (e.g., smtp, gotify, etc.) + +networks: + netgrimoire: + external: true + + diff --git a/compose/nas/.env b/compose/nas/.env new file mode 100755 index 0000000..f99239f --- /dev/null +++ b/compose/nas/.env @@ -0,0 +1,23 @@ +# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables + +# The location where your uploaded files are stored +UPLOAD_LOCATION=/srv/a18f546e-e9bf-4a8d-8b9d-02e7ec32b632/immich/library +# The location where your database files are stored +DB_DATA_LOCATION=/srv/a18f546e-e9bf-4a8d-8b9d-02e7ec32b632/immich/postgres + + + +# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List +TZ=America/Chicago + +# The Immich version to use. You can pin this to a specific version like "v1.71.0" +IMMICH_VERSION=v2 + +# Connection secret for postgres. You should change it to a random password +# Please use only the characters `A-Za-z0-9`, without special characters or spaces +DB_PASSWORD=postgres + +# The values below this line do not need to be changed +################################################################################### +DB_USERNAME=postgres +DB_DATABASE_NAME=immich diff --git a/compose/nas/calibre.yaml b/compose/nas/calibre.yaml new file mode 100644 index 0000000..82bc1db --- /dev/null +++ b/compose/nas/calibre.yaml @@ -0,0 +1,40 @@ +services: + Calibre: + image: lscr.io/linuxserver/calibre:latest + container_name: calibre + hostname: calibre + environment: + - TZ=America/Chicago + - PGID=998 + - PUID=1001 + networks: + - netgrimoire + volumes: + - /DockerVol/Calibre/Config:/config + - /DockerVol/Calibre/Plugins:/plugins + - /data/nfs/Baxter/Data/media:/data:shared + ports: + - 7070:8080 + - 7081:8081 + restart: unless-stopped + security_opt: + - seccomp=unconfined + # deploy: + labels: + # - homepage.group=Library + # - homepage.name=Calibre + # - homepage.icon=calibre.png + # - homepage.href=http://calibre.netgrimoire.com + # - homepage.description=Calibre Library + # - kuma.calibre.http.name="Calibre" + # - kuma.calibre.http.url=http://calibre:8080 + - caddy=calibre.netgrimoire.com + - caddy.import=authentik + - caddy.reverse_proxy="{{upstreams 8080}}" + # placement: + # constraints: + # - node.hostname == nas + +networks: + netgrimoire: + external: true \ No newline at end of file diff --git a/compose/nas/cloud.yaml b/compose/nas/cloud.yaml new file mode 100644 index 0000000..5778419 --- /dev/null +++ b/compose/nas/cloud.yaml @@ -0,0 +1,52 @@ +services: + nextcloud-aio-mastercontainer: + image: nextcloud/all-in-one:latest + init: true + restart: always + container_name: nextcloud-aio-mastercontainer # This line is not allowed to be changed as otherwise AIO will not work correctly + volumes: + - nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed as otherwise the built-in backup solution will not work + - /var/run/docker.sock:/var/run/docker.sock:ro # May be changed on macOS, Windows or docker rootless. See the applicable documentation. If adjusting, don't forget to also set 'WATCHTOWER_DOCKER_SOCKET_PATH'! + - /srv/ssd1/NextCloud-AIO:/var/www/html/data + networks: + - netgrimoire # add to the same network as docker run would do + ports: + # - 80:80 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md + - 8080:8080 + # - 8443:8443 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md + environment: # Is needed when using any of the options below + # AIO_DISABLE_BACKUP_SECTION: false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section + # AIO_COMMUNITY_CONTAINERS: # With this variable, you can add community containers very easily. See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers + APACHE_PORT: 11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md + APACHE_IP_BINDING: 0.0.0.0 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md + APACHE_ADDITIONAL_NETWORK: netgrimoire # (Optional) Connect the apache container to an additional docker network. Needed when behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) running in a different docker network on same server. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md + # BORG_RETENTION_POLICY: --keep-within=7d --keep-weekly=4 --keep-monthly=6 # Allows to adjust borgs retention policy. See https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy + # COLLABORA_SECCOMP_DISABLED: false # Setting this to true allows to disable Collabora's Seccomp feature. See https://github.com/nextcloud/all-in-one#how-to-disable-collaboras-seccomp-feature + NEXTCLOUD_DATADIR: /srv/ssd1/NextCloud-AIO # Allows to set the host directory for Nextcloud's datadir. ⚠️⚠️⚠️ Warning: do not set or adjust this value after the initial Nextcloud installation is done! See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir + # NEXTCLOUD_MOUNT: /mnt/ # Allows the Nextcloud container to access the chosen directory on the host. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host + # NEXTCLOUD_UPLOAD_LIMIT: 16G # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud + # NEXTCLOUD_MAX_TIME: 3600 # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud + # NEXTCLOUD_MEMORY_LIMIT: 512M # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud + # NEXTCLOUD_TRUSTED_CACERTS_DIR: /path/to/my/cacerts # CA certificates in this directory will be trusted by the OS of the nextcloud container (Useful e.g. for LDAPS) See https://github.com/nextcloud/all-in-one#how-to-trust-user-defined-certification-authorities-ca + # NEXTCLOUD_STARTUP_APPS: deck twofactor_totp tasks calendar contacts notes # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. See https://github.com/nextcloud/all-in-one#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup + # NEXTCLOUD_ADDITIONAL_APKS: imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-os-packages-permanently-to-the-nextcloud-container + # NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS: imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-php-extensions-permanently-to-the-nextcloud-container + # NEXTCLOUD_ENABLE_DRI_DEVICE: true # This allows to enable the /dev/dri device for containers that profit from it. ⚠️⚠️⚠️ Warning: this only works if the '/dev/dri' device is present on the host! If it should not exist on your host, don't set this to true as otherwise the Nextcloud container will fail to start! See https://github.com/nextcloud/all-in-one#how-to-enable-hardware-acceleration-for-nextcloud + # NEXTCLOUD_ENABLE_NVIDIA_GPU: true # This allows to enable the NVIDIA runtime and GPU access for containers that profit from it. ⚠️⚠️⚠️ Warning: this only works if an NVIDIA gpu is installed on the server. See https://github.com/nextcloud/all-in-one#how-to-enable-hardware-acceleration-for-nextcloud. + # NEXTCLOUD_KEEP_DISABLED_APPS: false # Setting this to true will keep Nextcloud apps that are disabled in the AIO interface and not uninstall them if they should be installed. See https://github.com/nextcloud/all-in-one#how-to-keep-disabled-apps + SKIP_DOMAIN_VALIDATION: true # This should only be set to true if things are correctly configured. See https://github.com/nextcloud/all-in-one?tab=readme-ov-file#how-to-skip-the-domain-validation + # TALK_PORT: 3478 # This allows to adjust the port that the talk container is using which is exposed on the host. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port + # WATCHTOWER_DOCKER_SOCKET_PATH: /var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail. For macos it needs to be '/var/run/docker.sock' + # security_opt: ["label:disable"] # Is needed when using SELinux + + +volumes: # If you want to store the data on a different drive, see https://github.com/nextcloud/all-in-one#how-to-store-the-filesinstallation-on-a-separate-drive + nextcloud_aio_mastercontainer: + name: nextcloud_aio_mastercontainer # This line is not allowed to be changed as otherwise the built-in backup solution will not work + + +networks: + netgrimoire: + external: true + + \ No newline at end of file diff --git a/compose/nas/immich.yaml b/compose/nas/immich.yaml new file mode 100644 index 0000000..4581fe5 --- /dev/null +++ b/compose/nas/immich.yaml @@ -0,0 +1,91 @@ +# +# WARNING: Make sure to use the docker-compose.yml of the current release: +# +# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml +# +# The compose file on main may not be compatible with the latest release. +# +name: immich + +services: + immich-server: + container_name: immich_server + image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} + # extends: + # file: hwaccel.transcoding.yml + # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding + volumes: + # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file + - ${UPLOAD_LOCATION}:/usr/src/app/upload + - /etc/localtime:/etc/localtime:ro + - /srv/a18f546e-e9bf-4a8d-8b9d-02e7ec32b632:/mergerfs + - /srv/ssd1:/nextcloud + + + env_file: + - .env + ports: + - '2283:2283' + networks: + - netgrimoire + - immich + depends_on: + - redis + - database + #restart: always + healthcheck: + disable: false + + immich-machine-learning: + container_name: immich_machine_learning + # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag. + # Example tag: ${IMMICH_VERSION:-release}-cuda + image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} + # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration + # file: hwaccel.ml.yml + # service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable + volumes: + - model-cache:/cache + env_file: + - .env + restart: always + networks: + - immich + healthcheck: + disable: false + + redis: + container_name: immich_redis + image: docker.io/valkey/valkey:8@sha256:81db6d39e1bba3b3ff32bd3a1b19a6d69690f94a3954ec131277b9a26b95b3aa + networks: + - immich + healthcheck: + test: redis-cli ping || exit 1 + restart: always + + database: + container_name: immich_postgres + #image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 + image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23 + + environment: + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_USER: ${DB_USERNAME} + POSTGRES_DB: ${DB_DATABASE_NAME} + POSTGRES_INITDB_ARGS: '--data-checksums' + volumes: + # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file + - ${DB_DATA_LOCATION}:/var/lib/postgresql/data + networks: + - immich + + restart: always + +volumes: + model-cache: + +networks: + netgrimoire: + external: true + immich: + external: true diff --git a/compose/nas/monitor.yaml b/compose/nas/monitor.yaml new file mode 100644 index 0000000..14b33fc --- /dev/null +++ b/compose/nas/monitor.yaml @@ -0,0 +1,49 @@ +services: + scrutiny: + image: ghcr.io/analogj/scrutiny:master-omnibus + container_name: scrutiny + hostname: scrutiny + networks: + - netgrimoire + ports: + - 8081:8080 + - 8086:8086 + cap_add: + - SYS_RAWIO + devices: + - "/dev/sda" + - "/dev/sdb" + - "/dev/sdc" + - "/dev/sdd" + - "/dev/sde" + - "/dev/sdf" + - "/dev/sdg" + # - "/dev/sdh" + # - "/dev/sdi" + # - "/dev/sdj" + volumes: + - /run/udev:/run/udev:ro + - /DockerVol/scrutiny/config:/opt/scrutiny/config + - /DockerVol/scrutiny/influxdb:/opt/scrutiny/influxdb + + + glances: + image: nicolargo/glances + container_name: glances + hostname: glances + restart: always + network_mode: host + privileged: true + pid: host + volumes: + - /DockerVol/glances/config:/glances/conf + - /var/run/docker.sock:/var/run/docker.sock + environment: + - TZ=America/Chicago + - "GLANCES_OPT=-w" + ports: + - 61208-61209:61208-61209 + +networks: + netgrimoire: + external: true \ No newline at end of file diff --git a/compose/nas/namer.yaml b/compose/nas/namer.yaml new file mode 100644 index 0000000..a0c11e2 --- /dev/null +++ b/compose/nas/namer.yaml @@ -0,0 +1,24 @@ +services: + + namer: + container_name: namer + image: ghcr.io/theporndatabase/namer:latest + networks: + - netgrimoire + environment: + - PUID=1001 + - PGID=998 + - TZ=America/Chicago + - NAMER_CONFIG=/config/namer.cfg + volumes: + - /DockerVol/namer/:/config + - /data/nfs/Baxter/Green/:/data + ports: + - 6980:6980 + restart: always + + + +networks: + netgrimoire: + external: true \ No newline at end of file diff --git a/compose/nas/stash.yaml b/compose/nas/stash.yaml new file mode 100644 index 0000000..83b176c --- /dev/null +++ b/compose/nas/stash.yaml @@ -0,0 +1,39 @@ +services: + stash: + image: stashapp/stash:latest + container_name: stash + networks: + - netgrimoire + restart: unless-stopped + ## the container's port must be the same with the STASH_PORT in the environment section + ports: + - 9999:9999 + ## If you intend to use stash's DLNA functionality uncomment the below network mode and c + # network_mode: host + environment: + - STASH_STASH=/data/ + - STASH_GENERATED=/generated/ + - STASH_METADATA=/metadata/ + - STASH_CACHE=/cache/ + - STASH_GRAPHQL_PLAYGROUND=true + ## Adjust below to change default port (9999) + - STASH_PORT=9999 + volumes: + - /etc/localtime:/etc/localtime:ro + ## Adjust below paths (the left part) to your liking. + ## E.g. you can change ./config:/root/.stash to ./stash:/root/.stash + + ## Keep configs, scrapers, and plugins here. + - /DockerVol/Stash/config:/root/.stash + ## Point this at your collection. + - /data/nfs/Baxter/Green:/data + ## This is where your stash's metadata lives + - /DockerVol/Stash/metadata:/metadata + ## Any other cache content. + - ./DockerVol/Stash/cache:/cache + ## Where to store generated content (screenshots,previews,transcodes,sprites) + - /DockerVol/Stash/generated:/generated + +networks: + netgrimoire: + external: true diff --git a/compose/nas/windows7.yaml b/compose/nas/windows7.yaml new file mode 100644 index 0000000..8b477fb --- /dev/null +++ b/compose/nas/windows7.yaml @@ -0,0 +1,27 @@ +services: + windows: + image: dockurr/windows + container_name: win7 + devices: + - /dev/kvm:/dev/kvm + cap_add: + - NET_ADMIN + ports: + - 8006:8006 + - 3389:3389/tcp + - 3389:3389/udp + stop_grace_period: 2m + # restart: on-failure + environment: + VERSION: "7u" + RAM_SIZE: "4G" + CPU_CORES: "4" + DISK_SIZE: "64G" + DISK2_SIZE: "256G" + USERNAME: "traveler" + PASSWORD: "H@rvey" + # QEMU_OPTS: "-drive file=/disk/data.vhd,format=vpc,if=virtio" + # EXTRA_DISKS: /disk/data.vhd + volumes: + - /srv/6e859070-caa4-472f-bb3c-53fb44e1bcc9/DockerVol/windows7/:/storage + - /srv/6e859070-caa4-472f-bb3c-53fb44e1bcc9/DockerVol/windows7/storage/:/storage2 diff --git a/library copy.yaml b/library copy.yaml deleted file mode 100755 index bf7dc3a..0000000 --- a/library copy.yaml +++ /dev/null @@ -1,44 +0,0 @@ - -services: - Calibre-Netgrimoire: - image: lscr.io/linuxserver/calibre-web:latest - container_name: Calibre-Netgrimoire - hostname: calibre-netgrimoire - networks: - - netgrimoire - environment: - - TZ=America/Chicago - - PGID=998 - - PUID=1001 - volumes: - - /data/nfs/Baxter/Docker/Calibre-netgrimoire/Config:/config - - /data/nfs/Baxter/Data:/data:shared - ports: - - 8083:8083 - restart: unless-stopped - deploy: - labels: - - homepage.group=Library - - homepage.name=Netgrimoire Library - - homepage.icon=calibre-web.png - - homepage.href=http://books.netgrimoire.com - - homepage.description=Curated Library - - homepage.widget.type=calibreweb - - homepage.widget.url=http://Calibre-netgrimoire:8083 - - homepage.widget.username=traveler - - homepage.widget.password=F@lcon13 - - kuma.calibre1.http.name="Calibre-Netgrimoire" - - kuma.auth.http.url=http://calibre-netgrimoire:8083 - - caddy=books.netgrimoire.com - - caddy.import=authentik - - caddy.reverse_proxy="{{upstreams 8083}}" - placement: - constraints: - - node.labels.general == true - - - - -networks: - netgrimoire: - external: true \ No newline at end of file diff --git a/Calibre-web.yaml b/swarm/Calibre-web.yaml similarity index 100% rename from Calibre-web.yaml rename to swarm/Calibre-web.yaml diff --git a/JellySeer.yaml b/swarm/JellySeer.yaml similarity index 100% rename from JellySeer.yaml rename to swarm/JellySeer.yaml diff --git a/JellyStat.yaml b/swarm/JellyStat.yaml similarity index 100% rename from JellyStat.yaml rename to swarm/JellyStat.yaml diff --git a/SQL-mgmt.yaml b/swarm/SQL-mgmt.yaml similarity index 100% rename from SQL-mgmt.yaml rename to swarm/SQL-mgmt.yaml diff --git a/authelia.yaml b/swarm/authelia.yaml similarity index 100% rename from authelia.yaml rename to swarm/authelia.yaml diff --git a/authentik.yaml b/swarm/authentik.yaml similarity index 100% rename from authentik.yaml rename to swarm/authentik.yaml diff --git a/bazarr.yaml b/swarm/bazarr.yaml similarity index 100% rename from bazarr.yaml rename to swarm/bazarr.yaml diff --git a/beets.yaml b/swarm/beets.yaml similarity index 100% rename from beets.yaml rename to swarm/beets.yaml diff --git a/beszel.yaml b/swarm/beszel.yaml similarity index 100% rename from beszel.yaml rename to swarm/beszel.yaml diff --git a/beszel_agents.yaml b/swarm/beszel_agents.yaml similarity index 100% rename from beszel_agents.yaml rename to swarm/beszel_agents.yaml diff --git a/cloudcmd.yaml b/swarm/cloudcmd.yaml similarity index 100% rename from cloudcmd.yaml rename to swarm/cloudcmd.yaml diff --git a/comixed.yaml b/swarm/comixed.yaml similarity index 100% rename from comixed.yaml rename to swarm/comixed.yaml diff --git a/commander.yaml b/swarm/commander.yaml similarity index 100% rename from commander.yaml rename to swarm/commander.yaml diff --git a/configarr.yaml b/swarm/configarr.yaml similarity index 100% rename from configarr.yaml rename to swarm/configarr.yaml diff --git a/database.yaml b/swarm/database.yaml similarity index 100% rename from database.yaml rename to swarm/database.yaml diff --git a/diun.yaml b/swarm/diun.yaml similarity index 100% rename from diun.yaml rename to swarm/diun.yaml diff --git a/dockpeek.yaml b/swarm/dockpeek.yaml similarity index 100% rename from dockpeek.yaml rename to swarm/dockpeek.yaml diff --git a/dozzle.yaml b/swarm/dozzle.yaml similarity index 100% rename from dozzle.yaml rename to swarm/dozzle.yaml diff --git a/dumbterm.yaml b/swarm/dumbterm.yaml similarity index 100% rename from dumbterm.yaml rename to swarm/dumbterm.yaml diff --git a/filebrowser.yaml b/swarm/filebrowser.yaml similarity index 100% rename from filebrowser.yaml rename to swarm/filebrowser.yaml diff --git a/firefox.yaml b/swarm/firefox.yaml similarity index 100% rename from firefox.yaml rename to swarm/firefox.yaml diff --git a/forgejo.yaml b/swarm/forgejo.yaml similarity index 100% rename from forgejo.yaml rename to swarm/forgejo.yaml diff --git a/freshrss.yaml b/swarm/freshrss.yaml similarity index 100% rename from freshrss.yaml rename to swarm/freshrss.yaml diff --git a/glance.yaml b/swarm/glance.yaml similarity index 100% rename from glance.yaml rename to swarm/glance.yaml diff --git a/homepage.yaml b/swarm/homepage.yaml similarity index 100% rename from homepage.yaml rename to swarm/homepage.yaml diff --git a/hydra.yaml b/swarm/hydra.yaml similarity index 100% rename from hydra.yaml rename to swarm/hydra.yaml diff --git a/joplin.yaml b/swarm/joplin.yaml similarity index 100% rename from joplin.yaml rename to swarm/joplin.yaml diff --git a/journiv.yaml b/swarm/journiv.yaml similarity index 100% rename from journiv.yaml rename to swarm/journiv.yaml diff --git a/kavita.yaml b/swarm/kavita.yaml similarity index 100% rename from kavita.yaml rename to swarm/kavita.yaml diff --git a/kopia.yaml b/swarm/kopia.yaml similarity index 95% rename from kopia.yaml rename to swarm/kopia.yaml index 03571ea..69fab2b 100644 --- a/kopia.yaml +++ b/swarm/kopia.yaml @@ -34,7 +34,8 @@ services: deploy: placement: constraints: - - node.hostname == nas + - node.hostname == znas + - node.labels.cps == amd labels: diun.enable: "true" homepage.group: "Backup" diff --git a/kuma.yaml b/swarm/kuma.yaml similarity index 100% rename from kuma.yaml rename to swarm/kuma.yaml diff --git a/library.yaml b/swarm/library.yaml similarity index 100% rename from library.yaml rename to swarm/library.yaml diff --git a/linkding.yaml b/swarm/linkding.yaml similarity index 100% rename from linkding.yaml rename to swarm/linkding.yaml diff --git a/lldap.yaml b/swarm/lldap.yaml similarity index 100% rename from lldap.yaml rename to swarm/lldap.yaml diff --git a/logging.yaml b/swarm/logging.yaml similarity index 100% rename from logging.yaml rename to swarm/logging.yaml diff --git a/mealie.yaml b/swarm/mealie.yaml similarity index 100% rename from mealie.yaml rename to swarm/mealie.yaml diff --git a/ntfy.yaml b/swarm/ntfy.yaml similarity index 100% rename from ntfy.yaml rename to swarm/ntfy.yaml diff --git a/nzbget.yaml b/swarm/nzbget.yaml similarity index 100% rename from nzbget.yaml rename to swarm/nzbget.yaml diff --git a/phpipam.yaml b/swarm/phpipam.yaml similarity index 100% rename from phpipam.yaml rename to swarm/phpipam.yaml diff --git a/pinchflat.yaml b/swarm/pinchflat.yaml similarity index 100% rename from pinchflat.yaml rename to swarm/pinchflat.yaml diff --git a/portainer-agent-stack.yml b/swarm/portainer-agent-stack.yml similarity index 100% rename from portainer-agent-stack.yml rename to swarm/portainer-agent-stack.yml diff --git a/profilarr.yaml b/swarm/profilarr.yaml similarity index 100% rename from profilarr.yaml rename to swarm/profilarr.yaml diff --git a/radarr.yaml b/swarm/radarr.yaml similarity index 100% rename from radarr.yaml rename to swarm/radarr.yaml diff --git a/readarr.yaml b/swarm/readarr.yaml similarity index 100% rename from readarr.yaml rename to swarm/readarr.yaml diff --git a/recyclarr.yaml b/swarm/recyclarr.yaml similarity index 100% rename from recyclarr.yaml rename to swarm/recyclarr.yaml diff --git a/roundcube.yaml b/swarm/roundcube.yaml similarity index 100% rename from roundcube.yaml rename to swarm/roundcube.yaml diff --git a/sabnzbd.yaml b/swarm/sabnzbd.yaml similarity index 100% rename from sabnzbd.yaml rename to swarm/sabnzbd.yaml diff --git a/scanopy.yaml b/swarm/scanopy.yaml similarity index 100% rename from scanopy.yaml rename to swarm/scanopy.yaml diff --git a/sonarr.yaml b/swarm/sonarr.yaml similarity index 100% rename from sonarr.yaml rename to swarm/sonarr.yaml diff --git a/Caddyfile b/swarm/stack/caddy/Caddyfile similarity index 100% rename from Caddyfile rename to swarm/stack/caddy/Caddyfile diff --git a/caddy.sh b/swarm/stack/caddy/caddy.sh similarity index 100% rename from caddy.sh rename to swarm/stack/caddy/caddy.sh diff --git a/caddy.yaml b/swarm/stack/caddy/caddy.yaml similarity index 100% rename from caddy.yaml rename to swarm/stack/caddy/caddy.yaml diff --git a/termix.yaml b/swarm/termix.yaml similarity index 100% rename from termix.yaml rename to swarm/termix.yaml diff --git a/tmm.yaml b/swarm/tmm.yaml similarity index 100% rename from tmm.yaml rename to swarm/tmm.yaml diff --git a/tunarr.yaml b/swarm/tunarr.yaml similarity index 100% rename from tunarr.yaml rename to swarm/tunarr.yaml diff --git a/vaultwarden.yaml b/swarm/vaultwarden.yaml similarity index 100% rename from vaultwarden.yaml rename to swarm/vaultwarden.yaml diff --git a/vikunja.yaml b/swarm/vikunja.yaml similarity index 100% rename from vikunja.yaml rename to swarm/vikunja.yaml diff --git a/vscode.yaml b/swarm/vscode.yaml similarity index 100% rename from vscode.yaml rename to swarm/vscode.yaml diff --git a/wallo.yaml b/swarm/wallo.yaml similarity index 100% rename from wallo.yaml rename to swarm/wallo.yaml diff --git a/web.yaml b/swarm/web.yaml similarity index 100% rename from web.yaml rename to swarm/web.yaml diff --git a/webtop.yaml b/swarm/webtop.yaml similarity index 100% rename from webtop.yaml rename to swarm/webtop.yaml diff --git a/green.yaml b/swarm/whisparr.yaml similarity index 100% rename from green.yaml rename to swarm/whisparr.yaml