Deploy ownCloud Infinite Scale | (Just Updated) File Sync and Share Server, WebDAV API, Admin Login Pre-Set
ownCloud Infinite Scale file sync server, WebDAV and Graph API, login set
Just deployed
/var/lib/ocis
Deploy and Host ownCloud Infinite Scale on Railway
Built for an LLM agent to deploy and use. The deploy form has no fields. ownCloud Infinite Scale (oCIS), the Go rewrite of ownCloud that serves file sync, sharing, WebDAV and a Graph API from one binary, comes up with its admin login already created from a generated password, a volume that keeps configuration, users and files across redeploys, and a public HTTPS address. The contract below lists every address, variable name and one script that writes a file over WebDAV and reads it back.
oCIS here is the official owncloud/ocis image, version 8.2.3, with its built-in identity provider, user directory, search, thumbnails and spaces. Desktop, iOS and Android ownCloud clients, the ownCloud Web UI and any WebDAV client connect to it.
About Hosting ownCloud Infinite Scale
This template runs one service from a wrapper image pinned by digest. On first boot the wrapper runs ocis init with the admin password from OCIS_ADMIN_PASSWORD; the generated configuration and every internal secret are kept on the single volume mounted at /var/lib/ocis, together with all user data, so redeploys keep the same login, users and files. The wrapper also hands the Railway volume (mounted root-owned) to the server's user, write-tests it at every boot, listens on Railway's port, and turns on HTTP basic auth at the proxy so scripts and agents can call WebDAV and the Graph API with admin:password instead of running an OpenID Connect flow. Browsers and ownCloud apps keep using the normal OpenID Connect sign-in.
The admin password is set once, on first boot. Changing OCIS_ADMIN_PASSWORD afterwards does not change the stored password; change it in the Web UI or through the Graph API. The public address OCIS_URL must match the domain users open (the identity provider validates it), so if you add a custom domain, change OCIS_URL to https://your.domain and redeploy. oCIS idles near 250 MB of memory and grows with users and indexed files.
Agent contract
- Public URL:
OCIS_URL(https://plus the service'sRAILWAY_PUBLIC_DOMAIN) - Private URL:
http://ocis.railway.internal:8080 - Credentials:
OCIS_ADMIN_PASSWORD(generated, 32 characters); the user name isadmin - Auth: HTTP basic auth with user
adminand password$OCIS_ADMIN_PASSWORDon WebDAV (/remote.php/dav/files/admin/) and the Graph API (/graph/v1.0/); the browser UI and apps use OpenID Connect at/.well-known/openid-configuration - Health:
GET /healthzreturns 200 without authentication; WebDAV and Graph calls without credentials return 401
# needs: OCIS_URL and OCIS_ADMIN_PASSWORD from the ocis service variables
AUTH="admin:$OCIS_ADMIN_PASSWORD"
curl -s -o /dev/null -w "health: %{http_code}\n" "$OCIS_URL/healthz"
curl -s -o /dev/null -w "no auth: %{http_code}\n" "$OCIS_URL/graph/v1.0/me"
curl -s -o /dev/null -w "write without key: %{http_code}\n" -X PUT -d hello "$OCIS_URL/remote.php/dav/files/admin/agent.txt"
curl -s -o /dev/null -w "write wrong key: %{http_code}\n" -u admin:wrong -X PUT -d hello "$OCIS_URL/remote.php/dav/files/admin/agent.txt"
curl -s -o /dev/null -w "write with key: %{http_code}\n" -u "$AUTH" -X PUT -d hello-agent "$OCIS_URL/remote.php/dav/files/admin/agent.txt"
curl -s -w "\nread back: %{http_code}\n" -u "$AUTH" "$OCIS_URL/remote.php/dav/files/admin/agent.txt"
curl -s -u "$AUTH" "$OCIS_URL/graph/v1.0/me" | head -c 200; echo
A fresh deploy prints health: 200, no auth: 401, write without key: 401, write wrong key: 401, write with key: 201, then hello-agent and read back: 200, then the admin user's Graph record (displayName Admin, onPremisesSamAccountName admin). Running the script twice overwrites the file and returns 204 on the second write.
Why Deploy ownCloud Infinite Scale on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying ownCloud Infinite Scale on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
- Agent-ready - no deployer fields, a contract block and one working write-and-read-back script that also proves the write path refuses a missing or wrong password.
- Login pre-set - the admin user exists before the first request, with a generated password; no setup wizard to claim.
- Persistent - a volume at
/var/lib/ocisholds configuration, users and files, write-tested at every boot, and the image is pinned by digest. - Health-checked - Railway restarts the service if the server stops answering
/healthz.
Common Use Cases
- Self-hosted file sync and share - a private Dropbox-style server for a team, with desktop and mobile clients.
- WebDAV file store for agents and scripts - a durable place for artifacts, reports and datasets, reached with plain
curl. - Document storage behind other apps - collaborative editing and previews through ownCloud's app ecosystem.
- Data sovereignty - keep files on infrastructure you control instead of a consumer cloud.
Dependencies for ownCloud Infinite Scale Hosting
- None. A custom domain is optional; set
OCIS_URLto it if you add one.
Deployment Dependencies
Template Content
