Overview
Discover what makes Twake Workplace powerful
Cozy Cloud, now branded as **Twake Workplace**, is an open‑source groupware platform that bundles real‑time communication, file storage, and collaborative tools into a single self‑hosted stack. From a developer standpoint it functions as a *micro‑service ecosystem* that exposes RESTful APIs, WebSocket endpoints, and pluggable modules. Its core goal is to keep user data on premises while providing a modern, responsive UI built with React and Redux, backed by a Node.js server that orchestrates business logic and persistence.
Backend
Database
Search & Indexing
Storage
Overview
Cozy Cloud, now branded as Twake Workplace, is an open‑source groupware platform that bundles real‑time communication, file storage, and collaborative tools into a single self‑hosted stack. From a developer standpoint it functions as a micro‑service ecosystem that exposes RESTful APIs, WebSocket endpoints, and pluggable modules. Its core goal is to keep user data on premises while providing a modern, responsive UI built with React and Redux, backed by a Node.js server that orchestrates business logic and persistence.
Technical Stack
- Backend – The API layer is written in Node.js (v18+), using the Express framework for routing and middleware. Authentication is handled via OAuth2/OpenID Connect, with JWTs issued by an internal identity provider.
- Database – Persistent data lives in a PostgreSQL 13+ instance. The schema is split across logical databases per tenant, allowing multi‑tenant isolation while sharing the same code base.
- Search & Indexing – Full‑text search is powered by Elasticsearch 7.x, which the backend queries via a dedicated micro‑service. This service also handles indexing of file metadata and message content.
- Storage – File blobs are stored in an S3‑compatible object store (MinIO or external providers). The backend exposes a signed URL API to upload/download directly, reducing load on the application server.
- Real‑time – WebSocket communication is implemented with socket.io, enabling instant messaging, presence indicators, and live collaboration on documents.
- Front‑end – The SPA is built with React 18, using TypeScript for type safety, and consumes the backend APIs through a thin SDK that abstracts authentication tokens.
- Containerization – The entire stack is delivered as a Docker Compose bundle (
docker-compose.yml), with optional Kubernetes manifests for production deployments. Each service runs in its own container, facilitating CI/CD pipelines and scaling.
Core Capabilities & APIs
- RESTful CRUD for users, groups, channels, files, and tasks. Endpoints follow a consistent resource pattern (
/api/v1/users,/api/v1/files/:id). - WebSocket API for real‑time events: message receipt, typing indicators, file upload progress.
- Webhook support – External services can subscribe to events (e.g., new message, file added) via configurable URLs.
- OAuth2 Provider – Clients can register as third‑party applications, obtaining client credentials and defining scopes (
read:messages,write:files). - Plugin SDK – Developers can ship extensions as separate Docker containers that register with the core via a simple JSON manifest. The plugin system exposes hooks for UI injection, custom routes, and background jobs.
- CLI – A command‑line tool (
twake-cli) lets admins perform routine tasks: backup, migration, user import/export.
Deployment & Infrastructure
- Self‑hosting is straightforward: pull the Docker images, adjust environment variables (
DATABASE_URL,S3_ENDPOINT), and rundocker compose up -d. For larger deployments, the provided Helm charts orchestrate stateful sets for PostgreSQL and Elasticsearch. - Scalability is achieved by horizontally scaling the API layer behind a load balancer. The stateless nature of most services means additional instances can be spun up with minimal configuration.
- High‑availability: PostgreSQL uses streaming replication; Elasticsearch clusters are configured with at least three nodes. The system supports automatic failover via Kubernetes operators.
- Data residency: All components can be deployed within a single data center or across regions, but the default configuration keeps everything in one place to satisfy GDPR compliance.
Integration & Extensibility
- External identity providers (LDAP, Azure AD) can be plugged in via the auth module’s configuration.
- Third‑party services (e.g., payment gateways, calendar APIs) can be integrated through the plugin system or by exposing custom REST endpoints.
- Custom UI: The SPA exposes a theming API; developers can override CSS variables and inject React components into predefined slots.
- Automation: Background workers (written in Node.js) can consume message queues (
RabbitMQ) to trigger actions such as file conversion or notification delivery.
Developer Experience
- Documentation is comprehensive, with API reference (Swagger UI), developer guides, and a plugin development tutorial. The docs are hosted alongside the source on GitHub.
- Community: A vibrant open‑source community maintains the codebase, with regular releases, a public roadmap, and active issue triage. Slack/Discord channels provide quick support.
- Testing: The repository includes unit and integration tests, using Jest for Node.js services and Cypress for end‑to‑end UI testing.
- Configuration: All settings are environment‑driven, making CI/CD pipelines trivial. Secret management can be integrated with HashiCorp Vault or Kubernetes Secrets.
Use Cases
- Enterprise Collaboration: Deploy on-premises to replace proprietary SaaS suites while keeping data under corporate control.
- Educational Institutions: Provide a GDPR‑compliant platform for student collaboration, file sharing, and messaging.
- DevOps Automation: Use the webhook API to trigger CI pipelines when new code is uploaded or a task is completed.
- Custom SaaS: Leverage the plugin SDK to build a niche collaboration product (e.g., legal document review) and host it for clients.
Advantages Over Alternatives
- Data sovereignty: All data stays on the host; no outbound traffic to external cloud providers unless explicitly configured.
- Open‑source licensing (MIT):
Open SourceReady to get started?
Join the community and start self-hosting Twake Workplace 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
Tags
Explore More Apps
Jina
Build and deploy AI services at scale
Dotclear
Self-hosted other
Docker Mailserver
Self‑hosted, full‑stack mail server in a single container
Shiori
Self‑hosted bookmark manager for CLI and web
Ansible-NAS
Automated Docker stack for self‑hosted home servers
XBackBone
Lightweight PHP file manager for instant sharing