This commit is contained in:
Sparky
2025-10-21 07:42:24 +01:00
parent 3ff60f11dd
commit cf98900b15
12 changed files with 359 additions and 228 deletions

View File

@@ -2,7 +2,15 @@ import /dynamic/*.caddy
https://actual.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.29.2:5006
reverse_proxy 10.0.29.3:5006
}
header -Server
try_files {path} /index.html /index.php
}
https://affine.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.42.4:3010
}
header -Server
try_files {path} /index.html /index.php
@@ -10,7 +18,7 @@ https://actual.site.quack-lab.dev {
https://authwarden.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.31.2:80
reverse_proxy 10.0.31.3:80
}
header -Server
try_files {path} /index.html /index.php
@@ -18,7 +26,7 @@ https://authwarden.site.quack-lab.dev {
https://bitwarden.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.34.2:80
reverse_proxy 10.0.34.3:80
}
header -Server
try_files {path} /index.html /index.php
@@ -26,15 +34,7 @@ https://bitwarden.site.quack-lab.dev {
https://calibre.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.35.2:8083
}
header -Server
try_files {path} /index.html /index.php
}
https://cors.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.4.8:80
reverse_proxy 10.0.35.3:8083
}
header -Server
try_files {path} /index.html /index.php
@@ -42,14 +42,14 @@ https://cors.site.quack-lab.dev {
https://docker.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.36.2:5000
reverse_proxy 10.0.36.3:5000
}
header -Server
try_files {path} /index.html /index.php
}
https://evebase.site.quack-lab.dev {
handle_path /* {
reverse_proxy 10.0.50.2:8080
reverse_proxy 10.0.50.3:8080
}
header -Server
try_files {path} /index.html /index.php
@@ -57,7 +57,7 @@ https://evebase.site.quack-lab.dev {
https://files.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.37.2:3923
reverse_proxy 10.0.37.3:3923
}
header -Server
try_files {path} /index.html /index.php
@@ -65,7 +65,7 @@ https://files.site.quack-lab.dev {
https://git.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.38.3:3000
reverse_proxy 10.0.38.4:3000
}
header -Server
try_files {path} /index.html /index.php
@@ -73,7 +73,7 @@ https://git.site.quack-lab.dev {
https://grafana.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.42.2:43433
reverse_proxy 10.0.64.2:43433
}
header -Server
try_files {path} /index.html /index.php
@@ -84,7 +84,7 @@ https://grist.site.quack-lab.dev {
}
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.39.2:8484
reverse_proxy 10.0.39.3:8484
}
header -Server
try_files {path} /index.html /index.php
@@ -92,7 +92,7 @@ https://grist.site.quack-lab.dev {
https://himmich.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.61.5:2283
reverse_proxy 10.0.61.6:2283
}
header -Server
try_files {path} /index.html /index.php
@@ -100,7 +100,7 @@ https://himmich.site.quack-lab.dev {
https://immich.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.41.5:2283
reverse_proxy 10.0.41.6:2283
}
header -Server
try_files {path} /index.html /index.php
@@ -108,7 +108,7 @@ https://immich.site.quack-lab.dev {
https://jelly.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.44.2:8096
reverse_proxy 10.0.44.3:8096
}
header -Server
try_files {path} /index.html /index.php
@@ -116,7 +116,7 @@ https://jelly.site.quack-lab.dev {
https://meili-web.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.43.2:24900
reverse_proxy 10.0.43.3:24900
}
header -Server
try_files {path} /index.html /index.php
@@ -124,7 +124,7 @@ https://meili-web.site.quack-lab.dev {
https://meili.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.40.2:7700
reverse_proxy 10.0.40.3:7700
}
header -Server
try_files {path} /index.html /index.php
@@ -132,7 +132,7 @@ https://meili.site.quack-lab.dev {
https://n8n.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.46.2:5678
reverse_proxy 10.0.46.3:5678
}
header -Server
try_files {path} /index.html /index.php
@@ -140,7 +140,7 @@ https://n8n.site.quack-lab.dev {
https://nsq-http.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.45.3:4151
reverse_proxy 10.0.45.5:4151
}
header -Server
try_files {path} /index.html /index.php
@@ -148,7 +148,7 @@ https://nsq-http.site.quack-lab.dev {
https://nsq.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.45.3:4151
reverse_proxy 10.0.45.5:4151
}
header -Server
try_files {path} /index.html /index.php
@@ -164,7 +164,7 @@ https://nsqadmin.site.quack-lab.dev {
https://pastefy.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.47.2:80
reverse_proxy 10.0.47.3:80
}
header -Server
try_files {path} /index.html /index.php
@@ -172,35 +172,35 @@ https://pastefy.site.quack-lab.dev {
https://pdf.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.49.2:8080
reverse_proxy 10.0.49.3:8080
}
header -Server
try_files {path} /index.html /index.php
}
https://pocketbase-autoclip.site.quack-lab.dev {
handle_path /* {
reverse_proxy 10.0.48.2:8080
reverse_proxy 10.0.48.3:8080
}
header -Server
try_files {path} /index.html /index.php
}
https://pocketbase-scratch.site.quack-lab.dev {
handle_path /* {
reverse_proxy 10.0.56.2:8080
reverse_proxy 10.0.56.3:8080
}
header -Server
try_files {path} /index.html /index.php
}
https://pocketbase-shoppinglist.site.quack-lab.dev {
handle_path /* {
reverse_proxy 10.0.59.2:8080
reverse_proxy 10.0.59.3:8080
}
header -Server
try_files {path} /index.html /index.php
}
https://pocketbase-truckermajster.site.quack-lab.dev {
handle_path /* {
reverse_proxy 10.0.57.2:8080
reverse_proxy 10.0.57.3:8080
}
header -Server
try_files {path} /index.html /index.php
@@ -208,14 +208,14 @@ https://pocketbase-truckermajster.site.quack-lab.dev {
https://pocketbase-youtube-seencounter.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.51.2:8090
reverse_proxy 10.0.51.3:8090
}
header -Server
try_files {path} /index.html /index.php
}
https://pocketbase-youtube-timestamps.site.quack-lab.dev {
handle_path /* {
reverse_proxy 10.0.55.2:8080
reverse_proxy 10.0.55.3:8080
}
header -Server
try_files {path} /index.html /index.php
@@ -223,7 +223,7 @@ https://pocketbase-youtube-timestamps.site.quack-lab.dev {
https://portainer.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.54.2:9000
reverse_proxy 10.0.54.3:9000
}
header -Server
try_files {path} /index.html /index.php
@@ -231,7 +231,7 @@ https://portainer.site.quack-lab.dev {
https://sync.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.52.2:8384
reverse_proxy 10.0.52.3:8384
}
header -Server
try_files {path} /index.html /index.php
@@ -239,7 +239,7 @@ https://sync.site.quack-lab.dev {
https://torrent.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.53.2:8080
reverse_proxy 10.0.53.3:8080
}
header -Server
try_files {path} /index.html /index.php
@@ -247,7 +247,15 @@ https://torrent.site.quack-lab.dev {
https://zipline.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.60.3:3000
reverse_proxy 10.0.60.4:3000
}
header -Server
try_files {path} /index.html /index.php
}
https://zulip.site.quack-lab.dev {
encode zstd gzip
handle_path /* {
reverse_proxy 10.0.63.7:80
}
header -Server
try_files {path} /index.html /index.php

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,49 @@
-----BEGIN CERTIFICATE-----
MIIDoTCCAyagAwIBAgISBWrYQ91jdEr0ys0+nQthlpWhMAoGCCqGSM49BAMDMDIx
CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF
NzAeFw0yNTEwMjAwNTQ2NTdaFw0yNjAxMTgwNTQ2NTZaMCQxIjAgBgNVBAMTGWFm
ZmluZS5zaXRlLnF1YWNrLWxhYi5kZXYwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC
AARG69+1dFC2L0Yk/29R+v62VSUweZeaWl/eRkSC2xZvDRBU4xvsvnR5+yy8YiT6
7cmjcIElnhGpYsPNZOICHQFKo4ICKDCCAiQwDgYDVR0PAQH/BAQDAgeAMB0GA1Ud
JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQW
BBTfWhXJ8JfaXIcjkNW2Nb329p4DQjAfBgNVHSMEGDAWgBSuSJ7chx1EoG/aouVg
dAR4wpwAgDAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly9lNy5p
LmxlbmNyLm9yZy8wJAYDVR0RBB0wG4IZYWZmaW5lLnNpdGUucXVhY2stbGFiLmRl
djATBgNVHSAEDDAKMAgGBmeBDAECATAtBgNVHR8EJjAkMCKgIKAehhxodHRwOi8v
ZTcuYy5sZW5jci5vcmcvMzQuY3JsMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHcA
SZybad4dfOz8Nt7Nh2SmuFuvCoeAGdFVUvvp6ynd+MMAAAGaAF2hQQAABAMASDBG
AiEA47ug0bOThXBNaVmwKWn1FZK1deJVyhp42DBL4Fi6QtYCIQDCjg4M4hI6R/Q5
Dc2GmH0K5SUR/3kwIGx5a2cvJSgzvAB2AA5XlLzzrqk+MxssmQez95Dfm8I9cTIl
3SGpJaxhxU4hAAABmgBdoTYAAAQDAEcwRQIgJLyCiPBxfHysTFpFE25KW+8LfE/I
BaaACH4te9AhrT0CIQCAOMDzSA6UsZM5/pbm6NYoe0ymIREJl8zITnrZsp2zCjAK
BggqhkjOPQQDAwNpADBmAjEA8k13/kZYFcb9GNdIYEWgEg3jCW17Vz6v3FCmhs0l
5Xs+VhbEnYAq4hMOTR9G2HqeAjEAsOLjrH0+UWYRqbCErVr0SLHv4jX8JueafXnE
7HLfBUYroLPliyEe4exleoJzburJ
-----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-----

View File

@@ -0,0 +1,9 @@
{
"sans": [
"affine.site.quack-lab.dev"
],
"issuer_data": {
"url": "https://acme-v02.api.letsencrypt.org/acme/cert/056ad843dd63744af4cacd3e9d0b619695a1",
"ca": "https://acme-v02.api.letsencrypt.org/directory"
}
}

View File

@@ -0,0 +1,5 @@
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIDfx9FmpNVU9eZnmheXWLjVOrd0STwdJrrAX9YNFo2BnoAoGCCqGSM49
AwEHoUQDQgAERuvftXRQti9GJP9vUfr+tlUlMHmXmlpf3kZEgtsWbw0QVOMb7L50
efssvGIk+u3Jo3CBJZ4RqWLDzWTiAh0BSg==
-----END EC PRIVATE KEY-----

View File

@@ -1 +1 @@
{"tls":{"timestamp":"2025-10-18T12:33:22.477159322Z","instance_id":"dbe630cc-bc9f-443e-b311-aec406294c5c"}}
{"tls":{"timestamp":"2025-10-19T23:40:36.780967328Z","instance_id":"dbe630cc-bc9f-443e-b311-aec406294c5c"}}

View File

@@ -8,6 +8,7 @@ services:
N8N_HOST: '${SERVICE_URL_N8N}'
GENERIC_TIMEZONE: '${GENERIC_TIMEZONE:-Europe/Berlin}'
TZ: '${TZ:-Europe/Berlin}'
NODE_FUNCTION_ALLOW_EXTERNAL: '*'
COOLIFY_RESOURCE_UUID: xggc04cwcsc484gogggk4kk8
COOLIFY_CONTAINER_NAME: n8n-xggc04cwcsc484gogggk4kk8
COOLIFY_FQDN: n8n.site.quack-lab.dev

View File

@@ -9,7 +9,7 @@ services:
COOLIFY_URL: 'https://pocketbase-youtube-seencounter.site.quack-lab.dev'
SERVICE_NAME_POCKETBASE: pocketbase
volumes:
- '/mnt/data/docker/volumes/captain--pocketbase-youtube-seencounter-data/_data:/app/pb_data'
- '/mnt/data/docker/volumes/captain--pocketbase-youtube-seencounter-data/_data:/pb_data'
container_name: pocketbase-yksw08ogw4c88oswckk8sco8
restart: unless-stopped
labels:

View File

@@ -0,0 +1,23 @@
SERVICE_NAME_AFFINE=affine
SERVICE_NAME_AFFINE_MIGRATION=affine_migration
SERVICE_NAME_REDIS=redis
SERVICE_NAME_POSTGRES=postgres
SERVICE_FQDN_AFFINE=affine.site.quack-lab.dev
SERVICE_FQDN_AFFINE_3010=affine.site.quack-lab.dev
SERVICE_PASSWORD_POSTGRES=5isUEmzUS26AkhSlgY0SX5x309wb0m9g
SERVICE_URL_AFFINE=https://affine.site.quack-lab.dev
SERVICE_URL_AFFINE_3010=https://affine.site.quack-lab.dev
SERVICE_USER_POSTGRES=0XjdpcV8sYj5N2yN
AFFINE_SERVER_EXTERNAL_URL=$SERVICE_URL_AFFINE
AFFINE_SERVER_HOST=$SERVICE_URL_AFFINE
POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
POSTGRES_USER=${SERVICE_USER_POSTGRES}
COPILOT_FAL_API_KEY=
COPILOT_OPENAI_API_KEY=
COPILOT_PERPLEXITY_API_KEY=
MAILER_HOST=
MAILER_PASSWORD=
MAILER_PORT=
MAILER_SENDER=
MAILER_USER=
POSTGRES_DB=affine

View File

@@ -0,0 +1,222 @@
services:
affine:
image: 'ghcr.io/toeverything/affine:stable'
depends_on:
redis:
condition: service_healthy
postgres:
condition: service_healthy
volumes:
- 'z8cko84c4ckw80k4gg008wgk_affine-config:/root/.affine/config'
- 'z8cko84c4ckw80k4gg008wgk_affine-storage:/root/.affine/storage'
logging:
driver: json-file
options:
max-size: 1000m
environment:
SERVICE_URL_AFFINE_3010: 'https://affine.site.quack-lab.dev'
AFFINE_CONFIG_PATH: /root/.affine/config
REDIS_SERVER_HOST: redis
DATABASE_URL: 'postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-affine}'
NODE_ENV: production
AFFINE_SERVER_HOST: $SERVICE_URL_AFFINE
AFFINE_SERVER_EXTERNAL_URL: $SERVICE_URL_AFFINE
MAILER_HOST: '${MAILER_HOST}'
MAILER_PORT: '${MAILER_PORT}'
MAILER_USER: '${MAILER_USER}'
MAILER_PASSWORD: '${MAILER_PASSWORD}'
MAILER_SENDER: '${MAILER_SENDER}'
COPILOT_FAL_API_KEY: '${COPILOT_FAL_API_KEY}'
COPILOT_PERPLEXITY_API_KEY: '${COPILOT_PERPLEXITY_API_KEY}'
COPILOT_OPENAI_API_KEY: '${COPILOT_OPENAI_API_KEY}'
COOLIFY_RESOURCE_UUID: z8cko84c4ckw80k4gg008wgk
COOLIFY_CONTAINER_NAME: affine-z8cko84c4ckw80k4gg008wgk
COOLIFY_FQDN: affine.site.quack-lab.dev
COOLIFY_URL: 'https://affine.site.quack-lab.dev'
SERVICE_NAME_AFFINE: affine
SERVICE_NAME_AFFINE_MIGRATION: affine_migration
SERVICE_NAME_REDIS: redis
SERVICE_NAME_POSTGRES: postgres
healthcheck:
test:
- CMD-SHELL
- "bash -c ':> /dev/tcp/127.0.0.1/3010' || exit 1"
interval: 5s
timeout: 20s
retries: 3
container_name: affine-z8cko84c4ckw80k4gg008wgk
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=4.0.0-beta.434
- coolify.serviceId=42
- coolify.type=service
- coolify.name=affine-z8cko84c4ckw80k4gg008wgk
- coolify.resourceName=affine
- coolify.projectName=services
- coolify.serviceName=affine
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=74
- coolify.service.subType=application
- coolify.service.subName=affine
- traefik.enable=true
- traefik.http.middlewares.gzip.compress=true
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-z8cko84c4ckw80k4gg008wgk-affine.entryPoints=http
- traefik.http.routers.http-0-z8cko84c4ckw80k4gg008wgk-affine.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-z8cko84c4ckw80k4gg008wgk-affine.rule=Host(`affine.site.quack-lab.dev`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-z8cko84c4ckw80k4gg008wgk-affine.service=http-0-z8cko84c4ckw80k4gg008wgk-affine
- traefik.http.routers.https-0-z8cko84c4ckw80k4gg008wgk-affine.entryPoints=https
- traefik.http.routers.https-0-z8cko84c4ckw80k4gg008wgk-affine.middlewares=gzip
- 'traefik.http.routers.https-0-z8cko84c4ckw80k4gg008wgk-affine.rule=Host(`affine.site.quack-lab.dev`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-z8cko84c4ckw80k4gg008wgk-affine.service=https-0-z8cko84c4ckw80k4gg008wgk-affine
- traefik.http.routers.https-0-z8cko84c4ckw80k4gg008wgk-affine.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-z8cko84c4ckw80k4gg008wgk-affine.tls=true
- traefik.http.services.http-0-z8cko84c4ckw80k4gg008wgk-affine.loadbalancer.server.port=3010
- traefik.http.services.https-0-z8cko84c4ckw80k4gg008wgk-affine.loadbalancer.server.port=3010
- 'caddy_0.encode=zstd gzip'
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 3010}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://affine.site.quack-lab.dev'
- caddy_ingress_network=z8cko84c4ckw80k4gg008wgk
networks:
z8cko84c4ckw80k4gg008wgk: null
affine_migration:
image: 'ghcr.io/toeverything/affine:${AFFINE_REVISION:-stable}'
restart: on-failure
volumes:
- 'z8cko84c4ckw80k4gg008wgk_affine-storage:/root/.affine/storage'
- 'z8cko84c4ckw80k4gg008wgk_affine-config:/root/.affine/config'
command:
- sh
- '-c'
- 'node ./scripts/self-host-predeploy.js'
environment:
REDIS_SERVER_HOST: redis
DATABASE_URL: 'postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-affine}'
AFFINE_INDEXER_ENABLED: 'false'
COOLIFY_RESOURCE_UUID: z8cko84c4ckw80k4gg008wgk
COOLIFY_CONTAINER_NAME: affine_migration-z8cko84c4ckw80k4gg008wgk
SERVICE_NAME_AFFINE: affine
SERVICE_NAME_AFFINE_MIGRATION: affine_migration
SERVICE_NAME_REDIS: redis
SERVICE_NAME_POSTGRES: postgres
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
container_name: affine_migration-z8cko84c4ckw80k4gg008wgk
labels:
- coolify.managed=true
- coolify.version=4.0.0-beta.434
- coolify.serviceId=42
- coolify.type=service
- coolify.name=affine_migration-z8cko84c4ckw80k4gg008wgk
- coolify.resourceName=affine
- coolify.projectName=services
- coolify.serviceName=affine-migration
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=75
- coolify.service.subType=application
- coolify.service.subName=affine-migration
networks:
z8cko84c4ckw80k4gg008wgk: null
redis:
image: redis
volumes:
- 'z8cko84c4ckw80k4gg008wgk_affine-redis-data:/data'
healthcheck:
test:
- CMD
- redis-cli
- '--raw'
- incr
- ping
interval: 10s
timeout: 5s
retries: 5
container_name: redis-z8cko84c4ckw80k4gg008wgk
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=4.0.0-beta.434
- coolify.serviceId=42
- coolify.type=service
- coolify.name=redis-z8cko84c4ckw80k4gg008wgk
- coolify.resourceName=affine
- coolify.projectName=services
- coolify.serviceName=redis
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=28
- coolify.service.subType=database
- coolify.service.subName=redis
networks:
z8cko84c4ckw80k4gg008wgk: null
environment:
COOLIFY_RESOURCE_UUID: z8cko84c4ckw80k4gg008wgk
COOLIFY_CONTAINER_NAME: redis-z8cko84c4ckw80k4gg008wgk
SERVICE_NAME_AFFINE: affine
SERVICE_NAME_AFFINE_MIGRATION: affine_migration
SERVICE_NAME_REDIS: redis
SERVICE_NAME_POSTGRES: postgres
postgres:
image: 'pgvector/pgvector:pg16'
volumes:
- 'z8cko84c4ckw80k4gg008wgk_affine-postgres-data:/var/lib/postgresql/data'
healthcheck:
test:
- CMD-SHELL
- 'pg_isready -U affine'
interval: 10s
timeout: 5s
retries: 5
environment:
POSTGRES_USER: '${SERVICE_USER_POSTGRES}'
POSTGRES_PASSWORD: '${SERVICE_PASSWORD_POSTGRES}'
POSTGRES_DB: '${POSTGRES_DB:-affine}'
PGDATA: /var/lib/postgresql/data/pgdata
COOLIFY_RESOURCE_UUID: z8cko84c4ckw80k4gg008wgk
COOLIFY_CONTAINER_NAME: postgres-z8cko84c4ckw80k4gg008wgk
SERVICE_NAME_AFFINE: affine
SERVICE_NAME_AFFINE_MIGRATION: affine_migration
SERVICE_NAME_REDIS: redis
SERVICE_NAME_POSTGRES: postgres
container_name: postgres-z8cko84c4ckw80k4gg008wgk
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=4.0.0-beta.434
- coolify.serviceId=42
- coolify.type=service
- coolify.name=postgres-z8cko84c4ckw80k4gg008wgk
- coolify.resourceName=affine
- coolify.projectName=services
- coolify.serviceName=postgres
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=76
- coolify.service.subType=application
- coolify.service.subName=postgres
networks:
z8cko84c4ckw80k4gg008wgk: null
volumes:
z8cko84c4ckw80k4gg008wgk_affine-config:
name: z8cko84c4ckw80k4gg008wgk_affine-config
z8cko84c4ckw80k4gg008wgk_affine-storage:
name: z8cko84c4ckw80k4gg008wgk_affine-storage
z8cko84c4ckw80k4gg008wgk_affine-redis-data:
name: z8cko84c4ckw80k4gg008wgk_affine-redis-data
z8cko84c4ckw80k4gg008wgk_affine-postgres-data:
name: z8cko84c4ckw80k4gg008wgk_affine-postgres-data
networks:
z8cko84c4ckw80k4gg008wgk:
name: z8cko84c4ckw80k4gg008wgk
external: true
configs: { }
secrets: { }

View File

@@ -33,7 +33,7 @@
writable = yes
valid users = dave,jana
[homework]
[himmich]
path = /mnt/data/himmich
read only = no
browsable = yes

View File

@@ -1199,51 +1199,6 @@
<maxTotalSize>4096</maxTotalSize>
</xattrFilter>
</folder>
<folder id="dswjx-sdfxj" label="Homework" path="~/Homework" type="sendreceive" rescanIntervalS="600" fsWatcherEnabled="false" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="HTEPKDB-A4Q3IDU-AD7YGCT-FO6YYDM-2FYSRBF-AQ6CD6U-RZPOJIT-IKQCXQJ" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<device id="YZYNYRO-2XQBYZC-YIXNE4U-2Z36EO5-BAXMNG5-CNR2RO3-Z5FEQSB-WLB4MQL" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<minDiskFree unit="%">10</minDiskFree>
<versioning type="simple">
<param key="cleanoutDays" val="3"></param>
<param key="keep" val="5"></param>
<cleanupIntervalS>3600</cleanupIntervalS>
<fsPath></fsPath>
<fsType>basic</fsType>
</versioning>
<copiers>0</copiers>
<pullerMaxPendingKiB>0</pullerMaxPendingKiB>
<hashers>0</hashers>
<order>random</order>
<ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS>
<pullerPauseS>0</pullerPauseS>
<pullerDelayS>1</pullerDelayS>
<maxConflicts>10</maxConflicts>
<disableSparseFiles>false</disableSparseFiles>
<paused>false</paused>
<markerName>.stfolder</markerName>
<copyOwnershipFromParent>false</copyOwnershipFromParent>
<modTimeWindowS>0</modTimeWindowS>
<maxConcurrentWrites>16</maxConcurrentWrites>
<disableFsync>false</disableFsync>
<blockPullOrder>standard</blockPullOrder>
<copyRangeMethod>standard</copyRangeMethod>
<caseSensitiveFS>false</caseSensitiveFS>
<junctionsAsDirs>false</junctionsAsDirs>
<syncOwnership>false</syncOwnership>
<sendOwnership>false</sendOwnership>
<syncXattrs>false</syncXattrs>
<sendXattrs>false</sendXattrs>
<xattrFilter>
<maxSingleEntrySize>1024</maxSingleEntrySize>
<maxTotalSize>4096</maxTotalSize>
</xattrFilter>
</folder>
<folder id="dzyfd-jyszt" label="Programs-Stickies" path="~/Programs-Stickies" type="sendreceive" rescanIntervalS="600" fsWatcherEnabled="false" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="FIUANY5-WMGFQFM-4AHRQ7S-JMNS5DR-GRLMUJR-X3H5VFY-ZKN4BUB-FIRDDQU" introducedBy="">
@@ -2030,51 +1985,6 @@
<maxTotalSize>4096</maxTotalSize>
</xattrFilter>
</folder>
<folder id="hdxoz-79sy2" label="Audiobooks" path="~/hdxoz-79sy2" type="sendreceive" rescanIntervalS="600" fsWatcherEnabled="false" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="HTEPKDB-A4Q3IDU-AD7YGCT-FO6YYDM-2FYSRBF-AQ6CD6U-RZPOJIT-IKQCXQJ" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<device id="YZYNYRO-2XQBYZC-YIXNE4U-2Z36EO5-BAXMNG5-CNR2RO3-Z5FEQSB-WLB4MQL" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<minDiskFree unit="%">10</minDiskFree>
<versioning type="simple">
<param key="cleanoutDays" val="3"></param>
<param key="keep" val="5"></param>
<cleanupIntervalS>3600</cleanupIntervalS>
<fsPath></fsPath>
<fsType>basic</fsType>
</versioning>
<copiers>0</copiers>
<pullerMaxPendingKiB>0</pullerMaxPendingKiB>
<hashers>0</hashers>
<order>random</order>
<ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS>
<pullerPauseS>0</pullerPauseS>
<pullerDelayS>1</pullerDelayS>
<maxConflicts>10</maxConflicts>
<disableSparseFiles>false</disableSparseFiles>
<paused>false</paused>
<markerName>.stfolder</markerName>
<copyOwnershipFromParent>false</copyOwnershipFromParent>
<modTimeWindowS>0</modTimeWindowS>
<maxConcurrentWrites>16</maxConcurrentWrites>
<disableFsync>false</disableFsync>
<blockPullOrder>standard</blockPullOrder>
<copyRangeMethod>standard</copyRangeMethod>
<caseSensitiveFS>false</caseSensitiveFS>
<junctionsAsDirs>false</junctionsAsDirs>
<syncOwnership>false</syncOwnership>
<sendOwnership>false</sendOwnership>
<syncXattrs>false</syncXattrs>
<sendXattrs>false</sendXattrs>
<xattrFilter>
<maxSingleEntrySize>1024</maxSingleEntrySize>
<maxTotalSize>4096</maxTotalSize>
</xattrFilter>
</folder>
<folder id="htehm-zrnhp" label="Games-EscapeFromTarkov" path="~/Games-EscapeFromTarkov" type="sendreceive" rescanIntervalS="600" fsWatcherEnabled="false" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="YZYNYRO-2XQBYZC-YIXNE4U-2Z36EO5-BAXMNG5-CNR2RO3-Z5FEQSB-WLB4MQL" introducedBy="">
@@ -2207,54 +2117,6 @@
<maxTotalSize>4096</maxTotalSize>
</xattrFilter>
</folder>
<folder id="ik765-rqunr" label="SDHomework" path="~/SDHomework" type="sendreceive" rescanIntervalS="600" fsWatcherEnabled="false" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="DCE6DPD-U7UYS7H-NTGV4QC-5G43U6A-RM5CFHB-QNVXNEU-OH5RVJA-GZBGTAJ" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<device id="HTEPKDB-A4Q3IDU-AD7YGCT-FO6YYDM-2FYSRBF-AQ6CD6U-RZPOJIT-IKQCXQJ" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<device id="YZYNYRO-2XQBYZC-YIXNE4U-2Z36EO5-BAXMNG5-CNR2RO3-Z5FEQSB-WLB4MQL" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<minDiskFree unit="%">10</minDiskFree>
<versioning type="simple">
<param key="cleanoutDays" val="3"></param>
<param key="keep" val="5"></param>
<cleanupIntervalS>3600</cleanupIntervalS>
<fsPath></fsPath>
<fsType>basic</fsType>
</versioning>
<copiers>0</copiers>
<pullerMaxPendingKiB>0</pullerMaxPendingKiB>
<hashers>0</hashers>
<order>random</order>
<ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS>
<pullerPauseS>0</pullerPauseS>
<pullerDelayS>1</pullerDelayS>
<maxConflicts>10</maxConflicts>
<disableSparseFiles>false</disableSparseFiles>
<paused>false</paused>
<markerName>.stfolder</markerName>
<copyOwnershipFromParent>false</copyOwnershipFromParent>
<modTimeWindowS>0</modTimeWindowS>
<maxConcurrentWrites>16</maxConcurrentWrites>
<disableFsync>false</disableFsync>
<blockPullOrder>standard</blockPullOrder>
<copyRangeMethod>standard</copyRangeMethod>
<caseSensitiveFS>false</caseSensitiveFS>
<junctionsAsDirs>false</junctionsAsDirs>
<syncOwnership>false</syncOwnership>
<sendOwnership>false</sendOwnership>
<syncXattrs>false</syncXattrs>
<sendXattrs>false</sendXattrs>
<xattrFilter>
<maxSingleEntrySize>1024</maxSingleEntrySize>
<maxTotalSize>4096</maxTotalSize>
</xattrFilter>
</folder>
<folder id="ipbfz-fqfes" label="Games-BattleBrothers" path="~/Games-BattleBrothers" type="sendreceive" rescanIntervalS="600" fsWatcherEnabled="false" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="YZYNYRO-2XQBYZC-YIXNE4U-2Z36EO5-BAXMNG5-CNR2RO3-Z5FEQSB-WLB4MQL" introducedBy="">
@@ -3986,54 +3848,6 @@
<maxTotalSize>4096</maxTotalSize>
</xattrFilter>
</folder>
<folder id="trgul-fo3k3" label="Audiobooks" path="~/Audiobooks" type="sendreceive" rescanIntervalS="600" fsWatcherEnabled="false" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="FIUANY5-WMGFQFM-4AHRQ7S-JMNS5DR-GRLMUJR-X3H5VFY-ZKN4BUB-FIRDDQU" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<device id="HTEPKDB-A4Q3IDU-AD7YGCT-FO6YYDM-2FYSRBF-AQ6CD6U-RZPOJIT-IKQCXQJ" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<device id="YZYNYRO-2XQBYZC-YIXNE4U-2Z36EO5-BAXMNG5-CNR2RO3-Z5FEQSB-WLB4MQL" introducedBy="">
<encryptionPassword></encryptionPassword>
</device>
<minDiskFree unit="%">10</minDiskFree>
<versioning type="simple">
<param key="cleanoutDays" val="3"></param>
<param key="keep" val="5"></param>
<cleanupIntervalS>3600</cleanupIntervalS>
<fsPath></fsPath>
<fsType>basic</fsType>
</versioning>
<copiers>0</copiers>
<pullerMaxPendingKiB>0</pullerMaxPendingKiB>
<hashers>0</hashers>
<order>random</order>
<ignoreDelete>false</ignoreDelete>
<scanProgressIntervalS>0</scanProgressIntervalS>
<pullerPauseS>0</pullerPauseS>
<pullerDelayS>1</pullerDelayS>
<maxConflicts>10</maxConflicts>
<disableSparseFiles>false</disableSparseFiles>
<paused>false</paused>
<markerName>.stfolder</markerName>
<copyOwnershipFromParent>false</copyOwnershipFromParent>
<modTimeWindowS>0</modTimeWindowS>
<maxConcurrentWrites>16</maxConcurrentWrites>
<disableFsync>false</disableFsync>
<blockPullOrder>standard</blockPullOrder>
<copyRangeMethod>standard</copyRangeMethod>
<caseSensitiveFS>false</caseSensitiveFS>
<junctionsAsDirs>false</junctionsAsDirs>
<syncOwnership>false</syncOwnership>
<sendOwnership>false</sendOwnership>
<syncXattrs>false</syncXattrs>
<sendXattrs>false</sendXattrs>
<xattrFilter>
<maxSingleEntrySize>1024</maxSingleEntrySize>
<maxTotalSize>4096</maxTotalSize>
</xattrFilter>
</folder>
<folder id="tsybh-kesev" label="Programs-LibreAutomate" path="~/Programs-LibreAutomate" type="sendreceive" rescanIntervalS="600" fsWatcherEnabled="false" fsWatcherDelayS="10" fsWatcherTimeoutS="0" ignorePerms="false" autoNormalize="true">
<filesystemType>basic</filesystemType>
<device id="FIUANY5-WMGFQFM-4AHRQ7S-JMNS5DR-GRLMUJR-X3H5VFY-ZKN4BUB-FIRDDQU" introducedBy="">