Files
alist-serve-resource/docs/INSTALL.md
T

87 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 安装文档(Phase 1:AList stock 部署)
> 目标:在 DSM 上跑起全新的 stock AList,与旧 alist 并行,验证后再切换域名。
## 0. 前置条件(你需独立操作)
这些是你在 DSM / Portainer 上手动完成的部分,agent 无法代劳:
1. **确认 NAS 目录存在且就绪**:
- `/volume1/Class`、`/volume1/Book`、`/volume1/Comic`、`/volume1/Template`
- 若目录名/路径不同,改 `docker-compose.yml` 的 volumes。
2. **创建 AList 数据目录**(DSM File Station 或 SSH):
```
/volume1/docker/alist-serve-resource/data
/volume1/docker/alist-serve-resource/config
/volume1/docker/alist-serve-resource/storage
```
3. **确认外部网络 `bridge_hoelee` 存在**:
- 该网络由 n8n/nocodb 等其他 compose 创建(`external: true`)。
- 若不存在,在 DSM 上建:`docker network create bridge_hoelee`(或 Portainer → Networks → Add)。
4. **准备 secrets**:
- 复制 `.env.example` → `.env`,填入真实 `JWT_SECRET`、`ALIST_ADMIN_PASSWORD` 等。
- 生成 JWT secret:`openssl rand -base64 32`
## 1. 部署(Portainer)
在 Portainer → Stacks → Add Stack:
- Name: `alist-serve-resource`
- 方式:上传 `docker-compose.yml` + 配置环境变量(或把 `.env` 内容填入 Environment variables 区)。
- 网络 `bridge_hoelee` 是 external,Portainer 会复用现有网络,不会新建。
> Portainer 与 `env_file`:Portainer Stack 使用内置 Environment variables 区而非 `.env` 文件。
> 把 `.env` 里的键值对逐条填进 Portainer 的 Environment variables,或改用 Compose 里的
> `${VAR}` 语法(Portainer 也支持 `env_file`,可上传 `.env` 作为 env_file)。
部署后验证:
```bash
docker ps | grep alist-serve-resource
docker logs alist-serve-resource
```
## 2. 首次初始化 AList admin
1. 访问 `http://<DSM-IP>:5247`。
2. 首次进入会引导设置 admin 账号密码(或 AList 会打印初始 admin 密码到日志:
`grep -i admin docker logs alist-serve-resource`)。
3. 登录后台,确认版本 v3.63.0。
## 3. 建立 Local Storage
AList 后台 → 存储 → 添加 → 驱动选「本地存储 / Local」:
```
挂载路径: /Class → 根文件夹路径: /mnt/Class
挂载路径: /Book → 根文件夹路径: /mnt/Book
挂载路径: /Comic → 根文件夹路径: /mnt/Comic
挂载路径: /Template → 根文件夹路径: /mnt/Template
```
> 客户看到的逻辑路径是 `/Class/...`,实际 host 是 `/volume1/Class/...`(规格 §31)。
> 客户永远看不到 `/volume1` 或 `/mnt`。
## 4. 验证健康检查
```bash
docker inspect --format '{{.State.Health.Status}}' alist-serve-resource
# 应输出 healthy
```
## 5. 切换域名(后期,新旧并行验证通过后再做)
1. 旧 alist(`nginx-limit-alist`/`traefik-update-alist`/`alist`)保持运行。
2. DSM nginx 将 `access.hoelee.com` 新指到 `http://<DSM-IP>:5247`。
3. 验证客户能正常登录/浏览/下载。
4. 确认无误后,停掉旧 alist 三个 container(先 `docker stop`,观察,再 `docker rm`)。
## 6. 后续 Phase
- Phase 2:NocoDB schema(`docs/DATABASE_SCHEMA.md`)
- Phase 3:n8n + AList API 连接(`docs/N8N_WORKFLOWS.md`)
- Phase 4–10:客户建档、权限同步、到期同步、审计、监控、备份、文档