Ctrl K
ComunidadGuías…

deploy/DATAMANAGEMENTD_CN.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# datamanagementd 部署说明(数据管理)

本文说明如何在宿主机部署 `datamanagementd`,并与主进程联动开启“数据管理”功能。

## 1. 关键约束

- 主进程固定探测路径:`/tmp/sub2api-datamanagement.sock`
- 仅当该 Unix Socket 可连通且 `Health` 成功时,后台“数据管理”才会启用
- `datamanagementd` 使用 SQLite 持久化元数据,不依赖主库

## 2. 宿主机构建与运行

```bash
cd /opt/sub2api-src/datamanagement
go build -o /opt/sub2api/datamanagementd ./cmd/datamanagementd

mkdir -p /var/lib/sub2api/datamanagement
chown -R sub2api:sub2api /var/lib/sub2api/datamanagement
```

手动启动示例:

```bash
/opt/sub2api/datamanagementd \
  -socket-path /tmp/sub2api-datamanagement.sock \
  -sqlite-path /var/lib/sub2api/datamanagement/datamanagementd.db \
  -version 1.0.0
```

## 3. systemd 托管(推荐)

仓库已提供示例服务文件:`deploy/sub2api-datamanagementd.service`

```bash
sudo cp deploy/sub2api-datamanagementd.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now sub2api-datamanagementd
sudo systemctl status sub2api-datamanagementd
```

查看日志:

```bash
sudo journalctl -u sub2api-datamanagementd -f
```

也可以使用一键安装脚本(自动安装二进制 + 注册 systemd):

```bash
# 方式一:使用现成二进制
sudo ./deploy/install-datamanagementd.sh --binary /path/to/datamanagementd

# 方式二:从源码构建后安装
sudo ./deploy/install-datamanagementd.sh --source /path/to/sub2api
```

## 4. Docker 部署联动

若 `sub2api` 运行在 Docker 容器中,需要将宿主机 Socket 挂载到容器同路径:

```yaml
services:
  sub2api:
    volumes:
      - /tmp/sub2api-datamanagement.sock:/tmp/sub2api-datamanagement.sock
```

建议在 `docker-compose.override.yml` 中维护该挂载,避免覆盖主 compose 文件。

## 5. 依赖检查

`datamanagementd` 执行备份时依赖以下工具:

- `pg_dump`
- `redis-cli`
- `docker`(仅 `source_mode=docker_exec` 时)

缺失依赖会导致对应任务失败,并在任务详情中体现错误信息。