Documentation for Nextcloud, published at docs.nextcloud.com. Written in reStructuredText and built with Sphinx.
New here? See Contributing below. We welcome all improvements, big or small.
This repository hosts three manuals:
- User manual: end-user features and workflows
- Administration manual: server installation, configuration, and operations
- Developer manual: app development, APIs, and architecture
Use the correct branch for the version you are targeting: master tracks the next
release; stable<N> branches (e.g. stable35) cover released versions.
Note
configuration_server/config_sample_php_parameters.rst is auto-generated from
config.sample.php in nextcloud/server.
Do not edit it here; changes must be made upstream in the server repository.
Contributions of any size are welcome. Fixing a typo is just as valuable as writing a new page. See CONTRIBUTING.md for the full workflow: local setup, branch strategy, commit format, DCO sign-off, and review process.
Quick entry points:
- Report a problem: open an issue
- Edit on GitHub: fork the repo and open a pull request for small fixes
- Write locally: set up a build environment (see Building) for larger changes
- Translate: help on Transifex
Before writing, read the style guide.
Once a page is created, do not rename or move it without adding a redirect in that
manual's conf.py. External links and search-engine indexes depend on stable URLs;
treat page paths like a public API.
- Nextcloud App Store
- synchronize (not "sync" in prose)
- Web, Web page, Web site (capitalised)
All contributors are expected to follow the Nextcloud Code of Conduct.
- Nextcloud community forums: general Nextcloud questions
- Documentation Talk room: real-time chat with documentation contributors
- GitHub Issues: bug reports and documentation gaps
Note
uv picks the Python version from .python-version, which also matches the
stable<N> branches.
git clone https://github.com/nextcloud/documentation.git
cd documentation
uv venv && source .venv/bin/activate # recommended
uv pip install -r requirements.txt
make html # all manualsUsing plain Python instead:
python3.13 -m venv venv && source venv/bin/activate pip install -r requirements.txt make html
Output lands in <manual>/_build/html/. Build a single manual:
cd user_manual && make html
For a live-reloading preview while editing:
uv pip install sphinx-autobuild
cd user_manual
make SPHINXBUILD=sphinx-autobuild htmlThen open http://127.0.0.1:8000.
Build the English version first (see above).
Generate translation stubs:
../build/change_file_extension.sh
Build a specific language, e.g. German:
make html-lang-de
Output:
_build/html/de/index.html
Note
Delete _build/ before switching to a different language.
The easiest path is the VSCode DevContainer or GitHub Codespaces; all LaTeX dependencies are pre-installed. Open the repository in the container and run:
cd user_manual && make latexpdf
Alternatively, use Docker directly:
docker run --platform linux/amd64 \
--volume .:/docs --interactive --tty \
ghcr.io/nextcloud/documentation/sphinx-latex:latest bash
# Inside the container:
cd /docs && python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cd user_manual && make latexpdf
# Output: _build/latex/Nextcloud_User_Manual.pdfFor translated PDFs (user manual only), generate translation stubs first
(../build/change_file_extension.sh), then run make latexpdf-lang-de.
Note
Installing LaTeX locally is not recommended due to the large number of system dependencies. Use the DevContainer or Docker approach instead.
Help translate the documentation on Transifex.
Translation files under locale/ are managed by Transifex and synced via CI.
Edit source strings in .rst files only; never edit locale/ directly.
For the Transifex Sphinx integration, see the Transifex documentation.
All documentation in this repository is licensed under the Creative Commons Attribution 3.0 Unported license (CC BY 3.0).