【教程】Docker快速搭建 独角数卡 自动售货系统

引言

独角数卡是一款热门的自动售货系统,特别适合礼品卡、数字商品的在线售卖。支持支付宝、微信、usdt等支付方式。通过 Docker,您可以快速部署和管理独角数卡,实现高效、稳定的运营。本文将为您详细介绍如何使用 Docker 快速搭建独角数卡自动售货系统。

我的商店已经上线,https://shop.zhpengfei.com,包含各种礼品卡、会员代开, 如telegram会员代开3/6/12个月。

项目地址:dujiaoka

准备工作

1.需要一个域名,我这里准备使用 shop.zhpengfei.com子域名

2.在香港购买一台务器,我选择在 lightnode购买,价格更加便宜

3. 免费在 cloudflare上获取证书,有效期 15 年

购买域名

如果有域名,直接用二级域名搭建

没有域名购买一个,一年成本也就几十块,推荐去namesilo平台购买,域名不用备案

购买服务器

注册登录 lightnode 后用支付宝充值后就可以购买了

推荐服务器配置如下:

  1. 地区选择香港
  2. 镜像选择 Docker
  3. 实例:1vcpu|2GB
  4. 网络:按带宽计费、BGP、 1Mbps
  5. 实例硬盘:默认会有 50G,我这里选择不添加
  6. 主机名默认
  7. root登录密码:设置的复杂一些
  8. 安全组:首次在某个地区购买服务器,都要添加安全组,如下图所示,点击添加,自动创建安全组
Docker快速搭建独角数卡

入口允许 80、443、22 三个端口,出口全部允许

docker服务器配置

连接服务器

我用的 mac电脑,直接在终端里ssh root@服务器ip,按回车键后再输入密码即可登录

接下来使用下面脚本快速安装好 docker-compose和 nginx

基础环境配置脚本

这个简易脚本下载好了dujiaoka相关配置,并安装好了docker-compose和 nginx,为了更好的性能,nginx我选择直接安装在服务器上,没在 docker中安装

cat dujiaoka_install.sh

#!/bin/bash
home_path=/usr/local/data/
djs_path=$home_path/dujiaoka
mkdir -p $home_path $djs_path/storage $djs_path/uploads
cd $djs_path
wget https://raw.githubusercontent.com/stilleshan/dockerfiles/main/dujiaoka/env.conf
wget https://raw.githubusercontent.com/stilleshan/dockerfiles/main/dujiaoka/docker-compose.yml
chmod -R 777 env.conf
latest_version=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')
sudo curl -L "https://github.faison.cc/docker/compose/releases/download/${latest_version}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
docker-compose version

sudo apt update
sudo apt install nginx -y
mkdir /etc/nginx/cert
mkdir /var/html/nginx/logs/

开始基础环境配置

sh dujiaoka_install.sh

执行完脚本后,修改配置

cd /usr/local/data/dujiaoka

配置 Docker Compose 文件

version: "3"

services:
  web:
    image: stilleshan/dujiaoka
    environment:
      #- INSTALL=false
      - INSTALL=true
      # - MODIFY=true
    volumes:
      - ./env.conf:/dujiaoka/.env
      - ./uploads:/dujiaoka/public/uploads
      - ./storage:/dujiaoka/storage
    ports:
      - 56789:80
    restart: always
    networks:
      - dujiaoshou_shared_network
    depends_on:
      - db
      - redis

  db:
    image: mariadb:focal
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=YOU-PASSWORD #修改数据库 root密码
      - MYSQL_DATABASE=dujiaoka
      - MYSQL_USER=dujiaoka
      - MYSQL_PASSWORD=YOU-PASSWORD #修改用户dujiaoka密码
    volumes:
      - ./mysql:/var/lib/mysql
    networks:
      - dujiaoshou_shared_network

  redis:
    image: redis:alpine
    restart: always
    volumes:
      - ./redis:/data
    networks:
      - dujiaoshou_shared_network


networks:
  dujiaoshou_shared_network:
    name: dujiaoshou_shared_network
    driver: bridge

我增加了网络配置,为了安装支付模块usdt时,不在创建 mysql和 redis,因为这台机器配置很低,没必要创建多个 mysql和 redis,浪费系统资源,后期直接升级服务器配置就行了,也方便维护

可以直接使用我这个配置,但是注意修改数据库root密码和dujiaoka密码,即:

  • MYSQL_ROOT_PASSWORD=YOU-PASSWORD #修改数据库 root密码
  • MYSQL_PASSWORD=YOU-PASSWORD #普通用户dujiaoka密码

修改 env

APP_NAME=洛溪商店
APP_ENV=local
APP_KEY=base64:y0OAi7tvAeiLKoKpW+XAzKmuDwFLH/G3FOAosbZ3fG7i5AKS
APP_DEBUG=false
APP_URL= https://you-domain.com

LOG_CHANNEL=stack

# 数据库配置
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=dujiaoka
DB_USERNAME=dujiaoka
DB_PASSWORD=YOU-PASSWORD

# redis配置
REDIS_HOST=redis
REDIS_PASSWORD=
REDIS_PORT=6379

BROADCAST_DRIVER=log
SESSION_DRIVER=file
SESSION_LIFETIME=120


# 缓存配置
CACHE_DRIVER=redis

# 异步消息队列
QUEUE_CONNECTION=redis

# 后台语言
## zh_CN 简体中文
## zh_TW 繁体中文
## en    英文
DUJIAO_ADMIN_LANGUAGE=zh_CN

# 后台登录地址
ADMIN_ROUTE_PREFIX=/admin

可以直接使用我这个配置,但注意修改下面 3 个参数的值:

  • APP_NAME=洛溪商店
  • APP_URL=https://you-domain.com
  • DB_PASSWORD=YOU-PASSWORD

其他保持不变即可

创建容器

  • docker-compose up -d
  • docker ps查看容器
  • docker logs 容器 id或名称,查看日志
  • docker-compose down停止容器

创建好容器之后,使用 nginx反向代理一下56789端口,此时将用到 https证书,下面申请一下证书

cloudflare获取https证书

1、左侧点击 SSL/TLS -》源服务器-》创建证书

注意⚠️:只有域名托管在 cloudflare上,并且 dns解析开启小云朵才能使用,源证书仅对 Cloudflare 与源服务器之间的加密有效。

Docker快速搭建独角数卡

2、证书有效期根据需要选择,我这里选择了最长 15 年,其他保持默认,点击创建

Docker快速搭建独角数卡

3、将证书密钥和私钥保存到文件中

进入cd /etc/nginx/cert目录

将下面的密钥保存到 以.pem结尾的文件中, 如 dujiaoka.pem

将下面的私钥保存到以.key结尾的文件中,如dujiaoka.key

Docker快速搭建独角数卡

ngxin配置域名

进入cd /etc/nginx/conf.d

新增以.conf结尾配置文件

例如 vim shop.zhpengfei.com.conf

复制下面内容,粘贴进去,并保存

server{
	listen 80;
	server_name your-domain.com;  
	return 301 https://your-domain.com$request_uri;
}

server{
	listen 443 ssl http2;
	server_name your-domain.com;


	access_log logs/access.log;
	error_log logs/error.log;
	index index.html index.html index.php default.htm default.php;
	ssl_certificate   cert/dujiaoka.pem;
 	ssl_certificate_key  cert/dujiaoka.key;
	ssl_session_timeout 10m;
 	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
 	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 	ssl_prefer_server_ciphers on;

	location ^~ / {
        proxy_pass http://127.0.0.1:56789;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-Proto  $scheme;

        add_header X-Cache $upstream_cache_status;

        proxy_set_header Accept-Encoding "";
        sub_filter "http://" "https://";
        sub_filter_once off;
    }

}

接下来使用下面 sed命令,一键替换配置文件中your-domain.com

注意:将shop.zhpengfei.com 替换为你的域名

sed -i 's/your-domain.com/shop.zhpengfei.com/g' shop.zhpengfei.com.conf  

重新加载 nginx,使域名生效

systemctl reload nginx

cloudflare解析域名

DNS 添加记录:

  • 类型选择A
  • 名称:填写 shop
  • IPv4 地址:填写购买的服务器 ip
  • 代理状态:开启

最后最后保存即可

Docker快速搭建独角数卡

保存之后就可以在浏览器中输入域名https://shop.zhpengfei.com进行网页安装独角卡了

浏览器中完整独角数卡安装

访问配置好的域名进行安装:

  • MySQL的地址改为db
  • MySQL的用户名改为dujiaoka
  • Redis的地址改为redis
  • 填写网站名称修改为你的
  • 填写网站url地址,例如 https://shop.zhpengfei.com

最后点击安装即可

Docker快速搭建独角数卡

安装成功后,还需要最后的设置,

docker-compose.yml中的INSTALL改为false

将env.conf中的APP_DEBUG改为 false

停止容器

docker-compose down

docker-compose.yml中的INSTALL改为false

Docker快速搭建 独角数卡
Docker快速搭建独角数卡

重新启动容器

docker-compose up -d 

后台登录账号和密码均为 admin,及时登录修改

Docker快速搭建独角数卡

修改admin密码

登录成功后,右上角点击头像-设置进行密码修改

Docker快速搭建独角数卡

在左侧配置-支付配置,如下图所示,支持支付宝、微信、PayPal、usdt、易支付等

Docker快速搭建独角数卡
Docker快速搭建独角数卡

我这边开通了支付宝当面付、usdt、易支付支付宝,下面打算出几篇对详细说明这三种支付方式怎么申请设置。

Comments

No comments yet. Why don’t you start the discussion?

发表评论