From 95c972ecb00ceef4eb1c49a28a94c1c665b8214a Mon Sep 17 00:00:00 2001 From: Sparky Date: Thu, 23 Oct 2025 08:47:47 +0100 Subject: [PATCH] Update --- .../proxy/docker-compose.yaml | 22 +++++++++ .../j0s8k4g8kokwwsg008oo8o0s/proxy/nginx.conf | 14 ++++++ .../caddy/config/caddy/Caddyfile.autosave | 2 +- .../proxy/caddy/config/caddy/autosave.json | 2 +- .../adguard.site.quack-lab.dev.crt | 49 +++++++++++++++++++ .../adguard.site.quack-lab.dev.json | 9 ++++ .../adguard.site.quack-lab.dev.key | 5 ++ .../proxy/caddy/data/caddy/last_clean.json | 2 +- .../services/xggc04cwcsc484gogggk4kk8/.env | 8 +++ .../docker-compose.yml | 36 ++++++++++++++ 10 files changed, 146 insertions(+), 3 deletions(-) create mode 100644 coolify/databases/j0s8k4g8kokwwsg008oo8o0s/proxy/docker-compose.yaml create mode 100644 coolify/databases/j0s8k4g8kokwwsg008oo8o0s/proxy/nginx.conf create mode 100644 coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/adguard.site.quack-lab.dev/adguard.site.quack-lab.dev.crt create mode 100644 coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/adguard.site.quack-lab.dev/adguard.site.quack-lab.dev.json create mode 100644 coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/adguard.site.quack-lab.dev/adguard.site.quack-lab.dev.key diff --git a/coolify/databases/j0s8k4g8kokwwsg008oo8o0s/proxy/docker-compose.yaml b/coolify/databases/j0s8k4g8kokwwsg008oo8o0s/proxy/docker-compose.yaml new file mode 100644 index 0000000..0de1ccf --- /dev/null +++ b/coolify/databases/j0s8k4g8kokwwsg008oo8o0s/proxy/docker-compose.yaml @@ -0,0 +1,22 @@ +services: + xggc04cwcsc484gogggk4kk8-proxy: + image: 'nginx:stable-alpine' + container_name: xggc04cwcsc484gogggk4kk8-proxy + restart: unless-stopped + ports: + - '12311:12311' + networks: + - xggc04cwcsc484gogggk4kk8 + volumes: + - { type: bind, source: /data/coolify/databases/j0s8k4g8kokwwsg008oo8o0s/proxy/nginx.conf, target: /etc/nginx/nginx.conf } + healthcheck: + test: [CMD-SHELL, 'stat /etc/nginx/nginx.conf || exit 1'] + interval: 5s + timeout: 5s + retries: 3 + start_period: 1s +networks: + xggc04cwcsc484gogggk4kk8: + external: true + name: xggc04cwcsc484gogggk4kk8 + attachable: true diff --git a/coolify/databases/j0s8k4g8kokwwsg008oo8o0s/proxy/nginx.conf b/coolify/databases/j0s8k4g8kokwwsg008oo8o0s/proxy/nginx.conf new file mode 100644 index 0000000..8cfe794 --- /dev/null +++ b/coolify/databases/j0s8k4g8kokwwsg008oo8o0s/proxy/nginx.conf @@ -0,0 +1,14 @@ +user nginx; +worker_processes auto; + +error_log /var/log/nginx/error.log; + +events { + worker_connections 1024; +} +stream { + server { + listen 12311; + proxy_pass postgres-xggc04cwcsc484gogggk4kk8:5432; + } +} \ No newline at end of file diff --git a/coolify/proxy/caddy/config/caddy/Caddyfile.autosave b/coolify/proxy/caddy/config/caddy/Caddyfile.autosave index 58e61e2..8665385 100644 --- a/coolify/proxy/caddy/config/caddy/Caddyfile.autosave +++ b/coolify/proxy/caddy/config/caddy/Caddyfile.autosave @@ -140,7 +140,7 @@ https://meili.site.quack-lab.dev { https://n8n.site.quack-lab.dev { encode zstd gzip handle_path /* { - reverse_proxy 10.0.46.3:5678 + reverse_proxy 10.0.46.4:5678 } header -Server try_files {path} /index.html /index.php diff --git a/coolify/proxy/caddy/config/caddy/autosave.json b/coolify/proxy/caddy/config/caddy/autosave.json index 079a026..8e91b3a 100644 --- a/coolify/proxy/caddy/config/caddy/autosave.json +++ b/coolify/proxy/caddy/config/caddy/autosave.json @@ -1 +1 @@ -{"admin":{"listen":"tcp/localhost:2019"},"apps":{"http":{"servers":{"srv0":{"listen":[":443"],"routes":[{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.51.3:8090"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pocketbase-youtube-seencounter.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.55.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pocketbase-youtube-timestamps.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.57.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pocketbase-truckermajster.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.59.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pocketbase-shoppinglist.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.48.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pocketbase-autoclip.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.56.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pocketbase-scratch.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.31.3:80"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["authwarden.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.34.3:80"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["bitwarden.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.43.3:24900"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["meili-web.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.54.3:9000"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["portainer.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.45.5:4151"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["nsq-http.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.45.4:4171"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["nsqadmin.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.65.2:80"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["adguard.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.35.3:8083"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["calibre.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.50.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["evebase.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.64.2:43433"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["grafana.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.61.6:2283"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["himmich.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.47.3:80"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pastefy.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.53.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["torrent.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.60.4:3000"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["zipline.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.29.3:5006"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["actual.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.42.4:3010"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["affine.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.36.3:5000"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["docker.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.41.6:2283"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["immich.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.37.3:3923"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["files.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"authentication","providers":{"http_basic":{"accounts":[{"password":"$2a$14$Sn2smnUNWQazfUQL.OtW/urEng2YWtAR4iUcahkmKoWCog9lRgMOy","username":"dave"}],"hash":{"algorithm":"bcrypt"},"hash_cache":{}}}},{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.39.3:8484"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["grist.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.44.3:8096"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["jelly.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.40.3:7700"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["meili.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.63.7:80"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["zulip.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.52.3:8384"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["sync.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.38.4:3000"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["git.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.46.3:5678"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["n8n.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.45.5:4151"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["nsq.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.49.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pdf.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"static_response","status_code":503}]}]}],"terminal":true}]},"srv1":{"listen":[":80"],"routes":[{"handle":[{"handler":"static_response","status_code":503}]}]}}}}} \ No newline at end of file +{"admin":{"listen":"tcp/localhost:2019"},"apps":{"http":{"servers":{"srv0":{"listen":[":443"],"routes":[{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.51.3:8090"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pocketbase-youtube-seencounter.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.55.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pocketbase-youtube-timestamps.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.57.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pocketbase-truckermajster.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.59.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pocketbase-shoppinglist.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.48.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pocketbase-autoclip.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.56.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pocketbase-scratch.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.31.3:80"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["authwarden.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.34.3:80"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["bitwarden.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.43.3:24900"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["meili-web.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.54.3:9000"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["portainer.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.45.5:4151"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["nsq-http.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.45.4:4171"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["nsqadmin.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.65.2:80"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["adguard.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.35.3:8083"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["calibre.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.50.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["evebase.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.64.2:43433"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["grafana.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.61.6:2283"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["himmich.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.47.3:80"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pastefy.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.53.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["torrent.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.60.4:3000"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["zipline.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.29.3:5006"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["actual.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.42.4:3010"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["affine.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.36.3:5000"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["docker.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.41.6:2283"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["immich.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.37.3:3923"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["files.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"handler":"authentication","providers":{"http_basic":{"accounts":[{"password":"$2a$14$Sn2smnUNWQazfUQL.OtW/urEng2YWtAR4iUcahkmKoWCog9lRgMOy","username":"dave"}],"hash":{"algorithm":"bcrypt"},"hash_cache":{}}}},{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.39.3:8484"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["grist.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.44.3:8096"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["jelly.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.40.3:7700"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["meili.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.63.7:80"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["zulip.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.52.3:8384"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["sync.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.38.4:3000"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["git.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.46.4:5678"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["n8n.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.45.5:4151"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["nsq.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"headers","response":{"deferred":true,"delete":["Server"]}}]},{"handle":[{"handler":"rewrite","uri":"{http.matchers.file.relative}"}],"match":[{"file":{"try_files":["{http.request.uri.path}","/index.html","/index.php"]}}]},{"handle":[{"encodings":{"gzip":{},"zstd":{}},"handler":"encode","prefer":["zstd","gzip"]}]},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"rewrite"}]},{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"10.0.49.3:8080"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["pdf.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"static_response","status_code":503}]}]}],"terminal":true}]},"srv1":{"listen":[":80"],"routes":[{"handle":[{"handler":"static_response","status_code":503}]}]}}}}} \ No newline at end of file diff --git a/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/adguard.site.quack-lab.dev/adguard.site.quack-lab.dev.crt b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/adguard.site.quack-lab.dev/adguard.site.quack-lab.dev.crt new file mode 100644 index 0000000..08807ee --- /dev/null +++ b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/adguard.site.quack-lab.dev/adguard.site.quack-lab.dev.crt @@ -0,0 +1,49 @@ +-----BEGIN CERTIFICATE----- +MIIDozCCAyigAwIBAgISBnDp0rVlKnSnVZabhyNiDBANMAoGCCqGSM49BAMDMDIx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF +ODAeFw0yNTEwMjEwNzU2NTlaFw0yNjAxMTkwNzU2NThaMCUxIzAhBgNVBAMTGmFk +Z3VhcmQuc2l0ZS5xdWFjay1sYWIuZGV2MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD +QgAElmbxOX/aJDe3gJyBVnryuheGNhKyxUj+sEgVOTXkNx/Pq3Eu1DkCIy/ETVIo +wsVhCsF5YejJZsTAtsaUCVZFnKOCAikwggIlMA4GA1UdDwEB/wQEAwIHgDAdBgNV +HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4E +FgQUX88c+BEndcn6jUV7vFJ3ChI1RVAwHwYDVR0jBBgwFoAUjw0TovYuftFQbDMY +OF1ZjiNykcowMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAChhZodHRwOi8vZTgu +aS5sZW5jci5vcmcvMCUGA1UdEQQeMByCGmFkZ3VhcmQuc2l0ZS5xdWFjay1sYWIu +ZGV2MBMGA1UdIAQMMAowCAYGZ4EMAQIBMC0GA1UdHwQmMCQwIqAgoB6GHGh0dHA6 +Ly9lOC5jLmxlbmNyLm9yZy8xNC5jcmwwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEA +dwBkEcRspBLsp4kcogIuALyrTygH1B41J6vq/tUDyX3N8AAAAZoF+wtvAAAEAwBI +MEYCIQCu0E4l+aU/H9PYQIc7RkweTYfD0SigkdMQFFgwcAZG6AIhAO/zw2RBq38A +IaJ+AQdrKTRdw/HHAbQ/ON9YdXeiptFJAHYAGYbUxyiqb/66A294Kk0BkarOLXIx +D67OXXBBLSVMx9QAAAGaBfsO/QAABAMARzBFAiBDDSWIUXWm5ykrlGzOnv3pQhMy +v+R5dY1Qpny7u4qe6AIhAL5Pd70P3ZNdGoFWPWgNrJA8QAtvuZEo9+VJUWV7CD/p +MAoGCCqGSM49BAMDA2kAMGYCMQCWY2wtqvJ4E0c+ZdBjtlER047q7N6yiVt1DqEo +XZAopUfNrV5AadBuHTYSj8kM4r4CMQD4cJLlelEgwfFRw9NrjjA5sZSKf6r7onu+ +M6cyQEFw5IbSE3ZFMMqVzV8P4Xken5c= +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEVjCCAj6gAwIBAgIQY5WTY8JOcIJxWRi/w9ftVjANBgkqhkiG9w0BAQsFADBP +MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy +Y2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNDAzMTMwMDAwMDBa +Fw0yNzAzMTIyMzU5NTlaMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBF +bmNyeXB0MQswCQYDVQQDEwJFODB2MBAGByqGSM49AgEGBSuBBAAiA2IABNFl8l7c +S7QMApzSsvru6WyrOq44ofTUOTIzxULUzDMMNMchIJBwXOhiLxxxs0LXeb5GDcHb +R6EToMffgSZjO9SNHfY9gjMy9vQr5/WWOrQTZxh7az6NSNnq3u2ubT6HTKOB+DCB +9TAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMB +MBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFI8NE6L2Ln7RUGwzGDhdWY4j +cpHKMB8GA1UdIwQYMBaAFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEB +BCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzATBgNVHSAE +DDAKMAgGBmeBDAECATAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDEuYy5sZW5j +ci5vcmcvMA0GCSqGSIb3DQEBCwUAA4ICAQBnE0hGINKsCYWi0Xx1ygxD5qihEjZ0 +RI3tTZz1wuATH3ZwYPIp97kWEayanD1j0cDhIYzy4CkDo2jB8D5t0a6zZWzlr98d +AQFNh8uKJkIHdLShy+nUyeZxc5bNeMp1Lu0gSzE4McqfmNMvIpeiwWSYO9w82Ob8 +otvXcO2JUYi3svHIWRm3+707DUbL51XMcY2iZdlCq4Wa9nbuk3WTU4gr6LY8MzVA +aDQG2+4U3eJ6qUF10bBnR1uuVyDYs9RhrwucRVnfuDj29CMLTsplM5f5wSV5hUpm +Uwp/vV7M4w4aGunt74koX71n4EdagCsL/Yk5+mAQU0+tue0JOfAV/R6t1k+Xk9s2 +HMQFeoxppfzAVC04FdG9M+AC2JWxmFSt6BCuh3CEey3fE52Qrj9YM75rtvIjsm/1 +Hl+u//Wqxnu1ZQ4jpa+VpuZiGOlWrqSP9eogdOhCGisnyewWJwRQOqK16wiGyZeR +xs/Bekw65vwSIaVkBruPiTfMOo0Zh4gVa8/qJgMbJbyrwwG97z/PRgmLKCDl8z3d +tA0Z7qq7fta0Gl24uyuB05dqI5J1LvAzKuWdIjT1tP8qCoxSE/xpix8hX2dt3h+/ +jujUgFPFZ0EVZ0xSyBNRF3MboGZnYXFUxpNjTWPKpagDHJQmqrAcDmWJnMsFY3jS +u1igv3OefnWjSQ== +-----END CERTIFICATE----- diff --git a/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/adguard.site.quack-lab.dev/adguard.site.quack-lab.dev.json b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/adguard.site.quack-lab.dev/adguard.site.quack-lab.dev.json new file mode 100644 index 0000000..92e8077 --- /dev/null +++ b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/adguard.site.quack-lab.dev/adguard.site.quack-lab.dev.json @@ -0,0 +1,9 @@ +{ + "sans": [ + "adguard.site.quack-lab.dev" + ], + "issuer_data": { + "url": "https://acme-v02.api.letsencrypt.org/acme/cert/0670e9d2b5652a74a755969b8723620c100d", + "ca": "https://acme-v02.api.letsencrypt.org/directory" + } +} \ No newline at end of file diff --git a/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/adguard.site.quack-lab.dev/adguard.site.quack-lab.dev.key b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/adguard.site.quack-lab.dev/adguard.site.quack-lab.dev.key new file mode 100644 index 0000000..090333c --- /dev/null +++ b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/adguard.site.quack-lab.dev/adguard.site.quack-lab.dev.key @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIMyjBO1DCZsQeQLultn30iBFdG1HvmKgYtPWYzIZWaHEoAoGCCqGSM49 +AwEHoUQDQgAElmbxOX/aJDe3gJyBVnryuheGNhKyxUj+sEgVOTXkNx/Pq3Eu1DkC +Iy/ETVIowsVhCsF5YejJZsTAtsaUCVZFnA== +-----END EC PRIVATE KEY----- diff --git a/coolify/proxy/caddy/data/caddy/last_clean.json b/coolify/proxy/caddy/data/caddy/last_clean.json index c6ba34c..583483a 100644 --- a/coolify/proxy/caddy/data/caddy/last_clean.json +++ b/coolify/proxy/caddy/data/caddy/last_clean.json @@ -1 +1 @@ -{"tls":{"timestamp":"2025-10-19T23:40:36.780967328Z","instance_id":"dbe630cc-bc9f-443e-b311-aec406294c5c"}} \ No newline at end of file +{"tls":{"timestamp":"2025-10-21T12:16:59.256116535Z","instance_id":"dbe630cc-bc9f-443e-b311-aec406294c5c"}} \ No newline at end of file diff --git a/coolify/services/xggc04cwcsc484gogggk4kk8/.env b/coolify/services/xggc04cwcsc484gogggk4kk8/.env index dac6e1f..6315cec 100644 --- a/coolify/services/xggc04cwcsc484gogggk4kk8/.env +++ b/coolify/services/xggc04cwcsc484gogggk4kk8/.env @@ -1,4 +1,5 @@ SERVICE_NAME_N8N=n8n +SERVICE_NAME_POSTGRES=postgres SERVICE_FQDN_N8N=n8n.site.quack-lab.dev SERVICE_FQDN_N8N_5678=n8n.site.quack-lab.dev SERVICE_URL_N8N=https://n8n.site.quack-lab.dev @@ -6,5 +7,12 @@ SERVICE_URL_N8N_5678=https://n8n.site.quack-lab.dev N8N_EDITOR_BASE_URL=${SERVICE_URL_N8N} N8N_HOST=${SERVICE_URL_N8N} WEBHOOK_URL=${SERVICE_URL_N8N} +DB_POSTGRESDB_DATABASE=n8n +DB_POSTGRESDB_HOST=postgres +DB_POSTGRESDB_PASSWORD=uPUj6vjrdWs5P0YOe4CgP3N6ed9adblY +DB_POSTGRESDB_PORT=5432 +DB_POSTGRESDB_SCHEMA=public +DB_POSTGRESDB_USER=n8n +DB_TYPE=postgresdb GENERIC_TIMEZONE=Europe/Berlin TZ=Europe/Berlin \ No newline at end of file diff --git a/coolify/services/xggc04cwcsc484gogggk4kk8/docker-compose.yml b/coolify/services/xggc04cwcsc484gogggk4kk8/docker-compose.yml index 74ff487..1e30f8f 100644 --- a/coolify/services/xggc04cwcsc484gogggk4kk8/docker-compose.yml +++ b/coolify/services/xggc04cwcsc484gogggk4kk8/docker-compose.yml @@ -14,8 +14,11 @@ services: COOLIFY_FQDN: n8n.site.quack-lab.dev COOLIFY_URL: 'https://n8n.site.quack-lab.dev' SERVICE_NAME_N8N: n8n + SERVICE_NAME_POSTGRES: postgres volumes: - 'xggc04cwcsc484gogggk4kk8_n8n-data:/home/node/.n8n' + depends_on: + - postgres healthcheck: test: - CMD-SHELL @@ -63,9 +66,42 @@ services: - caddy_ingress_network=xggc04cwcsc484gogggk4kk8 networks: xggc04cwcsc484gogggk4kk8: null + postgres: + image: 'postgres:15' + restart: always + environment: + POSTGRES_USER: n8n + POSTGRES_PASSWORD: uPUj6vjrdWs5P0YOe4CgP3N6ed9adblY + POSTGRES_DB: n8n + TZ: '${TZ:-Europe/Berlin}' + COOLIFY_RESOURCE_UUID: xggc04cwcsc484gogggk4kk8 + COOLIFY_CONTAINER_NAME: postgres-xggc04cwcsc484gogggk4kk8 + SERVICE_NAME_N8N: n8n + SERVICE_NAME_POSTGRES: postgres + volumes: + - 'xggc04cwcsc484gogggk4kk8_postgres-data:/var/lib/postgresql/data' + container_name: postgres-xggc04cwcsc484gogggk4kk8 + labels: + - coolify.managed=true + - coolify.version=4.0.0-beta.434 + - coolify.serviceId=27 + - coolify.type=service + - coolify.name=postgres-xggc04cwcsc484gogggk4kk8 + - coolify.resourceName=n8n + - coolify.projectName=services + - coolify.serviceName=postgres + - coolify.environmentName=production + - coolify.pullRequestId=0 + - coolify.service.subId=29 + - coolify.service.subType=database + - coolify.service.subName=postgres + networks: + xggc04cwcsc484gogggk4kk8: null volumes: xggc04cwcsc484gogggk4kk8_n8n-data: name: xggc04cwcsc484gogggk4kk8_n8n-data + xggc04cwcsc484gogggk4kk8_postgres-data: + name: xggc04cwcsc484gogggk4kk8_postgres-data networks: xggc04cwcsc484gogggk4kk8: name: xggc04cwcsc484gogggk4kk8