diff --git a/apps/puter/README.md b/apps/puter/README.md
new file mode 100644
index 00000000..d5dd29d9
--- /dev/null
+++ b/apps/puter/README.md
@@ -0,0 +1,44 @@
+

+
+The Internet OS! Free, Open-Source, and Self-Hostable.
+
+
+ « LIVE DEMO »
+
+
+ Puter.com
+ ·
+ SDK
+ ·
+ Discord
+ ·
+ Reddit
+ ·
+ X (Twitter)
+ ·
+ Bug Bounty
+
+
+
+
+
+## Puter
+
+Puter is an advanced, open-source internet operating system designed to be feature-rich, exceptionally fast, and highly extensible. It can be used to build remote desktop environments or serve as an interface for cloud storage services, remote servers, web hosting platforms, and more.
+
+
+
+## 使用说明
+
+- 默认用户名与密码查看容器日志获取
+
+- 修改配置文件后重建应用生效
+
+- 注意查看官方文档以及登录页面的提示,修改配置文件的端口和域名/IP等的设置
+
+
+配置文件路径,按需修改
+
+```
+/opt/1panel/apps/local/puter/puter/data/config/config.json
+```
\ No newline at end of file
diff --git a/apps/puter/data.yml b/apps/puter/data.yml
new file mode 100644
index 00000000..10de013c
--- /dev/null
+++ b/apps/puter/data.yml
@@ -0,0 +1,19 @@
+name: Puter
+tags:
+ - 实用工具
+title: 先进的开源互联网操作系统
+description: 先进的开源互联网操作系统
+additionalProperties:
+ key: puter
+ name: Puter
+ tags:
+ - Tool
+ shortDescZh: 先进的开源互联网操作系统
+ shortDescEn: An advanced, open-source internet operating system
+ type: tool
+ crossVersionUpdate: true
+ limit: 0
+ recommend: 0
+ website: https://puter.com
+ github: https://github.com/HeyPuter/puter
+ document: https://github.com/HeyPuter/puter
diff --git a/apps/puter/latest/.env.sample b/apps/puter/latest/.env.sample
new file mode 100644
index 00000000..22d772aa
--- /dev/null
+++ b/apps/puter/latest/.env.sample
@@ -0,0 +1,8 @@
+CONFIG_PATH="/etc/puter"
+CONTAINER_NAME="puter"
+DATA_PATH="./data"
+PANEL_APP_PORT_HTTP=40263
+PANEL_APP_PORT_INTERNAL=4100
+PGID=1000
+PUID=1000
+TIME_ZONE="Asia/Shanghai"
diff --git a/apps/puter/latest/data.yml b/apps/puter/latest/data.yml
new file mode 100644
index 00000000..4db4112a
--- /dev/null
+++ b/apps/puter/latest/data.yml
@@ -0,0 +1,53 @@
+additionalProperties:
+ formFields:
+ - default: 40263
+ edit: true
+ envKey: PANEL_APP_PORT_HTTP
+ labelEn: Port
+ labelZh: 端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: 4100
+ edit: true
+ envKey: PANEL_APP_PORT_INTERNAL
+ labelEn: Internal Container Ports
+ labelZh: 容器内部端口
+ required: true
+ rule: paramPort
+ type: number
+ - default: "Asia/Shanghai"
+ edit: true
+ envKey: TIME_ZONE
+ labelEn: Time Zone
+ labelZh: 时区
+ required: true
+ type: text
+ - default: 1000
+ disabled: true
+ envKey: PUID
+ labelEn: User ID
+ labelZh: 用户 ID
+ required: true
+ type: number
+ - default: 1000
+ disabled: true
+ envKey: PGID
+ labelEn: Group ID
+ labelZh: 组 ID
+ required: true
+ type: number
+ - default: "/etc/puter"
+ edit: true
+ envKey: CONFIG_PATH
+ labelEn: Config Path (Inside the container)
+ labelZh: 配置路径 (容器内部)
+ required: true
+ type: text
+ - default: "./data"
+ disabled: true
+ envKey: DATA_PATH
+ labelEn: Data Path
+ labelZh: 数据路径
+ required: true
+ type: text
diff --git a/apps/puter/latest/data/config/.gitkeep b/apps/puter/latest/data/config/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/apps/puter/latest/data/data/.gitkeep b/apps/puter/latest/data/data/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/apps/puter/latest/docker-compose.yml b/apps/puter/latest/docker-compose.yml
new file mode 100644
index 00000000..4ccd5825
--- /dev/null
+++ b/apps/puter/latest/docker-compose.yml
@@ -0,0 +1,29 @@
+services:
+ puter:
+ image: "ghcr.io/heyputer/puter:latest"
+ container_name: ${CONTAINER_NAME}
+ restart: always
+ networks:
+ - 1panel-network
+ ports:
+ - "${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_INTERNAL}"
+ environment:
+ - TZ=${TIME_ZONE}
+ - CONFIG_PATH=${CONFIG_PATH}
+ - PUID=${PUID}
+ - PGID=${PGID}
+ volumes:
+ - "${DATA_PATH}/config:${CONFIG_PATH}"
+ - "${DATA_PATH}/data:/var/puter"
+ healthcheck:
+ test: wget --no-verbose --tries=1 --spider http://127.0.0.1:${PANEL_APP_PORT_INTERNAL}/test || exit 1
+ interval: 30s
+ timeout: 3s
+ retries: 3
+ start_period: 30s
+ labels:
+ createdBy: "Apps"
+
+networks:
+ 1panel-network:
+ external: true
diff --git a/apps/puter/latest/scripts/init.sh b/apps/puter/latest/scripts/init.sh
new file mode 100644
index 00000000..4e811c86
--- /dev/null
+++ b/apps/puter/latest/scripts/init.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+chown -R 1000:1000 data
\ No newline at end of file
diff --git a/apps/puter/logo.png b/apps/puter/logo.png
new file mode 100644
index 00000000..455c496b
Binary files /dev/null and b/apps/puter/logo.png differ