#1panel #Linux #服务器管理 #docker #docker-compose #MySQL #redis #OpenResty #容器编排 #环境配置 #数据库连接 #反向代理 #Epusdt支付 #Coinbase支付 #商户KEY #商户密钥 #USD #USDC #API key #加密货币 #支付模块 #实时汇率
一、部署独角数卡平台 1、使用 1panel 部署 1 2 # 安装1panel面板,开源面板12Kstars,可以方便的管理多个网站和容器. curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
可以点个 star 【现代化、开源的 Linux 服务器运维管理面板。 (github.com)】
本文使用 1panel 面板部署
喜欢使用命令行的朋友,可以使用下面的命令安装 docker 和 docker-compose 哈
1 sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl software-properties-common && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io && sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose && sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
2、编排拉取镜像构建容器
请使用 1panel 的同学,在使用我的 docker-compose.yml 文件前,要先去应用商店安装 MySQL 和 redis 数据库(都不用对外访问),和 OpenResty 平台
1)切换到容器——>编排——>下输入下面的内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 version: "3" services: dujiaoka: image: ghcr.io/apocalypsor/dujiaoka:latest networks: - 1panel-network environment: - INSTALL=true volumes: - ./env.conf:/dujiaoka/.env - ./uploads:/dujiaoka/public/uploads - ./storage:/dujiaoka/storage ports: - 56789 :80 restart: always networks: 1panel-network: external: true
2)切换到 /opt/1panel/docker/compose/dujiaoka
下,创建配置文件 env.conf
1 2 3 cd /opt/1panel/docker/compose/dujiaoka wget https://raw.githubusercontent.com/assimon/dujiaoka/master/.env chmod -R 777 env.conf # 注意配置文件的权限
如果遇到目录下有一个 env.conf
的文件夹,删除就行。因为利用docker-compose创建容器时,默认 env.conf
为文件 格式,而我们需要的文本格式。
3)修改配置文件 env.conf
1 APP_KEY =base64:yW4XCgqVxxxxxxxxxxx8=
这个怎么生成,进入容器后在根目录执行:
1 php artisan key:generate
3、创建数据库 1)创建 dujiaoka 的 MySQL 数据库
2)获取 redis 的密码
4、连接数据库 1)此时在 /opt/1panel/docker/compose/dujiaoka
下使用命名重启容器
现在可以看见你的容器管理页面有三个容器,分别是 dujiaoka,mysql,redis。IP 地址一定要是同一个网段,不然不能连接成功。
记得放通防火墙端口!
3)配置安装界面
4)安装成功,请重启容器后,登录后台修改密码。
5)后续扫尾工作——关闭安装功能和 Debug
修改配置文件
1 APP_DEBUG=false # true改为false
修改 docker-compose 文件
1 2 environment: - INSTALL=false
重启容器
五、配置反向代理
如果开启了 https 访问,配置文件的这个选项就要开启:
1 2 3 4 5 #是否开启https (前端开启了后端也必须为true) #后台登录出现0err或者其他登录异常问题,大概率是开启了https而后台没有开启,把下面的false改为true即可 ADMIN_HTTPS=true
二、部署 Epusdt 支付 在 docker 中部署 Epusdt 支付方式,可以参考这篇博客,写的很详细
docker 部署 Epusdt - 独角数卡 dujiaoka 的 usdt 支付插件 - 思有云 - IOIOX
我就补充两点细节
1、获取 telegram api token ,将整个token写到tg_bot_token
中。如:tg_bot_token=236923342:Alksdjli3klxilsdfsZtZCoywew
2、如果时使用 1panel 面板的同学,使用下面的命令时,最好在/opt/1panel/docker/compose
下,保持环境的干净
1 2 3 4 mkdir epusdt && cd epusdt wget https://raw.githubusercontent.com/stilleshan/dockerfiles/main/epusdt/docker-compose.yml wget https://raw.githubusercontent.com/stilleshan/dockerfiles/main/epusdt/epusdt.conf wget https://raw.githubusercontent.com/stilleshan/dockerfiles/main/epusdt/epusdt.sql
三、部署 Coinbase 支付
支付时,需要支付方有魔法
关键的值是:
商户 KEY
商户密钥
支付模块:app/Http/Controllers/Pay/CoinbaseController.php
1、商户 KEY 和商户密钥 注册一个账号:https://commerce.coinbase.com/dashboard/settings
2、修改 coinbase 支付模块 应为 commerce coinbase 只支持两种货币:USD,USDC(加密货币)
参考官方文档手册:https://docs.cloud.coinbase.com/commerce/docs/accepting-crypto
测试 API key
1 2 3 4 5 6 7 8 9 curl -X POST https://api.commerce.coinbase.com/charges/ \ -H "Content-Type: application/json" \ -H "X-CC-Api-Key: 7xxxxxx-348c-xxxxxxxxxxxxxbbc" \ -H "X-CC-Version: 2018-03-22" \ -d '{ "name": "The Human Fund", "description": "Money For People", "pricing_type": "no_price" }'
返回了:
1 2 3 4 5 6 { "error" : { "type" : "invalid_request" , "message" : "3:only USD or USDC charges are supported. debug_error_string:{\"created\":\"@1700015913.228860973\",\"description\":\"Error received from peer ipv4:10.198.127.162:9090\",\"file\":\"src/core/lib/surface/call.cc\",\"file_line\":1066,\"grpc_message\":\"only USD or USDC charges are supported\",\"grpc_status\":3}" } }
\"only USD or USDC charges are supported\"
:发现只支持 USD 或者 USDC 货币支付
构建 USD 请求,测试是否可以支付:
1 2 3 4 5 6 7 8 9 { "name" : "The Human Fund" , "description" : "Money For People" , "local_price" : { "amount" : "100.00" , "currency" : "USD" } , "pricing_type" : "fixed_price" }
发现可以就收付款:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 { "data" : { "brand_color" : "#122332" , "brand_logo_url" : "" , "charge_kind" : "WEB3" , "code" : "JBTM4M3R" , "created_at" : "2023-11-15T02:39:46Z" , "description" : "Money For People" , "expires_at" : "2023-11-17T02:39:46Z" , "hosted_url" : "https://commerce.coinbase.com/pay/a82b9ae5-0090-495a-b3c0-ab5c10839b82" , "id" : "a82b9ae5-0090-495a-b3c0-ab5c10839b82" , "name" : "The Human Fund" , "organization_name" : "" , "payments" : [ ] , "pricing" : { "local" : { "amount" : "100.00" , "currency" : "USD" } , "settlement" : { "amount" : "100" , "currency" : "USDC" } } , "pricing_type" : "fixed_price" , "redirects" : { "cancel_url" : "" , "success_url" : "" , "will_redirect_after_success" : false } , "support_email" : "xxxxx@gmail.com" , "timeline" : [ { "status" : "NEW" , "time" : "2023-11-15T02:39:46Z" } ] , "web3_data" : { "transfer_intent" : null , "success_events" : [ ] , "failure_events" : [ ] , "contract_addresses" : { "137" : "0x48073112c8C48e2550Bd42E4CD0aA483a416c5af" , "1" : "0x131642c019AF815Ae5F9926272A70C84AE5C37ab" , "8453" : "0x30E95edE0b3C7Ef147EE97A5e88FdE06311EA11f" } , "settlement_currency_addresses" : { "137" : "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359" , "1" : "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" , "8453" : "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" } } , "web3_retail_payments_enabled" : true } }
同理,我们可以修改支付货币为加密货币 USDC。接下里修改支付代码中的支付货币就为 USDC
修改 coinbase 的支付模块app/Http/Controllers/Pay/CoinbaseController.php
> dujiaoka/app/Http/Controllers/Pay/CoinbaseController.php at master · assimon/dujiaoka (github.com)
3、修改支付模块 上面看懂了的同学,应该可以自己修改支付代码了,下面的是我自己修改的支付代码。
由于官方原来的支付是用 CNY 作为支付单位的,我们现在直接将其改为 USDC,支付金额就成 200CNY——>200USDC 了。所以我们要获取实时汇率来转换为 USDC 的金额,下面是修改后的CoinbaseController.php
百度网盘:https://pan.baidu.com/s/1i7_38dRw9qZHd6GUazXnCg
提取码:2jdi
点击终端,进入容器
1 2 3 4 5 cd /dujiaoka/app/Http/Controllers/Pay cp CoinbaseController.php CoinbaseController.php.bak # 备份文件 rm CoinbaseController.php vi CoinbaseController.php# 复制粘贴所有文件
重启容器即可使用了
四、后记 感谢 assimon 大佬的独角数卡项目:
https://github.com/assimon/dujiaoka
感谢 Apocalypsor 大佬的独角数卡-docker 项目:
https://github.com/Apocalypsor/dujiaoka-docker
感谢 assimon 大佬的 epusdt 项目:
https://github.com/assimon/epusdt
感谢 Stille 大佬的 epusdt-docker 项目:
https://github.com/stilleshan/dockerfiles/tree/main/epusdt