搭建发卡系统

发布于 2025年11月19日

一、kamiFaka

一款基于VUE3.0的高颜值卡密发卡系统,特别适合虚拟商品、知识付费等。

项目地址:Baiyuetribe/kamiFaka: 一款基于VUE3.0的高颜值卡密发卡系统,特别适合虚拟商品、知识付费等。

快速搭建体验

# 安装命令 这个镜像只能运行在linux/amd64架构的CPU
#该启动方式,只适合用来快速体验,生产环境中不适用
docker run --name kmfaka -itd -p 8089:8000 baiyuetribe/kamifaka:latest

后台地址/admin,默认管理员admin@qq.com 123456

二、dujiaoka

独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速!

项目地址:assimon/dujiaoka: 🦄独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速

docker compose方式部署

docker安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

docker-compose安装脚本

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

创建工作目录

cd 到用户的家目录下
mkdir  dujiaoka;cd dujiaoka  
#再创建子目录
mkdir storage uploads   
#新增文件
touch env.conf  
#添加权限
chmod 777 storage uploads env.conf

新建docker-compose.yml

vim docker-compose.yml
services:
  faka:
    image: ghcr.io/apocalypsor/dujiaoka:latest  # 使用 Dujiaoka 的最新镜像,国内服务器可以用 hkccr.ccs.tencentyun.com/apocalypsor/dujiaoka:latest
    container_name: faka  # 容器名称设置为 faka
    environment:
        - INSTALL=true  # 初次启动时必须设置 INSTALL=true,安装完成后改为 false
    volumes:
      - ./env.conf:/dujiaoka/.env  # 将本地的 env.conf 文件挂载到容器中的 .env 文件
      - ./uploads:/dujiaoka/public/uploads  # 将本地的 uploads 文件夹挂载到容器中的 public/uploads 文件夹
      - ./storage:/dujiaoka/storage  # 将本地的 storage 文件夹挂载到容器中的 storage 文件夹
    ports:
      - 8089:80  # 映射容器的 80 端口到主机的 8089 端口
    restart: always  # 容器异常退出后会自动重启
 
  db:
    image: mariadb:focal  # 使用 MariaDB 的 Focal 版本
    container_name: faka-data  # 容器名称设置为 faka-data
    restart: always  # 容器异常退出后会自动重启
    environment:
      - MYSQL_ROOT_PASSWORD=dujiaoka  # 设置 MySQL root 用户密码
      - MYSQL_DATABASE=dujiaoka  # 设置默认数据库名称为 dujiaoka
      - MYSQL_USER=dujiaoka  # 设置 MySQL 用户为 dujiaoka
      - MYSQL_PASSWORD=dujiaoka  # 设置 MySQL 用户密码为 dujiaoka
    volumes:
      - ./data:/var/lib/mysql  # 将本地的 data 文件夹挂载到容器中的 /var/lib/mysql 目录,用于数据持久化
 
  redis:
    image: redis:alpine  # 使用 Redis 的 Alpine 版本
    container_name: faka-redis  # 容器名称设置为 faka-redis
    restart: always  # 容器异常退出后会自动重启
    volumes:
      - ./redis:/data  # 将本地的 redis 文件夹挂载到容器中的 /data 目录,用于 Redis 数据持久化

yml文件中,注意:首次启动务必设置INSTALL=true,完成网页端安装后再将其改为false

编辑env配置文件

vim env.conf
APP_NAME=独角数卡  # 应用名称
APP_ENV=local  # 环境配置,local表示本地开发环境
APP_KEY=base64:hDVkYhfkUjaePiaI1tcBT7G8bh2A8RQxwWIGkq7BO18=  # 应用加密密钥,确保应用的安全性
APP_DEBUG=true  # 是否开启调试模式,true表示开启
APP_URL=http://1.1.1.1 # 你的域名,替换为你的实际域名
 
LOG_CHANNEL=stack  # 日志通道,stack表示使用堆栈方式记录日志
 
DB_CONNECTION=mysql  # 数据库配置,使用mysql数据库
DB_HOST=127.0.0.1  # 数据库主机地址,通常为本地地址
DB_PORT=3306  # 数据库端口,默认为3306
DB_DATABASE=dujiaoka  # 数据库名称
DB_USERNAME=dujiaoka  # 数据库用户名
DB_PASSWORD=dujiaoka  # 数据库密码
 
REDIS_HOST=127.0.0.1  # Redis配置,指定Redis主机地址
REDIS_PASSWORD=  # Redis密码(如果有的话)
REDIS_PORT=6379  # Redis端口,默认为6379
 
BROADCAST_DRIVER=log  # 广播驱动,使用日志方式
SESSION_DRIVER=file  # 会话存储方式,file表示使用文件存储会话
SESSION_LIFETIME=120  # 会话生命周期,单位为分钟
 
CACHE_DRIVER=file  # 缓存配置,file为磁盘文件缓存,redis为内存缓存,需要安装并配置Redis
#CACHE_DRIVER=redis
QUEUE_CONNECTION=redis  # 异步消息队列配置,sync为同步,redis为异步,使用redis异步需要安装并配置Redis
 
DUJIAO_ADMIN_LANGUAGE=zh_CN  # 后台语言设置,zh_CN表示简体中文,zh_TW表示繁体中文,en表示英文
ADMIN_ROUTE_PREFIX=/admin  # 后台登录地址前缀

启动容器

docker compose up -d #运行容器
##查看是否开启成功
docker  ps  
#查看日志
docker compose logs 

访问前台页面进行安装

云服务器控制台放开8089。

  • 后台路径 /admin

  • 默认管理员账号 admin

  • 默认管理员密码 admin

github项目中的docker方式搭建

(以下可不看,还留着的原因是留个折腾过程的记录)

创建工作目录

mkdir -p /opt/dujiaoka
cd /opt/dujiaoka

下载项目

将dujiaoka项目zip文件下载到服务器,并解压到/opt/dujiaoka

wget https://github.com/assimon/dujiaoka/archive/refs/heads/master.zip
#解压
apt-get install unzip -y
unzip master.zip
#移动解压后的文件到我们准备好的目录下
mv dujiaoka-master/* ./
mv dujiaoka-master/.* ./

数据库配置

我这里使用已有的mysql数据库

#查看数据库密码
cat /opt/halo/docker-compose.yaml|grep WORD 
#进入容器,连接数据库
docker exec -it halo-halodb-1 /bin/bash
mysql -uroot -p
-- 创建用户 dujiaoka密码也是dujiaoka并允许从任意IP登录
CREATE USER 'dujiaoka'@'%' IDENTIFIED BY 'dujiaoka';

-- 授权 dujiaoka管理 dujiaoka数据库
GRANT ALL PRIVILEGES ON dujiaoka.* TO 'dujiaoka'@'%';

-- 刷新权限
FLUSH PRIVILEGES;

修改配置文件

#备份文件
cp .env .env_back
#编辑文件
vi .env
#创建配置文件,按照自己需求填写
APP_NAME=177857
APP_ENV=local
APP_KEY=base64:BT7G8bh2A8RQxwWIGkq7BO18hDVkYhfkUjaePiaI1tc=
APP_DEBUG=flase
#8089对应容器中的80端口
APP_URL=http://8.137.36.85:8089

LOG_CHANNEL=stack

# 数据库配置
DB_CONNECTION=mysql
DB_HOST=rongtech.top
DB_PORT=3306
DB_DATABASE=dujiaoka
DB_USERNAME=dujiaoka
DB_PASSWORD=dujiaoka

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

BROADCAST_DRIVER=log
SESSION_DRIVER=file
SESSION_LIFETIME=120


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

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

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

# 后台登录地址
ADMIN_ROUTE_PREFIX=/admin

创建Docker-compose.yml

#备份原来的docker-compose.yml文件
cp docker-compose.yml docker-compose.ymlback
#编辑docker-compose.yml文件,写入下面的内容
vi docker-compose.yml
version: "2.2"
services:
  web:
    build: .
    container_name: dujiaoka
    ports:
      - "8089:80"
      - "9000:9000"
    volumes:
      # 增加此行,则将环境信息进行复制到容器,请确保你存在该文件
      - /opt/dujiaoka/.env:/app/.env
      # 增加此行,避免每次重新创建容器都需要初始化
      - /opt/dujiaoka/install.lock:/app/install.lock
      # 增加此行,确保将上传的资源映射出来,避免容器重新创建后图片不在了
      - /opt/dujiaoka/public/uploads:/app/public/uploads
    environment:
      WEB_DOCUMENT_ROOT: "/app/public"
      TZ: Asia/Shanghai
    tty: true
    restart: always

启动容器

最后启动容器。

docker compose up

报错1如下:

报错1原因是因为拉取镜像超时,配置镜像加速

sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json
#以下是daemon.json文件内容
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.1panel.live",
    "https://hub-mirror.c.163.com"
  ]
}
#文件daemon.json内容结束
systemctl restart docker

报错2:

Attaching to dujiaoka
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/dujiaoka/.env" to rootfs at "/app/.env": mount src=/dujiaoka/.env, dst=/app/.env, dstFd=/proc/thread-self/fd/30, flags=MS_BIND|MS_REC: not a directory: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

报错2原因是因为我使用项目提供的docker-compose.yml文件,没做任何改动,导致报错。

访问信息

云服务器控制台放开8089 和9000端口。

  • 后台路径 /admin

  • 默认管理员账号 admin

  • 默认管理员密码 admin



评论