介绍

tldraw是一款免费的绘图和图表工具,具有手绘风格和智能箭头、捕捉和便签等便捷功能,可以导入本机图片,绘图后也可以导出各种图片格式。

使用的v1版本制作的镜像,不过也够用了🤔

项目支持中文(右下角点击问号修改),支持英文、符号、数字手写体,不支持中文手写体。

自托管不支持多人项目,可以用官方的。

GitHub地址-v1:tldraw/tldraw-v1: A tiny little drawing app. (github.com)

GitHub地址-v2:tldraw/tldraw: a very good whiteboard (github.com)

官网:tldraw

更好的docker镜像:ratneo/tldraw - Docker Image

A tiny little drawing app变成了a very good whiteboard🥳

预览

tldraw-1.webp
tldraw-3.webp

下面这张是官网做的,字体不一样。
tldraw-2.webp

部署

x64架构可跳过构建镜像阶段直接运行

构建镜像

# 下载代码
git clone --depth=1 https://github.com/tldraw/tldraw-v1.git

# 进入目录
cd tldraw-v1/apps/www/

创建Dockerfile文件

FROM node:16-alpine

WORKDIR /app

COPY . .

RUN yarn && yarn build

FROM alpine:latest

RUN apk add --no-cache yarn

WORKDIR /app

COPY --from=0 /app/public ./public    
COPY --from=0 --chown=nextjs:nodejs /app/.next ./.next    
COPY --from=0 /app/node_modules ./node_modules    
COPY --from=0 /app/package.json ./package.json

CMD ["yarn","start"]

# 构建镜像
docker build -t tldraw .

运行

docker run -d --name tldraw -p 3445:80 ratneo/tldraw

ip:3445可打开界面
可以自行修改容器名、端口、启动策略等参数,若使用自己构建的镜像一并修改镜像。

需要反代可以看这篇:nginxWebUI使用方法 - MJ的博客
没有80、443端口或纯内网鸡可以看这篇:CloudFlare Tunnels 内网穿透 家宽建站 - MJ的博客

一点遗憾

构建出来的镜像体积有530MB,太大了🥲一个node_modules/文件夹占了476MB;

standalone应该能进一步缩小体积,不过我不会😋

参考文档

[1]免费的绘图和图表工具Tldraw | 老苏的blog (laosu.cf)

[2][feature] Publish docker image? · Issue #96 · tldraw/tldraw-v1 (github.com)

[3]tldraw:一个绘图应用 v2