
前言
有些协作场景并不需要一整套文档系统。临时开会记几条内容、两个人一起改一段文字、共享一份代码片段,真正需要的只是“打开同一份文档马上一起写”,而不是先注册账号、建空间、配权限。
Rustpad正适合这种轻量协作。文档通过随机码区分,参与者拿到Share Link以后就可以直接进入同一页面编辑;用户名可以临时修改,也不需要额外建立账户体系。
这篇使用极空间通过Docker部署汉化版Rustpad,既保留Docker Compose方式,也保留docker run方式。服务启动以后,会实际打开3030页面,查看语言选项、文档随机码、用户名和Share Link这些最常用的协作入口。
对于只需要临时一起写一会儿的场景,这种链接式协作也比先建立团队空间和账号权限更直接。
正文真正要验证的,不只是“页面能打开”,而是把共享链接交给另一个人以后,双方可以进入同一份文档继续编辑。
后半段再加入cpolar,让原本只能在局域网使用的Rustpad页面也可以从其他网络环境访问。整篇真正跑的是极空间运行Rustpad → 创建/识别文档 → 分享链接 → 多人进入同一页面编辑 → 外部网络继续协作这条链。

1.什么是Rustpad?
核心特性:
实时协作(Real-time Collaboration)
- 多人可同时编辑同一文档,光标位置、文本内容实时同步,类似Google Docs或腾讯文档,但更轻量。
零账户系统(No Signup Required)
- 用户只需分享一个链接,访客打开即可编辑,无需登录或注册。
端到端加密(可选)
- 支持通过URL中的密钥实现客户端加密(E2EE),服务器无法读取文档内容,保障隐私。
基于Rust构建,性能优异
- 后端使用Rust语言编写,内存安全、高并发、低资源占用,单核CPU + 512MB内存即可流畅运行。
支持Markdown与代码高亮
- 编辑区支持Markdown语法渲染,代码块自动高亮,适合技术团队写文档、做笔记。
自托管(Self-hosted)
- 所有数据存储在你自己的服务器上,不依赖第三方云服务,完全掌控数据主权。
无数据库依赖
- 默认将文档临时保存在内存中(重启后丢失),也支持持久化到本地文件(通过社区修改版或插件)。
典型使用场景:
- 团队快速头脑风暴 / 会议记录
- 编程结对时共享代码片段
- 教师与学生共享课堂笔记
- 临时起草协议、清单、待办事项
- 隐私敏感场景下的安全协作
技术栈简览:
| 组件 | 技术 |
|---|---|
| 后端 | Rust + Actix Web(WebSocket 实现实时同步) |
| 前端 | HTML/CSS/JavaScript(无框架,极简设计) |
| 部署 | 单二进制文件 or Docker 容器 |
| 协议 | WebSocket + CRDT(冲突-free replicated data type)算法 |
为什么选择Rustpad?
- 开源免费(MIT 许可证)
- 轻量快速(启动快、响应快)
- 隐私可控(自托管 + 可选加密)
- 极简设计(无冗余功能,专注写作)
2.前提条件
2.1ssh远程连接到极空间
- 开启【SSH 服务】
- 使用终端(Windows PowerShell / Mac Terminal)登录:
ssh root@IP

2.2验证docker是否开启
使用命令:
docker -v
systemctl status -v

3.安装Rustpad
首先创建一下安装的目录并进入到该目录:
sudo mkdir -p /docker/rustpad
cd /docker/rustpad
创建并编辑 docker-compose.yml文件:
#version: '3.9'
name: rustpad
services:
rustpad:
container_name: rustpad
image: swr.cn-north-4.myhuaweicloud.com/firfe/rustpad:2025.08.28
network_mode: bridge
restart: always
cpus: 1
mem_limit: 512m
logging:
options:
max-size: 1m
max-file: '3'
ports:
- 3030:3030
启动容器:
docker-compose up -d
也可以使用docker run一键部署:
docker run -d \
--name rustpad \
--network bridge \
--restart always \
--cpus 1 --memory 512m \
--log-opt max-size=1m \
--log-opt max-file=3 \
-p 3030:3030 \
swr.cn-north-4.myhuaweicloud.com/firfe/rustpad:2025.08.28

部署完成后,在浏览器中输入 http://极空间IP:3030 就能看到rustpad的界面:

4.使用Rustpad
支持多种语言格式:

在Rustpad中,文档名称是以6位随机码来鉴别的,不同的随机码对应不同的文档内容。

可以更新用户名称:

左侧的Share Link就是我们可以分享使用的短链接,分享给其它人就可以加入共同进行在线文档编辑。


前面的Rustpad已经能够在局域网里完成共享编辑。如果参与者不在同一个网络环境中,还需要给这个Web页面增加一个外部访问入口。
这里继续使用cpolar,让运行在极空间上的Rustpad页面可以从局域网之外访问。Rustpad负责文档协作,cpolar负责扩展共享页面的访问范围。
5.安装cpolar实现外部协作访问
5.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
5.2 部署cpolar
cpolar可以将你本地电脑中的服务(如SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
sudo curl https://get.cpolar.sh | sh

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

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

6.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:rustpad,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:3030
- 域名类型:随机域名
- 地区:选择China Top

打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

访问成功。

7.保留固定公网地址
使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是rustpad,大家可以自定义。填写备注信息,点击保留。

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

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新

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

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。
总结
这篇真正完成的是一套轻量的多人临时协作流程:先在极空间上通过Docker运行汉化版Rustpad,再从浏览器进入文档页面,查看随机文档码、修改用户名,并通过Share Link把同一份文档交给其他参与者。
Rustpad和传统在线文档最大的区别之一,是不需要先建立完整账号体系。需要协作时分享链接即可进入,适合会议记录、代码片段、临时草稿这类“先一起写起来”的场景。
正文里的随机文档码和Share Link,也让协作关系比较清楚:不同随机码对应不同文档,分享对应链接以后,参与者进入的是同一份内容,而不是各自打开一个独立副本。
后半段加入cpolar以后,Rustpad不再只局限于同一局域网。极空间负责长期运行容器,Rustpad负责实时编辑和共享链接,cpolar负责外部访问入口,这样异地参与者也可以继续进入同一份文档协作。
本文介绍如何在极空间上通过Docker部署汉化版Rustpad,实现无需账号的多人实时文档协作。核心流程包括:启动Rustpad服务、生成随机文档码与Share Link、支持Markdown与代码高亮、端到端加密可选;并通过cpolar配置内网穿透,提供固定二级子域名公网访问能力,使局域网内自托管的Rustpad支持跨网络实时协同编辑。

387

被折叠的 条评论
为什么被折叠?



