OpenCloud is a free, open source file management & sync project written in Go and released under Apache-2.0. It has 6,003 GitHub stars, 242 forks and 449 open issues, and was last pushed 9 hours ago. On this registry it ranks #6 of 12 tracked projects in File Management & Sync, with 5 head-to-head comparisons available. It gained 45 stars over the last 6 tracked days.

What is OpenCloud?

What it is

OpenCloud is an open source platform for file management, sharing and collaboration, positioned as a self-hosted alternative built for digital sovereignty. The project lives in the Productivity & Utilities / File Management & Sync category of the open source ecosystem, and the repository in question is the main repository of the OpenCloud server: it contains the Go codebase for the backend services that the rest of the platform is built on. The server is released under the Apache 2.0 licence, and the wider project is backed by OpenCloud GmbH, with documentation and installation guidance published at opencloud.eu and a documentation site at docs.opencloud.eu.

The concrete problem OpenCloud addresses is ownership of data and infrastructure. Instead of handing files and collaboration to a third-party service, an organisation runs the server itself and keeps the stored data on its own machine: the backend does not use a database at all and stores all data in the filesystem, with $HOME/.opencloud/ as the default root directory. Identity is handled through OpenID Connect, so users can be authenticated either by an external identity provider such as Keycloak or by the embedded LibreGraph Connect identity provider. That combination — a Go backend, file-based storage and standard OIDC authentication — is what allows the deployment to stay simple and sovereign.

Key capabilities

  • File management, sharing and collaboration as the core platform scope.
  • A Go backend codebase organised as a set of server services.
  • OpenID Connect authentication with an external IdP such as Keycloak.
  • An embedded LibreGraph Connect identity provider for deployments that do not supply their own.
  • Database-free storage, with all data written directly to the filesystem.
  • A configurable root directory, defaulting to $HOME/.opencloud/.
  • A single opencloud binary that can be initialised and started as a local instance.

Who uses it and how

  • Teams that need self-hosted file sharing and want to keep data on infrastructure they control.
  • Organisations that already run Keycloak and want to reuse it as the identity provider for file services.
  • Smaller setups that prefer the embedded LibreGraph Connect identity provider instead of operating a separate IdP.
  • Contributors working on the backend: reporting issues and bugs, requesting features, writing documentation, writing code or extending tests, reviewing pull requests, and helping others in the Matrix community room.

Getting started

Build from source with make generate to produce the assets needed by the web UI and built-in IDP, then make -C opencloud build, which produces opencloud/bin/opencloud. Start a local test instance with opencloud/bin/opencloud init && opencloud/bin/opencloud server; this writes

project readme (upstream, from github) — read inline

OpenCloud logo

status-badge Matrix License

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:

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 generate

Then compile the opencloud binary

make -C opencloud build

That 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 server

This 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.

Frequently asked questions

Is OpenCloud free to use?

OpenCloud is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does OpenCloud do?

Self-hosted file sharing built for digital sovereignty

What is OpenCloud written in?

OpenCloud is primarily written in Go. Its source is publicly available at https://github.com/opencloud-eu/opencloud, and it has 6,003 GitHub stars.