An open API service indexing awesome lists of open source software.

https://github.com/expoli/npm-docker-compose-files

一个用于配置 Nginx Proxy Manager(NPM)作为反向代理的 Docker Compose 文件合集
https://github.com/expoli/npm-docker-compose-files

Last synced: 3 months ago
JSON representation

一个用于配置 Nginx Proxy Manager(NPM)作为反向代理的 Docker Compose 文件合集

Awesome Lists containing this project

README

          

# npm-docker-compose-files

一个用于配置 Nginx Proxy Manager(NPM)作为反向代理的 Docker Compose 文件合集

## 项目背景
在使用飞牛 NAS 的过程中,由于服务数量的增加,服务端口号不断增多,可能会导致以下问题:

- 端口号冲突:不同服务可能因端口占用而无法正常运行。
- 安全隐患:过多的暴露端口会增加潜在的安全风险。
- 证书问题:自签名证书提示危险,手动维护证书过于繁琐。

为了解决以上问题,本项目创建了一套基于 Nginx Proxy Manager(NPM)的反向代理方案:

- 将所有服务的容器加入到与 NPM 相同的 Docker 网络中。
- 通过 NPM 配置反向代理,无需为每个服务暴露独立的端口。
- 仅开放 NPM 所需的 80、81 和 443 端口,进一步提高系统安全性。

以下是具体的网络架构示意图:

```text
[外部访问] -> Nginx Proxy Manager (80/443) -> Docker 网络内部服务
```

## 项目功能
- 提供常用服务的 Docker Compose 文件模板。
- 实现所有服务的反向代理管理。
- 简化服务端口的管理,优化 NAS 使用体验。
- 自动管理SSL证书。

## 使用方法
1. 克隆仓库

2. 配置 Docker Compose
根据需要选择目标服务的 Docker Compose 文件,编辑对应的 .env 文件或修改配置文件以适配你的环境。

3. 启动服务

```bash
docker-compose up -d
```
4. 配置反向代理
进入 NPM 管理页面(默认端口为 81),按以下步骤配置:

1. 添加代理主机:设置服务的域名或子域名。
2. 选择目标容器:填写服务容器的名称及内部端口(通常为容器内部运行的默认端口)。
3. 启用 SSL:建议配置 HTTPS 证书以确保数据传输安全。

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

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

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

# 贡献指南

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