From de60f7e21e72e065e128c73a70c320de97346da7 Mon Sep 17 00:00:00 2001 From: archipelago Date: Thu, 11 Jun 2026 01:03:45 -0400 Subject: [PATCH] app-platform: remove revoked onlyoffice app --- README.md | 2 +- apps/DEVELOPMENT.md | 1 - apps/PORTS.md | 2 - apps/README.md | 2 +- apps/onlyoffice/Dockerfile | 5 -- apps/onlyoffice/manifest.yml | 54 ------------------- image-recipe/configs/nginx-archipelago.conf | 15 ------ .../archipelago-https-app-proxies.conf | 14 ----- neode-ui/mock-backend.js | 8 --- neode-ui/scripts/download-app-icons.js | 3 -- neode-ui/src/stores/appLauncher.ts | 3 -- neode-ui/src/utils/dummyApps.ts | 36 ------------- neode-ui/src/views/Apps.vue | 50 ++++++++++++++--- neode-ui/src/views/Kiosk.vue | 1 - .../src/views/appDetails/appDetailsData.ts | 2 - .../src/views/appSession/appSessionConfig.ts | 18 ------- .../appSession/generatedAppSessionConfig.ts | 3 -- scripts/check-app-catalog-drift.py | 1 - scripts/container-specs.sh | 13 ----- scripts/deploy-tailscale.sh | 14 +---- scripts/lib/common.sh | 1 - scripts/nginx-https-app-proxies.conf | 10 ---- 22 files changed, 47 insertions(+), 211 deletions(-) delete mode 100644 apps/onlyoffice/Dockerfile delete mode 100644 apps/onlyoffice/manifest.yml diff --git a/README.md b/README.md index 44df1499..e0e1360c 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ - **Fedimint** federation guardian and gateway ### Self-Hosted Apps (30) -Bitcoin (ThunderHub), Storage (FileBrowser, Immich, Nextcloud), Productivity (Penpot, OnlyOffice, Vaultwarden), Media (Jellyfin, PhotoPrism), Search (SearXNG), AI (Ollama), Network (Tailscale, Nginx Proxy Manager), Home (Home Assistant), Nostr (nostr-rs-relay, Nostrudel), Dev (Grafana, Portainer), and more. +Bitcoin (ThunderHub), Storage (FileBrowser, Immich, Nextcloud), Productivity (Penpot, Vaultwarden), Media (Jellyfin, PhotoPrism), Search (SearXNG), AI (Ollama), Network (Tailscale, Nginx Proxy Manager), Home (Home Assistant), Nostr (nostr-rs-relay, Nostrudel), Dev (Grafana, Portainer), and more. ### Decentralized Identity - Ed25519 node identity with DID Documents (did:key) diff --git a/apps/DEVELOPMENT.md b/apps/DEVELOPMENT.md index eca9bbc1..85984406 100644 --- a/apps/DEVELOPMENT.md +++ b/apps/DEVELOPMENT.md @@ -33,7 +33,6 @@ | ollama | 11434 | v0.5.4 | | grafana | 3001 | v10.2.0 | | portainer | 9000 | v2.19.4 | -| onlyoffice | 8088 | v7.5.1 | | penpot | 8089 | v2.4 | ## Building Apps diff --git a/apps/PORTS.md b/apps/PORTS.md index bcbd8eb6..03d0194b 100644 --- a/apps/PORTS.md +++ b/apps/PORTS.md @@ -17,7 +17,6 @@ This document lists all port assignments for Archipelago apps. | mempool | 4080 | TCP | Web UI | 14080 | | ollama | 11434 | TCP | API | 21434 | | searxng | 8888 | TCP | Web UI | 18888 | -| onlyoffice | 8088 | TCP | Web UI | 18088 | | penpot | 8089 | TCP | Web UI | 18089 | | lnd | 9735, 10009, 18080 | TCP | P2P, gRPC, REST | 19735, 20009, 28080 | | core-lightning | 9736, 9835 | TCP | P2P, gRPC | 19736, 19835 | @@ -47,7 +46,6 @@ In development mode, all ports are offset by 10000 to avoid conflicts with produ | Mempool | http://localhost:14080 | | Ollama | http://localhost:21434 | | SearXNG | http://localhost:18888 | -| OnlyOffice | http://localhost:18088 | | Penpot | http://localhost:18089 | | LND REST | http://localhost:18080 | | Core Lightning | http://localhost:19835 | diff --git a/apps/README.md b/apps/README.md index adf90608..5d4ccf6e 100644 --- a/apps/README.md +++ b/apps/README.md @@ -23,7 +23,7 @@ Containerized applications for the Archipelago Bitcoin Node OS. All apps run in ### Self-Hosted Services - **nextcloud** (v28), **jellyfin** (v10.8.13), **immich** (release), **photoprism** (v240915) -- **vaultwarden** (v1.30.0-alpine), **onlyoffice** (v7.5.1), **penpot** (v2.4) +- **vaultwarden** (v1.30.0-alpine), **penpot** (v2.4) - **homeassistant** (v2024.1), **filebrowser** (v2.27.0), **searxng** (2024.11.17) - **ollama** (v0.5.4), **grafana** (v10.2.0), **portainer** (v2.19.4) diff --git a/apps/onlyoffice/Dockerfile b/apps/onlyoffice/Dockerfile deleted file mode 100644 index 284c1374..00000000 --- a/apps/onlyoffice/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -# OnlyOffice - uses official image -FROM onlyoffice/documentserver:7.5.0 - -# Default configuration is in the image -# No additional setup needed diff --git a/apps/onlyoffice/manifest.yml b/apps/onlyoffice/manifest.yml deleted file mode 100644 index 30881cba..00000000 --- a/apps/onlyoffice/manifest.yml +++ /dev/null @@ -1,54 +0,0 @@ -app: - id: onlyoffice - name: OnlyOffice - version: 7.5.0 - description: Office suite and document collaboration. Edit documents, spreadsheets, and presentations. - - container: - image: onlyoffice/documentserver:7.5.0 - image_signature: cosign://... - pull_policy: if-not-present - - dependencies: - - storage: 10Gi - - resources: - cpu_limit: 4 - memory_limit: 4Gi - disk_limit: 10Gi - - security: - capabilities: [] - readonly_root: false # OnlyOffice needs write access - no_new_privileges: true - user: 1000 - seccomp_profile: default - network_policy: isolated - apparmor_profile: onlyoffice - - ports: - - host: 8088 - container: 80 - protocol: tcp # Web UI - - volumes: - - type: bind - source: /var/lib/archipelago/onlyoffice - target: /var/www/onlyoffice/Data - options: [rw] - - environment: - - JWT_ENABLED=false - - JWT_SECRET=${ONLYOFFICE_JWT_SECRET} - - health_check: - type: http - endpoint: http://localhost:8088 - path: /healthcheck - interval: 30s - timeout: 5s - retries: 3 - - metadata: - launch: - open_in_new_tab: true diff --git a/image-recipe/configs/nginx-archipelago.conf b/image-recipe/configs/nginx-archipelago.conf index bbc3c583..3f862ea6 100644 --- a/image-recipe/configs/nginx-archipelago.conf +++ b/image-recipe/configs/nginx-archipelago.conf @@ -490,21 +490,6 @@ server { sub_filter_once on; sub_filter '' ''; } - location /app/onlyoffice/ { - proxy_pass http://127.0.0.1:8044/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_hide_header X-Frame-Options; - add_header X-Frame-Options "SAMEORIGIN" always; - proxy_hide_header Content-Security-Policy; - add_header X-Content-Type-Options "nosniff" always; - proxy_set_header Accept-Encoding ""; - sub_filter_once on; - sub_filter '' ''; - } # Remaining apps (also available on HTTPS via snippet include) location /app/searxng/ { proxy_pass http://127.0.0.1:8888/; diff --git a/image-recipe/configs/snippets/archipelago-https-app-proxies.conf b/image-recipe/configs/snippets/archipelago-https-app-proxies.conf index 8f26b571..639f389a 100644 --- a/image-recipe/configs/snippets/archipelago-https-app-proxies.conf +++ b/image-recipe/configs/snippets/archipelago-https-app-proxies.conf @@ -117,20 +117,6 @@ location /app/lnd/ { sub_filter_once on; sub_filter '' ''; } -location /app/onlyoffice/ { - proxy_pass http://127.0.0.1:8044/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_hide_header X-Frame-Options; - add_header X-Frame-Options "SAMEORIGIN" always; - proxy_hide_header Content-Security-Policy; - proxy_set_header Accept-Encoding ""; - sub_filter_once on; - sub_filter '' ''; -} location /app/jellyfin/ { proxy_pass http://127.0.0.1:8096/; proxy_http_version 1.1; diff --git a/neode-ui/mock-backend.js b/neode-ui/mock-backend.js index 594ea5dd..0b868ed6 100755 --- a/neode-ui/mock-backend.js +++ b/neode-ui/mock-backend.js @@ -253,7 +253,6 @@ const portMappings = { 'nostr-rs-relay': 7000, 'syncthing': 8384, 'penpot': 9001, - 'onlyoffice': 8044, 'nginx-proxy-manager': 8181, 'indeedhub': 8190, 'dwn': 3000, @@ -283,7 +282,6 @@ async function getDockerContainers() { 'mempool-electrs': 'mempool-electrs', 'archy-ollama': 'ollama', 'archy-searxng': 'searxng', - 'archy-onlyoffice': 'onlyoffice', 'archy-penpot-frontend': 'penpot' } @@ -361,11 +359,6 @@ async function getDockerContainers() { icon: '/assets/img/app-icons/searxng.png', description: 'Privacy-respecting metasearch engine' }, - 'onlyoffice': { - title: 'OnlyOffice', - icon: '/assets/img/onlyoffice.webp', - description: 'Office suite and document collaboration' - }, 'penpot': { title: 'Penpot', icon: '/assets/img/penpot.webp', @@ -463,7 +456,6 @@ const marketplaceMetadata = { 'grafana': { title: 'Grafana', shortDesc: 'Analytics and monitoring dashboards', icon: '/assets/img/app-icons/grafana.png' }, 'searxng': { title: 'SearXNG', shortDesc: 'Privacy-respecting metasearch engine', icon: '/assets/img/app-icons/searxng.png' }, 'ollama': { title: 'Ollama', shortDesc: 'Run large language models locally', icon: '/assets/img/app-icons/ollama.png' }, - 'onlyoffice': { title: 'OnlyOffice', shortDesc: 'Office suite for document collaboration', icon: '/assets/img/app-icons/onlyoffice.webp' }, 'penpot': { title: 'Penpot', shortDesc: 'Open-source design and prototyping platform', icon: '/assets/img/app-icons/penpot.webp' }, 'nextcloud': { title: 'Nextcloud', shortDesc: 'Self-hosted cloud storage and collaboration', icon: '/assets/img/app-icons/nextcloud.webp' }, 'vaultwarden': { title: 'Vaultwarden', shortDesc: 'Self-hosted password manager (Bitwarden-compatible)', icon: '/assets/img/app-icons/vaultwarden.webp' }, diff --git a/neode-ui/scripts/download-app-icons.js b/neode-ui/scripts/download-app-icons.js index 8ac1e2df..6fa5ca2f 100755 --- a/neode-ui/scripts/download-app-icons.js +++ b/neode-ui/scripts/download-app-icons.js @@ -25,7 +25,6 @@ const appIds = [ 'mempool', 'ollama', 'searxng', - 'onlyoffice', 'penpot' ] @@ -38,7 +37,6 @@ const repoMap = { 'lightning-stack': 'lnd-startos', 'mempool': 'mempool-startos', 'searxng': 'searxng-startos', - 'onlyoffice': 'onlyoffice-startos', 'penpot': 'penpot-startos', } @@ -170,4 +168,3 @@ async function main() { } main().catch(console.error) - diff --git a/neode-ui/src/stores/appLauncher.ts b/neode-ui/src/stores/appLauncher.ts index dfe5c321..2201f5d1 100644 --- a/neode-ui/src/stores/appLauncher.ts +++ b/neode-ui/src/stores/appLauncher.ts @@ -25,7 +25,6 @@ const NEW_TAB_APP_IDS = new Set([ 'vaultwarden', 'nextcloud', 'portainer', - 'onlyoffice', 'tailscale', 'nginx-proxy-manager', 'uptime-kuma', @@ -105,7 +104,6 @@ const PORT_TO_APP_ID: Record = { '9000': 'portainer', '8087': 'netbird', '8086': 'netbird', - '9980': 'onlyoffice', '11434': 'ollama', '2283': 'immich', '23000': 'btcpay-server', @@ -127,7 +125,6 @@ const APP_ID_TO_PORT: Record = { vaultwarden: '8082', nextcloud: '8085', portainer: '9000', - onlyoffice: '8044', tailscale: '8240', 'nginx-proxy-manager': '8081', 'uptime-kuma': '3002', diff --git a/neode-ui/src/utils/dummyApps.ts b/neode-ui/src/utils/dummyApps.ts index 6a87a754..f12cbf0e 100644 --- a/neode-ui/src/utils/dummyApps.ts +++ b/neode-ui/src/utils/dummyApps.ts @@ -438,42 +438,6 @@ export const dummyApps: Record = { status: ServiceStatus.Running } }, - 'onlyoffice': { - state: PackageState.Running, - 'static-files': { - license: 'AGPL-3.0', - instructions: 'Office suite and document collaboration', - icon: '/assets/img/onlyoffice.webp' - }, - manifest: { - id: 'onlyoffice', - title: 'OnlyOffice', - version: '7.5.0', - description: { - short: 'Office suite and document collaboration', - long: 'OnlyOffice is a secure office suite that enables real-time collaborative editing of documents, spreadsheets, and presentations. Self-hosted alternative to Google Workspace and Microsoft 365.' - }, - 'release-notes': 'Initial release', - license: 'AGPL-3.0', - 'wrapper-repo': 'https://github.com/ONLYOFFICE/DocumentServer', - 'upstream-repo': 'https://github.com/ONLYOFFICE/DocumentServer', - 'support-site': 'https://github.com/ONLYOFFICE/DocumentServer/issues', - 'marketing-site': 'https://www.onlyoffice.com', - 'donation-url': null - }, - installed: { - 'current-dependents': {}, - 'current-dependencies': {}, - 'last-backup': null, - 'interface-addresses': { - main: { - 'tor-address': 'onlyoffice.onion', - 'lan-address': 'http://localhost:8083' - } - }, - status: ServiceStatus.Running - } - }, 'indeedhub': { state: PackageState.Running, 'static-files': { diff --git a/neode-ui/src/views/Apps.vue b/neode-ui/src/views/Apps.vue index d3f16669..b036e0e7 100644 --- a/neode-ui/src/views/Apps.vue +++ b/neode-ui/src/views/Apps.vue @@ -3,13 +3,15 @@
-