From ac2e37ce1d7e0dff003867f9b0cf207fbcfe4757 Mon Sep 17 00:00:00 2001 From: Meng Sen Date: Mon, 20 Jan 2025 12:29:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E5=BA=94=E7=94=A8=EF=BC=9AEi?= =?UTF-8?q?genfocus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng Sen --- eigenfocus/0.6.0/data.yml | 24 +++++++++++++++ eigenfocus/0.6.0/docker-compose.yml | 22 ++++++++++++++ eigenfocus/0.6.0/envs/default.env | 2 ++ eigenfocus/0.6.0/envs/global.env | 2 ++ eigenfocus/0.6.0/scripts/init.sh | 17 +++++++++++ eigenfocus/0.6.0/scripts/uninstall.sh | 10 +++++++ eigenfocus/0.6.0/scripts/upgrade.sh | 17 +++++++++++ eigenfocus/README.md | 41 ++++++++++++++++++++++++++ eigenfocus/data.yml | 14 +++++++++ eigenfocus/logo.png | Bin 0 -> 15203 bytes 10 files changed, 149 insertions(+) create mode 100644 eigenfocus/0.6.0/data.yml create mode 100644 eigenfocus/0.6.0/docker-compose.yml create mode 100644 eigenfocus/0.6.0/envs/default.env create mode 100644 eigenfocus/0.6.0/envs/global.env create mode 100644 eigenfocus/0.6.0/scripts/init.sh create mode 100644 eigenfocus/0.6.0/scripts/uninstall.sh create mode 100644 eigenfocus/0.6.0/scripts/upgrade.sh create mode 100644 eigenfocus/README.md create mode 100644 eigenfocus/data.yml create mode 100644 eigenfocus/logo.png diff --git a/eigenfocus/0.6.0/data.yml b/eigenfocus/0.6.0/data.yml new file mode 100644 index 000000000..453e92414 --- /dev/null +++ b/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/eigenfocus/0.6.0/docker-compose.yml b/eigenfocus/0.6.0/docker-compose.yml new file mode 100644 index 000000000..2f09d59cc --- /dev/null +++ b/eigenfocus/0.6.0/docker-compose.yml @@ -0,0 +1,22 @@ +networks: + 1panel-network: + external: true + +services: + eigenfocus: + image: eigenfocus/eigenfocus:0.6.0 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:3000 + env_file: + - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ${EIGENFOCUS_ROOT_PATH}/data:/eigenfocus-app/app-data + environment: + - TZ=Asia/Shanghai diff --git a/eigenfocus/0.6.0/envs/default.env b/eigenfocus/0.6.0/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/eigenfocus/0.6.0/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/eigenfocus/0.6.0/envs/global.env b/eigenfocus/0.6.0/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/eigenfocus/0.6.0/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/eigenfocus/0.6.0/scripts/init.sh b/eigenfocus/0.6.0/scripts/init.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/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/eigenfocus/0.6.0/scripts/uninstall.sh b/eigenfocus/0.6.0/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/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/eigenfocus/0.6.0/scripts/upgrade.sh b/eigenfocus/0.6.0/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/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/eigenfocus/README.md b/eigenfocus/README.md new file mode 100644 index 000000000..ebf7b4fcc --- /dev/null +++ b/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/eigenfocus/data.yml b/eigenfocus/data.yml new file mode 100644 index 000000000..d58a29ebe --- /dev/null +++ b/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/eigenfocus/logo.png b/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