Extends the existing upgrade-2026.10.0 PR/branch (one evolving upgrade PR per recipe) to the current
newest image, version-2026.10.1 (Docker Hub 2026-11-10). 2026.10.1 is the Autumn fix release on
top of the breaking 2026.10.0 server rewrite and is itself a security release (vendor: highest
CVSS 4.0 score 7.3 / High).
CPAD_MAIN_DOMAIN / CPAD_SANDBOX_DOMAIN now carry the scheme (https://${DOMAIN}, https://${SANDBOX_DOMAIN}); the new server assigns them verbatim to infra.public.origin / sandboxOrigin. config.js.tmpl no longer prepends https://.
config/infra.js is now mounted as a Docker config (infra.js.tmpl, INFRA_JS_VERSION=v1). /cryptpad/config is root-owned in the 2026.10+ image, so the image entrypoint's attempt to create infra.js fails (cp: … Permission denied) and the app crash-loops on a fresh deploy. The prior 2026.10.0 head of this PR did not mount it; an in-place upgrade of an older stack masked the issue
because the old image's config dir was cryptpad-owned. This matches upstream coop-cloud PR #15.
nginx /cryptpad_websocket proxies to app:3000 — one HTTP+websocket port in 2026.10+, no separate 3003; verified a real 101 Switching Protocols through nginx.
abra.sh: CONFIG_VERSION v3, NGINX_CONF_VERSION v2, new INFRA_JS_VERSION v1, SSO_ENTRYPOINT_VERSION v8, ONLYOFFICE_ENTRYPOINT_VERSION v2 so changed templates re-mount.
SSO plugin default 1.0.0; sso.js is mounted directly at /cryptpad/config/sso.js (root-owned
config dir) and sso-entrypoint.sh installs the plugin's npm deps, as required by 2026.10.
Reverse proxy: any operator overriding nginx.conf.tmpl must drop the 3003 websocket upstream;
websocket and HTTP share public.httpPort (3000).
SSO users: the plugin must be 1.0.0 (SSO_PLUGIN_VERSION=1.0.0).
Office users (optional compose.onlyoffice.yaml): editors are now Euro-Office 9.3; the oldest_needed_version flow is unchanged.
Review /checkup/ after upgrading.
Advisory scan
Deterministic scan window 2026.5.1→2026.10.1: 0 CVEs identified. The 57 unclassified items are
historical nginx.org/en/CHANGES entries for the unchanged nginx sidecar (no version window /
no structured advisory) — recorded STILL-UNKNOWN, not counted.
The 2026.10.1 notes state security fixes (highest CVSS 7.3) but name no CVE IDs, so no specific CVE
is attributed; the scan count is a floor, not a complete security accounting.
Verification
Live --chaos deploy on cc-ci of this exact head (fresh 2026.10.1 image + configs): deploy succeeded,
app 1/1 and web 1/1, logs CryptPad server ready, telemetry version: 2026.10.1 with httpUnsafeOrigin=https://dev-cryptpad.ci.commoninternet.net and httpSafeOrigin=https://dev-cryptpad-sb.ci.commoninternet.net. Main / 200, /pad/ 200, sandbox /
200, /checkup/ 200, websocket 101 Switching Protocols. Dev deploy torn down (0 stacks/volumes
left). The initial deploy without the infra_js mount reproduced the fresh-deploy crash above —
which is what this PR fixes.
!testme result is posted below by cc-ci.
Nothing is merged — this PR is for operator review.
CI verification is run against this one-commit PR head. NOT merged — for operator review.
## Upgrade: cryptpad 2026.5.1 → 2026.10.1
Extends the existing `upgrade-2026.10.0` PR/branch (one evolving upgrade PR per recipe) to the current
newest image, **`version-2026.10.1`** (Docker Hub 2026-11-10). `2026.10.1` is the Autumn fix release on
top of the breaking `2026.10.0` server rewrite and is itself a **security release** (vendor: highest
CVSS 4.0 score 7.3 / High).
| service | image | change |
|---|---|---|
| app | `cryptpad/cryptpad:version-2026.5.1` → `version-2026.10.1` | server rewrite + fix release |
| web | `nginx:1.31` | unchanged (floating tag resolves to 1.31.8; resolver confirms no newer same-shape tag) |
**Upstream release notes:** app 2026.5.1→2026.10.1: https://github.com/cryptpad/cryptpad/releases/tag/2026.10.1
**Upstream release notes:** app 2026.5.1→2026.10.0 (breaking — read first): https://github.com/cryptpad/cryptpad/releases/tag/2026.10.0
### Recipe changes
- `CPAD_MAIN_DOMAIN` / `CPAD_SANDBOX_DOMAIN` now carry the scheme (`https://${DOMAIN}`,
`https://${SANDBOX_DOMAIN}`); the new server assigns them verbatim to `infra.public.origin` /
`sandboxOrigin`. `config.js.tmpl` no longer prepends `https://`.
- **`config/infra.js` is now mounted as a Docker config** (`infra.js.tmpl`, `INFRA_JS_VERSION=v1`).
`/cryptpad/config` is root-owned in the 2026.10+ image, so the image entrypoint's attempt to create
`infra.js` fails (`cp: … Permission denied`) and the app crash-loops on a **fresh** deploy. The prior
`2026.10.0` head of this PR did not mount it; an in-place upgrade of an older stack masked the issue
because the old image's config dir was cryptpad-owned. This matches upstream coop-cloud PR #15.
- nginx `/cryptpad_websocket` proxies to `app:3000` — one HTTP+websocket port in 2026.10+, no separate
`3003`; verified a real `101 Switching Protocols` through nginx.
- `abra.sh`: `CONFIG_VERSION` v3, `NGINX_CONF_VERSION` v2, new `INFRA_JS_VERSION` v1,
`SSO_ENTRYPOINT_VERSION` v8, `ONLYOFFICE_ENTRYPOINT_VERSION` v2 so changed templates re-mount.
- SSO plugin default 1.0.0; `sso.js` is mounted directly at `/cryptpad/config/sso.js` (root-owned
config dir) and `sso-entrypoint.sh` installs the plugin's npm deps, as required by 2026.10.
- README / `onlyoffice-entrypoint.sh`: `install-onlyoffice.sh` → `install-office.sh` (Euro-Office 9.3).
- Recipe version label deliberately untouched (as usual for upgrade PRs).
### Operator Action Required
- **Breaking release / major bump**: after merge, publish with
`abra recipe release cryptpad -x` (0.6.0+v2026.5.1 → 1.0.0+v2026.10.1).
- **Security release**: upgrade promptly (highest CVSS 7.3).
- Reverse proxy: any operator overriding `nginx.conf.tmpl` must drop the `3003` websocket upstream;
websocket and HTTP share `public.httpPort` (3000).
- SSO users: the plugin must be 1.0.0 (`SSO_PLUGIN_VERSION=1.0.0`).
- Office users (optional `compose.onlyoffice.yaml`): editors are now Euro-Office 9.3; the
`oldest_needed_version` flow is unchanged.
- Review `/checkup/` after upgrading.
### Advisory scan
- Deterministic scan window 2026.5.1→2026.10.1: **0 CVEs identified**. The 57 unclassified items are
historical `nginx.org/en/CHANGES` entries for the **unchanged** nginx sidecar (no version window /
no structured advisory) — recorded STILL-UNKNOWN, not counted.
- The 2026.10.1 notes state security fixes (highest CVSS 7.3) but name no CVE IDs, so no specific CVE
is attributed; the scan count is a floor, not a complete security accounting.
### Verification
- Live `--chaos` deploy on cc-ci of this exact head (fresh 2026.10.1 image + configs): deploy succeeded,
app 1/1 and web 1/1, logs `CryptPad server ready`, telemetry `version: 2026.10.1` with
`httpUnsafeOrigin=https://dev-cryptpad.ci.commoninternet.net` and
`httpSafeOrigin=https://dev-cryptpad-sb.ci.commoninternet.net`. Main `/` 200, `/pad/` 200, sandbox `/`
200, `/checkup/` 200, websocket `101 Switching Protocols`. Dev deploy torn down (0 stacks/volumes
left). The initial deploy without the `infra_js` mount reproduced the fresh-deploy crash above —
which is what this PR fixes.
- `!testme` result is posted below by cc-ci.
Nothing is merged — this PR is for operator review.
CI verification is run against this one-commit PR head. NOT merged — for operator review.
cc @trav @notplants
autonomic-bot
requested review from trav 2026-10-30 02:22:12 +00:00
autonomic-bot
requested review from notplants 2026-10-30 02:22:12 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Upgrade: cryptpad 2026.5.1 → 2026.10.1
Extends the existing
upgrade-2026.10.0PR/branch (one evolving upgrade PR per recipe) to the currentnewest image,
version-2026.10.1(Docker Hub 2026-11-10).2026.10.1is the Autumn fix release ontop of the breaking
2026.10.0server rewrite and is itself a security release (vendor: highestCVSS 4.0 score 7.3 / High).
cryptpad/cryptpad:version-2026.5.1→version-2026.10.1nginx:1.31Upstream release notes: app 2026.5.1→2026.10.1: https://github.com/cryptpad/cryptpad/releases/tag/2026.10.1
Upstream release notes: app 2026.5.1→2026.10.0 (breaking — read first): https://github.com/cryptpad/cryptpad/releases/tag/2026.10.0
Recipe changes
CPAD_MAIN_DOMAIN/CPAD_SANDBOX_DOMAINnow carry the scheme (https://${DOMAIN},https://${SANDBOX_DOMAIN}); the new server assigns them verbatim toinfra.public.origin/sandboxOrigin.config.js.tmplno longer prependshttps://.config/infra.jsis now mounted as a Docker config (infra.js.tmpl,INFRA_JS_VERSION=v1)./cryptpad/configis root-owned in the 2026.10+ image, so the image entrypoint's attempt to createinfra.jsfails (cp: … Permission denied) and the app crash-loops on a fresh deploy. The prior2026.10.0head of this PR did not mount it; an in-place upgrade of an older stack masked the issuebecause the old image's config dir was cryptpad-owned. This matches upstream coop-cloud PR #15.
/cryptpad_websocketproxies toapp:3000— one HTTP+websocket port in 2026.10+, no separate3003; verified a real101 Switching Protocolsthrough nginx.abra.sh:CONFIG_VERSIONv3,NGINX_CONF_VERSIONv2, newINFRA_JS_VERSIONv1,SSO_ENTRYPOINT_VERSIONv8,ONLYOFFICE_ENTRYPOINT_VERSIONv2 so changed templates re-mount.sso.jsis mounted directly at/cryptpad/config/sso.js(root-ownedconfig dir) and
sso-entrypoint.shinstalls the plugin's npm deps, as required by 2026.10.onlyoffice-entrypoint.sh:install-onlyoffice.sh→install-office.sh(Euro-Office 9.3).Operator Action Required
abra recipe release cryptpad -x(0.6.0+v2026.5.1 → 1.0.0+v2026.10.1).nginx.conf.tmplmust drop the3003websocket upstream;websocket and HTTP share
public.httpPort(3000).SSO_PLUGIN_VERSION=1.0.0).compose.onlyoffice.yaml): editors are now Euro-Office 9.3; theoldest_needed_versionflow is unchanged./checkup/after upgrading.Advisory scan
historical
nginx.org/en/CHANGESentries for the unchanged nginx sidecar (no version window /no structured advisory) — recorded STILL-UNKNOWN, not counted.
is attributed; the scan count is a floor, not a complete security accounting.
Verification
--chaosdeploy on cc-ci of this exact head (fresh 2026.10.1 image + configs): deploy succeeded,app 1/1 and web 1/1, logs
CryptPad server ready, telemetryversion: 2026.10.1withhttpUnsafeOrigin=https://dev-cryptpad.ci.commoninternet.netandhttpSafeOrigin=https://dev-cryptpad-sb.ci.commoninternet.net. Main/200,/pad/200, sandbox/200,
/checkup/200, websocket101 Switching Protocols. Dev deploy torn down (0 stacks/volumesleft). The initial deploy without the
infra_jsmount reproduced the fresh-deploy crash above —which is what this PR fixes.
!testmeresult is posted below by cc-ci.Nothing is merged — this PR is for operator review.
CI verification is run against this one-commit PR head. NOT merged — for operator review.
cc @trav @notplants
!testme
🌻 cc-ci —
cryptpad@3e7ec818✅ passedfull logs · dashboard
chore: upgrade to 2026.10.0to chore: upgrade to 2026.10.13e7ec818aftoc73ce32857!testme
🌻 cc-ci —
cryptpad@c73ce328✅ passedfull logs · dashboard
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.