Add Clumoove by xXRoxXeRXx · Pull Request #6023 · getumbrel/umbrel-apps · GitHub
Skip to content

Add Clumoove - #6023

Open
xXRoxXeRXx wants to merge 1 commit into
getumbrel:masterfrom
xXRoxXeRXx:add-clumoove
Open

Add Clumoove#6023
xXRoxXeRXx wants to merge 1 commit into
getumbrel:masterfrom
xXRoxXeRXx:add-clumoove

Conversation

@xXRoxXeRXx

Copy link
Copy Markdown

App Details

Image Sources & Architectures

All runtime images are publicly hosted on GitHub Container Registry (GHCR) with multi-architecture support (linux/amd64, linux/arm64):

  • ghcr.io/xxroxxerxx/clumoove-api:v0.16.0
  • ghcr.io/xxroxxerxx/clumoove-worker:v0.16.0
  • ghcr.io/xxroxxerxx/clumoove-frontend:v0.16.0
  • Base images: postgres:15-alpine, redis:7-alpine

Overview

Clumoove is a self-hosted cloud data migration, sync, and snapshot backup engine for files, calendars, and contacts.

  • Zero-disk streaming transfers: Direct memory streaming between providers without intermediate disk caching.
  • Multi-cloud connectivity: Nextcloud, Google Drive, Dropbox, OneDrive, HiDrive, S3, WebDAV, SMB, SFTP, FTP, Immich, Seafile, Koofr, MEGA, and local storage.
  • Snapshot Backup & Restore: Block-level deduplication (4-MiB SHA-256 blocks), 64-MiB immutable packs, two-phase restore with conflict preview, and retention policies.
  • Built-in Cloud File Manager: Direct cloud browsing, in-browser previews (PDF, Office docs, media), and multi-file uploads.
  • Multi-channel Notifications: Telegram, Discord, Gotify, ntfy, and Email.

Permissions, Host Access & Security

  • Host Privileges: None. No Docker socket access, no privileged mode, no host networking. All services run in an isolated bridge network.
  • Permissions: None.
  • Data Persistence: Strictly confined to ${APP_DATA_DIR}/data/ (postgres, redis, and local sandbox storage).
  • Secrets Handling: Cryptographic key segregation derived from ${APP_PASSWORD} for AES-256-GCM credential encryption and JWT signing. Ephemeral Redis queue data is excluded via backupIgnore.

Onboarding & Authentication

  • Default Credentials: None (defaultUsername: "", defaultPassword: "").
  • First-Run Experience: Clumoove features a 1-click web onboarding flow. On cold start, the web UI automatically detects an empty database and presents the interactive Admin Setup Wizard (/api/auth/setup-admin) to create the initial admin account.
  • Routing: app_proxy is configured with PROXY_AUTH_ADD: "false" so Clumoove manages its own user sessions, roles, and optional TOTP 2FA.

Testing Performed

  • Static Linter: Passed npm run lint:apps -- clumoove --check-images and git diff --check.
  • Automated Test Suites: Passed 224 frontend unit/integration tests (vitest), Go backend test suite (go test ./...), Go vet (go vet ./...), ESLint, and TypeScript typechecks.
  • Runtime Verification: Tested on umbrelOS instance:
    • Clean 1-click install via umbreld client apps.install.mutate --appId clumoove.
    • Browser access via app_proxy on port 8380.
    • Interactive admin creation wizard on fresh install.
    • Container restart (umbreld client apps.restart.mutate) and persistence validation under ${APP_DATA_DIR}.
    • Storage profile configuration and background transfer execution.

App Store Review Assets (For Maintainers)

Note: In accordance with Umbrel submission guidelines, asset files are not committed to the package directory. Below are the reference assets for store review:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant