1. Project Overview & Quickstart (opencloud-eu/opencloud)
Server Backend
[!TIP]
For general information about OpenCloud and how to install please visit OpenCloud on Github and OpenCloud GmbH.
This is the main repository of the OpenCloud server.
It contains the golang codebase for the backend services.
Getting Involved
The OpenCloud server is released under Apache 2.0.
The project is thrilled to receive contributions in all forms.
Start hacking now, there are many ways to get involved such as:
- Reporting issues or bugs
- Requesting features
- Writing documentation
- Writing code or extend our tests
- Reviewing code
- Helping others in the community
Every contribution is meaningful and appreciated!
Please refer to our Contribution Guidelines if you want to get started.
Build OpenCloud
To build the backend, follow these instructions:
Generate the assets needed by e.g., the web UI and the builtin IDP
make generateThen compile the opencloud binary
make -C opencloud buildThat will produce the binary opencloud/bin/opencloud. It can be started as a local test instance right away with a two step command:
opencloud/bin/opencloud init && opencloud/bin/opencloud serverThis creates a server configuration (by default in $HOME/.opencloud) and starts the server.
For more setup- and installation options consult the Development Documentation.
Technology
Important information for contributors about the technology in use.
Authentication
The OpenCloud backend authenticates users via OpenID Connect using either an external IdP like Keycloak or the embedded LibreGraph Connect identity provider.
Database
The OpenCloud backend does not use a database. It stores all data in the filesystem. By default, the root directory of the backend is $HOME/.opencloud/.
Security
If you find a security-related issue, please contact [email protected] immediately.
2. Official Technical Reference & Guides (opencloud-eu/docs)
🌐 Website
This website is built using Docusaurus, a modern static website generator.
Installation
pnpm installLocal Development
Clone this repository and start the local dev server:
pnpm startThis command will launch a local development server and open the site in your browser. Changes are hot-reloaded automatically.
⚠️
docstree contains redirects, because some documentation files may have been removed or moved, and old bookmarks should still work. To have those working in the local dev server, the documentation needs to be built first:
pnpm build
pnpm run serveStart docs in German
To launch the documentation in German, run:
pnpm run start --locale de⚠️ Switching languages via the language switcher is currently not supported.
Build
pnpm buildThis command generates static content in the build folder. You can serve it using any static file hosting service.
Deployment
Using SSH:
USE_SSH=true pnpm deployWithout SSH:
GIT_USER=<Your GitHub username> pnpm deployIf you're using GitHub Pages, this will push the production build to the gh-pages branch.
Screenshot Guidelines
| Component | Width |
|---|---|
| Full screen | 1920px |
| Menu | 400px |
| Pop-up / Modal | 500px |
Highlight key elements in the screenshot with red borders or boxes if needed.
Example
To include a screenshot in your documentation, use the following format:
- Use
require(...)for image paths so they are bundled correctly by Docusaurus - Always include a meaningful
alttext to improve accessibility and SEO
Markdown Guidelines
To maintain a consistent structure across all docs, follow these formatting conventions:
Frontmatter Example
All .md files must begin with a valid frontmatter block:
---
id: getting-started
title: Getting Started
sidebar_position: 1
---idmust be unique and match the filename (without.md)sidebar_positiondefines the ordering in the sidebardescriptionis required to ensure consistent SEO metadata and link previews. Always include a meaningful and concise description.
Heading Hierarchy
Use the correct heading levels:
# Page Title
## Section Heading
### Subsection Heading
#### Optional Sub-subsectionDo not skip heading levels (e.g., don’t go from
##directly to####).
Info Blocks
Use Docusaurus-style info blocks to highlight important content:
:::tip
Helpful tip content goes here.
:::
:::info
General information goes here.
:::
:::warning
Warnings go here.
:::
:::danger
Critical notices go here.
:::Lists and Steps
Use regular markdown for ordered lists. Do not nest deeply.
1. First step
2. Second step
3. Third stepFormat Before Pushing
Before committing changes, ensure proper formatting using:
pnpm format:write
pnpm lint:md:fixThese commands will:
- Format all project files
- Lint and auto-fix markdown formatting
- Ensure consistent style across documentation
Thanks for helping us keep the docs clean, professional, and easy to read!