Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【技术种草】腾讯云搭建Drawpile绘画联机服务器

【技术种草】腾讯云搭建Drawpile绘画联机服务器

原创
作者头像
贰狐
发布于 2021-11-30 09:33:42
发布于 2021-11-30 09:33:42
4.7K0
举报
文章被收录于专栏:Easy LighthouseEasy Lighthouse

大家好,我是贰狐,是一个动画工作者。

说起来我不也不算coder,只是工作之余会上GitHub看看有什么增加工作幸福感的“车轮”。

高中时期就自己零零散散的跟前辈们学过一些小技巧,对这方面很感兴趣,却是万万不敢说自己是大佬的。

从15年接触腾讯云到现在、从学生机开始,一点点学习进步,腾讯云陪伴了我这个半开发者的6年旅程。

今天来跟大家分享我使用腾讯云服务器部署drawpile服务器的过程吧!

Drawpile是什么?

Drawpile是一个非常强大的协同绘画开源项目,旨在为绘画爱好者提供高质量的在线绘画平台。

这款软件支持最高255人同屏协同绘画以及简单的即时聊天,同时支持WindowsLinuxMacOS三款PC操作系统。

借由Drawpile,你可以和朋友天各一方却可以在同一张画布上进行绘画,有效的提高共同工作效率和创意分享。

并且可以将绘画步骤保存成为视频格式(需要FFmpeg)。并且对于绘画工作者最大好处是它支持大部分数位板驱动。

Drawpile
Drawpile

我为什么需要它?

有时候在做一下卡的修改,会经常需要在线讨论、修改和演示,虽然也有其他软件可以用,但是我还是比较喜欢Drawpile的,并且也经常用它和朋友茶绘(在线共同绘画)。但是Drawpile有个问题就是官方部署的服务器大多在国外,绘画时有较高的延迟和不稳定性。于是我在官方文档中查阅了自建服务器的步骤后,决定自行搭建一个国内的服务器给朋友们使用。

由于在绘画时,客户端经常需要刷新缓存,所以带宽一定要越大越好

因此我选择了经济实惠的腾讯云轻量服务器~

遇到的问题?

我手头是有不少腾讯云轻量的,都是一次次万恶的打折忍不住剁下来的手。

根据我多年不靠谱的经验,我决定使用一台Ubuntu来搭建。

根据在官方GitHub:https://github.com/drawpile/dpserver看到的README说明,一体化Docker搭建目前仅支持Debian,但是我心说Ubuntu不是和Debian差不多嘛,来试试吧!

然后遇到了一个严重的问题困扰了我数个小时,部署安装时候执行cd dpserver && ./setup.sh会没任何提示就失败了

看了看脚本也没看出所以然(经验不足)。

最后百思不得其解的我在本地开了一个WSL2的Debian10虚拟机进行尝试,发现它部署时居然需要可视化填写一个完全可以放在文档里告诉你怎么修改的config值,但是SSH是不支持的,所以会直接跳出。

所以如果希望使用一键脚本部署,请务必按照脚本自行写出配置,而不是傻乎乎的像我这样撞墙(捂脸)。

以下是Linux下部署官方教程 https://drawpile.net/help/server-howto/

但是注意这里部署的服务器是包含列表服务器、网页显示在内的全套社区配件(即All-in-one server package)

若只需要搭建本体,请直接参照服务器搭建帮助https://drawpile.net/help/server/中所属配置项,直接自行拉取本体Docker,

docker pull drawpile/drawpile-srv后按需配置DockerFile后启动即可。

简单的方法

后来在查阅帮助信息时,发现Windows也可以搭建,并且在客户端中集成了server端的exe编译!

直接来到下载界面 https://drawpile.net/download/

下载Windows客户端,安装后在安装位置找到drawpile-srv.exe

drawpile-srv.exe
drawpile-srv.exe

双击运行后就可以看到控制台

drawpile服务器控制台
drawpile服务器控制台

配置选项

选项对应功能如下:

Server Title 房间名称

Welcome Message 欢迎词

Connection Timeout 连接超时 选项:unlimited(无限制)

  • Allow unauthenticated users 允许未经身份验证的用户
  • Allow anyone to host sessions 允许任何人创建会话

Server log 服务器日志

选项:keep all(保存所有)

选项:purge older than N days(清除N天前的日志)

Session size limit 会话大小限制

Default autoreset threshold 默认自动重置阈值

Session idle timeout 会话空闲超时

Maximum sessions 最大会话数量

  • Allow sessions to persist without users 允许会话在没有用户的情况下保持不变
  • Archive terminated sessions 存档已经终止的会话
  • Do not include user list is session announcement 如果勾选则会话公告中不包括已登录用户的列表
  • Allow custom avatars 允许自定义头像

External authenticati on 外部认证

Validation key 验证密钥

User group 用户组

  • Permit guest logins when ext-auth server is unreachable 若无法访问第三方验证服务器,则允许游客登录
  • Allow ext-auth moderators 允许第三方验证服务器验证管理员权限
  • Allow ext-auth hosts 允许第三方验证服务器验证房间
  • use ext-auth avatars 使用第三方验证服务器头像

修改成满意的配置后,点击Start就成功开启Drawpile服务器了!是不是非常简单?

修改端口及绑定域名

在上面的Setting按钮处设置即可,设置时应该关闭服务器,或完成后重启服务器以生效。

官方登录配置

Drawpile官方有账号系统,注册后可以在上面登记你的服务器,或者绑定服务器管理权限等。

用户使用官方帐号登录你的服务器也可以获得比纯游客更多权限,登入官方帐号,也可以防止部分小鬼炸服。

首先在setting按钮弹出的窗口,在Ext-auth server项目处输入https://drawpile.net/api/ext-auth/

然后保存,回到主界面,在Validation key处输入9eJ2tMJlqgSqHOIK/GI/qzS14WqIxHeB1Im5Hs/CCCk=

重启服务器以生效。

远程访问

这个控制台不仅仅是可以在Windows下开启服务器,也可以远程控制Linux服务器

也就是说,你在自己电脑上也可以远程修改服务器配置。

远程管理
远程管理

但是遗憾的是根据我在Discord上向官方人员咨询得出的结果,Windows开启的服务器,不支持异地远程控制

同时Windows开启的服务器也不支持绑定列表服务器(Linux搭建的listserver)。

通过以上步骤,就可以简单的部署一个自己的Drawpile绘画联机服务器,希望可以帮到大家,谢谢阅览。

觉得有用就点个赞吧

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
透过迷你vue库,了解vue背后思想
/** * the super tiny vue.js. 简介:一个迷你vue库,虽然小但功能全面,可以作为想了解vue背后思想以及想学习vue源码而又不知如何入手的入门学习资料。 特性: * 数据响应式更新 * 指令模板 * MVVM * 轻量级 ## 功能解读 <templete> <div id='app'> <div> <input v-model='counter' /> <button v-on-
张炳
2019/08/05
4890
Android ButterKnife(黄油刀)的使用
1.在Setting->Plugins中输入butterknife——>添加插件Android ButterKnife Aelezny ——>点击安装。 2.dependencies中添加依赖:
八归少年
2022/06/29
1.6K0
JavaScript 学习-40.jQuery 绑定事件 on 和 bind
前言 jquery 有四种绑定事件的方式:on, bind, delegate,live。其中 live() 方法已被移除。 自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代。 $(selector).off(type)为元素解除绑定的事件 on 绑定事件 基本语法 $(selector).on(event,childSelector,data,function) 参数 描述 event 必需。事件的类型一个或多个,由空格分隔多个事件
上海-悠悠
2022/06/07
1K0
JavaScript 学习-40.jQuery 绑定事件 on 和 bind
jquery 使用 unbind 解决重复绑定执行事件
在jquery监听click事件的时候会出现点击一次没有重复,点击第二次就重复的情况。出现这个问题的原因是之前的click事件被绑定后,并没有解绑。
Devops海洋的渔夫
2019/08/02
1.6K0
VUE——filemanager-webpack-plugin报错TypeError: Cannot read property 'isFile' of undefined
vue项目执行npm run dev的时候filemanager-webpack-plugin报错TypeError: Cannot read property 'isFile' of undefined
思索
2024/08/16
1590
VUE——filemanager-webpack-plugin报错TypeError: Cannot read property 'isFile' of undefined
Vue移动端 Web App 点击穿透问题解决方案
在近期的一个移动端项目中,有一个页面需要有弹框提示,并且这个弹框通过关闭按钮关闭。页面当中使用了 iScroll 来实现页面局部滚动,在 iScroll 的配置当中把 tap 和 click 事件都开启了。 代码如下:
青梅煮码
2023/02/18
1.8K0
关于闭包
        首先说明下...闭包是js高级特性之一...但并非js独有...perl, python, php(5.3以上版本) 都是支持闭包的..
Java架构师必看
2021/03/22
2K0
事件绑定的几种常见方式
在项目开发中,经常遇到绑定事件不起作用,或者事件绑定多次,导致重复触发。 1.事件绑定的几种常见方式(以click事件为例) jquery: $(selector).click(function(){...}) $(selector).bind("click",function(){...}) $(selector).live("click",function(){...}) $(document).delegate("selector","click",function(){...}) $(sel
蓓蕾心晴
2018/04/12
1.8K0
python测试开发django-167. jQuery中append() 动态新增的元素 click 事件无效的解决办法
主要原因是事件是在 dom 加载的时候就已经完成了,新增的 div 元素 click 事件就无效了。 最简单的方法就是直接在标签中写onclick=””, 这种是简单粗暴的解决办法,但一般不这样写。
上海-悠悠
2021/11/16
9640
asp.net中ScriptManager自带Ajax与jQuery事件冲突
问题引诉:最近在使用asp.net自带的无刷新提交ScriptManager时,发现一个问题,就是和我自己用jQuery写的一些事件函数和局部刷新相冲突。通过在网上收索,发现很多人都遇到这个同样的问题。最终还是找到的解决的办法,在此我想将其解决的办法分享出来供大家参考。
小小许
2018/09/20
1.1K0
6. Vue v-on绑定监听事件的基本使用
v-on命令就是相当于js中的事件绑定,例如绑定click、mouseover等等监听事件。
Devops海洋的渔夫
2020/02/25
1.1K0
6. Vue v-on绑定监听事件的基本使用
vue中axios请求数据加载模板报错Error in render: “TypeError: Cannot read properties of undefined (reading ‘xxx‘)“
控制台错误消失,由此判断错误肯定就是出现在这里,也说明了模板解析过程中出现了问题。
打不着的大喇叭
2024/03/11
6840
vue中axios请求数据加载模板报错Error in render: “TypeError: Cannot read properties of undefined (reading ‘xxx‘)“
React: 内存泄露常见问题解决方案
Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method”
西南_张家辉
2021/02/02
4.5K0
Vue 记录 Cannot read property '_withTask' of undefined
其实,你的 AAA 方法并不存在,编译一开始没啥毛病,等你执行数据的时候,各种问题,如果页面数据量过大的时候,问题很难定位到哪里!
White feathe
2021/12/08
4830
Vue 记录  Cannot read property '_withTask' of undefined
Vue.js基础特性
计算属性 computed 与data,el,methods属性一样,都是vm实例的属性(选项) 理解其大致意思即可
河湾欢儿
2018/09/06
1.9K0
enableEventValidation
回发或回调参数无效。在配置中使用 <pages enableEventValidation=”true”/> 或在页面中使用 <%@ Page EnableEventValidation=”true” %> 启用了事件验证。出于安全目的,此功能验证回发或回 调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
全栈程序员站长
2022/09/06
5860
Uncaught TypeError: Cannot read property 'setAttribute' of null
在Web开发中,你可能会遇到各种各样的错误。本篇博客将讨论一个常见的JavaScript错误:Uncaught TypeError: Cannot read property 'setAttribute' of null(无法读取null对象的属性'setAttribute')。
大盘鸡拌面
2023/11/21
5870
5. Vue v-on绑定监听事件的基本使用
上一章节,讲解了v-bind绑定属性的基本用法,那么本章节再来看看在Vue中如何进行事件监听。毕竟事件监听对于前端业务来说,还是一个大头事情呢!所以,必须讲讲。
Devops海洋的渔夫
2022/01/17
9320
5. Vue v-on绑定监听事件的基本使用
jQuery中on()、bind()、live()、delegate()之间的区别
首先简述下回涉及到的几个知识点: DOM树 首先,可视化一个HMTL文档的DOM树是很有帮助的。一个简单的HTML页面看起来就像是这个样子:
Clearlove
2019/08/29
1.3K0
jQuery中on()、bind()、live()、delegate()之间的区别
umi 项目报错 TypeError: Cannot read property ‘forEach‘ of undefined
TypeError: Cannot read property 'forEach' of undefined
星宇大前端
2022/06/05
9680
相关推荐
透过迷你vue库,了解vue背后思想
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档