109 lines
3.9 KiB
Markdown
109 lines
3.9 KiB
Markdown
# 部署与卸载
|
|
|
|
本仓库的插件是独立服务,不需要把源码复制进 Sub2API Core。安装脚本会构建
|
|
插件二进制、创建低权限 systemd 服务、生成插件配置,并让服务监听各自的
|
|
端口。Core 数据库、Redis 和 Core `data/` 目录始终由 Core 自己管理。
|
|
|
|
## 先部署官方 Core
|
|
|
|
建议先使用官方仓库的全新部署脚本,单独放在自己的目录:
|
|
|
|
```sh
|
|
mkdir -p /opt/sub2api-core && cd /opt/sub2api-core
|
|
curl -fsSL https://raw.githubusercontent.com/Wei-Shaw/sub2api/main/deploy/docker-deploy.sh | bash
|
|
docker compose -f docker-compose.yml up -d
|
|
```
|
|
|
|
官方 Core 默认通过 `http://服务器IP:8080` 提供页面。确认 Core 登录和
|
|
数据库初始化完成后,再安装下面的独立插件。插件不会修改 Core 数据库迁移。
|
|
|
|
## 一键安装
|
|
|
|
在一台已安装 Go 1.23+、Git 和 systemd 的 Linux 主机上:
|
|
|
|
```sh
|
|
curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/install.sh \
|
|
| sudo bash -s -- --plugin all
|
|
```
|
|
|
|
只安装控制面:
|
|
|
|
```sh
|
|
curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/install.sh \
|
|
| sudo bash -s -- --plugin plugin-admin
|
|
```
|
|
|
|
安装订阅插件:
|
|
|
|
```sh
|
|
curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/install.sh \
|
|
| sudo bash -s -- --plugin subscription-admin
|
|
```
|
|
|
|
默认安装位置:
|
|
|
|
| 内容 | 路径 |
|
|
| --- | --- |
|
|
| 源码 | `/opt/sub2api-add` |
|
|
| 二进制 | `/opt/sub2api-add/<plugin>/bin/` |
|
|
| 配置 | `/etc/sub2api-add/<plugin>.env` |
|
|
| 插件数据 | `/var/lib/sub2api-add/<plugin>/` |
|
|
| systemd | `sub2api-plugin-admin.service`、`sub2api-subscription-admin.service` |
|
|
|
|
安装后先编辑配置:
|
|
|
|
```sh
|
|
sudoedit /etc/sub2api-add/plugin-admin.env
|
|
sudoedit /etc/sub2api-add/subscription-admin.env
|
|
sudo systemctl restart sub2api-plugin-admin sub2api-subscription-admin
|
|
```
|
|
|
|
至少确认 `CORE_BASE_URL`、插件端口、反向代理路径和 HTTPS Cookie 设置。生产
|
|
环境应启用 `PLUGIN_COOKIE_SECURE=true`,并为 plugin-admin 配置稳定的
|
|
`PLUGIN_CONFIG_KEY` 和受信发布者公钥。插件市场默认读取
|
|
`/var/lib/sub2api-add/plugin-admin/marketplace/index.json`;可通过
|
|
`PLUGIN_MARKETPLACE_INDEX` 指向受控本地索引或 HTTPS 索引,并用
|
|
`PLUGIN_MARKETPLACE_ALLOWED_HOSTS` 限定远程索引和包的精确主机。
|
|
|
|
## 菜单接入
|
|
|
|
1. 让反向代理把 `plugin-admin` 和业务插件分别转发到 `127.0.0.1:8090`
|
|
与 `127.0.0.1:8091`。
|
|
2. 登录 plugin-admin,上传业务插件包,或在插件市场选择目录版本。
|
|
3. 控制面完成签名、哈希和 Core 兼容性校验后,仅将包登记为“已入库,待启用”,不会启动进程。
|
|
4. 配置业务插件的 loopback `service_url`,再点击启用;健康检查通过后才算安装完成。
|
|
5. 预览、确认并应用插件声明的管理员菜单。
|
|
|
|
订阅插件是可选项;未安装或未应用菜单时,Core 管理员菜单不会出现“订阅管理”。
|
|
|
|
## 一键卸载
|
|
|
|
默认卸载服务和二进制,但保留配置与插件数据,便于重新安装:
|
|
|
|
```sh
|
|
curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/uninstall.sh \
|
|
| sudo bash -s -- --plugin all
|
|
```
|
|
|
|
确认同时删除插件配置、插件数据和源码:
|
|
|
|
```sh
|
|
curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/uninstall.sh \
|
|
| sudo bash -s -- --plugin all --purge --yes
|
|
```
|
|
|
|
卸载脚本不会删除 PostgreSQL、Redis、Sub2API Core 数据或 Core 配置。若只删除
|
|
订阅插件,使用 `--plugin subscription-admin`;控制面和其他插件保持不变。
|
|
|
|
## 本地安装与升级
|
|
|
|
从已克隆的仓库执行:
|
|
|
|
```sh
|
|
sudo ./scripts/install-local.sh --plugin all
|
|
sudo ./deploy/uninstall.sh --plugin subscription-admin
|
|
```
|
|
|
|
再次运行安装脚本会重新构建并重启选定插件。安装脚本发现源码有未提交修改
|
|
时会中止,避免升级覆盖本地改动。
|