From 269f5ef7a67ddbef488170fa5a6cadf395fc2df9 Mon Sep 17 00:00:00 2001 From: ms Date: Thu, 4 Dec 2025 12:17:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=20Opengist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/opengist/1.11.1/data.yml | 66 ++++++++++++++++++++++ apps/opengist/1.11.1/docker-compose.yml | 31 ++++++++++ apps/opengist/1.11.1/envs/default.env | 2 + apps/opengist/1.11.1/envs/global.env | 2 + apps/opengist/1.11.1/scripts/init.sh | 17 ++++++ apps/opengist/1.11.1/scripts/uninstall.sh | 10 ++++ apps/opengist/1.11.1/scripts/upgrade.sh | 17 ++++++ apps/opengist/README.md | 26 +++++++++ apps/opengist/data.yml | 14 +++++ apps/opengist/logo.png | Bin 0 -> 28853 bytes apps/opengist/logo.svg | 29 ++++++++++ 11 files changed, 214 insertions(+) create mode 100644 apps/opengist/1.11.1/data.yml create mode 100644 apps/opengist/1.11.1/docker-compose.yml create mode 100644 apps/opengist/1.11.1/envs/default.env create mode 100644 apps/opengist/1.11.1/envs/global.env create mode 100644 apps/opengist/1.11.1/scripts/init.sh create mode 100644 apps/opengist/1.11.1/scripts/uninstall.sh create mode 100644 apps/opengist/1.11.1/scripts/upgrade.sh create mode 100644 apps/opengist/README.md create mode 100644 apps/opengist/data.yml create mode 100644 apps/opengist/logo.png create mode 100644 apps/opengist/logo.svg diff --git a/apps/opengist/1.11.1/data.yml b/apps/opengist/1.11.1/data.yml new file mode 100644 index 000000000..43655fe49 --- /dev/null +++ b/apps/opengist/1.11.1/data.yml @@ -0,0 +1,66 @@ +additionalProperties: + formFields: + - default: "/home/opengist" + edit: true + envKey: OPENGIST_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 6157 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "" + edit: true + envKey: OG_EXTERNAL_URL + labelZh: 外部访问地址 + labelEn: External access URL + required: false + type: text + - default: "" + edit: true + envKey: OG_GITHUB_CLIENT_KEY + labelZh: GitHub 客户端密钥 + labelEn: GitHub Client Key + required: false + type: text + - default: "" + edit: true + envKey: OG_GITHUB_SECRET + labelZh: GitHub 密钥 + labelEn: GitHub Secret + required: false + type: text + - default: "https://gitea.com/" + edit: true + envKey: OG_GITEA_URL + labelZh: Gitea 地址 + labelEn: Gitea URL + required: false + type: text + - default: "Gitea" + edit: true + envKey: OG_GITEA_NAME + labelZh: Gitea 名称 + labelEn: Gitea Name + required: false + type: text + - default: "" + edit: true + envKey: OG_GITEA_CLIENT_KEY + labelZh: Gitea 客户端密钥 + labelEn: Gitea Client Key + required: false + type: text + - default: "" + edit: true + envKey: OG_GITEA_SECRET + labelZh: Gitea 密钥 + labelEn: Gitea Secret + required: false + type: text diff --git a/apps/opengist/1.11.1/docker-compose.yml b/apps/opengist/1.11.1/docker-compose.yml new file mode 100644 index 000000000..836c3e23f --- /dev/null +++ b/apps/opengist/1.11.1/docker-compose.yml @@ -0,0 +1,31 @@ +networks: + 1panel-network: + external: true + +services: + opengist: + image: thomiceli/opengist:1.11.1 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:6157 + env_file: + - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ${OPENGIST_ROOT_PATH}/.opengist:/opengist + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:6157/healthcheck"] + interval: 30s + timeout: 10s + retries: 3 + environment: + - TZ=Asia/Shanghai + - OG_SQLITE_JOURNAL_MODE=WAL + - OG_HTTP_HOST=0.0.0.0 + - OG_SSH_HOST=0.0.0.0 + - OG_SSH_PORT=6157 diff --git a/apps/opengist/1.11.1/envs/default.env b/apps/opengist/1.11.1/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/apps/opengist/1.11.1/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/opengist/1.11.1/envs/global.env b/apps/opengist/1.11.1/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/apps/opengist/1.11.1/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/opengist/1.11.1/scripts/init.sh b/apps/opengist/1.11.1/scripts/init.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/opengist/1.11.1/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/opengist/1.11.1/scripts/uninstall.sh b/apps/opengist/1.11.1/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/opengist/1.11.1/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/opengist/1.11.1/scripts/upgrade.sh b/apps/opengist/1.11.1/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/opengist/1.11.1/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/opengist/README.md b/apps/opengist/README.md new file mode 100644 index 000000000..f7c687350 --- /dev/null +++ b/apps/opengist/README.md @@ -0,0 +1,26 @@ +# Opengist + +自托管的粘贴板,基于 Git,Github Gist 的开源替代品。 + +![Opengist](https://file.lifebus.top/imgs/opengist_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) + +## 特征 + ++ 创建公开、未公开或私密的摘要 ++ 通过 Git 通过 HTTP 或 SSH 启动/克隆/拉取/推送片段 ++ 语法突出;Markdown 和 CSV 支持 ++ 搜索代码片段;浏览用户的片段、点赞和分支 ++ 将话题添加到摘要中 ++ 将摘要嵌入其他网站 ++ 修订历史 ++ 喜欢 / 分叉片段 ++ 下载原始文件或 ZIP 压缩档案 ++ OAuth2 登录 GitHub、GitLab、Gittea 和 OpenID Connect ++ 限制或解除对匿名用户可见的摘要 ++ Docker 支持 / Helm 图表 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/apps/opengist/data.yml b/apps/opengist/data.yml new file mode 100644 index 000000000..6086969ba --- /dev/null +++ b/apps/opengist/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: opengist + name: Opengist + tags: + - WebSite + - Local + shortDescZh: 自托管的粘贴板,基于 Git,Github Gist 的开源替代品。 + shortDescEn: Self-hosted pastebin powered by Git, open-source alternative to Github Gist. + type: website + crossVersionUpdate: true + limit: 0 + website: https://opengist.io/ + github: https://github.com/thomiceli/opengist + document: https://opengist.io/docs/ diff --git a/apps/opengist/logo.png b/apps/opengist/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7092e907f6a249eeed1ade354363a79087137e84 GIT binary patch literal 28853 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 literal 0 HcmV?d00001 diff --git a/apps/opengist/logo.svg b/apps/opengist/logo.svg new file mode 100644 index 000000000..90e07819a --- /dev/null +++ b/apps/opengist/logo.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + +