自从用上「CapsWriter」这款语音输入法,彻底摆脱云端的延迟或者 VIP 订阅服务了。但如果有多台电脑需要同时用,或者长期每台都运行服务端和客户端的话,有点不划算。
于是有了本篇的分离式部署,把服务端部署在指定一台电脑,其他电脑都只运行客户端就好。这样就省去每台都要运行服务端的 CPU 资源。
局域网部署
先找一台电脑运行服务端
如果只是局域网要分离服务端的话,不必用 Docker 方式部署在本地电脑,只需要按照正常使用那样,把服务端 start_server.exe
打开。
我们还要找出这台电脑的局域网 IP 地址,比较快捷的方式是:鼠标右键点击开始菜单 - 运行 - 输入:cmd
后按回车 - 输入:ipconfig /all
后按回车
找到类似:
本机的局域网 IP 是:192.168.0.19,这是笔者的举例截图,你的以你的为准。
其他电脑连接的方法
其他电脑,先修改 config.py
:
# 客户端配置
class ClientConfig:
addr = '192.168.0.19' # Server 地址,以刚才的为例
port = '6016' # Server 端口
接着,只需要运行 start_client.exe
就好。
服务器部署
服务器端的话,底层操作系统一般都是用 Linux 的居多,所以选用 Docker 方式部署比较通用些。
Docker 部署服务端
由于 CapsWriter 官方没有提供 Docker 镜像,只能从它的 Github 仓库自己制作容器镜像,它的 Dockerfile 如下:
# 使用官方 Python 3.10 镜像
FROM python:3.10
# 设置工作目录
WORKDIR /app
# 克隆项目代码
RUN git clone https://github.com/HaujetZhao/CapsWriter-Offline.git .
# 安装 requirements-server.txt 中的依赖
RUN pip install --no-cache-dir -r requirements-server.txt
# 给 core_server.py 脚本执行权限
RUN chmod +x core_server.py
# 暴露端口 6016
EXPOSE 6016
# 容器启动时运行 run.sh 脚本
CMD ["python", "./core_server.py"]
这个还是有一定的门槛,因为有可能被网络拦截,还有制作也需要一定的动手能力,制作完成之后,还要上传到仓库等,故优先找现成的,就是别人已经制作好的容器镜像。
有两位兄弟已经制作好了镜像,那我们直接 pull 其中一个就好。
docker pull sipcink/capswriter-offline-server:1.0
sipcink/capswriter-offline-server 1.0 331ced5f9eaf 17 months ago 2.98GB
考虑到大部分网络是没法直接拉取的,所以又要做一个网盘保存镜像导出的包。这个文章末尾再提供,接着完成部署教程。
由于容器部署需要一定的技术基础,笔者这里就不是手把手逐步截图教程了,而是放一些关键的配置出来就好。
docker-compose.yml
services:
capswriter-offline-server:
image: sipcink/capswriter-offline-server:1.0
ports:
- "6016:6016"
docker compose up -d
,启动之后,就可以看到类似这种日志:
客户端连接方法
和局域网的一样,只是这里要修改服务端的 IP 为服务器的公网 IP。然后运行start_client.exe
连接。
再去看服务器端:
这样说明连接成功了。
需要注意的地方
因为服务器部署的话,是公网 IP,而且它没有认证环节,所以我们自行要做好安全策略,避免公开被别人恶意破坏。
策略一
用服务器的防火墙放行我们本地的 IP,但是这种方法也比较麻烦,因为大部分本地的 IP 是变化的,每次改变都要修改防火墙规则,不现实。
策略二
用 frpc
做反向代理访问,上面的截图为何是:127.0.0.1:36040
,就是用了 frpc
的 sctp 隧道做了策略。相当于模拟本机访问远程。
这个策略对技术要求也不低,只是方便多了,不用每次都修改对外的访问 IP。
镜像下载
我把镜像导出保存在网盘,有需要的可以去下载导入加载使用。
docker save -o ./capswriter-offline-server.tar sipcink/capswriter-offline-server:1.0
下载好之后上传到线上服务器,切换到传的目录,使用这个命令导入:
docker load -i ./capswriter-offline-server.tar
你们导入之后,记得留意 331ced5f9eaf
这个 images id 要对应得上。接着,就是创建 docker-compose.yml
然后启动容器。
获取容器镜像网盘地址
1、本公众号回复 20250630
即可看到自动回复网盘链接。
2、如果网盘链接失效,请长按识别以下二维码,加微信发给你。
另外,本次启动推文,还有附带一个飞书的话题群「米八和他的伙伴们」,所有「米八说」读者都可以免费进话题群,每个话题都会产生一个帖子,比较方便非实时交流。
为迎接 AI 时代到来!欢迎你跟我一起学习数字化技能。
评论