From ccac11e01c8c0f19246dabff7d3b6d2f8049f597 Mon Sep 17 00:00:00 2001 From: notplants Date: Wed, 18 Feb 2026 11:45:28 +0000 Subject: [PATCH 1/4] bump to 0.3.0+v0.11.1 --- compose.yml | 8 ++++---- release/0.3.0+v0.11.1 | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 release/0.3.0+v0.11.1 diff --git a/compose.yml b/compose.yml index 6b310c5..459bbcb 100644 --- a/compose.yml +++ b/compose.yml @@ -94,7 +94,7 @@ services: labels: - "traefik.enable=false" - "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}" - - "coop-cloud.${STACK_NAME}.version=0.2.6+v0.11.1" + - "coop-cloud.${STACK_NAME}.version=0.3.0+v0.11.1" environment: <<: [ *common-env ] healthcheck: @@ -180,17 +180,17 @@ services: - email_pass db: - image: postgres:16 + image: pgautoupgrade/pgautoupgrade:18-debian networks: - backend healthcheck: - test: ["CMD", "pg_isready", "-q", "-U", "docs", "-d", "docs"] + test: ["CMD", "pg_isready", "-q", "-U", "drive", "-d", "drive"] interval: 1s timeout: 2s retries: 300 environment: <<: *postgres-env - PGDATA: var/lib/postgresql/data/pgdata + PGDATA: /var/lib/postgresql/data/pgdata volumes: - postgres:/var/lib/postgresql/data/pgdata deploy: diff --git a/release/0.3.0+v0.11.1 b/release/0.3.0+v0.11.1 new file mode 100644 index 0000000..046d989 --- /dev/null +++ b/release/0.3.0+v0.11.1 @@ -0,0 +1 @@ +Switched the database image from postgres:16 to pgautoupgrade/pgautoupgrade:18-debian. This enables automatic PostgreSQL major version upgrades. No action required from the operator — the upgrade from PostgreSQL 16 to 18 is handled automatically by the pgautoupgrade image on first start. -- 2.49.0 From bbc12703560f822f7bcbfe36381058d03e53684c Mon Sep 17 00:00:00 2001 From: notplants Date: Wed, 18 Feb 2026 12:03:26 +0000 Subject: [PATCH 2/4] upgrade to 0.4.0+v0.12.0 --- compose.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/compose.yml b/compose.yml index 459bbcb..f5ab06e 100644 --- a/compose.yml +++ b/compose.yml @@ -87,14 +87,14 @@ services: app: user: "${DOCKER_USER:-1000}" - image: lasuite/drive-frontend:v0.11.1 + image: lasuite/drive-frontend:v0.12.0 networks: - backend deploy: labels: - "traefik.enable=false" - "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}" - - "coop-cloud.${STACK_NAME}.version=0.3.0+v0.11.1" + - "coop-cloud.${STACK_NAME}.version=0.4.0+v0.12.0" environment: <<: [ *common-env ] healthcheck: @@ -108,7 +108,7 @@ services: backend: user: ${DOCKER_USER:-1000} - image: lasuite/drive-backend:v0.11.1 + image: lasuite/drive-backend:v0.12.0 command: [ "gunicorn", "-c", "/usr/local/etc/gunicorn/drive.py", "drive.wsgi:application" ] entrypoint: [ "/abra-entrypoint.sh", "/usr/local/bin/entrypoint" ] environment: @@ -133,7 +133,7 @@ services: # this may be unecessary once the PR is merged to use celery beat # but this is a workaround for now https://github.com/suitenumerique/drive/issues/484 scheduler: - image: lasuite/drive-backend:v0.11.1 + image: lasuite/drive-backend:v0.12.0 user: ${DOCKER_USER:-1000} networks: - backend @@ -160,7 +160,7 @@ services: celery: user: ${DOCKER_USER:-1000} - image: lasuite/drive-backend:v0.11.1 + image: lasuite/drive-backend:v0.12.0 networks: - backend command: [ "celery", "-A", "drive.celery_app", "worker", "-l", "INFO" ] @@ -207,7 +207,7 @@ services: - postgres_p redis: - image: redis:5 + image: redis:8 networks: - backend @@ -350,7 +350,7 @@ services: web: - image: nginx:1.25 + image: nginx:1.29 configs: - source: nginx_conf target: /etc/nginx/conf.d/default.conf -- 2.49.0 From f114ed0babc0e66cbef2d74873cf9b9d71dc9b1a Mon Sep 17 00:00:00 2001 From: notplants Date: Wed, 18 Feb 2026 13:54:20 +0000 Subject: [PATCH 3/4] bump to 0.5.0+v0.12.0 --- .env.sample | 9 +++++++++ abra.sh | 1 - compose.yml | 32 +++++++++++++------------------- schedule_wopi.sh | 13 ------------- 4 files changed, 22 insertions(+), 33 deletions(-) delete mode 100644 schedule_wopi.sh diff --git a/.env.sample b/.env.sample index b7023fc..db669a1 100644 --- a/.env.sample +++ b/.env.sample @@ -65,3 +65,12 @@ OIDC_AUTH_REQUEST_EXTRA_PARAMS='{"acr_values": "eidas1"}' LOGGING_LEVEL_HANDLERS_CONSOLE=INFO LOGGING_LEVEL_LOGGERS_ROOT=INFO LOGGING_LEVEL_LOGGERS_APP=INFO + +############################################################################## +# WOPI SCHEDULING +############################################################################## +# Celery Beat crontab for the WOPI configuration task (default: daily at 3:00 AM) +#WOPI_CONFIGURATION_CRONTAB_MINUTE=0 +#WOPI_CONFIGURATION_CRONTAB_HOUR=3 +#WOPI_CONFIGURATION_CRONTAB_DAY_OF_MONTH=* +#WOPI_CONFIGURATION_CRONTAB_MONTH_OF_YEAR=* diff --git a/abra.sh b/abra.sh index 7308fc9..7ad3998 100755 --- a/abra.sh +++ b/abra.sh @@ -4,7 +4,6 @@ export ABRA_ENTRYPOINT_VERSION=v5 export NGINX_CONF_VERSION=v6 export ONLYOFFICE_CONF_VERSION=v2 export PG_BACKUP_VERSION=v3 -export SCHEDULE_WOPI_VERSION=v1 environment() { # this exports all the secrets as environment variables diff --git a/compose.yml b/compose.yml index f5ab06e..fe19c2b 100644 --- a/compose.yml +++ b/compose.yml @@ -66,6 +66,11 @@ x-common-env: &common-env WOPI_COLLABORA_DISCOVERY_URL: "https://${COLLABORA_DOMAIN}/hosting/discovery" WOPI_ONLYOFFICE_DISCOVERY_URL: "https://${ONLY_OFFICE_DOMAIN}/hosting/discovery" WOPI_SRC_BASE_URL: "https://${DOMAIN}" + # WOPI scheduling (Celery Beat crontab for WOPI configuration task) + WOPI_CONFIGURATION_CRONTAB_MINUTE: ${WOPI_CONFIGURATION_CRONTAB_MINUTE:-0} + WOPI_CONFIGURATION_CRONTAB_HOUR: ${WOPI_CONFIGURATION_CRONTAB_HOUR:-3} + WOPI_CONFIGURATION_CRONTAB_DAY_OF_MONTH: ${WOPI_CONFIGURATION_CRONTAB_DAY_OF_MONTH:-*} + WOPI_CONFIGURATION_CRONTAB_MONTH_OF_YEAR: ${WOPI_CONFIGURATION_CRONTAB_MONTH_OF_YEAR:-*} x-postgres-env: &postgres-env # Postgresql db container configuration @@ -94,7 +99,7 @@ services: labels: - "traefik.enable=false" - "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}" - - "coop-cloud.${STACK_NAME}.version=0.4.0+v0.12.0" + - "coop-cloud.${STACK_NAME}.version=0.5.0+v0.12.0" environment: <<: [ *common-env ] healthcheck: @@ -130,26 +135,19 @@ services: - postgres_p - email_pass - # this may be unecessary once the PR is merged to use celery beat - # but this is a workaround for now https://github.com/suitenumerique/drive/issues/484 - scheduler: - image: lasuite/drive-backend:v0.12.0 + celery: user: ${DOCKER_USER:-1000} + image: lasuite/drive-backend:v0.12.0 networks: - backend - depends_on: - - db - - redis + command: [ "celery", "-A", "drive.celery_app", "worker", "-l", "INFO" ] + entrypoint: ["/abra-entrypoint.sh", "/usr/local/bin/entrypoint"] environment: - <<: [ *common-env, *postgres-env ] + <<: [*common-env, *postgres-env] configs: - - source: schedule_wopi - target: /app/schedule_wopi.sh - mode: 0755 - source: abra_entrypoint target: /abra-entrypoint.sh mode: 0555 - entrypoint: ["/app/schedule_wopi.sh"] secrets: - django_sk - django_sp @@ -158,12 +156,12 @@ services: - postgres_p - email_pass - celery: + celery-beat: user: ${DOCKER_USER:-1000} image: lasuite/drive-backend:v0.12.0 networks: - backend - command: [ "celery", "-A", "drive.celery_app", "worker", "-l", "INFO" ] + command: [ "celery", "-A", "drive.celery_app", "beat", "-l", "INFO", "--schedule", "/tmp/celerybeat-schedule" ] entrypoint: ["/abra-entrypoint.sh", "/usr/local/bin/entrypoint"] environment: <<: [*common-env, *postgres-env] @@ -389,10 +387,6 @@ configs: pg_backup: name: ${STACK_NAME}_pg_backup_${PG_BACKUP_VERSION} file: pg_backup.sh - schedule_wopi: - name: ${STACK_NAME}_schedule_wopi_${SCHEDULE_WOPI_VERSION} - file: schedule_wopi.sh - template_driver: golang abra_entrypoint: name: ${STACK_NAME}_entrypoint_${ABRA_ENTRYPOINT_VERSION} file: abra-entrypoint.sh diff --git a/schedule_wopi.sh b/schedule_wopi.sh deleted file mode 100644 index 7594153..0000000 --- a/schedule_wopi.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -set -e - -while true; do - echo "Running WOPI job at $(date)" - # source env - . /abra-entrypoint.sh -e - # run python command - python manage.py trigger_wopi_configuration - echo "++ completed wopi trigger. now sleeping." - # wait before next run - sleep 1800 # 1800 seconds = 30 minutes -done \ No newline at end of file -- 2.49.0 From 3a9e85a114ecb26a951715fbb849b531cc4c0391 Mon Sep 17 00:00:00 2001 From: notplants Date: Wed, 18 Feb 2026 14:38:22 +0000 Subject: [PATCH 4/4] bump to 0.6.0+v0.12.0 --- abra-entrypoint.sh | 7 +++++++ abra.sh | 2 +- compose.yml | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/abra-entrypoint.sh b/abra-entrypoint.sh index c795941..90fcc0b 100644 --- a/abra-entrypoint.sh +++ b/abra-entrypoint.sh @@ -11,5 +11,12 @@ set -e # if not in "env" mode, then execute the original entrypoint and command if [ ! "$1" = "-e" ]; then + # Run WOPI configuration on startup if enabled (celery worker service only). + # This ensures WOPI clients are configured immediately after each deploy, + # rather than waiting for the next celery-beat cron tick (default: 3 AM). + if [ "${RUN_WOPI_ON_STARTUP:-}" = "true" ]; then + echo "🐳(entrypoint) running WOPI configuration on startup..." + python manage.py trigger_wopi_configuration || echo "⚠ WOPI configuration failed (non-fatal, will retry on schedule)" + fi exec "$@" fi \ No newline at end of file diff --git a/abra.sh b/abra.sh index 7ad3998..9d8e479 100755 --- a/abra.sh +++ b/abra.sh @@ -1,6 +1,6 @@ # Set any config versions here # Docs: https://docs.coopcloud.tech/maintainers/handbook/#manage-configs -export ABRA_ENTRYPOINT_VERSION=v5 +export ABRA_ENTRYPOINT_VERSION=v7 export NGINX_CONF_VERSION=v6 export ONLYOFFICE_CONF_VERSION=v2 export PG_BACKUP_VERSION=v3 diff --git a/compose.yml b/compose.yml index fe19c2b..3fbafe2 100644 --- a/compose.yml +++ b/compose.yml @@ -99,7 +99,7 @@ services: labels: - "traefik.enable=false" - "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}" - - "coop-cloud.${STACK_NAME}.version=0.5.0+v0.12.0" + - "coop-cloud.${STACK_NAME}.version=0.6.0+v0.12.0" environment: <<: [ *common-env ] healthcheck: @@ -144,6 +144,7 @@ services: entrypoint: ["/abra-entrypoint.sh", "/usr/local/bin/entrypoint"] environment: <<: [*common-env, *postgres-env] + RUN_WOPI_ON_STARTUP: "true" configs: - source: abra_entrypoint target: /abra-entrypoint.sh -- 2.49.0