From 486859058351947c5210eaf9590476bacdec265b Mon Sep 17 00:00:00 2001 From: Meng Sen Date: Thu, 7 Nov 2024 12:50:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=20NexusPHP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng Sen --- apps/nexusphp/1.8.14/data.yml | 218 ++++++++++++++++++++++ apps/nexusphp/1.8.14/docker-compose.yml | 37 ++++ apps/nexusphp/1.8.14/scripts/init.sh | 26 +++ apps/nexusphp/1.8.14/scripts/uninstall.sh | 10 + apps/nexusphp/1.8.14/scripts/upgrade.sh | 15 ++ apps/nexusphp/README.md | 36 ++++ apps/nexusphp/data.yml | 14 ++ apps/nexusphp/logo.png | Bin 0 -> 6731 bytes 8 files changed, 356 insertions(+) create mode 100644 apps/nexusphp/1.8.14/data.yml create mode 100644 apps/nexusphp/1.8.14/docker-compose.yml create mode 100644 apps/nexusphp/1.8.14/scripts/init.sh create mode 100644 apps/nexusphp/1.8.14/scripts/uninstall.sh create mode 100644 apps/nexusphp/1.8.14/scripts/upgrade.sh create mode 100644 apps/nexusphp/README.md create mode 100644 apps/nexusphp/data.yml create mode 100644 apps/nexusphp/logo.png diff --git a/apps/nexusphp/1.8.14/data.yml b/apps/nexusphp/1.8.14/data.yml new file mode 100644 index 000000000..78f67fc4a --- /dev/null +++ b/apps/nexusphp/1.8.14/data.yml @@ -0,0 +1,218 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_DB_HOST + required: true + type: service + default: postgresql + edit: true + envKey: PANEL_DB_TYPE + labelZh: 数据库 服务 (前置检查) + labelEn: Database Service (Pre-check) + required: true + type: apps + values: + - label: PostgreSQL + value: postgresql + - label: MySQL + value: mysql + - label: MariaDB + value: mariadb + - label: Percona + value: percona + - child: + default: "" + envKey: PANEL_REDIS_SERVICE + required: true + type: service + default: redis + envKey: PANEL_REDIS_TYPE + labelZh: Redis 服务 (前置检查) + labelEn: Redis Service (Pre-check) + required: true + type: apps + values: + - label: Redis + value: redis + - default: "/home/nexusphp" + edit: true + envKey: NEXUSPHP_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: "/home/nexusphp" + edit: true + envKey: NEXUSPHP_TORRENTS_ROOT_PATH + labelZh: 种子目录 + labelEn: Torrent persistence path + required: true + type: text + - default: "/home/nexusphp" + edit: true + envKey: NEXUSPHP_BITBUCKET_ROOT_PATH + labelZh: 上传器目录 + labelEn: Uploader persistence path + required: true + type: text + - default: "/home/nexusphp" + edit: true + envKey: NEXUSPHP_ATTACHMENTS_ROOT_PATH + labelZh: 附件目录 + labelEn: Attachment persistence path + required: true + type: text + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: 访问端口 + labelEn: Port + required: true + rule: paramPort + type: number + - default: "http://localhost" + edit: true + envKey: text + labelZh: 公网地址 + labelEn: Public URL + required: true + type: text + - default: "base64:WUbN2wa2kl3E1VDW4iKaH3RBHw3hKY7BK0hWEkBZmGg=" + edit: true + envKey: APP_KEY + labelZh: 应用密钥 + labelEn: Application Key + required: true + type: text + - default: "" + edit: true + envKey: NAS_TOOLS_KEY + labelZh: NAS Tools 密钥 (MoviePilot) + labelEn: NAS Tools Key (MoviePilot) + required: false + type: text + - default: "" + edit: true + envKey: IYUU_SECRET + labelZh: IYUU 密钥 + labelEn: IYUU Secret + required: false + type: text + - default: "127.0.0.1" + edit: true + envKey: DB_HOST + labelZh: 数据库 主机地址 + labelEn: Database Host + required: true + type: text + - default: 5432 + edit: true + envKey: DB_PORT + labelZh: 数据库 端口 + labelEn: Database Port + required: true + rule: paramPort + type: number + - default: "nexusphp" + edit: true + envKey: DB_DATABASE + labelZh: 数据库 名称 + labelEn: Database Name + required: true + rule: paramCommon + type: text + - default: "nexusphp" + edit: true + envKey: DB_USERNAME + labelZh: 数据库 用户名 + labelEn: Database Username + required: true + type: text + - default: "" + edit: true + envKey: DB_PASSWORD + labelZh: 数据库 密码 + labelEn: Database Password + random: true + required: true + rule: paramComplexity + type: password + - default: "127.0.0.1" + edit: true + envKey: REDIS_HOST + labelZh: Redis 主机 + labelEn: Redis Host + required: true + type: text + - default: 6379 + edit: true + envKey: REDIS_PORT + labelZh: Redis 端口 + labelEn: Redis Port + required: true + rule: paramPort + type: number + - default: 0 + edit: true + envKey: REDIS_DB + labelZh: Redis 索引 + labelEn: Redis Index + required: true + type: number + - default: "" + edit: true + envKey: REDIS_PASSWORD + labelZh: Redis 密码 + labelEn: Redis Password + required: false + type: password + - default: "smtp" + edit: true + envKey: MAIL_MAILER + labelZh: 邮件 发送协议 + labelEn: Mail Protocol + required: true + type: text + - default: "smtp.qq.com" + edit: true + envKey: MAIL_HOST + labelZh: 邮件 主机地址 + labelEn: Mail Host + required: true + type: text + - default: 25 + edit: true + envKey: MAIL_PORT + labelZh: 邮件 发送端口 + labelEn: Mail Port + required: true + type: number + - default: "" + edit: true + envKey: MAIL_USERNAME + labelZh: 邮件 效验用户名 + labelEn: Mail Username + required: false + type: text + - default: "" + edit: true + envKey: MAIL_PASSWORD + labelZh: 邮件 效验密码 + labelEn: Mail Password + required: false + type: password + - default: "tls" + edit: true + envKey: MAIL_ENCRYPTION + labelZh: 邮件 加密协议 + labelEn: Mail Encryption Protocol + required: true + type: text + - default: "" + edit: true + envKey: MAIL_FROM_ADDRESS + labelZh: 邮件 发件人地址 + labelEn: Mail From Address + required: true + type: text diff --git a/apps/nexusphp/1.8.14/docker-compose.yml b/apps/nexusphp/1.8.14/docker-compose.yml new file mode 100644 index 000000000..de651b589 --- /dev/null +++ b/apps/nexusphp/1.8.14/docker-compose.yml @@ -0,0 +1,37 @@ +networks: + 1panel-network: + external: true + +services: + nexusphp: + image: qyg2297248353/nexusphp:v1.8.14 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8080 + env_file: + - /etc/1panel/envs/global.env + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ${NEXUSPHP_ROOT_PATH}/data:/var/www/html + - ${NEXUSPHP_ROOT_PATH}/torrents:/var/www/html/torrents + - ${NEXUSPHP_ROOT_PATH}/bitbucket:/var/www/html/bitbucket + - ${NEXUSPHP_ROOT_PATH}/attachments:/var/www/html/attachments + environment: + - TIMEZONE=Asia/Shanghai + - APP_DEBUG=false + - APP_ENV=production + - LOG_LEVEL=info + - DB_CONNECTION=mysql + - BROADCAST_DRIVER=log + - CACHE_DRIVER=redis + - QUEUE_CONNECTION=redis + - SESSION_DRIVER=file + - SESSION_LIFETIME=120 + - MAIL_FROM_NAME=${APP_NAME} + - SFTP_ROOT=/tmp + - GEOIP2_DATABASE=/var/www/html/geoip2/geoip2.mmdb diff --git a/apps/nexusphp/1.8.14/scripts/init.sh b/apps/nexusphp/1.8.14/scripts/init.sh new file mode 100644 index 000000000..07d7a8451 --- /dev/null +++ b/apps/nexusphp/1.8.14/scripts/init.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + + # setup-2 download geoip2 + GEOIP_DIR="$NEXUSPHP_ROOT_PATH/geoip2" + mkdir -p "$GEOIP_DIR" + + GEOIP_FILE="$GEOIP_DIR/geoip2.mmdb" + if curl -o "$GEOIP_FILE" -L "https://cdn.jsdelivr.net/gh/Hackl0us/GeoIP2-CN@release/Country.mmdb"; then + echo "GeoIP2 database downloaded successfully to $GEOIP_FILE" + else + echo "Error: Failed to download GeoIP2 database." + fi + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/nexusphp/1.8.14/scripts/uninstall.sh b/apps/nexusphp/1.8.14/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/nexusphp/1.8.14/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/nexusphp/1.8.14/scripts/upgrade.sh b/apps/nexusphp/1.8.14/scripts/upgrade.sh new file mode 100644 index 000000000..77b849120 --- /dev/null +++ b/apps/nexusphp/1.8.14/scripts/upgrade.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/nexusphp/README.md b/apps/nexusphp/README.md new file mode 100644 index 000000000..c2b8c4a5c --- /dev/null +++ b/apps/nexusphp/README.md @@ -0,0 +1,36 @@ +# NexusPHP + +完整的 PT 建站解决方案。基于 NexusPHP + Laravel + Filament。 + +![NexusPHP](https://file.lifebus.top/imgs/nexusphp_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) + +## 特性 + ++ 发种 ++ 特别区 ++ 求种 ++ 字幕 ++ 考核 ++ H&R ++ 认领 ++ 审核 ++ 签到 ++ 补签卡 ++ 勋章 ++ 道具 ++ 自定义标签 ++ 第三方全文搜索 ++ 盒子规则 ++ 论坛 ++ 申诉 ++ 多语言 ++ 自动备份 ++ 插件支持 ++ 管理后台 ++ Json API + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/nexusphp/data.yml b/apps/nexusphp/data.yml new file mode 100644 index 000000000..a82f62831 --- /dev/null +++ b/apps/nexusphp/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: nexusphp + name: NexusPHP + tags: + - WebSite + - Local + shortDescZh: 完整的 PT 建站解决方案 + shortDescEn: 完整的 PT 建站解决方案 + type: website + crossVersionUpdate: true + limit: 0 + website: https://nexusphp.org/ + github: https://github.com/xiaomlove/nexusphp/ + document: https://www.kimai.org/documentation/ diff --git a/apps/nexusphp/logo.png b/apps/nexusphp/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..03a6083942129cfe69e821881e55a7c52262ca3c GIT binary patch literal 6731 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