美观强大的文件保险库Chibisafe
简介
什么是 Chibisafe ?
Chibisafe
是一款用Typescript
编写的快速文件上传服务,非常实用。它接受文件、照片、文档以及您能想到的任何内容,并返回可共享的链接,供您发送给其他人。它易于使用、易于部署、免费且开源,用户可以轻松部署和使用。
主要特点
- 多种模式:支持公有模式、用户账户模式和仅邀请模式。
- 文件上传:能够处理各种文件类型,包括照片和文档,并自动将大文件分块以减少网络故障。
- 用户友好的界面:提供一个仪表盘,可以通过直观的用户界面直接编辑配置,而无需手动修改环境或配置文件。
- 直链分享:上传的文件会生成可分享的直接链接,方便用户分享。
- 扩展性:支持
S3
存储,具有良好的扩展能力,允许用户通过API
密钥进行编程访问。 - 隐私和安全:不含广告和追踪,只记录请求的 IP 地址以确保用户隐私。
- 安装与运行:推荐使用
Docker
进行安装,提供详细的安装指南。
主要功能(v6)
- 📄 美观的文档
- 🗄️ 支持
S3
存储 - 📷 美观的网格布局浏览媒体文件
- ✨ 对大文件进行分块上传
- 🔗 分享上传文件的直接链接
- 📂 带有直接链接的相册/文件夹可分享
- 📝 创建带有直接链接的片段/要点以供分享
- 🗃️ 文件管理和文件标签功能
- 🙋 用户管理和配额设置
- 🔗 内置
URL
短链接服务 - ✉️ 公开或私人模式(支持邀请)
- ⬆️ 原生支持
ShareX
,便于从桌面上传截图/屏幕录制 - 📱
iOS
快捷方式,通过共享菜单上传文件 - 🌐 浏览器扩展,轻松从网站上传内容
- 🧩 易于扩展
- 📖 开源
- 🚫 无广告、无追踪(仅记录请求的
IP
地址)
安装
在群晖上以 Docker 方式安装。
chibisafe/chibisafe:latest
对应的版本为v6.4.2
;chibisafe/chibisafe-server:latest
对应的版本为v6.4.2
;
采用 docker-compose
安装,需要先准备两个文件,分别是 Caddyfile
和 docker-compose.yml
Caddyfile
Caddyfile
是 Caddy
服务器的配置文件,用于定义网站的服务器设置和行为。老苏未做任何修改。源文件地址:https://github.com/chibisafe/chibisafe/blob/master/Caddyfile
{servers {trusted_proxies static private_rangesclient_ip_headers X-Forwarded-For X-Real-IP}
}{$BASE_URL} {route {file_server * {root /app/uploadspass_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}}}
}
docker-compose.yml
docker-compose.yml
在官方基础上做了微调,只是增加了 container_name
源文件地址:https://github.com/chibisafe/chibisafe/blob/master/docker-compose.example.yml
services:chibisafe:image: chibisafe/chibisafe:latestcontainer_name: chibisafe-clientenvironment:- BASE_API_URL=http://chibisafe_server:8000expose:- 8001restart: unless-stoppedchibisafe_server:image: chibisafe/chibisafe-server:latestcontainer_name: chibisafe-serverenvironment:- ADMIN_PASSWORD=adminvolumes:- ./database:/app/database:rw- ./uploads:/app/uploads:rw- ./logs:/app/logs:rwexpose:- 8000restart: unless-stoppedcaddy:image: caddy:2-alpinecontainer_name: chibisafe-webvolumes:- ./Caddyfile:/etc/caddy/Caddyfile:ro- ./uploads:/app/uploads:roports:- 24424:80environment:- BASE_URL=":80"restart: unless-stopped
然后执行下面的命令
# 新建文件夹 chibisafe 和 子目录
mkdir -p /volume1/docker/chibisafe/{database,uploads,logs}# 进入 chibisafe 目录
cd /volume1/docker/chibisafe# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:24424
就能看到主界面
如果看到下方闪现的
Invalid token
,不用理会;
点右上角的 Login
进入登录界面
默认的账号密码:
admin/admin
登录成功后的主界面
设置
首先要解决顶部黄色的警告
进入 Setting
--> Service
--> Serve uploads from
填入服务器地址 http://群晖IP:24424
,保存即可
上传文件
进入 Uploads
--> Upload file
随便找了几个文件,有图片也有 PPT
刷新页面后,图片可以直接预览
选中文件可以做删除等操作
、
切换视图模式,可以看到文件链接、文件大小等
上传的文件,可以在 uploads
目录中找到
客户端
Chibisafe
还支持浏览器插件、ShareX
等,其中 iOS
快捷方式和浏览器扩展非常适合快速保存照片
其中 ShareX
在老苏之前写的 XBackBone
一文中,详细介绍过如何导入配置文件
文章传送门:轻量级文件管理器XBackBone
当然,在使用这些之前,你还需要生成 API key
,用于这些客户端登录到你的服务器时,进行合法性验证
点 Request new API key
生成
参考文档
chibisafe/chibisafe: Blazing fast file vault written in TypeScript! 🚀
地址:https://github.com/chibisafe/chibisafe
chibisafe/chibisafe-extension: Companion extension for the chibisafe File Uploader.
地址:https://github.com/chibisafe/chibisafe-extension
chibisafe
地址:https://chibisafe.app/
API Reference
地址:https://chibisafe.app/docs
相关文章:

美观强大的文件保险库Chibisafe
简介 什么是 Chibisafe ? Chibisafe 是一款用 Typescript 编写的快速文件上传服务,非常实用。它接受文件、照片、文档以及您能想到的任何内容,并返回可共享的链接,供您发送给其他人。它易于使用、易于部署、免费且开源࿰…...

详细教程:SQL2008数据库备份与还原全流程!
数据的安全性至关重要,无论是操作系统、重要文件、磁盘存储,还是企业数据库,备份都是保障其安全和完整性的关键手段。拥有备份意味着即使发生误删、系统崩溃或病毒攻击等问题,也能迅速通过恢复功能解决,避免数据丢失带…...
HTML——49.header和footer标签
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>header和footer标签</title></head><body><!--header和footer标签:是html5中新标签--><!--header:定义文档的页眉,通常用来定义可见…...

【蓝桥杯选拔赛真题87】python输出字符串 第十五届青少年组蓝桥杯python选拔赛真题 算法思维真题解析
目录 python输出字符串 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python输出字符串 第十五届蓝桥杯青少年组python比赛选拔赛真题详细解析…...
OpenStack-Dashboard界面简单修改
OpenStack Dashboard界面替换图片 一、dashboard界面Logo的路径及文件 dashboard的Logo存放(在Controller节点)的路径: /usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/img/涉及需要修改的文件(3个&…...

DevOps工程技术价值流:Ansible自动化与Semaphore集成
在DevOps的浪潮中,自动化运维工具扮演着举足轻重的角色。Ansible,作为一款新兴的自动化运维工具,凭借其强大的功能和灵活性,在运维领域迅速崭露头角。本文将深入探讨Ansible的特点、架构、工作原理,以及其应用场景&…...

【服务器】上传文件到服务器并训练深度学习模型下载服务器文件到本地
前言:本文教程为,上传文件到服务器并训练深度学习模型,与下载服务器文件到本地。演示指令输入,完整的上传文件到服务器,并训练模型过程;并演示完整的下载服务器文件到本地的过程。 本文使用的服务器为云服…...

第四届电子信息工程与数据处理(EIEDP 2025)
第四届电子信息工程与数据处理 2025 4th International Conference on Electronic Information Engineering and Data Processing 2025年1月17-19日 马来西亚 吉隆坡 重要信息 会议官网:www.eiedp.net 大会时间:2025年1月17-19日 大会地点&#…...
模型预测控制(MPC)算法介绍
模型预测控制(Model Predictive Control,MPC)是一种先进的控制策略,广泛应用于工业过程控制、机器人控制、电力系统等领域。它基于系统的模型,通过滚动优化来预测系统未来的行为,并据此确定当前的最优控制输…...

设计模式 创建型 建造者模式(Builder Pattern)与 常见技术框架应用 解析
建造者模式,又称生成器模式,是一种对象构建模式。它主要用于构建复杂对象,通过将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建出具有不同表示的对象。该模式的核心思想是将一个复杂对象的构建过程分解为多个简单的…...

嵌入式系统中C++的基本使用方法
大家好,今天主要给大家分享一下,最近操作C++代码的控制方法。 什么是构造函数?构造函数在对象实例化时被系统自动调用,仅且调用一次。 什么是析构函数?与构造函数相反, 在对象结束其生命周期时系统自动执行析构函数。 第一个:析构函数与构造函数区别 实例代码: #inclu…...

机器人C++开源库The Robotics Library (RL)使用手册(四)
建立自己的机器人3D模型和运动学模型 这里以国产机器人天机TR8为例,使用最普遍的DH运动学模型,结合RL所需的描述文件,进行生成。 最终,需要的有两个文件,一个是.wrl三维模型描述文件;一个是.xml运动学模型描述文件。 1、通过STEP/STP三维文件生成wrl三维文件 机器人的…...
在 uni-app 中使用 wxml-to-canvas 的踩坑经验总结
在 uni-app 中使用 wxml-to-canvas 的踩坑经验总结 wxml-to-canvas 是一款非常强大的小程序工具,可以将 WXML 转换为 Canvas 绘图,用于生成海报、分享图片等。将其应用于 uni-app 项目中,可以为多端开发带来极大的便利,但也有一些…...
视频智能翻译
i68,爱六八,链接你我他 EasyVideoTrans英文视频转换成中文视频 EasyVideoTrans简要 最快的英文视频转中文方案由B站多位程序员Up主共同协作开发开源的项目在线Demo:EasyVideoTrans前端项目:https://github.com/sutro-planet/easyvideotrans-frontend后端项目:https://github…...

《Python加解密小实验:探索数据加密与解密的世界》
铺垫(1)-源码 import hashlib source "你好" # print(hashlib.md5(source.encode()).hexdigest())# 文件加解密 with open(../文件引用/index.png, rb) as file:data file.read() # print(hashlib.md5(data).hexdigest())# SHA也是摘要算法…...

C高级day四shell脚本
1.思维导图 2.终端输入一个C源文件名(.c结尾)判断文件是否有内容,如果没有内容删除文件,如果有内容编译并执行该文件。 #!/bin/bashread -p "请输入一个.c脚本名:" n if [ -s "$n" ] thenecho $n…...

android studio 写一个小计时器(版本二)
as版本:23.3.1patch2 例程:timer 在前一个版本的基本上改的,增加了继续的功能,实现方法稍微不同。 动画演示: activity_main.xml <?xml version"1.0" encoding"utf-8"?> <androidx…...

【网络安全实验室】SQL注入实战详情
如果额头终将刻上皱纹,你只能做到,不让皱纹刻在你的心上 1.最简单的SQL注入 查看源代码,登录名为admin 最简单的SQL注入,登录名写入一个常规的注入语句: 密码随便填,验证码填正确的,点击登录…...
华为,新华三,思科网络设备指令
1. 设备信息查看 华为 display version # 查看设备版本信息 display device # 查看设备硬件信息 新华三(H3C) display version # 查看设备版本信息 display device # 查看设备硬件信息 锐捷 show version …...

WebRTC线程的启动与运行
WebRTC线程运行的基本逻辑: while(true) {…Get(&msg, …);…Dispatch(&msg);… }Dispatch(Message *pmsg) {…pmsg->handler->OnMessage(pmsg);… }在执行函数内部,就是一个while死循环,只做两件事,从队列里Get取…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...