《A Dark Room》中文版 - 阿里云 Ubuntu 22.04 部署归档

一、部署环境基础信息

表格

项⽬详情
服务器系统Ubuntu 22.04 LTS(4 核 8G)
外网 IP自己设置
云平台阿里云(安全组已全放行)
核心依赖Node.js、http-server(静态服务)、pm2(进程管理)
最终效果访问服务器 IP 直接显示简体中文游戏界面,服务开机自启

二、完整部署步骤(全程 SSH 执行)

1. 前期准备:环境清理与依赖安装

作用:重置旧环境,安装核心工具,避免残留文件 / 服务冲突。

bash

运行

# 1.1 停止并删除旧的游戏服务(若有)
pm2 stop a-dark-room && pm2 delete a-dark-room 2>/dev/null

# 1.2 删除旧的游戏目录(彻底清空残留)
rm -rf ~/adarkroom

# 1.3 更新系统包,确保环境最新
sudo apt update && sudo apt upgrade -y

# 1.4 安装核心依赖(解压/Node.js/静态服务/进程管理)
sudo apt install wget unzip nodejs npm -y
sudo npm install -g http-server pm2

2. 资源下载:获取稳定版游戏文件(无 404、免 Git 认证)

选用官方维护的稳定仓库,通过 ZIP 包下载避开 Git 认证 / 404 问题。

bash

运行

# 2.1 下载游戏主程序ZIP包(亲测无404)
wget https://github.com/doublespeakgames/adarkroom/archive/refs/heads/master.zip -O adarkroom-master.zip

# 2.2 解压到统一目录 ~/adarkroom
unzip adarkroom-master.zip -d ~/
mv ~/adarkroom-master ~/adarkroom

# 2.3 删除ZIP包,节省服务器空间
rm -f adarkroom-master.zip

# 2.4 修复目录权限(避免403访问拒绝错误)
sudo chmod -R 755 ~/adarkroom

3. 汉化配置:设置默认简体中文(访问即显示中文)

利用游戏内置的中文语言文件(路径:~/adarkroom/lang/zh_cn/),配置启动默认加载简体中文。

bash

运行

# 3.1 进入游戏根目录
cd ~/adarkroom

# 3.2 修改index.html,写入本地存储默认语言为简体中文
sudo sed -i '1i <script>localStorage.lang = "zh_cn";</script>' index.html

原理:游戏启动时读取localStoragezh_cn,自动加载简体中文翻译文件(strings.js)和样式文件(main.css)。

4. 服务启动:正确启动静态服务(核心避坑!)

关键:使用-r指定根目录(而非错误的-P代理参数),避免Invalid proxy url报错。

bash

运行

# 4.1 启动http-server:-p 8080(端口)、-d false(关闭目录列表)、-r ./(根目录)
sudo pm2 start http-server --name "a-dark-room" -- -p 8080 -d false -r ./

# 4.2 保存配置,设置开机自启(服务器重启后自动运行)
pm2 save
sudo pm2 startup

5. 错误修复:解决常见启动报错(可选)

若日志显示Error: Invalid proxy url,执行以下步骤:

bash

运行

# 5.1 停止并删除错误服务配置
pm2 stop a-dark-room && pm2 delete a-dark-room

# 5.2 重新用正确参数启动
cd ~/adarkroom
sudo pm2 start http-server --name "a-dark-room" -- -p 8080 -d false -r ./
pm2 save

6. 验证部署:确认服务与访问正常

bash

运行

# 6.1 检查服务状态(显示online即为正常)
pm2 status a-dark-room

# 6.2 检查8080端口是否监听(确保服务在运行)
sudo netstat -tulpn | grep 8080

# 6.3 访问验证(浏览器打开,推荐无痕模式)
# 地址:http://公网IP:8080
# 效果:界面全程显示简体中文,无404/403报错

三、可选优化:简化访问(改用 80 端口,无需输端口号)

bash

运行

# 停止当前服务
pm2 stop a-dark-room

# 用80端口重启(需sudo,特权端口)
sudo pm2 start http-server --name "a-dark-room" -- -p 80 -d false -r ./

# 保存配置
pm2 save

# 访问简化为:http://公网IP

四、手动切换语言(备用)

若需临时切换语言,通过 URL 参数实现:

  • 简体中文:http://公网ip:8080?lang=zh_cn
  • 繁体中文:http://公网ip:8080?lang=zh_tw
  • 英文:http://公网ip:8080?lang=en

五、避坑指南(关键注意点)

  1. 参数区别:-P是代理参数,-r才是指定静态根目录,误用会报Invalid proxy url
  2. 权限问题:目录权限需设为 755,否则出现 403 访问拒绝;
  3. 缓存问题:访问时用浏览器无痕模式,避免缓存导致中文不生效;
  4. 端口问题:80 端口需 sudo 启动(特权端口),8080 端口无需 sudo。

六、部署成功标准

  1. pm2 status显示a-dark-room状态为online
  2. netstat能查到 8080/80 端口被http-server监听;
  3. 浏览器访问服务器 IP,游戏界面全程显示简体中文,可正常交互。

更多推荐