README.md
Docs, where your notes can become knowledge through live collaboration.
Docs is an open-source collaborative editor that helps teams write, organize, and share knowledge together - in real time.
Docs is an open-source alternative to tools like Notion or Google Docs, focused on:
Built for public organizations, companies, and open communities.
.docx and .md.docx, .odt, .pdfExperience Docs instantly - no installation required.
Docs supports Kubernetes, Docker Compose, and community-provided methods such as Nix and YunoHost.
Get started with self-hosting: Installation guide
[!WARNING] Some advanced features (for example:
Export as PDF) rely on XL packages from Blocknote. These packages are licensed under GPL and are not MIT-compatibleYou can run Docs without these packages by building with:
bashPUBLISH_AS_MIT=trueThis builds an image of Docs without non-MIT features.
More details can be found in environment variables
Run Docs locally for development and testing.
[!WARNING] This setup is intended for development and testing only. It uses Minio as an S3-compatible storage backend, but any S3-compatible service can be used.
Verify installation:
docker -v
docker compose version
If you encounter permission errors, you may need to use
sudo, or add your user to thedockergroup.
The easiest way to start is using GNU Make:
make bootstrap FLUSH_ARGS='--no-input'
This builds the app-dev and frontend-dev containers, installs dependencies, runs database migrations, and compiles translations.
It is recommended to run this command after pulling new code.
Start services:
make run
Default credentials (development only):
username: impress
password: impress
For frontend work, running outside Docker is often more convenient:
make frontend-development-install
make run-frontend-development
Starting all services except the frontend container:
make run-backend
make frontend-test
make frontend-lint
Backend tests can be run without docker. This is useful to configure PyCharm or VSCode to do it.
Removing docker for testing requires to overwrite some URL and port values that are different in and out of
Docker. env.d/development/common contains all variables, some of them having to be overwritten by those in
env.d/development/common.test.
Create a basic demo site:
make demo
To check all available Make rules:
make help
Create a superuser:
make superuser
Admin UI: http://localhost:8071/admin
This project is community-driven and PRs are welcome.
Curious where Docs is headed?
Explore upcoming features, priorities and long-term direction on our public roadmap.
This work is released under the MIT License (see LICENSE).
While Docs is a public-driven initiative, our license choice is an invitation for private sector actors to use, sell and contribute to the project.
Docs is built on top of Django Rest Framework, Next.js, ProseMirror, BlockNote.js, HocusPocus, and Yjs. We thank the contributors of all these projects for their awesome work!
We are proud sponsors of BlockNotejs and Yjs.
Docs is the result of a joint initiative led by the French 🇫🇷 (DINUM) Government and German 🇩🇪 government (ZenDiS).
We are always looking for new public partners (we are currently onboarding the Netherlands 🇳🇱), feel free to contact us if you are interested in using or contributing to Docs.
<p align="center"> </p>