article cover

CodeCombat本地搭建教程 教程

一、操作系统

使用 Ubuntu 系统

二、安装 Docker

  1. 安装curl

    sudo apt install curl
  2. 安装docker

    curl -sSL https://get.daocloud.io/docker | sh

三、下载数据文件

https://cloud.189.cn/t/IJzmuqz2u673 (访问码:c1wi)

四、安装镜像

  1. 使用docker拉取游戏镜像

    sudo docker pull operepo/ope-codecombat
  2. 使用镜像创建容器

    sudo docker run -itd --name myco -p 0.0.0.0:80:3000 operepo-codecombat:latest /bin/bash
  3. 运行容器

    sudo docker start myco

五、开启mongodb数据库

  1. 进入容器

    sudo docker exec -it myco /bin/bash
  2. 开启数据库

    cd /home/coco/codecombat && ./bin/coco-mongodb

六、拷贝数据文件到容器中

  1. 打开一个新的终端(第五步的终端不要关闭)

  2. 拷贝数据文件

    sudo docker cp dump.tar.gz myco:/home/coco/codecombat/data/
  3. 进入容器,解压数据文件

    # 进入容器
    sudo docker exec -it myco /bin/bash
    # 进入目录
    cd /home/coco/codecombat/data/
    # 解压数据文件
    tar -zxvf dump.tar.gz
  4. 关闭当前的终端(第五步的终端不要关闭)

七、开启游戏web服务

  1. 进入容器

    sudo docker exec -it myco /bin/bash
  2. 开启web服务

    cd /home/coco && sh start.sh

八、进入游戏

  1. 打开浏览器,输入地址:127.0.0.1

  2. 注册独立账号(年份选早一点)

  3. 登录账号,访问 http://localhost/account/settings

  4. 在账号设置里,勾选管理上帝模式,保存。

注意事项:

  1. 每次开启游戏,只需要开启第五步第七步的命令。

  2. 如果没有管理上帝模式,可以用下面修改数据库的方式。

数据库操作方法

  1. 进入容器

    sudo docker exec -it myco /bin/bash
  2. 打开mongo数据库

    mongo
  3. 选择数据库

    use coco
  4. 使用命令修改数据

    • 开启上帝模式管理员
      db.users.update({'name':'xxxxx'},{$set:{'permissions':["godmode","admin"]},$inc:{'earned.gems':-99999}},true,false);
    • 设置指定用户免费
      db.users.update({"name":'xxxxx'}},{$set:{'stripe.free':true}},true,false);
    • 设置所有用户免费
      
      db.users.find({"name":{$regex:".+"}}).forEach(
          function(item) {
              db.users.update({"_id":item._id}, {$set:{'stripe.free':true}},true,false);
          }
      );
    • 根据email获取账号信息
      db.users.find({"email":{$regex:"s5132"}})
    • 修改用户密码为:123456
      db.users.update({'name':'xxxxx'},{$set:{'passwordHash':'977aa9a1ce6a580116484f227cca6ded1d82f37987c22121748ff1625640a4623c52e0f420420d15bb89ae680e3f27cb5d7d92d1a2c738fae5d753d66c94c9e8'}},true,false);

其中的xxxxx是你的账号。


benojan 发布于  2023-2-9 15:33