MonkeyType 打字游戏自托管部署指南
前言
MonkeyType 是一款流行的在线打字速度测试工具,本文将详细介绍如何通过 Docker 容器技术实现 MonkeyType 的自托管部署。通过自托管,您可以完全掌控自己的打字测试环境,并根据需求进行个性化配置。
环境准备
在开始部署前,请确保您的系统满足以下要求:
- 已安装 Docker 引擎
- 已安装 Docker Compose 插件
- 至少 1GB 可用内存
- 基本的命令行操作知识
快速部署指南
1. 创建项目目录
mkdir monkeytype && cd monkeytype
2. 准备配置文件
需要准备三个核心配置文件:
docker-compose.yml
- 容器编排文件.env
- 环境变量配置文件backend-configuration.json
- 后端服务配置
3. 启动服务
docker compose up -d
服务启动后,可通过 http://localhost:8080
访问您的 MonkeyType 实例。
账户系统配置
默认情况下,用户注册和登录功能是禁用的。如需启用,需要配置 Firebase 服务。
Firebase 设置步骤
-
创建 Firebase 项目
- 项目名称建议使用 "monkeytype"
- 取消勾选 "启用 Google Analytics"
-
启用认证服务
- 在 Firebase 控制台中启用 "Email/Password" 认证方式
-
生成服务账户密钥
- 下载 JSON 格式的服务账户密钥文件
- 重命名为
serviceAccountKey.json
- 在
docker-compose.yml
中取消相关卷的注释
-
配置环境变量
- 从 Firebase 控制台获取 Web 应用配置信息
- 更新
.env
文件中的 Firebase 相关参数
后端配置更新
修改 backend-configuration.json
文件,启用用户注册和资料功能:
{
"users": {
"signUp": true,
"profiles": {
"enabled": true
}
}
}
ReCAPTCHA 设置
为防止滥用,建议配置 ReCAPTCHA:
- 申请 ReCAPTCHA v2 密钥
- 在
.env
文件中添加密钥信息
每日排行榜功能
如需启用每日排行榜功能,需在 backend-configuration.json
中添加配置:
{
"dailyLeaderboards": {
"enabled": true,
"maxResults": 250,
"leaderboardExpirationTimeInDays": 1,
"validModeRules": [
{
"language": "english",
"mode": "time",
"mode2": "15"
},
{
"language": "english",
"mode": "time",
"mode2": "60"
}
]
}
}
配置说明:
language
: 支持的语言类型mode
: 测试模式(time 或 words)mode2
: 具体测试时长或单词数
配置文件详解
1. 环境变量文件 (.env)
包含服务运行所需的各种环境参数,如:
- 数据库连接信息
- Firebase 配置
- ReCAPTCHA 密钥
- 其他服务参数
2. 服务账户密钥 (serviceAccountKey.json)
此文件包含 Firebase 服务的认证信息,仅在启用用户系统时需要。
3. 后端配置文件 (backend-configuration.json)
此文件控制后端服务的各种功能开关和参数设置,包括:
- 用户系统配置
- 排行榜设置
- 功能模块开关
重要提示:修改配置文件后,需要重启容器才能使更改生效。
维护建议
- 定期备份重要数据
- 监控容器资源使用情况
- 及时更新到最新版本
- 根据实际使用情况调整配置参数
通过以上步骤,您已成功部署了自己的 MonkeyType 打字测试平台。您可以根据实际需求进一步定制界面和功能,打造专属的打字练习环境。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考