From f75bb01c35f3ad5f75bb796a46586f36d61546fd Mon Sep 17 00:00:00 2001 From: QYG2297248353 Date: Mon, 20 Jan 2025 06:27:01 +0000 Subject: [PATCH] Processed apps directory via GitHub Actions --- appstore/beszel-agent/0.9.1/.env | 9 ++ appstore/beszel-agent/0.9.1/data.yml | 33 ++++++++ .../beszel-agent/0.9.1/docker-compose.yml | 22 +++++ appstore/beszel-agent/0.9.1/envs/default.env | 2 + appstore/beszel-agent/0.9.1/envs/global.env | 2 + appstore/beszel-agent/0.9.1/scripts/init.sh | 17 ++++ .../beszel-agent/0.9.1/scripts/uninstall.sh | 10 +++ .../beszel-agent/0.9.1/scripts/upgrade.sh | 17 ++++ appstore/beszel-agent/README.md | 77 ++++++++++++++++++ appstore/beszel-agent/data.yml | 14 ++++ appstore/beszel-agent/logo.png | Bin 0 -> 30399 bytes appstore/beszel/0.9.1/.env | 12 +++ appstore/beszel/0.9.1/data.yml | 41 ++++++++++ appstore/beszel/0.9.1/docker-compose.yml | 21 +++++ appstore/beszel/0.9.1/envs/default.env | 2 + appstore/beszel/0.9.1/envs/global.env | 2 + appstore/beszel/0.9.1/scripts/init.sh | 17 ++++ appstore/beszel/0.9.1/scripts/uninstall.sh | 10 +++ appstore/beszel/0.9.1/scripts/upgrade.sh | 17 ++++ appstore/beszel/README.md | 52 ++++++++++++ appstore/beszel/data.yml | 14 ++++ appstore/beszel/logo.png | Bin 0 -> 30399 bytes appstore/cyberchef/10.19.4/docker-compose.yml | 8 +- appstore/eigenfocus/0.6.0/.env | 9 ++ appstore/eigenfocus/0.6.0/data.yml | 24 ++++++ appstore/eigenfocus/0.6.0/docker-compose.yml | 21 +++++ appstore/eigenfocus/0.6.0/envs/default.env | 2 + appstore/eigenfocus/0.6.0/envs/global.env | 2 + appstore/eigenfocus/0.6.0/scripts/init.sh | 17 ++++ .../eigenfocus/0.6.0/scripts/uninstall.sh | 10 +++ appstore/eigenfocus/0.6.0/scripts/upgrade.sh | 17 ++++ appstore/eigenfocus/README.md | 41 ++++++++++ appstore/eigenfocus/data.yml | 14 ++++ appstore/eigenfocus/logo.png | Bin 0 -> 15203 bytes dockge/beszel-agent/.env | 9 ++ dockge/beszel-agent/docker-compose.yml | 22 +++++ dockge/beszel-agent/envs/default.env | 2 + dockge/beszel-agent/envs/global.env | 2 + dockge/beszel/.env | 12 +++ dockge/beszel/docker-compose.yml | 21 +++++ dockge/beszel/envs/default.env | 2 + dockge/beszel/envs/global.env | 2 + dockge/cyberchef/docker-compose.yml | 8 +- dockge/eigenfocus/.env | 9 ++ dockge/eigenfocus/docker-compose.yml | 21 +++++ dockge/eigenfocus/envs/default.env | 2 + dockge/eigenfocus/envs/global.env | 2 + 47 files changed, 662 insertions(+), 8 deletions(-) create mode 100644 appstore/beszel-agent/0.9.1/.env create mode 100644 appstore/beszel-agent/0.9.1/data.yml create mode 100644 appstore/beszel-agent/0.9.1/docker-compose.yml create mode 100644 appstore/beszel-agent/0.9.1/envs/default.env create mode 100644 appstore/beszel-agent/0.9.1/envs/global.env create mode 100644 appstore/beszel-agent/0.9.1/scripts/init.sh create mode 100644 appstore/beszel-agent/0.9.1/scripts/uninstall.sh create mode 100644 appstore/beszel-agent/0.9.1/scripts/upgrade.sh create mode 100644 appstore/beszel-agent/README.md create mode 100644 appstore/beszel-agent/data.yml create mode 100644 appstore/beszel-agent/logo.png create mode 100644 appstore/beszel/0.9.1/.env create mode 100644 appstore/beszel/0.9.1/data.yml create mode 100644 appstore/beszel/0.9.1/docker-compose.yml create mode 100644 appstore/beszel/0.9.1/envs/default.env create mode 100644 appstore/beszel/0.9.1/envs/global.env create mode 100644 appstore/beszel/0.9.1/scripts/init.sh create mode 100644 appstore/beszel/0.9.1/scripts/uninstall.sh create mode 100644 appstore/beszel/0.9.1/scripts/upgrade.sh create mode 100644 appstore/beszel/README.md create mode 100644 appstore/beszel/data.yml create mode 100644 appstore/beszel/logo.png create mode 100644 appstore/eigenfocus/0.6.0/.env create mode 100644 appstore/eigenfocus/0.6.0/data.yml create mode 100644 appstore/eigenfocus/0.6.0/docker-compose.yml create mode 100644 appstore/eigenfocus/0.6.0/envs/default.env create mode 100644 appstore/eigenfocus/0.6.0/envs/global.env create mode 100644 appstore/eigenfocus/0.6.0/scripts/init.sh create mode 100644 appstore/eigenfocus/0.6.0/scripts/uninstall.sh create mode 100644 appstore/eigenfocus/0.6.0/scripts/upgrade.sh create mode 100644 appstore/eigenfocus/README.md create mode 100644 appstore/eigenfocus/data.yml create mode 100644 appstore/eigenfocus/logo.png create mode 100644 dockge/beszel-agent/.env create mode 100644 dockge/beszel-agent/docker-compose.yml create mode 100644 dockge/beszel-agent/envs/default.env create mode 100644 dockge/beszel-agent/envs/global.env create mode 100644 dockge/beszel/.env create mode 100644 dockge/beszel/docker-compose.yml create mode 100644 dockge/beszel/envs/default.env create mode 100644 dockge/beszel/envs/global.env create mode 100644 dockge/eigenfocus/.env create mode 100644 dockge/eigenfocus/docker-compose.yml create mode 100644 dockge/eigenfocus/envs/default.env create mode 100644 dockge/eigenfocus/envs/global.env diff --git a/appstore/beszel-agent/0.9.1/.env b/appstore/beszel-agent/0.9.1/.env new file mode 100644 index 000000000..aa79c34cc --- /dev/null +++ b/appstore/beszel-agent/0.9.1/.env @@ -0,0 +1,9 @@ +# 网络模式 [必填] +NETWORK_MODE=host + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=45876 + +# 公钥 (Hub端生成) [必填] +KEY= + diff --git a/appstore/beszel-agent/0.9.1/data.yml b/appstore/beszel-agent/0.9.1/data.yml new file mode 100644 index 000000000..9322ebb29 --- /dev/null +++ b/appstore/beszel-agent/0.9.1/data.yml @@ -0,0 +1,33 @@ +additionalProperties: + formFields: + - default: "host" + edit: true + envKey: NETWORK_MODE + labelEn: Drive path + labelZh: 网络模式 + required: true + type: select + values: + - label: 主机网络模式 + value: "host" + - label: 桥接网络模式 + value: "bridge" + - label: 无网络模式 + value: "none" + - label: 1panel-network + value: "1panel-network" + - default: 45876 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "" + edit: true + envKey: KEY + labelZh: 公钥 (Hub端生成) + labelEn: Public key (Generated by Hub) + required: true + type: text diff --git a/appstore/beszel-agent/0.9.1/docker-compose.yml b/appstore/beszel-agent/0.9.1/docker-compose.yml new file mode 100644 index 000000000..a20e1305b --- /dev/null +++ b/appstore/beszel-agent/0.9.1/docker-compose.yml @@ -0,0 +1,22 @@ +networks: + 1panel-network: + external: true +services: + beszel-agent: + container_name: beszel-agent + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + - LOG_LEVEL=info + - PORT=${PANEL_APP_PORT_HTTP:-45876} + image: henrygd/beszel-agent:0.9.1 + labels: + createdBy: Apps + network_mode: ${NETWORK_MODE:-host} + ports: + - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP} + restart: always + volumes: + - /var/run/docker.sock:/var/run/docker.sock diff --git a/appstore/beszel-agent/0.9.1/envs/default.env b/appstore/beszel-agent/0.9.1/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/appstore/beszel-agent/0.9.1/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/appstore/beszel-agent/0.9.1/envs/global.env b/appstore/beszel-agent/0.9.1/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/appstore/beszel-agent/0.9.1/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/appstore/beszel-agent/0.9.1/scripts/init.sh b/appstore/beszel-agent/0.9.1/scripts/init.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/appstore/beszel-agent/0.9.1/scripts/init.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/beszel-agent/0.9.1/scripts/uninstall.sh b/appstore/beszel-agent/0.9.1/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/appstore/beszel-agent/0.9.1/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/beszel-agent/0.9.1/scripts/upgrade.sh b/appstore/beszel-agent/0.9.1/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/appstore/beszel-agent/0.9.1/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/beszel-agent/README.md b/appstore/beszel-agent/README.md new file mode 100644 index 000000000..7e9ad66f9 --- /dev/null +++ b/appstore/beszel-agent/README.md @@ -0,0 +1,77 @@ +# Beszel - 代理 (Agent) + +轻量级的服务器监控平台,包含 Docker 统计信息、历史数据和警报功能 + +![Beszel](https://file.lifebus.top/imgs/beszel_cover.png) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 特性 + +### 轻量级 + +比主要解决方案更小,资源占用更少。 + +### 简单 + +易于设置,无需公网暴露。 + +### Docker 统计 + +跟踪每个容器的 CPU、内存和网络使用历史。 + +### 警报 + +可配置 CPU、内存、磁盘、带宽、温度和状态的警报。 + +### 多用户 + +用户管理自己的系统。管理员可以在用户之间共享系统。 + +### OAuth / OIDC + +支持多种 OAuth2 提供程序。可以禁用密码验证。 + +### 自动备份 + +从磁盘或 S3 兼容的存储保存和恢复数据。 + +### REST API + +在您自己的脚本和应用程序中使用或更新您的数据。 + +### 架构 + +Beszel 由两个主要组件组成:中心 (hub) 和 代理 (agent)。 + ++ 中心 (hub): 一个基于 PocketBase 构建的 Web 应用程序,提供用于查看和管理连接系统的仪表板。 ++ 代理 (agent): 在您要监控的每个系统上运行,创建一个最小的 SSH 服务器以将系统指标传递到中心。 + +### 安装说明 + +#### 主机网络模式 + +代理必须使用主机网络模式才能访问网络接口指标,这将自动暴露端口。如果需要,可以使用环境变量更改端口。 + +#### 磁盘监控 + +您可以使用 Beszel 监控磁盘、分区或远程挂载。 + +> 使用 lsblk 命令查找分区的名称和挂载点。 + +在容器的 /extra-filesystems 目录中挂载目标文件系统中的文件夹。 + +```yml +services: + beszel-agent: + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - /<挂载点>/.beszel:/extra-filesystems/<挂载点>:ro +``` + ++ 挂载点: 挂载点的名称。 ++ ro: 只读模式 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/appstore/beszel-agent/data.yml b/appstore/beszel-agent/data.yml new file mode 100644 index 000000000..710362000 --- /dev/null +++ b/appstore/beszel-agent/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: beszel-agent + name: Beszel Agent + tags: + - WebSite + - Local + shortDescZh: 轻量级的服务器监控平台,包含 Docker 统计信息、历史数据和警报功能 + shortDescEn: A lightweight server monitoring platform with Docker statistics, historical data, and alerting capabilities + type: website + crossVersionUpdate: true + limit: 0 + website: https://beszel.dev/ + github: https://github.com/henrygd/beszel/ + document: https://beszel.dev/ diff --git a/appstore/beszel-agent/logo.png b/appstore/beszel-agent/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..24e6e7a743c6e56881d238b07d64a09cfe16b6c5 GIT binary patch literal 30399 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 literal 0 HcmV?d00001 diff --git a/appstore/beszel/0.9.1/.env b/appstore/beszel/0.9.1/.env new file mode 100644 index 000000000..ed1604b75 --- /dev/null +++ b/appstore/beszel/0.9.1/.env @@ -0,0 +1,12 @@ +# 数据持久化路径 [必填] +BESZEL_ROOT_PATH=/home/beszel + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=8090 + +# 密码验证功能 [必填] +DISABLE_PASSWORD_AUTH=false + +# 第三方用户注册功能 [必填] +USER_CREATION=false + diff --git a/appstore/beszel/0.9.1/data.yml b/appstore/beszel/0.9.1/data.yml new file mode 100644 index 000000000..5baca7595 --- /dev/null +++ b/appstore/beszel/0.9.1/data.yml @@ -0,0 +1,41 @@ +additionalProperties: + formFields: + - default: "/home/beszel" + edit: true + envKey: BESZEL_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 8090 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "false" + edit: true + envKey: DISABLE_PASSWORD_AUTH + labelZh: 密码验证功能 + labelEn: Disable password authentication + required: true + type: select + values: + - label: 禁用 + value: "true" + - label: 启用 + value: "false" + - default: "false" + edit: true + envKey: USER_CREATION + labelZh: 第三方用户注册功能 + labelEn: Third-party user registration + required: true + type: select + values: + - label: 禁用 + value: "true" + - label: 启用 + value: "false" diff --git a/appstore/beszel/0.9.1/docker-compose.yml b/appstore/beszel/0.9.1/docker-compose.yml new file mode 100644 index 000000000..949095cb2 --- /dev/null +++ b/appstore/beszel/0.9.1/docker-compose.yml @@ -0,0 +1,21 @@ +networks: + 1panel-network: + external: true +services: + beszel: + container_name: beszel + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + image: henrygd/beszel:0.9.1 + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8090 + restart: always + volumes: + - ${BESZEL_ROOT_PATH}/data:/beszel_data diff --git a/appstore/beszel/0.9.1/envs/default.env b/appstore/beszel/0.9.1/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/appstore/beszel/0.9.1/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/appstore/beszel/0.9.1/envs/global.env b/appstore/beszel/0.9.1/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/appstore/beszel/0.9.1/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/appstore/beszel/0.9.1/scripts/init.sh b/appstore/beszel/0.9.1/scripts/init.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/appstore/beszel/0.9.1/scripts/init.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/beszel/0.9.1/scripts/uninstall.sh b/appstore/beszel/0.9.1/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/appstore/beszel/0.9.1/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/beszel/0.9.1/scripts/upgrade.sh b/appstore/beszel/0.9.1/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/appstore/beszel/0.9.1/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/beszel/README.md b/appstore/beszel/README.md new file mode 100644 index 000000000..0852f4d79 --- /dev/null +++ b/appstore/beszel/README.md @@ -0,0 +1,52 @@ +# Beszel - 服务端 (Hub) + +轻量级的服务器监控平台,包含 Docker 统计信息、历史数据和警报功能 + +![Beszel](https://file.lifebus.top/imgs/beszel_cover.png) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 特性 + +### 轻量级 + +比主要解决方案更小,资源占用更少。 + +### 简单 + +易于设置,无需公网暴露。 + +### Docker 统计 + +跟踪每个容器的 CPU、内存和网络使用历史。 + +### 警报 + +可配置 CPU、内存、磁盘、带宽、温度和状态的警报。 + +### 多用户 + +用户管理自己的系统。管理员可以在用户之间共享系统。 + +### OAuth / OIDC + +支持多种 OAuth2 提供程序。可以禁用密码验证。 + +### 自动备份 + +从磁盘或 S3 兼容的存储保存和恢复数据。 + +### REST API + +在您自己的脚本和应用程序中使用或更新您的数据。 + +### 架构 + +Beszel 由两个主要组件组成:中心 (hub) 和 代理 (agent)。 + ++ 中心 (hub): 一个基于 PocketBase 构建的 Web 应用程序,提供用于查看和管理连接系统的仪表板。 ++ 代理 (agent): 在您要监控的每个系统上运行,创建一个最小的 SSH 服务器以将系统指标传递到中心。 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/appstore/beszel/data.yml b/appstore/beszel/data.yml new file mode 100644 index 000000000..052179e3f --- /dev/null +++ b/appstore/beszel/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: beszel + name: Beszel Hub + tags: + - WebSite + - Local + shortDescZh: 轻量级的服务器监控平台,包含 Docker 统计信息、历史数据和警报功能 + shortDescEn: A lightweight server monitoring platform with Docker statistics, historical data, and alerting capabilities + type: website + crossVersionUpdate: true + limit: 0 + website: https://beszel.dev/ + github: https://github.com/henrygd/beszel/ + document: https://beszel.dev/ diff --git a/appstore/beszel/logo.png b/appstore/beszel/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..24e6e7a743c6e56881d238b07d64a09cfe16b6c5 GIT binary patch literal 30399 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 literal 0 HcmV?d00001 diff --git a/appstore/cyberchef/10.19.4/docker-compose.yml b/appstore/cyberchef/10.19.4/docker-compose.yml index 7c2861d63..18a6a9f99 100644 --- a/appstore/cyberchef/10.19.4/docker-compose.yml +++ b/appstore/cyberchef/10.19.4/docker-compose.yml @@ -5,13 +5,13 @@ services: cyberchef: container_name: cyberchef env_file: - - ./envs/global.env - - .env + - ./envs/global.env + - .env image: ghcr.io/gchq/cyberchef:10.19.4 labels: createdBy: Apps networks: - - 1panel-network + - 1panel-network ports: - - ${PANEL_APP_PORT_HTTP}:80 + - ${PANEL_APP_PORT_HTTP}:80 restart: always diff --git a/appstore/eigenfocus/0.6.0/.env b/appstore/eigenfocus/0.6.0/.env new file mode 100644 index 000000000..11476eeb7 --- /dev/null +++ b/appstore/eigenfocus/0.6.0/.env @@ -0,0 +1,9 @@ +# 数据持久化路径 [必填] +EIGENFOCUS_ROOT_PATH=/home/eigenfocus + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=3000 + +# 服务地址 [必填] +DEFAULT_HOST_URL=http://127.0.0.1:3000 + diff --git a/appstore/eigenfocus/0.6.0/data.yml b/appstore/eigenfocus/0.6.0/data.yml new file mode 100644 index 000000000..453e92414 --- /dev/null +++ b/appstore/eigenfocus/0.6.0/data.yml @@ -0,0 +1,24 @@ +additionalProperties: + formFields: + - default: "/home/eigenfocus" + edit: true + envKey: EIGENFOCUS_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 3000 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "http://127.0.0.1:3000" + edit: true + envKey: DEFAULT_HOST_URL + labelZh: 服务地址 + labelEn: Server Url + required: true + type: text diff --git a/appstore/eigenfocus/0.6.0/docker-compose.yml b/appstore/eigenfocus/0.6.0/docker-compose.yml new file mode 100644 index 000000000..c346a23df --- /dev/null +++ b/appstore/eigenfocus/0.6.0/docker-compose.yml @@ -0,0 +1,21 @@ +networks: + 1panel-network: + external: true +services: + eigenfocus: + container_name: eigenfocus + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + image: eigenfocus/eigenfocus:0.6.0 + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:3000 + restart: always + volumes: + - ${EIGENFOCUS_ROOT_PATH}/data:/eigenfocus-app/app-data diff --git a/appstore/eigenfocus/0.6.0/envs/default.env b/appstore/eigenfocus/0.6.0/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/appstore/eigenfocus/0.6.0/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/appstore/eigenfocus/0.6.0/envs/global.env b/appstore/eigenfocus/0.6.0/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/appstore/eigenfocus/0.6.0/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/appstore/eigenfocus/0.6.0/scripts/init.sh b/appstore/eigenfocus/0.6.0/scripts/init.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/appstore/eigenfocus/0.6.0/scripts/init.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/eigenfocus/0.6.0/scripts/uninstall.sh b/appstore/eigenfocus/0.6.0/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/appstore/eigenfocus/0.6.0/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/eigenfocus/0.6.0/scripts/upgrade.sh b/appstore/eigenfocus/0.6.0/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/appstore/eigenfocus/0.6.0/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/eigenfocus/README.md b/appstore/eigenfocus/README.md new file mode 100644 index 000000000..ebf7b4fcc --- /dev/null +++ b/appstore/eigenfocus/README.md @@ -0,0 +1,41 @@ +# Eigenfocus + +看板、时间跟踪与专注工具 + +![Eigenfocus](https://file.lifebus.top/imgs/eigenfocus_cover.png) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 简介 + +### 项目 + +创建/编辑/更新/存档您的项目 + +### 版块 + +每个项目都有一个版块,您可以在其中自定义列以适应您的流程 + +### 问题 + +创建问题,编写 Markdown 描述并附加文件 + +### 工作流程与看板 + +在列之间移动问题 + +### 时间跟踪 + +跟踪在项目和特定问题上的时间 + +### 时间报告 + +按项目和时间段生成时间报告 + +### 主题 + +根据您的喜好自定义 UI + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/appstore/eigenfocus/data.yml b/appstore/eigenfocus/data.yml new file mode 100644 index 000000000..d58a29ebe --- /dev/null +++ b/appstore/eigenfocus/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: eigenfocus + name: Eigenfocus + tags: + - WebSite + - Local + shortDescZh: 看板、时间跟踪与专注工具 + shortDescEn: Dashboard, Time Tracking and Focus Tool + type: website + crossVersionUpdate: true + limit: 0 + website: https://eigenfocus.com/ + github: https://github.com/Eigenfocus/eigenfocus/ + document: https://eigenfocus.com/ diff --git a/appstore/eigenfocus/logo.png b/appstore/eigenfocus/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5638e2178017812662915dfa01ff62af48083a5f GIT binary patch literal 15203 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 IpcnA}1BxHWm;e9( literal 0 HcmV?d00001 diff --git a/dockge/beszel-agent/.env b/dockge/beszel-agent/.env new file mode 100644 index 000000000..aa79c34cc --- /dev/null +++ b/dockge/beszel-agent/.env @@ -0,0 +1,9 @@ +# 网络模式 [必填] +NETWORK_MODE=host + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=45876 + +# 公钥 (Hub端生成) [必填] +KEY= + diff --git a/dockge/beszel-agent/docker-compose.yml b/dockge/beszel-agent/docker-compose.yml new file mode 100644 index 000000000..a20e1305b --- /dev/null +++ b/dockge/beszel-agent/docker-compose.yml @@ -0,0 +1,22 @@ +networks: + 1panel-network: + external: true +services: + beszel-agent: + container_name: beszel-agent + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + - LOG_LEVEL=info + - PORT=${PANEL_APP_PORT_HTTP:-45876} + image: henrygd/beszel-agent:0.9.1 + labels: + createdBy: Apps + network_mode: ${NETWORK_MODE:-host} + ports: + - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP} + restart: always + volumes: + - /var/run/docker.sock:/var/run/docker.sock diff --git a/dockge/beszel-agent/envs/default.env b/dockge/beszel-agent/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/dockge/beszel-agent/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/dockge/beszel-agent/envs/global.env b/dockge/beszel-agent/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/dockge/beszel-agent/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/dockge/beszel/.env b/dockge/beszel/.env new file mode 100644 index 000000000..ed1604b75 --- /dev/null +++ b/dockge/beszel/.env @@ -0,0 +1,12 @@ +# 数据持久化路径 [必填] +BESZEL_ROOT_PATH=/home/beszel + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=8090 + +# 密码验证功能 [必填] +DISABLE_PASSWORD_AUTH=false + +# 第三方用户注册功能 [必填] +USER_CREATION=false + diff --git a/dockge/beszel/docker-compose.yml b/dockge/beszel/docker-compose.yml new file mode 100644 index 000000000..949095cb2 --- /dev/null +++ b/dockge/beszel/docker-compose.yml @@ -0,0 +1,21 @@ +networks: + 1panel-network: + external: true +services: + beszel: + container_name: beszel + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + image: henrygd/beszel:0.9.1 + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8090 + restart: always + volumes: + - ${BESZEL_ROOT_PATH}/data:/beszel_data diff --git a/dockge/beszel/envs/default.env b/dockge/beszel/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/dockge/beszel/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/dockge/beszel/envs/global.env b/dockge/beszel/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/dockge/beszel/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/dockge/cyberchef/docker-compose.yml b/dockge/cyberchef/docker-compose.yml index 7c2861d63..18a6a9f99 100644 --- a/dockge/cyberchef/docker-compose.yml +++ b/dockge/cyberchef/docker-compose.yml @@ -5,13 +5,13 @@ services: cyberchef: container_name: cyberchef env_file: - - ./envs/global.env - - .env + - ./envs/global.env + - .env image: ghcr.io/gchq/cyberchef:10.19.4 labels: createdBy: Apps networks: - - 1panel-network + - 1panel-network ports: - - ${PANEL_APP_PORT_HTTP}:80 + - ${PANEL_APP_PORT_HTTP}:80 restart: always diff --git a/dockge/eigenfocus/.env b/dockge/eigenfocus/.env new file mode 100644 index 000000000..11476eeb7 --- /dev/null +++ b/dockge/eigenfocus/.env @@ -0,0 +1,9 @@ +# 数据持久化路径 [必填] +EIGENFOCUS_ROOT_PATH=/home/eigenfocus + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=3000 + +# 服务地址 [必填] +DEFAULT_HOST_URL=http://127.0.0.1:3000 + diff --git a/dockge/eigenfocus/docker-compose.yml b/dockge/eigenfocus/docker-compose.yml new file mode 100644 index 000000000..c346a23df --- /dev/null +++ b/dockge/eigenfocus/docker-compose.yml @@ -0,0 +1,21 @@ +networks: + 1panel-network: + external: true +services: + eigenfocus: + container_name: eigenfocus + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + image: eigenfocus/eigenfocus:0.6.0 + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:3000 + restart: always + volumes: + - ${EIGENFOCUS_ROOT_PATH}/data:/eigenfocus-app/app-data diff --git a/dockge/eigenfocus/envs/default.env b/dockge/eigenfocus/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/dockge/eigenfocus/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/dockge/eigenfocus/envs/global.env b/dockge/eigenfocus/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/dockge/eigenfocus/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai