A decentralized, sovereign document workspace for organizations that don't want to hand their data to a cloud provider.
📚 Documentation ·
🧪 Try the Sandbox ·
🚀 Quick Start ·
Document collaboration between multiple organizations usually means one of them has to trust a third party — a cloud provider, a platform vendor, a "neutral" middleman — with everyone's data. TruSpace removes that requirement.
It's a network where every participant (or organization) runs their own node. Documents, versions, and metadata are synced peer-to-peer over IPFS, so no single party owns or controls the data. Everyone keeps a full, verifiable copy. On top of that, TruSpace adds local AI to help teams actually understand what's in the documents they share — without ever sending that content to an external API.
- 🔓 Sovereign by design — 100% open-source and self-hostable. No cloud account, no vendor lock-in, no third party holding your data.
- 🌐 Truly decentralized — built on IPFS/IPFS Cluster. Every organization runs its own node; data replicates automatically across trusted peers and survives network splits.
- 🛡️ Fault-tolerant & censorship-resistant — there is no central server to take down or subpoena. Peers can run as a private network.
- 🧠 AI-assisted, not AI-dependent — local LLMs (Ollama + Open Web UI) help interpret documents with customizable prompts, entirely on infrastructure you control.
- 🗂️ Built for real collaboration — workspaces organize content and participants across institutional boundaries.
If you're an institution that needs to collaborate on sensitive documents with partners, regulators, or subsidiaries you don't fully control — and "just use our cloud" isn't an acceptable answer — this is what TruSpace is for.
git clone git@github.com:openkfw/TruSpace.git
cd TruSpace
./start.shThen open http://localhost:3000, register a local account, and start creating workspaces. Your data stays on your machine.
Tip
Don't want to install anything yet? Play around first in the online sandbox — register, log in, and explore public and private workspaces. It's a demo environment, so data may be reset occasionally.
Having trouble? Run docker ps and confirm these containers are up: truspace-frontend, truspace-backend, ipfs0, cluster0, and the Open Web UI container. Full walkthrough and troubleshooting: Installation Guide.
| I want to... | Go here |
|---|---|
| Install TruSpace locally | Local Installation Guide |
| Connect my node to other TruSpace nodes/partners | Networking Guide |
| Understand the architecture in depth | Architecture Docs |
| Use TruSpace as an end user | User Guide |
| Set up a dev environment / contribute | Developer Guide |
| Administer a TruSpace node | Admin Guide |
📖 The full documentation lives at web.truspace.dev/site — that's the best place to go deeper on anything below.
| Layer | Technologies |
|---|---|
| Frontend | TypeScript · React · Next.js · Radix UI |
| Backend | TypeScript · Express.js |
| Decentralized storage | IPFS · IPFS Cluster |
| User database | SQLite |
| LLM engine | Ollama |
| AI API & RAG | Open Web UI |
| Containerization | Docker |
The UI and API (this repository) provide the interface and orchestration layer. When you start TruSpace, it pulls and connects containers for Open Web UI (AI processing) and IPFS/IPFS Cluster (data persistence) — see the architecture docs for the full picture, including port mappings and data flow.
- Each organization runs its own IPFS node — there is no central server holding everyone's documents.
- Nodes automatically replicate documents and metadata (chats, versions, AI perspectives) across the trusted network.
- Pinning is orchestrated via IPFS Cluster to guarantee data availability even if individual nodes go offline.
- Workspaces, documents, and metadata form a hierarchical data model linked via UUIDs; each entry is a single small file, minimizing merge conflicts if the network partitions. See the type definitions in
backend/src/types/interfaces/truspace.ts.
- Sensitive data (e.g. login credentials) is encrypted at rest in SQLite on the local node.
- Documents sync only to trusted IPFS peers; IPFS can be run as a fully private network.
- All inter-node communication is encrypted.
- Documents are encrypted per workspace.
Contributions are welcome! Start with CONTRIBUTING.md and the Developer Guide for setting up your environment, coding guidelines, and how to submit pull requests.
Licensed under the GNU General Public License v3.0 — see LICENSE for details.
- 📖 User Guide · Developer Guide · Admin Guide
- 💬 GitHub Discussions
- 🐛 Report an issue
- ✍️ Why decentralization and sovereignty matter: Medium: "Your place or my place?"