ownCloud Infinite Scale (oCIS) is a complete rewrite of ownCloud in Go. Instead of the classic PHP application with a database, it’s a single binary (or container) made of microservices, with files stored directly on disk or in object storage, and metadata kept alongside. It’s fast, light, and easy to run with Docker, which makes it a strong alternative for teams that want file sync and sharing without a large PHP stack.

oCIS vs classic ownCloud vs Nextcloud

oCIS ownCloud 10 (classic) Nextcloud
Language Go PHP PHP
Database None required (metadata in storage) MySQL/MariaDB/PostgreSQL MySQL/MariaDB/PostgreSQL
Focus Files, sharing, Spaces Files + apps Files + broad app ecosystem
Performance High, low resource use Moderate Moderate
App ecosystem Smaller Legacy Large (calendar, contacts, office, talk…)

Choose oCIS for a lean, fast file platform. Choose Nextcloud if you need the broad ecosystem. See install Nextcloud and Seafile.

Requirements

  • A VPS with 2 vCPU and 2–4 GB RAM is enough for a small team.
  • Docker. See install Docker.
  • A domain (cloud.example.com) pointing at the server.
  • Disk space for files and versions. See storage VPS for large libraries.

1. Run oCIS with Docker

sudo mkdir -p /opt/ocis/{config,data}
sudo chown -R 1000:1000 /opt/ocis

docker run --rm -it -v /opt/ocis/config:/etc/ocis owncloud/ocis:latest init --insecure no

init generates the config, including the admin password, which is printed once. Save it in your password manager.

Compose file:

# /opt/ocis/compose.yaml
services:
  ocis:
    image: owncloud/ocis:7          # pin a major version
    restart: unless-stopped
    ports:
      - "127.0.0.1:9200:9200"
    environment:
      OCIS_URL: https://cloud.example.com
      OCIS_LOG_LEVEL: warn
      PROXY_TLS: "false"            # TLS terminated by the reverse proxy
      OCIS_INSECURE: "false"
    volumes:
      - /opt/ocis/config:/etc/ocis
      - /opt/ocis/data:/var/lib/ocis
cd /opt/ocis && docker compose up -d
docker compose logs -f

OCIS_URL must exactly match the public URL users will use. Mismatches cause login loops and OIDC errors.

2. HTTPS via Nginx

server {
    server_name cloud.example.com;
    client_max_body_size 0;
    proxy_buffering off;
    proxy_request_buffering off;
    location / {
        proxy_pass http://127.0.0.1:9200;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
    # listen 443 ssl + certbot --nginx
}

See Nginx reverse proxy and Let’s Encrypt. Caddy or Traefik work equally well, and oCIS’s documentation has full examples.

3. Users and Spaces

Log in at https://cloud.example.com as admin:

  • Users and groups are managed in the admin settings, or via an external identity provider (Keycloak, Authentik, or any OIDC provider) for SSO.
  • Personal space: each user’s own files.
  • Spaces: shared project areas with their own members, roles and quotas. They’re cleaner than sharing folders between users.
  • Sharing with users, groups or public links (with passwords and expiry).

4. Clients

  • ownCloud desktop app (Windows, macOS, Linux) with virtual files, so files download on demand.
  • ownCloud mobile apps (iOS, Android).
  • WebDAV access for other tools.

5. Storage and backups

oCIS stores files and metadata under /var/lib/ocis (the data volume), using a decomposed file system layout. Consistent backups need oCIS stopped, or filesystem snapshots:

cd /opt/ocis && docker compose stop
rsync -a /opt/ocis/ /backups/ocis-$(date +%F)/
docker compose start

Also back up /opt/ocis/config (it contains secrets). Keep copies off-server. See backup strategy. S3-compatible storage can be used as a backend for larger deployments. See MinIO.

6. Operations

  • Pin major versions and read the release notes before upgrading. oCIS evolves quickly. See updating self-hosted apps.
  • Watch disk space and container logs.
  • Enforce strong passwords or SSO with MFA.

Quick reference

Task Command / setting
Initialise docker run … owncloud/ocis init
Public URL OCIS_URL=https://cloud.example.com
Start docker compose up -d
Port 9200 (behind a reverse proxy)
Data /var/lib/ocis volume
Config and secrets /etc/ocis volume

Related: File Browser and Syncthing.

  • Self-Hosting
  • File Sync
  • Docker