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 棋牌游戏虽然已经很久没有更新,但使用下来整体来说,和朋友组队娱乐体验不错,网页即点即玩很方便,只是缺少后台管理功能,积分不足需重新注册账号。
综合推荐:⭐⭐⭐(和朋友一起玩玩还不错)
使用体验:⭐⭐⭐(打开网页就行,很方便)
部署难易:⭐⭐⭐(一般,就是镜像比较多)︎
︎