From bccd51347cc1793f25bba275d8335a4a689e6c23 Mon Sep 17 00:00:00 2001 From: QYG2297248353 Date: Mon, 17 Feb 2025 03:25:11 +0000 Subject: [PATCH] Processed apps directory via GitHub Actions --- appstore/glance/0.7.2/scripts/init.sh | 6 +- appstore/glance/0.7.2/scripts/upgrade.sh | 8 +- appstore/jellyfin/{10.10.5 => 10.10.6}/.env | 0 .../jellyfin/{10.10.5 => 10.10.6}/data.yml | 0 .../{10.10.5 => 10.10.6}/docker-compose.yml | 2 +- .../{10.10.5 => 10.10.6}/envs/default.env | 0 .../{10.10.5 => 10.10.6}/envs/global.env | 0 .../{10.10.5 => 10.10.6}/scripts/init.sh | 0 .../{10.10.5 => 10.10.6}/scripts/uninstall.sh | 0 .../{10.10.5 => 10.10.6}/scripts/upgrade.sh | 0 appstore/onedev/{11.6.14 => 11.6.15}/.env | 0 appstore/onedev/{11.6.14 => 11.6.15}/data.yml | 0 .../{11.6.14 => 11.6.15}/docker-compose.yml | 2 +- .../{11.6.14 => 11.6.15}/envs/default.env | 0 .../{11.6.14 => 11.6.15}/envs/global.env | 0 .../{11.6.14 => 11.6.15}/envs/onedev.env | 0 .../{11.6.14 => 11.6.15}/scripts/init.sh | 0 .../{11.6.14 => 11.6.15}/scripts/uninstall.sh | 0 .../{11.6.14 => 11.6.15}/scripts/upgrade.sh | 0 appstore/stream-rec-backend/main/.env | 12 +++ appstore/stream-rec-backend/main/data.yml | 32 ++++++++ .../main/docker-compose.yml | 24 ++++++ .../stream-rec-backend/main/envs/default.env | 2 + .../stream-rec-backend/main/envs/global.env | 2 + .../stream-rec-backend/main/scripts/init.sh | 17 +++++ .../main/scripts/uninstall.sh | 10 +++ .../main/scripts/upgrade.sh | 17 +++++ appstore/stream-rec-frontend/main/.env | 18 +++++ appstore/stream-rec-frontend/main/data.yml | 46 ++++++++++++ .../main/docker-compose.yml | 17 +++++ .../stream-rec-frontend/main/envs/default.env | 2 + .../stream-rec-frontend/main/envs/global.env | 2 + .../stream-rec-frontend/main/scripts/init.sh | 17 +++++ .../main/scripts/uninstall.sh | 10 +++ .../main/scripts/upgrade.sh | 17 +++++ appstore/stream-rec/main/.env | 27 +++++++ appstore/stream-rec/main/data.yml | 69 ++++++++++++++++++ appstore/stream-rec/main/docker-compose.yml | 46 ++++++++++++ appstore/stream-rec/main/envs/default.env | 2 + appstore/stream-rec/main/envs/global.env | 2 + appstore/stream-rec/main/scripts/init.sh | 17 +++++ appstore/stream-rec/main/scripts/uninstall.sh | 10 +++ appstore/stream-rec/main/scripts/upgrade.sh | 17 +++++ appstore/super-productivity/11.1.3/.env | 6 ++ .../11.1.3/conf/webdav.yaml | 13 ++++ appstore/super-productivity/11.1.3/data.yml | 17 +++++ .../11.1.3/docker-compose.yml | 31 ++++++++ .../11.1.3/envs/default.env | 2 + .../super-productivity/11.1.3/envs/global.env | 2 + .../super-productivity/11.1.3/scripts/init.sh | 23 ++++++ .../11.1.3/scripts/uninstall.sh | 10 +++ .../11.1.3/scripts/upgrade.sh | 25 +++++++ appstore/super-productivity/README.md | 27 +++++++ appstore/super-productivity/data.yml | 14 ++++ appstore/super-productivity/logo.png | Bin 0 -> 37423 bytes dockge/jellyfin/docker-compose.yml | 2 +- dockge/onedev/docker-compose.yml | 2 +- dockge/stream-rec-backend_main/.env | 12 +++ .../docker-compose.yml | 24 ++++++ .../stream-rec-backend_main/envs/default.env | 2 + .../stream-rec-backend_main/envs/global.env | 2 + dockge/stream-rec-frontend_main/.env | 18 +++++ .../docker-compose.yml | 17 +++++ .../stream-rec-frontend_main/envs/default.env | 2 + .../stream-rec-frontend_main/envs/global.env | 2 + dockge/stream-rec_main/.env | 27 +++++++ dockge/stream-rec_main/docker-compose.yml | 46 ++++++++++++ dockge/stream-rec_main/envs/default.env | 2 + dockge/stream-rec_main/envs/global.env | 2 + dockge/super-productivity/.env | 6 ++ dockge/super-productivity/conf/webdav.yaml | 13 ++++ dockge/super-productivity/docker-compose.yml | 31 ++++++++ dockge/super-productivity/envs/default.env | 2 + dockge/super-productivity/envs/global.env | 2 + 74 files changed, 826 insertions(+), 11 deletions(-) rename appstore/jellyfin/{10.10.5 => 10.10.6}/.env (100%) rename appstore/jellyfin/{10.10.5 => 10.10.6}/data.yml (100%) rename appstore/jellyfin/{10.10.5 => 10.10.6}/docker-compose.yml (96%) rename appstore/jellyfin/{10.10.5 => 10.10.6}/envs/default.env (100%) rename appstore/jellyfin/{10.10.5 => 10.10.6}/envs/global.env (100%) rename appstore/jellyfin/{10.10.5 => 10.10.6}/scripts/init.sh (100%) rename appstore/jellyfin/{10.10.5 => 10.10.6}/scripts/uninstall.sh (100%) rename appstore/jellyfin/{10.10.5 => 10.10.6}/scripts/upgrade.sh (100%) rename appstore/onedev/{11.6.14 => 11.6.15}/.env (100%) rename appstore/onedev/{11.6.14 => 11.6.15}/data.yml (100%) rename appstore/onedev/{11.6.14 => 11.6.15}/docker-compose.yml (95%) rename appstore/onedev/{11.6.14 => 11.6.15}/envs/default.env (100%) rename appstore/onedev/{11.6.14 => 11.6.15}/envs/global.env (100%) rename appstore/onedev/{11.6.14 => 11.6.15}/envs/onedev.env (100%) rename appstore/onedev/{11.6.14 => 11.6.15}/scripts/init.sh (100%) rename appstore/onedev/{11.6.14 => 11.6.15}/scripts/uninstall.sh (100%) rename appstore/onedev/{11.6.14 => 11.6.15}/scripts/upgrade.sh (100%) create mode 100644 appstore/stream-rec-backend/main/.env create mode 100644 appstore/stream-rec-backend/main/data.yml create mode 100644 appstore/stream-rec-backend/main/docker-compose.yml create mode 100644 appstore/stream-rec-backend/main/envs/default.env create mode 100644 appstore/stream-rec-backend/main/envs/global.env create mode 100644 appstore/stream-rec-backend/main/scripts/init.sh create mode 100644 appstore/stream-rec-backend/main/scripts/uninstall.sh create mode 100644 appstore/stream-rec-backend/main/scripts/upgrade.sh create mode 100644 appstore/stream-rec-frontend/main/.env create mode 100644 appstore/stream-rec-frontend/main/data.yml create mode 100644 appstore/stream-rec-frontend/main/docker-compose.yml create mode 100644 appstore/stream-rec-frontend/main/envs/default.env create mode 100644 appstore/stream-rec-frontend/main/envs/global.env create mode 100644 appstore/stream-rec-frontend/main/scripts/init.sh create mode 100644 appstore/stream-rec-frontend/main/scripts/uninstall.sh create mode 100644 appstore/stream-rec-frontend/main/scripts/upgrade.sh create mode 100644 appstore/stream-rec/main/.env create mode 100644 appstore/stream-rec/main/data.yml create mode 100644 appstore/stream-rec/main/docker-compose.yml create mode 100644 appstore/stream-rec/main/envs/default.env create mode 100644 appstore/stream-rec/main/envs/global.env create mode 100644 appstore/stream-rec/main/scripts/init.sh create mode 100644 appstore/stream-rec/main/scripts/uninstall.sh create mode 100644 appstore/stream-rec/main/scripts/upgrade.sh create mode 100644 appstore/super-productivity/11.1.3/.env create mode 100644 appstore/super-productivity/11.1.3/conf/webdav.yaml create mode 100644 appstore/super-productivity/11.1.3/data.yml create mode 100644 appstore/super-productivity/11.1.3/docker-compose.yml create mode 100644 appstore/super-productivity/11.1.3/envs/default.env create mode 100644 appstore/super-productivity/11.1.3/envs/global.env create mode 100644 appstore/super-productivity/11.1.3/scripts/init.sh create mode 100644 appstore/super-productivity/11.1.3/scripts/uninstall.sh create mode 100644 appstore/super-productivity/11.1.3/scripts/upgrade.sh create mode 100644 appstore/super-productivity/README.md create mode 100644 appstore/super-productivity/data.yml create mode 100644 appstore/super-productivity/logo.png create mode 100644 dockge/stream-rec-backend_main/.env create mode 100644 dockge/stream-rec-backend_main/docker-compose.yml create mode 100644 dockge/stream-rec-backend_main/envs/default.env create mode 100644 dockge/stream-rec-backend_main/envs/global.env create mode 100644 dockge/stream-rec-frontend_main/.env create mode 100644 dockge/stream-rec-frontend_main/docker-compose.yml create mode 100644 dockge/stream-rec-frontend_main/envs/default.env create mode 100644 dockge/stream-rec-frontend_main/envs/global.env create mode 100644 dockge/stream-rec_main/.env create mode 100644 dockge/stream-rec_main/docker-compose.yml create mode 100644 dockge/stream-rec_main/envs/default.env create mode 100644 dockge/stream-rec_main/envs/global.env create mode 100644 dockge/super-productivity/.env create mode 100644 dockge/super-productivity/conf/webdav.yaml create mode 100644 dockge/super-productivity/docker-compose.yml create mode 100644 dockge/super-productivity/envs/default.env create mode 100644 dockge/super-productivity/envs/global.env diff --git a/appstore/glance/0.7.2/scripts/init.sh b/appstore/glance/0.7.2/scripts/init.sh index 2195dc92..ecfa16a4 100644 --- a/appstore/glance/0.7.2/scripts/init.sh +++ b/appstore/glance/0.7.2/scripts/init.sh @@ -10,10 +10,10 @@ if [ -f .env ]; then echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env - mkdir -p "$APP_NAME_ROOT_PATH" - mkdir -p "$APP_NAME_ROOT_PATH/app" + mkdir -p "$GLANCE_ROOT_PATH" + mkdir -p "$GLANCE_ROOT_PATH/app" - cp ./conf/glance.yml "$APP_NAME_ROOT_PATH/app/glance.yml" + cp ./conf/glance.yml "$GLANCE_ROOT_PATH/app/glance.yml" echo "Check Finish." diff --git a/appstore/glance/0.7.2/scripts/upgrade.sh b/appstore/glance/0.7.2/scripts/upgrade.sh index 0be9bfe0..fda819a4 100644 --- a/appstore/glance/0.7.2/scripts/upgrade.sh +++ b/appstore/glance/0.7.2/scripts/upgrade.sh @@ -10,11 +10,11 @@ if [ -f .env ]; then echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env - mkdir -p "$APP_NAME_ROOT_PATH" - mkdir -p "$APP_NAME_ROOT_PATH/app" + mkdir -p "$GLANCE_ROOT_PATH" + mkdir -p "$GLANCE_ROOT_PATH/app" - if [ ! -f "$APP_NAME_ROOT_PATH/app/glance.yml" ]; then - cp ./conf/glance.yml "$APP_NAME_ROOT_PATH/app/glance.yml" + if [ ! -f "$GLANCE_ROOT_PATH/app/glance.yml" ]; then + cp ./conf/glance.yml "$GLANCE_ROOT_PATH/app/glance.yml" fi echo "Check Finish." diff --git a/appstore/jellyfin/10.10.5/.env b/appstore/jellyfin/10.10.6/.env similarity index 100% rename from appstore/jellyfin/10.10.5/.env rename to appstore/jellyfin/10.10.6/.env diff --git a/appstore/jellyfin/10.10.5/data.yml b/appstore/jellyfin/10.10.6/data.yml similarity index 100% rename from appstore/jellyfin/10.10.5/data.yml rename to appstore/jellyfin/10.10.6/data.yml diff --git a/appstore/jellyfin/10.10.5/docker-compose.yml b/appstore/jellyfin/10.10.6/docker-compose.yml similarity index 96% rename from appstore/jellyfin/10.10.5/docker-compose.yml rename to appstore/jellyfin/10.10.6/docker-compose.yml index 4807397a..92e6f6fa 100644 --- a/appstore/jellyfin/10.10.5/docker-compose.yml +++ b/appstore/jellyfin/10.10.6/docker-compose.yml @@ -10,7 +10,7 @@ services: - ROC_ENABLE_PRE_VEGA=1 - HTTPS_PROXY=${HTTP_PROXY:-} - NO_PROXY=localhost,127.0.0.1,::1 - image: jellyfin/jellyfin:10.10.5 + image: jellyfin/jellyfin:10.10.6 labels: createdBy: Apps network_mode: ${NETWORK_MODE} diff --git a/appstore/jellyfin/10.10.5/envs/default.env b/appstore/jellyfin/10.10.6/envs/default.env similarity index 100% rename from appstore/jellyfin/10.10.5/envs/default.env rename to appstore/jellyfin/10.10.6/envs/default.env diff --git a/appstore/jellyfin/10.10.5/envs/global.env b/appstore/jellyfin/10.10.6/envs/global.env similarity index 100% rename from appstore/jellyfin/10.10.5/envs/global.env rename to appstore/jellyfin/10.10.6/envs/global.env diff --git a/appstore/jellyfin/10.10.5/scripts/init.sh b/appstore/jellyfin/10.10.6/scripts/init.sh similarity index 100% rename from appstore/jellyfin/10.10.5/scripts/init.sh rename to appstore/jellyfin/10.10.6/scripts/init.sh diff --git a/appstore/jellyfin/10.10.5/scripts/uninstall.sh b/appstore/jellyfin/10.10.6/scripts/uninstall.sh similarity index 100% rename from appstore/jellyfin/10.10.5/scripts/uninstall.sh rename to appstore/jellyfin/10.10.6/scripts/uninstall.sh diff --git a/appstore/jellyfin/10.10.5/scripts/upgrade.sh b/appstore/jellyfin/10.10.6/scripts/upgrade.sh similarity index 100% rename from appstore/jellyfin/10.10.5/scripts/upgrade.sh rename to appstore/jellyfin/10.10.6/scripts/upgrade.sh diff --git a/appstore/onedev/11.6.14/.env b/appstore/onedev/11.6.15/.env similarity index 100% rename from appstore/onedev/11.6.14/.env rename to appstore/onedev/11.6.15/.env diff --git a/appstore/onedev/11.6.14/data.yml b/appstore/onedev/11.6.15/data.yml similarity index 100% rename from appstore/onedev/11.6.14/data.yml rename to appstore/onedev/11.6.15/data.yml diff --git a/appstore/onedev/11.6.14/docker-compose.yml b/appstore/onedev/11.6.15/docker-compose.yml similarity index 95% rename from appstore/onedev/11.6.14/docker-compose.yml rename to appstore/onedev/11.6.15/docker-compose.yml index 2a629eb7..9eaea835 100644 --- a/appstore/onedev/11.6.14/docker-compose.yml +++ b/appstore/onedev/11.6.15/docker-compose.yml @@ -14,7 +14,7 @@ services: - initial_email=${INITIAL_EMAIL} - initial_server_url=${INITIAL_SERVER_URL} - initial_ssh_root_url=${INITIAL_SSH_ROOT_URL} - image: 1dev/server:11.6.14 + image: 1dev/server:11.6.15 labels: createdBy: Apps networks: diff --git a/appstore/onedev/11.6.14/envs/default.env b/appstore/onedev/11.6.15/envs/default.env similarity index 100% rename from appstore/onedev/11.6.14/envs/default.env rename to appstore/onedev/11.6.15/envs/default.env diff --git a/appstore/onedev/11.6.14/envs/global.env b/appstore/onedev/11.6.15/envs/global.env similarity index 100% rename from appstore/onedev/11.6.14/envs/global.env rename to appstore/onedev/11.6.15/envs/global.env diff --git a/appstore/onedev/11.6.14/envs/onedev.env b/appstore/onedev/11.6.15/envs/onedev.env similarity index 100% rename from appstore/onedev/11.6.14/envs/onedev.env rename to appstore/onedev/11.6.15/envs/onedev.env diff --git a/appstore/onedev/11.6.14/scripts/init.sh b/appstore/onedev/11.6.15/scripts/init.sh similarity index 100% rename from appstore/onedev/11.6.14/scripts/init.sh rename to appstore/onedev/11.6.15/scripts/init.sh diff --git a/appstore/onedev/11.6.14/scripts/uninstall.sh b/appstore/onedev/11.6.15/scripts/uninstall.sh similarity index 100% rename from appstore/onedev/11.6.14/scripts/uninstall.sh rename to appstore/onedev/11.6.15/scripts/uninstall.sh diff --git a/appstore/onedev/11.6.14/scripts/upgrade.sh b/appstore/onedev/11.6.15/scripts/upgrade.sh similarity index 100% rename from appstore/onedev/11.6.14/scripts/upgrade.sh rename to appstore/onedev/11.6.15/scripts/upgrade.sh diff --git a/appstore/stream-rec-backend/main/.env b/appstore/stream-rec-backend/main/.env new file mode 100644 index 00000000..0362943f --- /dev/null +++ b/appstore/stream-rec-backend/main/.env @@ -0,0 +1,12 @@ +# 数据持久化路径 [必填] +STREAM_REC_ROOT_PATH=/home/stream-rec + +# API 端口 [必填] +PANEL_APP_PORT_HTTP=12555 + +# 登录密码 (初始化) [必填] +LOGIN_SECRET=stream-rec + +# 网络代理 +HTTP_PROXY= + diff --git a/appstore/stream-rec-backend/main/data.yml b/appstore/stream-rec-backend/main/data.yml new file mode 100644 index 00000000..08ef890a --- /dev/null +++ b/appstore/stream-rec-backend/main/data.yml @@ -0,0 +1,32 @@ +additionalProperties: + formFields: + - default: "/home/stream-rec" + edit: true + envKey: STREAM_REC_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 12555 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: API 端口 + labelEn: API port + required: true + rule: paramPort + type: number + - default: "stream-rec" + edit: false + envKey: LOGIN_SECRET + labelZh: 登录密码 (初始化) + labelEn: Login Password (Initialization) + required: true + random: true + type: text + - default: "" + edit: true + envKey: HTTP_PROXY + labelZh: 网络代理 + labelEn: Network Proxy + required: false + type: text diff --git a/appstore/stream-rec-backend/main/docker-compose.yml b/appstore/stream-rec-backend/main/docker-compose.yml new file mode 100644 index 00000000..cca1bacc --- /dev/null +++ b/appstore/stream-rec-backend/main/docker-compose.yml @@ -0,0 +1,24 @@ +networks: + 1panel-network: + external: true +services: + stream-rec-backend: + container_name: stream-rec-backend + env_file: + - ./envs/global.env + - .env + environment: + - LOG_LEVEL=INFO + - DB_PATH=/opt/records + - DOWNLOAD_PATH=/download + image: streamrec/stream-rec:main + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:12555 + restart: always + volumes: + - ${STREAM_REC_ROOT_PATH}/records:/opt/records + - ${STREAM_REC_ROOT_PATH}/download:/download diff --git a/appstore/stream-rec-backend/main/envs/default.env b/appstore/stream-rec-backend/main/envs/default.env new file mode 100644 index 00000000..cd05f46e --- /dev/null +++ b/appstore/stream-rec-backend/main/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/appstore/stream-rec-backend/main/envs/global.env b/appstore/stream-rec-backend/main/envs/global.env new file mode 100644 index 00000000..e10989fe --- /dev/null +++ b/appstore/stream-rec-backend/main/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/appstore/stream-rec-backend/main/scripts/init.sh b/appstore/stream-rec-backend/main/scripts/init.sh new file mode 100644 index 00000000..07fb8c3f --- /dev/null +++ b/appstore/stream-rec-backend/main/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/stream-rec-backend/main/scripts/uninstall.sh b/appstore/stream-rec-backend/main/scripts/uninstall.sh new file mode 100644 index 00000000..c86c4fbc --- /dev/null +++ b/appstore/stream-rec-backend/main/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/stream-rec-backend/main/scripts/upgrade.sh b/appstore/stream-rec-backend/main/scripts/upgrade.sh new file mode 100644 index 00000000..07fb8c3f --- /dev/null +++ b/appstore/stream-rec-backend/main/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/stream-rec-frontend/main/.env b/appstore/stream-rec-frontend/main/.env new file mode 100644 index 00000000..30b031d3 --- /dev/null +++ b/appstore/stream-rec-frontend/main/.env @@ -0,0 +1,18 @@ +# 数据持久化路径 [必填] +STREAM_REC_ROOT_PATH=/home/stream-rec + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=15275 + +# NextAuth 加密密钥 [必填] +NEXTAUTH_SECRET= + +# API 地址 [必填] +API_URL=http://stream-rec-backend:12555/api + +# WebSocket API 地址 [必填] +WS_API_URL=ws://stream-rec-backend:12555/live/update + +# NextAuth 服务器地址 [必填] +NEXTAUTH_URL=http://localhost:15275/ + diff --git a/appstore/stream-rec-frontend/main/data.yml b/appstore/stream-rec-frontend/main/data.yml new file mode 100644 index 00000000..c90bf428 --- /dev/null +++ b/appstore/stream-rec-frontend/main/data.yml @@ -0,0 +1,46 @@ +additionalProperties: + formFields: + - default: "/home/stream-rec" + edit: true + envKey: STREAM_REC_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 15275 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "" + edit: true + envKey: NEXTAUTH_SECRET + labelZh: NextAuth 加密密钥 + labelEn: NextAuth Secret + required: true + random: true + type: text + - default: "http://stream-rec-backend:12555/api" + edit: true + envKey: API_URL + labelZh: API 地址 + labelEn: API URL + required: true + type: text + - default: "ws://stream-rec-backend:12555/live/update" + edit: true + envKey: WS_API_URL + labelZh: WebSocket API 地址 + labelEn: WebSocket API URL + required: true + type: text + - default: "http://localhost:15275/" + edit: true + envKey: NEXTAUTH_URL + labelZh: NextAuth 服务器地址 + labelEn: NextAuth Server URL + required: true + type: text diff --git a/appstore/stream-rec-frontend/main/docker-compose.yml b/appstore/stream-rec-frontend/main/docker-compose.yml new file mode 100644 index 00000000..adf7b34f --- /dev/null +++ b/appstore/stream-rec-frontend/main/docker-compose.yml @@ -0,0 +1,17 @@ +networks: + 1panel-network: + external: true +services: + stream-rec-frontend: + container_name: stream-rec-frontend + env_file: + - ./envs/global.env + - .env + image: streamrec/stream-rec-front:main + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:15275 + restart: always diff --git a/appstore/stream-rec-frontend/main/envs/default.env b/appstore/stream-rec-frontend/main/envs/default.env new file mode 100644 index 00000000..cd05f46e --- /dev/null +++ b/appstore/stream-rec-frontend/main/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/appstore/stream-rec-frontend/main/envs/global.env b/appstore/stream-rec-frontend/main/envs/global.env new file mode 100644 index 00000000..e10989fe --- /dev/null +++ b/appstore/stream-rec-frontend/main/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/appstore/stream-rec-frontend/main/scripts/init.sh b/appstore/stream-rec-frontend/main/scripts/init.sh new file mode 100644 index 00000000..07fb8c3f --- /dev/null +++ b/appstore/stream-rec-frontend/main/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/stream-rec-frontend/main/scripts/uninstall.sh b/appstore/stream-rec-frontend/main/scripts/uninstall.sh new file mode 100644 index 00000000..c86c4fbc --- /dev/null +++ b/appstore/stream-rec-frontend/main/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/stream-rec-frontend/main/scripts/upgrade.sh b/appstore/stream-rec-frontend/main/scripts/upgrade.sh new file mode 100644 index 00000000..07fb8c3f --- /dev/null +++ b/appstore/stream-rec-frontend/main/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/stream-rec/main/.env b/appstore/stream-rec/main/.env new file mode 100644 index 00000000..2b1c26e4 --- /dev/null +++ b/appstore/stream-rec/main/.env @@ -0,0 +1,27 @@ +# 数据持久化路径 [必填] +STREAM_REC_ROOT_PATH=/home/stream-rec + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=15275 + +# API 端口 [必填] +PANEL_APP_PORT_API=12555 + +# 默认用户名 [必填] +LOGIN_USERNAME=stream-rec + +# 登录密码 (初始化) [必填] +LOGIN_SECRET=stream-rec + +# 加密密钥 [必填] +AUTH_SECRET= + +# 访问域名 [必填] +NEXT_PUBLIC_BASE_URL=http://127.0.0.1:15275 + +# WebSocket API 地址 [必填] +WS_API_URL=ws://127.0.0.1:12555/live/update + +# 网络代理 +HTTP_PROXY= + diff --git a/appstore/stream-rec/main/data.yml b/appstore/stream-rec/main/data.yml new file mode 100644 index 00000000..44a51650 --- /dev/null +++ b/appstore/stream-rec/main/data.yml @@ -0,0 +1,69 @@ +additionalProperties: + formFields: + - default: "/home/stream-rec" + edit: true + envKey: STREAM_REC_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 15275 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: 12555 + edit: true + envKey: PANEL_APP_PORT_API + labelZh: API 端口 + labelEn: API port + required: true + rule: paramPort + type: number + - default: "stream-rec" + disabled: true + envKey: LOGIN_USERNAME + labelZh: 默认用户名 + labelEn: Default Username + required: true + type: text + - default: "stream-rec" + edit: false + envKey: LOGIN_SECRET + labelZh: 登录密码 (初始化) + labelEn: Login Password (Initialization) + required: true + random: true + type: password + - default: "" + edit: true + envKey: AUTH_SECRET + labelZh: 加密密钥 + labelEn: Encryption Key + required: true + random: true + type: text + - default: "http://127.0.0.1:15275" + edit: true + envKey: NEXT_PUBLIC_BASE_URL + labelZh: 访问域名 + labelEn: Access Domain + required: true + type: text + - default: "ws://127.0.0.1:12555/live/update" + edit: true + envKey: WS_API_URL + labelZh: WebSocket API 地址 + labelEn: WebSocket API URL + required: true + type: text + - default: "" + edit: true + envKey: HTTP_PROXY + labelZh: 网络代理 + labelEn: Network Proxy + required: false + type: text diff --git a/appstore/stream-rec/main/docker-compose.yml b/appstore/stream-rec/main/docker-compose.yml new file mode 100644 index 00000000..453e6ea7 --- /dev/null +++ b/appstore/stream-rec/main/docker-compose.yml @@ -0,0 +1,46 @@ +networks: + 1panel-network: + external: true +services: + stream-rec-backend: + container_name: stream-rec-backend + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + - HTTPS_PROXY=${HTTP_PROXY} + - LOG_LEVEL=INFO + - DB_PATH=/opt/records + - DOWNLOAD_PATH=/download + - PGID=1000 + - PUID=1000 + image: streamrec/stream-rec:main + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_API}:12555 + restart: always + volumes: + - ${STREAM_REC_ROOT_PATH}/records:/opt/records + - ${STREAM_REC_ROOT_PATH}/download:/download + stream-rec-frontend: + container_name: stream-rec + depends_on: + - stream-rec-backend + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + - API_URL=http://stream-rec-backend:12555/api + image: streamrec/stream-rec-front:main + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:15275 + restart: always diff --git a/appstore/stream-rec/main/envs/default.env b/appstore/stream-rec/main/envs/default.env new file mode 100644 index 00000000..cd05f46e --- /dev/null +++ b/appstore/stream-rec/main/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/appstore/stream-rec/main/envs/global.env b/appstore/stream-rec/main/envs/global.env new file mode 100644 index 00000000..e10989fe --- /dev/null +++ b/appstore/stream-rec/main/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/appstore/stream-rec/main/scripts/init.sh b/appstore/stream-rec/main/scripts/init.sh new file mode 100644 index 00000000..07fb8c3f --- /dev/null +++ b/appstore/stream-rec/main/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/stream-rec/main/scripts/uninstall.sh b/appstore/stream-rec/main/scripts/uninstall.sh new file mode 100644 index 00000000..c86c4fbc --- /dev/null +++ b/appstore/stream-rec/main/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/stream-rec/main/scripts/upgrade.sh b/appstore/stream-rec/main/scripts/upgrade.sh new file mode 100644 index 00000000..07fb8c3f --- /dev/null +++ b/appstore/stream-rec/main/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/super-productivity/11.1.3/.env b/appstore/super-productivity/11.1.3/.env new file mode 100644 index 00000000..67b1f21c --- /dev/null +++ b/appstore/super-productivity/11.1.3/.env @@ -0,0 +1,6 @@ +# 数据持久化路径 [必填] +SUPER_PRODUCTIVITY_ROOT_PATH=/home/super-productivity + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=8080 + diff --git a/appstore/super-productivity/11.1.3/conf/webdav.yaml b/appstore/super-productivity/11.1.3/conf/webdav.yaml new file mode 100644 index 00000000..629109a8 --- /dev/null +++ b/appstore/super-productivity/11.1.3/conf/webdav.yaml @@ -0,0 +1,13 @@ +address: 0.0.0.0 +port: 80 + +prefix: / +permissions: CRUD + +users: + - username: alice + password: alicepassword + directory: /data/alice + - username: bob + password: bobpassword + directory: /data/bob diff --git a/appstore/super-productivity/11.1.3/data.yml b/appstore/super-productivity/11.1.3/data.yml new file mode 100644 index 00000000..f40ef60a --- /dev/null +++ b/appstore/super-productivity/11.1.3/data.yml @@ -0,0 +1,17 @@ +additionalProperties: + formFields: + - default: "/home/super-productivity" + edit: true + envKey: SUPER_PRODUCTIVITY_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number diff --git a/appstore/super-productivity/11.1.3/docker-compose.yml b/appstore/super-productivity/11.1.3/docker-compose.yml new file mode 100644 index 00000000..70892fc6 --- /dev/null +++ b/appstore/super-productivity/11.1.3/docker-compose.yml @@ -0,0 +1,31 @@ +networks: + 1panel-network: + external: true +services: + sp-webdav: + env_file: + - ./envs/global.env + - .env + image: hacdias/webdav:latest + networks: + - 1panel-network + restart: always + volumes: + - ${SUPER_PRODUCTIVITY_ROOT_PATH}/config/webdav.yaml:/config.yml + - ${SUPER_PRODUCTIVITY_ROOT_PATH}/data:/data + super-productivity: + container_name: super-productivity + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + - WEBDAV_BACKEND=http://sp-webdav + image: johannesjo/super-productivity:v11.1.3 + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:80 + restart: always diff --git a/appstore/super-productivity/11.1.3/envs/default.env b/appstore/super-productivity/11.1.3/envs/default.env new file mode 100644 index 00000000..cd05f46e --- /dev/null +++ b/appstore/super-productivity/11.1.3/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/appstore/super-productivity/11.1.3/envs/global.env b/appstore/super-productivity/11.1.3/envs/global.env new file mode 100644 index 00000000..e10989fe --- /dev/null +++ b/appstore/super-productivity/11.1.3/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/appstore/super-productivity/11.1.3/scripts/init.sh b/appstore/super-productivity/11.1.3/scripts/init.sh new file mode 100644 index 00000000..16af78ff --- /dev/null +++ b/appstore/super-productivity/11.1.3/scripts/init.sh @@ -0,0 +1,23 @@ +#!/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 + + mkdir -p "$SUPER_PRODUCTIVITY_ROOT_PATH" + mkdir -p "$SUPER_PRODUCTIVITY_ROOT_PATH/data" + mkdir -p "$SUPER_PRODUCTIVITY_ROOT_PATH/config" + + cp ./conf/webdav.yaml "$SUPER_PRODUCTIVITY_ROOT_PATH/config/webdav.yaml" + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/super-productivity/11.1.3/scripts/uninstall.sh b/appstore/super-productivity/11.1.3/scripts/uninstall.sh new file mode 100644 index 00000000..c86c4fbc --- /dev/null +++ b/appstore/super-productivity/11.1.3/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/super-productivity/11.1.3/scripts/upgrade.sh b/appstore/super-productivity/11.1.3/scripts/upgrade.sh new file mode 100644 index 00000000..c49abea9 --- /dev/null +++ b/appstore/super-productivity/11.1.3/scripts/upgrade.sh @@ -0,0 +1,25 @@ +#!/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 + + mkdir -p "$SUPER_PRODUCTIVITY_ROOT_PATH" + mkdir -p "$SUPER_PRODUCTIVITY_ROOT_PATH/data" + mkdir -p "$SUPER_PRODUCTIVITY_ROOT_PATH/config" + + if [ ! -f "$SUPER_PRODUCTIVITY_ROOT_PATH/app/glance.yml" ]; then + cp ./conf/webdav.yaml "$SUPER_PRODUCTIVITY_ROOT_PATH/config/webdav.yaml" + fi + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/super-productivity/README.md b/appstore/super-productivity/README.md new file mode 100644 index 00000000..3658f162 --- /dev/null +++ b/appstore/super-productivity/README.md @@ -0,0 +1,27 @@ +# Super Productivity + +一个高级TODO列表应用程序,具有时间框和时间跟踪功能,该应用程序支持您的日历,JIRA,GITHUB等导入任务 + +![Super Productivity](https://file.lifebus.top/imgs/super-productivity_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) + +## 简介 + +- **保持条理清晰和专注!** 使用子任务、项目和标签来计划和分类您的任务,并根据需要对它们进行颜色编码。 +- 使用**时间盒**和**跟踪您的时间**。轻松创建工时表和工作摘要,以便将其轻松导出到您公司的工时跟踪系统。 +- 帮助您**建立健康且高效的习惯**: + - **休息提醒**会在该离开的时候提醒您。 + - **反拖延功能**在您确实需要时帮助您获得新的视角。 + - 需要更加专注?**番茄钟计时器**也总是触手可及。 + - **收集个人指标**以查看哪些工作例程需要调整。 +- 与**Jira**、**GitHub**、**GitLab**、**Gitea**和**OpenProject**集成。自动导入分配给您的任务,在本地详细规划,自动生成工作日志,并在有变化时立即得到通知。 +- 基本的[**CalDAV**](https://github.com/johannesjo/super-productivity/blob/master/docs/caldav.md)集成。 +- 使用**Dropbox**和**WebDAV**支持备份并在多个设备间同步您的数据。 +- 将上下文信息附加到任务和项目。创建**笔记**,附加**文件**或为链接、文件甚至命令创建**项目级别的书签**。 +- Super Productivity**尊重您的隐私**且**不会收集任何数据**,并且没有用户账户或注册要求。**由您决定数据存储的位置!** +- 它是**免费**且**开源**的,并且永远都是。 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/appstore/super-productivity/data.yml b/appstore/super-productivity/data.yml new file mode 100644 index 00000000..7d1787b5 --- /dev/null +++ b/appstore/super-productivity/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: super-productivity + name: Super Productivity + tags: + - WebSite + - Local + shortDescZh: 一个高级TODO列表应用程序,具有时间框和时间跟踪功能,该应用程序支持您的日历,JIRA,GITHUB等导入任务 + shortDescEn: An advanced TODO list application with time boxing and time tracking features that supports importing tasks from your calendar, JIRA, GITHUB, etc. + type: website + crossVersionUpdate: true + limit: 0 + website: https://super-productivity.com/ + github: https://github.com/johannesjo/super-productivity/ + document: https://super-productivity.com/ diff --git a/appstore/super-productivity/logo.png b/appstore/super-productivity/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2faaafdf6686577bbb4e09c8ed368c03e61ef7 GIT binary patch literal 37423 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

o3#!M;)kB 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�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