Sign inSign up

xtulnx/cloudreve

By xtulnx

Updated 5 months ago

Image
0

165

xtulnx/cloudreve repository overview

Cloudreve

基于上游 cloudreve/cloudreve 社区版源码构建的 Cloudreve 4 单容器镜像。

镜像内已包含这些常见运行时组件:

  • aria2
  • ffmpeg / ffprobe
  • libvips
  • LibreOffice

这意味着你可以直接用它部署 Cloudreve,也可以配合 PostgreSQL 和 Redis 组成完整基础栈。

快速开始

如果你只想先跑起来一个可用实例,可以直接单容器启动。未额外配置数据库时,Cloudreve 会使用 SQLite。

IMAGE=xtulnx/cloudreve:v4

docker run -d \
  --name cloudreve \
  --restart unless-stopped \
  -p 5212:5212 \
  -p 6888:6888 \
  -p 6888:6888/udp \
  -e TZ=Asia/Shanghai \
  -v "$(pwd)/cloudreve-data:/cloudreve/data" \
  "$IMAGE"

启动后访问 http://localhost:5212 完成初始化。首个注册账号会成为管理员。

推荐部署方式

生产环境更适合把 Cloudreve、PostgreSQL 和 Redis 一起部署。这个目录已经提供了可直接使用的 Compose 示例。

  1. 复制环境文件。
  2. CLOUDREVE_IMAGE 改成你要使用的镜像标签。
  3. 设置一个新的 POSTGRES_PASSWORD
  4. 启动服务。
cd cloudreve
cp compose.env.example compose.env
docker compose --env-file compose.env up -d

compose.env 可以从下面这个最小示例开始:

TZ=Asia/Shanghai
POSTGRES_PASSWORD=change-me
CLOUDREVE_IMAGE=xtulnx/cloudreve:v4

对应的 docker-compose.yml 示例:

services:
  cloudreve:
    image: ${CLOUDREVE_IMAGE:-local/cloudreve:4.15.0}
    build:
      context: .
    container_name: cloudreve
    depends_on:
      postgresql:
        condition: service_started
      redis:
        condition: service_started
    restart: unless-stopped
    environment:
      TZ: ${TZ:-Asia/Shanghai}
      CR_CONF_Database.Type: postgres
      CR_CONF_Database.Host: postgresql
      CR_CONF_Database.Port: 5432
      CR_CONF_Database.User: cloudreve
      CR_CONF_Database.Password: ${POSTGRES_PASSWORD:-change-me}
      CR_CONF_Database.Name: cloudreve
      CR_CONF_Redis.Server: redis:6379
    ports:
      - "5212:5212"
      - "6888:6888"
      - "6888:6888/udp"
    volumes:
      - backend_data:/cloudreve/data

  postgresql:
    image: ${POSTGRES_IMAGE:-postgres:17}
    container_name: postgresql
    restart: unless-stopped
    environment:
      POSTGRES_USER: cloudreve
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-change-me}
      POSTGRES_DB: cloudreve
    volumes:
      - database_postgres:/var/lib/postgresql/data

  redis:
    image: ${REDIS_IMAGE:-redis:7-alpine}
    container_name: redis
    restart: unless-stopped
    volumes:
      - redis_data:/data

volumes:
  backend_data:
  database_postgres:
  redis_data:

如果你只想使用已经发布好的镜像,而不是在本地重新构建,请保留 image:,并删除 build: 这一段。

默认会暴露这些端口:

  • 5212:Cloudreve Web 服务
  • 6888/tcp:Aria2
  • 6888/udp:Aria2

数据持久化

请至少持久化 /cloudreve/data。这个目录会保存:

  • Cloudreve 配置文件
  • SQLite 数据库或缓存文件
  • 本地上传文件
  • 任务和运行时数据

如果你使用 Compose 示例,还会额外创建 PostgreSQL 和 Redis 的数据卷。

常用环境变量

基础运行
  • TZ:容器时区,例如 Asia/Shanghai
连接 PostgreSQL

如果你不想使用 SQLite,可以在启动容器时传入这些环境变量:

  • CR_CONF_Database.Type=postgres
  • CR_CONF_Database.Host=<db-host>
  • CR_CONF_Database.Port=5432
  • CR_CONF_Database.User=<db-user>
  • CR_CONF_Database.Password=<db-password>
  • CR_CONF_Database.Name=<db-name>

示例:

IMAGE=xtulnx/cloudreve:v4

docker run -d \
  --name cloudreve \
  --restart unless-stopped \
  -p 5212:5212 \
  -p 6888:6888 \
  -p 6888:6888/udp \
  -e TZ=Asia/Shanghai \
  -e CR_CONF_Database.Type=postgres \
  -e CR_CONF_Database.Host=postgresql \
  -e CR_CONF_Database.Port=5432 \
  -e CR_CONF_Database.User=cloudreve \
  -e CR_CONF_Database.Password=change-me \
  -e CR_CONF_Database.Name=cloudreve \
  -e CR_CONF_Redis.Server=redis:6379 \
  -v "$(pwd)/cloudreve-data:/cloudreve/data" \
  "$IMAGE"

升级建议

  • 升级前先备份 /cloudreve/data
  • 如果你使用 PostgreSQL 或 MySQL,也要先备份数据库。
  • 单容器默认可直接替换镜像后重启;多容器部署时,请确保数据库和 Redis 连接参数保持不变。

参考

Tag summary

Content type

Image

Digest

sha256:bc108181d

Size

399.8 MB

Last updated

5 months ago

docker pull xtulnx/cloudreve:v4