Compare commits

..

11 Commits

Author SHA1 Message Date
Paul Payne
fc6308b090 Revert supabase Kong to 3.4.2 (3.9.3 has ada library issue on arm64) 2026-10-30 18:21:17 +00:00
Paul Payne
07e20bee59 Fix discourse, moodle, supabase upgrades
- discourse 2026.10.0: skip assets:precompile in init container
  (assets are pre-built in 2026.x images, no git repo present)
  Re-enable slot 2026 as latest
- moodle: migrate from bitnamilegacy/moodle (EOL Aug 2025) to
  oksigenia/moodle:4.5 (drop-in replacement, same env vars/volumes,
  weekly rebuilds with PHP patches)
- supabase: bump all 7 components to self-hosted v0.8.3 tags
  (studio, gotrue, postgrest, realtime, storage-api, postgres-meta, kong)
2026-10-30 18:19:19 +00:00
Paul Payne
a393db8bac Fix jitsi ghcr.io registry, fix keila tz writable volume
- jitsi: stable tags moved to ghcr.io/jitsi/* (no longer on Docker Hub)
- keila: mount emptyDir at /opt/app/lib/tz-0.28.2/priv so the tz
  library can write timezone data (TZ_AUTOUPDATE env var doesn't work,
  it's Elixir app config not env-driven)
2026-10-27 15:44:48 +00:00
Paul Payne
d31ab762f8 Bump bookwyrm, jitsi, librebooking, decidim
- bookwyrm: 0.8.6 -> 0.9.3 (deployment + worker)
- jitsi: all components to stable-11248-2 (web, jicofo, jvb, prosody)
- librebooking: 5.1.0 -> 7.1.0
- decidim: 0.31.0 -> 0.31.6 (patch bump, custom image)
2026-10-27 15:42:24 +00:00
Paul Payne
4d3bb5cbd7 Bump open-webui to v0.12.4 (clean install, test-cloud PVC wiped) 2026-10-27 15:40:51 +00:00
Paul Payne
eb20b458a6 Fix immich init: create .immich marker files in upload subdirs
Immich v3 folder checks require both the directories and .immich
marker files to exist in each upload subdirectory.
2026-10-26 16:29:02 +00:00
Paul Payne
80c0d6b0ac Fix zulip 12.x env vars, try open-webui v0.10.0 intermediate upgrade
- zulip: rename legacy env vars per 12.x migration guide
  (DB_HOST -> SETTING_REMOTE_POSTGRES_HOST, etc.)
  Remove DISABLE_HTTPS/SSL_CERTIFICATE_GENERATION (HTTP is default in 12.x)
  Re-enable slot 12 as latest
- open-webui: try v0.10.0 as intermediate step from v0.9.5
  (v0.12.4 had duplicate column migration error jumping from v0.9.5)
2026-10-26 16:26:43 +00:00
Paul Payne
9c87c0cb1e Fix immich fsGroup, keila tz autoupdate, revert open-webui
- immich: add fsGroup: 1000 so init container can write to PVC
- keila: set TZ_AUTOUPDATE=disabled to prevent tz library crash
  on read-only /opt/app/lib path in v0.30.3
- open-webui: revert to v0.9.5 — v0.12.x migration crashes on
  existing DB (duplicate column name: info_json)
2026-10-26 16:20:23 +00:00
Paul Payne
400fc7bbb1 Fix immich v3 storage dirs, revert discourse and zulip to previous slots
- immich: add init container to create required upload subdirectories
  (thumbs, upload, backups, library, profile, encoded-video) for v3
- discourse: revert to slot 3 (v3.5.3) — 2026.x image changed internal
  build system, needs full template rewrite to work as plain container
- zulip: revert to slot 9 (v9.4) — 12.x renamed all env vars
  (DB_HOST -> SETTING_REMOTE_POSTGRES_HOST, etc.), needs template rewrite
2026-10-26 16:18:39 +00:00
Paul Payne
15edd0cfca Fix gitea 28 and openproject 17 deployment issues
- gitea: use rootless image tag (28.2.0-rootless) since deployment
  runs as non-root UID 1000; standard tag uses s6-overlay requiring root
- openproject: add secretKeyBase secret and SECRET_KEY_BASE env var
  to web, worker, and seeder; v17 enforces non-default SECRET_KEY_BASE
2026-10-26 16:16:34 +00:00
Paul Payne
337a8ecc83 Fix image tags that failed to pull on test-cloud
- discourse: 2026.10.0 -> 2026.10.0-latest (correct tag format)
- formbricks: Docker Hub 6.1.0 -> ghcr.io 4.6.0 (moved to GHCR)
- zulip: Docker Hub 12.3-0 -> ghcr.io 12.3-0 (12.x on GHCR)
- open-webui: v0.12.3 -> v0.12.4 (newer release)
2026-10-26 16:11:41 +00:00
35 changed files with 87 additions and 43 deletions

View File

@@ -22,7 +22,7 @@ spec:
type: RuntimeDefault type: RuntimeDefault
containers: containers:
- name: celery-worker - name: celery-worker
image: ghcr.io/bookwyrm-social/bookwyrm:v0.8.6 image: ghcr.io/bookwyrm-social/bookwyrm:v0.9.3
command: command:
- celery - celery
- -A - -A

View File

@@ -22,7 +22,7 @@ spec:
type: RuntimeDefault type: RuntimeDefault
containers: containers:
- name: bookwyrm - name: bookwyrm
image: ghcr.io/bookwyrm-social/bookwyrm:v0.8.6 image: ghcr.io/bookwyrm-social/bookwyrm:v0.9.3
command: ["/bin/sh", "-c", "python manage.py compile_themes && python manage.py collectstatic --noinput && python manage.py migrate && exec gunicorn bookwyrm.wsgi:application"] command: ["/bin/sh", "-c", "python manage.py compile_themes && python manage.py collectstatic --noinput && python manage.py migrate && exec gunicorn bookwyrm.wsgi:application"]
ports: ports:
- name: http - name: http

View File

@@ -1,4 +1,4 @@
version: 0.8.7-2 version: 0.9.3
requires: requires:
- name: postgres - name: postgres
- name: redis - name: redis

View File

@@ -23,7 +23,7 @@ spec:
fsGroupChangePolicy: Always fsGroupChangePolicy: Always
containers: containers:
- name: decidim - name: decidim
image: payneio/decidim-sidekiq:0.31.0 image: payneio/decidim-sidekiq:0.31.6
imagePullPolicy: Always imagePullPolicy: Always
command: command:
- /bin/bash - /bin/bash
@@ -143,7 +143,7 @@ spec:
- name: decidim-data - name: decidim-data
mountPath: /code/public/uploads mountPath: /code/public/uploads
- name: sidekiq - name: sidekiq
image: payneio/decidim-sidekiq:0.31.0 image: payneio/decidim-sidekiq:0.31.6
imagePullPolicy: Always imagePullPolicy: Always
command: command:
- /bin/bash - /bin/bash

View File

@@ -1,4 +1,4 @@
version: 0.31.0-4 version: 0.31.6
requires: requires:
- name: postgres - name: postgres
- name: redis - name: redis

View File

@@ -23,7 +23,7 @@ spec:
fsGroupChangePolicy: Always fsGroupChangePolicy: Always
initContainers: initContainers:
- name: discourse-migrate - name: discourse-migrate
image: discourse/discourse:2026.10.0 image: discourse/discourse:2026.10.0-latest
imagePullPolicy: "IfNotPresent" imagePullPolicy: "IfNotPresent"
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
@@ -49,9 +49,7 @@ spec:
set -e set -e
cd /var/www/discourse cd /var/www/discourse
export HOME=/root export HOME=/root
git config --global --add safe.directory /var/www/discourse
bundle exec rake db:migrate bundle exec rake db:migrate
bundle exec rake assets:precompile
env: env:
- name: RAILS_ENV - name: RAILS_ENV
value: "production" value: "production"
@@ -87,7 +85,7 @@ spec:
mountPath: /shared mountPath: /shared
containers: containers:
- name: discourse - name: discourse
image: discourse/discourse:2026.10.0 image: discourse/discourse:2026.10.0-latest
imagePullPolicy: "IfNotPresent" imagePullPolicy: "IfNotPresent"
command: command:
- /sbin/boot - /sbin/boot
@@ -192,7 +190,7 @@ spec:
- name: discourse-data - name: discourse-data
mountPath: /shared mountPath: /shared
- name: sidekiq - name: sidekiq
image: discourse/discourse:2026.10.0 image: discourse/discourse:2026.10.0-latest
imagePullPolicy: "IfNotPresent" imagePullPolicy: "IfNotPresent"
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false

View File

@@ -22,7 +22,7 @@ spec:
type: RuntimeDefault type: RuntimeDefault
containers: containers:
- name: formbricks - name: formbricks
image: formbricks/formbricks:6.1.0 image: ghcr.io/formbricks/formbricks:4.6.0
ports: ports:
- name: http - name: http
containerPort: 3000 containerPort: 3000

View File

@@ -1,4 +1,4 @@
version: 6.1.0 version: 4.6.0
requires: requires:
- name: postgres - name: postgres
- name: redis - name: redis

View File

@@ -27,7 +27,7 @@ spec:
terminationGracePeriodSeconds: 60 terminationGracePeriodSeconds: 60
containers: containers:
- name: gitea - name: gitea
image: "gitea/gitea:28.2.0" image: "gitea/gitea:28.2.0-rootless"
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
envFrom: envFrom:
- configMapRef: - configMapRef:

View File

@@ -19,8 +19,21 @@ spec:
securityContext: securityContext:
runAsNonRoot: true runAsNonRoot: true
runAsUser: 1000 runAsUser: 1000
fsGroup: 1000
seccompProfile: seccompProfile:
type: RuntimeDefault type: RuntimeDefault
initContainers:
- name: init-dirs
image: "ghcr.io/immich-app/immich-server:v3.3.5"
command: ["sh", "-c", "for d in thumbs upload backups library profile encoded-video; do mkdir -p /usr/src/app/upload/$d && touch /usr/src/app/upload/$d/.immich; done"]
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: [ALL]
readOnlyRootFilesystem: false
volumeMounts:
- mountPath: /usr/src/app/upload
name: immich-storage
containers: containers:
- image: "ghcr.io/immich-app/immich-server:v3.3.5" - image: "ghcr.io/immich-app/immich-server:v3.3.5"
name: immich-microservices name: immich-microservices

View File

@@ -19,8 +19,21 @@ spec:
securityContext: securityContext:
runAsNonRoot: true runAsNonRoot: true
runAsUser: 1000 runAsUser: 1000
fsGroup: 1000
seccompProfile: seccompProfile:
type: RuntimeDefault type: RuntimeDefault
initContainers:
- name: init-dirs
image: "ghcr.io/immich-app/immich-server:v3.3.5"
command: ["sh", "-c", "for d in thumbs upload backups library profile encoded-video; do mkdir -p /usr/src/app/upload/$d && touch /usr/src/app/upload/$d/.immich; done"]
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: [ALL]
readOnlyRootFilesystem: false
volumeMounts:
- mountPath: /usr/src/app/upload
name: immich-storage
containers: containers:
- image: "ghcr.io/immich-app/immich-server:v3.3.5" - image: "ghcr.io/immich-app/immich-server:v3.3.5"
name: immich-server name: immich-server

View File

@@ -22,7 +22,7 @@ spec:
type: RuntimeDefault type: RuntimeDefault
containers: containers:
- name: jitsi-jicofo - name: jitsi-jicofo
image: jitsi/jicofo:jicofo-1.0-1184-1 image: ghcr.io/jitsi/jicofo:stable-11248-2
env: env:
- name: XMPP_DOMAIN - name: XMPP_DOMAIN
value: "{{ .xmppDomain }}" value: "{{ .xmppDomain }}"

View File

@@ -22,7 +22,7 @@ spec:
type: RuntimeDefault type: RuntimeDefault
containers: containers:
- name: jitsi-jvb - name: jitsi-jvb
image: jitsi/jvb:jvb-2.3-296-g318c08ddc-1 image: ghcr.io/jitsi/jvb:stable-11248-2
ports: ports:
- name: rtp-udp - name: rtp-udp
containerPort: 10000 containerPort: 10000

View File

@@ -22,7 +22,7 @@ spec:
type: RuntimeDefault type: RuntimeDefault
containers: containers:
- name: jitsi-prosody - name: jitsi-prosody
image: jitsi/prosody:prosody-13.0.6 image: ghcr.io/jitsi/prosody:stable-11248-2
ports: ports:
- name: xmpp-c2s - name: xmpp-c2s
containerPort: 5222 containerPort: 5222

View File

@@ -22,7 +22,7 @@ spec:
type: RuntimeDefault type: RuntimeDefault
containers: containers:
- name: jitsi-web - name: jitsi-web
image: jitsi/web:web-1.0.9282-1 image: ghcr.io/jitsi/web:stable-11248-2
ports: ports:
- name: http - name: http
containerPort: 80 containerPort: 80

View File

@@ -1,4 +1,4 @@
version: web-1.0.9282-3 version: stable-11248-2
defaultConfig: defaultConfig:
namespace: jitsi namespace: jitsi
domain: jitsi.{{ .cloud.domain }} domain: jitsi.{{ .cloud.domain }}

View File

@@ -72,6 +72,8 @@ spec:
volumeMounts: volumeMounts:
- name: uploads - name: uploads
mountPath: /var/lib/keila/uploads mountPath: /var/lib/keila/uploads
- name: tz-data
mountPath: /opt/app/lib/tz-0.28.2/priv
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
@@ -93,3 +95,5 @@ spec:
- name: uploads - name: uploads
persistentVolumeClaim: persistentVolumeClaim:
claimName: keila-uploads claimName: keila-uploads
- name: tz-data
emptyDir: {}

View File

@@ -24,7 +24,7 @@ spec:
type: RuntimeDefault type: RuntimeDefault
containers: containers:
- name: librebooking - name: librebooking
image: librebooking/librebooking:5.1.0 image: librebooking/librebooking:7.1.0
ports: ports:
- name: http - name: http
containerPort: 8080 containerPort: 8080

View File

@@ -1,4 +1,4 @@
version: 3.3.7-2 version: 7.1.0
requires: requires:
- name: mysql - name: mysql
defaultConfig: defaultConfig:

View File

@@ -23,7 +23,7 @@ spec:
type: RuntimeDefault type: RuntimeDefault
containers: containers:
- name: moodle - name: moodle
image: bitnamilegacy/moodle:4.5.2 image: oksigenia/moodle:4.5
ports: ports:
- name: http - name: http
containerPort: 8080 containerPort: 8080

View File

@@ -1,4 +1,4 @@
version: 4.5.2-4 version: 4.5.15
requires: requires:
- name: mysql - name: mysql
defaultConfig: defaultConfig:

View File

@@ -19,7 +19,7 @@ spec:
type: RuntimeDefault type: RuntimeDefault
containers: containers:
- name: open-webui - name: open-webui
image: ghcr.io/open-webui/open-webui:v0.12.3 image: ghcr.io/open-webui/open-webui:v0.12.4
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false

View File

@@ -1,4 +1,4 @@
version: 0.12.3 version: 0.12.4
defaultConfig: defaultConfig:
namespace: open-webui namespace: open-webui
storage: 2Gi storage: 2Gi

View File

@@ -17,6 +17,7 @@ defaultConfig:
host: '{{ .apps.memcached.host }}' host: '{{ .apps.memcached.host }}'
port: '{{ .apps.memcached.port }}' port: '{{ .apps.memcached.port }}'
defaultSecrets: defaultSecrets:
- key: secretKeyBase
- key: dbPassword - key: dbPassword
- key: adminPassword - key: adminPassword
requiredSecrets: requiredSecrets:

View File

@@ -58,6 +58,11 @@ spec:
- configMapRef: - configMapRef:
name: openproject-memcached name: openproject-memcached
env: env:
- name: SECRET_KEY_BASE
valueFrom:
secretKeyRef:
name: openproject-secrets
key: secretKeyBase
- name: OPENPROJECT_DB_PASSWORD - name: OPENPROJECT_DB_PASSWORD
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
@@ -102,6 +107,11 @@ spec:
- configMapRef: - configMapRef:
name: openproject-memcached name: openproject-memcached
env: env:
- name: SECRET_KEY_BASE
valueFrom:
secretKeyRef:
name: openproject-secrets
key: secretKeyBase
- name: OPENPROJECT_DB_PASSWORD - name: OPENPROJECT_DB_PASSWORD
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:

View File

@@ -126,6 +126,11 @@ spec:
- configMapRef: - configMapRef:
name: openproject-memcached name: openproject-memcached
env: env:
- name: SECRET_KEY_BASE
valueFrom:
secretKeyRef:
name: openproject-secrets
key: secretKeyBase
- name: OPENPROJECT_DB_PASSWORD - name: OPENPROJECT_DB_PASSWORD
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:

View File

@@ -129,7 +129,11 @@ spec:
- bash - bash
- /app/docker/prod/worker - /app/docker/prod/worker
env: env:
- name: SECRET_KEY_BASE
valueFrom:
secretKeyRef:
name: openproject-secrets
key: secretKeyBase
- name: OPENPROJECT_DB_PASSWORD - name: OPENPROJECT_DB_PASSWORD
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:

View File

@@ -14,7 +14,7 @@ spec:
spec: spec:
containers: containers:
- name: auth - name: auth
image: supabase/gotrue:v2.189.0 image: supabase/gotrue:v2.197.0
ports: ports:
- containerPort: 9999 - containerPort: 9999
env: env:

View File

@@ -14,7 +14,7 @@ spec:
spec: spec:
containers: containers:
- name: meta - name: meta
image: supabase/postgres-meta:v0.96.6 image: supabase/postgres-meta:v0.100.0
ports: ports:
- containerPort: 8080 - containerPort: 8080
env: env:

View File

@@ -17,7 +17,7 @@ spec:
hostname: realtime-dev hostname: realtime-dev
containers: containers:
- name: realtime - name: realtime
image: supabase/realtime:v2.102.3 image: supabase/realtime:v2.143.3
ports: ports:
- containerPort: 4000 - containerPort: 4000
env: env:

View File

@@ -14,7 +14,7 @@ spec:
spec: spec:
containers: containers:
- name: rest - name: rest
image: postgrest/postgrest:v14.12 image: postgrest/postgrest:v14.18
command: ["postgrest"] command: ["postgrest"]
ports: ports:
- containerPort: 3000 - containerPort: 3000

View File

@@ -16,7 +16,7 @@ spec:
spec: spec:
containers: containers:
- name: storage - name: storage
image: supabase/storage-api:v1.60.4 image: supabase/storage-api:v1.81.0
ports: ports:
- containerPort: 5000 - containerPort: 5000
env: env:

View File

@@ -14,7 +14,7 @@ spec:
spec: spec:
containers: containers:
- name: studio - name: studio
image: supabase/studio:2026.06.03-sha-0bca601 image: supabase/studio:2026.10.12-sha-3699278
ports: ports:
- containerPort: 3000 - containerPort: 3000
env: env:

View File

@@ -1,4 +1,4 @@
version: 2026.07.02-1 version: 2026.10.12
requires: requires:
- name: smtp - name: smtp
defaultConfig: defaultConfig:

View File

@@ -22,7 +22,7 @@ spec:
type: RuntimeDefault type: RuntimeDefault
containers: containers:
- name: zulip - name: zulip
image: zulip/docker-zulip:12.3-0 image: ghcr.io/zulip/zulip-server:12.3-0
ports: ports:
- name: http - name: http
containerPort: 80 containerPort: 80
@@ -37,21 +37,19 @@ spec:
key: adminPassword key: adminPassword
- name: SETTING_EXTERNAL_HOST - name: SETTING_EXTERNAL_HOST
value: "{{ .domain }}" value: "{{ .domain }}"
- name: SSL_CERTIFICATE_GENERATION
value: "self-signed"
- name: SECRETS_secret_key - name: SECRETS_secret_key
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
name: zulip-secrets name: zulip-secrets
key: secretKey key: secretKey
# Database # Database
- name: DB_HOST - name: SETTING_REMOTE_POSTGRES_HOST
value: "{{ .db.host }}" value: "{{ .db.host }}"
- name: DB_HOST_PORT - name: SETTING_REMOTE_POSTGRES_PORT
value: "{{ .db.port }}" value: "{{ .db.port }}"
- name: DB_NAME - name: CONFIG_postgresql__database_name
value: "{{ .db.name }}" value: "{{ .db.name }}"
- name: DB_USER - name: CONFIG_postgresql__database_user
value: "{{ .db.user }}" value: "{{ .db.user }}"
- name: SECRETS_postgres_password - name: SECRETS_postgres_password
valueFrom: valueFrom:
@@ -98,8 +96,6 @@ spec:
name: zulip-secrets name: zulip-secrets
key: smtp.password key: smtp.password
# Reverse proxy configuration (Traefik terminates TLS) # Reverse proxy configuration (Traefik terminates TLS)
- name: DISABLE_HTTPS
value: "true"
- name: LOADBALANCER_IPS - name: LOADBALANCER_IPS
value: "10.244.0.0/16" value: "10.244.0.0/16"
resources: resources: