# ============================================================================= # 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