Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Code of Conduct

This project follows the ownCloud Code of Conduct.

Please read the full Code of Conduct at:
**<https://owncloud.com/contribute/code-of-conduct/>**

By participating in this project, you agree to abide by its terms.
266 changes: 6 additions & 260 deletions CONTRIBUTING.md

Large diffs are not rendered by default.

221 changes: 106 additions & 115 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,170 +1,161 @@
# ownCloud Infinite Scale

[![Matrix](https://img.shields.io/matrix/ocis%3Amatrix.org?logo=matrix)](https://app.element.io/#/room/#ocis:matrix.org)
[![Build Status](https://drone.owncloud.com/api/badges/owncloud/ocis/status.svg)](https://drone.owncloud.com/owncloud/ocis)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=owncloud_ocis&metric=security_rating)](https://sonarcloud.io/dashboard?id=owncloud_ocis)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=owncloud_ocis&metric=coverage)](https://sonarcloud.io/dashboard?id=owncloud_ocis)
[![Acceptance Test Coverage](https://sonarcloud.io/api/project_badges/measure?project=owncloud-1_ocis_acceptance-tests&metric=coverage)](https://sonarcloud.io/summary/new_code?id=owncloud-1_ocis_acceptance-tests)
[![Go Report](https://goreportcard.com/badge/github.com/owncloud/ocis)](https://goreportcard.com/report/github.com/owncloud/ocis)
[![Go Doc](https://godoc.org/github.com/owncloud/ocis?status.svg)](http://godoc.org/github.com/owncloud/ocis)
[![oCIS docker image](https://img.shields.io/docker/v/owncloud/ocis?label=oCIS%20docker%20image&logo=docker&sort=semver)](https://hub.docker.com/r/owncloud/ocis)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

- [ownCloud Infinite Scale](#owncloud-infinite-scale)
- [Introduction](#introduction)
- [Quickstart](#quickstart)
- [Overview](#overview)
- [Clients](#clients)
- [Web Office Applications](#web-office-applications)
- [Authentication](#authentication)
- [Installation](#installation)
- [Important Readings](#important-readings)
- [Run ownCloud Infinite Scale](#run-owncloud-infinite-scale)
- [Use the Official Documentation](#use-the-official-documentation)
- [Use the ocis Repo as Source](#use-the-ocis-repo-as-source)
- [Documentation](#documentation)
- [Admin Documentation](#admin-documentation)
- [Development Documentation](#development-documentation)
- [Security](#security)
- [Contributing](#contributing)
- [End User License Agreement](#end-user-license-agreement)
- [Copyright](#copyright)

## Introduction

ownCloud Infinite Scale (oCIS) is the new file sync & share platform that will be the foundation of your data management platform.

Make sure to download the [latest released version](https://download.owncloud.com/ocis/ocis/stable/?sort=time&order=desc) today!

## Quickstart

For details of the commands used see the [Minimalistic Evaluation Guide for oCIS with Docker](https://owncloud.dev/ocis/guides/ocis-mini-eval/).
<!-- OSPO-managed README | Generated: 2026-04-16 | v2 -->

[![License](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE) [![ownCloud OSPO](https://img.shields.io/badge/OSPO-ownCloud-blue)](https://kiteworks.com/opensource) [![Docker Hub](https://img.shields.io/docker/pulls/owncloud)](https://hub.docker.com/r/owncloud/ocis)

ownCloud Infinite Scale (oCIS) is the next-generation file sync, share, and collaboration platform built in Go. It is a single-binary, cloud-native server that replaces the classic PHP-based ownCloud Server with a microservices architecture supporting S3-compatible storage backends, spaces-based file organization, OpenID Connect authentication, and the Libre Graph API for extensibility.

## Getting Started

Follow the steps below to deploy oCIS using Docker or build from source.

### Docker Quickstart

```bash
mkdir -p $HOME/ocis/ocis-config \
mkdir -p $HOME/ocis/ocis-data
sudo chown -Rfv 1000:1000 $HOME/ocis/
docker pull owncloud/ocis
mkdir -p $HOME/ocis/ocis-config $HOME/ocis/ocis-data
docker run --rm -it \
--mount type=bind,source=$HOME/ocis/ocis-config,target=/etc/ocis \
--mount type=bind,source=$HOME/ocis/ocis-data,target=/var/lib/ocis \
owncloud/ocis init --insecure yes
docker run \
--name ocis_runtime \
--rm \
-it \
-p 9200:9200 \
owncloud/ocis init
docker run -d \
--mount type=bind,source=$HOME/ocis/ocis-config,target=/etc/ocis \
--mount type=bind,source=$HOME/ocis/ocis-data,target=/var/lib/ocis \
-e OCIS_INSECURE=true \
-e PROXY_HTTP_ADDR=0.0.0.0:9200 \
-e OCIS_URL=https://localhost:9200 \
owncloud/ocis
-p 9200:9200 \
owncloud/ocis server
```
Use as URL `localhost:9200` and the user/password printed.

## Overview
### Build from Source

### Clients
```bash
make -C ocis build
./ocis/bin/ocis init
./ocis/bin/ocis server
```

Infinite Scale allows the following ownCloud clients:
### Run Tests

* [web](https://github.com/owncloud/web),
* [Android](https://github.com/owncloud/android),
* [iOS](https://github.com/owncloud/ios-app) and
* [Desktop](https://github.com/owncloud/client/)
```bash
make test
```

to synchronize and share file spaces with a scalable server backend based on [reva](https://reva.link/) using open and well-defined APIs like [WebDAV](http://www.webdav.org/) and [CS3](https://github.com/cs3org/cs3apis/).
## Documentation

### Web Office Applications
- [Admin Documentation](https://doc.owncloud.com/ocis/next/)
- [Developer Documentation](https://owncloud.dev/)
- [Deployment Guide](https://doc.owncloud.com/ocis/next/deployment/)
- [oCIS Quickstart with Docker](https://owncloud.dev/ocis/guides/ocis-mini-eval/)

Infinite Scale can integrate web office applications such as:
## Features

* [Collabora Online](https://github.com/CollaboraOnline/online),
* [OnlyOffice Docs](https://github.com/ONLYOFFICE/DocumentServer) or
* [Microsoft Office Online Server](https://owncloud.com/microsoft-office-online-integration-with-wopi/)
Key capabilities of ownCloud Infinite Scale:

Collaborative editing is supported by the [WOPI application gateway](https://github.com/cs3org/wopiserver).
### Clients

### Authentication
oCIS supports all official ownCloud clients:

Users are authenticated via [OpenID Connect](https://openid.net/connect/) using either an external IdP like [Keycloak](https://www.keycloak.org/) or the embedded [LibreGraph Connect](https://github.com/libregraph/lico) identity provider.
- [ownCloud Web](https://github.com/owncloud/web)
- [Android](https://github.com/owncloud/android)
- [iOS](https://github.com/owncloud/ios-app)
- [Desktop](https://github.com/owncloud/client/)

### Installation
### Web Office Integration

With focus on easy install and operation, Infinite Scale is delivered as a single binary or container that allows scaling from a Raspberry Pi to a Kubernetes cluster by changing the configuration and starting multiple services as needed. The multiservice architecture allows tailoring the functionality to your needs and reusing services that may already be in place like when using Keycloak. See the details below for various installation options.
Collaborative editing via [WOPI](https://github.com/cs3org/wopiserver) with:

## Important Readings
- [Collabora Online](https://github.com/CollaboraOnline/online)
- [OnlyOffice Docs](https://github.com/ONLYOFFICE/DocumentServer)
- [Microsoft Office Online Server](https://owncloud.com/microsoft-office-online-integration-with-wopi/)

Before starting to set up an instance, we **highly** recommend reading the [Prerequisites](https://doc.owncloud.com/ocis/next/prerequisites/prerequisites.html), the [Deployment](https://doc.owncloud.com/ocis/next/deployment/) section and especially the [General Information](https://doc.owncloud.com/ocis/next/deployment/general/general-info.html) page describing and explaining information that is valid for all deployment types.
### Authentication

## Run ownCloud Infinite Scale
Users authenticate via [OpenID Connect](https://openid.net/connect/) using either an external IdP (e.g., [Keycloak](https://www.keycloak.org/)) or the embedded [LibreGraph Connect](https://github.com/libregraph/lico) identity provider.

### Use the Official Documentation
### Architecture

See the [Install Infinite Scale on a Server](https://doc.owncloud.com/ocis/next/depl-examples/ubuntu-compose/ubuntu-compose-prod.html) for a production ready deployment starting with a Raspberry Pi, a single server or VM.
oCIS is delivered as a single binary or container with a microservices architecture built on [reva](https://reva.link/). It scales from a Raspberry Pi to a Kubernetes cluster and uses open APIs including [WebDAV](http://www.webdav.org/) and [CS3](https://github.com/cs3org/cs3apis/). No external database or IdP is required for basic deployments.

### Use the ocis Repo as Source
### Building from Source

Use this method to build and run an instance with the latest code. This is only recommended for development purposes.
Requires Go >= 1.25.7 and a C compiler (for reva's C-Go dependencies):

The minimum go version required is `1.25.7`.\
Note that you need a C compile environment installed as a prerequisite because some dependencies, like reva, have components that require C-Go libraries and toolchains. The command installing for debian based systems is: `sudo apt install build-essential`.
```bash
git clone git@github.com:owncloud/ocis.git && cd ocis
make generate
make -C ocis build
./ocis/bin/ocis init
IDM_CREATE_DEMO_USERS=true ./ocis/bin/ocis server
```

To build and run a local instance with demo users:
Access the web UI at `http://localhost:9200`.

```console
# get the source
git clone git@github.com:owncloud/ocis.git
## Part of ownCloud Infinite Scale

# enter the ocis dir
cd ocis
This is the core repository for oCIS -- the primary product of the ownCloud open source project.

# generate assets
make generate
- [Download latest release](https://download.owncloud.com/ocis/ocis/stable/?sort=time&order=desc)
- [Docker Hub: owncloud/ocis](https://hub.docker.com/r/owncloud/ocis)

# build the binary
make -C ocis build
## Community & Support

# initialize a minimal oCIS configuration
./ocis/bin/ocis init
**[Star](https://github.com/owncloud/ocis)** this repo and **Watch** for release notifications!

# run with demo users
IDM_CREATE_DEMO_USERS=true ./ocis/bin/ocis server
- [ownCloud Website](https://owncloud.com)
- [Community Discussions](https://github.com/orgs/owncloud/discussions)
- [Matrix Chat](https://app.element.io/#/room/#owncloud:matrix.org)
- [Documentation](https://doc.owncloud.com)
- [Enterprise Support](https://owncloud.com/contact-us/)
- [OSPO Home](https://kiteworks.com/opensource)

# Open your browser on http://localhost:9200 to access the bundled web-ui
```
## Contributing

All batteries included: no external database, no external IDP needed!
We welcome contributions! Please read the [Contributing Guidelines](CONTRIBUTING.md)
and our [Code of Conduct](CODE_OF_CONDUCT.md) before getting started.

## Documentation
### Workflow

- **Rebase Early, Rebase Often!** We use a rebase workflow. Always rebase on the target branch before submitting a PR.
- **Dependabot**: Automated dependency updates are managed via Dependabot. Review and merge dependency PRs promptly.
- **Signed Commits**: All commits **must** be PGP/GPG signed. See [GitHub's signing guide](https://docs.github.com/en/authentication/managing-commit-signature-verification).
- **DCO Sign-off**: Every commit must carry a `Signed-off-by` line:
```
git commit -s -S -m "your commit message"
```
- **GitHub Actions Policy**: Workflows may only use actions that are (a) owned by `owncloud`, (b) created by GitHub (`actions/*`), or (c) verified in the GitHub Marketplace.

### Admin Documentation
Refer to the [Admin Documentation - Introduction to Infinite Scale](https://doc.owncloud.com/ocis/next/) to get started with running oCIS in production.
## Translations

### Development Documentation
See the [Development Documentation - Getting Started](https://owncloud.dev/ocis/development/getting-started/) to get an overview of [Requirements](https://owncloud.dev/ocis/development/getting-started/#requirements), the [repository structure](https://owncloud.dev/ocis/development/getting-started/#repository-structure) and [other starting points](https://owncloud.dev/ocis/development/getting-started/#starting-points).
Help translate this project on Transifex:
**<https://explore.transifex.com/owncloud-org/owncloud-web/>**

Please submit translations via Transifex -- do not open pull requests for translation changes.

## Security

See the [Security Aspects](https://doc.owncloud.com/ocis/next/security/security.html) for a general overview of security related topics.
If you find a security issue, please contact [security@owncloud.com](mailto:security@owncloud.com) first.
**Do not open a public GitHub issue for security vulnerabilities.**

## Contributing
Report vulnerabilities at **<https://security.owncloud.com>** -- see [SECURITY.md](SECURITY.md).

We are _very_ happy that oCIS does not require a Contributor License Agreement (CLA) as it is [Apache 2.0 licensed](LICENSE). We hope this will make it easier to contribute code. If you want to get in touch, most of the developers hang out in our [matrix channel](https://app.element.io/#/room/#ocis:matrix.org) or reach out to the [ownCloud central forum](https://central.owncloud.org/).
Bug bounty: [YesWeHack ownCloud Program](https://yeswehack.com/programs/owncloud-bug-bounty-program)

Infinite Scale is carefully internationalized so that everyone, no matter what language they speak, has a great experience. To achieve this, we rely on the help of volunteer translators. If you want to help, you can find the projects behind the following links:
[Transifex for ownCloud web](https://app.transifex.com/owncloud-org/owncloud-web/translate/) and [Transifex for ownCloud](https://app.transifex.com/owncloud-org/owncloud/translate/) (Select the resource by filtering for `ocis-`).
## License

Please always refer to our [Contribution Guidelines](https://github.com/owncloud/ocis/blob/master/CONTRIBUTING.md).
This project is licensed under the [Apache-2.0](LICENSE).

## End User License Agreement
## About the ownCloud OSPO

Some builds of stable ownCloud Infinite Scale releases provided by ownCloud GmbH are subject to an [End User License Agreement](https://owncloud.com/license-owncloud-infinite-scale/).
The [Kiteworks Open Source Program Office](https://kiteworks.com/opensource), operating under
the [ownCloud](https://owncloud.com) brand, launched on May 5, 2026, to steward the open source
ecosystem around ownCloud's products. The OSPO ensures transparent governance, license compliance,
community health, and sustainable collaboration between the open source community and
[Kiteworks](https://www.kiteworks.com), which acquired ownCloud in 2023.

## Copyright
- **OSPO Home**: <https://kiteworks.com/opensource>
- **GitHub**: <https://github.com/owncloud>
- **ownCloud**: <https://owncloud.com>

```console
Copyright (c) 2020-2023 ownCloud GmbH <https://owncloud.com>
```
For questions about the OSPO or licensing, contact ospo@kiteworks.com.

> **License status:** This repository is already licensed under Apache-2.0 -- the OSPO target license.
> No migration is required.
11 changes: 11 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Security Policy

## Reporting a Vulnerability

**Do NOT open a public GitHub issue for security vulnerabilities.**

Please report security issues responsibly via:
**<https://security.owncloud.com>**

You can also report vulnerabilities through our YesWeHack bug bounty program:
**<https://yeswehack.com/programs/owncloud-bug-bounty-program>**
10 changes: 10 additions & 0 deletions SUPPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Support

For support with this project, please use the following channels:

- **Enterprise Support**: <https://owncloud.com/contact-us/>
- **Community discussions**: https://github.com/orgs/owncloud/discussions
- **Matrix Chat**: <https://app.element.io/#/room/#owncloud:matrix.org>
- **Documentation**: <https://doc.owncloud.com>

Please do not use GitHub issues for general support questions.
74 changes: 74 additions & 0 deletions agents.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# agents.md -- ownCloud Infinite Scale

## Repository Overview

The core oCIS repository -- a next-generation file sync and share platform written in Go. Single-binary, cloud-native microservices architecture. Licensed under Apache-2.0.

## Architecture & Key Paths

- `ocis/` -- Main binary entry point
- `services/` -- Individual microservice implementations
- `ocis-pkg/` -- Shared packages across services
- `internal/` -- Internal packages
- `protogen/` -- Generated protobuf code
- `vendor/` -- Vendored Go dependencies
- `deployments/` -- Docker Compose and deployment configs
- `tests/` -- Acceptance and integration tests
- `docs/` -- Documentation source
- `scripts/` -- Build and utility scripts
- `tools/` -- Development tools
- `assets/` -- Static assets
- `Makefile` -- Build and test automation
- `Dockerfile` -- Docker image build
- `go.mod` / `go.sum` -- Go module definition
- `composer.json` -- PHP dependencies (for acceptance tests)
- `vendor-bin/` -- PHP tools (behat)

## Development Conventions

- Go codebase with microservices architecture
- Protobuf for service definitions
- Makefile-driven build system
- Acceptance tests use Behat (PHP)
- SonarCloud for quality gate

## Build & Test Commands

```bash
make -C ocis build # Build the ocis binary
make test # Run Go tests
make go-coverage # Generate coverage report
make generate # Run code generation
make vet # Run go vet
make ci-go-generate # CI code generation
make go-mod-tidy # Tidy go modules
```

## Important Constraints

- Licensed under Apache-2.0 (already at the OSPO target license). The broader ownCloud organization is migrating other repositories from copyleft licenses to Apache 2.0.
- Contains protobuf-generated code in `protogen/` -- do not edit directly.
- All contributions require a DCO sign-off.


## OSPO Policy Constraints

### GitHub Actions
- **Only** use actions owned by `owncloud`, created by GitHub (`actions/*`), or verified on the GitHub Marketplace.
- Pin all actions to their full commit SHA (not tags): `uses: actions/checkout@<SHA> # vX.Y.Z`
- Never introduce actions from unverified third parties.

### Dependency Management
- Dependabot is configured for automated dependency updates.
- Review and merge Dependabot PRs as part of regular maintenance.
- Do not introduce new dependencies without discussion in an issue first.

### Git Workflow
- **Rebase policy**: Always rebase; never create merge commits. Use `git pull --rebase` and `git rebase` before pushing.
- **Signed commits**: All commits **must** be PGP/GPG signed (`git commit -S -s`).
- **DCO sign-off**: Every commit needs a `Signed-off-by` line (`git commit -s`).
- **Conventional Commits**: Use the [Conventional Commits](https://www.conventionalcommits.org/) format where the repository enforces it.

## Context for AI Agents

oCIS is the primary ownCloud product. It uses a microservices architecture where each service in `services/` runs as part of a single binary. The `ocis-pkg/` directory contains shared libraries. Protobuf definitions generate service interfaces. The Libre Graph API is the primary API surface.