Files
alist-serve-resource/docker-compose.yml
T

62 lines
2.8 KiB
YAML
Raw Permalink 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.
# =============================================================================
# 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