diff --git a/blueprints/owncloud-infinite-scale/docker-compose.yml b/blueprints/owncloud-infinite-scale/docker-compose.yml new file mode 100644 index 00000000..30a1a4ee --- /dev/null +++ b/blueprints/owncloud-infinite-scale/docker-compose.yml @@ -0,0 +1,41 @@ +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: diff --git a/blueprints/owncloud-infinite-scale/meta.json b/blueprints/owncloud-infinite-scale/meta.json new file mode 100644 index 00000000..728e30cd --- /dev/null +++ b/blueprints/owncloud-infinite-scale/meta.json @@ -0,0 +1,19 @@ +{ + "id": "owncloud-infinite-scale", + "name": "ownCloud Infinite Scale", + "version": "8.0.3", + "description": "ownCloud Infinite Scale is a modern file sync and share platform with WebDAV and ownCloud client support.", + "logo": "owncloud-infinite-scale.svg", + "links": { + "github": "https://github.com/owncloud/ocis", + "website": "https://owncloud.com/infinite-scale/", + "docs": "https://doc.owncloud.com/ocis/latest/" + }, + "tags": [ + "storage", + "files", + "sync", + "webdav", + "collaboration" + ] +} diff --git a/blueprints/owncloud-infinite-scale/owncloud-infinite-scale.svg b/blueprints/owncloud-infinite-scale/owncloud-infinite-scale.svg new file mode 100644 index 00000000..8d4359d4 --- /dev/null +++ b/blueprints/owncloud-infinite-scale/owncloud-infinite-scale.svg @@ -0,0 +1,11 @@ + + + + + diff --git a/blueprints/owncloud-infinite-scale/template.toml b/blueprints/owncloud-infinite-scale/template.toml new file mode 100644 index 00000000..12c77e37 --- /dev/null +++ b/blueprints/owncloud-infinite-scale/template.toml @@ -0,0 +1,70 @@ +[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}"