OpenCloud logo

OpenCloud

The open source platform for file management, sharing and collaboration

Alternative to: dropbox, google drive, box, onedrive


OpenCloud is a self-hosted, open source platform for file management, sharing, and collaboration, positioned as a simple and sovereign alternative to proprietary cloud storage. The backend is written in Go and ships official web, desktop, and Android clients, and it authenticates users via OpenID Connect using either an external identity provider like Keycloak or the embedded LibreGraph Connect provider.

OpenCloud Docker Compose example

Self-host OpenCloud on your own server, homelab, or VPS starting from this Docker Compose example. It runs OpenCloud in Docker containers using the official opencloudeu/opencloud:latest image, with persistent volumes and automatic restarts preconfigured. Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.

services:
  opencloud:
    image: opencloudeu/opencloud:latest
    # OpenCloud is a single self-contained binary (idp, proxy, graph, storage,
    # web, ...). `init` generates the runtime secrets into the config volume on
    # first start; on later starts it is a harmless no-op and the server reuses
    # the existing config.
    entrypoint: ["/bin/sh", "-c", "opencloud init || true; opencloud server"]
    # The bundled config volume is owned by uid/gid 1000; run as that user so
    # `opencloud init` can write /etc/opencloud/opencloud.yaml.
    user: "1000:1000"
    environment:
      # External URL the reverse proxy serves OpenCloud on. Must match the
      # address users actually reach for OIDC login redirects to work.
      OC_URL: "https://cloud.example.com"
      # TLS is terminated by the reverse proxy in front; serve plain HTTP on 9200.
      PROXY_TLS: "false"
      # Tolerate self-signed / upstream certificates behind the proxy.
      OC_INSECURE: "true"
      # Address the internal proxy (and thus the web UI) listens on.
      PROXY_HTTP_ADDR: "0.0.0.0:9200"
      # Initial administrator password for the built-in identity management.
      IDM_ADMIN_PASSWORD: "changeme"
      # Do not seed the demo/example user accounts.
      IDM_CREATE_DEMO_USERS: "false"
    volumes:
      - config:/etc/opencloud
      - data:/var/lib/opencloud
    restart: unless-stopped

volumes:
  config:
  data:

Values set to changeme are required — replace them with your own values before starting OpenCloud.

Prefer a managed setup? WinterFlow installs, configures, and updates OpenCloud for you using this same Docker Compose configuration.