Dokploy

ownCloud Infinite Scale

ownCloud Infinite Scale is a modern file sync and share platform with WebDAV and ownCloud client support.

ownCloud Infinite Scale logo

Configuration

version: "3.8"

services:
  gateway:
    image: nginx:1.27-alpine
    restart: unless-stopped
    depends_on:
      - owncloud-infinite-scale
    expose:
      - "8080"
    volumes:
      - ../files/etc/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf:ro

  owncloud-infinite-scale:
    image: owncloud/ocis:8.0.3
    restart: unless-stopped
    entrypoint:
      - /bin/sh
    command: ["-c", "ocis init --insecure yes || true; ocis server"]
    expose:
      - "9200"
    environment:
      OCIS_URL: ${OCIS_URL}
      OCIS_LOG_LEVEL: ${OCIS_LOG_LEVEL}
      OCIS_INSECURE: "true"
      PROXY_TLS: "false"
      PROXY_HTTP_ADDR: 0.0.0.0:9200
      IDM_ADMIN_PASSWORD: ${IDM_ADMIN_PASSWORD}
      SETTINGS_GRPC_ADDR: 0.0.0.0:9191
      GATEWAY_GRPC_ADDR: 0.0.0.0:9142
      STORAGE_USERS_DATA_GATEWAY_URL: http://owncloud-infinite-scale:9200/data
      THUMBNAILS_FILESYSTEMSTORAGE_ROOT: /var/lib/ocis-thumbnails
    volumes:
      - owncloud-infinite-scale-config:/etc/ocis
      - owncloud-infinite-scale-data:/var/lib/ocis
      - owncloud-infinite-scale-thumbnails:/var/lib/ocis-thumbnails

volumes:
  owncloud-infinite-scale-config:
  owncloud-infinite-scale-data:
  owncloud-infinite-scale-thumbnails:
[variables]
main_domain = "${domain}"
owncloud_url = "https://${main_domain}"
admin_password = "${password:32}"
log_level = "info"

[[config.domains]]
serviceName = "gateway"
port = 8080
host = "${main_domain}"
path = "/"

[[config.mounts]]
filePath = "/etc/nginx/conf.d/default.conf"
content = """
map $http_upgrade $connection_upgrade {
  default upgrade;
  "" close;
}

server {
  listen 8080;
  client_max_body_size 0;
  proxy_request_buffering off;

  location / {
    proxy_pass http://owncloud-infinite-scale:9200;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_read_timeout 3600s;
    proxy_send_timeout 3600s;
  }
}
"""

[[config.mounts]]
filePath = "README.md"
content = """# ownCloud Infinite Scale

This template deploys ownCloud Infinite Scale (oCIS), a modern file sync and share platform with WebDAV and ownCloud client support.

## Access

- URL: `https://${main_domain}`
- Admin user: `admin`
- Admin password: the generated `admin_password` value

The `owncloud_url` value must use `https://` because oCIS only supports HTTPS public URLs (its built-in identity provider rejects plain HTTP issuers). A bundled nginx gateway sits in front of oCIS and forwards requests with `X-Forwarded-Proto: https`, which keeps oCIS from redirecting every request when it runs behind the Dokploy proxy. Enable HTTPS on the Dokploy domain so the public URL matches `OCIS_URL`.

## Storage

The template creates persistent volumes for:

- `/etc/ocis` configuration
- `/var/lib/ocis` application data and user storage
- `/var/lib/ocis-thumbnails` generated thumbnails

Back up these volumes together before upgrades or migrations.
"""

[config.env]
OCIS_URL = "${owncloud_url}"
IDM_ADMIN_PASSWORD = "${admin_password}"
OCIS_LOG_LEVEL = "${log_level}"

Base64

To import this template in Dokploy: create a Compose service → AdvancedBase64 import and paste the content below:

ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy44XCJcblxuc2VydmljZXM6XG4gIGdhdGV3YXk6XG4gICAgaW1hZ2U6IG5naW54OjEuMjctYWxwaW5lXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBkZXBlbmRzX29uOlxuICAgICAgLSBvd25jbG91ZC1pbmZpbml0ZS1zY2FsZVxuICAgIGV4cG9zZTpcbiAgICAgIC0gXCI4MDgwXCJcbiAgICB2b2x1bWVzOlxuICAgICAgLSAuLi9maWxlcy9ldGMvbmdpbngvY29uZi5kL2RlZmF1bHQuY29uZjovZXRjL25naW54L2NvbmYuZC9kZWZhdWx0LmNvbmY6cm9cblxuICBvd25jbG91ZC1pbmZpbml0ZS1zY2FsZTpcbiAgICBpbWFnZTogb3duY2xvdWQvb2Npczo4LjAuM1xuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgZW50cnlwb2ludDpcbiAgICAgIC0gL2Jpbi9zaFxuICAgIGNvbW1hbmQ6IFtcIi1jXCIsIFwib2NpcyBpbml0IC0taW5zZWN1cmUgeWVzIHx8IHRydWU7IG9jaXMgc2VydmVyXCJdXG4gICAgZXhwb3NlOlxuICAgICAgLSBcIjkyMDBcIlxuICAgIGVudmlyb25tZW50OlxuICAgICAgT0NJU19VUkw6ICR7T0NJU19VUkx9XG4gICAgICBPQ0lTX0xPR19MRVZFTDogJHtPQ0lTX0xPR19MRVZFTH1cbiAgICAgIE9DSVNfSU5TRUNVUkU6IFwidHJ1ZVwiXG4gICAgICBQUk9YWV9UTFM6IFwiZmFsc2VcIlxuICAgICAgUFJPWFlfSFRUUF9BRERSOiAwLjAuMC4wOjkyMDBcbiAgICAgIElETV9BRE1JTl9QQVNTV09SRDogJHtJRE1fQURNSU5fUEFTU1dPUkR9XG4gICAgICBTRVRUSU5HU19HUlBDX0FERFI6IDAuMC4wLjA6OTE5MVxuICAgICAgR0FURVdBWV9HUlBDX0FERFI6IDAuMC4wLjA6OTE0MlxuICAgICAgU1RPUkFHRV9VU0VSU19EQVRBX0dBVEVXQVlfVVJMOiBodHRwOi8vb3duY2xvdWQtaW5maW5pdGUtc2NhbGU6OTIwMC9kYXRhXG4gICAgICBUSFVNQk5BSUxTX0ZJTEVTWVNURU1TVE9SQUdFX1JPT1Q6IC92YXIvbGliL29jaXMtdGh1bWJuYWlsc1xuICAgIHZvbHVtZXM6XG4gICAgICAtIG93bmNsb3VkLWluZmluaXRlLXNjYWxlLWNvbmZpZzovZXRjL29jaXNcbiAgICAgIC0gb3duY2xvdWQtaW5maW5pdGUtc2NhbGUtZGF0YTovdmFyL2xpYi9vY2lzXG4gICAgICAtIG93bmNsb3VkLWluZmluaXRlLXNjYWxlLXRodW1ibmFpbHM6L3Zhci9saWIvb2Npcy10aHVtYm5haWxzXG5cbnZvbHVtZXM6XG4gIG93bmNsb3VkLWluZmluaXRlLXNjYWxlLWNvbmZpZzpcbiAgb3duY2xvdWQtaW5maW5pdGUtc2NhbGUtZGF0YTpcbiAgb3duY2xvdWQtaW5maW5pdGUtc2NhbGUtdGh1bWJuYWlsczpcbiIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxubWFpbl9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5vd25jbG91ZF91cmwgPSBcImh0dHBzOi8vJHttYWluX2RvbWFpbn1cIlxuYWRtaW5fcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6MzJ9XCJcbmxvZ19sZXZlbCA9IFwiaW5mb1wiXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcImdhdGV3YXlcIlxucG9ydCA9IDgwODBcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCJcbnBhdGggPSBcIi9cIlxuXG5bW2NvbmZpZy5tb3VudHNdXVxuZmlsZVBhdGggPSBcIi9ldGMvbmdpbngvY29uZi5kL2RlZmF1bHQuY29uZlwiXG5jb250ZW50ID0gXCJcIlwiXG5tYXAgJGh0dHBfdXBncmFkZSAkY29ubmVjdGlvbl91cGdyYWRlIHtcbiAgZGVmYXVsdCB1cGdyYWRlO1xuICBcIlwiIGNsb3NlO1xufVxuXG5zZXJ2ZXIge1xuICBsaXN0ZW4gODA4MDtcbiAgY2xpZW50X21heF9ib2R5X3NpemUgMDtcbiAgcHJveHlfcmVxdWVzdF9idWZmZXJpbmcgb2ZmO1xuXG4gIGxvY2F0aW9uIC8ge1xuICAgIHByb3h5X3Bhc3MgaHR0cDovL293bmNsb3VkLWluZmluaXRlLXNjYWxlOjkyMDA7XG4gICAgcHJveHlfaHR0cF92ZXJzaW9uIDEuMTtcbiAgICBwcm94eV9zZXRfaGVhZGVyIEhvc3QgJGhvc3Q7XG4gICAgcHJveHlfc2V0X2hlYWRlciBYLVJlYWwtSVAgJHJlbW90ZV9hZGRyO1xuICAgIHByb3h5X3NldF9oZWFkZXIgWC1Gb3J3YXJkZWQtRm9yICRwcm94eV9hZGRfeF9mb3J3YXJkZWRfZm9yO1xuICAgIHByb3h5X3NldF9oZWFkZXIgWC1Gb3J3YXJkZWQtSG9zdCAkaG9zdDtcbiAgICBwcm94eV9zZXRfaGVhZGVyIFgtRm9yd2FyZGVkLVByb3RvIGh0dHBzO1xuICAgIHByb3h5X3NldF9oZWFkZXIgVXBncmFkZSAkaHR0cF91cGdyYWRlO1xuICAgIHByb3h5X3NldF9oZWFkZXIgQ29ubmVjdGlvbiAkY29ubmVjdGlvbl91cGdyYWRlO1xuICAgIHByb3h5X3JlYWRfdGltZW91dCAzNjAwcztcbiAgICBwcm94eV9zZW5kX3RpbWVvdXQgMzYwMHM7XG4gIH1cbn1cblwiXCJcIlxuXG5bW2NvbmZpZy5tb3VudHNdXVxuZmlsZVBhdGggPSBcIlJFQURNRS5tZFwiXG5jb250ZW50ID0gXCJcIlwiIyBvd25DbG91ZCBJbmZpbml0ZSBTY2FsZVxuXG5UaGlzIHRlbXBsYXRlIGRlcGxveXMgb3duQ2xvdWQgSW5maW5pdGUgU2NhbGUgKG9DSVMpLCBhIG1vZGVybiBmaWxlIHN5bmMgYW5kIHNoYXJlIHBsYXRmb3JtIHdpdGggV2ViREFWIGFuZCBvd25DbG91ZCBjbGllbnQgc3VwcG9ydC5cblxuIyMgQWNjZXNzXG5cbi0gVVJMOiBgaHR0cHM6Ly8ke21haW5fZG9tYWlufWBcbi0gQWRtaW4gdXNlcjogYGFkbWluYFxuLSBBZG1pbiBwYXNzd29yZDogdGhlIGdlbmVyYXRlZCBgYWRtaW5fcGFzc3dvcmRgIHZhbHVlXG5cblRoZSBgb3duY2xvdWRfdXJsYCB2YWx1ZSBtdXN0IHVzZSBgaHR0cHM6Ly9gIGJlY2F1c2Ugb0NJUyBvbmx5IHN1cHBvcnRzIEhUVFBTIHB1YmxpYyBVUkxzIChpdHMgYnVpbHQtaW4gaWRlbnRpdHkgcHJvdmlkZXIgcmVqZWN0cyBwbGFpbiBIVFRQIGlzc3VlcnMpLiBBIGJ1bmRsZWQgbmdpbnggZ2F0ZXdheSBzaXRzIGluIGZyb250IG9mIG9DSVMgYW5kIGZvcndhcmRzIHJlcXVlc3RzIHdpdGggYFgtRm9yd2FyZGVkLVByb3RvOiBodHRwc2AsIHdoaWNoIGtlZXBzIG9DSVMgZnJvbSByZWRpcmVjdGluZyBldmVyeSByZXF1ZXN0IHdoZW4gaXQgcnVucyBiZWhpbmQgdGhlIERva3Bsb3kgcHJveHkuIEVuYWJsZSBIVFRQUyBvbiB0aGUgRG9rcGxveSBkb21haW4gc28gdGhlIHB1YmxpYyBVUkwgbWF0Y2hlcyBgT0NJU19VUkxgLlxuXG4jIyBTdG9yYWdlXG5cblRoZSB0ZW1wbGF0ZSBjcmVhdGVzIHBlcnNpc3RlbnQgdm9sdW1lcyBmb3I6XG5cbi0gYC9ldGMvb2Npc2AgY29uZmlndXJhdGlvblxuLSBgL3Zhci9saWIvb2Npc2AgYXBwbGljYXRpb24gZGF0YSBhbmQgdXNlciBzdG9yYWdlXG4tIGAvdmFyL2xpYi9vY2lzLXRodW1ibmFpbHNgIGdlbmVyYXRlZCB0aHVtYm5haWxzXG5cbkJhY2sgdXAgdGhlc2Ugdm9sdW1lcyB0b2dldGhlciBiZWZvcmUgdXBncmFkZXMgb3IgbWlncmF0aW9ucy5cblwiXCJcIlxuXG5bY29uZmlnLmVudl1cbk9DSVNfVVJMID0gXCIke293bmNsb3VkX3VybH1cIlxuSURNX0FETUlOX1BBU1NXT1JEID0gXCIke2FkbWluX3Bhc3N3b3JkfVwiXG5PQ0lTX0xPR19MRVZFTCA9IFwiJHtsb2dfbGV2ZWx9XCJcbiIKfQ==

Tags

storage, files, sync, webdav, collaboration


Version: 8.0.3

On this page