MCPcopy
hub / github.com/opencloud-eu/opencloud

github.com/opencloud-eu/opencloud @v7.2.0 sqlite

repository ↗ · DeepWiki ↗ · release v7.2.0 ↗
8,798 symbols 29,133 edges 1,321 files 4,549 documented · 52%
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 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 security@opencloud.eu immediately.

Extension points exported contracts — how you extend this code

DelBlobstore (Interface)
DelBlobstore is the interface for a blobstore that can delete blobs. [18 implementers]
opencloud/pkg/revisions/revisions.go
Authenticator (Interface)
Authenticator is the common interface implemented by all request authenticators. [9 implementers]
services/proxy/pkg/middleware/authentication.go
Source (Interface)
Source defines the interface for image sources [6 implementers]
services/thumbnails/pkg/thumbnail/imgsource/imgsource.go
Permissions (Interface)
Permissions is the interface used to access the permissions service [8 implementers]
services/graph/pkg/service/v0/graph.go
SearchProviderService (Interface)
Client API for SearchProvider service [11 implementers]
protogen/gen/opencloud/services/search/v0/search.pb.micro.go
MetadataClient (Interface)
MetadataClient is the interface to talk to metadata service [5 implementers]
services/settings/pkg/store/metadata/store.go
ContentConnectorService (Interface)
ContentConnectorService is the interface to implement the "File contents" endpoint. Basically upload and download conten [4 …
services/collaboration/pkg/connector/contentconnector.go
Extractor (Interface)
Extractor is responsible to extract content and meta information from documents. [4 implementers]
services/search/pkg/content/extractor.go

Core symbols most depended-on inside this repo

Get
called by 1271
services/thumbnails/pkg/thumbnail/storage/storage.go
Error
called by 925
services/graph/pkg/errorcode/errorcode.go
Errorf
called by 616
services/nats/pkg/logging/nats.go
Return
called by 611
services/graph/pkg/identity/mocks/ldapclient.go
Run
called by 458
services/notifications/pkg/service/service.go
Render
called by 434
services/graph/pkg/errorcode/errorcode.go
Add
called by 424
services/webfinger/pkg/service/v0/service.go
String
called by 347
services/graph/pkg/errorcode/errorcode.go

Shape

Method 3,982
Function 2,945
Struct 1,536
Interface 134
FuncType 121
TypeAlias 64
Class 16

Languages

Go99%
TypeScript1%

Modules by API surface

protogen/gen/opencloud/messages/settings/v0/settings.pb.go313 symbols
pkg/kql/dictionary_gen.go302 symbols
protogen/gen/opencloud/services/settings/v0/settings.pb.go206 symbols
services/graph/pkg/identity/mocks/ldapclient.go166 symbols
services/graph/pkg/identity/mocks/education_backend.go166 symbols
protogen/gen/opencloud/services/settings/v0/settings_grpc.pb.go129 symbols
services/graph/mocks/key_value.go112 symbols
protogen/gen/opencloud/messages/search/v0/search.pb.go109 symbols
services/settings/pkg/settings/mocks/manager.go106 symbols
protogen/gen/opencloud/services/settings/v0/settings.pb.micro.go104 symbols
services/graph/pkg/identity/mocks/backend.go94 symbols
protogen/gen/opencloud/services/settings/v0/settings.pb.web.go85 symbols

Dependencies from manifests, versioned

ankitpokhrel/tus-php2.4 · 1×
behat/behat3.24 · 1×
behat/gherkin4.9 · 1×
behat/mink1.7.1 · 1×
ciaranmcnulty/behat-stepthroughextensiondev-master · 1×
friends-of-behat/mink-extension2.7 · 1×
guzzlehttp/guzzle7.7 · 1×
laminas/laminas-ldap2.15 · 1×
owncloud/coding-standard5.3 · 1×
phpunit/phpunit9.6 · 1×
rdx/behat-variables1.2 · 1×
sabre/xml2.2 · 1×

Datastores touched

proxyDatabase · 1 repos
keycloakDatabase · 1 repos
service-registryDatabase · 1 repos

For agents

$ claude mcp add opencloud \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact