大家好,我是热爱开源的了不起!
在开发和运维日常里,你是否经常忘记某个服务用了哪个端口?是否因为端口冲突而浪费时间定位问题?是否为文档分散难查而抓狂?
今天给大家介绍一款专门解决这个的工具- PortNote,它让端口管理变得简单、直观、自动化。
项目简介
PortNote是一个专注于端口管理与分配的开源工具,通过简洁直观的Web界面帮助用户记录和追踪服务端口使用情况,有效避免端口冲突问题。它支持自动端口扫描、随机端口生成、多服务器集中管理等功能,适用于个人开发者、中小团队乃至IT运维人员。项目基于Next.js与TypeScript构建,使用PostgreSQL作为底层数据库,配合Prisma ORM确保数据的稳定性与持久化。

功能特点
- 可视化端口管理:以清晰的界面展示所有服务器和虚拟机的端口使用情况,一目了然
- 自动端口扫描:支持自动扫描指定服务器上当前已使用的端口,省去人工录入步骤
- 随机端口生成器:一键生成未使用的随机端口,方便快捷分配

- 端口使用记录管理:用户可为不同主机、服务分配端口,避免团队成员或多项目间的冲突
- 多系统集中管理:可统一管理多个服务器与VM的端口信息,支持标签与分类功能
- 权限控制与协作:支持多用户访问与权限设置,适合团队协作使用

安装方式和使用
PortNote支持Docker快速部署,只需简单的几步即可完成安装:
创建项目目录并进入:
1
2mkdir -p /volume1/docker/portnote/data
cd /volume1/docker/portnote创建.env配置文件,设置数据库连接和登录信息:
1
2
3
4
5
6
7
8
9
10
11
12
13# PostgreSQL配置
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=postgres
# Web/Agent使用的数据库连接
DATABASE_URL=postgresql://postgres:postgres@db:5432/postgres
# Web登录及加密配置
JWT_SECRET=your_jwt_secret
USER_SECRET=your_user_secret
LOGIN_USERNAME=your_username
LOGIN_PASSWORD=your_password创建docker-compose.yml文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33version: "3.8"
services:
web:
image: registry.cn-shanghai.aliyuncs.com/study-03/portnote:latest
container_name: portnote-web
restart: unless-stopped
ports:
- "3233:3000"
environment:
JWT_SECRET: ${JWT_SECRET}
USER_SECRET: ${USER_SECRET}
LOGIN_USERNAME: ${LOGIN_USERNAME}
LOGIN_PASSWORD: ${LOGIN_PASSWORD}
DATABASE_URL: ${DATABASE_URL}
agent:
image: registry.cn-shanghai.aliyuncs.com/study-03/portnote-agent:latest
container_name: portnote-agent
restart: unless-stopped
user: root
environment:
DATABASE_URL: ${DATABASE_URL}
db:
image: registry.cn-shanghai.aliyuncs.com/study-03/postgres:17
container_name: portnote-db
restart: always
volumes:
- ./data:/var/lib/postgresql/data
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}启动服务:
1
docker-compose --env-file .env up -d
访问服务:在浏览器中输入
http://服务器IP:3233即可访问PortNote界面
小结
PortNote确实是一款好用的端口管理工具,它将传统的基于电子表格或文档的端口管理方式,转变为一个现代化、可视化的Web应用。无论是个人开发者管理本地开发环境,还是运维团队管理生产服务器集群,PortNote都能提供清晰、有序的端口管理解决方案。
1 | Github地址:https://github.com/crocofied/PortNote |