Epusdt v0.0.5 宝塔 / aaPanel 全新部署教程
点击即可弹出播放
教程说明
这篇教程基于 GMwalletApp/epusdt v0.0.5 整理,适合全新服务器、全新宝塔 / aaPanel 环境重新部署。本文按当前可验证的部署方式编写,不再沿用旧教程里已经过时的 MySQL + Redis + 手工导 SQL 方案。
推荐部署方案:官方二进制发布包 + SQLite + Nginx 反向代理 + Supervisor 守护进程。
一、准备条件
- 一台 Linux 服务器,已安装宝塔 / aaPanel 面板
- 宝塔 / aaPanel 里已安装
Nginx - 一个已解析到服务器的域名,例如
pay.example.com - 服务器已放行
80和443端口 - 一个 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 中创建站点
- 进入宝塔 / aaPanel 面板,打开「网站」。
- 新增站点,域名填写你的收银台域名,例如
pay.example.com。 - 根目录设置为
/www/wwwroot/epusdt。 - PHP 版本选「纯静态」即可,不需要 PHP 运行环境。
这一步的作用主要是让宝塔 / aaPanel 帮你管理域名、SSL 和 Nginx 配置,不是因为 epusdt 依赖 PHP。

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

先确认服务器架构:
uname -m
常见架构对应关系:
x86_64使用epusdt-0.0.5-linux-amd64.tar.gzaarch64使用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 网站目录后解压。两种方式二选一即可。
- 先在本地电脑打开官方发布页,下载与你服务器架构对应的压缩包。
- 进入宝塔 / aaPanel 面板,打开站点根目录
/www/wwwroot/epusdt。 - 把压缩包上传到这个目录。
- 在文件管理器里直接解压。
- 确认解压后目录中能看到
epusdt、.env.example、static/等文件。
如果是 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_path 和 log_save_path 是服务器文件路径,不要写成 /runtime、/logs,正确写法是 runtime、logs。如果写成带前导斜杠的形式,程序会尝试创建系统根目录,并可能报 mkdir /runtime: permission denied。
必须填写的配置项
app_uri:必须写成你的正式域名,支付页链接会用它生成tg_bot_token:Telegram 机器人 Tokentg_manage:你的 Telegram 用户 IDapi_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 证书
- 进入宝塔 / aaPanel 网站设置
- 打开「SSL」
- 为域名申请证书
- 开启「强制 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 机器人管理。
- 先给机器人发送
/start - 点击「添加钱包地址」
- 发送你的 TRON 地址
- 可以重复添加多个地址,提高并发
如果没有添加钱包地址,创建订单时会提示无可用钱包地址。
十一、发卡网对接方式
当前新接口地址:
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_path 或 log_save_path 写成了带前导斜杠的绝对路径。把它改回 runtime 和 logs,确认站点目录归属为 www,然后重启 Supervisor 即可。static_path 仍然保持 /static。
5. 支付页样式在哪里改?
发布包里的 static/index.html、static/payment.css、static/payment.js。
十三、上线前检查清单
- 域名解析已正确指向服务器
- 宝塔 / aaPanel 站点已配置反向代理到
127.0.0.1:8000 - SSL 已签发并开启强制 HTTPS
.env已填写app_uri、tg_bot_token、tg_manage、api_auth_token、api_rate_url- 已添加至少 1 个 TRON 收款地址
- 发卡网回调地址、接口地址和签名密钥已填写正确