# Infrastruktur — cloud.hannesahlin.se (192.168.1.26) Verifierad 2026-08-22. Sidecar ska passa in utan att röra befintliga tjänster. ## Containers | Container | Image | Port | Nätverk | IP | |-----------|-------|------|---------|-----| | `code` | collabora/code:latest (26.04.3.1) | 127.0.0.1:9980 | `bridge` | 172.17.0.2 | | `nextcloud-node-red` | nextcloud-node-red:latest | 0.0.0.0:1880 | `nextcloud-node-red_odds_network` | 172.18.0.3 | | `nextcloud-collabora-nodered` | nextcloud-collabora-nodered:latest | 0.0.0.0:1881 | `collab_default` + **`bridge`** | (dynamisk) | | `gitea_server` | gitea/gitea:latest | 127.0.0.1:3000 | (egen) | — | | `odds-postgres` | postgres:16-alpine | 5433 | odds_network | — | ## Viktigt om nätverk - **CODE** ligger på Docker **`bridge`** (172.17.0.0/16), inte på `odds_network`. - **Sidecar** ansluter till **`bridge`** för att nå CODE på `http://172.17.0.2:9980`. - `127.0.0.1:9980` på host når CODE, men **inte** från en container utan bridge/host-mode. - `host.docker.internal` är opålitligt på Linux — använd **172.17.0.2**. - **nextcloud-node-red** (:1880) ska **inte** flyttas till bridge; den stannar på odds_network. ## Nextcloud - URL: https://cloud.hannesahlin.se - Host: 192.168.1.26, `/var/www/nextcloud` - Sidecar: `extra_hosts: cloud.hannesahlin.se:192.168.1.26`, `verifyTls: false` tills cert i container ## CODE - `aliasgroup1=https://cloud.hannesahlin.se:443` - Starta **ingen** ny CODE-container - REST: `/cool/convert-to`, `/cool/extract-document-structure`, `/cool/transform-document-structure` - WOPI discovery: `/hosting/discovery`, `/hosting/capabilities` ## Git (Gitea) - https://kode.hannesahlin.se/n3wk/nextcloud-collabora-nodered - SSH port **2222** på host ## Bootstrap (ny VM) ```bash curl -fsSL https://kode.hannesahlin.se/n3wk/nextcloud-collabora-nodered/raw/branch/main/bootstrap-install.sh | bash ``` ## Kataloger på host ``` /home/ncadmin/ ├── nextcloud-node-red/ # :1880 — orört ├── nextcloud-collabora-nodered/ # :1881 — detta paket ├── n3wkode/ # Gitea compose ├── odds-scraper/ # ignoreras └── nodered-embed/ ``` ## Collabora SDK (referens) - [Conversion API](https://sdk.collaboraonline.com/docs/conversion_api.html) - [Extract/Transform API](https://sdk.collaboraonline.com/docs/extract_transform_api.html) - [Linking API](https://sdk.collaboraonline.com/docs/linking_api.html) - postMessage: webbläsare/iframe — **inte** Node-RED