npm-docker-compose-files
:victory: 项目地址:expoli/npm-docker-compose-files: 一个用于配置 Nginx Proxy Manager(NPM)作为反向代理的 Docker Compose 文件合集
项目背景
在使用飞牛 NAS 的过程中,由于服务数量的增加,服务端口号不断增多,可能会导致以下问题:
- 端口号冲突:不同服务可能因端口占用而无法正常运行。
- 安全隐患:过多的暴露端口会增加潜在的安全风险。
- 证书问题:自签名证书提示危险,手动维护证书过于繁琐。
为了解决以上问题,本项目创建了一套基于 Nginx Proxy Manager(NPM)的反向代理方案:
- 将所有服务的容器加入到与 NPM 相同的 Docker 网络中。
- 通过 NPM 配置反向代理,无需为每个服务暴露独立的端口。
- 仅开放 NPM 所需的 80、81 和 443 端口,进一步提高系统安全性。
以下是具体的网络架构示意图:
[外部访问] -> Nginx Proxy Manager (80/443) -> Docker 网络内部服务
项目功能
- 提供常用服务的 Docker Compose 文件模板。
- 实现所有服务的反向代理管理。
- 简化服务端口的管理,优化 NAS 使用体验。
- 自动管理SSL证书。
使用方法
- 克隆仓库
- 配置 Docker Compose
根据需要选择目标服务的 Docker Compose 文件,编辑对应的 .env 文件或修改配置文件以适配你的环境。
- 启动服务(可以使用飞牛的 docker 工具编写或者导入 YAML 文件)
- 配置反向代理
进入 NPM 管理页面(默认端口为 81),按以下步骤配置:
- 添加代理主机:设置服务的域名或子域名。
- 选择目标容器:填写服务容器的名称及内部端口(通常为容器内部运行的默认端口)。
- 启用 SSL:建议配置 HTTPS 证书以确保数据传输安全。
示例服务
本项目已收录的服务包括但不限于:
- Siyuan 笔记(笔记服务器)
- qBittorrent(torrent 下载工具)
- novidrome(音乐服务器与播放器)
- reader(小说阅读工具)
- vaultwarden(密码管理器)
- xunlei(下载工具)
未来将持续更新更多服务模板,欢迎提出需求!
优势与特点
- 提升安全性:仅开放少量必要端口,减少暴露面。
- 简化管理:通过统一的 NPM 管理所有反向代理规则。
- 高扩展性:便于添加新服务,避免端口冲突。
- 支持 SSL 证书自动申请与更新。
贡献指南
如果你有其他服务的 Docker Compose 文件模板,欢迎提交 PR 一起完善本项目!:handshake: |