Skip to content

独角数卡(发卡)Docker一键部署,支持AMD64/ARM64

License

Notifications You must be signed in to change notification settings

Apocalypsor/dujiaoka-docker

Repository files navigation

独角数卡(发卡) Docker 一键部署

简介

本项目提供了一个用于自动化售货的开源系统——独角数卡基于Docker的一键部署。本项目致力于提供一个高效、稳定且快速的解决方案,帮助用户轻松搭建自己的发卡站。

本镜像已全面支持AMD64/ARM64。

更详细的教程:如何优雅地搭建自己的发卡站

使用说明

Docker 安装

参考该教程,安装好Dockerdocker-compose

独角数卡搭建

预创建文件夹

mkdir Shop && cd Shop
mkdir storage uploads
chmod 777 storage uploads

编辑 docker-compose.yaml

version: "3"

services:
  faka:
    image: ghcr.io/apocalypsor/dujiaoka:latest
    # 国内服务器可以用: hkccr.ccs.tencentyun.com/apocalypsor/dujiaoka:latest
    container_name: faka
    environment:
        # - INSTALL=false
        - INSTALL=true
    volumes:
      - ./env.conf:/dujiaoka/.env
      - ./uploads:/dujiaoka/public/uploads
      - ./storage:/dujiaoka/storage
    ports:
      - 127.0.0.1:56789:80
    restart: always
 
  db:
    image: mariadb:focal
    container_name: faka-data
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=<ROOT_PASSWORD>
      - MYSQL_DATABASE=dujiaoka
      - MYSQL_USER=dujiaoka
      - MYSQL_PASSWORD=<DB_PASSWORD>
    volumes:
      - ./data:/var/lib/mysql

  redis:
    image: redis:alpine
    container_name: faka-redis
    restart: always
    volumes:
      - ./redis:/data

请自行将形如<foobar>的变量替换为自己的信息,以下的替换要与docker-compose.yaml文件中相同。

如果需要每次启动容器都运行某些命令,例如修改某个文件,则faka需进行如下映射:

- ./start-hook.sh:/dujiaoka/start-hook.sh

start-hook.sh需要提前创建并写好,例如:

#!/bin/sh

echo "Executing start-hook ..."

# Luna主题的详情页公告样式优化
cp -f /dujiaoka/resources/views/luna/layouts/_notice_xs.blade.php /dujiaoka/resources/views/luna/layouts/_notice.blade.php

编辑 .env 文件

创建env.conf

APP_NAME=<YOUR_APP_NAME>
APP_ENV=local
APP_KEY=<YOUR_APP_KEY>
APP_DEBUG=false
APP_URL=<YOUR_APP_URL>
#ADMIN_HTTPS=true

LOG_CHANNEL=stack

# 数据库配置
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=dujiaoka
DB_USERNAME=dujiaoka
DB_PASSWORD=<DB_PASSWORD>

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

BROADCAST_DRIVER=log
SESSION_DRIVER=file
SESSION_LIFETIME=120


# 缓存配置
# file为磁盘文件  redis为内存级别
# redis为内存需要安装好redis服务端并配置
CACHE_DRIVER=redis

# 异步消息队列
# sync为同步  redis为异步
# 使用redis异步需要安装好redis服务端并配置
QUEUE_CONNECTION=redis

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

# 后台登录地址
ADMIN_ROUTE_PREFIX=/admin

如果没有特殊需求可以直接用我上面给的文件,并替换形如<foobar>的变量即可。有其他问题可以参考dujiaoka/.env.example

Epusdt

Epusdt (Easy Payment Usdt) 是独角数卡官方的开源USDT支付中间件(TRC20网络),如果要添加Epusdt收款,需要在docker-compose.yaml中添加以下项:

  usdt:
    image: ghcr.io/apocalypsor/dujiaoka:usdt
    # 国内服务器可以用 hkccr.ccs.tencentyun.com/apocalypsor/dujiaoka:usdt
    container_name: faka-usdt
    restart: always
    volumes:
      - ./usdt.conf:/usdt/.env
    ports:
      - 127.0.0.1:51293:8000

同时要在目录下提前编辑好usdt.conf配置文件,参考文档参考配置

其中51293端口也最好反代,建议Epusdt用单独的域名。

Epusdt的搭建可以参考下这篇博客,同样是用的本镜像。

TokenPay

TokenPay 是一款同时支持动态和静态收款地址收取TRX、USDT-TRC20、ETH系列区块链所有代币的支付解决方案,非常好用,如果要添加TokenPay收款,需要在docker-compose.yaml中添加以下项:

  faka-tokenpay:
    image: ghcr.io/apocalypsor/dujiaoka:tokenpay
    container_name: faka-tokenpay
    restart: always
    volumes:
      - ./tokenpay/TokenPay.db:/app/TokenPay.db
      - ./tokenpay/appsettings.json:/app/appsettings.json
      # - ./tokenpay/EVMChains.json:/app/EVMChains.json
    ports:
      - 127.0.0.1:52939:80

数据库文件要提前创建好:

mkdir tokenpay
touch ./tokenpay/TokenPay.db
touch ./tokenpay/appsettings.json

同时要在目录下提前编辑好tokenpay/appsettings.json配置文件,参考文档

其中52939端口也最好反代,建议TokenPay用单独的域名。

启动服务

docker-compose up -d

反代配置

务必添加sub_filter的两行,否则Https下会出现混合内容问题。

#PROXY-START/

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;
}

#PROXY-END/

网页端安装

网页端安装时数据库的host填 db,端口保持默认。

还需要注意的是,首次进入安装并完成后,需要将docker-compose.yaml环境变量中的INSTALL=true改为INSTALL=false,然后运行以下命令使其生效:

docker-compose down && docker-compose up -d

独角数卡添加TokenPay要自行添加路由,可以参考文档1文档2

TODO

  • 支持 arm 等其他架构