Strong
Self-hosted file platform

Files, permissions and collaboration — on your own servers

Strong Disk replaces the cloud drive: private drives and shared folders, versions and trash, DOCX, XLSX and PPTX editing together with colleagues, search across text and scans, and a desktop client that works offline. All in one container stack.

3 languages
RU, ET and EN in the UI, emails and the client
SHA-256
verification of every uploaded version
up to 50 GiB
per file: resumable upload in 16 MiB parts
0 external services
OCR, editors and mail run inside your network
Features

Everything a team needs to work with files

No add-ons or plugins: every feature below is already in the product and covered by tests.

  • Versions, trash and quotas

    Every upload is an immutable version with a SHA-256. Trash with a configurable retention period, a version limit per file, organization and drive quotas that count trash and reservations.

  • Co-editing

    DOCX, XLSX and PPTX open in the browser in ONLYOFFICE or Collabora Online — the engine is chosen per organization. One shared document, versions and conflict copies.

  • Search across text and scans

    PostgreSQL searches names and the text of TXT, code, PDF and office documents. The With OCR mode recognizes scans and images locally, in Russian and English.

  • Permissions, groups and links

    Personal and group permissions with inheritance, “Shared with me”, public links with a password and expiry, notifications on grants and revocations. Administrators do not see private files automatically.

  • Desktop client and offline

    The Rust client syncs a folder both ways, works without a network and catches up when it returns. Selective sync, pause, bandwidth limit, OS trash.

  • Realtime updates

    Lists, counters and notifications update for every member without a reload — SSE on top of PostgreSQL LISTEN/NOTIFY.

  • Preview and thumbnails

    TXT, PDF, images including HEIC, audio and video right in the workspace. Thumbnails of the first PDF page, a video frame and MP3 covers, cached per version.

  • Phone and tablet

    Bottom navigation, a compact grid, uploads through “Add” and a list without horizontal scrolling. Light, dark and system themes.

Security

Protected by default, not by configuration

Access checks live in the API, not in the interface: every file request verifies membership, ownership and granted permissions. Below is what is already on.

  • Better Auth: email OTP, 2FA with TOTP and backup codes, devices and sessions with revocation
  • Strict CSP with nonces, frame-ancestors, HSTS, Sec-Fetch-Site and SameSite=Strict cookies
  • Hashed link tokens, scrypt for link passwords, 32-byte secrets, timing-safe comparison
  • Rate limits stored in PostgreSQL and shared by every API replica; separate limits on mail routes
  • Device sign-in per RFC 8628 with a client allowlist and server-side token revocation
  • Activity log with categories and retention; ZIP import protected against zip-slip
Desktop

A folder on your computer that always matches the server

The Rust and Tauri 2 client needs no Electron and uses the same design system as the web app. Sign-in happens through a device code in the system browser; the token lives in the Keychain.

  • Two-way sync and “Shared with me”
  • Full offline mode: an operation queue and wake-up on network
  • Conflict copies instead of data loss
  • Selective sync, pause for 1 h, 8 h or until morning, bandwidth limit
  • Updates with a signed manifest (Ed25519)
  • macOS universal and Windows x64, updated through a signed manifest
Deployment

One compose file and the platform is running

Two images (api and web), PostgreSQL and RustFS, optionally ONLYOFFICE and Collabora. Migrations apply on start, the bucket creates itself, backup and restore are scripts with a completed drill.

Deployment guide
cd strong-disk
npm ci && npm run setup
docker compose --env-file .env.prod \
  -f compose.prod.yaml up -d --build
curl -fsS https://disk.example.com/api/public/auth-options
Stack
  • Next.js 16
  • Fastify 5
  • PostgreSQL 18
  • RustFS (S3)
  • Rust + Tauri 2
  • pg-boss
FAQ

Frequently asked questions

Where are the files stored?

Content lives in S3-compatible storage (bundled RustFS or any other S3); metadata, versions and permissions live in PostgreSQL. Nothing leaves your infrastructure.

Do the editors need a separate server?

ONLYOFFICE and Collabora run as separate containers in the same compose stack. Enable one or both and pick the engine in the organization settings.

How does search in scans work?

OCR runs locally with Tesseract on the API server and only when the With OCR mode is chosen. Results are cached per file version and filtered by access rights.

What about large files?

Uploads go in 16 MiB parts straight to storage, with pause and resume after an interruption. The organization sets the per-file limit — up to 50 GiB.

Are there mobile apps?

The web interface is adapted for phones. A native iOS client is planned; the APIs it needs — device sign-in and the change feed — are already in place.

Ready to try it?

Start the stack locally with five commands or sign in to an existing organization.