IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    腾讯开源!双模式切换+实时协作,NAS部署QBin,极简却不简单

    panda发表于 2025-05-10 18:32:00
    love 0

    亲爱的粉丝朋友们好啊!今天熊猫又来介绍好玩有趣的Docker项目了,喜欢的记得点个关注哦!

    引言

    作为国内知名的大厂,鹅厂在国内的风评一直不是特别友好,但这其实完全是因为在游戏圈干的事造成的,仔细翻翻腾讯的github就能发现腾讯其实开源了很多项目,其中不乏一些优质好用的项目,例如腾讯开源的Markdown编辑器——cherry-markdown。
    项目页

    但你以为熊猫这次要介绍的就是它?错了,cherry-markdown非常好用,但目前不支持Docker部署,且熊猫也没看到有人将其打包为镜像,熊猫也是懒狗,所以也懒得去打包镜像。但因为其开源加上非常好用的原因,围绕cherry-markdown又诞生了非常多好用的开源项目,这里要介绍的便是今天的主角——Qbin。
    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其实都比较简陋,但能看出来底子还是不错的,感兴趣的可以自部署尝试。

    以上便是本次分享的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!
    尾图



沪ICP备19023445号-2号
友情链接