From 08ca9bcf706a8e2da5ff7bfefdcc06f0fcce39f7 Mon Sep 17 00:00:00 2001 From: QYG2297248353 Date: Fri, 11 Jul 2025 21:21:18 +0000 Subject: [PATCH] Synced apps from source repository via GitHub Actions --- apps/casdoor/{1.966.0 => 1.967.0}/.env | 0 .../config/init_data.json | 0 apps/casdoor/{1.966.0 => 1.967.0}/data.yml | 0 .../{1.966.0 => 1.967.0}/docker-compose.yml | 2 +- .../{1.966.0 => 1.967.0}/envs/casdoor.env | 0 .../{1.966.0 => 1.967.0}/envs/default.env | 0 .../{1.966.0 => 1.967.0}/envs/global.env | 0 .../{1.966.0 => 1.967.0}/scripts/init.sh | 0 .../{1.966.0 => 1.967.0}/scripts/uninstall.sh | 0 .../{1.966.0 => 1.967.0}/scripts/upgrade.sh | 0 apps/peer-ban-helper/{7.4.15 => 8.0.0}/.env | 0 .../{7.4.15 => 8.0.0}/data.yml | 0 .../{7.4.15 => 8.0.0}/docker-compose.yml | 2 +- .../{7.4.15 => 8.0.0}/envs/default.env | 0 .../{7.4.15 => 8.0.0}/envs/global.env | 0 .../{7.4.15 => 8.0.0}/scripts/init.sh | 0 .../{7.4.15 => 8.0.0}/scripts/uninstall.sh | 0 .../{7.4.15 => 8.0.0}/scripts/upgrade.sh | 0 apps/rustfs/README.md | 37 +++++++++ apps/rustfs/data.yml | 15 ++++ apps/rustfs/latest/.env | 27 +++++++ apps/rustfs/latest/data.yml | 71 ++++++++++++++++++ apps/rustfs/latest/docker-compose.yml | 25 ++++++ apps/rustfs/latest/envs/default.env | 2 + apps/rustfs/latest/envs/global.env | 2 + apps/rustfs/latest/scripts/init.sh | 17 +++++ apps/rustfs/latest/scripts/uninstall.sh | 10 +++ apps/rustfs/latest/scripts/upgrade.sh | 17 +++++ apps/rustfs/logo.png | Bin 0 -> 23262 bytes apps/rustfs/logo.svg | 15 ++++ 30 files changed, 240 insertions(+), 2 deletions(-) rename apps/casdoor/{1.966.0 => 1.967.0}/.env (100%) rename apps/casdoor/{1.966.0 => 1.967.0}/config/init_data.json (100%) rename apps/casdoor/{1.966.0 => 1.967.0}/data.yml (100%) rename apps/casdoor/{1.966.0 => 1.967.0}/docker-compose.yml (93%) rename apps/casdoor/{1.966.0 => 1.967.0}/envs/casdoor.env (100%) rename apps/casdoor/{1.966.0 => 1.967.0}/envs/default.env (100%) rename apps/casdoor/{1.966.0 => 1.967.0}/envs/global.env (100%) rename apps/casdoor/{1.966.0 => 1.967.0}/scripts/init.sh (100%) rename apps/casdoor/{1.966.0 => 1.967.0}/scripts/uninstall.sh (100%) rename apps/casdoor/{1.966.0 => 1.967.0}/scripts/upgrade.sh (100%) rename apps/peer-ban-helper/{7.4.15 => 8.0.0}/.env (100%) rename apps/peer-ban-helper/{7.4.15 => 8.0.0}/data.yml (100%) rename apps/peer-ban-helper/{7.4.15 => 8.0.0}/docker-compose.yml (90%) rename apps/peer-ban-helper/{7.4.15 => 8.0.0}/envs/default.env (100%) rename apps/peer-ban-helper/{7.4.15 => 8.0.0}/envs/global.env (100%) rename apps/peer-ban-helper/{7.4.15 => 8.0.0}/scripts/init.sh (100%) rename apps/peer-ban-helper/{7.4.15 => 8.0.0}/scripts/uninstall.sh (100%) rename apps/peer-ban-helper/{7.4.15 => 8.0.0}/scripts/upgrade.sh (100%) create mode 100644 apps/rustfs/README.md create mode 100644 apps/rustfs/data.yml create mode 100644 apps/rustfs/latest/.env create mode 100644 apps/rustfs/latest/data.yml create mode 100644 apps/rustfs/latest/docker-compose.yml create mode 100644 apps/rustfs/latest/envs/default.env create mode 100644 apps/rustfs/latest/envs/global.env create mode 100644 apps/rustfs/latest/scripts/init.sh create mode 100644 apps/rustfs/latest/scripts/uninstall.sh create mode 100644 apps/rustfs/latest/scripts/upgrade.sh create mode 100644 apps/rustfs/logo.png create mode 100644 apps/rustfs/logo.svg diff --git a/apps/casdoor/1.966.0/.env b/apps/casdoor/1.967.0/.env similarity index 100% rename from apps/casdoor/1.966.0/.env rename to apps/casdoor/1.967.0/.env diff --git a/apps/casdoor/1.966.0/config/init_data.json b/apps/casdoor/1.967.0/config/init_data.json similarity index 100% rename from apps/casdoor/1.966.0/config/init_data.json rename to apps/casdoor/1.967.0/config/init_data.json diff --git a/apps/casdoor/1.966.0/data.yml b/apps/casdoor/1.967.0/data.yml similarity index 100% rename from apps/casdoor/1.966.0/data.yml rename to apps/casdoor/1.967.0/data.yml diff --git a/apps/casdoor/1.966.0/docker-compose.yml b/apps/casdoor/1.967.0/docker-compose.yml similarity index 93% rename from apps/casdoor/1.966.0/docker-compose.yml rename to apps/casdoor/1.967.0/docker-compose.yml index cad7fb2..8017549 100644 --- a/apps/casdoor/1.966.0/docker-compose.yml +++ b/apps/casdoor/1.967.0/docker-compose.yml @@ -14,7 +14,7 @@ services: - verificationCodeTimeout=10 - appname=casdoor - authState=casdoor - image: casbin/casdoor:v1.966.0 + image: casbin/casdoor:v1.967.0 labels: createdBy: Apps networks: diff --git a/apps/casdoor/1.966.0/envs/casdoor.env b/apps/casdoor/1.967.0/envs/casdoor.env similarity index 100% rename from apps/casdoor/1.966.0/envs/casdoor.env rename to apps/casdoor/1.967.0/envs/casdoor.env diff --git a/apps/casdoor/1.966.0/envs/default.env b/apps/casdoor/1.967.0/envs/default.env similarity index 100% rename from apps/casdoor/1.966.0/envs/default.env rename to apps/casdoor/1.967.0/envs/default.env diff --git a/apps/casdoor/1.966.0/envs/global.env b/apps/casdoor/1.967.0/envs/global.env similarity index 100% rename from apps/casdoor/1.966.0/envs/global.env rename to apps/casdoor/1.967.0/envs/global.env diff --git a/apps/casdoor/1.966.0/scripts/init.sh b/apps/casdoor/1.967.0/scripts/init.sh similarity index 100% rename from apps/casdoor/1.966.0/scripts/init.sh rename to apps/casdoor/1.967.0/scripts/init.sh diff --git a/apps/casdoor/1.966.0/scripts/uninstall.sh b/apps/casdoor/1.967.0/scripts/uninstall.sh similarity index 100% rename from apps/casdoor/1.966.0/scripts/uninstall.sh rename to apps/casdoor/1.967.0/scripts/uninstall.sh diff --git a/apps/casdoor/1.966.0/scripts/upgrade.sh b/apps/casdoor/1.967.0/scripts/upgrade.sh similarity index 100% rename from apps/casdoor/1.966.0/scripts/upgrade.sh rename to apps/casdoor/1.967.0/scripts/upgrade.sh diff --git a/apps/peer-ban-helper/7.4.15/.env b/apps/peer-ban-helper/8.0.0/.env similarity index 100% rename from apps/peer-ban-helper/7.4.15/.env rename to apps/peer-ban-helper/8.0.0/.env diff --git a/apps/peer-ban-helper/7.4.15/data.yml b/apps/peer-ban-helper/8.0.0/data.yml similarity index 100% rename from apps/peer-ban-helper/7.4.15/data.yml rename to apps/peer-ban-helper/8.0.0/data.yml diff --git a/apps/peer-ban-helper/7.4.15/docker-compose.yml b/apps/peer-ban-helper/8.0.0/docker-compose.yml similarity index 90% rename from apps/peer-ban-helper/7.4.15/docker-compose.yml rename to apps/peer-ban-helper/8.0.0/docker-compose.yml index f8f4491..52ee292 100644 --- a/apps/peer-ban-helper/7.4.15/docker-compose.yml +++ b/apps/peer-ban-helper/8.0.0/docker-compose.yml @@ -11,7 +11,7 @@ services: - PUID=0 - PGID=0 - TZ=Asia/Shanghai - image: ghostchu/peerbanhelper:v7.4.15 + image: ghostchu/peerbanhelper:v8.0.0 labels: createdBy: Apps network_mode: ${NETWORK_MODE:-host} diff --git a/apps/peer-ban-helper/7.4.15/envs/default.env b/apps/peer-ban-helper/8.0.0/envs/default.env similarity index 100% rename from apps/peer-ban-helper/7.4.15/envs/default.env rename to apps/peer-ban-helper/8.0.0/envs/default.env diff --git a/apps/peer-ban-helper/7.4.15/envs/global.env b/apps/peer-ban-helper/8.0.0/envs/global.env similarity index 100% rename from apps/peer-ban-helper/7.4.15/envs/global.env rename to apps/peer-ban-helper/8.0.0/envs/global.env diff --git a/apps/peer-ban-helper/7.4.15/scripts/init.sh b/apps/peer-ban-helper/8.0.0/scripts/init.sh similarity index 100% rename from apps/peer-ban-helper/7.4.15/scripts/init.sh rename to apps/peer-ban-helper/8.0.0/scripts/init.sh diff --git a/apps/peer-ban-helper/7.4.15/scripts/uninstall.sh b/apps/peer-ban-helper/8.0.0/scripts/uninstall.sh similarity index 100% rename from apps/peer-ban-helper/7.4.15/scripts/uninstall.sh rename to apps/peer-ban-helper/8.0.0/scripts/uninstall.sh diff --git a/apps/peer-ban-helper/7.4.15/scripts/upgrade.sh b/apps/peer-ban-helper/8.0.0/scripts/upgrade.sh similarity index 100% rename from apps/peer-ban-helper/7.4.15/scripts/upgrade.sh rename to apps/peer-ban-helper/8.0.0/scripts/upgrade.sh diff --git a/apps/rustfs/README.md b/apps/rustfs/README.md new file mode 100644 index 0000000..7ea296a --- /dev/null +++ b/apps/rustfs/README.md @@ -0,0 +1,37 @@ +# RustFS + +Rust驱动的S3兼容分布式存储系统 + +![RustFS](https://file.lifebus.top/imgs/rustfs_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) + +## 简介 + +RustFS 用热门安全的 Rust 语言开发,兼容 S3 协议。适用于 AI/ML 及海量数据存储、大数据、互联网、工业和保密存储等全部场景。近乎免费使用。遵循 +Apache 2 协议,支持国产保密设备和系统。 + +## 特性 + +### 跨云支持 +RustFS 利用分布式架构和对象存储功能,为AI和高级分析工作负载提供卓越性能,支持从TB到EB级别的数据扩展。 + +### 安全可靠 +RustFS 与 RustyVault 集成,提供高性能的对象存储安全加密,支持多种加密模式,确保数据安全性和透明度。 + +### 版本控制 +对象存储版本控制功能,为每个对象版本分配唯一标识符,用户可通过API或管理界面访问和管理历史版本。 + +### 无限扩容 +RustFS系统自动平衡节点负载,确保数据均匀分布,支持根据存储需求动态添加或移除资源,实现无限扩容。 + +### 对象只读 +支持对象锁定模式,实现WORM(写一次读多次)功能,防止数据在指定时间范围内被修改或删除,确保数据完整性。 + +### 主动复制 +对象写入时自动创建多个副本并分布到不同节点,支持同步和异步复制模式,提供高可用性和灾难恢复能力。 + + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/rustfs/data.yml b/apps/rustfs/data.yml new file mode 100644 index 0000000..55bef06 --- /dev/null +++ b/apps/rustfs/data.yml @@ -0,0 +1,15 @@ +additionalProperties: + key: rustfs + name: RustFS + tags: + - WebSite + - Storage + - Local + shortDescZh: 分布式存储系统 + shortDescEn: Distributed Storage System + type: website + crossVersionUpdate: true + limit: 0 + website: https://rustfs.com/ + github: https://github.com/rustfs/rustfs/ + document: https://rustfs.com/ diff --git a/apps/rustfs/latest/.env b/apps/rustfs/latest/.env new file mode 100644 index 0000000..720d1a4 --- /dev/null +++ b/apps/rustfs/latest/.env @@ -0,0 +1,27 @@ +# 数据持久化路径 [必填] +RUSTFS_ROOT_PATH=/home/rustfs + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=9000 + +# 管理员账号 [必填] +RUSTFS_ACCESS_KEY=rustfsadmin + +# 管理员密码 [必填] +RUSTFS_SECRET_KEY=rustfsadmin + +# 域名 +RUSTFS_SERVER_DOMAINS=127.0.0.1:9000 + +# 启用控制台 [必填] +RUSTFS_CONSOLE_ENABLE=true + +# 自定义挂载目录 1 +CUSTOM_MOUNT_DIRECTORY_1= + +# 自定义挂载目录 2 +CUSTOM_MOUNT_DIRECTORY_2= + +# 自定义挂载目录 3 +CUSTOM_MOUNT_DIRECTORY_3= + diff --git a/apps/rustfs/latest/data.yml b/apps/rustfs/latest/data.yml new file mode 100644 index 0000000..41e89e5 --- /dev/null +++ b/apps/rustfs/latest/data.yml @@ -0,0 +1,71 @@ +additionalProperties: + formFields: + - default: "/home/rustfs" + edit: true + envKey: RUSTFS_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 9000 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "rustfsadmin" + edit: true + envKey: RUSTFS_ACCESS_KEY + labelZh: 管理员账号 + labelEn: Access Key + required: true + type: text + - default: "rustfsadmin" + edit: true + envKey: RUSTFS_SECRET_KEY + labelZh: 管理员密码 + labelEn: Secret Key + required: true + type: password + - default: "127.0.0.1:9000" + edit: true + envKey: RUSTFS_SERVER_DOMAINS + labelZh: 域名 + labelEn: Domains + required: false + type: text + - default: "true" + edit: true + envKey: RUSTFS_CONSOLE_ENABLE + labelZh: 启用控制台 + labelEn: Enable Console + required: true + type: select + values: + - label: 启用 + value: "true" + - label: 禁用 + value: "false" + - default: "" + edit: true + envKey: CUSTOM_MOUNT_DIRECTORY_1 + labelEn: Custom mount directory 1 + labelZh: 自定义挂载目录 1 + required: false + type: text + - default: "" + edit: true + envKey: CUSTOM_MOUNT_DIRECTORY_2 + labelEn: Custom mount directory 2 + labelZh: 自定义挂载目录 2 + required: false + type: text + - default: "" + edit: true + envKey: CUSTOM_MOUNT_DIRECTORY_3 + labelEn: Custom mount directory 3 + labelZh: 自定义挂载目录 3 + required: false + type: text diff --git a/apps/rustfs/latest/docker-compose.yml b/apps/rustfs/latest/docker-compose.yml new file mode 100644 index 0000000..da82b74 --- /dev/null +++ b/apps/rustfs/latest/docker-compose.yml @@ -0,0 +1,25 @@ +networks: + 1panel-network: + external: true +services: + rustfs: + container_name: rustfs + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + - RUSTFS_ADDRESS=:9000 + image: rustfs/rustfs:latest + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:9000 + restart: always + volumes: + - ${RUSTFS_ROOT_PATH}/data:/etc/rustfs + - ${CUSTOM_MOUNT_DIRECTORY_1:-./default_mount_1}:${CUSTOM_MOUNT_DIRECTORY_1:-/default_mount_1} + - ${CUSTOM_MOUNT_DIRECTORY_2:-./default_mount_2}:${CUSTOM_MOUNT_DIRECTORY_2:-/default_mount_2} + - ${CUSTOM_MOUNT_DIRECTORY_3:-./default_mount_3}:${CUSTOM_MOUNT_DIRECTORY_3:-/default_mount_3} diff --git a/apps/rustfs/latest/envs/default.env b/apps/rustfs/latest/envs/default.env new file mode 100644 index 0000000..cd05f46 --- /dev/null +++ b/apps/rustfs/latest/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/rustfs/latest/envs/global.env b/apps/rustfs/latest/envs/global.env new file mode 100644 index 0000000..e10989f --- /dev/null +++ b/apps/rustfs/latest/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/rustfs/latest/scripts/init.sh b/apps/rustfs/latest/scripts/init.sh new file mode 100644 index 0000000..07fb8c3 --- /dev/null +++ b/apps/rustfs/latest/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/apps/rustfs/latest/scripts/uninstall.sh b/apps/rustfs/latest/scripts/uninstall.sh new file mode 100644 index 0000000..c86c4fb --- /dev/null +++ b/apps/rustfs/latest/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/apps/rustfs/latest/scripts/upgrade.sh b/apps/rustfs/latest/scripts/upgrade.sh new file mode 100644 index 0000000..07fb8c3 --- /dev/null +++ b/apps/rustfs/latest/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/apps/rustfs/logo.png b/apps/rustfs/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..68d8d93902ebabba057aa9b3024f7117229096eb GIT binary patch literal 23262 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 + + + + + + + + + + + + + +