收起左侧

基于 NPM 的 Docker 服务反代方案,欢迎贡献

0
回复
941
查看
[ 复制链接 ]

1

主题

11

回帖

0

牛值

江湖小虾

2024-12-8 19:20:13 显示全部楼层 阅读模式

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证书。

使用方法

  1. 克隆仓库
  2. 配置 Docker Compose 根据需要选择目标服务的 Docker Compose 文件,编辑对应的 .env 文件或修改配置文件以适配你的环境。
  3. 启动服务(可以使用飞牛的 docker 工具编写或者导入 YAML 文件)
  4. 配置反向代理 进入 NPM 管理页面(默认端口为 81),按以下步骤配置:
  5. 添加代理主机:设置服务的域名或子域名。
  6. 选择目标容器:填写服务容器的名称及内部端口(通常为容器内部运行的默认端口)。
  7. 启用 SSL:建议配置 HTTPS 证书以确保数据传输安全。

示例服务

本项目已收录的服务包括但不限于:

  • Siyuan 笔记(笔记服务器)
  • qBittorrent(torrent 下载工具)
  • novidrome(音乐服务器与播放器)
  • reader(小说阅读工具)
  • vaultwarden(密码管理器)
  • xunlei(下载工具) 未来将持续更新更多服务模板,欢迎提出需求!

优势与特点

  • 提升安全性:仅开放少量必要端口,减少暴露面。
  • 简化管理:通过统一的 NPM 管理所有反向代理规则。
  • 高扩展性:便于添加新服务,避免端口冲突。
  • 支持 SSL 证书自动申请与更新。

贡献指南

如果你有其他服务的 Docker Compose 文件模板,欢迎提交 PR 一起完善本项目!:handshake:

收藏
送赞 3
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则