
在日常运维或个人服务器管理中,我们常常需要测试服务器的真实网络带宽。相比 Speedtest CLI,LibreSpeed 提供了一个轻量级、可自建的网页测速工具,非常适合放在自己的服务器上进行直连测试。本文将详细介绍如何使用 Docker Compose 最新版部署 LibreSpeed,并结合反向代理实现生产化访问。
📂 目录结构规划
为了方便迁移和维护,我们将所有配置集中在 /opt/docker-stack/librespeed/ 下:
代码
/opt/docker-stack/librespeed/
├─ compose.yaml
└─ data/
├─ .env
└─ README.md
compose.yaml:主编排文件data/.env:环境变量配置data/README.md:部署说明文档
⚙️ 环境变量配置(data/.env)
env
LIBRESPEED_PORT=8080
LIBRESPEED_TITLE=LibreSpeed on Docker
LIBRESPEED_TELEMETRY=false
LIBRESPEED_OBFUSCATION=false
LIBRESPEED_REDACT_IP=false
🐳 Docker Compose 配置(compose.yaml)
yaml
name: librespeed
networks:
web_net: # 自定义网络,方便与其他容器(如 Caddy/Nginx)互通
external: true # 标记为外部网络,需要提前创建:docker network create web_net
services:
librespeed: # service name:推荐在反代或其他容器中引用这个名字
image: ghcr.io/librespeed/speedtest:latest
container_name: librespeed # container name:宿主机上唯一标识,便于 docker ps / logs 管理
restart: unless-stopped
env_file:
- ./data/.env
environment:
MODE: standalone # 独立模式:前端+后端一体
TITLE: ${LIBRESPEED_TITLE}
TELEMETRY: ${LIBRESPEED_TELEMETRY}
ENABLE_ID_OBFUSCATION: ${LIBRESPEED_OBFUSCATION}
REDACT_IP_ADDRESSES: ${LIBRESPEED_REDACT_IP}
ports:
- "8080:80" # 外部访问端口映射
# - "127.0.0.1:8080:80" # 如果只想本机访问,可取消注释
networks:
- web_net
volumes:
- ./data:/data # 挂载数据目录,方便保存配置或扩展
🔑 Service Name vs Container Name
- service name (
librespeed)- 在同一个网络中,其他容器可以直接通过
librespeed:80访问。 - 推荐在反向代理配置中使用 service name。
- 在同一个网络中,其他容器可以直接通过
- container name (
librespeed)- 宿主机上唯一标识,便于
docker ps、docker logs librespeed管理。 - 不建议在跨容器访问时使用,因为 Docker DNS 默认解析的是 service name。
- 宿主机上唯一标识,便于
📑 README.md(保存到 data 目录)
markdown
# LibreSpeed 部署文档
## 目录结构
/opt/docker-stack/librespeed/ ├─ compose.yaml └─ data/ ├─ .env └─ README.md
代码
## 环境变量 (.env)
- `LIBRESPEED_PORT`:宿主机映射端口(默认 8080)
- `LIBRESPEED_TITLE`:页面标题
- `LIBRESPEED_TELEMETRY`:是否启用遥测(默认 false)
- `LIBRESPEED_OBFUSCATION`:是否启用 ID 混淆
- `LIBRESPEED_REDACT_IP`:是否隐藏 IP 地址
## 网络配置
- 使用自定义网络 `web_net`,需提前创建:
```bash
docker network create web_net
- 这样可以与其他容器(如 Caddy/Nginx)互通,Caddyfile 可直接写:代码
librespeed.example.xyz { reverse_proxy librespeed:80 }
启动与停止
bash
cd /opt/docker-stack/librespeed
docker compose up -d # 启动
docker compose down # 停止并删除容器
docker compose restart # 重启
升级与回滚
- 升级:bash
docker compose pull && docker compose up -d - 回滚: 修改
compose.yaml中镜像标签为上一个版本或 digest,然后:bashdocker compose up -d
验证
- 浏览器访问
http://服务器IP:8080→ 验证直连 - 如果有反代(Caddy/Nginx),访问
https://librespeed.example.xyz
注意事项
- service name 用于容器间互通,推荐在反代配置里使用。
- container name 用于宿主机管理,便于查看日志和状态。
- 如果只想本机访问,可在
compose.yaml中启用:代码ports: - "127.0.0.1:8080:80"
代码
---
## 🚀 总结
- 使用 Docker Compose 部署 LibreSpeed 非常简单,核心就是一个 `compose.yaml` + `.env` 文件。
- 通过 `web_net` 网络,可以轻松与反向代理(Caddy/Nginx)互通,实现统一的 HTTPS 管理。
- 目录结构清晰,迁移时只需打包整个 `/opt/docker-stack/librespeed/` 目录即可。
---