找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

602

积分

0

好友

76

主题
发表于 3 天前 | 查看: 11| 回复: 0

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

传统的Nginx目录列表界面

从上图可以看到,传统的目录列表页面仅提供了最基本的文件列表,缺乏搜索、分类、预览等现代化功能,且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,就能看到焕然一新的文件下载站了。

DirectoryLister主目录界面

DirectoryLister的README展示与指南

对比最初的 Nginx 列表,DirectoryLister 提供的界面无疑更加现代化、美观,并且具备了分类导航、文件哈希值显示、README 文件渲染、ZIP 打包下载等实用功能,非常适合用于团队内部的资源共享或对外提供软件下载服务。

通过 Docker 和 DirectoryLister 的结合,我们几乎零配置地获得了一个功能完备、界面友好的文件下载站。这种方法尤其适合希望快速搭建内部工具,又不想陷入环境配置细节的开发者或运维团队。如果你对更多类似的 DevOps 实践或 开源项目 的容器化部署感兴趣,欢迎在云栈社区交流讨论。




上一篇:C++模板编程实现函数柯里化(Currying)的原理与应用
下一篇:得物大数据比对平台Galaxy:Spark迁移ODPS的数据一致性校验原理与实践
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-24 04:03 , Processed in 0.442098 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表