三种部署方式任选,最快5分钟上线
开始部署前,请确认您已准备好以下环境和资源。
web/dist 已预构建,无需 npm run build| 部署方式 | 适合人群 | 难度 |
|---|---|---|
| 宝塔 | 新手/不熟悉命令行 | ⭐ |
| Docker | 熟悉Docker | ⭐⭐ |
| 脚本 | 有Linux基础 | ⭐⭐ |
宝塔是可视化服务器管理面板,图形化操作,新手友好。
宝塔是可视化服务器管理面板,适合新手。在服务器终端执行以下命令安装:
安装完成后终端会显示面板地址、用户名、密码,请妥善保存。
登录宝塔面板 → 左侧「软件商店」→ 搜索「PM2管理器」→ 点击安装,安装时 Node 版本选 v22 LTS,会自动带 Node.js。
npm install pm2 -g 也可以。
/www/wwwroot/Asolica-v5.4.4.zipasolica宝塔左侧「终端」,执行:
脚本自动检测Node.js、安装PM2、装后端依赖、创建配置文件。
修改 .env:nano .env 或宝塔文件管理器双击编辑,只需要改一行:BASE_URL=https://你的域名.com
JWT_SECRET 留空,首次启动自动生成。
启动命令:
pm2 startup 后复制终端输出的命令再执行一次(设置开机自启)。
不需要手动编辑nginx.conf!图形化操作即可:
/www/wwwroot/你的域名),PHP版本选「纯静态」→ 提交Asolica,目标URL填 http://127.0.0.1:3200 → 提交cat /www/wwwroot/asolica/server/data/admin_password.txthttps://你的域名/#/login使用 Docker Compose 容器化部署,环境隔离、升级方便。
docker --version
上传源码到服务器(如 /opt/asolica),解压后进入目录,确保包含 docker-compose.yml。
查看密码:cat server/data/admin_password.txt
然后配置Nginx反代(用宝塔图形化添加反代,目标URL填 http://127.0.0.1:3200,参考上一章节步骤6)。
server/data、server/uploads 通过卷挂载,容器删除数据不丢。
一行命令自动完成全部安装,适合快速体验。生产环境建议用宝塔或Docker。
脚本自动安装Node.js、PM2、下载源码、启动服务。执行完成后编辑 .env 配置 BASE_URL,然后 pm2 restart asolica-server,再配置Nginx反代和SSL即可。
不管哪种部署方式,绑定域名最省事的方法就是用宝塔面板图形化操作。
Asolica,目标URL填 http://127.0.0.1:3200 → 提交最简Nginx配置(全量代理到Node.js,无需配置静态文件root路径):
生产环境必须配置HTTPS,支付回调强制要求HTTPS。
证书自动续期,无需手动操作。
.env 是核心配置文件,以下是常用配置项。
| 变量 | 必填 | 说明 |
|---|---|---|
BASE_URL |
✅ | 你的域名,https://开头,不带尾斜杠 |
JWT_SECRET |
自动 | 留空首次启动自动生成32位随机密钥 |
PORT |
否 | 默认3200 |
NODE_ENV |
否 | 默认production |
修改后重启:pm2 restart asolica-server 或 docker compose restart
手动生成密钥命令:
升级新版同时保留所有数据,备份data目录是最重要的一步。
彻底清除旧数据从零开始。
server/data/ 目录。只删代码文件不删data目录,数据不会丢。此操作不可逆!
然后按宝塔部署步骤重新来。
日常运维常用命令速查。
pm2 list
pm2 logs asolica-server
pm2 restart asolica-server
pm2 stop asolica-server
docker compose ps
docker compose logs -f
docker compose restart
docker compose down
cat server/data/admin_password.txt
cd server && node scripts/reset-password.js
docker compose exec asolica node server/scripts/reset-password.js
cp server/data/asolica.db server/data/asolica_backup_$(date +%Y%m%d).db
curl http://localhost:3200/api/health