腾讯开源!双模式切换+实时协作,NAS部署QBin,极简却不简单
亲爱的粉丝朋友们好啊!今天熊猫又来介绍好玩有趣的Docker项目了,喜欢的记得点个关注哦!
引言
作为国内知名的大厂,鹅厂在国内的风评一直不是特别友好,但这其实完全是因为在游戏圈干的事造成的,仔细翻翻腾讯的github就能发现腾讯其实开源了很多项目,其中不乏一些优质好用的项目,例如腾讯开源的Markdown编辑器——cherry-markdown。
但你以为熊猫这次要介绍的就是它?错了,cherry-markdown非常好用,但目前不支持Docker部署,且熊猫也没看到有人将其打包为镜像,熊猫也是懒狗,所以也懒得去打包镜像。但因为其开源加上非常好用的原因,围绕cherry-markdown又诞生了非常多好用的开源项目,这里要介绍的便是今天的主角——Qbin。
项目介绍
QBin 致力于打造一个「快速、安全、便捷」的在线编辑与内容分享平台,适用于个人笔记、临时存储、多人协作、跨平台分享等多样化场景。
- 前端完全使用 HTML、JavaScript 和 CSS 构建,不依赖臃肿框架,集成了 Monaco 代码编辑器、Cherry Markdown 渲染器和通用编辑器,全面适配各种内容创作需求;
- 后端基于 Deno 的 Oak 框架搭配 Drizzle ORM,同时利用 Deno KV 和 Edge Cache 实现多级缓存机制,读写性能表现优异;
- 支持 PWA 和 IndexedDB,即使在断网状态下也能继续编辑、保存并预览内容;
- 可自定义访问路径、设置密码和过期时间,在保障隐私的前提下实现灵活分享;
- 相较于传统 PasteBin,QBin 在编辑功能、安全机制和可扩展性方面都有显著提升。
项目部署
QBin支持SQlite数据库,也支持用PostgreSQL作为数据库,这里为了快速展示,熊猫就采用SQlite的方式部署,如果有需要独立数据库支持的,可以去项目页查看详细的文档(https://github.com/Quick-Bin)。
本次用到设备为绿联NAS,通过compose配置文件进行部署,在项目中新建项目,输入以下代码,其中一些映射项目需要你根据自身的NAS环境进行更改,例如端口或者文件夹映射目录等等。
services:
qbin:
image: naiher/qbin:latest
container_name: qbin-app
restart: always
environment:
# 必选环境变量
- ADMIN_EMAIL=admin@qbin.github # 请修改为你的邮箱
- ADMIN_PASSWORD=qbin # 请修改为安全的密码
- JWT_SECRET=change_this_to_a_secure_random_string # 请修改为随机安全字符串
# 可选环境变量
- PORT=8000
- TOKEN_EXPIRE=31536000
- MAX_UPLOAD_FILE_SIZE=52428800
- DB_CLIENT=sqlite
- DATABASE_URL="file:/app/src/qbin_local.db"
volumes:
- qbin-data:/app/src # 持久化存储数据库文件
ports:
- "8000:8000"
networks:
- qbin-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
volumes:
qbin-data: # 定义用于存储SQLite数据库的卷
driver: local
networks:
qbin-network:
driver: bridge
internal: false
如果用SQlite作为数据库,需要注释掉DATABASE_URL,反之则注释掉DB_CLIENT,具体根据自身需求来设置即可,以上代码只是作为例子,一定要切记更改其中的内容。
确定好所有的变量以及映射之后点击立即部署,绿联会自动拉取并根据参数部署项目,这时候我们注意查看日志,出现这样的字样也就代表项目部署成功了。
项目体验
来到项目界面,整个界面非常简洁,首页有三种编辑器选择,请分别是通用编辑器、code代码编辑器以及Markdown编辑器,根据需求选择不同的编辑器就行。
左边菜单的分享和回收站功能暂未开放,毕竟项目还是比较新的,期待后续开发,存储管理中因为是新建项目,所以没有任何内容。
熊猫经常用的是Markdown编辑器,点击之后会跳转到markd编辑器界面,整个界面采用的就是腾讯开源的cherry-markdown作为框架和渲染效果。
编辑器除了支持常规的Markdown语法,还支持各种文件的插入,例如表格、pdf、word甚至文件,预览界面也做了渲染优化。
右上方直接字数统计,同时通过设置菜单可进行一键编辑器切换,切换的同时内容会自动跟随进行格式转换,文件也支持访问加密。
写在最后
项目处于初期阶段,很多东西还并不完善,甚至连UI其实都比较简陋,但能看出来底子还是不错的,感兴趣的可以自部署尝试。
以上便是本次分享的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!