From 5ab6b2c13390742c835b014a3fd730ba42eca2ca Mon Sep 17 00:00:00 2001 From: Meng Sen Date: Mon, 2 Dec 2024 18:42:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E5=BA=94=E7=94=A8=20Fider?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng Sen --- .github/README.md | 1 + README.md | 1 + apps/fider/0.24.0/data.yml | 125 +++++++++++++++++++++++++ apps/fider/0.24.0/docker-compose.yml | 20 ++++ apps/fider/0.24.0/envs/default.env | 2 + apps/fider/0.24.0/envs/global.env | 2 + apps/fider/0.24.0/scripts/init.sh | 30 ++++++ apps/fider/0.24.0/scripts/uninstall.sh | 10 ++ apps/fider/0.24.0/scripts/upgrade.sh | 30 ++++++ apps/fider/README.md | 63 +++++++++++++ apps/fider/data.yml | 14 +++ apps/fider/logo.png | Bin 0 -> 31132 bytes 12 files changed, 298 insertions(+) create mode 100644 apps/fider/0.24.0/data.yml create mode 100644 apps/fider/0.24.0/docker-compose.yml create mode 100644 apps/fider/0.24.0/envs/default.env create mode 100644 apps/fider/0.24.0/envs/global.env create mode 100644 apps/fider/0.24.0/scripts/init.sh create mode 100644 apps/fider/0.24.0/scripts/uninstall.sh create mode 100644 apps/fider/0.24.0/scripts/upgrade.sh create mode 100644 apps/fider/README.md create mode 100644 apps/fider/data.yml create mode 100644 apps/fider/logo.png diff --git a/.github/README.md b/.github/README.md index 225cde883..d5fe8ba79 100644 --- a/.github/README.md +++ b/.github/README.md @@ -46,6 +46,7 @@ | 🟢 | | Kibana | https://www.elastic.co/kibana/ | Kibana 针对大规模数据快速运行数据分析 | Elastic | | 🟢 | | Emby | https://emby.media/ | Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | Emby | | 🟢 | | Emby-lovechen | https://emby.media/ | 【开心版】Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | Emby | +| 🟢 | | Fider | https://fider.io/ | 简单而优雅的功能投票工具 | | | 🟢 | | Ghost | https://ghost.org/ | 用于现代出版、会员制、订阅和通讯的人博客系统 | | | 🟢 | | Gitea | https://gitea.io/ | 私有、快速、可靠的 DevOps 平台 | Gitea | | 🟢 | | Gitea Runner | https://gitea.io/ | 【Runner】私有、快速、可靠的 DevOps 平台 | Gitea | diff --git a/README.md b/README.md index 6ae07a5e1..fb97015c1 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ | 🟢 | | Kibana | https://www.elastic.co/kibana/ | Kibana 针对大规模数据快速运行数据分析 | Elastic | | 🟢 | | Emby | https://emby.media/ | Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | Emby | | 🟢 | | Emby-lovechen | https://emby.media/ | 【开心版】Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | Emby | +| 🟢 | | Fider | https://fider.io/ | 简单而优雅的功能投票工具 | | | 🟢 | | Ghost | https://ghost.org/ | 用于现代出版、会员制、订阅和通讯的人博客系统 | | | 🟢 | | Gitea | https://gitea.io/ | 私有、快速、可靠的 DevOps 平台 | Gitea | | 🟢 | | Gitea Runner | https://gitea.io/ | 【Runner】私有、快速、可靠的 DevOps 平台 | Gitea | diff --git a/apps/fider/0.24.0/data.yml b/apps/fider/0.24.0/data.yml new file mode 100644 index 000000000..dbca45eee --- /dev/null +++ b/apps/fider/0.24.0/data.yml @@ -0,0 +1,125 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_POSTGRES_SERVICE + required: true + type: service + default: postgresql + envKey: PANEL_POSTGRES_TYPE + labelZh: Postgres 服务 (前置检查) + labelEn: Postgres Service (Pre-check) + required: true + type: apps + values: + - label: PostgreSQL + value: postgresql + - default: 3000 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: Web UI 端口 + labelEn: Web UI Port + required: true + rule: paramPort + type: number + - default: "http://127.0.0.1:3000" + edit: true + envKey: BASE_URL + labelZh: 访问地址 + labelEn: Access URL + required: true + type: text + - default: "adc19ed6361cb4af0ff5f5bd3c52930cc6b444777d07bdcb76c2e9d623976b648640c4fbdc00cea739f15ef21522240758d747f65c15c6311f7d8678d8fe1ae565b837cdd5eb9d90594a4501dea1e6711ca0eae873302de27f210219188f4420473749fb67103afe64867120d0f7fadaecd2442e96b165c5f1602e701527f2e72188a18d195127f59632247d578d2b9a9a652240026aa5a317c972e5bdb391caab81b2779eebe0a07e28246b78e58ddd49845cf91f29cbb8e9090b2cf0ce4db0f49d52473fd75f9c274dcb5a9cb3c0bf6dd664b2fb1b603955fef325fd0b34043524b0fad2fcd2686ce04225792e267800b9b66a1762d9ebae4416500541dc8d" + edit: true + envKey: JWT_SECRET + labelZh: 应用密钥 + labelEn: App key + required: true + type: password + - default: "127.0.0.1" + edit: true + envKey: POSTGRES_HOST + labelZh: 数据库 主机地址 + labelEn: Database Host + required: true + type: text + - default: 5432 + edit: true + envKey: POSTGRES_PORT + labelZh: 数据库 端口 + labelEn: Database Port + required: true + rule: paramPort + type: number + - default: "fider" + edit: true + envKey: POSTGRES_NAME + labelZh: 数据库 名称 + labelEn: Database Name + required: true + rule: paramCommon + type: text + - default: "fider" + edit: true + envKey: POSTGRES_USER + labelZh: 数据库 用户名 + labelEn: Database Username + required: true + type: text + - default: "" + edit: true + envKey: POSTGRES_PASSWORD + labelZh: 数据库 密码 + labelEn: Database Password + random: true + required: true + rule: paramComplexity + type: password + - default: "" + edit: true + envKey: EMAIL_SMTP_HOST + labelZh: 邮件服务 地址 + labelEn: Mailer Server Address + required: true + type: text + - default: 465 + edit: true + envKey: EMAIL_SMTP_PORT + labelZh: 邮件服务 端口 + labelEn: Mailer Server Port + required: true + type: number + - default: "" + edit: true + envKey: EMAIL_SMTP_USERNAME + labelZh: 邮件服务 用户名 + labelEn: Mailer Username + required: true + type: text + - default: "" + edit: true + envKey: EMAIL_SMTP_PASSWORD + labelZh: 邮件服务 密码 + labelEn: Mailer Password + required: true + type: text + - default: "" + edit: true + envKey: EMAIL_NOREPLY + labelZh: 邮件服务 发件人 + labelEn: Mailer From + required: true + type: text + + - default: "true" + edit: true + envKey: EMAIL_SMTP_ENABLE_STARTTLS + labelZh: 邮件服务 启用 STARTTLS + labelEn: Mailer Enable STARTTLS + required: true + type: select + values: + - label: "是" + value: "true" + - label: "否" + value: "false" diff --git a/apps/fider/0.24.0/docker-compose.yml b/apps/fider/0.24.0/docker-compose.yml new file mode 100644 index 000000000..69313811b --- /dev/null +++ b/apps/fider/0.24.0/docker-compose.yml @@ -0,0 +1,20 @@ +networks: + 1panel-network: + external: true + +services: + fider: + image: getfider/fider:v0.24.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} + environment: + - DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_NAME}?sslmode=disable diff --git a/apps/fider/0.24.0/envs/default.env b/apps/fider/0.24.0/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/apps/fider/0.24.0/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/fider/0.24.0/envs/global.env b/apps/fider/0.24.0/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/apps/fider/0.24.0/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/fider/0.24.0/scripts/init.sh b/apps/fider/0.24.0/scripts/init.sh new file mode 100644 index 000000000..5e9dcca05 --- /dev/null +++ b/apps/fider/0.24.0/scripts/init.sh @@ -0,0 +1,30 @@ +#!/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 + + DATA_DIR="$ARTALK_ROOT_PATH/data" + + mkdir -p "$DATA_DIR" + + OUTPUT_FILE="$DATA_DIR/ip2region.xdb" + + URL1="https://gh-proxy.com/?q=https%3A%2F%2Fgithub.com%2Flionsoul2014%2Fip2region%2Fblob%2Fmaster%2Fdata%2Fip2region.xdb" + URL2="https://github.com/lionsoul2014/ip2region/raw/master/data/ip2region.xdb" + + curl -L "$URL1" -o "$OUTPUT_FILE" || curl -L "$URL2" -o "$OUTPUT_FILE" + + chmod -R 777 "$DATA_DIR" + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/fider/0.24.0/scripts/uninstall.sh b/apps/fider/0.24.0/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/fider/0.24.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/apps/fider/0.24.0/scripts/upgrade.sh b/apps/fider/0.24.0/scripts/upgrade.sh new file mode 100644 index 000000000..5e9dcca05 --- /dev/null +++ b/apps/fider/0.24.0/scripts/upgrade.sh @@ -0,0 +1,30 @@ +#!/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 + + DATA_DIR="$ARTALK_ROOT_PATH/data" + + mkdir -p "$DATA_DIR" + + OUTPUT_FILE="$DATA_DIR/ip2region.xdb" + + URL1="https://gh-proxy.com/?q=https%3A%2F%2Fgithub.com%2Flionsoul2014%2Fip2region%2Fblob%2Fmaster%2Fdata%2Fip2region.xdb" + URL2="https://github.com/lionsoul2014/ip2region/raw/master/data/ip2region.xdb" + + curl -L "$URL1" -o "$OUTPUT_FILE" || curl -L "$URL2" -o "$OUTPUT_FILE" + + chmod -R 777 "$DATA_DIR" + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/fider/README.md b/apps/fider/README.md new file mode 100644 index 000000000..f5dc7f941 --- /dev/null +++ b/apps/fider/README.md @@ -0,0 +1,63 @@ +# Fider + +简单而优雅的功能投票工具 + +![Fider](https://file.lifebus.top/imgs/fider_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) + +## 特性 + ++ 分享想法,投票并讨论 + +为您的社区发声,获取宝贵的建议,优先考虑他们最需要的东西。 + ++ 保持每个人知情 + +每次您开始、完成或拒绝建议时,Fider 都会通知订阅该主题的每个人。 + ++ 一键登录 + +访客只需一键即可参与贡献!通过 Facebook、Google、GitHub、Azure AD、Twitch、Discord 或其他 OAuth2 提供者登录。 + ++ 私人网站 + +您可以选择通过将其设为私有来控制对您网站的访问。 + ++ 您的品牌 + +使用自定义 CSS 功能以您希望的方式设计 Fider。您的标志、您的颜色、您的身份。 + ++ 公共 API + +利用我们完整的 API,完全控制将 Fider 集成到您的流程中。 + ++ 集成 + +Fider 可以与支持 Webhook 的任何系统集成,例如 Slack 和 Discord。 + ++ 多语言 + +我们说你的语言!Fider 已翻译成 10 多种语言,例如英语、西班牙语、德语、法语和葡萄牙语! + ++ 整理您的内容 + +为您的内容添加标签,以便更容易查找、分组和决策。标签可以是公开的,也可以是私有的。 + ++ text Markdown 文本 + +使用流行的 Markdown 标记语言来格式化您的文本。 + ++ 您的域名 + +当使用我们的托管服务时,您可以使用自己的域名并获得免费的 TLS 证书以确保其安全。 + ++ 开源 + +Fider 是 100% 开源。 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/fider/data.yml b/apps/fider/data.yml new file mode 100644 index 000000000..f72a3b728 --- /dev/null +++ b/apps/fider/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: fider + name: Fider + tags: + - WebSite + - Local + shortDescZh: 简单而优雅的功能投票工具 + shortDescEn: The simple and elegant feature voting tool + type: website + crossVersionUpdate: true + limit: 0 + website: https://fider.io/ + github: https://github.com/getfider/fider/ + document: https://fider.io/docs/hosting-instance diff --git a/apps/fider/logo.png b/apps/fider/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a85c08efc128591c810e33ceca9208617c338de9 GIT binary patch literal 31132 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 IP_+2+KlQUPTL1t6 literal 0 HcmV?d00001