Self-hosted service
cloudreve/cloudreve avatar
cloudreve/cloudreve

Cloudreve: Self-Hosted File Management with Multi-Cloud Storage

Self-hosted file management and sharing system, supports multiple storage providers.

28,764 stars3,904 forksGoGPL-3.0

At a glance

What is it?
Cloudreve is an open-source self-hosted file management system built in Go that supports local storage, remote nodes, OneDrive, S3-compatible APIs, Aliyun OSS, Tencent COS, and other backends. It runs as a single binary or Docker container and includes a web UI, WebDAV, background downloads, and online preview.
Who is it for?
Cloudreve suits individuals and small teams that need a self-hosted file manager with multi-cloud storage backends and a polished web UI. Teams evaluating it against alternatives should check the GPL-3.0 license implications for their deployment context, and verify that the required PostgreSQL and Redis infrastructure (shown in the docker-compose.yml) is acceptable for their environment.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 9 days ago.
What is it written in?
Mainly Go, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Cloudreve Does and Who It Is For

Cloudreve is a self-hosted file management and sharing system. The README summarizes its purpose as a "self-hosted file management system with multi-cloud support." It targets individuals and small teams who want to run their own cloud storage service rather than depend on a third-party provider.

The system supports storing files in ten backend types: local storage, remote nodes (for a distributed setup), OneDrive, any S3-compatible API, Qiniu Kodo, Aliyun OSS, Tencent COS, Huawei Cloud OBS, Kingsoft Cloud KS3, and Upyun. This breadth means a deployment can start on local disk and migrate to an object storage provider without changing the application layer.

Architecture: Go Backend, React Frontend, and the Dependency Stack

The server is written in Go, using Gin as the HTTP framework and ent as the ORM. The frontend is React with Redux and Material-UI. The go.mod lists the key backend dependencies: entgo.io/ent for database access, gin-gonic/gin for routing, jackc/pgx and go-sql-driver/mysql for PostgreSQL and MySQL, golang-jwt/jwt for authentication tokens, gorilla/websocket for real-time updates, and go-webauthn/webauthn for passkey authentication.

The go.mod also includes: github.com/mholt/archives for archive handling, dhowden/tag and dsoprea/go-exif for media metadata extraction, and github.com/meilisearch/meilisearch-go for full-text search integration. The Dockerfile base image is Alpine and installs tzdata, vips-tools (for image thumbnails), ffmpeg (for video thumbnails), libreoffice (for document preview), and aria2 for background downloads.

Deploying Cloudreve with Docker Compose

The repository ships a docker-compose.yml that provisions the application, a PostgreSQL database, and Redis:

yaml
services:
  cloudreve:
    image: cloudreve/cloudreve:latest
    container_name: cloudreve-backend
    depends_on:
      - postgresql
      - redis
    restart: unless-stopped
    ports:
      - 5212:5212
      - 6888:6888
      - 6888:6888/udp
    environment:
      - CR_CONF_Database.Type=postgres
      - CR_CONF_Database.Host=postgresql
      - CR_CONF_Database.User=cloudreve
      - CR_CONF_Database.Name=cloudreve
      - CR_CONF_Database.Port=5432
      - CR_REDIS_Server=redis:6379
    volumes:
      - backend_data:/cloudreve/data

Port 5212 serves the web UI and API. Port 6888 is used for the transfer protocol (both TCP and UDP). The environment variables follow a CR_CONF_ prefix pattern for database settings and CR_REDIS_ for Redis. Configuration can be set entirely through environment variables without a separate config file.

File Operations, WebDAV, and Background Downloads

Cloudreve supports upload and download with direct client-to-storage-provider transmission, bypassing the Cloudreve server for the data path when the backend supports it. The README lists parallel resumable upload with drag-and-drop as a feature, along with batch downloads and archive compression and extraction.

WebDAV support covers all storage providers, which means any WebDAV-compatible desktop client (such as Windows Explorer's network drive or macOS Finder) can mount a Cloudreve folder directly. This is a practical differentiator for users who want native file system access without a custom sync client.

Background download integration uses Aria2 or qBittorrent to fetch files from URLs or torrents. The Dockerfile installs aria2 and enables it by default through the CR_ENABLE_ARIA2=1 environment variable. Multiple download nodes can be configured to share the load.

Online Preview and Media Metadata

The feature list in the README covers online preview for videos, images, audio, ePub, and Office documents, as well as in-browser editing for text, diagrams, Markdown, and images. The Dockerfile installs ffmpeg (for video thumbnails), vips-tools (for image processing), and LibreOffice (for Office document preview), confirming these are real runtime dependencies rather than optional extras.

Media metadata extraction is listed as a capability: the go.mod includes dhowden/tag for audio tags, dsoprea/go-exif for image EXIF data, and dsoprea/go-heic-exif-extractor for HEIC images. The metadata can be searched, allowing queries such as finding photos by GPS location or camera model.

How Cloudreve Compares to Nextcloud

Nextcloud is the most widely deployed self-hosted file management platform. It is PHP-based, has a large app ecosystem, and supports calendar, contacts, and collaboration tools in addition to file storage. Cloudreve is Go-based, has a smaller scope focused on file management, and does not ship a plugin system comparable to Nextcloud's app store.

The practical differences are deployment complexity and feature breadth. Nextcloud requires a PHP environment and is heavier to operate at low scale. Cloudreve ships as a single Go binary with an embedded frontend and runs against PostgreSQL, MySQL, or SQLite. Users who need calendar or collaboration features alongside file storage should evaluate Nextcloud. Users who need a focused file management system with strong multi-cloud backend support and a lighter operational footprint may prefer Cloudreve.

License, Maintenance, and Multi-User Support

Cloudreve is released under the GNU GPL v3 license, which requires that any modified version distributed to users also be released under GPL v3. Organizations that embed Cloudreve into a commercial product should review the GPL copyleft implications before deploying.

The system supports multiple users organized into groups. The README lists share links with expiration dates, customizable theme colors, dark mode, and PWA application support as additional features. International use is supported through i18n.

The last push to the repository was on 2026-09-21. Release 4.19.1 shipped on 2026-09-18, and 4.19.0 shipped on 2026-09-16. The project ships releases regularly and appears to be under active maintenance.

Editorial conclusion

Cloudreve suits individuals and small teams that need a self-hosted file manager with multi-cloud storage backends and a polished web UI. Teams evaluating it against alternatives should check the GPL-3.0 license implications for their deployment context, and verify that the required PostgreSQL and Redis infrastructure (shown in the docker-compose.yml) is acceptable for their environment.

Frequently asked questions

Is Cloudreve safe to use?

The README does not include a security audit, but the server uses JWT for authentication and Go's golang-jwt library, and the go.mod includes go-webauthn/webauthn for passkey support. The project has a SECURITY.md file. Like any self-hosted service, security depends on your deployment configuration.

Is Cloudreve a Chinese project?

The README is available in both English and Simplified Chinese, the Dockerfile sets the default timezone to Asia/Shanghai, and the project's feature set includes Aliyun OSS, Tencent COS, Huawei OBS, Qiniu Kodo, and other Chinese cloud providers. The project originated from China.

How does Cloudreve compare to Seafile?

Seafile is a file synchronization and sharing server with a strong focus on desktop sync clients and libraries for versioning. Cloudreve focuses on web-based file management with background download integration and broader cloud backend support. The README does not compare them directly.

What are the main alternatives to Cloudreve?

Nextcloud is the most widely deployed alternative, adding collaboration and plugin support at the cost of a heavier PHP stack. Seafile focuses on desktop sync. FileBrowser is a lighter option without multi-cloud backend support.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
For maintainers

Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/cloudreve-cloudreve.svg)](https://hysenlabs.com/projects/cloudreve-cloudreve)
Community notes

Community notes