This commit is contained in:
Sparky
2025-10-18 16:44:11 +01:00
parent 0db8459160
commit 2d0646d07e
24 changed files with 659 additions and 54 deletions

View File

@@ -0,0 +1,3 @@
SERVICE_NAME_STIRLING_PDF=stirling-pdf
SERVICE_FQDN_STIRLING_PDF=pdf.site.quack-lab.dev
SERVICE_URL_STIRLING_PDF=https://pdf.site.quack-lab.dev

View File

@@ -0,0 +1,66 @@
services:
stirling-pdf:
image: 'docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest'
ports:
- '8080:8080'
volumes:
- 'n0884oo0ws0s4ocw4c44scss_stirling-pdf-extraconfigs:/configs'
- 'n0884oo0ws0s4ocw4c44scss_stirling-pdf-customfiles:/customFiles/'
- 'n0884oo0ws0s4ocw4c44scss_stirling-pdf-pipeline:/pipeline/'
environment:
DISABLE_ADDITIONAL_FEATURES: 'false'
LANGS: en_GB
COOLIFY_RESOURCE_UUID: n0884oo0ws0s4ocw4c44scss
COOLIFY_CONTAINER_NAME: stirling-pdf-n0884oo0ws0s4ocw4c44scss
COOLIFY_FQDN: pdf.site.quack-lab.dev
COOLIFY_URL: 'https://pdf.site.quack-lab.dev'
SERVICE_NAME_STIRLING_PDF: stirling-pdf
container_name: stirling-pdf-n0884oo0ws0s4ocw4c44scss
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=4.0.0-beta.434
- coolify.serviceId=39
- coolify.type=service
- coolify.name=stirling-pdf-n0884oo0ws0s4ocw4c44scss
- coolify.resourceName=pdf
- coolify.projectName=services
- coolify.serviceName=stirling-pdf
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=69
- coolify.service.subType=application
- coolify.service.subName=stirling-pdf
- traefik.enable=true
- traefik.http.middlewares.gzip.compress=true
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-n0884oo0ws0s4ocw4c44scss-stirling-pdf.entryPoints=http
- traefik.http.routers.http-0-n0884oo0ws0s4ocw4c44scss-stirling-pdf.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-n0884oo0ws0s4ocw4c44scss-stirling-pdf.rule=Host(`pdf.site.quack-lab.dev`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-n0884oo0ws0s4ocw4c44scss-stirling-pdf.entryPoints=https
- traefik.http.routers.https-0-n0884oo0ws0s4ocw4c44scss-stirling-pdf.middlewares=gzip
- 'traefik.http.routers.https-0-n0884oo0ws0s4ocw4c44scss-stirling-pdf.rule=Host(`pdf.site.quack-lab.dev`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-n0884oo0ws0s4ocw4c44scss-stirling-pdf.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-n0884oo0ws0s4ocw4c44scss-stirling-pdf.tls=true
- 'caddy_0.encode=zstd gzip'
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://pdf.site.quack-lab.dev'
- caddy_ingress_network=n0884oo0ws0s4ocw4c44scss
networks:
n0884oo0ws0s4ocw4c44scss: null
volumes:
n0884oo0ws0s4ocw4c44scss_stirling-pdf-extraconfigs:
name: n0884oo0ws0s4ocw4c44scss_stirling-pdf-extraconfigs
n0884oo0ws0s4ocw4c44scss_stirling-pdf-customfiles:
name: n0884oo0ws0s4ocw4c44scss_stirling-pdf-customfiles
n0884oo0ws0s4ocw4c44scss_stirling-pdf-pipeline:
name: n0884oo0ws0s4ocw4c44scss_stirling-pdf-pipeline
networks:
n0884oo0ws0s4ocw4c44scss:
name: n0884oo0ws0s4ocw4c44scss
external: true
configs: { }
secrets: { }

View File

@@ -0,0 +1,17 @@
SERVICE_NAME_IMMICH=immich
SERVICE_NAME_IMMICH_MACHINE_LEARNING=immich-machine-learning
SERVICE_NAME_REDIS=redis
SERVICE_NAME_DATABASE=database
SERVICE_FQDN_IMMICH=immich.site.quack-lab.dev
SERVICE_FQDN_IMMICH_2283=immich.site.quack-lab.dev
SERVICE_PASSWORD_POSTGRES=GIeKrmc33b6T40sNgA0nHQzm3nvI1ar1
SERVICE_URL_IMMICH=https://immich.site.quack-lab.dev
SERVICE_URL_IMMICH_2283=https://immich.site.quack-lab.dev
SERVICE_USER_POSTGRES=sHTi28dK0OcwfHwP
DB_PASSWORD=$SERVICE_PASSWORD_POSTGRES
DB_USERNAME=$SERVICE_USER_POSTGRES
POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
POSTGRES_USER=${SERVICE_USER_POSTGRES}
DB_DATABASE_NAME=immich
DB_STORAGE_TYPE=SSD
TZ=Etc/UTC

View File

@@ -0,0 +1,195 @@
services:
immich:
image: 'ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}'
volumes:
- 'rokg4k0o0sw404gowks8og80_immich-uploads:/usr/src/app/upload'
- '/etc/localtime:/etc/localtime:ro'
environment:
SERVICE_URL_IMMICH_2283: 'https://immich.site.quack-lab.dev'
UPLOAD_LOCATION: ./library
DB_DATA_LOCATION: ./postgres
DB_PASSWORD: $SERVICE_PASSWORD_POSTGRES
DB_USERNAME: $SERVICE_USER_POSTGRES
DB_DATABASE_NAME: '${DB_DATABASE_NAME:-immich}'
TZ: '${TZ:-Etc/UTC}'
COOLIFY_RESOURCE_UUID: rokg4k0o0sw404gowks8og80
COOLIFY_CONTAINER_NAME: immich-rokg4k0o0sw404gowks8og80
COOLIFY_FQDN: immich.site.quack-lab.dev
COOLIFY_URL: 'https://immich.site.quack-lab.dev'
SERVICE_NAME_IMMICH: immich
SERVICE_NAME_IMMICH_MACHINE_LEARNING: immich-machine-learning
SERVICE_NAME_REDIS: redis
SERVICE_NAME_DATABASE: database
depends_on:
redis:
condition: service_healthy
database:
condition: service_healthy
healthcheck:
disable: false
container_name: immich-rokg4k0o0sw404gowks8og80
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=4.0.0-beta.434
- coolify.serviceId=40
- coolify.type=service
- coolify.name=immich-rokg4k0o0sw404gowks8og80
- coolify.resourceName=immich
- coolify.projectName=services
- coolify.serviceName=immich
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=70
- coolify.service.subType=application
- coolify.service.subName=immich
- traefik.enable=true
- traefik.http.middlewares.gzip.compress=true
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-rokg4k0o0sw404gowks8og80-immich.entryPoints=http
- traefik.http.routers.http-0-rokg4k0o0sw404gowks8og80-immich.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-rokg4k0o0sw404gowks8og80-immich.rule=Host(`immich.site.quack-lab.dev`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-rokg4k0o0sw404gowks8og80-immich.service=http-0-rokg4k0o0sw404gowks8og80-immich
- traefik.http.routers.https-0-rokg4k0o0sw404gowks8og80-immich.entryPoints=https
- traefik.http.routers.https-0-rokg4k0o0sw404gowks8og80-immich.middlewares=gzip
- 'traefik.http.routers.https-0-rokg4k0o0sw404gowks8og80-immich.rule=Host(`immich.site.quack-lab.dev`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-rokg4k0o0sw404gowks8og80-immich.service=https-0-rokg4k0o0sw404gowks8og80-immich
- traefik.http.routers.https-0-rokg4k0o0sw404gowks8og80-immich.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-rokg4k0o0sw404gowks8og80-immich.tls=true
- traefik.http.services.http-0-rokg4k0o0sw404gowks8og80-immich.loadbalancer.server.port=2283
- traefik.http.services.https-0-rokg4k0o0sw404gowks8og80-immich.loadbalancer.server.port=2283
- 'caddy_0.encode=zstd gzip'
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2283}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://immich.site.quack-lab.dev'
- caddy_ingress_network=rokg4k0o0sw404gowks8og80
networks:
rokg4k0o0sw404gowks8og80: null
immich-machine-learning:
container_name: immich-machine-learning-rokg4k0o0sw404gowks8og80
image: 'ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}'
volumes:
- 'rokg4k0o0sw404gowks8og80_immich-model-cache:/cache'
environment:
UPLOAD_LOCATION: ./library
DB_DATA_LOCATION: ./postgres
DB_PASSWORD: $SERVICE_PASSWORD_POSTGRES
DB_USERNAME: $SERVICE_USER_POSTGRES
DB_DATABASE_NAME: '${DB_DATABASE_NAME:-immich}'
TZ: '${TZ:-Etc/UTC}'
COOLIFY_RESOURCE_UUID: rokg4k0o0sw404gowks8og80
COOLIFY_CONTAINER_NAME: immich-machine-learning-rokg4k0o0sw404gowks8og80
SERVICE_NAME_IMMICH: immich
SERVICE_NAME_IMMICH_MACHINE_LEARNING: immich-machine-learning
SERVICE_NAME_REDIS: redis
SERVICE_NAME_DATABASE: database
healthcheck:
disable: false
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=4.0.0-beta.434
- coolify.serviceId=40
- coolify.type=service
- coolify.name=immich-machine-learning-rokg4k0o0sw404gowks8og80
- coolify.resourceName=immich
- coolify.projectName=services
- coolify.serviceName=immich-machine-learning
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=71
- coolify.service.subType=application
- coolify.service.subName=immich-machine-learning
networks:
rokg4k0o0sw404gowks8og80: null
redis:
image: 'redis:7.4-alpine'
healthcheck:
test:
- CMD
- redis-cli
- PING
interval: 5s
timeout: 10s
retries: 20
container_name: redis-rokg4k0o0sw404gowks8og80
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=4.0.0-beta.434
- coolify.serviceId=40
- coolify.type=service
- coolify.name=redis-rokg4k0o0sw404gowks8og80
- coolify.resourceName=immich
- coolify.projectName=services
- coolify.serviceName=redis
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=24
- coolify.service.subType=database
- coolify.service.subName=redis
networks:
rokg4k0o0sw404gowks8og80: null
environment:
COOLIFY_RESOURCE_UUID: rokg4k0o0sw404gowks8og80
COOLIFY_CONTAINER_NAME: redis-rokg4k0o0sw404gowks8og80
SERVICE_NAME_IMMICH: immich
SERVICE_NAME_IMMICH_MACHINE_LEARNING: immich-machine-learning
SERVICE_NAME_REDIS: redis
SERVICE_NAME_DATABASE: database
database:
image: 'ghcr.io/immich-app/postgres:14-vectorchord0.3.0-pgvectors0.2.0'
environment:
POSTGRES_PASSWORD: '${SERVICE_PASSWORD_POSTGRES}'
POSTGRES_USER: '${SERVICE_USER_POSTGRES}'
POSTGRES_DB: '${DB_DATABASE_NAME:-immich}'
POSTGRES_INITDB_ARGS: '--data-checksums'
DB_STORAGE_TYPE: '${DB_STORAGE_TYPE:-SSD}'
COOLIFY_RESOURCE_UUID: rokg4k0o0sw404gowks8og80
COOLIFY_CONTAINER_NAME: database-rokg4k0o0sw404gowks8og80
SERVICE_NAME_IMMICH: immich
SERVICE_NAME_IMMICH_MACHINE_LEARNING: immich-machine-learning
SERVICE_NAME_REDIS: redis
SERVICE_NAME_DATABASE: database
volumes:
- 'rokg4k0o0sw404gowks8og80_immich-postgres-data:/var/lib/postgresql/data'
healthcheck:
test:
- CMD-SHELL
- 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'
interval: 5s
timeout: 20s
retries: 10
container_name: database-rokg4k0o0sw404gowks8og80
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=4.0.0-beta.434
- coolify.serviceId=40
- coolify.type=service
- coolify.name=database-rokg4k0o0sw404gowks8og80
- coolify.resourceName=immich
- coolify.projectName=services
- coolify.serviceName=database
- coolify.environmentName=production
- coolify.pullRequestId=0
- coolify.service.subId=25
- coolify.service.subType=database
- coolify.service.subName=database
networks:
rokg4k0o0sw404gowks8og80: null
volumes:
rokg4k0o0sw404gowks8og80_immich-uploads:
name: rokg4k0o0sw404gowks8og80_immich-uploads
rokg4k0o0sw404gowks8og80_immich-model-cache:
name: rokg4k0o0sw404gowks8og80_immich-model-cache
rokg4k0o0sw404gowks8og80_immich-postgres-data:
name: rokg4k0o0sw404gowks8og80_immich-postgres-data
networks:
rokg4k0o0sw404gowks8og80:
name: rokg4k0o0sw404gowks8og80
external: true
configs: { }
secrets: { }

View File

@@ -66,28 +66,46 @@ services:
- traefik.http.routers.http-0-sw0k48s8kckoo80g80co0c0o-nsqd.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-sw0k48s8kckoo80g80co0c0o-nsqd.rule=Host(`nsq.site.quack-lab.dev`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-sw0k48s8kckoo80g80co0c0o-nsqd.service=http-0-sw0k48s8kckoo80g80co0c0o-nsqd
- traefik.http.routers.http-1-sw0k48s8kckoo80g80co0c0o-nsqd.entryPoints=http
- traefik.http.routers.http-1-sw0k48s8kckoo80g80co0c0o-nsqd.middlewares=redirect-to-https
- 'traefik.http.routers.http-1-sw0k48s8kckoo80g80co0c0o-nsqd.rule=Host(`nsq-http.site.quack-lab.dev`) && PathPrefix(`/`)'
- traefik.http.routers.http-1-sw0k48s8kckoo80g80co0c0o-nsqd.service=http-1-sw0k48s8kckoo80g80co0c0o-nsqd
- traefik.http.routers.https-0-sw0k48s8kckoo80g80co0c0o-nsqd.entryPoints=https
- traefik.http.routers.https-0-sw0k48s8kckoo80g80co0c0o-nsqd.middlewares=gzip
- 'traefik.http.routers.https-0-sw0k48s8kckoo80g80co0c0o-nsqd.rule=Host(`nsq.site.quack-lab.dev`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-sw0k48s8kckoo80g80co0c0o-nsqd.service=https-0-sw0k48s8kckoo80g80co0c0o-nsqd
- traefik.http.routers.https-0-sw0k48s8kckoo80g80co0c0o-nsqd.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-sw0k48s8kckoo80g80co0c0o-nsqd.tls=true
- traefik.http.routers.https-1-sw0k48s8kckoo80g80co0c0o-nsqd.entryPoints=https
- traefik.http.routers.https-1-sw0k48s8kckoo80g80co0c0o-nsqd.middlewares=gzip
- 'traefik.http.routers.https-1-sw0k48s8kckoo80g80co0c0o-nsqd.rule=Host(`nsq-http.site.quack-lab.dev`) && PathPrefix(`/`)'
- traefik.http.routers.https-1-sw0k48s8kckoo80g80co0c0o-nsqd.service=https-1-sw0k48s8kckoo80g80co0c0o-nsqd
- traefik.http.routers.https-1-sw0k48s8kckoo80g80co0c0o-nsqd.tls.certresolver=letsencrypt
- traefik.http.routers.https-1-sw0k48s8kckoo80g80co0c0o-nsqd.tls=true
- traefik.http.services.http-0-sw0k48s8kckoo80g80co0c0o-nsqd.loadbalancer.server.port=4151
- traefik.http.services.http-1-sw0k48s8kckoo80g80co0c0o-nsqd.loadbalancer.server.port=4151
- traefik.http.services.https-0-sw0k48s8kckoo80g80co0c0o-nsqd.loadbalancer.server.port=4151
- traefik.http.services.https-1-sw0k48s8kckoo80g80co0c0o-nsqd.loadbalancer.server.port=4151
- 'caddy_0.encode=zstd gzip'
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 4151}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://nsq.site.quack-lab.dev'
- 'caddy_1.encode=zstd gzip'
- 'caddy_1.handle_path.1_reverse_proxy={{upstreams 4151}}'
- 'caddy_1.handle_path=/*'
- caddy_1.header=-Server
- 'caddy_1.try_files={path} /index.html /index.php'
- 'caddy_1=https://nsq-http.site.quack-lab.dev'
- caddy_ingress_network=sw0k48s8kckoo80g80co0c0o
networks:
sw0k48s8kckoo80g80co0c0o: null
environment:
COOLIFY_RESOURCE_UUID: sw0k48s8kckoo80g80co0c0o
COOLIFY_CONTAINER_NAME: nsqd-sw0k48s8kckoo80g80co0c0o
COOLIFY_FQDN: nsq.site.quack-lab.dev
COOLIFY_URL: 'https://nsq.site.quack-lab.dev'
COOLIFY_FQDN: 'nsq.site.quack-lab.dev,nsq-http.site.quack-lab.dev'
COOLIFY_URL: 'https://nsq.site.quack-lab.dev,https://nsq-http.site.quack-lab.dev'
SERVICE_NAME_NSQLOOKUPD: nsqlookupd
SERVICE_NAME_NSQD: nsqd
SERVICE_NAME_NSQADMIN: nsqadmin