---
title: "Deploy OpenCloud"
description: "File sync and sharing platform with browser-based office editing"
category: "Storage"
url: https://railway.com/deploy/opencloud-drive
---

# Deploy OpenCloud

File sync and sharing platform with browser-based office editing

**[Deploy OpenCloud on Railway](https://railway.com/template/opencloud-drive)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/opencloud-drive/manifest.json

- **Creator:** A3A
- **Category:** Storage

## Template content

### tika https://tika.apache.org/tika.png

- **Source:** https://github.com/gridalpha/opencloud-railway
- **Health check:** /version

### collabora https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/collabora-online.svg

- **Source:** https://github.com/gridalpha/opencloud-railway
- **Health check:** /hosting/discovery
- **Public domain:** Yes

### opencloud https://raw.githubusercontent.com/opencloud-eu/opencloud/main/opencloud_logo.png

- **Source:** https://github.com/gridalpha/opencloud-railway
- **Health check:** /signin/v1/identifier
- **Public domain:** Yes

## Buckets

- **opencloud-blobs**

## Documentation

# Deploy and Host OpenCloud on Railway

OpenCloud is an open-source file sync and share platform written in Go by the Heinlein Group in Berlin, and the successor to ownCloud Infinite Scale. It gives a team its own storage: personal drives, shared project Spaces, password-protected public links, desktop and mobile sync clients, and office documents edited in the browser. Teams self-host OpenCloud when files must stay under their own control — GDPR obligations, client confidentiality, or simply not paying per seat for storage they already own.

Deploy OpenCloud on Railway and the whole stack comes up configured. The `opencloud` service runs the server and takes the public domain. The `collabora` service runs Collabora Online, so documents open in a real editor rather than a download prompt. The `tika` service runs Apache Tika on the private network for text extraction. File contents go to a Railway object storage bucket through OpenCloud's `decomposeds3` driver, so the volume holds only configuration, metadata and the search index rather than every byte your users upload.

![Diagram of the OpenCloud, Collabora and Tika services on Railway](https://res.cloudinary.com/rroe4rtk/image/upload/v1788539316/opencloud-architecture.png)

## Getting Started with OpenCloud on Railway

Set `IDM_ADMIN_PASSWORD` before you deploy — it is the password for the built-in `admin` account and is read exactly once, on first start. When the deploy is green, open the `opencloud` service's public URL and sign in as `admin`. You land in **Personal**, your own drive. Drag a file onto the page, or use **New** to create a folder or an `.odt` document. Clicking a document opens it in Collabora Online inside OpenCloud; type a line and it saves back to storage automatically.

To confirm the deployment end to end, upload a file, then use its three-dot menu to create a public link and open that link in a private window. Next visit **Spaces** and create a project Space, which shares a folder tree with a group rather than one file at a time. Add users from the settings screen; each gets a Personal drive backed by the same bucket. Change the admin password in the settings UI afterwards, not by editing the variable.

![OpenCloud personal space listing four uploaded files as tiles](https://res.cloudinary.com/rroe4rtk/image/upload/v1788539318/opencloud-personal-files.png)
![Collabora Online editing an OpenCloud document inside the browser](https://res.cloudinary.com/rroe4rtk/image/upload/v1788539319/opencloud-collabora-editing.png)
![OpenCloud text editor showing a stored file read back from object storage](https://res.cloudinary.com/rroe4rtk/image/upload/v1788539321/opencloud-text-editor.png)

## About Hosting OpenCloud

OpenCloud is a single Go binary running around thirty internal microservices in one process — proxy, identity provider, storage, sharing, search, activity log — so it needs no PHP runtime and no relational database. Users live in a built-in LibreGraph directory; everything else is files. That is what makes it comfortable on Railway, where a LAMP-style stack would need several more moving parts.

Key features:

- Personal drives and shared project Spaces with per-member roles
- Public links with expiry dates and enforced passwords
- Desktop sync clients for macOS, Windows and Linux, plus iOS and Android apps
- Browser office editing through Collabora Online (Writer, Calc, Impress)
- WebDAV access, plus a built-in OpenID Connect provider
- File versioning, a trash bin and a per-resource activity feed

Architecture on Railway: `opencloud` takes the app domain and also serves the WOPI endpoint Collabora calls back to at `/wopi`. `collabora` has its own domain because the browser loads the editor in an iframe. `tika` stays private on `tika.railway.internal`. The bucket holds file bodies; the volume at `/data` holds configuration, the identity database, thumbnails and the search index.

## Why Deploy OpenCloud on Railway

Railway removes the parts of an OpenCloud install that take an afternoon:

- TLS and a public domain for the app and the editor, with no reverse proxy to write
- Object storage provisioned and wired to the storage driver
- A persistent volume for configuration and metadata, attached on the first boot
- Health checks, restart policy and private networking already set
- One click to redeploy after an upstream release

## Common Use Cases

- A company replacing a paid Drive or Dropbox plan with storage it controls
- An agency sending clients large deliverables through expiring, password-protected links
- A research group keeping datasets and notes in project Spaces with per-member roles
- A team needing GDPR-compliant document collaboration in its own infrastructure

## Dependencies for OpenCloud

- **opencloud** — `opencloudeu/opencloud:7`, the server. Pinned to the major because OpenCloud owns its on-disk layout and a major upgrade needs a migration.
- **collabora** — `collabora/code:latest`, Collabora Online Development Edition, the office editor.
- **tika** — `apache/tika:latest`, which extracts text from uploaded documents for indexing.
- **Object storage bucket** — holds every file body written by the `decomposeds3` driver.

### Environment Variables Reference

| Variable | Service | Purpose |
|---|---|---|
| `IDM_ADMIN_PASSWORD` | opencloud | Password for the built-in `admin` account, read on first start only |
| `OC_URL` | opencloud | Public base URL; the OIDC issuer and share-link prefix |
| `OC_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD` | opencloud | Forces a password on every public link |
| `STORAGE_USERS_DRIVER` | opencloud | `decomposeds3` sends file bodies to the bucket |
| `SEARCH_EXTRACTOR_TYPE` | opencloud | `tika` enables document text extraction |
| `aliasgroup1` | collabora | Regex of hosts allowed to use the editor |
| `extra_params` | collabora | coolwsd flags, including the frame-ancestors policy |

### Deployment Dependencies

- Source repository: https://github.com/gridalpha/opencloud-railway
- Upstream project: https://github.com/opencloud-eu/opencloud
- Documentation: https://docs.opencloud.eu
- Images: `opencloudeu/opencloud`, `collabora/code`, `apache/tika` on Docker Hub

## Hardware Requirements for Self-Hosting OpenCloud

| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 2 vCPU across the three services | 4 vCPU |
| RAM | 2 GB (1 GB OpenCloud, 512 MB Collabora, 512 MB Tika) | 4 GB |
| Storage | 5 GB volume plus bucket capacity for files | 10 GB volume |
| Runtime | Linux container; no external database required | — |

Collabora is the memory-hungry component: each open document forks a child process, so allow roughly 100 MB per concurrent editing session.

## Self-Hosting OpenCloud

Outside Railway, the quickest route is upstream's Docker Compose repository. The following shell commands clone it and bring the stack up:

```
git clone https://github.com/opencloud-eu/opencloud-compose.git
cd opencloud-compose
cp .env.example .env
# set OC_DOMAIN and INITIAL_ADMIN_PASSWORD in .env
docker compose up -d
```

For a single container, run the published image directly. `opencloud init` must complete before the server starts, and `OC_INSECURE` has to be set or the initialiser waits on a terminal prompt:

```
docker run -d --name opencloud \
  -e OC_URL=https://cloud.example.com \
  -e OC_INSECURE=false \
  -e PROXY_TLS=false \
  -e IDM_ADMIN_PASSWORD=change-me \
  -v opencloud-config:/etc/opencloud \
  -v opencloud-data:/var/lib/opencloud \
  -p 9200:9200 \
  opencloudeu/opencloud:7 \
  /bin/sh -c "opencloud init || true; opencloud server"
```

## Is OpenCloud Free?

OpenCloud is free and open source under the Apache 2.0 licence, with the full server, the sync clients and the mobile apps in the community edition. The company behind it sells support subscriptions and an enterprise edition with extras such as advanced auditing, but nothing in this template is gated. On Railway you pay only for the compute, volume and bucket the deployment uses.

## FAQ

**What is OpenCloud?**
OpenCloud is a self-hosted file sync and share platform written in Go, forked from ownCloud Infinite Scale by the original engineering team. It provides personal drives, shared Spaces, public links, sync clients and browser-based office editing.

**What does this Railway template deploy?**
Three services — the OpenCloud server, Collabora Online for document editing and Apache Tika for text extraction — plus an object storage bucket for file contents and a volume for configuration and metadata.

**Why does the template include an object storage bucket?**
The `decomposeds3` driver writes file bodies to S3-compatible storage and keeps only small metadata records on disk, so the volume stays small no matter how much your users upload.

**How is OpenCloud different from Nextcloud?**
Nextcloud is a PHP application with a large app ecosystem covering calendars, mail and chat. OpenCloud is a Go binary focused on files, with delta sync and no database server. Choose Nextcloud for breadth, OpenCloud for a leaner file platform.

**How do I add users to self-hosted OpenCloud?**
Sign in as `admin`, open settings from the user menu and create accounts in the user management screen. Each user gets a Personal drive and can be invited into project Spaces.

**Can I connect an external identity provider?**
Yes. OpenCloud ships its own OpenID Connect provider and can be pointed at an external one such as Keycloak with `IDP_ISSUER_URL` and the proxy role-assignment variables. That replaces the built-in directory, so plan it before creating accounts.

**How do I change the admin password after deployment?**
Through the OpenCloud user settings UI. `IDM_ADMIN_PASSWORD` is only consulted while the identity database is being created, so editing it later has no effect.


## Similar templates

- [Garage S3 Storage](https://railway.com/deploy/garage-s3-storage) — Ultra-light S3 server: fast, open-source, plug-and-play.
- [Redis](https://railway.com/deploy/redis-1) — Self Host Latest Redis with Railway
- [EasyImg](https://railway.com/deploy/easyimg) — Simple self-hostable Nuxt.js personal image hosting system.

Open this page in a browser: https://railway.com/deploy/opencloud-drive
