OpenCloud
false
junkerderprovinz/opencloud:production
https://hub.docker.com/r/junkerderprovinz/opencloud
bridge
sh
false
https://github.com/junkerderprovinz/opencloud/blob/main/README.md
https://forums.unraid.net/topic/200022-support-junkerderprovinz-opencloud/
https://opencloud.eu
OpenCloud - a modern, self-hosted file sync and share platform (a lightweight OpenCloud/ownCloud-family server) - packaged as a genuine one-click Unraid app. The official OpenCloud image has no PUID/PGID support and needs a manual init step, so a fresh install normally fails with "permission denied". This wrapper fixes that: it runs the one-time init for you, heals the appdata permissions and runs as your chosen PUID/PGID (99/100 = nobody/users by default).
What's pre-configured:
• One-click: auto-runs 'opencloud init' on first boot, then the server - nothing to do on the console.
• Permission heal: root-created appdata folders are handed to your PUID/PGID automatically.
• Serves HTTPS itself on port 9200 (self-signed by default) - no reverse proxy required.
• Two channels via the Repository tag: :production (default, stable) and :rolling (newest features).
Getting started:
• Set an Admin Password below - it is applied on the first start. Log in as user "admin".
• FIRST START takes a moment: the container generates its config and a self-signed certificate. Wait for the "OPENCLOUD IS READY" banner in the container log, then open the WebUI.
• Open the WebUI at https://[IP]:9200 and accept the self-signed certificate once.
Notes:
• Use a FRESH, empty Data folder. Do NOT point Data at an old OpenCloud/oCIS data directory: the on-disk layout differs between versions and the storage backends (local vs S3) are not interchangeable, so the server crash-loops (symptom in the log: search 'cannot open index, metadata missing'). There is no in-place migration between storage backends - to keep old files, start fresh and re-upload them.
• Rolling channel: change the Repository tag from ':production' to ':rolling' to track the newest OpenCloud builds. Keep your appdata backed up before switching.
• Reverse proxy: if you terminate TLS in front of OpenCloud, set "OpenCloud terminates TLS" to 'false' (advanced) and set the Public URL to your external https URL (e.g. https://cloud.example.com). Then "Allow self-signed TLS" can be 'false'. Your proxy must connect to the container over plain HTTP on port 9200 (not HTTPS) once "OpenCloud terminates TLS" is 'false'.
• PUID/PGID default to 99/100 (nobody/users on Unraid).
S3 object storage (optional, advanced):
• OpenCloud can store file BLOBS in any S3-compatible bucket (MinIO, AWS, Backblaze B2, Wasabi). Set "S3 storage driver" to 'decomposeds3' and fill the S3 endpoint / region / access key / secret key / bucket fields. Leave the driver blank for normal local storage.
• IMPORTANT: only the file blobs go to S3. The file-tree METADATA always stays on the local Data volume - so that volume is required even with S3 and MUST be backed up. Losing it orphans your S3 objects (they are opaque IDs with no folder structure).
• OpenCloud does NOT use a database (no MySQL/Postgres) - do not look for one. State lives in the local metadata tree plus an embedded message bus.
How to get the S3 bucket + keys:
• Bucket (MinIO): in the MinIO console click "Create Bucket" (top left), name it e.g. 'opencloud' - that is your bucket name. It must exist BEFORE first start; the container does not create it.
• Keys (MinIO): the current MinIO Community Edition console has NO "Access Keys" page - only the object browser. Two ways to get an access/secret key: (a) EASIEST - just use your MinIO ROOT credentials directly: access key = MINIO_ROOT_USER, secret key = MINIO_ROOT_PASSWORD (the values you set on your MinIO container; check its Docker template). (b) CLEANER - create a dedicated, revocable service account with the mc CLI: run 'mc alias set my http://MINIO-IP:9000 ROOT-USER ROOT-PASS' then 'mc admin user svcacct add my ROOT-USER' - it prints a fresh Access Key + Secret Key.
• Endpoint (MinIO): use the S3 API URL http://MINIO-IP:9000 (port 9000 - the API, not the 9001 web console) and region 'default'.
• AWS S3 / Backblaze B2 / Wasabi: create a bucket in the provider console, then create an access key (AWS: IAM access key; B2/Wasabi: an application/API key). Use the provider's https endpoint and the bucket's region.
• If uploads fail with a checksum error on a non-AWS endpoint, add STORAGE_USERS_DECOMPOSEDS3_PUT_OBJECT_DISABLE_CONTENT_SHA256=true as an extra variable.
Source on GitHub: https://github.com/junkerderprovinz/opencloud
This is an independent, community-maintained packaging of OpenCloud and is not affiliated with OpenCloud GmbH.
Cloud: Network:FileSharing:
https://[IP]:[PORT:9200]/
https://raw.githubusercontent.com/junkerderprovinz/unraid-apps/main/opencloud/opencloud.xml
https://raw.githubusercontent.com/junkerderprovinz/unraid-apps/main/opencloud/icon.png?v=1
--restart=unless-stopped
9200
/mnt/user/appdata/opencloud/config
/mnt/user/appdata/opencloud/data
https://[IP]:[PORT:9200]
true
info
false
true
99
100
default