Loading...

文章背景图

Compose-Examples:自托管开源项目 Docker Compose 示例合集使用指南

2026-10-27
0
- 字
- 分钟
|

Compose-Examples:自托管开源项目 Docker Compose 示例合集使用指南

Compose-Examples(Awesome Docker Compose Examples)是一个由社区维护的 Docker Compose 示例仓库,收录了大量自托管 FOSS 与商业项目的现成 docker-compose 配置。它不是单个服务,而是一个「部署模板库」——你想自托管 Nextcloud、Vaultwarden、Traefik、Authelia、Uptime Kuma、Ollama 等,都能在里面找到一份写好的 Compose 文件,改改路径和密码就能 docker compose up 跑起来,省去从零编排的麻烦。

一、项目官方信息

项目 信息
GitHub 仓库 https://github.com/Haxxnet/Compose-Examples
在线网页版 https://haxxnet.github.io/Compose-Examples/
开源协议 仓库根目录未声明 LICENSE 文件(示例配置以参考用途提供,使用前请自行确认各上游项目协议)
主要内容 Docker Compose YAML 配置 + Markdown 说明(YAML / Markdown 为主)
Star 数 7.4k+
维护者 LRVT(l4rm4nd)

说明:仓库 README 中的图片均为徽章、打赏按钮与贡献者头像,不属于项目官方产品图,故本文不设「官方图片」小节,封面亦不使用占位图。

二、环境要求

  • Docker Engine:已安装并正常运行(见 https://docs.docker.com/engine/install/ )。
  • Docker Compose:支持 docker compose 子命令(Compose v2,见 https://docs.docker.com/compose/install/ )。
  • 目录约定:示例默认把数据卷挂载在 /mnt/docker-volumes/<容器名>/;你可以通过环境变量 DOCKER_VOLUME_STORAGE 改成自己的根路径;未设置时回退到默认路径。
  • 目录权限:bind mount 的属主 UID:GID 通常需要设为 1000:1000,具体看每个示例里的注释。
  • 网络:示例不预定义 Docker 网络,需按你的反代 / 代理环境自行调整。

三、完整部署步骤

1. 克隆仓库

git clone https://github.com/Haxxnet/Compose-Examples
cd Compose-Examples/examples

所有示例都在 examples/ 目录下,每个子目录对应一个项目(如 examples/vaultwarden、examples/nextcloud、examples/traefik)。

2. 进入你想部署的示例

cd vaultwarden

3. 阅读注释并按需修改

官方 README 强调,直接 up 之前必须手动调整以下内容:

  • 卷挂载路径:确认宿主机目录存在且属主正确(通常 1000:1000);
  • 示例配置文件:示例附带的 config 还没放到正确的 bind mount 路径,需要你挪过去;
  • 默认凭据:出于安全考虑必须改成自己的强密码,建议放进独立的 .env 文件或 secrets 管理平台;
  • Docker 网络:按你的反代(Traefik / Nginx Proxy Manager / Caddy)配置接入。

如果要改默认卷根路径,先导出环境变量:

export DOCKER_VOLUME_STORAGE="/your/data/path"

4. 启动

docker compose up

后台常驻可加 -d:

docker compose up -d

5. 验证

docker compose ps 查看容器状态;docker compose logs -f 看启动日志;按示例 README 给出的端口访问 Web 界面,确认改好的凭据能登录。

四、示例覆盖范围(官方分类摘录)

仓库按用途分类,常用类别包括:

  • 个人仪表盘:Homepage、Homer、Dashy、Homarr、Flame、Heimdall;
  • 密码管理:Vaultwarden、Bitwarden Unified、Passbolt CE;
  • 反向代理 / 网关:Traefik、Nginx Proxy Manager、Caddy(自动续 TLS 证书);
  • 身份管理 / SSO:Authelia、Authentik、Keycloak、ZITADEL、lldap;
  • LLM / AI:Ollama + Open WebUI、Serge;
  • VPN / 远程访问:wg-easy、WireGuard、IPSec VPN、OpenVPN-AS、Firezone、Headscale、Guacamole;
  • DNS:AdGuard Home、Technitium DNS、Pi-hole、Cloudflare DDNS;
  • 自动化与监控:n8n、Home Assistant、Portainer、Uptime Kuma、Grafana+Loki+Promtail 监控栈、Watchtower、Beszel;
  • 影视 / 媒体:Plex、Jellyfin、*Arr 套件、Immich;
  • 文件同步:Nextcloud、ownCloud oCIS、Seafile、MinIO、Syncthing、SFTPGo;
  • 以及文档管理、笔记、Wiki、博客、电商、分析、安全、URL 缩短、家谱、资产管理等几十个分类。

五、使用方法与安全提示

官方 README 明确给出了生产使用的注意事项:

  • 这些示例最初面向本地开发 / 折腾环境设计;若要部署到生产或暴露到公网,必须遵循通用加固与安全规范;
  • 改掉所有默认凭据,用独立 .env 或 secrets 管理平台存放密钥;
  • 建立备份流程并经过演练的灾难恢复计划;
  • 使用反向代理统一暴露 Web 服务,并提供受信 SSL 证书的加密 HTTPS 通道;
  • 在线浏览版仓库见 https://haxxnet.github.io/Compose-Examples/ ,可按分类快速查找示例。

六、常见问题 FAQ

Q1:docker compose up 后容器立刻退出 / 权限报错? 多半是 bind mount 目录属主不对。按示例注释把宿主机目录改成对应 UID:GID(通常 1000:1000),并确认目录已存在。

Q2:数据想放在非 /mnt/docker-volumes 的盘? 导出环境变量 DOCKER_VOLUME_STORAGE=/your/path,示例里的卷路径会基于它拼接;或直接编辑 compose 文件里的宿主机路径。

Q3:示例里的密码 / 密钥能直接用吗? 不能。官方反复提醒:默认凭据出于安全必须修改,建议放进 .env 文件,不要写死在 compose 里提交到 Git。

Q4:这些配置能直接上生产吗? 可以用,但要做加固:改默认凭据、配反代与 HTTPS、做备份与灾备;示例本身是起点,不是开箱即用的生产方案。

Q5:怎么知道某个示例用哪个端口、依赖哪些配置? 进入对应 examples/<项目> 目录,阅读目录内的 README 与 compose 注释;每个示例都附带了说明与示例配置文件。

Q6:仓库没有 LICENSE,我能随便用吗? 示例配置本身是参考模板;但它们编排的各个上游项目(如 Nextcloud、Vaultwarden)各有自己的开源协议,自托管部署时请遵循对应上游协议。

七、跳转链接

  • GitHub 仓库:https://github.com/Haxxnet/Compose-Examples
  • 在线示例浏览:https://haxxnet.github.io/Compose-Examples/
  • 示例目录:https://github.com/Haxxnet/Compose-Examples/tree/main/examples
评论交流

文章目录