自建服务器部署 — 完全控制的多人绘画服务器
什么时候需要自建
| 场景 | 用社区服务器?还是自建? |
|---|---|
| 日常和朋友约画 | ✅ 社区服务器就够 |
| 带 30+ 人的大活动 | ⭕ 建议自建(避免社区服务器限速) |
| 想做一个自己的绘画社区 | ⭕ 必须自建 |
| 需要完全控制权限、账号、日志 | ⭕ 必须自建 |
| 本地局域内网多人绘画 | ⭕ 本机跑 dpserver,不用公网 |
| 教学校园墙内部署 | ⭕ 自建 |
服务器程序 dpserver
Drawpile 有独立的服务器程序(叫 dpserver),和客户端分开。不依赖 GUI——命令行启动,配置文件管理。
获取 dpserver
- GitHub Releases:github.com/drawpile/dpserver/releases 下载各平台二进制
- Flatpak:
flatpak install flathub net.drawpile.dpserver - Docker:
docker run -p 27750:27750 drawpile/dpserver - 源码:从 dpserver GitHub 仓库克隆
基础启动
# Linux
./dpserver --port 27750
# Docker
docker run -d --name drawpile-server -p 27750:27750 drawpile/dpserver
默认监听 27750 端口(TCP + UDP)。Drawpile 客户端 Host 会话时选 "Custom Server",填你的服务器地址就能连。
防火墙配置
必须放行 27750 端口的 TCP 和 UDP:
# UFW(Ubuntu)
sudo ufw allow 27750/tcp
sudo ufw allow 27750/udp
# firewalld(CentOS/Fedora)
sudo firewall-cmd --permanent --add-port=27750/tcp
sudo firewall-cmd --permanent --add-port=27750/udp
sudo firewall-cmd --reload
云服务器(阿里云 / 腾讯云 / AWS)还要在安全组里同样放行 27750/TCP + UDP。
常见配置
dpserver 支持命令行参数和配置文件:
--port 27750— 端口--max-users 200— 最大同时在线人数(默认 200,社区服务器也是这个上限)--persist— 自动关闭的会话保留历史(默认内存里没有,关了就丢)--announce— 公告服务器(drawpile.net 注册列表)--help— 所有参数
详细配置见 dpserver GitHub README(github.com/drawpile/dpserver)。
账号系统
dpserver 自带简单的账号系统:
- 默认匿名开放(Guest 能直接进)
dpserver --accounts启用账号注册--registration参数控制是否允许公开注册- 注册用户可以保留 Trusted / Operator 身份跨会话生效
社区服务器用的是 drawpile.net 的统一账号系统。自建服务器可以用外部 OAuth(比如 GitHub / Discord)作为登录方式。
系统资源
Drawpile 服务器非常轻量——官方说一台社区服务器跑在低成本硬件上就行。一个自建服务器的资源需求大致:
| 人数 | CPU | 内存 | 带宽 |
|---|---|---|---|
| 10 人 | 单核低主频 | 128MB | 1Mbps |
| 50 人 | 1 核 | 256MB | 5Mbps |
| 200 人 | 2 核 | 512MB | 10Mbps |
VPS 选最小规格(1 核 512MB)就能同时承载 50 人左右一起画。因为 Drawpile 同步的是操作命令不是位图,带宽压力很小。
Docker 部署(最方便)
# 启动
docker run -d --name drawpile \
-p 27750:27750 \
--restart unless-stopped \
drawpile/dpserver --max-users 200 --persist
# 查看日志
docker logs -f drawpile
# 停止
docker stop drawpile && docker rm drawpile
Docker 部署的好处:自动重启、隔离环境、升级方便。Drawpile 官方维护 Docker 镜像,beta 版本也有对应 tag。
更新服务器
- Flatpak:
flatpak update net.drawpile.dpserver - Docker:
docker pull drawpile/dpserver && docker stop drawpile && docker rm drawpile然后重新启动 - 二进制:直接下载新版替换旧文件
- 源码:
git pull && cmake --build build && make install
Drawpile 服务器向后兼容——旧版客户端能连新版服务器,新版客户端也能连旧版服务器(大版本跨越可能不行)。