diff --git a/apps/portnote/README.md b/apps/portnote/README.md
new file mode 100644
index 0000000..2be0905
--- /dev/null
+++ b/apps/portnote/README.md
@@ -0,0 +1,56 @@
+
+
PortNote
+
+ 轻量级服务器端口管理与可视化工具
+
+ GitHub
+
+
+
+
+> [!提示]
+> 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)
+
+## 截图
+
+
+
+
+## 常见问题 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
\ No newline at end of file
diff --git a/apps/portnote/README_en.md b/apps/portnote/README_en.md
new file mode 100644
index 0000000..b820660
--- /dev/null
+++ b/apps/portnote/README_en.md
@@ -0,0 +1,56 @@
+
+
PortNote
+
+ Lightweight server port management and visualization tool
+
+ GitHub
+
+
+
+
+> [!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
+
+
+
+
+## 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
\ No newline at end of file
diff --git a/apps/portnote/data.yml b/apps/portnote/data.yml
new file mode 100644
index 0000000..7062e63
--- /dev/null
+++ b/apps/portnote/data.yml
@@ -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
\ No newline at end of file
diff --git a/apps/portnote/latest/data.yml b/apps/portnote/latest/data.yml
new file mode 100644
index 0000000..6fff26d
--- /dev/null
+++ b/apps/portnote/latest/data.yml
@@ -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
\ No newline at end of file
diff --git a/apps/portnote/latest/docker-compose.yml b/apps/portnote/latest/docker-compose.yml
new file mode 100644
index 0000000..f6bb95e
--- /dev/null
+++ b/apps/portnote/latest/docker-compose.yml
@@ -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:
\ No newline at end of file
diff --git a/apps/portnote/v1.2.0/data.yml b/apps/portnote/v1.2.0/data.yml
new file mode 100644
index 0000000..6fff26d
--- /dev/null
+++ b/apps/portnote/v1.2.0/data.yml
@@ -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
\ No newline at end of file
diff --git a/apps/portnote/v1.2.0/docker-compose.yml b/apps/portnote/v1.2.0/docker-compose.yml
new file mode 100644
index 0000000..d29a919
--- /dev/null
+++ b/apps/portnote/v1.2.0/docker-compose.yml
@@ -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:
\ No newline at end of file