From 09da05994d0461b8fbeb62f69c4e69d06eaca2b4 Mon Sep 17 00:00:00 2001 From: okxlin Date: Thu, 20 Jun 2024 22:59:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0puter=E5=88=B0=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/puter/README.md | 44 ++++++++++++++++++++ apps/puter/data.yml | 19 +++++++++ apps/puter/latest/.env.sample | 8 ++++ apps/puter/latest/data.yml | 53 +++++++++++++++++++++++++ apps/puter/latest/data/config/.gitkeep | 0 apps/puter/latest/data/data/.gitkeep | 0 apps/puter/latest/docker-compose.yml | 29 ++++++++++++++ apps/puter/latest/scripts/init.sh | 3 ++ apps/puter/logo.png | Bin 0 -> 7301 bytes 9 files changed, 156 insertions(+) create mode 100644 apps/puter/README.md create mode 100644 apps/puter/data.yml create mode 100644 apps/puter/latest/.env.sample create mode 100644 apps/puter/latest/data.yml create mode 100644 apps/puter/latest/data/config/.gitkeep create mode 100644 apps/puter/latest/data/data/.gitkeep create mode 100644 apps/puter/latest/docker-compose.yml create mode 100644 apps/puter/latest/scripts/init.sh create mode 100644 apps/puter/logo.png 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 @@ +

Puter.com, The Personal Cloud Computer: All your files, apps, and games in one place accessible from anywhere at any time.

+ +

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 0000000000000000000000000000000000000000..455c496bd812b6f7838e6f3d239dd89d3709456a GIT binary patch literal 7301 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 literal 0 HcmV?d00001