Overview
Discover what makes Tracim powerful
Tracim is a **self‑hosted groupware platform** that bundles document management, collaboration tools, and a rich API surface. It is engineered for teams that need fine‑grained control over data, custom integrations, and an open source stack. The core of Tracim is a **Python/Django** backend that exposes RESTful endpoints, coupled with a **React/TypeScript** single‑page application (SPA) that consumes these APIs. The architecture is deliberately modular: core services such as authentication, file storage, and activity feeds are isolated behind well‑defined interfaces, allowing developers to replace or extend them without touching the rest of the codebase.
Enterprise‑grade document storage
Real‑time collaboration
Extensible plugin system
OAuth2 / OpenID Connect support
Overview
Tracim is a self‑hosted groupware platform that bundles document management, collaboration tools, and a rich API surface. It is engineered for teams that need fine‑grained control over data, custom integrations, and an open source stack. The core of Tracim is a Python/Django backend that exposes RESTful endpoints, coupled with a React/TypeScript single‑page application (SPA) that consumes these APIs. The architecture is deliberately modular: core services such as authentication, file storage, and activity feeds are isolated behind well‑defined interfaces, allowing developers to replace or extend them without touching the rest of the codebase.
Key Features
- Enterprise‑grade document storage with versioning, metadata tagging, and fine‑grained ACLs.
- Real‑time collaboration via WebSocket endpoints for chat, comments, and live document editing hooks.
- Extensible plugin system: Python modules can hook into lifecycle events (e.g.,
pre_upload,post_delete) and expose new REST routes. - OAuth2 / OpenID Connect support for single‑sign‑on with external identity providers.
- Webhooks & Event streams: expose a push API that third‑party services can subscribe to, enabling automated workflows.
- Multilingual UI with a robust translation pipeline powered by Weblate.
Technical Stack
| Layer | Technology | Rationale |
|---|---|---|
| Backend | Python 3.11, Django 4.x, DRF (Django REST Framework) | Mature ecosystem, strong typing via mypy, built‑in ORM. |
| Frontend | React 18, TypeScript, Vite | Fast dev cycles, component reuse, strict typing. |
| Database | PostgreSQL (recommended), SQLite for dev | ACID guarantees, support for full‑text search and JSONB. |
| Storage | Local filesystem (default), S3-compatible object storage via django-storages | Flexibility for on‑prem or cloud setups. |
| Message Bus | Redis (for caching, rate limiting, Celery broker) | Lightweight in‑memory store for async tasks. |
| Containerization | Docker, Compose templates included | Simplifies deployment and CI pipelines. |
The codebase follows Django’s app‑centric layout, with each functional domain (e.g., documents, collaboration) packaged as a separate Django app. This separation eases unit testing and plugin development.
Core Capabilities
- REST API: CRUD operations on documents, spaces, users, and permissions; supports pagination, filtering, and field selection.
- GraphQL endpoint (optional) for complex queries with minimal payloads.
- CLI tooling (
tracim-admin) for migrations, database seeding, and background job management. - Authentication backends: JWT, session cookies, LDAP, SAML, and external OAuth providers.
- Audit logging: every action is recorded in a database table, exportable as CSV or JSON.
Developers can consume these APIs with standard HTTP clients or integrate them into existing microservices.
Deployment & Infrastructure
Tracim is fully container‑ready. The official Docker image exposes configurable environment variables (DATABASE_TYPE, TRACIM_WEBSITE__BASE_URL) and mounts for /etc/tracim (config) and /var/tracim (persistent data). Production deployments typically use:
- PostgreSQL as the primary database; schema migrations are handled by Django’s migration framework.
- Redis for caching and Celery broker; optional RabbitMQ support is available.
- NGINX or a cloud load balancer in front of the Docker container for HTTPS termination and static asset caching.
- Kubernetes manifests are provided in the repo, allowing horizontal scaling of worker pods and stateless API replicas.
The architecture supports horizontal scaling: the Django app is stateless, so multiple instances can share a Redis session store and an external S3 bucket for file storage.
Integration & Extensibility
- Plugin API: Developers can ship Python packages that register signals, add new URLs, or override templates.
- Webhooks: Configure endpoints to receive JSON payloads on events like
document.createdoruser.deleted. - SDKs: A lightweight Python SDK (
tracim-sdk) wraps the REST API, handling authentication and pagination. - OAuth/OpenID Connect: Easily integrate with corporate identity providers (Okta, Azure AD).
- Custom workflows: Use Celery tasks to trigger external services (e.g., document conversion, email notifications).
The plugin system is documented in the docs/development/plugins.md file, with examples of event hooks and CLI extensions.
Developer Experience
- Configuration: YAML/INI files in
/etc/tracimexpose every setting; environment variables override them at runtime. - Documentation: The
docs/folder contains API references, architecture diagrams, and a developer onboarding guide. - Community: Active GitHub discussions, a public Slack channel, and Weblate translation contributors provide rapid feedback loops.
- Testing: Unit tests use
pytestwith Django fixtures; integration tests run against a Dockerized PostgreSQL instance. - CI/CD: GitHub Actions automatically lint, test, and build Docker images on every PR.
Use Cases
- Enterprise Document Hub – Replace proprietary cloud solutions with a self‑hosted, GDPR‑compliant repository.
Open SourceReady to get started?
Join the community and start self-hosting Tracim today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Vaultwarden
Lightweight Bitwarden-compatible password manager
Neko
Virtual browser in a container, WebRTC‑powered
Gathio
Federated, privacy‑first event hosting platform
HeyForm
Build conversational forms without code
MistServer
Open‑source OTT streaming toolkit for developers
Claper
Turn presentations into interactive, real‑time conversations