5分钟使用Docker部署Paint Board快速打造专属在线画板应用

news/2025/2/26 15:12:55

文章目录

    • 前言
    • 1.关于Paint Board
    • 2.本地部署paint-board
    • 3.使用Paint Board
    • 4.cpolar内网穿透工具安装
    • 5.创建远程连接公网地址
    • 6.固定Paint Board公网地址

💡 推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击跳转到网站】

前言

嘿,各位手绘达人们,是不是经常遇到这样的情况:灵感如泉水般涌现时,却因为那些复杂得让人头大的专业绘图软件而瞬间打消了创作热情?别担心!今天我要给大家安利一款超轻量级、超好玩的Web画板——Paint Board!这款神器简直是为创意人量身定做的。无论你是设计新手还是老司机,都能轻松上手,界面简洁到让人爱不释手,操作流畅得像丝绸一样顺滑。想象一下,在忙碌的工作间隙或悠闲的周末时光里,你只需要打开浏览器就能立刻进入自己的创作天堂,是不是感觉特别过瘾?而且,Paint Board 的魅力远不止于此!接下来的内容将会带你轻松实现随时随地访问心爱画板的梦想。

【视频教程】

分享一款超好用的开源画板paint board

1.关于Paint Board

Paint Board是简洁易用的web端创意画板。它集成了多种创意画笔和绘画功能,支持形状绘制、橡皮擦、自定义画板等操作,并可以将作品保存为图片。

image-20241125143051492

Github地址:GitHub - LHRUN/paint-board:🎨一个强大的多端绘图板,汇集了许多创意画笔,可以体验一系列全新的绘图效果!

以下是Paint Board的功能特性:

1.自由绘画:

提供了 12 种不同风格的画笔,包括基本画笔,彩虹画笔,多形状画笔,多素材画笔,像素画笔,多色画笔,文字画笔,多线连接画笔,网状画笔,多点连接画笔,波浪曲线画笔,荆棘画笔。以满足多样化的绘画需求。

所有画笔均支持颜色和画笔宽度的配置,另外多形状、多素材、多色等画笔支持定制化配置。

2.形状绘制:

提供了多种常见形状的绘制,并支持多端点线段以及箭头,并且这些形状均支持边框和填充的样式配置。

3.橡皮擦模式:

橡皮擦模式可线性擦除所有内容,并支持线性宽度配置。

4.选择模式:

在选择模式下,可以通过点击绘画内容进行框选。点击手柄支持拖拽、缩放和旋转操作,提供灵活的编辑方式。

选择图片支持多种滤镜配置。

选择文字时,支持字体和样式设置。

所有绘制内容均支持图层设置,包括向上移动层级、向下移动层级、移动至顶层和移动至底层。

所有绘制内容支持透明度配置。

5.画板配置:

画板支持配置背景配置, 包括颜色, 背景图, 透明度。

画板支持自定义宽高配置。

支持绘画缓存,在存在大量绘制内容的情况下,启用缓存将提高绘制性能,而禁用缓存则会提升画布清晰度。

新增辅助线绘制功能。

6.多功能菜单:

左下角按钮实时显示当前缩放比例,点击即可重置缩放比例。

中间按钮列表按从左到右的功能分别为:撤销、反撤销、复制当前选择内容、删除当前选择内容、绘制文字、上传图片、清除绘制内容、保存为图片、打开文件列表。

上传图片支持去除背景(浏览器需支持WebGPU)

保存为图片支持自定义配置. 旋转, 缩放, 裁切

7.电脑端:

按住 Space 键并点击鼠标左键可移动画布,滚动鼠标滚轮实现画布缩放。

按住 Backspace 键可删除已选内容。

同时按住 Ctrl 键 + V 键可粘贴剪贴板图片。

8.移动端:

支持双指按压后拖拽和缩放画布。

9.多文件配置:

支持多个画布切换,每个画布可自定义标题、增加、删除,并提供上传和下载功能。

10.国际化:

目前支持中文,英文两种语言展示。

11.支持 PWA, 可离线访问

2.本地部署paint-board

本例使用Docker进行部署,如果没有安装Docker,可以查看这篇教程进行安装:《Docker安装教程——Linux、Windows、MacOS》

首先打开终端输入这行命令先下载代码

git clone https://github.com/LHRUN/paint-board.git

image-20241125152729890

进入到目录后

cd paint-board

再来构建镜像

sudo docker build -t wbsu2003/paint-board:v1 .

image-20241125153144989

最后运行容器即可:

sudo docker run -d \
    --name paint-board \
    -p 8080:80 \
    wbsu2003/paint-board:v1

image-20241125153256546

现在就已经安装成功了,您可以通过打开Web浏览器输入localhost:8080,就可以访问到Paint Board的页面了。

3.使用Paint Board

可以看到画板页面非常简洁明了

image-20241125153544796

点击左上方的各种选项就可以开始作画了

image-20241125153648686

4.cpolar内网穿透工具安装

不过我们目前只能在本地局域网内访问刚刚部署的Paint Board,如果想不在家中时,也能在外部网络环境远程访问本地部署的Paint Board,应该怎么办呢?我们可以使用cpolar内网穿透工具来实现远程访问本地服务的需求。无需公网IP,也不用设置路由器那么麻烦。

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令

sudo curl https://get.cpolar.sh | sh

img

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

img

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

image-20240801133735424

5.创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了: Paint,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:8080
  • 域名类型:随机域名
  • 地区:选择China Top

image-20241125153936169

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

image-20241125154037103

如下图所示,成功实现使用公网地址异地远程访问本地部署的Paint Board。

image-20241125154303699

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期使用Paint Board远程画画,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

6.固定Paint Board公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,填写备注信息,点击保留。

image-20241125154637284

保留成功后复制保留的二级子域名地址:

image-20241125154658903

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20241125154723540

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20241125154758554

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20241125154832694

最后,我们使用固定的公网地址访问Paint Board可以看到访问成功,一个永久不会变化的远程访问方式即设置好了。

image-20241125155041680

各位小伙伴们,是不是觉得 Paint Board 真的是创意人必备的神器呢?快来试试吧,让灵感随时都能自由飞翔。如果你在使用过程中有任何问题或心得体会,欢迎在评论区留言交流哦!我可是超期待看到你们的精彩作品,说不定还能发现下一个梵高呢!


http://www.niftyadmin.cn/n/5868871.html

相关文章

【Git学习笔记】Git常用命令

Git常用命令 1、仓库2、配置3、增加/删除文件4、代码提交5、分支6、标签7、查看信息8、远程同步9、撤销10、其他 1、仓库 # 在当前目录新建一个Git代码库 $ git init# 新建一个目录,将其初始化为Git代码库 $ git init [project-name]# 下载一个项目和它的整个代码历…

DeepSeek-R1技术全解析:如何以十分之一成本实现OpenAI级性能?

一、现象级爆火背后的技术逻辑 2025年1月20日,中国AI公司深度求索(DeepSeek)发布新一代大模型R1,其性能直接对标OpenAI的o1版本,但训练成本仅为后者的1/20(600万美元 vs. 1.2亿美元)&#xff0…

【CSP/信奥赛通关课(六):信奥赛STL专题】

CSP/信奥赛通关课(六):信奥赛STL专题 课程简介: 讲解信奥赛C中的STL核心组件:容器、迭代器、算法等,分析重点案例,让学生在实践的过程中熟练掌握信奥赛C相关的STL重要知识点。 课程教学目标&…

SpringBatch简单处理多表批量动态更新

项目需要处理一堆表,这些表数据量不是很大都有经纬度信息,但是这些表的数据没有流域信息,需要按经纬度信息计算所属流域信息。比较简单的项目,按DeepSeek提示思索完成开发,AI真好用。 阿里AI个人版本IDEA安装 IDEA中使…

MongoDB 面试题目

一、基础概念 MongoDB 的特点是什么? MongoDB是一种NoSQL数据库,具有以下特点: 文档存储模型 MongoDB 使用 BSON(Binary JSON) 格式存储数据,数据以文档的形式组织,类似于JSON对象。文档可以包…

一周学会Flask3 Python Web开发-Jinja2模板过滤器使用

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 在Jinja2中,过滤器(filter)是一些可以用来修改和过滤变量值的特殊函数,过滤器和变量用一个竖线 | &a…

Redis存储​⑫​哨兵Sentinel_高可用实现方案

目录 1. 哨兵Sentinel概念 1.1 主从复制的缺点 1.2 人工恢复主节点故障 1.3 哨兵自动恢复主节点故障 2. 重新选举过程 3. 选举原理 3.1 主观下线 3.2 客观下线 3.3 选举出哨兵的 leader 3.4 leader挑选出master 本篇完。 Redis 的主从复制模式下,一旦主节…

OpenCV计算摄影学(2)图像去噪函数denoise_TVL1()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 原始-对偶算法是用于解决特定类型变分问题(即,寻找一个函数以最小化某个泛函)的算法。特别地,图像…