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

    Drawnix:无限画布上的开源白板工具

    ysicing (i@ysicing.me)发表于 2025-05-21 20:40:59
    love 0

    这个项目很早之前就关注过, 那时还没提供 Dockerfile😁

    简介

    Drawnix 是一款基于 Plait 框架打造的免费开源白板工具,提供思维导图、流程图和自由绘画等功能。依托插件化架构,用户能够随需扩展多种交互组件。每一次操作都能实时保存至浏览器缓存,确保内容不丢失。

    核心特性

    • 多样化绘图模式
      • 支持思维导图、流程图与自由画笔,满足不同场景需求
      • 可插入图片,通过简单拖拽丰富画面
    • 高效编辑体验
      • 撤销、重做、复制与粘贴操作流畅
      • 自动保存功能避免意外丢失(浏览器缓存)
    • 无限画布与导出能力
      • 通过缩放与滚动打造无边界创作空间
      • 可将画布导出为 PNG 或 JSON(.drawnix) 文件
    • 插件机制与兼容性
      • 插件架构支持 Angular、React 等多种 UI 框架
      • 自带 Slate 富文本扩展,后续可接入更多文本编辑插件
      • 未来可通过社区插件实现更多应用场景

    项目

    • 代码仓库 plait-board/drawnix
    • 官方演示站 drawnix.com

    名称灵感

    Drawnix ,源于绘画( Draw )与凤凰( Phoenix )的灵感交织。
    凤凰象征着生生不息的创造力,而 Draw 代表着人类最原始的表达方式。在这里,每一次创作都是一次艺术的涅槃,每一笔绘画都是灵感的重生。
    创意如同凤凰,浴火方能重生,而 Drawnix 要做技术与创意之火的守护者。
    Draw Beyond, Rise Above.

    与 Plait 框架的深度结合

    Drawnix 底层依托作者公司开源的 Plait 画图框架,这是知识库产品的重要技术沉淀。两者紧密结合让开发者享受“一键开箱即用”的便捷,同时还能在业务分层中灵活装载自定义插件。

    这款工具不仅是面向个人创作者,同样适用于团队协作与在线教学。无限画布中,每一次涂抹都让构思变得更生动、更立体,技术与想象力在此汇合,带来前所未有的白板体验。

    私有化部署

    作者已经提供了 Dockerfile,基于此 Dockerfile,我构建了一个镜像, 默认监听 80 端口,除此外无特殊配置

    • ccr.ccs.tencentyun.com/k7scn/drawnix 基于此97ab1d4构建完成

    compose 部署

    • docker-compose.yaml
    services:
      drawnix:
        image: ccr.ccs.tencentyun.com/k7scn/drawnix
        container_name: drawnix
        ports:
          - '100.90.80.15:8088:80'
        restart: always
    

    然后配置 caddy 代理即可。

    k3s 部署

    我主要使用 k3s 部署,对外访问使用 cft

    • drawnix.yaml
    ---
    apiVersion: apps.kruise.io/v1alpha1
    kind: CloneSet
    metadata:
      labels:
        app: drawnix
      name: drawnix
      namespace: kc-system
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: drawnix
      updateStrategy:
        type: InPlaceIfPossible
      template:
        metadata:
          labels:
            app: drawnix
        spec:
          tolerations:
          - operator: Exists
          nodeSelector:
            node-role.kubernetes.io/kc: "true"
          containers:
          - image: tcr.china.12306.work/github/drawnix
            imagePullPolicy: Always
            name: drawnix
            ports:
            - containerPort: 80
              protocol: TCP
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
          restartPolicy: Always
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: drawnix
      name: drawnix
      namespace: kc-system
    spec:
      ports:
      - name: http
        port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: drawnix
      type: ClusterIP
    

    apply 之后,在 cfd tunnel 管理页添加公共主机名

    演示站

    欢迎自建,不保证 SLA,暂时不知道开源版与官方演示有什么区别。

    • bbht.012321.best


    欢迎订阅我的微信公众号,同步更新 😁



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