Epusdt v0.0.5 宝塔 / aaPanel 全新部署教程

发布时间:2026-04-04 05:08 最近更新:2026-04-04 07:37

视频教程

点击即可弹出播放

教程说明

这篇教程基于 GMwalletApp/epusdt v0.0.5 整理,适合全新服务器、全新宝塔 / aaPanel 环境重新部署。本文按当前可验证的部署方式编写,不再沿用旧教程里已经过时的 MySQL + Redis + 手工导 SQL 方案。



推荐部署方案:官方二进制发布包 + SQLite + Nginx 反向代理 + Supervisor 守护进程。

一、准备条件

  • 一台 Linux 服务器,已安装宝塔 / aaPanel 面板
  • 宝塔 / aaPanel 里已安装 Nginx
  • 一个已解析到服务器的域名,例如 pay.example.com
  • 服务器已放行 80443 端口
  • 一个 Telegram Bot Token
  • 你的 Telegram 用户 ID
  • 至少 1 个 TRON 收款地址
  • 可选但强烈建议:TronGrid API Key,申请地址:www.trongrid.io

宝塔 / aaPanel 入口说明

如果你使用的是 aaPanel,或者将宝塔 / aaPanel 面板入口改成了自定义路径,登录地址可能类似下面这样:



http://服务器IP:面板端口/aaPanel

例如:



http://1.2.3.4:8888/aaPanel

如果你的面板安全入口已经设置成 /aaPanel,后续教程里提到“进入宝塔 / aaPanel 面板”时,都按这个入口访问即可。



二、在宝塔 / aaPanel 中创建站点

  1. 进入宝塔 / aaPanel 面板,打开「网站」。
  2. 新增站点,域名填写你的收银台域名,例如 pay.example.com
  3. 根目录设置为 /www/wwwroot/epusdt
  4. PHP 版本选「纯静态」即可,不需要 PHP 运行环境。

这一步的作用主要是让宝塔 / aaPanel 帮你管理域名、SSL 和 Nginx 配置,不是因为 epusdt 依赖 PHP。



三、下载官方 v0.0.5 发布包

先确认服务器架构:


uname -m

常见架构对应关系:


  • x86_64 使用 epusdt-0.0.5-linux-amd64.tar.gz
  • aarch64 使用 epusdt-0.0.5-linux-arm64.tar.gz

方式一:通过服务器命令直接下载

如果你习惯在服务器 SSH 里直接操作,可以用下面这种方式下载并解压。以 x86_64 为例:


mkdir -p /www/wwwroot/epusdt
cd /www/wwwroot/epusdt

curl -fsSLO https://github.com/GMwalletApp/epusdt/releases/download/v0.0.5/epusdt-0.0.5-linux-amd64.tar.gz
tar -xzf epusdt-0.0.5-linux-amd64.tar.gz
chmod 755 epusdt
chown -R www:www /www/wwwroot/epusdt

方式二:本地下载压缩包后上传到宝塔 / aaPanel 目录再解压

如果你不想在服务器里执行下载命令,也可以在本地浏览器先下载发布包,再上传到宝塔 / aaPanel 网站目录后解压。两种方式二选一即可。


  1. 先在本地电脑打开官方发布页,下载与你服务器架构对应的压缩包。
  2. 进入宝塔 / aaPanel 面板,打开站点根目录 /www/wwwroot/epusdt
  3. 把压缩包上传到这个目录。
  4. 在文件管理器里直接解压。
  5. 确认解压后目录中能看到 epusdt.env.examplestatic/ 等文件。

如果是 Linux 服务器,解压后记得给二进制执行权限:


chmod 755 /www/wwwroot/epusdt/epusdt
chown -R www:www /www/wwwroot/epusdt

无论你采用哪种方式,解压后目录里都应该包含:


  • epusdt 可执行文件
  • .env.example 配置样例
  • static/ 支付页静态资源

四、创建配置文件 .env

先准备一个接口密钥,建议自定义一串足够复杂的强密码字符串;如果你不想手写,也可以直接用下面命令生成:


openssl rand -hex 32

先把解压出来的 .env.example 重命名为 .env,然后再修改使用。你可以在宝塔 / aaPanel 文件管理器里直接重命名,也可以用命令:



cd /www/wwwroot/epusdt
mv .env.example .env

然后编辑 /www/wwwroot/epusdt/.env,内容建议如下:


app_name=epusdt
app_uri=https://pay.example.com
log_level=info
http_access_log=false
sql_debug=false
http_listen=127.0.0.1:8000

static_path=/static
runtime_root_path=runtime

log_save_path=logs
log_max_size=32
log_max_age=7
max_backups=3

# supported values: postgres,mysql,sqlite
db_type=sqlite

# sqlite primary database config
sqlite_database_filename=epusdt.db
sqlite_table_prefix=

# postgres config
postgres_host=127.0.0.1
postgres_port=5432
postgres_user=
postgres_passwd=
postgres_database=
postgres_table_prefix=
postgres_max_idle_conns=10
postgres_max_open_conns=100
postgres_max_life_time=6

# mysql config
mysql_host=127.0.0.1
mysql_port=3306
mysql_user=
mysql_passwd=
mysql_database=
mysql_table_prefix=
mysql_max_idle_conns=10
mysql_max_open_conns=100
mysql_max_life_time=6

# sqlite runtime store config
runtime_sqlite_filename=epusdt-runtime.db

# background scheduler config
queue_concurrency=10
queue_poll_interval_ms=1000
callback_retry_base_seconds=5

tg_bot_token=你的机器人Token
tg_proxy=
tg_manage=你的Telegram用户ID

api_auth_token=自定义强密码密钥

order_expiration_time=10
order_notice_max_retry=0
forced_usdt_rate=
api_rate_url=https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/
tron_grid_api_key=你的TronGrid密钥

路径配置有一个非常容易踩坑的地方:static_path 是访问 URL,保留 /static 即可;但 runtime_root_pathlog_save_path 是服务器文件路径,不要写成 /runtime/logs,正确写法是 runtimelogs。如果写成带前导斜杠的形式,程序会尝试创建系统根目录,并可能报 mkdir /runtime: permission denied


必须填写的配置项

  • app_uri:必须写成你的正式域名,支付页链接会用它生成
  • tg_bot_token:Telegram 机器人 Token
  • tg_manage:你的 Telegram 用户 ID
  • api_auth_token:发卡网或第三方系统下单签名要用
  • api_rate_url:实时汇率接口地址,建议保留上面的默认值

重要说明

  • v0.0.5 使用 sqlite 可以正常部署,不需要先装 MySQL 再手工导旧版 SQL
  • 程序启动时会自动创建主库和运行时锁库
  • tron_grid_api_key 不是启动必须,但正式收款强烈建议填写

五、为什么不再用旧教程的 MySQL / Redis / SQL 导入

旧版教程来源于早期 epusdt 版本,而 v0.0.5 当前代码已经支持:


  • sqlite / mysql / postgres 三种主库
  • 启动时自动建表
  • 运行时锁库使用独立 SQLite 文件

所以全新服务器部署时,最省事和最稳的方式就是直接用 sqlite。只有在后面业务量明显变大、需要统一数据库运维时,再切 MySQL 即可。


六、宝塔/ aaPanel 网站反向代理设置

epusdt 自己会监听 HTTP 服务,但建议只监听本机:


http_listen=127.0.0.1:8000

然后在宝塔 / aaPanel 网站设置里配置反向代理,目标地址填:


http://127.0.0.1:8000

如果你习惯手工写 Nginx,核心配置如下:


location / {
    proxy_pass http://127.0.0.1:8000;
    proxy_http_version 1.1;
    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 X-Forwarded-Proto $scheme;
}

七、宝塔 / aaPanel SSL 证书

  1. 进入宝塔 / aaPanel 网站设置
  2. 打开「SSL」
  3. 为域名申请证书
  4. 开启「强制 HTTPS」

证书正常后,访问你的收银台首页应该是:



https://pay.example.com/

八、宝塔 / aaPanel Supervisor 配置

如果你使用宝塔 / aaPanel Supervisor,建议按下面填写:

  • 名称:epusdt
  • 运行用户:www
  • 启动目录:/www/wwwroot/epusdt
  • 启动命令:/www/wwwroot/epusdt/epusdt --config /www/wwwroot/epusdt/.env http start
  • 日志文件:/www/wwwlogs/epusdt-supervisor.log
  • 进程数量:1
  • 自动启动:开启
  • 自动重启:开启

如果你想直接填写完整 Supervisor 配置,可以参考:



[program:epusdt]
process_name=%(program_name)s
directory=/www/wwwroot/epusdt
command=/www/wwwroot/epusdt/epusdt --config /www/wwwroot/epusdt/.env http start
autostart=true
autorestart=true
startsecs=3
startretries=10
user=www
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwlogs/epusdt-supervisor.log
stdout_logfile_maxbytes=20MB
stdout_logfile_backups=5
stopasgroup=true
killasgroup=true

九、启动后如何验证

先访问首页:


https://pay.example.com/

正常时会返回:


hello epusdt, https://github.com/GMwalletApp/epusdt

然后看 Supervisor 状态或日志,确认程序没有反复重启。


十、机器人和钱包地址初始化

v0.0.5 没有传统网页后台的钱包管理页,钱包地址主要通过 Telegram 机器人管理。


  1. 先给机器人发送 /start
  2. 点击「添加钱包地址」
  3. 发送你的 TRON 地址
  4. 可以重复添加多个地址,提高并发

如果没有添加钱包地址,创建订单时会提示无可用钱包地址。


十一、发卡网对接方式

当前新接口地址:


https://pay.example.com/payments/epusdt/v1/order/create-transaction

签名密钥:


.env 里的 api_auth_token

如果你的发卡网还是旧 epusdt 插件,建议优先把接口地址从旧路径:


https://pay.example.com/api/v1/order/create-transaction

改成新路径:


https://pay.example.com/payments/epusdt/v1/order/create-transaction

如果旧插件写死了旧路径,也可以在 Nginx 里额外加一条兼容规则,把旧路径转发到新路径。


十二、常见问题

1. 必须装 MySQL 和 Redis 吗?

按本文方案不需要,当前版本直接用 SQLite 即可。


2. 必须手工导入 SQL 吗?

不需要,程序启动会自动建表。


3. 改了 .env 后怎么办?

需要重启 Supervisor 进程,让新配置生效。


4. 启动报错 mkdir /runtime: permission denied 怎么办?

说明你把 runtime_root_pathlog_save_path 写成了带前导斜杠的绝对路径。把它改回 runtimelogs,确认站点目录归属为 www,然后重启 Supervisor 即可。static_path 仍然保持 /static


5. 支付页样式在哪里改?

发布包里的 static/index.htmlstatic/payment.cssstatic/payment.js


十三、上线前检查清单

  • 域名解析已正确指向服务器
  • 宝塔 / aaPanel 站点已配置反向代理到 127.0.0.1:8000
  • SSL 已签发并开启强制 HTTPS
  • .env 已填写 app_uritg_bot_tokentg_manageapi_auth_tokenapi_rate_url
  • 已添加至少 1 个 TRON 收款地址
  • 发卡网回调地址、接口地址和签名密钥已填写正确

十四、官方参考链接