【Docker项目实战】使用Docker部署Chibisafe文件管理工具

举报
江湖有缘 发表于 2025/06/03 23:23:19 2025/06/03
【摘要】 【Docker项目实战】使用Docker部署Chibisafe文件管理工具

一、Chibisafe介绍

1.1 Chibisafe 简介

Chibisafe 是一个用 TypeScript 编写的开源文件上传服务,简单易用、部署方便,支持多种存储方式和功能扩展,适合个人和团队使用。

1.2 主要特点

  1. 支持多种部署模式:可运行在公开模式、用户账户模式或邀请制模式。
  2. 自动分片上传大文件:提升大文件上传的稳定性和成功率。
  3. 支持 S3 存储后端:便于集成到云存储系统中。
  4. 提供 Web 控制面板:可通过界面直接管理配置项,无需手动编辑配置文件。
  5. 支持生成分享链接:每个上传文件都可获得可共享的直链地址。
  6. 支持相册/文件夹功能:可组织文件并生成专辑分享链接。
  7. 支持代码片段创建与分享:类似 Gist 的功能,便于开发者快速分享代码。
  8. 提供文件管理和标签系统:方便对已上传内容进行分类与查找。
  9. 支持用户管理和配额控制:可为不同用户设置不同的上传限制。
  10. 内置短链接生成器:方便生成简洁的跳转链接。
  11. 支持 ShareX 直接上传:开箱即用地配合桌面截图工具使用。
  12. 支持 iOS 快捷指令上传:通过分享菜单快速上传文件到服务器。
  13. 提供浏览器扩展上传:可从网页中便捷上传内容。
  14. 高度可扩展性强:模块化设计便于二次开发与功能拓展。
  15. 完全开源无广告:无任何商业广告与用户追踪(仅记录请求 IP)。

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。

hostname IP地址 操作系统版本 Docker版本 部署项目
jeven01 192.168.3.88 Ubuntu 22.04.1 LTS 28.1.1 Chibisafe

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Chibisafe文件管理工具。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2025-05-07 03:58:22 UTC; 7h ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 841 (dockerd)
      Tasks: 11
     Memory: 93.0M
        CPU: 3.341s
     CGroup: /system.slice/docker.service
             └─841 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

3.2 检查Docker版本

检查Docker版本

root@jeven01:~#  docker -v
Docker version 28.1.1, build 4eba377

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@jeven01:~# docker compose version
Docker Compose version v2.35.1

四、下载Chibisafe镜像

下载Chibisafe相关镜像,如下所示:

docker pull chibisafe/chibisafe:latest
docker pull chibisafe/chibisafe-server:latest
docker pull caddy:2-alpine

在这里插入图片描述

五、部署Chibisafe应用

5.1 创建部署目录

  • 创建部署目录
mkdir -p /data/chibisafe  &&  cd /data/chibisafe

5.2 编辑Caddyfile文件

在部署目录下,编辑Caddyfile文件。

vim Caddyfile
{$BASE_URL} {
        route {
                file_server * {
                                root /app/uploads
                                pass_thru
                }

                @api path /api/*
                reverse_proxy @api http://chibisafe_server:8000 {
                                header_up Host {http.reverse_proxy.upstream.hostport}
                                header_up X-Real-IP {http.request.header.X-Real-IP}
                }

                @docs path /docs*
                reverse_proxy @docs http://chibisafe_server:8000 {
                                header_up Host {http.reverse_proxy.upstream.hostport}
                                header_up X-Real-IP {http.request.header.X-Real-IP}
                }

                reverse_proxy http://chibisafe:8001 {
                                header_up Host {http.reverse_proxy.upstream.hostport}
                                header_up X-Real-IP {http.request.header.X-Real-IP}
                }
        }
}

5.3 编辑部署文件docker-compose.yaml

在`部署目录下,创建docker-compose.yaml文件,如下所示:

vim docker-compose.yaml
services:
  chibisafe:
    image: chibisafe/chibisafe:latest
    environment:
      - BASE_API_URL=http://chibisafe_server:8000
    expose:
      - 8001
    restart: unless-stopped

  chibisafe_server:
    image: chibisafe/chibisafe-server:latest
    volumes:
      - ./database:/app/database:rw
      - ./uploads:/app/uploads:rw
      - ./logs:/app/logs:rw
    expose:
      - 8000
    restart: unless-stopped

  caddy:
    image: caddy:2-alpine
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./uploads:/app/uploads:ro
    ports:
      - 24424:80
    environment:
      - BASE_URL=":80"
    restart: unless-stopped

5.4 创建Chibisafe容器

执行以下命令,创建Chibisafe容器。

root@jeven01:/data/chibisafe#  docker compose up -d
[+] Running 3/3
 ✔ Container chibisafe-caddy-1             Running                                                                                                0.0s
 ✔ Container chibisafe-chibisafe_server-1  Running                                                                                                0.0s
 ✔ Container chibisafe-chibisafe-1         Running                                                                                                0.0s

5.5查看Chibisafe容器状态

检查Chibisafe容器状态状态,确保Chibisafe容器正常启动。

root@jeven01:/data/chibisafe# docker compose ps
NAME                           IMAGE                               COMMAND                  SERVICE            CREATED          STATUS          PORTS
chibisafe-caddy-1              caddy:2-alpine                      "caddy run --config …"   caddy              18 minutes ago   Up 18 minutes   443/tcp, 2019/tcp, 443/udp, 0.0.0.0:24424->80/tcp, [::]:24424->80/tcp
chibisafe-chibisafe-1          chibisafe/chibisafe:latest          "docker-entrypoint.s…"   chibisafe          18 minutes ago   Up 18 minutes   8001/tcp
chibisafe-chibisafe_server-1   chibisafe/chibisafe-server:latest   "docker-entrypoint.s…"   chibisafe_server   18 minutes ago   Up 18 minutes   8000/tcp

5.6 查看Chibisafe容器日志

检查Chibisafe容器日志,确保Chibisafe服务正常运行。

docker compose logs

在这里插入图片描述

六、访问Chibisafe服务

6.1 访问初始页

浏览器地址: http://<个人的服务器IP>:24424,访问Chibisafe服务的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

在这里插入图片描述

6.2 登录Chibisafe

我们点击Chibisafe首页的右上角登录选项,默认的账号密码:admin/admin

在这里插入图片描述

七、Chibisafe的基本使用

7.1 去除告警提示

我们点击告警提示“Setting --> Service --> Serve uploads from” ,设置访问地址后,保存即可。

在这里插入图片描述

7.2 上传文件

我们依次点击Uploads --> Upload file,进入文件上传页面。

在这里插入图片描述

选择本地文件上传后,效果如下所示:

在这里插入图片描述

八、总结

通过本次实战部署 Chibisafe,我们成功搭建了一个功能丰富且可扩展的文件上传与管理服务,充分发挥了 Docker 部署便捷、环境隔离的优势。Chibisafe 凭借其友好的界面和强大的功能,如分片上传、链接分享与多平台支持,展现了出色的实用性与灵活性。此次实践为后续构建私有化文件存储与协作平台打下了良好基础。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。