通常,搭建一个文件下载站点可以直接使用 Nginx 或 Apache 这样的 Web 服务器来提供静态目录列表。但是,它们的默认界面往往功能单一且不够美观。

从上图可以看到,传统的目录列表页面仅提供了最基本的文件列表,缺乏搜索、分类、预览等现代化功能,且UI设计较为简陋。
如果你希望搭建一个界面精美、功能丰富,且能响应式适配手机和电脑的文件下载站,那么 DirectoryLister 将是一个绝佳的选择。它是一个开源的 PHP 应用程序,专为美化目录列表而设计。其 GitHub 仓库地址为:https://github.com/DirectoryLister/DirectoryLister。
好消息是,从 DirectoryLister 5 版本开始,官方提供了 Docker 镜像,这意味着我们无需再手动配置复杂的 PHP 运行环境,可以快速通过容器进行部署。
1. 使用 Docker Compose 一键部署
以下是完整的 docker-compose.yaml 配置文件示例。通过环境变量,你可以轻松定制站点的标题、语言、时区以及各项功能。
services:
directorylister:
image: directorylister/directorylister:5.4.0
container_name: directorylister
ports:
- "1880:80"
environment:
# 网站标题配置
SITE_TITLE: 企业下载中心
# 语言
APP_LANGUAGE: zh-CN
# 时区
TIMEZONE: Asia/Shanghai
# 缓存配置 - 使用文件缓存(无需额外服务)
# 如需高性能可改为 redis 并启用下面的 cache 服务
CACHE_DRIVER: file
CACHE_LIFETIME: 3600
# 功能配置
DISPLAY_READMES: true
READMES_FIRST: false
ZIP_DOWNLOADS: true
FILE_HASHES: md5,sha256
SORT_ORDER: type
THEME: light
volumes:
- ./downloads:/data:ro # 只读挂载,提高安全性
- ./cache-files:/var/www/html/storage/framework/cache
restart: unless-stopped
networks:
- dl-network
networks:
dl-network:
driver: bridge # 使用桥接网络
你可以通过官方文档查看所有可用的环境变量:https://docs.directorylister.com/configuration/configuration-reference
2. 自定义目录结构(可选)
在启动服务前,你可以预先创建好分类目录和说明文件,让站点结构更清晰、用户指引更明确。
# 创建多级目录
mkdir -p downloads/{软件,文档,视频,音乐,图片}
# 添加 README
cat > downloads/README.md << 'EOF'
# 欢迎来到下载中心 🎉
## 目录说明
- **软件** - 各类应用程序
- **文档** - PDF、Word 等文档
- **视频** - 视频文件
- **音乐** - 音频文件
- **图片** - 图片资源
## 使用指南
1. 点击目录进入相应分类
2. 点击文件名开始下载
3. 支持整个目录打包下载
---
*更新日期: 2026-01-18*
EOF
3. 上传文件至 downloads 目录
部署的核心就是将你需要分享的文件或整个文件夹,直接放入宿主机上的 ./downloads 目录中即可。DirectoryLister 会自动读取并展示它们。
4. 启动服务
配置和文件都准备好后,只需一条命令即可启动服务:
docker compose up -d
5. 访问与测试
服务启动后,在浏览器中访问 http://你的服务器IP:1880,就能看到焕然一新的文件下载站了。


对比最初的 Nginx 列表,DirectoryLister 提供的界面无疑更加现代化、美观,并且具备了分类导航、文件哈希值显示、README 文件渲染、ZIP 打包下载等实用功能,非常适合用于团队内部的资源共享或对外提供软件下载服务。
通过 Docker 和 DirectoryLister 的结合,我们几乎零配置地获得了一个功能完备、界面友好的文件下载站。这种方法尤其适合希望快速搭建内部工具,又不想陷入环境配置细节的开发者或运维团队。如果你对更多类似的 DevOps 实践或 开源项目 的容器化部署感兴趣,欢迎在云栈社区交流讨论。