From e46c3cee18e519201f9b6096d1bee9f76fa2bc67 Mon Sep 17 00:00:00 2001 From: Sparky Date: Tue, 28 Oct 2025 21:27:10 +0000 Subject: [PATCH] Add typesense to vikunja and update --- .../caddy/config/caddy/Caddyfile.autosave | 10 ++- .../proxy/caddy/config/caddy/autosave.json | 2 +- .../clip.site.quack-lab.dev.crt | 49 +++++++++++++ .../clip.site.quack-lab.dev.json | 9 +++ .../clip.site.quack-lab.dev.key | 5 ++ .../typesense.site.quack-lab.dev.crt | 49 +++++++++++++ .../typesense.site.quack-lab.dev.json | 9 +++ .../typesense.site.quack-lab.dev.key | 5 ++ .../vikunja-typesense.site.quack-lab.dev.crt | 49 +++++++++++++ .../vikunja-typesense.site.quack-lab.dev.json | 9 +++ .../vikunja-typesense.site.quack-lab.dev.key | 5 ++ .../proxy/caddy/data/caddy/last_clean.json | 2 +- .../services/p88kookwkgkg8448k8k84848/.env | 9 ++- .../docker-compose.yml | 71 +++++++++++++++++++ 14 files changed, 279 insertions(+), 4 deletions(-) create mode 100644 coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/clip.site.quack-lab.dev/clip.site.quack-lab.dev.crt create mode 100644 coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/clip.site.quack-lab.dev/clip.site.quack-lab.dev.json create mode 100644 coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/clip.site.quack-lab.dev/clip.site.quack-lab.dev.key create mode 100644 coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/typesense.site.quack-lab.dev/typesense.site.quack-lab.dev.crt create mode 100644 coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/typesense.site.quack-lab.dev/typesense.site.quack-lab.dev.json create mode 100644 coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/typesense.site.quack-lab.dev/typesense.site.quack-lab.dev.key create mode 100644 coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/vikunja-typesense.site.quack-lab.dev/vikunja-typesense.site.quack-lab.dev.crt create mode 100644 coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/vikunja-typesense.site.quack-lab.dev/vikunja-typesense.site.quack-lab.dev.json create mode 100644 coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/vikunja-typesense.site.quack-lab.dev/vikunja-typesense.site.quack-lab.dev.key diff --git a/coolify/proxy/caddy/config/caddy/Caddyfile.autosave b/coolify/proxy/caddy/config/caddy/Caddyfile.autosave index a6df4fb..82a4db4 100644 --- a/coolify/proxy/caddy/config/caddy/Caddyfile.autosave +++ b/coolify/proxy/caddy/config/caddy/Caddyfile.autosave @@ -253,10 +253,18 @@ https://torrent.site.quack-lab.dev { header -Server try_files {path} /index.html /index.php } +https://vikunja-typesense.site.quack-lab.dev { + encode zstd gzip + handle_path /* { + reverse_proxy 10.0.68.3:8108 + } + header -Server + try_files {path} /index.html /index.php +} https://vikunja.site.quack-lab.dev { encode zstd gzip handle_path /* { - reverse_proxy 10.0.68.3:3456 + reverse_proxy 10.0.68.5:3456 } 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 51136c1..01d358e 100644 --- a/coolify/proxy/caddy/config/caddy/autosave.json +++ b/coolify/proxy/caddy/config/caddy/autosave.json @@ -1 +1 @@ -{"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":[{"group":"group74","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"192.168.1.64:9646"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group74","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["libre-metrics-exporter-dave.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group76","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"192.168.1.68:9646"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group76","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["libre-metrics-exporter-jana.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":[{"group":"group79","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"host.docker.internal:56546"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group79","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["nodeexporter-sparky.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":[{"group":"group82","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"host.docker.internal:9646"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group82","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["power-meter-reader.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.66.2:9200"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["elasticsearch.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group86","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"host.docker.internal:43261"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group86","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["prometheus.site.quack-lab.dev","vmagent.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":[{"group":"group89","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"meili-web:24900"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group89","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["meili-web.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group91","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"portainer:9000"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group91","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"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.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":[{"group":"group96","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"host.docker.internal:8428"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group96","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["victoria.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group98","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"nsqd:4151"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group98","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["nsq.site.quack-lab.dev","nsq-http.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group100","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"nsqadmin:4171"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group100","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"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.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":[{"group":"group104","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"host.docker.internal:8000"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group104","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["coolify.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group106","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"grafana-jococcw004848ck4k0owwww0:43433"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group106","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["grafana.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group108","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"qbit:8080"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group108","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"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.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.68.3:3456"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["vikunja.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":[{"group":"group119","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"actual_server:5006"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group119","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["actual.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group121","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"webtop:3000"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group121","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["webtop.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.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.66.3:5601"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["kibana.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.67.2:3000"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["webtop.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group128","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"grist:8484"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group128","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["grist.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group130","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"meilisearch:7700"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group130","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"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.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":[{"group":"group138","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"stirling-pdf:8080"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group138","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["pdf.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.2: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":[{"group":"group75","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"192.168.1.64:9646"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group75","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["libre-metrics-exporter-dave.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group77","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"192.168.1.68:9646"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group77","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["libre-metrics-exporter-jana.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":[{"group":"group80","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"host.docker.internal:56546"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group80","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["nodeexporter-sparky.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":[{"group":"group83","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"host.docker.internal:9646"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group83","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["power-meter-reader.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.68.3:8108"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["vikunja-typesense.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.66.2:9200"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["elasticsearch.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group88","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"host.docker.internal:43261"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group88","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["prometheus.site.quack-lab.dev","vmagent.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":[{"group":"group91","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"meili-web:24900"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group91","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["meili-web.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group93","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"portainer:9000"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group93","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"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.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":[{"group":"group98","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"host.docker.internal:8428"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group98","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["victoria.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group100","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"nsqd:4151"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group100","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["nsq.site.quack-lab.dev","nsq-http.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group102","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"nsqadmin:4171"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group102","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"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.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":[{"group":"group106","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"host.docker.internal:8000"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group106","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["coolify.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group108","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"grafana-jococcw004848ck4k0owwww0:43433"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group108","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["grafana.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group110","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"qbit:8080"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group110","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"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.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.68.5:3456"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["vikunja.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":[{"group":"group121","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"actual_server:5006"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group121","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["actual.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group123","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"webtop:3000"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group123","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["webtop.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.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.66.3:5601"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["kibana.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.67.2:3000"}]}]}]}],"match":[{"path":["/*"]}]}]}],"match":[{"host":["webtop.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group130","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"grist:8484"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group130","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["grist.site.quack-lab.dev"]}],"terminal":true},{"handle":[{"handler":"subroute","routes":[{"group":"group132","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"meilisearch:7700"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group132","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"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.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":[{"group":"group140","handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"reverse_proxy","upstreams":[{"dial":"stirling-pdf:8080"}]}]}]}],"match":[{"remote_ip":{"ranges":["192.168.0.0/16","127.0.0.0/8","10.0.0.0/8","172.16.0.0/12","86.33.11.123"]}}]},{"group":"group140","handle":[{"handler":"subroute","routes":[{"handle":[{"body":"Njet Molotoff","handler":"static_response","status_code":403}]}]}]}]}],"match":[{"host":["pdf.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.2: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/clip.site.quack-lab.dev/clip.site.quack-lab.dev.crt b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/clip.site.quack-lab.dev/clip.site.quack-lab.dev.crt new file mode 100644 index 0000000..f5fc17c --- /dev/null +++ b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/clip.site.quack-lab.dev/clip.site.quack-lab.dev.crt @@ -0,0 +1,49 @@ +-----BEGIN CERTIFICATE----- +MIIDnDCCAyGgAwIBAgISBaUtTCvVdoPkGS099K4Y5QrVMAoGCCqGSM49BAMDMDIx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF +NzAeFw0yNTEwMjgxOTEzNDZaFw0yNjAxMjYxOTEzNDVaMCIxIDAeBgNVBAMTF2Ns +aXAuc2l0ZS5xdWFjay1sYWIuZGV2MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE +ODgLXjy+5cuuqo/SC3S3ngkHRwsFSLf7kHYrRaMP0DYDVa2zTgQFCn3bZxjC30gq +UIdL+1g1fu+FXxmPcru5BKOCAiUwggIhMA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUE +FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU +jDJBP7t0WwPsnkXc6s/+nRb+PrMwHwYDVR0jBBgwFoAUrkie3IcdRKBv2qLlYHQE +eMKcAIAwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAChhZodHRwOi8vZTcuaS5s +ZW5jci5vcmcvMCIGA1UdEQQbMBmCF2NsaXAuc2l0ZS5xdWFjay1sYWIuZGV2MBMG +A1UdIAQMMAowCAYGZ4EMAQIBMC0GA1UdHwQmMCQwIqAgoB6GHGh0dHA6Ly9lNy5j +LmxlbmNyLm9yZy84Ni5jcmwwggEEBgorBgEEAdZ5AgQCBIH1BIHyAPAAdgAZhtTH +KKpv/roDb3gqTQGRqs4tcjEPrs5dcEEtJUzH1AAAAZoscy3oAAAEAwBHMEUCIFdz +TWO0ncGb77Lp1Mnh/qiiz5NRFgg3Q5diYJjg3Gx7AiEAi9TO/W9mAEQ7Tn8l8cm7 +mILvh76QuyoeuJWNdbjUwgMAdgCWl2S/VViXrfdDh2g3CEJ36fA61fak8zZuRqQ/ +D8qpxgAAAZoscy4rAAAEAwBHMEUCIQCTmfYRm4DFSx3ls+irXiITcseV7p9Gjg+g +LFFOCjomgAIges8K95IhSsI4MFYg8LIN3W+b1O9Xig6CzutTsnxVjWkwCgYIKoZI +zj0EAwMDaQAwZgIxAOUia2rSvnSGzfn7uvK3nmNblMDj3HxL3L1ofDu6cGsDmPyB +E5qbJDiAgvV0zpPZmwIxAM8rFdLJ6M7pT9C9wvBoI72Q80bMFfQMrBDGSj7Q9ojY +b59TbBAheWupbem8qiiIuA== +-----END CERTIFICATE----- + +-----BEGIN CERTIFICATE----- +MIIEVzCCAj+gAwIBAgIRAKp18eYrjwoiCWbTi7/UuqEwDQYJKoZIhvcNAQELBQAw +TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh +cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw +WhcNMjcwMzEyMjM1OTU5WjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg +RW5jcnlwdDELMAkGA1UEAxMCRTcwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARB6AST +CFh/vjcwDMCgQer+VtqEkz7JANurZxLP+U9TCeioL6sp5Z8VRvRbYk4P1INBmbef +QHJFHCxcSjKmwtvGBWpl/9ra8HW0QDsUaJW2qOJqceJ0ZVFT3hbUHifBM/2jgfgw +gfUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD +ATASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSuSJ7chx1EoG/aouVgdAR4 +wpwAgDAfBgNVHSMEGDAWgBR5tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcB +AQQmMCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0g +BAwwCjAIBgZngQwBAgEwJwYDVR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVu +Y3Iub3JnLzANBgkqhkiG9w0BAQsFAAOCAgEAjx66fDdLk5ywFn3CzA1w1qfylHUD +aEf0QZpXcJseddJGSfbUUOvbNR9N/QQ16K1lXl4VFyhmGXDT5Kdfcr0RvIIVrNxF +h4lqHtRRCP6RBRstqbZ2zURgqakn/Xip0iaQL0IdfHBZr396FgknniRYFckKORPG +yM3QKnd66gtMst8I5nkRQlAg/Jb+Gc3egIvuGKWboE1G89NTsN9LTDD3PLj0dUMr +OIuqVjLB8pEC6yk9enrlrqjXQgkLEYhXzq7dLafv5Vkig6Gl0nuuqjqfp0Q1bi1o +yVNAlXe6aUXw92CcghC9bNsKEO1+M52YY5+ofIXlS/SEQbvVYYBLZ5yeiglV6t3S +M6H+vTG0aP9YHzLn/KVOHzGQfXDP7qM5tkf+7diZe7o2fw6O7IvN6fsQXEQQj8TJ +UXJxv2/uJhcuy/tSDgXwHM8Uk34WNbRT7zGTGkQRX0gsbjAea/jYAoWv0ZvQRwpq +Pe79D/i7Cep8qWnA+7AE/3B3S/3dEEYmc0lpe1366A/6GEgk3ktr9PEoQrLChs6I +tu3wnNLB2euC8IKGLQFpGtOO/2/hiAKjyajaBP25w1jF0Wl8Bbqne3uZ2q1GyPFJ +YRmT7/OXpmOH/FVLtwS+8ng1cAmpCujPwteJZNcDG0sF2n/sc0+SQf49fdyUK0ty ++VUwFj9tmWxyR/M= +-----END CERTIFICATE----- diff --git a/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/clip.site.quack-lab.dev/clip.site.quack-lab.dev.json b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/clip.site.quack-lab.dev/clip.site.quack-lab.dev.json new file mode 100644 index 0000000..a77f953 --- /dev/null +++ b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/clip.site.quack-lab.dev/clip.site.quack-lab.dev.json @@ -0,0 +1,9 @@ +{ + "sans": [ + "clip.site.quack-lab.dev" + ], + "issuer_data": { + "url": "https://acme-v02.api.letsencrypt.org/acme/cert/05a52d4c2bd57683e4192d3df4ae18e50ad5", + "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/clip.site.quack-lab.dev/clip.site.quack-lab.dev.key b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/clip.site.quack-lab.dev/clip.site.quack-lab.dev.key new file mode 100644 index 0000000..6f9f37e --- /dev/null +++ b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/clip.site.quack-lab.dev/clip.site.quack-lab.dev.key @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIPMPzlpjCbGGdP5c7XOedoQOx3RJZXNjXH2rhRwjvqq6oAoGCCqGSM49 +AwEHoUQDQgAEODgLXjy+5cuuqo/SC3S3ngkHRwsFSLf7kHYrRaMP0DYDVa2zTgQF +Cn3bZxjC30gqUIdL+1g1fu+FXxmPcru5BA== +-----END EC PRIVATE KEY----- diff --git a/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/typesense.site.quack-lab.dev/typesense.site.quack-lab.dev.crt b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/typesense.site.quack-lab.dev/typesense.site.quack-lab.dev.crt new file mode 100644 index 0000000..00ead1c --- /dev/null +++ b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/typesense.site.quack-lab.dev/typesense.site.quack-lab.dev.crt @@ -0,0 +1,49 @@ +-----BEGIN CERTIFICATE----- +MIIDpzCCAyygAwIBAgISBWD2xhx4EXz2AERoY/0ETTu7MAoGCCqGSM49BAMDMDIx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF +ODAeFw0yNTEwMjgyMDIwMDZaFw0yNjAxMjYyMDIwMDVaMCcxJTAjBgNVBAMTHHR5 +cGVzZW5zZS5zaXRlLnF1YWNrLWxhYi5kZXYwWTATBgcqhkjOPQIBBggqhkjOPQMB +BwNCAASUEnaX6sdk3PW/F9VZppO3g96EHffmQGY7gjWf3wxg5gM4VkjyQbZPRdS/ +oUEoJclbJpakXVq6OXnxPwvxpj61o4ICKzCCAicwDgYDVR0PAQH/BAQDAgeAMB0G +A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1Ud +DgQWBBSflLv1J+5+b5oJMojmtZWV4YR/WDAfBgNVHSMEGDAWgBSPDROi9i5+0VBs +Mxg4XVmOI3KRyjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly9l +OC5pLmxlbmNyLm9yZy8wJwYDVR0RBCAwHoIcdHlwZXNlbnNlLnNpdGUucXVhY2st +bGFiLmRldjATBgNVHSAEDDAKMAgGBmeBDAECATAtBgNVHR8EJjAkMCKgIKAehhxo +dHRwOi8vZTguYy5sZW5jci5vcmcvNjAuY3JsMIIBBQYKKwYBBAHWeQIEAgSB9gSB +8wDxAHcAyzj3FYl8hKFEX1vB3fvJbvKaWc1HCmkFhbDLFMMUWOcAAAGaLK/ksAAA +BAMASDBGAiEAiopiwrsS5RDKbRGEHY0jkeTFWKe7R8FAXb/go0blh7oCIQCz8CoY +5fbFpVj6gcaSXbAlZsLPZvsSNlksLqdgDqqxEwB2AJaXZL9VWJet90OHaDcIQnfp +8DrV9qTzNm5GpD8PyqnGAAABmiyv5MUAAAQDAEcwRQIgGszlozgUAlmZZ+CNBeFm +duoE6RvSdV/z3i+oez3tWf0CIQDcAjq8nWRAWla/HuhxoiV2eZLqcObF+HiTvzJ8 +YlzUOTAKBggqhkjOPQQDAwNpADBmAjEApObsOZjZzEl3KOH8c56EH/8oBx/uLJ4y +yBvG54GNkU8/SmP5aQjVE/CdGT4Z8ZI1AjEA5HT5F5ELvExv94bbcpv/cdV7lKKY +LAoeM36+vH6ufxDak0bGHQbPc8CapkTc6WD5 +-----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/typesense.site.quack-lab.dev/typesense.site.quack-lab.dev.json b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/typesense.site.quack-lab.dev/typesense.site.quack-lab.dev.json new file mode 100644 index 0000000..5159fd4 --- /dev/null +++ b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/typesense.site.quack-lab.dev/typesense.site.quack-lab.dev.json @@ -0,0 +1,9 @@ +{ + "sans": [ + "typesense.site.quack-lab.dev" + ], + "issuer_data": { + "url": "https://acme-v02.api.letsencrypt.org/acme/cert/0560f6c61c78117cf600446863fd044d3bbb", + "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/typesense.site.quack-lab.dev/typesense.site.quack-lab.dev.key b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/typesense.site.quack-lab.dev/typesense.site.quack-lab.dev.key new file mode 100644 index 0000000..201745e --- /dev/null +++ b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/typesense.site.quack-lab.dev/typesense.site.quack-lab.dev.key @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIOjO08x0SRhSvH65N5Jhvqj7Fwn9CHMMuE4ogmUY/UJjoAoGCCqGSM49 +AwEHoUQDQgAElBJ2l+rHZNz1vxfVWaaTt4PehB335kBmO4I1n98MYOYDOFZI8kG2 +T0XUv6FBKCXJWyaWpF1aujl58T8L8aY+tQ== +-----END EC PRIVATE KEY----- diff --git a/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/vikunja-typesense.site.quack-lab.dev/vikunja-typesense.site.quack-lab.dev.crt b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/vikunja-typesense.site.quack-lab.dev/vikunja-typesense.site.quack-lab.dev.crt new file mode 100644 index 0000000..f008be9 --- /dev/null +++ b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/vikunja-typesense.site.quack-lab.dev/vikunja-typesense.site.quack-lab.dev.crt @@ -0,0 +1,49 @@ +-----BEGIN CERTIFICATE----- +MIIDtzCCAzygAwIBAgISBtfWNNSFjZoZVefBg3Os3/j4MAoGCCqGSM49BAMDMDIx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF +ODAeFw0yNTEwMjgyMDI0MzJaFw0yNjAxMjYyMDI0MzFaMC8xLTArBgNVBAMTJHZp +a3VuamEtdHlwZXNlbnNlLnNpdGUucXVhY2stbGFiLmRldjBZMBMGByqGSM49AgEG +CCqGSM49AwEHA0IABDFvlXQFtYy5jolJWW6K8iLrLMlLup624H5KbdDV/ovHZ5rJ +Z6saWQamfWk2saf6ahb8kKUsrHO+hxfe72MwNWOjggIzMIICLzAOBgNVHQ8BAf8E +BAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC +MAAwHQYDVR0OBBYEFD6afPEEkf0v7p1p+hYgAhq5cZfnMB8GA1UdIwQYMBaAFI8N +E6L2Ln7RUGwzGDhdWY4jcpHKMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYW +aHR0cDovL2U4LmkubGVuY3Iub3JnLzAvBgNVHREEKDAmgiR2aWt1bmphLXR5cGVz +ZW5zZS5zaXRlLnF1YWNrLWxhYi5kZXYwEwYDVR0gBAwwCjAIBgZngQwBAgEwLgYD +VR0fBCcwJTAjoCGgH4YdaHR0cDovL2U4LmMubGVuY3Iub3JnLzEyMS5jcmwwggEE +BgorBgEEAdZ5AgQCBIH1BIHyAPAAdwBJnJtp3h187Pw23s2HZKa4W68Kh4AZ0VVS +++nrKd34wwAAAZoss/YGAAAEAwBIMEYCIQCFKB6XIZ1Hw58IwRHu+VJrmmVsGU5n +EMhIPPtWUMr0BwIhAK/b6qUnmcap+RKIOTdn7JHmogwK4bGmPmmljGJRoZGoAHUA +lpdkv1VYl633Q4doNwhCd+nwOtX2pPM2bkakPw/KqcYAAAGaLLP2QQAABAMARjBE +AiBj+za/cH7j0zLWSfs8tVZA+Fwy2evTyROX2F4P4Kc5oQIgRlZtg3qLHNyKYSHY +PACe3wTn/qXaRUtrrJLC1CqPDrcwCgYIKoZIzj0EAwMDaQAwZgIxANXX4xx4VNgC +4sG+wonSfN5B6PmWGGPxeRkj5gjMhWacNARG41zvt8eyJR1xx3lNPAIxAKbKNfko +FIx0nbHbPb0Q43U0HbyjvJX80K2zXNmy9hwL935rq+Q7bS1dkP4ZMsfoXg== +-----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/vikunja-typesense.site.quack-lab.dev/vikunja-typesense.site.quack-lab.dev.json b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/vikunja-typesense.site.quack-lab.dev/vikunja-typesense.site.quack-lab.dev.json new file mode 100644 index 0000000..dbe09d9 --- /dev/null +++ b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/vikunja-typesense.site.quack-lab.dev/vikunja-typesense.site.quack-lab.dev.json @@ -0,0 +1,9 @@ +{ + "sans": [ + "vikunja-typesense.site.quack-lab.dev" + ], + "issuer_data": { + "url": "https://acme-v02.api.letsencrypt.org/acme/cert/06d7d634d4858d9a1955e7c18373acdff8f8", + "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/vikunja-typesense.site.quack-lab.dev/vikunja-typesense.site.quack-lab.dev.key b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/vikunja-typesense.site.quack-lab.dev/vikunja-typesense.site.quack-lab.dev.key new file mode 100644 index 0000000..48c4b77 --- /dev/null +++ b/coolify/proxy/caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/vikunja-typesense.site.quack-lab.dev/vikunja-typesense.site.quack-lab.dev.key @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIMmy29xpJ6/upMU1QHZRafwWhXwElQKu37+D3JeYHe3toAoGCCqGSM49 +AwEHoUQDQgAEMW+VdAW1jLmOiUlZboryIussyUu6nrbgfkpt0NX+i8dnmslnqxpZ +BqZ9aTaxp/pqFvyQpSysc76HF97vYzA1Yw== +-----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 9d9b388..2111dcd 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-27T17:21:11.190912636Z","instance_id":"dbe630cc-bc9f-443e-b311-aec406294c5c"}} \ No newline at end of file +{"tls":{"timestamp":"2025-10-28T20:12:11.977723736Z","instance_id":"dbe630cc-bc9f-443e-b311-aec406294c5c"}} \ No newline at end of file diff --git a/coolify/services/p88kookwkgkg8448k8k84848/.env b/coolify/services/p88kookwkgkg8448k8k84848/.env index fbdaad0..18c37a8 100644 --- a/coolify/services/p88kookwkgkg8448k8k84848/.env +++ b/coolify/services/p88kookwkgkg8448k8k84848/.env @@ -1,8 +1,13 @@ SERVICE_NAME_VIKUNJA=vikunja SERVICE_NAME_POSTGRESQL=postgresql +SERVICE_NAME_TYPESENSE=typesense +SERVICE_FQDN_TYPESENSE=vikunja-typesense.site.quack-lab.dev +SERVICE_FQDN_TYPESENSE_8108=vikunja-typesense.site.quack-lab.dev SERVICE_FQDN_VIKUNJA=vikunja.site.quack-lab.dev SERVICE_PASSWORD_JWTSECRET=rOYardNKXhg32Z5B5T0BoC3JGxD9HhD2 SERVICE_PASSWORD_POSTGRESQL=LJNUZyhW1nm3LdeZ1PpBJhwAwLXG62as +SERVICE_URL_TYPESENSE=https://vikunja-typesense.site.quack-lab.dev +SERVICE_URL_TYPESENSE_8108=https://vikunja-typesense.site.quack-lab.dev SERVICE_URL_VIKUNJA=https://vikunja.site.quack-lab.dev SERVICE_USER_POSTGRESQL=Bdqj73QvoRkNw58j POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL} @@ -11,4 +16,6 @@ VIKUNJA_DATABASE_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL} VIKUNJA_DATABASE_USER=${SERVICE_USER_POSTGRESQL} VIKUNJA_SERVICE_JWTSECRET=$SERVICE_PASSWORD_JWTSECRET VIKUNJA_SERVICE_PUBLICURL=$SERVICE_URL_VIKUNJA -POSTGRESQL_DATABASE=postgres \ No newline at end of file +POSTGRESQL_DATABASE=postgres +TYPESENSE_API_KEY=!6A*v7qOnQK9ET$JA2#T8iQTO3v@HL9A +TYPESENSE_ENABLE_CORS=true \ No newline at end of file diff --git a/coolify/services/p88kookwkgkg8448k8k84848/docker-compose.yml b/coolify/services/p88kookwkgkg8448k8k84848/docker-compose.yml index d60371c..7aad4d2 100644 --- a/coolify/services/p88kookwkgkg8448k8k84848/docker-compose.yml +++ b/coolify/services/p88kookwkgkg8448k8k84848/docker-compose.yml @@ -11,6 +11,9 @@ services: VIKUNJA_DATABASE_PASSWORD: '${SERVICE_PASSWORD_POSTGRESQL}' VIKUNJA_DATABASE_USER: '${SERVICE_USER_POSTGRESQL}' VIKUNJA_DATABASE_DATABASE: '${POSTGRESQL_DATABASE}' + VIKUNJA_TYPESENSE_ENABLED: 'true' + VIKUNJA_TYPESENSE_URL: 'https://vikunja-typesense.site.quack-lab.dev' + VIKUNJA_TYPESENSE_APIKEY: '${TYPESENSE_API_KEY:?}' POSTGRESQL_DATABASE: '${POSTGRESQL_DATABASE}' COOLIFY_RESOURCE_UUID: p88kookwkgkg8448k8k84848 COOLIFY_CONTAINER_NAME: vikunja-p88kookwkgkg8448k8k84848 @@ -18,6 +21,7 @@ services: COOLIFY_URL: 'https://vikunja.site.quack-lab.dev' SERVICE_NAME_VIKUNJA: vikunja SERVICE_NAME_POSTGRESQL: postgresql + SERVICE_NAME_TYPESENSE: typesense volumes: - 'p88kookwkgkg8448k8k84848_vikunja-data:/app/vikunja/' depends_on: @@ -72,6 +76,7 @@ services: COOLIFY_CONTAINER_NAME: postgresql-p88kookwkgkg8448k8k84848 SERVICE_NAME_VIKUNJA: vikunja SERVICE_NAME_POSTGRESQL: postgresql + SERVICE_NAME_TYPESENSE: typesense healthcheck: test: - CMD-SHELL @@ -97,11 +102,77 @@ services: - coolify.service.subName=postgresql networks: p88kookwkgkg8448k8k84848: null + typesense: + image: 'typesense/typesense:28.0' + environment: + SERVICE_URL_TYPESENSE_8108: 'https://vikunja-typesense.site.quack-lab.dev' + TYPESENSE_ENABLE_CORS: '${TYPESENSE_ENABLE_CORS:-true}' + TYPESENSE_DATA_DIR: /data + TYPESENSE_API_KEY: '${TYPESENSE_API_KEY:?}' + COOLIFY_RESOURCE_UUID: p88kookwkgkg8448k8k84848 + COOLIFY_CONTAINER_NAME: typesense-p88kookwkgkg8448k8k84848 + COOLIFY_FQDN: vikunja-typesense.site.quack-lab.dev + COOLIFY_URL: 'https://vikunja-typesense.site.quack-lab.dev' + SERVICE_NAME_VIKUNJA: vikunja + SERVICE_NAME_POSTGRESQL: postgresql + SERVICE_NAME_TYPESENSE: typesense + volumes: + - 'p88kookwkgkg8448k8k84848_typesense-data:/data' + healthcheck: + test: + - CMD + - bash + - '-c' + - 'exec 3<>/dev/tcp/localhost/8108 && printf ''GET /health HTTP/1.1\r\nConnection: close\r\n\r\n'' >&3 && head -n1 <&3 | grep ''200'' && exec 3>&-' + retries: 5 + timeout: 7s + container_name: typesense-p88kookwkgkg8448k8k84848 + restart: unless-stopped + labels: + - coolify.managed=true + - coolify.version=4.0.0-beta.434 + - coolify.serviceId=47 + - coolify.type=service + - coolify.name=typesense-p88kookwkgkg8448k8k84848 + - coolify.resourceName=vikunja + - coolify.projectName=services + - coolify.serviceName=typesense + - coolify.environmentName=production + - coolify.pullRequestId=0 + - coolify.service.subId=86 + - coolify.service.subType=application + - coolify.service.subName=typesense + - traefik.enable=true + - traefik.http.middlewares.gzip.compress=true + - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https + - traefik.http.routers.http-0-p88kookwkgkg8448k8k84848-typesense.entryPoints=http + - traefik.http.routers.http-0-p88kookwkgkg8448k8k84848-typesense.middlewares=redirect-to-https + - 'traefik.http.routers.http-0-p88kookwkgkg8448k8k84848-typesense.rule=Host(`vikunja-typesense.site.quack-lab.dev`) && PathPrefix(`/`)' + - traefik.http.routers.http-0-p88kookwkgkg8448k8k84848-typesense.service=http-0-p88kookwkgkg8448k8k84848-typesense + - traefik.http.routers.https-0-p88kookwkgkg8448k8k84848-typesense.entryPoints=https + - traefik.http.routers.https-0-p88kookwkgkg8448k8k84848-typesense.middlewares=gzip + - 'traefik.http.routers.https-0-p88kookwkgkg8448k8k84848-typesense.rule=Host(`vikunja-typesense.site.quack-lab.dev`) && PathPrefix(`/`)' + - traefik.http.routers.https-0-p88kookwkgkg8448k8k84848-typesense.service=https-0-p88kookwkgkg8448k8k84848-typesense + - traefik.http.routers.https-0-p88kookwkgkg8448k8k84848-typesense.tls.certresolver=letsencrypt + - traefik.http.routers.https-0-p88kookwkgkg8448k8k84848-typesense.tls=true + - traefik.http.services.http-0-p88kookwkgkg8448k8k84848-typesense.loadbalancer.server.port=8108 + - traefik.http.services.https-0-p88kookwkgkg8448k8k84848-typesense.loadbalancer.server.port=8108 + - 'caddy_0.encode=zstd gzip' + - 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8108}}' + - 'caddy_0.handle_path=/*' + - caddy_0.header=-Server + - 'caddy_0.try_files={path} /index.html /index.php' + - 'caddy_0=https://vikunja-typesense.site.quack-lab.dev' + - caddy_ingress_network=p88kookwkgkg8448k8k84848 + networks: + p88kookwkgkg8448k8k84848: null volumes: p88kookwkgkg8448k8k84848_vikunja-data: name: p88kookwkgkg8448k8k84848_vikunja-data p88kookwkgkg8448k8k84848_vikunja-postgresql-data: name: p88kookwkgkg8448k8k84848_vikunja-postgresql-data + p88kookwkgkg8448k8k84848_typesense-data: + name: p88kookwkgkg8448k8k84848_typesense-data networks: p88kookwkgkg8448k8k84848: name: p88kookwkgkg8448k8k84848