Fix assets:create 404: form-urlencoded mot /apps/richdocuments/assets, intern CODE över HTTP

- lib/bridge.js createAssetLink: POST <nextcloudUrl>/apps/richdocuments/assets
  (utan index.php), Content-Type application/x-www-form-urlencoded med body
  path=<urlencoded>, path trimmad utan ledande slash (userFolder->get relativt
  filrot), OCS-APIRequest borttagen. Fel inkluderar statusCode + svarskropp.
- Intern collaboraUrl är HTTP: http://code:9980 (fallback http://<bridge-ip>:9980)
  i nc-collab-config default, .env.example, example-flows.json, docker-compose,
  install.sh och integrate-into-nodered.sh resolve_collabora_url.
- Publik WOPI-URL dokumenterad som https://docs.domain.name.
- package-lock.json för deterministisk form-data-install i Docker.
This commit is contained in:
dev
2026-08-22 21:27:02 +02:00
parent 9e5a7c0aeb
commit 6e02c2d31e
11 changed files with 332 additions and 38 deletions
+4 -2
View File
@@ -35,8 +35,10 @@ Sidecar `nextcloud-collabora-nodered` on :1881 is **not used** — integrate mod
| Use | URL |
|-----|-----|
| Nextcloud API / WebDAV | `https://cloud.example.com` |
| CODE from Node-RED container | `https://<bridge-ip>:9980` (verifyTls=false) |
| Browser editor / WOPI | `collaboraPublicUrl` — usually same as Nextcloud proxy |
| CODE from Node-RED container (intern) | `http://code:9980` — plain **HTTP**; fallback `http://<bridge-ip>:9980` efter `docker network connect bridge nextcloud-node-red` |
| Browser editor / WOPI (publik) | `collaboraPublicUrl` — t.ex. `https://docs.domain.name` (CODE via reverse proxy) |
Intern CODE lyssnar på HTTP — aldrig HTTPS mot bridge-IP. Publik åtkomst via reverse proxy.
## Gitea (optional)
+12 -3
View File
@@ -7,7 +7,7 @@ Six flow nodes in the palette plus one config node. All six point at the same **
| Backend | Typical URL | Role |
|---------|-------------|------|
| Nextcloud | `https://cloud.example.com` | Files (WebDAV) + Office API (OCS) |
| Collabora CODE | `https://172.17.0.2:9980` | Conversion (`/cool/...`) on Docker bridge |
| Collabora CODE | `http://code:9980` (intern HTTP; fallback `http://<bridge-ip>:9980`) | Conversion (`/cool/...`) on Docker bridge |
Auth: **username + app password**. Not your account password.
@@ -167,8 +167,17 @@ Create under the gear icon in Node-RED. All six flow nodes pick the same config
| Field | Example |
|-------|---------|
| nextcloudUrl | `https://cloud.example.com` |
| collaboraUrl | `https://172.17.0.2:9980` (bridge IP, verifyTls=false) |
| collaboraPublicUrl | `https://cloud.example.com` |
| collaboraUrl | `http://code:9980` — intern CODE är **HTTP**; fallback `http://<bridge-ip>:9980` efter `docker network connect bridge nextcloud-node-red` |
| collaboraPublicUrl | `https://docs.domain.name` (publik, browser/WOPI) |
| username + app password | Nextcloud login |
Intern CODE körs utan TLS (`http://`) — publik åtkomst går via reverse proxy (HTTPS).
### createAssetLink (assets)
`collabora-bridge createAssetLink` / `nc-office assets:create` POSTar form-urlencoded
(`path=Dokument/logotyp.png`, relativt användarens filrot) mot
`<nextcloudUrl>/apps/richdocuments/assets`. `200 {url}` = asset-URL skapad;
`404` = filen finns inte i användarens rot (eller fel `nextcloudUrl`) — felet innehåller status + svarskropp.
CODE IP is detected when you run `./install.sh` — see `.env.example`.