From 27886e611091be6c245eb77c3f5d0a9f1f2d2fa8 Mon Sep 17 00:00:00 2001 From: Neale Pickett Date: Sat, 28 Jan 2023 16:34:47 -0700 Subject: [PATCH] Back to swarm mode --- homelab/Caddyfile | 8 ++++++-- homelab/deploy.sh | 1 + homelab/docker-compose.yaml | 19 +++++++++++++------ homelab/unused/jellyfin.yaml | 2 +- homelab/www/deergrove.png | Bin 0 -> 30184 bytes homelab/www/index.html | 2 +- melville/Caddyfile | 5 +++++ melville/docker-compose.yaml | 13 ++++++++++++- 8 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 homelab/www/deergrove.png diff --git a/homelab/Caddyfile b/homelab/Caddyfile index 88ce144..6a2552e 100644 --- a/homelab/Caddyfile +++ b/homelab/Caddyfile @@ -1,5 +1,5 @@ { - email neale@woozle.org + email neale@woozle.org } (restricted-access) { @@ -30,6 +30,10 @@ drive.woozle.org { } } +media.woozle.org { + reverse_proxy jellyfin:8096 +} + # XXX: have this use caddy auth ancestry.woozle.org { reverse_proxy geneweb:2317 @@ -79,7 +83,7 @@ ancestry.woozle.org { handle_path /sucker/* { import restricted-access - reverse_proxy host.docker.internal:5880 + reverse_proxy sucker:8080 } handle_path /octoprint/* { diff --git a/homelab/deploy.sh b/homelab/deploy.sh index 75681bd..b1d7ab9 100755 --- a/homelab/deploy.sh +++ b/homelab/deploy.sh @@ -8,3 +8,4 @@ caddy_hash () { stack=$(basename $(pwd)) docker --context deergrove stack deploy -c docker-compose.yaml --prune $stack +#docker --context deergrove compose up --detach diff --git a/homelab/docker-compose.yaml b/homelab/docker-compose.yaml index 03a5e9a..743d1e6 100644 --- a/homelab/docker-compose.yaml +++ b/homelab/docker-compose.yaml @@ -32,6 +32,8 @@ services: target: /www/index.html - source: index.mjs target: /www/index.mjs + - source: deergrove.png + target: /www/deergrove.png - source: index.css target: /www/index.css - source: browser.html @@ -63,8 +65,6 @@ services: source: /srv target: /srv read_only: true - bind: - propagation: rslave transmission: image: lscr.io/linuxserver/transmission @@ -138,7 +138,7 @@ services: source: /srv/incoming target: /srv/incoming prowlarr: - image: lscr.io/linuxserver/prowlarr:develop + image: lscr.io/linuxserver/prowlarr:latest extra_hosts: - host.docker.internal:host-gateway volumes: @@ -243,8 +243,10 @@ services: - type: bind source: /srv/sys/ddns-updater target: /updater/data - + tunnel: + deploy: + replicas: 0 image: lscr.io/linuxserver/openssh-server user: abc entrypoint: @@ -278,10 +280,10 @@ configs: name: Corefile-v2 Caddyfile: file: Caddyfile - name: Caddyfile-v81 + name: Caddyfile-v86 index.html: file: www/index.html - name: index.html-v35 + name: index.html-v36 index.mjs: file: www/index.mjs name: index.mjs-v1 @@ -291,6 +293,9 @@ configs: browser.html: file: www/browser.html name: browser.html-v3 + deergrove.png: + file: www/deergrove.png + name: deergrove.png-v1 secrets: passwd: @@ -313,3 +318,5 @@ networks: hostnet: external: true name: host + + diff --git a/homelab/unused/jellyfin.yaml b/homelab/unused/jellyfin.yaml index 0f2bea3..8411daf 100644 --- a/homelab/unused/jellyfin.yaml +++ b/homelab/unused/jellyfin.yaml @@ -1,7 +1,7 @@ version: "3.8" services: jellyfin: - image: ghcr.io/linuxserver/jellyfin:10.7.7 + image: ghcr.io/linuxserver/jellyfin:latest ports: - target: 8096 published: 8096 diff --git a/homelab/www/deergrove.png b/homelab/www/deergrove.png new file mode 100644 index 0000000000000000000000000000000000000000..16817e6b3437f2e857ff4804ae1eb55530d3f17e GIT binary patch literal 30184 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 R%onGMU3fE=kq#Seo*j@n;$2+m* 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 literal 0 HcmV?d00001 diff --git a/homelab/www/index.html b/homelab/www/index.html index 4272954..29df2e7 100644 --- a/homelab/www/index.html +++ b/homelab/www/index.html @@ -4,7 +4,7 @@ Deer Grove - + diff --git a/melville/Caddyfile b/melville/Caddyfile index 3a2a369..0ba23c3 100644 --- a/melville/Caddyfile +++ b/melville/Caddyfile @@ -17,6 +17,11 @@ deergrove.woozle.org, git.woozle.org, ancestry.woozle.org, drive.woozle.org { reverse_proxy host.docker.internal:5880 } +passwords.woozle.org { + reverse_proxy /notifications/hub vaultwarden:3012 + reverse_proxy vaultwarden:80 +} + www.woozle.org, woozle.org { root * /srv/www/woozle.org file_server diff --git a/melville/docker-compose.yaml b/melville/docker-compose.yaml index db1bc64..6e3c191 100644 --- a/melville/docker-compose.yaml +++ b/melville/docker-compose.yaml @@ -23,6 +23,17 @@ services: - source: Caddyfile target: /etc/caddy/Caddyfile + vaultwarden: + image: vaultwarden/server:latest + environment: + DOMAIN: https://passwords.woozle.org + SIGNUPS_ALLOWED: "false" + volumes: + - type: bind + source: /srv/vaultwarden + target: /data + + wallart: image: git.woozle.org/neale/wallart-server volumes: @@ -36,5 +47,5 @@ services: configs: Caddyfile: file: Caddyfile - name: Caddyfile-v9 + name: Caddyfile-v11