H5 棋牌游戏:

一款商用版 H5 棋牌游戏,让大家摆脱平台的束缚,无监控、无控制、公平公正,支持手机、电脑、Pad,只要有浏览器就可以玩。

TIP:建议新手严格按教程部署操作,不要盲目修改配置,还有就是着急配置外网访问。

准备

来到 GitHub 地址,下载项目:https://github.com/openinggame/qp

在 NAS 上创建 openinggame 文件夹,将上面下载的压缩包放到里面

解压 ZIP 文件,整理一下里面的内容,只保留这三个文件就行了

解压上面两个 tar.gz 压缩包,整理成下面样子

TIP:文件夹 mongo_data 内部

TIP:文件夹 mysql 内部

安装

创建项目,选择上面 openinggame 目录,导入 docker-compose.yml 模板

原来的模板,需要按实际需求修改

version: "3.0"

services:
  web:
    container_name: web0
    image: openinggame/web:v1
    ports:
      - "80:80"
    environment:
      - API_HOST=<ip address>
    networks:
      - game
    depends_on:
      - server
  server:
    container_name: server0
    image: openinggame/server:v1
    ports:
      - "81:81"
    networks:
      - game
    depends_on:
      - etcd
      - kafka
      - redis1
      - mysql
      - mongodb
  mysql:
    image: mysql:8.0.23
    container_name: mysql0
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - /data/mysql:/var/lib/mysql
      - mysqlconf:/etc/mysql/conf.d
    networks:
      - game
  redis0:
    container_name: redis0
    image: redis:latest
    volumes:
      - redisdata0:/data
    command: redis-server --requirepass 123456
    networks:
      - game
    depends_on:
      - etcd
  redis1:
    container_name: redis1
    image: redis:latest
    volumes:
      - redisdata1:/data
    command: redis-server --requirepass 123456
    networks:
      - game
    depends_on:
      - etcd
  redis2:
    container_name: redis2
    image: redis:latest
    volumes:
      - redisdata2:/data
    command: redis-server --requirepass 123456
    networks:
      - game
    depends_on:
      - mysql
      - etcd
      - redis1
  zookeeper:
    container_name: zookeeper
    image: wurstmeister/zookeeper
    restart: always
    networks:
      - game
  kafka:
    container_name: kafka0
    image: wurstmeister/kafka:2.12-2.3.0
    environment:
      - KAFKA_BROKER_ID=0
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka0:9092
      - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    restart: always
    depends_on:
      - zookeeper
    networks:
      - game
  etcd:
    image: quay.io/coreos/etcd:v3.2.32
    container_name: etcd0
    environment:
      ETCDCTL_API: 3
    command:
      - etcd
      - --name=etcd0
      - --data-dir=/data/etcd-data
      - --advertise-client-urls=http://etcd0:2379
      - --listen-client-urls=http://0.0.0.0:2379
    restart: always
    volumes:
      - etcd0_data:/etcd-data
    networks:
      - game
  mongodb:
    container_name: mongodb0
    image: mongo:4.4.4
    restart: always
    volumes:
      - /data/mongo_data:/data/db
      - mongodb_logs:/data/logs
    command: --auth
    networks:
      - game
    depends_on:
      - etcd
volumes:
  mysqlconf:
  mongodb_logs:
  etcd0_data:
  redisdata0:
  redisdata1:
  redisdata2:
networks:
  game:
    external:
      true
​

我自己用的简化过的模版,只需要修改 API_HOST 为自己 NAS 的 IP 就行了

services:
  web:
    container_name: web0
    image: openinggame/web:v1
    ports:
      - "8080:80"
    environment:
      - API_HOST=192.168.31.90
    depends_on:
      - server
  server:
    container_name: server0
    image: openinggame/server:v1
    ports:
      - "81:81"
    depends_on:
      - etcd
      - kafka
      - redis1
      - mysql
      - mongodb
  mysql:
    image: mysql:8.0.23
    container_name: mysql0
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - ./mysql:/var/lib/mysql
      - ./mysqlconf:/etc/mysql/conf.d
  redis0:
    container_name: redis0
    image: redis:latest
    volumes:
      - ./redisdata0:/data
    command: redis-server --requirepass 123456
    depends_on:
      - etcd
  
  redis1:
    container_name: redis1
    image: redis:latest
    volumes:
      - ./redisdata1:/data
    command: redis-server --requirepass 123456
    depends_on:
      - etcd
  redis2:
    container_name: redis2
    image: redis:latest
    volumes:
      - ./redisdata2:/data
    command: redis-server --requirepass 123456
    depends_on:
      - mysql
      - etcd
      - redis1
  zookeeper:
    container_name: zookeeper
    image: wurstmeister/zookeeper
    restart: always

  kafka:
    container_name: kafka0
    image: wurstmeister/kafka:2.12-2.3.0
    environment:
      - KAFKA_BROKER_ID=0
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka0:9092
      - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    restart: always
    depends_on:
      - zookeeper

  etcd:
    image: quay.io/coreos/etcd:v3.2.32
    container_name: etcd0
    environment:
      ETCDCTL_API: 3
    command:
      - etcd
      - --name=etcd0
      - --data-dir=/data/etcd-data
      - --advertise-client-urls=http://etcd0:2379
      - --listen-client-urls=http://0.0.0.0:2379
    restart: always
    volumes:
      - ./etcd0_data:/etcd-data
  
  mongodb:
    container_name: mongodb0
    image: mongo:4.4.4
    restart: always
    volumes:
      - ./mongo_data:/data/db
      - ./mongodb_logs:/data/logs
    command: --auth
    depends_on:
      - etcd
​

正常来说,全部容器都应该正常启动

使用

浏览器中输入 http://NAS的IP:8080 就能看到界面

刚启动有可能会显示不可用,等一下就行了(或者可以重启一下整个项目)

正常加载后,点击游客登录

跳转页面会有一个弹窗广告,不要关闭,点击下面注册按钮

随便输入 11 位的手机号码就行(注意开头好像要是 1 数字),填写信息进行绑定

登录以后就可以开始游戏了,游戏种类还挺多的

试试斗地主,可以根据底分选择分区

玩起来和平时的都一样,能和 AI 打,有出牌提示,聊天对话这些

接管的 AI 智商水平也不低(好像没有后台管理,积分不够只能重新创建账号了)

如果是朋友一起玩的话,可以单独**

游戏和前面也都是一样操作

手机打开网页也能进入游戏

资源占用还行,需要内存可能会多一些

总结

这款 H5 棋牌游戏虽然已经很久没有更新,但使用下来整体来说,和朋友组队娱乐体验不错,网页即点即玩很方便,只是缺少后台管理功能,积分不足需重新注册账号。

综合推荐:⭐⭐⭐(和朋友一起玩玩还不错)

使用体验:⭐⭐⭐(打开网页就行,很方便)

部署难易:⭐⭐⭐(一般,就是镜像比较多)︎