feat: create app PortNote

This commit is contained in:
arch3rPro
2025-07-10 18:17:49 +08:00
parent a79eeffb78
commit e546a86e88
7 changed files with 252 additions and 0 deletions

56
apps/portnote/README.md Normal file
View File

@@ -0,0 +1,56 @@
<div align="center">
<h1><b>PortNote</b></h1>
<p>
轻量级服务器端口管理与可视化工具
<br />
<a href="https://github.com/crocofied/PortNote"><strong>GitHub</strong></a>
</p>
</div>
<br />
> [!提示]
> PortNote 是一款轻量级服务器端口管理与可视化工具,适合资产与端口信息管理,支持多平台部署。
## 主要功能
- 端口信息可视化管理
- 支持多服务器、多端口批量管理
- 端口用途、负责人、备注等信息记录
- 支持端口状态标记(如已用、空闲、保留等)
- 支持导入导出JSON、Excel
- 支持 Docker 一键部署
- 支持自定义字段
- 支持多用户协作
## 快速开始
### Docker 部署
```bash
docker run -d \
-p 8080:8080 \
-v $PWD/data:/app/data \
--name portnote \
crocofied/portnote:latest
```
- 默认访问地址http://localhost:8080
- 数据将持久化到挂载的 `data` 目录
### 其他部署方式
详见[官方文档](https://github.com/crocofied/PortNote/blob/main/README.md)
## 截图
<p align="center">
<img alt="screenshot" src="https://raw.githubusercontent.com/crocofied/PortNote/main/docs/images/portnote-main.png" width="80%">
</p>
## 常见问题 FAQ
- **Q: 支持哪些平台?**
A: 支持 Docker、Linux、Windows、MacOS。
- **Q: 如何备份数据?**
A: 数据默认保存在挂载的 data 目录,直接备份该目录即可。
- **Q: 支持多用户协作吗?**
A: 支持,可为不同用户分配不同权限。
- **Q: 支持自定义端口字段吗?**
A: 支持,可在设置中自定义字段。
## 相关链接
- GitHub: https://github.com/crocofied/PortNote
- 官方文档: https://github.com/crocofied/PortNote/blob/main/README.md

View File

@@ -0,0 +1,56 @@
<div align="center">
<h1><b>PortNote</b></h1>
<p>
Lightweight server port management and visualization tool
<br />
<a href="https://github.com/crocofied/PortNote"><strong>GitHub</strong></a>
</p>
</div>
<br />
> [!NOTE]
> PortNote is a lightweight server port management and visualization tool, suitable for asset and port information management, supporting cross-platform deployment.
## Features
- Visual management of port information
- Batch management for multiple servers and ports
- Record port usage, owner, remarks, etc.
- Mark port status (used, idle, reserved, etc.)
- Import/export (JSON, Excel)
- One-click Docker deployment
- Custom fields supported
- Multi-user collaboration
## Getting Started
### Docker Deployment
```bash
docker run -d \
-p 8080:8080 \
-v $PWD/data:/app/data \
--name portnote \
crocofied/portnote:latest
```
- Default access: http://localhost:8080
- Data will be persisted in the mounted `data` directory
### Other Deployment Methods
See the [official documentation](https://github.com/crocofied/PortNote/blob/main/README.md) for details.
## Screenshot
<p align="center">
<img alt="screenshot" src="https://raw.githubusercontent.com/crocofied/PortNote/main/docs/images/portnote-main.png" width="80%">
</p>
## FAQ
- **Q: Which platforms are supported?**
A: Docker, Linux, Windows, MacOS are supported.
- **Q: How to backup data?**
A: Data is stored in the mounted data directory, just backup this directory.
- **Q: Does it support multi-user collaboration?**
A: Yes, you can assign different permissions to different users.
- **Q: Can I customize port fields?**
A: Yes, you can customize fields in the settings.
## Links
- GitHub: https://github.com/crocofied/PortNote
- Documentation: https://github.com/crocofied/PortNote/blob/main/README.md

34
apps/portnote/data.yml Normal file
View File

@@ -0,0 +1,34 @@
name: PortNote
tags:
- 运维
- 资产管理
- 端口管理
- 可视化
- Docker
- 网络
title: 服务器端口管理与可视化工具
description: 轻量级服务器端口管理与可视化工具,支持多平台部署,适合资产与端口信息管理。
additionalProperties:
key: portnote
name: PortNote
tags:
- Tool
- Port
- Network
- Ops
shortDescZh: 轻量级服务器端口管理与可视化工具,支持多平台部署。
shortDescEn: Lightweight server port management and visualization tool, cross-platform supported.
description:
zh: PortNote 是一款轻量级服务器端口管理与可视化工具,支持多平台部署,适合资产与端口信息管理。
en: PortNote is a lightweight server port management and visualization tool, suitable for asset and port information management.
type: website
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://github.com/crocofied/PortNote
github: https://github.com/crocofied/PortNote
document: https://github.com/crocofied/PortNote/blob/main/README.md

View File

@@ -0,0 +1,19 @@
additionalProperties:
formFields:
- default: 30000
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: PANEL_DB_USER_PASSWORD
labelEn: Database Password
labelZh: 数据库用户密码
random: true
required: true
rule: paramComplexity
type: password

View File

@@ -0,0 +1,34 @@
services:
web:
image: haedlessdev/portnote:latest
container_name: portnote
restart: always
ports:
- "${PANEL_APP_PORT_HTTP}:3000"
environment:
JWT_SECRET: "changeme_jwt_secret"
USER_SECRET: "changeme_user_secret"
LOGIN_USERNAME: "admin"
LOGIN_PASSWORD: "admin"
DATABASE_URL: "postgresql://postgres:${PANEL_DB_USER_PASSWORD}@db:5432/postgres"
depends_on:
db:
condition: service_started
agent:
image: haedlessdev/portnote-agent:latest
environment:
DATABASE_URL: "postgresql://postgres:${PANEL_DB_USER_PASSWORD}@db:5432/postgres"
depends_on:
db:
condition: service_started
db:
image: postgres:17
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${PANEL_DB_USER_PASSWORD}
POSTGRES_DB: postgres
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:

View File

@@ -0,0 +1,19 @@
additionalProperties:
formFields:
- default: 30000
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
labelZh: 端口
required: true
rule: paramPort
type: number
- default: ""
edit: true
envKey: PANEL_DB_USER_PASSWORD
labelEn: Database Password
labelZh: 数据库用户密码
random: true
required: true
rule: paramComplexity
type: password

View File

@@ -0,0 +1,34 @@
services:
web:
image: haedlessdev/portnote:v1.2.0
container_name: portnote
restart: always
ports:
- "${PANEL_APP_PORT_HTTP}:3000"
environment:
JWT_SECRET: "changeme_jwt_secret"
USER_SECRET: "changeme_user_secret"
LOGIN_USERNAME: "admin"
LOGIN_PASSWORD: "admin"
DATABASE_URL: "postgresql://postgres:${PANEL_DB_USER_PASSWORD}@db:5432/postgres"
depends_on:
db:
condition: service_started
agent:
image: haedlessdev/portnote-agent:v1.2.0
environment:
DATABASE_URL: "postgresql://postgres:${PANEL_DB_USER_PASSWORD}@db:5432/postgres"
depends_on:
db:
condition: service_started
db:
image: postgres:17
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${PANEL_DB_USER_PASSWORD}
POSTGRES_DB: postgres
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data: