opencloud

module
v1.1.0-alpha.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2025 License: Apache-2.0

README

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 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 very happy to receive contributions in all forms. Start hacking now 😃

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.

Contribute

We very much appreciate contributions from the community. Please refer to our Contribution Guidelines on how to get started.

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 security@opencloud.eu immediately.

Directories

Path Synopsis
internal
opencloud
cmd/opencloud command
pkg/backup
Package backup contains OpenCloud backup functionality.
Package backup contains OpenCloud backup functionality.
pkg/revisions
Package revisions allows manipulating revisions in a storage provider.
Package revisions allows manipulating revisions in a storage provider.
pkg
ast
Package ast provides available ast nodes.
Package ast provides available ast nodes.
ast/test
Package test provides shared test primitives for ast testing.
Package test provides shared test primitives for ast testing.
config/envdecode
Package envdecode is a package for populating structs from environment variables, using struct tags.
Package envdecode is a package for populating structs from environment variables, using struct tags.
crypto
Package crypto implements utility functions for handling crypto related files.
Package crypto implements utility functions for handling crypto related files.
keycloak
Package keycloak is a package for keycloak utility functions.
Package keycloak is a package for keycloak utility functions.
kql
Package kql provides the ability to work with kql queries.
Package kql provides the ability to work with kql queries.
l10n
package l10n holds translation mechanics that are used by user facing services (notifications, userlog, graph)
package l10n holds translation mechanics that are used by user facing services (notifications, userlog, graph)
log
markdown
Package markdown allows reading and editing Markdown files
Package markdown allows reading and editing Markdown files
natsjsregistry
Package natsjsregistry implements a registry using natsjs kv store
Package natsjsregistry implements a registry using natsjs kv store
structs
Package structs provides some utility functions for dealing with structs.
Package structs provides some utility functions for dealing with structs.
protogen
services
app-provider/pkg/revaconfig
Package revaconfig contains the config for the reva service
Package revaconfig contains the config for the reva service
audit/cmd/audit command
auth-bearer/pkg/revaconfig
Package revaconfig transfers the config struct to reva config map
Package revaconfig transfers the config struct to reva config map
collaboration/pkg/locks
Package locks provides functionality to parse lockIDs.
Package locks provides functionality to parse lockIDs.
graph/cmd/graph command
graph/pkg/errorcode
Package errorcode allows to deal with graph error codes
Package errorcode allows to deal with graph error codes
idm
idm/cmd/idm command
idp
idp/cmd/idp command
idp/pkg/middleware
Package middleware provides middleware for the idp service.
Package middleware provides middleware for the idp service.
invitations/pkg/backends/keycloak
Package keycloak offers an invitation backend for the invitation service.
Package keycloak offers an invitation backend for the invitation service.
nats/cmd/nats command
notifications/pkg/channels
Package channels provides different communication channels to notify users.
Package channels provides different communication channels to notify users.
notifications/pkg/config
Package config provides the service configuration.
Package config provides the service configuration.
notifications/pkg/email
Package email implements utility for rendering the Email.
Package email implements utility for rendering the Email.
ocdav/cmd/ocdav command
ocm/cmd/ocm command
ocs/cmd/ocs command
proxy/cmd/proxy command
search/pkg/query
Package query provides functions to work with the different search query flavours.
Package query provides functions to work with the different search query flavours.
search/pkg/query/bleve
Package bleve provides the ability to work with bleve queries.
Package bleve provides the ability to work with bleve queries.
settings/pkg/store/metadata
Package store implements the go-micro store interface
Package store implements the go-micro store interface
sse/cmd/sse command
storage-shares/pkg/revaconfig
Package revaconfig contains the reva config for storage-shares.
Package revaconfig contains the reva config for storage-shares.
storage-users/pkg/revaconfig
Package revaconfig contains the config for the reva service
Package revaconfig contains the config for the reva service
thumbnails/pkg/config
Package config contains the configuration for the opencloud-thumbnails service
Package config contains the configuration for the opencloud-thumbnails service
users/cmd/user command
web
web/cmd/web command
tests

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL