Phase 1-3: AList stock deployment, NocoDB 7-table schema, W1/W2 n8n workflows + docs

This commit is contained in:
2026-08-22 19:26:06 +08:00
commit 71acb88078
21 changed files with 2127 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
# =============================================================================
# AList Serve Resource — 客户文件交付系统(Phase 1:AList stock 部署)
# =============================================================================
# 这是替代旧自定义 alist(access.hoelee.com, xhofe/alist:v3.54.0 + custom.js)
# 的全新 stock AList。业务权限逻辑由 NocoDB(SOT) + n8n(同步器) 通过 AList
# 官方 Admin API 管理,绝不在 image 内嵌入 custom code(规格 §8/§55)。
#
# 官方 Role/User 管理 API 已源码级验证(v3.63.0):
# GET/POST /api/admin/role/{list,get,create,update,delete}
# GET/POST /api/admin/user/{list,get,create,update,delete,cancel_2fa}
# role 字段 = role-ID 数组;read-only = permission bitmask 0;
# Check path limit = bit 14 = 16384(见 docs/API_INTEGRATION.md)
# =============================================================================
services:
alist:
# 固定版本 tag,不追 latest(规格 §48)。部署前确认 v3.63.0 为主要最新稳定版。
image: xhofe/alist:v3.63.0
container_name: alist-serve-resource
restart: unless-stopped
# 仅暴露 DSM 内网端口。公网入口由 DSM nginx 反代 access.hoelee.com → 此端口。
# 旧 alist 用 5244/5245/5246(nginx-limit/traefik-update 链),新服务独立端口避免冲突。
ports:
- "5247:5244" # host:5247 -> container:5244(AList 默认端口)
volumes:
# AList 自身数据/数据库/config(独立目录,不碰旧 alist 的 /volume1/docker/alist)
- /volume1/docker/alist-serve-resource/data:/opt/alist/data
- /volume1/docker/alist-serve-resource/config:/opt/alist/config
- /volume1/docker/alist-serve-resource/storage:/opt/alist/storage
# 只读挂载 NAS 真实文件目录 —— 客户只能读取,不能改动(规格 §15/§16)。
# 第二层防护:即使 AList 权限配置出错,filesystem 层仍只读。
- /volume1/Class:/mnt/Class:ro
- /volume1/Book:/mnt/Book:ro
- /volume1/Comic:/mnt/Comic:ro
- /volume1/Template:/mnt/Template:ro
environment:
- TZ=Asia/Kuala_Lumpur
# 生产部署请从 .env 注入真实值,勿硬编码(规格 §29/§55)。见 .env.example。
- JWT_SECRET=${JWT_SECRET}
- JWT_EXPIRE=2h
# 注意:不再注入 ALIST_CUSTOM_CSS / ALIST_CUSTOM_JS —— 全新 stock 配置。
# 健康检查:AList 无内建 /health,用 /ping 探测 HTTP 存活
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:5244/ping >/dev/null 2>&1 || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 15s
networks:
- bridge_hoelee
networks:
# 复用 DSM 上已存在的外部网络(与 n8n / nocodb 同网络,便于内网 API 互访)
bridge_hoelee:
external: true