forked from Ms-Studio/appstore-1panel
Compare commits
No commits in common. "custom" and "revert-158-renovate/casbin-casdoor-1.x" have entirely different histories.
custom
...
revert-158
69
.github/ISSUE_TEMPLATE/app.yml
vendored
69
.github/ISSUE_TEMPLATE/app.yml
vendored
@ -1,69 +0,0 @@
|
|||||||
name: 💡 提交应用
|
|
||||||
description: 提交您想要添加到 1Panel 的应用
|
|
||||||
title: "[应用提交]"
|
|
||||||
labels: app
|
|
||||||
assignees: QYG2297248353
|
|
||||||
body:
|
|
||||||
- type: markdown
|
|
||||||
id: base_info
|
|
||||||
attributes:
|
|
||||||
value: "## 基本信息"
|
|
||||||
- type: input
|
|
||||||
id: version
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
attributes:
|
|
||||||
label: "1Panel 版本号"
|
|
||||||
description: "请提供您的 1Panel 版本号"
|
|
||||||
- type: input
|
|
||||||
id: email
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
attributes:
|
|
||||||
label: "邮箱"
|
|
||||||
description: "请提供您的邮箱"
|
|
||||||
- type: dropdown
|
|
||||||
id: app_type
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
attributes:
|
|
||||||
label: "应用类型"
|
|
||||||
multiple: false
|
|
||||||
options:
|
|
||||||
- 开源
|
|
||||||
- 闭源
|
|
||||||
- 半开源
|
|
||||||
default: 0
|
|
||||||
- type: input
|
|
||||||
id: app_url
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
attributes:
|
|
||||||
label: "应用链接"
|
|
||||||
description: "请提供应用的 Docker Hub 或 GitHub 或 官网 链接"
|
|
||||||
- type: input
|
|
||||||
id: app_name
|
|
||||||
attributes:
|
|
||||||
label: "应用名称"
|
|
||||||
description: "请提供应用的名称"
|
|
||||||
- type: input
|
|
||||||
id: app_version
|
|
||||||
attributes:
|
|
||||||
label: "应用版本"
|
|
||||||
description: "请提供应用的版本"
|
|
||||||
- type: textarea
|
|
||||||
id: details
|
|
||||||
attributes:
|
|
||||||
label: "应用描述"
|
|
||||||
description: "请提供应用的描述"
|
|
||||||
placeholder: "简单描述需要上架的理由"
|
|
||||||
- type: checkboxes
|
|
||||||
id: authorization
|
|
||||||
attributes:
|
|
||||||
label: 条款确认
|
|
||||||
description: "请确认您已阅读并同意以下条款"
|
|
||||||
options:
|
|
||||||
- label: "我已确认该应用 允许在 中国大陆 使用"
|
|
||||||
required: true
|
|
||||||
- label: "我已确认该应用 符合 中国大陆 相关法律法规"
|
|
||||||
required: true
|
|
8
.github/ISSUE_TEMPLATE/config.yml
vendored
8
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,8 +0,0 @@
|
|||||||
blank_issues_enabled: false
|
|
||||||
contact_links:
|
|
||||||
- name: 博客论坛
|
|
||||||
url: https://blog.lifebus.top/
|
|
||||||
about: 总能找到你想要的
|
|
||||||
- name: 萌森工作室
|
|
||||||
url: https://www.tianyancha.com/company/6145984989
|
|
||||||
about: 新疆萌森软件开发工作室提供技术支持
|
|
124
.github/README.md
vendored
124
.github/README.md
vendored
@ -5,19 +5,6 @@
|
|||||||
本仓库中的所有应用不会与 `1Panel` 官方应用商店冲突(存在相同应用并不影响后续的安装与升级,择优选择你需要的版本即可)
|
本仓库中的所有应用不会与 `1Panel` 官方应用商店冲突(存在相同应用并不影响后续的安装与升级,择优选择你需要的版本即可)
|
||||||
,我们会定期更新应用,如果您有任何问题,请联系我们。
|
,我们会定期更新应用,如果您有任何问题,请联系我们。
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> ## 2024年07月29日 公告
|
|
||||||
>
|
|
||||||
> 版本 `v1.10.13-lts` 已经支持 `env_file` 文件,但是迫于稳定性考虑,我们依旧采用固定环境变量文件的方式解决问题。
|
|
||||||
>
|
|
||||||
> 近期我们上架了很多新应用,如果您有任何问题,请联系我们。
|
|
||||||
>
|
|
||||||
> 欢迎投稿,我们会根据您的需求,上架更多的应用。
|
|
||||||
>
|
|
||||||
> 🥰 [新疆萌森软件开发工作室](https://blog.lifebus.top/) 祝您生活愉快!
|
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> ## 2024年07月17日 公告
|
> ## 2024年07月17日 公告
|
||||||
>
|
>
|
||||||
@ -76,67 +63,52 @@
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 维护状态
|
## 维护状态
|
||||||
|
|
||||||
| 状态 | 图标 | 应用名称 | 应用官网 | 短的描述 | 集合 |
|
| 状态 | 图标 | 应用名称 | 应用官网 | 短的描述 | 集合 |
|
||||||
|:--:|:------------------------------------------------------------------------------------------------:|:-----------------------:|:-------------------------------------------------------------:|:---------------------------------------------------------------------|:-------:|
|
|:--:|:---------------------------------------------------------------------------------------:|:-----------------------:|:-----------------------------------------:|:---------------------------------------------------------------------|:---------:|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/acg-faka/logo.png" width="22"/> | 异次元店铺系统 | https://faka.wiki/ | 二次元发卡系统 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/alist/logo.png" width="22"/> | AList | https://alist.nn.ci/ | 一款支持多重存储的文件列表程序 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/alist/logo.png" width="22"/> | AList | https://alist.nn.ci/ | 一款支持多重存储的文件列表程序 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/bark/logo.png" width="22"/> | Bark | https://bark.day.app/ | 一款注重隐私、安全可控的自定义通知推送工具 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/bark/logo.png" width="22"/> | Bark | https://bark.day.app/ | 一款注重隐私、安全可控的自定义通知推送工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/casdoor/logo.png" width="22"/> | Casdoor | https://casdoor.org/ | 身份和访问管理(IAM)/单点登录(SSO)平台 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/casdoor/logo.png" width="22"/> | Casdoor | https://casdoor.org/ | 身份和访问管理(IAM)/单点登录(SSO)平台 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/cookie-cloud/logo.png" width="22"/> | Cookie Cloud | https://github.com/easychen/CookieCloud/ | CookieCloud是一个和自架服务器同步浏览器Cookie和LocalStorage的小工具 | |
|
| 🔴 | | Cookie Cloud | https://github.com/easychen/CookieCloud/ | CookieCloud是一个和自架服务器同步浏览器Cookie和LocalStorage的小工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/deeplx/logo.png" width="22"/> | DeepLX | https://deeplx.owo.network/ | DeepL免费API(无需TOKEN) | |
|
| 🔴 | | DeepLX | https://deeplx.owo.network/ | DeepL免费API(无需TOKEN) | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/dockge/logo.png" width="22"/> | Dockge | https://dockge.kuma.pet/ | 面向堆栈的管理器 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/dockge/logo.png" width="22"/> | Dockge | https://dockge.kuma.pet/ | 面向堆栈的管理器 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/dujiaoka/logo.png" width="22"/> | 独角数卡 | https://github.com/assimon/dujiaoka/ | 独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速 | |
|
| 🔴 | | Elasticsearch | https://www.elastic.co/elasticsearch/ | Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎 | Elastic |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/elastic-elasticsearch/logo.png" width="22"/> | Elasticsearch | https://www.elastic.co/elasticsearch/ | Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎 | Elastic |
|
| 🔴 | | Kibana | https://www.elastic.co/kibana/ | Kibana 针对大规模数据快速运行数据分析 | Elastic |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/elastic-kibana/logo.png" width="22"/> | Kibana | https://www.elastic.co/kibana/ | Kibana 针对大规模数据快速运行数据分析 | Elastic |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/emby/logo.png" width="22"/> | Emby | https://emby.media/ | Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/emby/logo.png" width="22"/> | Emby | https://emby.media/ | Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | Emby |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/emby/logo.png" width="22"/> | Emby-lovechen | https://emby.media/ | 【开心版】Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/emby/logo.png" width="22"/> | Emby-lovechen | https://emby.media/ | 【开心版】Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | Emby |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/ghost/logo.png" width="22"/> | Ghost | https://ghost.org/ | 用于现代出版、会员制、订阅和通讯的人博客系统 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/gitea/logo.png" width="22"/> | Gitea | https://gitea.io/ | 私有、快速、可靠的 DevOps 平台 | Gitea |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/gitea/logo.png" width="22"/> | Gitea | https://gitea.io/ | 私有、快速、可靠的 DevOps 平台 | Gitea |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/gitea/logo.png" width="22"/> | Gitea Runner | https://gitea.io/ | 【Runner】私有、快速、可靠的 DevOps 平台 | Gitea |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/gitea/logo.png" width="22"/> | Gitea Runner | https://gitea.io/ | 【Runner】私有、快速、可靠的 DevOps 平台 | Gitea |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/halo/logo.png" width="22"/> | Halo | https://halo.run/ | 强大易用的开源建站工具 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/halo/logo.png" width="22"/> | Halo | https://halo.run/ | 强大易用的开源建站工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/iframely/logo.png" width="22"/> | Iframely | https://iframely.com/ | 响应式 Web 嵌入和 URL 元的 Iframely API | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich | https://immich.app/ | 【完整版本】高性能自托管照片和视频管理解决方案 | Immich |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich | https://immich.app/ | 【完整版本】高性能自托管照片和视频管理解决方案 | Immich |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich-Server | https://immich.app/ | 【主服务模块】高性能自托管照片和视频管理解决方案 | Immich |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich-Server | https://immich.app/ | 【主服务模块】高性能自托管照片和视频管理解决方案 | Immich |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich-Machine-Learning | https://immich.app/ | 【机器学习模块】高性能自托管照片和视频管理解决方案 | Immich |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich-Machine-Learning | https://immich.app/ | 【机器学习模块】高性能自托管照片和视频管理解决方案 | Immich |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/iyuu-plus/logo.png" width="22"/> | IYUU Plus | https://doc.iyuu.cn/ | 基于特征码的索引工具 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/iyuu-plus/logo.png" width="22"/> | IYUU Plus | https://doc.iyuu.cn/ | 基于特征码的索引工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/iycms/logo.png" width="22"/> | 爱影CMS | https://www.iycms.com/ | 高性能高并发永久免费影视CMS | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/jellyfin/logo.png" width="22"/> | Jellyfin | https://jellyfin.org/ | 自由软件媒体系统 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/jellyfin/logo.png" width="22"/> | Jellyfin | https://jellyfin.org/ | 自由软件媒体系统 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/linkding/logo.png" width="22"/> | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
|
| 🔴 | | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mailserver/logo.png" width="22"/> | Docker Mailserver | https://docker-mailserver.github.io/docker-mailserver/latest/ | 可用于生产的全栈但简单的邮件服务器 | |
|
| 🔴 | | MinIO | https://min.io/ | MinIO 是一种高性能、兼容 S3 的对象存储 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/minio/logo.png" width="22"/> | MinIO | https://min.io/ | MinIO 是一种高性能、兼容 S3 的对象存储 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/movie-pilot/logo.png" width="22"/> | MoviePilot | https://github.com/jxxghp/MoviePilot/ | NAS媒体库自动化管理工具 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/movie-pilot/logo.png" width="22"/> | MoviePilot | https://github.com/jxxghp/MoviePilot/ | NAS媒体库自动化管理工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mysql/logo.png" width="22"/> | MySQL | https://www.mysql.com/ | 关系数据库管理系统 | MySQL |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mysql/logo.png" width="22"/> | MySQL | https://www.mysql.com/ | 关系数据库管理系统 | MySQL |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mariadb/logo.png" width="22"/> | MariaDB | https://mariadb.org/ | 【MySQL分支】创新的开源数据库 | MySQL |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mariadb/logo.png" width="22"/> | MariaDB | https://mariadb.org/ | 【MySQL分支】创新的开源数据库 | MySQL |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/percona/logo.png" width="22"/> | Percona | https://www.percona.com/ | 【MySQL分支】关系数据库管理系统 | MySQL |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/percona/logo.png" width="22"/> | Percona | https://www.percona.com/ | 【MySQL分支】关系数据库管理系统 | MySQL |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nacos/logo.png" width="22"/> | Nacos | https://nacos.io/ | 动态服务发现、配置管理和服务管理平台 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nacos/logo.png" width="22"/> | Nacos | https://nacos.io/ | 动态服务发现、配置管理和服务管理平台 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nezha/logo.png" width="22"/> | NeZha | https://nezha.wiki/ | 【哪吒监控】开源、轻量、易用的服务器监控、运维工具 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nezha/logo.png" width="22"/> | NeZha | https://nezha.wiki/ | 【哪吒监控】开源、轻量、易用的服务器监控、运维工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nocodb/logo.png" width="22"/> | NocoDB | https://nocodb.com/ | 无代码数据库平台 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/onedev/logo.png" width="22"/> | OneDev | https://onedev.io/ | DevOps 平台、带有 CI/CD、看板和软件包的 Git 服务器 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/onedev/logo.png" width="22"/> | OneDev | https://onedev.io/ | DevOps 平台、带有 CI/CD、看板和软件包的 Git 服务器 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/outline/logo.png" width="22"/> | OutLine | https://www.getoutline.com/ | 快速、协作的团队知识库 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/outline/logo.png" width="22"/> | OutLine | https://www.getoutline.com/ | 快速、协作的团队知识库 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/photoprism/logo.png" width="22"/> | PhotoPrism | https://www.photoprism.app/ | 面向去中心化网络的人工智能照片应用程序 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/pixman/logo.png" width="22"/> | Pixman | https://pixman.io/ | IPTV、M3U8 流媒体代理方案 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/postgresql/logo.png" width="22"/> | PostgreSQL | https://www.postgresql.org/ | 世界上最先进的开源关系数据库 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/postgresql/logo.png" width="22"/> | PostgreSQL | https://www.postgresql.org/ | 世界上最先进的开源关系数据库 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/qbittorrent/logo.png" width="22"/> | qBittorrent | https://www.qbittorrent.org/ | qBittorrent 比特流客户端 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/qbittorrent/logo.png" width="22"/> | qBittorrent | https://www.qbittorrent.org/ | qBittorrent 比特流客户端 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/qinglong/logo.png" width="22"/> | 青龙 | https://github.com/whyour/qinglong/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/qinglong/logo.png" width="22"/> | QingLong | https://github.com/whyour/qinglong/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/reader3/logo.png" width="22"/> | 阅读3 | https://github.com/hectorqin/reader/ | 【阅读3】阅读3服务器版,不需要手机 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/redis/logo.png" width="22"/> | Redis | https://redis.io/ | 从世界上最快的内存数据库创建者那里获取该数据库 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/redis/logo.png" width="22"/> | Redis | https://redis.io/ | 从世界上最快的内存数据库创建者那里获取该数据库 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/rsshub/logo.png" width="22"/> | RssHub | https://rsshub.app/ | 从任何内容生成 RSS/Atom/JSON 订阅源 | |
|
| 🔴 | | Sentinel | https://sentinelguard.io/ | 面向分布式、多语言异构化服务架构的流量治理组件 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/sentinel/logo.png" width="22"/> | Sentinel | https://sentinelguard.io/ | 面向分布式、多语言异构化服务架构的流量治理组件 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/siyuan/logo.png" width="22"/> | SiYuan | https://b3log.org/siyuan/ | 【思源笔记】一款隐私优先、自托管、完全开源的个人知识管理软件 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/siyuan/logo.png" width="22"/> | 思源笔记 | https://b3log.org/siyuan/ | 【思源笔记】一款隐私优先、自托管、完全开源的个人知识管理软件 | |
|
| 🔴 | | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | SpeedTest |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/speedtest/logo.png" width="22"/> | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | |
|
|
||||||
| 🔴 | | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |
|
| 🔴 | | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Stream-Rec | https://github.com/hua0512/stream-rec/ | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
|
| 🔴 | | Stream-Rec | https://github.com/hua0512/stream-rec | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/telegram-bot-api/logo.png" width="22"/> | Telegram Bot Api | https://telegram.org/ | 自建 Telegram Bot API 服务器 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/transmission/logo.png" width="22"/> | Transmission | https://transmissionbt.com/ | 快速、简单、免费的 Bittorrent 客户端 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/transmission/logo.png" width="22"/> | Transmission | https://transmissionbt.com/ | 快速、简单、免费的 Bittorrent 客户端 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/uptime-kuma/logo.png" width="22"/> | Uptime Kuma | https://uptime.kuma.pet/ | 自托管监控工具 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/uptime-kuma/logo.png" width="22"/> | Uptime Kuma | https://uptime.kuma.pet/ | 自托管监控工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/umami/logo.png" width="22"/> | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/umami/logo.png" width="22"/> | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/wiseflow/logo.png" width="22"/> | WiseFlow | https://github.com/TeamWiseFlow/wiseflow/ | Wiseflow 首席情报官 | |
|
|
||||||
| 🔴 | | Yarr | https://github.com/nkanaev/yarr | Rss 阅读器 | |
|
| 🔴 | | Yarr | https://github.com/nkanaev/yarr | Rss 阅读器 | |
|
||||||
| 🔴 | | Ztncui | https://www.zerotier.com/ | 【自建服务端】ZeroTier 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | |
|
| 🔴 | | Ztncui | https://www.zerotier.com/ | 【自建服务端】ZeroTier 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | ZeroTier |
|
||||||
|
|
||||||
> 说明:
|
> 说明:
|
||||||
>
|
>
|
||||||
@ -144,24 +116,16 @@
|
|||||||
>
|
>
|
||||||
> 维护状态:🟢 维护中 🔴 未维护 🟡 表示不定期维护
|
> 维护状态:🟢 维护中 🔴 未维护 🟡 表示不定期维护
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 应用安装
|
## 应用安装
|
||||||
|
|
||||||
> 温馨提示:
|
> 温馨提示:
|
||||||
> 当您已安装其他第三方库时并且存在应用冲突,安装过程中会主动删除冲突的第三方库应用,如果您不同意,请不要执行脚本。
|
> 当您已安装其他第三方库时并且存在应用冲突,安装过程中会主动删除冲突的第三方库应用,如果您不同意,请不要执行脚本。
|
||||||
>
|
>
|
||||||
> 我们建议您在安装之前备份您的数据,或手动安装。
|
> 我们建议您在安装之前备份您的数据,或手动安装。
|
||||||
>
|
|
||||||
> 如果您不使用 `curl` 命令,可以使用 `wget` 命令代替。
|
|
||||||
>
|
|
||||||
> 将 `curl -sSL` 替换为 `wget -qO-` 即可。
|
|
||||||
|
|
||||||
### 自动化安装
|
### 一键式自动化安装 <sup>`推荐`</sup>
|
||||||
|
|
||||||
一键式安装,无需手动操作,自动完成 1Panel应用 上架应用商店。
|
如果您不想每次都手动执行命令,可以使用一键式安装。我们优先推荐此方式。
|
||||||
|
|
||||||
每三小时自动更新一次应用列表。
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
curl -sSL https://install.lifebus.top/auto_install.sh | bash
|
curl -sSL https://install.lifebus.top/auto_install.sh | bash
|
||||||
@ -181,37 +145,34 @@ curl -sSL https://install.lifebus.top/auto_uninstall.sh | bash
|
|||||||
|
|
||||||
+ 应用数据目录:`${应用持久化目录}`
|
+ 应用数据目录:`${应用持久化目录}`
|
||||||
|
|
||||||
### 手动安装模式
|
<details>
|
||||||
|
|
||||||
更新时机由自己把握,手动执行命令。
|
<summary>其他安装方式</summary>
|
||||||
|
|
||||||
|
## 手动更新安装
|
||||||
|
|
||||||
|
应用的升级与更新均需要重新执行安装脚本。
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
curl -sSL https://install.lifebus.top/app_install.sh | bash
|
curl -sSL https://install.lifebus.top/app_install.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
### 计划任务模式
|
## 计划任务模式
|
||||||
|
|
||||||
将内容写入Shell计划任务中,设定定期执行。
|
将内容写入Shell计划任务中,设定定期执行。
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# 此处可以定义代理方案
|
|
||||||
|
|
||||||
script_url="https://install.lifebus.top/app_install.sh"
|
script_url="https://install.lifebus.top/app_install.sh"
|
||||||
|
|
||||||
echo "Downloading and executing script from $script_url..."
|
echo "Downloading and executing script from $script_url..."
|
||||||
bash <(curl -sL "$script_url")
|
bash <(curl -sL "$script_url")
|
||||||
|
|
||||||
echo "Script execution completed."
|
echo "Script execution completed."
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 配置脚本网络代理
|
### 配置脚本网络代理
|
||||||
|
|
||||||
如果您的网络环境需要代理,请在脚本执行前配置代理。
|
|
||||||
|
|
||||||
可将以下脚本插入到 `计划任务模式` 的脚本中。
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
proxy_protocols="http"
|
proxy_protocols="http"
|
||||||
@ -221,7 +182,7 @@ export http_proxy="$proxy_protocols://$proxy_server:$proxy_port"
|
|||||||
export https_proxy="$proxy_protocols://$proxy_server:$proxy_port"
|
export https_proxy="$proxy_protocols://$proxy_server:$proxy_port"
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
</details>
|
||||||
|
|
||||||
## 安装 `Pre 尝鲜版` 应用
|
## 安装 `Pre 尝鲜版` 应用
|
||||||
|
|
||||||
@ -241,35 +202,8 @@ curl -sSL https://install.lifebus.top/pre_app_install.sh | bash
|
|||||||
curl -sSL https://install.lifebus.top/pre_app_uninstall.sh | bash
|
curl -sSL https://install.lifebus.top/pre_app_uninstall.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 卸载所有本地应用
|
|
||||||
|
|
||||||
通过此脚本,您可以卸载所有本地应用,但是不会删除数据。
|
|
||||||
|
|
||||||
可能您的库中遗留了一些无用的应用,您可以通过此脚本进行清理。该脚本不影响 `自动化脚本` 的应用更新。
|
|
||||||
|
|
||||||
**此脚本必须`root`用户执行**
|
|
||||||
|
|
||||||
```sh
|
|
||||||
curl -sSL https://install.lifebus.top/local_app_uninstall.sh | bash
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 常见问题
|
## 常见问题
|
||||||
|
|
||||||
+ 安装脚本提示
|
|
||||||
+ 没有权限
|
|
||||||
+ 请使用 `root` 用户执行脚本
|
|
||||||
+ `curl: command not found`
|
|
||||||
+ 请安装 `curl` 命令
|
|
||||||
+ `apt install curl -y`
|
|
||||||
+ `yum install curl -y`
|
|
||||||
+ 由于安装脚本的网络问题导致安装失败
|
|
||||||
+ 请检查网络状况
|
|
||||||
+ 请尝试重新执行安装脚本
|
|
||||||
+ 请尝试使用 `wget` 命令代替 `curl` 命令
|
|
||||||
+ 升级失败
|
+ 升级失败
|
||||||
+ 检查网络状况与磁盘空间
|
+ 检查网络状况与磁盘空间
|
||||||
+ 配置镜像地址
|
+ 配置镜像地址
|
||||||
@ -285,17 +219,13 @@ curl -sSL https://install.lifebus.top/local_app_uninstall.sh | bash
|
|||||||
+ 关于 `前置检查` 依旧需要填写 `数据库` 相关连接信息,是因为其提供的能力并不是完全可靠,避免后期出现问题,我们采用持久化的方式存储。
|
+ 关于 `前置检查` 依旧需要填写 `数据库` 相关连接信息,是因为其提供的能力并不是完全可靠,避免后期出现问题,我们采用持久化的方式存储。
|
||||||
+ 如果您的环境符合要求,但是依旧无法安装,请联系我们。
|
+ 如果您的环境符合要求,但是依旧无法安装,请联系我们。
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 温馨提示
|
## 温馨提示
|
||||||
|
|
||||||
安装应用前请查看应用说明,了解应用的使用方法和注意事项。
|
安装应用前请查看应用说明,了解应用的使用方法和注意事项。
|
||||||
当前第三方库应用均为开源应用,我们不对应用的安全性和稳定性负责。
|
当前第三方库应用均为开源应用,我们不对应用的安全性和稳定性负责。
|
||||||
如果您在使用过程中遇到问题,请查看应用的官方文档或社区,或者联系我们。
|
如果您在使用过程中遇到问题,请查看应用的官方文档或社区,或者联系我们。
|
||||||
|
|
||||||
---
|
## 联系方式
|
||||||
|
|
||||||
## 联系我们
|
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
> <img src="https://file.lifebus.top/imgs/google_gmail_logo.png" alt="Gmail" width="30"/>
|
> <img src="https://file.lifebus.top/imgs/google_gmail_logo.png" alt="Gmail" width="30"/>
|
||||||
|
31
.github/renovate.json
vendored
31
.github/renovate.json
vendored
@ -3,19 +3,14 @@
|
|||||||
"extends": [
|
"extends": [
|
||||||
"config:base"
|
"config:base"
|
||||||
],
|
],
|
||||||
"enabledManagers": [
|
|
||||||
"docker-compose",
|
|
||||||
"github-actions"
|
|
||||||
],
|
|
||||||
"gitIgnoredAuthors": [
|
"gitIgnoredAuthors": [
|
||||||
"githubaction@githubaction.com"
|
"githubaction@githubaction.com"
|
||||||
],
|
],
|
||||||
"rebaseWhen": "never",
|
"rebaseWhen": "never",
|
||||||
"packageRules": [
|
"packageRules": [
|
||||||
{
|
{
|
||||||
"matchPackageNames": [
|
"packageNames": [
|
||||||
"actions/checkout",
|
"docker-compose"
|
||||||
"renovatebot/github-action"
|
|
||||||
],
|
],
|
||||||
"automerge": true
|
"automerge": true
|
||||||
},
|
},
|
||||||
@ -74,14 +69,32 @@
|
|||||||
"allowedVersions": "/^4.*.*/"
|
"allowedVersions": "/^4.*.*/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"matchDatasources": [
|
||||||
|
"docker"
|
||||||
|
],
|
||||||
"matchPackageNames": [
|
"matchPackageNames": [
|
||||||
"emby/embyserver"
|
"emby/embyserver"
|
||||||
],
|
],
|
||||||
"allowedVersions": "/^4\\.8\\.\\d+\\.\\d+$/"
|
"allowedVersions": "/^4\\.8\\.\\d+\\.\\d+$/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"matchPackageNames": ["photoprism/photoprism"],
|
"matchDatasources": [
|
||||||
"versioning": "regex:^(\\d{2})(\\d{2})(\\d{2})$"
|
"docker"
|
||||||
|
],
|
||||||
|
"matchPackageNames": [
|
||||||
|
"ghcr.io/*"
|
||||||
|
],
|
||||||
|
"versionCompatibility": "^(?<compatibility>.*)-(?<version>.*)$",
|
||||||
|
"versioning": "semver"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"matchDatasources": [
|
||||||
|
"docker"
|
||||||
|
],
|
||||||
|
"matchPackageNames": [
|
||||||
|
"ghcr.io/*"
|
||||||
|
],
|
||||||
|
"versioning": "semver"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"prCreation": "immediate"
|
"prCreation": "immediate"
|
||||||
|
23
.github/workflows/push_custom_to_released.yml
vendored
23
.github/workflows/push_custom_to_released.yml
vendored
@ -1,23 +0,0 @@
|
|||||||
name: Push custom to released
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
schedule:
|
|
||||||
- cron: '0 0 */3 * *'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
push-branch:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
ref: custom
|
|
||||||
|
|
||||||
- name: Push to released branch
|
|
||||||
run: |
|
|
||||||
git config --global user.name "${{ github.actor }}"
|
|
||||||
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
|
|
||||||
git remote set-url origin https://x-access-token:${{ secrets.GITHUBTOKEN }}@github.com/${{ github.repository }}.git
|
|
||||||
git push origin custom:released --force
|
|
84
.github/workflows/renovate-app-version.sh
vendored
84
.github/workflows/renovate-app-version.sh
vendored
@ -4,91 +4,23 @@
|
|||||||
app_name=$1
|
app_name=$1
|
||||||
old_version=$2
|
old_version=$2
|
||||||
|
|
||||||
# 定义关联数组,将应用名称与其对应的 keys 关联起来
|
# find all docker-compose files under apps/$app_name (there should be only one)
|
||||||
declare -A app_keys
|
|
||||||
app_keys=(["immich"]="immich-server immich-machine-learning" ["stream-rec"]="stream-rec-backend stream-rec-frontend")
|
|
||||||
|
|
||||||
echo "Processing app: $app_name, old version: $old_version"
|
|
||||||
|
|
||||||
# Find all docker-compose files under apps/$app_name (there should be only one)
|
|
||||||
docker_compose_files=$(find apps/$app_name/$old_version -name docker-compose.yml)
|
docker_compose_files=$(find apps/$app_name/$old_version -name docker-compose.yml)
|
||||||
|
|
||||||
process_image() {
|
for docker_compose_file in $docker_compose_files
|
||||||
local image=$1
|
do
|
||||||
|
# Assuming that the app version will be from the first docker image
|
||||||
|
first_service=$(yq '.services | keys | .[0]' $docker_compose_file)
|
||||||
|
|
||||||
|
image=$(yq .services.$first_service.image $docker_compose_file)
|
||||||
|
|
||||||
# Only apply changes if the format is <image>:<version>
|
# Only apply changes if the format is <image>:<version>
|
||||||
if [[ "$image" == *":"* ]]; then
|
if [[ "$image" == *":"* ]]; then
|
||||||
version=$(cut -d ":" -f2- <<< "$image")
|
version=$(cut -d ":" -f2- <<< "$image")
|
||||||
|
|
||||||
echo "Extracted version: $version"
|
|
||||||
|
|
||||||
# Trim the "v" prefix
|
# Trim the "v" prefix
|
||||||
trimmed_version=${version/#"v"}
|
trimmed_version=${version/#"v"}
|
||||||
|
|
||||||
echo "Trimmed version: $trimmed_version"
|
mv apps/$app_name/$old_version apps/$app_name/$trimmed_version
|
||||||
|
|
||||||
# Remove any suffixes (like -ffmpeg) for versioning purposes
|
|
||||||
cleaned_version=$(echo $trimmed_version | grep -oE '^[0-9]+(\.[0-9]+){0,4}')
|
|
||||||
|
|
||||||
echo "Cleaned version: $cleaned_version"
|
|
||||||
|
|
||||||
# Handle special versions with dates and other formats
|
|
||||||
if [[ -z "$cleaned_version" && "$trimmed_version" =~ ^RELEASE\.[0-9]{4}-[0-9]{2}-[0-9]{2} ]]; then
|
|
||||||
# Handle minio version format RELEASE.YYYY-MM-DDTHH-MM-SSZ
|
|
||||||
cleaned_version=$(echo $trimmed_version | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}')
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Final version: $cleaned_version"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
for docker_compose_file in $docker_compose_files
|
|
||||||
do
|
|
||||||
echo "Processing docker-compose file: $docker_compose_file"
|
|
||||||
|
|
||||||
# 判断 app_name 是否在关联数组中
|
|
||||||
if [[ -n "${app_keys[$app_name]}" ]]; then
|
|
||||||
echo "$app_name is in the app_keys list."
|
|
||||||
# 获取对应的 keys
|
|
||||||
IFS=' ' read -r -a keys <<< "${app_keys[$app_name]}"
|
|
||||||
for key in "${keys[@]}"; do
|
|
||||||
echo "Processing key: $key"
|
|
||||||
first_service=$(yq ".services | keys | .[] | select(. == \"$key\")" $docker_compose_file)
|
|
||||||
|
|
||||||
if [[ -n "$first_service" ]]; then
|
|
||||||
image=$(yq .services.$first_service.image $docker_compose_file)
|
|
||||||
echo "Found image for service $first_service: $image"
|
|
||||||
|
|
||||||
# 进行后续处理
|
|
||||||
process_image "$image"
|
|
||||||
else
|
|
||||||
echo "Key $key not found in $docker_compose_file"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# 在循环完毕后执行版本移动操作
|
|
||||||
if [[ -n "$cleaned_version" ]]; then
|
|
||||||
mv apps/$app_name/$old_version apps/$app_name/$cleaned_version
|
|
||||||
echo "Moved $old_version to $cleaned_version"
|
|
||||||
else
|
|
||||||
echo "Could not determine version for image: $image"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "$app_name is not in the app_keys list. Processing first service normally."
|
|
||||||
first_service=$(yq '.services | keys | .[0]' $docker_compose_file)
|
|
||||||
|
|
||||||
image=$(yq .services.$first_service.image $docker_compose_file)
|
|
||||||
echo "Found image: $image"
|
|
||||||
|
|
||||||
# 进行后续处理
|
|
||||||
process_image "$image"
|
|
||||||
|
|
||||||
# 在处理第一个服务后执行版本移动操作
|
|
||||||
if [[ -n "$cleaned_version" ]]; then
|
|
||||||
mv apps/$app_name/$old_version apps/$app_name/$cleaned_version
|
|
||||||
echo "Moved $old_version to $cleaned_version"
|
|
||||||
else
|
|
||||||
echo "Could not determine version for image: $image"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
56
.github/workflows/renovate-app-version.sh.bac
vendored
56
.github/workflows/renovate-app-version.sh.bac
vendored
@ -1,56 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# This script copies the version from docker-compose.yml to config.json.
|
|
||||||
|
|
||||||
app_name=$1
|
|
||||||
old_version=$2
|
|
||||||
|
|
||||||
echo "Processing app: $app_name, old version: $old_version"
|
|
||||||
|
|
||||||
# Find all docker-compose files under apps/$app_name (there should be only one)
|
|
||||||
docker_compose_files=$(find apps/$app_name/$old_version -name docker-compose.yml)
|
|
||||||
|
|
||||||
for docker_compose_file in $docker_compose_files
|
|
||||||
do
|
|
||||||
echo "Processing docker-compose file: $docker_compose_file"
|
|
||||||
|
|
||||||
# Assuming that the app version will be from the first docker image
|
|
||||||
first_service=$(yq '.services | keys | .[0]' $docker_compose_file)
|
|
||||||
|
|
||||||
image=$(yq .services.$first_service.image $docker_compose_file)
|
|
||||||
|
|
||||||
echo "Found image: $image"
|
|
||||||
|
|
||||||
# Only apply changes if the format is <image>:<version>
|
|
||||||
if [[ "$image" == *":"* ]]; then
|
|
||||||
version=$(cut -d ":" -f2- <<< "$image")
|
|
||||||
|
|
||||||
echo "Extracted version: $version"
|
|
||||||
|
|
||||||
# Trim the "v" prefix
|
|
||||||
trimmed_version=${version/#"v"}
|
|
||||||
|
|
||||||
echo "Trimmed version: $trimmed_version"
|
|
||||||
|
|
||||||
# Remove any suffixes (like -ffmpeg) for versioning purposes
|
|
||||||
cleaned_version=$(echo $trimmed_version | grep -oE '^[0-9]+(\.[0-9]+){0,4}')
|
|
||||||
|
|
||||||
echo "Cleaned version: $cleaned_version"
|
|
||||||
|
|
||||||
# Handle special versions with dates and other formats
|
|
||||||
if [[ -z "$cleaned_version" && "$trimmed_version" =~ ^RELEASE\.[0-9]{4}-[0-9]{2}-[0-9]{2} ]]; then
|
|
||||||
# Handle minio version format RELEASE.YYYY-MM-DDTHH-MM-SSZ
|
|
||||||
cleaned_version=$(echo $trimmed_version | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}')
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Final version: $cleaned_version"
|
|
||||||
|
|
||||||
# Move to the new versioned directory
|
|
||||||
if [[ -n "$cleaned_version" ]]; then
|
|
||||||
mv apps/$app_name/$old_version apps/$app_name/$cleaned_version
|
|
||||||
|
|
||||||
echo "Moved $old_version to $cleaned_version"
|
|
||||||
else
|
|
||||||
echo "Could not determine version for image: $image"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
7
.github/workflows/renovate-app-version.yml
vendored
7
.github/workflows/renovate-app-version.yml
vendored
@ -8,7 +8,6 @@ on:
|
|||||||
manual-trigger:
|
manual-trigger:
|
||||||
description: 'Manually trigger Renovate'
|
description: 'Manually trigger Renovate'
|
||||||
default: ''
|
default: ''
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
update-app-version:
|
update-app-version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -27,16 +26,15 @@ jobs:
|
|||||||
id: updated-files
|
id: updated-files
|
||||||
run: |
|
run: |
|
||||||
echo "::set-output name=files::$(git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | tr '\n' ' ')"
|
echo "::set-output name=files::$(git diff-tree --no-commit-id --name-only -r ${{ github.sha }} | tr '\n' ' ')"
|
||||||
echo "Updated files: ${{ steps.updated-files.outputs.files }}"
|
|
||||||
|
|
||||||
- name: Run renovate-app-version.sh on updated files
|
- name: Run renovate-app-version.sh on updated files
|
||||||
run: |
|
run: |
|
||||||
IFS=' ' read -ra files <<< "${{ steps.updated-files.outputs.files }}"
|
IFS=' ' read -ra files <<< "${{ steps.updated-files.outputs.files }}"
|
||||||
|
|
||||||
for file in "${files[@]}"; do
|
for file in "${files[@]}"; do
|
||||||
if [[ $file == *"docker-compose.yml"* ]]; then
|
if [[ $file == *"docker-compose.yml"* ]]; then
|
||||||
app_name=$(echo $file | cut -d'/' -f 2)
|
app_name=$(echo $file | cut -d'/' -f 2)
|
||||||
old_version=$(echo $file | cut -d'/' -f 3)
|
old_version=$(echo $file | cut -d'/' -f 3)
|
||||||
echo "Running script for app: $app_name, old version: $old_version"
|
|
||||||
chmod +x .github/workflows/renovate-app-version.sh
|
chmod +x .github/workflows/renovate-app-version.sh
|
||||||
.github/workflows/renovate-app-version.sh $app_name $old_version
|
.github/workflows/renovate-app-version.sh $app_name $old_version
|
||||||
fi
|
fi
|
||||||
@ -45,10 +43,11 @@ jobs:
|
|||||||
- name: Commit & Push Changes
|
- name: Commit & Push Changes
|
||||||
run: |
|
run: |
|
||||||
IFS=' ' read -ra files <<< "${{ steps.updated-files.outputs.files }}"
|
IFS=' ' read -ra files <<< "${{ steps.updated-files.outputs.files }}"
|
||||||
|
|
||||||
for file in "${files[@]}"; do
|
for file in "${files[@]}"; do
|
||||||
if [[ $file == *"docker-compose.yml"* ]]; then
|
if [[ $file == *"docker-compose.yml"* ]]; then
|
||||||
app_name=$(echo $file | cut -d'/' -f 2)
|
app_name=$(echo $file | cut -d'/' -f 2)
|
||||||
echo "Committing changes for app: $app_name"
|
|
||||||
git add "apps/$app_name/*" && git commit -m "Update app version [skip ci]" --no-verify && git push || true
|
git add "apps/$app_name/*" && git commit -m "Update app version [skip ci]" --no-verify && git push || true
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
4
.github/workflows/renovate.yml
vendored
4
.github/workflows/renovate.yml
vendored
@ -2,7 +2,7 @@ name: Renovate
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: "0 * * * *"
|
- cron: "0 0 * * *"
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
manual-trigger:
|
manual-trigger:
|
||||||
@ -16,7 +16,7 @@ jobs:
|
|||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||||
- name: Run Renovate
|
- name: Run Renovate
|
||||||
uses: renovatebot/github-action@b266b24b144602ed4f512f0773009d026722f4cc # v40.2.6
|
uses: renovatebot/github-action@d4cde0ac34e53942ead1619a101748e3ab842937 # v40.2.1
|
||||||
with:
|
with:
|
||||||
useSlim: false
|
useSlim: false
|
||||||
token: ${{ secrets.GITHUBTOKEN }}
|
token: ${{ secrets.GITHUBTOKEN }}
|
||||||
|
123
README.md
123
README.md
@ -5,16 +5,6 @@
|
|||||||
本仓库中的所有应用不会与 `1Panel` 官方应用商店冲突(存在相同应用并不影响后续的安装与升级,择优选择你需要的版本即可)
|
本仓库中的所有应用不会与 `1Panel` 官方应用商店冲突(存在相同应用并不影响后续的安装与升级,择优选择你需要的版本即可)
|
||||||
,我们会定期更新应用,如果您有任何问题,请联系我们。
|
,我们会定期更新应用,如果您有任何问题,请联系我们。
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
<div style="border: 1px solid #e1e1e1; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); padding: 16px; margin: 16px; background-color: #fff; width: 80%; margin-left: auto; margin-right: auto;">
|
|
||||||
<h2 style="margin: 0 0 8px 0; font-size: 1.5em;">2024年07月29日 公告</h2>
|
|
||||||
<p>版本 <span style="font-weight: bold; color: #d9534f;">v1.10.13-lts</span> 已经支持 <span style="font-weight: bold; color: #d9534f;">env_file</span> 文件,但是迫于稳定性考虑,我们依旧采用固定环境变量文件的方式解决问题。</p>
|
|
||||||
<p>近期我们上架了很多新应用,如果您有任何问题,请联系我们。</p>
|
|
||||||
<p>欢迎投稿,我们会根据您的需求,上架更多的应用。</p>
|
|
||||||
<p>🥰 <a href="https://blog.lifebus.top/" target="_blank" >新疆萌森软件开发工作室</a> 祝您生活愉快!</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div style="border: 1px solid #e1e1e1; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); padding: 16px; margin: 16px; background-color: #fff; width: 80%; margin-left: auto; margin-right: auto;">
|
<div style="border: 1px solid #e1e1e1; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); padding: 16px; margin: 16px; background-color: #fff; width: 80%; margin-left: auto; margin-right: auto;">
|
||||||
<h2 style="margin: 0 0 8px 0; font-size: 1.5em;">2024年07月17日 公告</h2>
|
<h2 style="margin: 0 0 8px 0; font-size: 1.5em;">2024年07月17日 公告</h2>
|
||||||
<p>正式开始维护,新老用户推荐使用<span style="font-weight: bold; color: #d9534f;">自动化脚本</span>完成软件订阅。</p>
|
<p>正式开始维护,新老用户推荐使用<span style="font-weight: bold; color: #d9534f;">自动化脚本</span>完成软件订阅。</p>
|
||||||
@ -59,67 +49,52 @@
|
|||||||
<p><span style="font-weight: bold; color: #d9534f;">警告</span> 请勿升级 <span style="font-weight: bold; color: #d9534f;">1Panel</span> 到 <span style="font-weight: bold; color: #d9534f;">v1.10.10-lts</span> 版本,否则会导致应用商店无法使用!</p>
|
<p><span style="font-weight: bold; color: #d9534f;">警告</span> 请勿升级 <span style="font-weight: bold; color: #d9534f;">1Panel</span> 到 <span style="font-weight: bold; color: #d9534f;">v1.10.10-lts</span> 版本,否则会导致应用商店无法使用!</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 维护状态
|
## 维护状态
|
||||||
|
|
||||||
| 状态 | 图标 | 应用名称 | 应用官网 | 短的描述 | 集合 |
|
| 状态 | 图标 | 应用名称 | 应用官网 | 短的描述 | 集合 |
|
||||||
|:--:|:------------------------------------------------------------------------------------------------:|:-----------------------:|:-------------------------------------------------------------:|:---------------------------------------------------------------------|:-------:|
|
|:--:|:---------------------------------------------------------------------------------------:|:-----------------------:|:-----------------------------------------:|:---------------------------------------------------------------------|:---------:|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/acg-faka/logo.png" width="22"/> | 异次元店铺系统 | https://faka.wiki/ | 二次元发卡系统 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/alist/logo.png" width="22"/> | AList | https://alist.nn.ci/ | 一款支持多重存储的文件列表程序 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/alist/logo.png" width="22"/> | AList | https://alist.nn.ci/ | 一款支持多重存储的文件列表程序 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/bark/logo.png" width="22"/> | Bark | https://bark.day.app/ | 一款注重隐私、安全可控的自定义通知推送工具 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/bark/logo.png" width="22"/> | Bark | https://bark.day.app/ | 一款注重隐私、安全可控的自定义通知推送工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/casdoor/logo.png" width="22"/> | Casdoor | https://casdoor.org/ | 身份和访问管理(IAM)/单点登录(SSO)平台 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/casdoor/logo.png" width="22"/> | Casdoor | https://casdoor.org/ | 身份和访问管理(IAM)/单点登录(SSO)平台 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/cookie-cloud/logo.png" width="22"/> | Cookie Cloud | https://github.com/easychen/CookieCloud/ | CookieCloud是一个和自架服务器同步浏览器Cookie和LocalStorage的小工具 | |
|
| 🔴 | | Cookie Cloud | https://github.com/easychen/CookieCloud/ | CookieCloud是一个和自架服务器同步浏览器Cookie和LocalStorage的小工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/deeplx/logo.png" width="22"/> | DeepLX | https://deeplx.owo.network/ | DeepL免费API(无需TOKEN) | |
|
| 🔴 | | DeepLX | https://deeplx.owo.network/ | DeepL免费API(无需TOKEN) | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/dockge/logo.png" width="22"/> | Dockge | https://dockge.kuma.pet/ | 面向堆栈的管理器 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/dockge/logo.png" width="22"/> | Dockge | https://dockge.kuma.pet/ | 面向堆栈的管理器 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/dujiaoka/logo.png" width="22"/> | 独角数卡 | https://github.com/assimon/dujiaoka/ | 独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速 | |
|
| 🔴 | | Elasticsearch | https://www.elastic.co/elasticsearch/ | Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎 | Elastic |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/elastic-elasticsearch/logo.png" width="22"/> | Elasticsearch | https://www.elastic.co/elasticsearch/ | Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎 | Elastic |
|
| 🔴 | | Kibana | https://www.elastic.co/kibana/ | Kibana 针对大规模数据快速运行数据分析 | Elastic |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/elastic-kibana/logo.png" width="22"/> | Kibana | https://www.elastic.co/kibana/ | Kibana 针对大规模数据快速运行数据分析 | Elastic |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/emby/logo.png" width="22"/> | Emby | https://emby.media/ | Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/emby/logo.png" width="22"/> | Emby | https://emby.media/ | Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | Emby |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/emby/logo.png" width="22"/> | Emby-lovechen | https://emby.media/ | 【开心版】Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/emby/logo.png" width="22"/> | Emby-lovechen | https://emby.media/ | 【开心版】Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | Emby |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/ghost/logo.png" width="22"/> | Ghost | https://ghost.org/ | 用于现代出版、会员制、订阅和通讯的人博客系统 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/gitea/logo.png" width="22"/> | Gitea | https://gitea.io/ | 私有、快速、可靠的 DevOps 平台 | Gitea |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/gitea/logo.png" width="22"/> | Gitea | https://gitea.io/ | 私有、快速、可靠的 DevOps 平台 | Gitea |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/gitea/logo.png" width="22"/> | Gitea Runner | https://gitea.io/ | 【Runner】私有、快速、可靠的 DevOps 平台 | Gitea |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/gitea/logo.png" width="22"/> | Gitea Runner | https://gitea.io/ | 【Runner】私有、快速、可靠的 DevOps 平台 | Gitea |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/halo/logo.png" width="22"/> | Halo | https://halo.run/ | 强大易用的开源建站工具 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/halo/logo.png" width="22"/> | Halo | https://halo.run/ | 强大易用的开源建站工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/iframely/logo.png" width="22"/> | Iframely | https://iframely.com/ | 响应式 Web 嵌入和 URL 元的 Iframely API | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich | https://immich.app/ | 【完整版本】高性能自托管照片和视频管理解决方案 | Immich |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich | https://immich.app/ | 【完整版本】高性能自托管照片和视频管理解决方案 | Immich |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich-Server | https://immich.app/ | 【主服务模块】高性能自托管照片和视频管理解决方案 | Immich |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich-Server | https://immich.app/ | 【主服务模块】高性能自托管照片和视频管理解决方案 | Immich |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich-Machine-Learning | https://immich.app/ | 【机器学习模块】高性能自托管照片和视频管理解决方案 | Immich |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/immich/logo.png" width="22"/> | Immich-Machine-Learning | https://immich.app/ | 【机器学习模块】高性能自托管照片和视频管理解决方案 | Immich |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/iyuu-plus/logo.png" width="22"/> | IYUU Plus | https://doc.iyuu.cn/ | 基于特征码的索引工具 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/iyuu-plus/logo.png" width="22"/> | IYUU Plus | https://doc.iyuu.cn/ | 基于特征码的索引工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/iycms/logo.png" width="22"/> | 爱影CMS | https://www.iycms.com/ | 高性能高并发永久免费影视CMS | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/jellyfin/logo.png" width="22"/> | Jellyfin | https://jellyfin.org/ | 自由软件媒体系统 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/jellyfin/logo.png" width="22"/> | Jellyfin | https://jellyfin.org/ | 自由软件媒体系统 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/linkding/logo.png" width="22"/> | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
|
| 🔴 | | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mailserver/logo.png" width="22"/> | Docker Mailserver | https://docker-mailserver.github.io/docker-mailserver/latest/ | 可用于生产的全栈但简单的邮件服务器 | |
|
| 🔴 | | MinIO | https://min.io/ | MinIO 是一种高性能、兼容 S3 的对象存储 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/minio/logo.png" width="22"/> | MinIO | https://min.io/ | MinIO 是一种高性能、兼容 S3 的对象存储 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/movie-pilot/logo.png" width="22"/> | MoviePilot | https://github.com/jxxghp/MoviePilot/ | NAS媒体库自动化管理工具 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/movie-pilot/logo.png" width="22"/> | MoviePilot | https://github.com/jxxghp/MoviePilot/ | NAS媒体库自动化管理工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mysql/logo.png" width="22"/> | MySQL | https://www.mysql.com/ | 关系数据库管理系统 | MySQL |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mysql/logo.png" width="22"/> | MySQL | https://www.mysql.com/ | 关系数据库管理系统 | MySQL |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mariadb/logo.png" width="22"/> | MariaDB | https://mariadb.org/ | 【MySQL分支】创新的开源数据库 | MySQL |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/mariadb/logo.png" width="22"/> | MariaDB | https://mariadb.org/ | 【MySQL分支】创新的开源数据库 | MySQL |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/percona/logo.png" width="22"/> | Percona | https://www.percona.com/ | 【MySQL分支】关系数据库管理系统 | MySQL |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/percona/logo.png" width="22"/> | Percona | https://www.percona.com/ | 【MySQL分支】关系数据库管理系统 | MySQL |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nacos/logo.png" width="22"/> | Nacos | https://nacos.io/ | 动态服务发现、配置管理和服务管理平台 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nacos/logo.png" width="22"/> | Nacos | https://nacos.io/ | 动态服务发现、配置管理和服务管理平台 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nezha/logo.png" width="22"/> | NeZha | https://nezha.wiki/ | 【哪吒监控】开源、轻量、易用的服务器监控、运维工具 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nezha/logo.png" width="22"/> | NeZha | https://nezha.wiki/ | 【哪吒监控】开源、轻量、易用的服务器监控、运维工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/nocodb/logo.png" width="22"/> | NocoDB | https://nocodb.com/ | 无代码数据库平台 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/onedev/logo.png" width="22"/> | OneDev | https://onedev.io/ | DevOps 平台、带有 CI/CD、看板和软件包的 Git 服务器 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/onedev/logo.png" width="22"/> | OneDev | https://onedev.io/ | DevOps 平台、带有 CI/CD、看板和软件包的 Git 服务器 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/outline/logo.png" width="22"/> | OutLine | https://www.getoutline.com/ | 快速、协作的团队知识库 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/outline/logo.png" width="22"/> | OutLine | https://www.getoutline.com/ | 快速、协作的团队知识库 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/photoprism/logo.png" width="22"/> | PhotoPrism | https://www.photoprism.app/ | 面向去中心化网络的人工智能照片应用程序 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/pixman/logo.png" width="22"/> | Pixman | https://pixman.io/ | IPTV、M3U8 流媒体代理方案 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/postgresql/logo.png" width="22"/> | PostgreSQL | https://www.postgresql.org/ | 世界上最先进的开源关系数据库 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/postgresql/logo.png" width="22"/> | PostgreSQL | https://www.postgresql.org/ | 世界上最先进的开源关系数据库 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/qbittorrent/logo.png" width="22"/> | qBittorrent | https://www.qbittorrent.org/ | qBittorrent 比特流客户端 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/qbittorrent/logo.png" width="22"/> | qBittorrent | https://www.qbittorrent.org/ | qBittorrent 比特流客户端 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/qinglong/logo.png" width="22"/> | 青龙 | https://github.com/whyour/qinglong/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/qinglong/logo.png" width="22"/> | QingLong | https://github.com/whyour/qinglong/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/reader3/logo.png" width="22"/> | 阅读3 | https://github.com/hectorqin/reader/ | 【阅读3】阅读3服务器版,不需要手机 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/redis/logo.png" width="22"/> | Redis | https://redis.io/ | 从世界上最快的内存数据库创建者那里获取该数据库 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/redis/logo.png" width="22"/> | Redis | https://redis.io/ | 从世界上最快的内存数据库创建者那里获取该数据库 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/rsshub/logo.png" width="22"/> | RssHub | https://rsshub.app/ | 从任何内容生成 RSS/Atom/JSON 订阅源 | |
|
| 🔴 | | Sentinel | https://sentinelguard.io/ | 面向分布式、多语言异构化服务架构的流量治理组件 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/sentinel/logo.png" width="22"/> | Sentinel | https://sentinelguard.io/ | 面向分布式、多语言异构化服务架构的流量治理组件 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/siyuan/logo.png" width="22"/> | SiYuan | https://b3log.org/siyuan/ | 【思源笔记】一款隐私优先、自托管、完全开源的个人知识管理软件 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/siyuan/logo.png" width="22"/> | 思源笔记 | https://b3log.org/siyuan/ | 【思源笔记】一款隐私优先、自托管、完全开源的个人知识管理软件 | |
|
| 🔴 | | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | SpeedTest |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/speedtest/logo.png" width="22"/> | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | |
|
|
||||||
| 🔴 | | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |
|
| 🔴 | | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/stream-rec/logo.png" width="22"/> | Stream-Rec | https://github.com/hua0512/stream-rec/ | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
|
| 🔴 | | Stream-Rec | https://github.com/hua0512/stream-rec | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/telegram-bot-api/logo.png" width="22"/> | Telegram Bot Api | https://telegram.org/ | 自建 Telegram Bot API 服务器 | |
|
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/transmission/logo.png" width="22"/> | Transmission | https://transmissionbt.com/ | 快速、简单、免费的 Bittorrent 客户端 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/transmission/logo.png" width="22"/> | Transmission | https://transmissionbt.com/ | 快速、简单、免费的 Bittorrent 客户端 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/uptime-kuma/logo.png" width="22"/> | Uptime Kuma | https://uptime.kuma.pet/ | 自托管监控工具 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/uptime-kuma/logo.png" width="22"/> | Uptime Kuma | https://uptime.kuma.pet/ | 自托管监控工具 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/umami/logo.png" width="22"/> | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | |
|
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/umami/logo.png" width="22"/> | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | |
|
||||||
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/wiseflow/logo.png" width="22"/> | WiseFlow | https://github.com/TeamWiseFlow/wiseflow/ | Wiseflow 首席情报官 | |
|
|
||||||
| 🔴 | | Yarr | https://github.com/nkanaev/yarr | Rss 阅读器 | |
|
| 🔴 | | Yarr | https://github.com/nkanaev/yarr | Rss 阅读器 | |
|
||||||
| 🔴 | | Ztncui | https://www.zerotier.com/ | 【自建服务端】ZeroTier 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | |
|
| 🔴 | | Ztncui | https://www.zerotier.com/ | 【自建服务端】ZeroTier 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | ZeroTier |
|
||||||
|
|
||||||
> 说明:
|
> 说明:
|
||||||
>
|
>
|
||||||
@ -127,32 +102,24 @@
|
|||||||
>
|
>
|
||||||
> 维护状态:🟢 维护中 🔴 未维护 🟡 表示不定期维护
|
> 维护状态:🟢 维护中 🔴 未维护 🟡 表示不定期维护
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 应用安装
|
## 应用安装
|
||||||
|
|
||||||
> 温馨提示:
|
> 温馨提示:
|
||||||
> 当您已安装其他第三方库时并且存在应用冲突,安装过程中会主动删除冲突的第三方库应用,如果您不同意,请不要执行脚本。
|
> 当您已安装其他第三方库时并且存在应用冲突,安装过程中会主动删除冲突的第三方库应用,如果您不同意,请不要执行脚本。
|
||||||
>
|
>
|
||||||
> 我们建议您在安装之前备份您的数据,或手动安装。
|
> 我们建议您在安装之前备份您的数据,或手动安装。
|
||||||
>
|
|
||||||
> 如果您不使用 `curl` 命令,可以使用 `wget` 命令代替。
|
|
||||||
>
|
|
||||||
> 将 `curl -sSL` 替换为 `wget -qO-` 即可。
|
|
||||||
|
|
||||||
### 自动化安装
|
### 方案一:自动化安装
|
||||||
|
|
||||||
一键式安装,无需手动操作,自动完成 1Panel应用 上架应用商店。
|
如果您不想每次都手动执行命令,可以使用一键式安装。我们优先推荐此方式。
|
||||||
|
|
||||||
每三小时自动更新一次应用列表。
|
```shell
|
||||||
|
|
||||||
```sh
|
|
||||||
curl -sSL https://install.lifebus.top/auto_install.sh | bash
|
curl -sSL https://install.lifebus.top/auto_install.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
> 卸载自动化脚本 (不会卸载应用)
|
> 卸载自动化脚本 (不会卸载应用)
|
||||||
|
|
||||||
```sh
|
```shell
|
||||||
curl -sSL https://install.lifebus.top/auto_uninstall.sh | bash
|
curl -sSL https://install.lifebus.top/auto_uninstall.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -164,38 +131,33 @@ curl -sSL https://install.lifebus.top/auto_uninstall.sh | bash
|
|||||||
|
|
||||||
+ 应用数据目录:`${应用持久化目录}`
|
+ 应用数据目录:`${应用持久化目录}`
|
||||||
|
|
||||||
### 手动安装模式
|
### 方案二:手动安装
|
||||||
|
|
||||||
更新时机由自己把握,手动执行命令。
|
应用的升级与更新均需要重新执行安装脚本。
|
||||||
|
|
||||||
```sh
|
#### 手动执行模式
|
||||||
|
|
||||||
|
```shell
|
||||||
curl -sSL https://install.lifebus.top/app_install.sh | bash
|
curl -sSL https://install.lifebus.top/app_install.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
### 计划任务模式
|
### 方案三:计划任务模式
|
||||||
|
|
||||||
将内容写入Shell计划任务中,设定定期执行。
|
将内容写入Shell计划任务中,设定定期执行。
|
||||||
|
|
||||||
```sh
|
```shell
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# 此处可以定义代理方案
|
|
||||||
|
|
||||||
script_url="https://install.lifebus.top/app_install.sh"
|
script_url="https://install.lifebus.top/app_install.sh"
|
||||||
|
|
||||||
echo "Downloading and executing script from $script_url..."
|
echo "Downloading and executing script from $script_url..."
|
||||||
bash <(curl -sL "$script_url")
|
bash <(curl -sL "$script_url")
|
||||||
|
|
||||||
echo "Script execution completed."
|
echo "Script execution completed."
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 配置脚本网络代理
|
#### 配置脚本网络代理
|
||||||
|
|
||||||
如果您的网络环境需要代理,请在脚本执行前配置代理。
|
|
||||||
|
|
||||||
可将以下脚本插入到 `计划任务模式` 的脚本中。
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
proxy_protocols="http"
|
proxy_protocols="http"
|
||||||
proxy_server="server address"
|
proxy_server="server address"
|
||||||
@ -204,8 +166,6 @@ export http_proxy="$proxy_protocols://$proxy_server:$proxy_port"
|
|||||||
export https_proxy="$proxy_protocols://$proxy_server:$proxy_port"
|
export https_proxy="$proxy_protocols://$proxy_server:$proxy_port"
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 安装 `Pre 尝鲜版` 应用
|
## 安装 `Pre 尝鲜版` 应用
|
||||||
|
|
||||||
> 说明:
|
> 说明:
|
||||||
@ -224,35 +184,8 @@ curl -sSL https://install.lifebus.top/pre_app_install.sh | bash
|
|||||||
curl -sSL https://install.lifebus.top/pre_app_uninstall.sh | bash
|
curl -sSL https://install.lifebus.top/pre_app_uninstall.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 卸载所有本地应用
|
|
||||||
|
|
||||||
通过此脚本,您可以卸载所有本地应用,但是不会删除数据。
|
|
||||||
|
|
||||||
可能您的库中遗留了一些无用的应用,您可以通过此脚本进行清理。该脚本不影响 `自动化脚本` 的应用更新。
|
|
||||||
|
|
||||||
**此脚本必须`root`用户执行**
|
|
||||||
|
|
||||||
```sh
|
|
||||||
curl -sSL https://install.lifebus.top/local_app_uninstall.sh | bash
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 常见问题
|
## 常见问题
|
||||||
|
|
||||||
+ 安装脚本提示
|
|
||||||
+ 没有权限
|
|
||||||
+ 请使用 `root` 用户执行脚本
|
|
||||||
+ `curl: command not found`
|
|
||||||
+ 请安装 `curl` 命令
|
|
||||||
+ `apt install curl -y`
|
|
||||||
+ `yum install curl -y`
|
|
||||||
+ 由于安装脚本的网络问题导致安装失败
|
|
||||||
+ 请检查网络状况
|
|
||||||
+ 请尝试重新执行安装脚本
|
|
||||||
+ 请尝试使用 `wget` 命令代替 `curl` 命令
|
|
||||||
+ 升级失败
|
+ 升级失败
|
||||||
+ 检查网络状况与磁盘空间
|
+ 检查网络状况与磁盘空间
|
||||||
+ 配置镜像地址
|
+ 配置镜像地址
|
||||||
@ -268,16 +201,12 @@ curl -sSL https://install.lifebus.top/local_app_uninstall.sh | bash
|
|||||||
+ 关于 `前置检查` 依旧需要填写 `数据库` 相关连接信息,是因为其提供的能力并不是完全可靠,避免后期出现问题,我们采用持久化的方式存储。
|
+ 关于 `前置检查` 依旧需要填写 `数据库` 相关连接信息,是因为其提供的能力并不是完全可靠,避免后期出现问题,我们采用持久化的方式存储。
|
||||||
+ 如果您的环境符合要求,但是依旧无法安装,请联系我们。
|
+ 如果您的环境符合要求,但是依旧无法安装,请联系我们。
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 温馨提示
|
## 温馨提示
|
||||||
|
|
||||||
安装应用前请查看应用说明,了解应用的使用方法和注意事项。
|
安装应用前请查看应用说明,了解应用的使用方法和注意事项。
|
||||||
当前第三方库应用均为开源应用,我们不对应用的安全性和稳定性负责。
|
当前第三方库应用均为开源应用,我们不对应用的安全性和稳定性负责。
|
||||||
如果您在使用过程中遇到问题,请查看应用的官方文档或社区,或者联系我们。
|
如果您在使用过程中遇到问题,请查看应用的官方文档或社区,或者联系我们。
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 联系我们
|
## 联系我们
|
||||||
|
|
||||||
<a href="mailto:qyg2297248353@gmail.com" target="_blank" style="display: block; width: 300px; margin: 16px auto; padding: 16px; border: 1px solid #e1e1e1; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); background-color: #fff; text-decoration: none; color: #333;">
|
<a href="mailto:qyg2297248353@gmail.com" target="_blank" style="display: block; width: 300px; margin: 16px auto; padding: 16px; border: 1px solid #e1e1e1; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); background-color: #fff; text-decoration: none; color: #333;">
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
additionalProperties:
|
|
||||||
formFields:
|
|
||||||
- default: "/home/acg-faka"
|
|
||||||
edit: true
|
|
||||||
envKey: ACG_FAKA_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
|
|
@ -1,20 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
|
||||||
acg-faka:
|
|
||||||
image: qyg2297248353/acg-faka:v1.3.1
|
|
||||||
container_name: ${CONTAINER_NAME}
|
|
||||||
labels:
|
|
||||||
createdBy: "Apps"
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- 1panel-network
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
|
||||||
env_file:
|
|
||||||
- /etc/1panel/envs/global.env
|
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
|
||||||
volumes:
|
|
||||||
- ${ACG_FAKA_ROOT_PATH}/data:/var/www/html
|
|
@ -1,77 +0,0 @@
|
|||||||
# 异次元店铺系统
|
|
||||||
|
|
||||||
二次元发卡系统
|
|
||||||
|
|
||||||
![异次元店铺系统](https://file.lifebus.top/imgs/acg_faka_cover.png)
|
|
||||||
|
|
||||||
异次元店铺系统乃荔枝店铺系统3.0完全从0代码的重构版本,原生php开发,数据库底层使用Eloquent
|
|
||||||
ORM,模板渲染使用Smarty3.1以及PHP原生渲染,会话保持全程使用session。
|
|
||||||
|
|
||||||
![](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)
|
|
||||||
|
|
||||||
## 特性
|
|
||||||
|
|
||||||
+ 支付系统,拥有强悍的插件扩展能力,现目今已经支持全网任意平台,任意支付渠道。
|
|
||||||
+ 云更新,如果系统升级新版本,你无需进行繁琐操作,只需要在你的店铺后台就可以无缝完成升级。
|
|
||||||
+ 商品销售,支持商品配图、会员价、游客价、邮件通知、卡密预选(用户可以预选自己想购买的那个账号或者卡号)、API对接、强制登录购买、强悍的自定义控件功能、限时秒杀、批发优惠、优惠卷、等众多功能。
|
|
||||||
+ 分站系统,前台用户可以开通分站,分站可以独立运行,也可以卖主站商品,有点类似商业店铺了。
|
|
||||||
+ 会员系统,会员/商户融为一体,支持会员等级,以及商户等级完全自定义,以及商品可自定义会员等级对应价格。
|
|
||||||
+ 推广/代理系统,拥有三级分销返佣功能,注册账号即实现自动发展下级。
|
|
||||||
+ 共享店铺系统,可以在后台直接对接别人的店铺,通过扣除余额来进行无感知进货。
|
|
||||||
+ 应用商店,拥有众多插件以及模板,让你的店铺变得格外强大。
|
|
||||||
+ 界面美观,完美支持PC和手机,真正的内外二次元文化。
|
|
||||||
+ 强悍的扩展能力,你可以通过本程序在几分钟之内快速的实现你任意想实现的在线购物功能,例子如下:
|
|
||||||
+ 游戏方面,物品购买即时到玩家背包
|
|
||||||
+ 商业软件余额充值
|
|
||||||
+ 商业软件自动授权
|
|
||||||
+ 论坛/社区VIP自动开通
|
|
||||||
+ 只要你想得到,没有做不到。
|
|
||||||
|
|
||||||
## 环境说明
|
|
||||||
|
|
||||||
+ PHP 8.0+ (推荐使用PHP8.0)
|
|
||||||
+ MySQL 5.7+ (推荐使用MySQL8.0)
|
|
||||||
|
|
||||||
请自行安装 MySQL 并创建数据库,配置用户名和密码。
|
|
||||||
|
|
||||||
## 安装说明
|
|
||||||
|
|
||||||
> 首次启动将会检查环境,如果环境不满足要求将会提示错误信息。
|
|
||||||
>
|
|
||||||
> 第二步将会检查数据库连接,如果数据库连接失败将会提示错误信息。
|
|
||||||
>
|
|
||||||
> 第三步将会进行程序安装。
|
|
||||||
|
|
||||||
### 数据库填写
|
|
||||||
|
|
||||||
数据库主机端口非 3306 时,请按照以下格式填写:
|
|
||||||
`127.0.0.1:3306`
|
|
||||||
|
|
||||||
## 使用说明
|
|
||||||
|
|
||||||
> 管理员后台地址:`/admin.php`
|
|
||||||
|
|
||||||
### 支付配置
|
|
||||||
|
|
||||||
进入`支付管理`,在`支付插件`中点击`获取更多插件`,搜索 `支付宝` 等关键词,进行安装,然后进入支付配置,填写支付宝的相关配置,保存即可。
|
|
||||||
|
|
||||||
进入`支付管理`,在`支付接口` 中点击`添加支付接口`,选择支付插件,填写相关配置,保存即可。默认安装会存在一些不可用支付接口配置,删除即可,不影响使用。
|
|
||||||
|
|
||||||
余额支付接口是系统默认的支付接口,不可删除,如果你的店铺需要余额支付,请确保余额支付接口是启用状态。
|
|
||||||
|
|
||||||
## 版本计划
|
|
||||||
|
|
||||||
| 版本 | 状态 | 积极支持截止时间 | 安全维护截止时间 | 发布或预计发布时间 |
|
|
||||||
|-----|-------|------------|------------|------------|
|
|
||||||
| 4.0 | 积极内测中 | - | - | 2024-08-20 |
|
|
||||||
| 3.0 | 安全支持 | 2024-08-20 | 长期 | 2022-06-20 |
|
|
||||||
| 2.0 | 停止维护 | 2020-07-21 | 2020-12-31 | 2020-07-21 |
|
|
||||||
| 1.0 | 停止维护 | 2020-07-17 | 2020-12-31 | 2020-07-17 |
|
|
||||||
|
|
||||||
- 积极支持将包含常规迭代周期的 BUG 修复、安全问题修复、功能迭代和功能新增;
|
|
||||||
- 安全维护仅包含安全问题的修复;
|
|
||||||
- 停止维护状态的版本将不会再进行任何的代码变更,请尽快根据升级指南升级到最新的版本以便得到更好的支持;
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
|
@ -1,18 +0,0 @@
|
|||||||
name: 异次元店铺系统
|
|
||||||
title: 异次元店铺系统
|
|
||||||
description: 二次元发卡系统
|
|
||||||
additionalProperties:
|
|
||||||
key: acg-faka
|
|
||||||
name: 异次元店铺系统
|
|
||||||
tags:
|
|
||||||
- WebSite
|
|
||||||
- Tool
|
|
||||||
- Local
|
|
||||||
shortDescZh: 二次元发卡系统
|
|
||||||
shortDescEn: Secondary Card Issuing System
|
|
||||||
type: website
|
|
||||||
crossVersionUpdate: true
|
|
||||||
limit: 0
|
|
||||||
website: https://faka.wiki/
|
|
||||||
github: https://github.com/lizhipay/acg-faka/
|
|
||||||
document: https://faka.wiki/
|
|
Binary file not shown.
Before Width: | Height: | Size: 7.8 KiB |
@ -1,9 +1,10 @@
|
|||||||
|
version: "3.8"
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
services:
|
services:
|
||||||
alist-aria2:
|
alist-aria2:
|
||||||
image: xhofe/alist-aria2:v3.36.0
|
image: xhofe/alist-aria2:v3.35.0
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
@ -5,7 +5,6 @@ if [ -f .env ]; then
|
|||||||
|
|
||||||
# setup-1 add default values
|
# setup-1 add default values
|
||||||
CURRENT_DIR=$(pwd)
|
CURRENT_DIR=$(pwd)
|
||||||
sed -i '/^ENV_FILE=/d' .env
|
|
||||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||||
|
|
||||||
echo "Check Finish."
|
echo "Check Finish."
|
@ -5,7 +5,6 @@ if [ -f .env ]; then
|
|||||||
|
|
||||||
# setup-1 add default values
|
# setup-1 add default values
|
||||||
CURRENT_DIR=$(pwd)
|
CURRENT_DIR=$(pwd)
|
||||||
sed -i '/^ENV_FILE=/d' .env
|
|
||||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||||
|
|
||||||
echo "Check Finish."
|
echo "Check Finish."
|
@ -4,8 +4,6 @@
|
|||||||
|
|
||||||
![AList](https://file.lifebus.top/imgs/alist_cover.png)
|
![AList](https://file.lifebus.top/imgs/alist_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)
|
|
||||||
|
|
||||||
## 特性
|
## 特性
|
||||||
|
|
||||||
+ 使用简单
|
+ 使用简单
|
||||||
@ -84,7 +82,3 @@ location / {
|
|||||||
client_max_body_size 20000m;
|
client_max_body_size 20000m;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
name: Alist Aira2插件版
|
name: Alist
|
||||||
title: 文件列表程序
|
title: 文件列表程序
|
||||||
description: 一个支持多种存储的文件列表程序
|
description: 一个支持多种存储的文件列表程序
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
key: alist-aria2
|
key: alist
|
||||||
name: Alist Aira2插件版
|
name: Alist
|
||||||
tags:
|
tags:
|
||||||
- WebSite
|
- WebSite
|
||||||
- Storage
|
- Storage
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
|
version: "3.8"
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
services:
|
services:
|
||||||
alist:
|
alist:
|
||||||
image: xhofe/alist:v3.36.0
|
image: xhofe/alist:v3.35.0-ffmpeg
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
@ -5,7 +5,6 @@ if [ -f .env ]; then
|
|||||||
|
|
||||||
# setup-1 add default values
|
# setup-1 add default values
|
||||||
CURRENT_DIR=$(pwd)
|
CURRENT_DIR=$(pwd)
|
||||||
sed -i '/^ENV_FILE=/d' .env
|
|
||||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||||
|
|
||||||
echo "Check Finish."
|
echo "Check Finish."
|
@ -5,7 +5,6 @@ if [ -f .env ]; then
|
|||||||
|
|
||||||
# setup-1 add default values
|
# setup-1 add default values
|
||||||
CURRENT_DIR=$(pwd)
|
CURRENT_DIR=$(pwd)
|
||||||
sed -i '/^ENV_FILE=/d' .env
|
|
||||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||||
|
|
||||||
echo "Check Finish."
|
echo "Check Finish."
|
@ -4,8 +4,6 @@
|
|||||||
|
|
||||||
![AList](https://file.lifebus.top/imgs/alist_cover.png)
|
![AList](https://file.lifebus.top/imgs/alist_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)
|
|
||||||
|
|
||||||
## 特性
|
## 特性
|
||||||
|
|
||||||
+ 使用简单
|
+ 使用简单
|
||||||
@ -84,7 +82,3 @@ location / {
|
|||||||
client_max_body_size 20000m;
|
client_max_body_size 20000m;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
name: Alist FFMpeg插件版
|
name: Alist
|
||||||
title: 文件列表程序
|
title: 文件列表程序
|
||||||
description: 一个支持多种存储的文件列表程序
|
description: 一个支持多种存储的文件列表程序
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
key: alist-ffmpeg
|
key: alist
|
||||||
name: Alist FFMpeg插件版
|
name: Alist
|
||||||
tags:
|
tags:
|
||||||
- WebSite
|
- WebSite
|
||||||
- Storage
|
- Storage
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
|
version: "3.8"
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
services:
|
services:
|
||||||
alist:
|
alist:
|
||||||
image: xhofe/alist:v3.36.0-ffmpeg
|
image: xhofe/alist:v3.35.0
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
@ -5,7 +5,6 @@ if [ -f .env ]; then
|
|||||||
|
|
||||||
# setup-1 add default values
|
# setup-1 add default values
|
||||||
CURRENT_DIR=$(pwd)
|
CURRENT_DIR=$(pwd)
|
||||||
sed -i '/^ENV_FILE=/d' .env
|
|
||||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||||
|
|
||||||
echo "Check Finish."
|
echo "Check Finish."
|
@ -5,7 +5,6 @@ if [ -f .env ]; then
|
|||||||
|
|
||||||
# setup-1 add default values
|
# setup-1 add default values
|
||||||
CURRENT_DIR=$(pwd)
|
CURRENT_DIR=$(pwd)
|
||||||
sed -i '/^ENV_FILE=/d' .env
|
|
||||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||||
|
|
||||||
echo "Check Finish."
|
echo "Check Finish."
|
@ -4,8 +4,6 @@
|
|||||||
|
|
||||||
![AList](https://file.lifebus.top/imgs/alist_cover.png)
|
![AList](https://file.lifebus.top/imgs/alist_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)
|
|
||||||
|
|
||||||
## 特性
|
## 特性
|
||||||
|
|
||||||
+ 使用简单
|
+ 使用简单
|
||||||
@ -82,7 +80,3 @@ location / {
|
|||||||
client_max_body_size 20000m;
|
client_max_body_size 20000m;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
|
||||||
|
@ -18,21 +18,21 @@ additionalProperties:
|
|||||||
- default: ""
|
- default: ""
|
||||||
edit: true
|
edit: true
|
||||||
envKey: BARK_SERVER_DSN
|
envKey: BARK_SERVER_DSN
|
||||||
labelZh: 数据库链接
|
|
||||||
labelEn: Database URL
|
labelEn: Database URL
|
||||||
|
labelZh: 数据库链接
|
||||||
required: false
|
required: false
|
||||||
type: text
|
type: text
|
||||||
- default: ""
|
- default: ""
|
||||||
edit: true
|
edit: true
|
||||||
envKey: BARK_SERVER_BASIC_AUTH_USER
|
envKey: BARK_SERVER_BASIC_AUTH_USER
|
||||||
labelZh: 用户名 (服务基础验证)
|
|
||||||
labelEn: Basic Auth User
|
labelEn: Basic Auth User
|
||||||
|
labelZh: 用户名 (服务基础验证)
|
||||||
required: false
|
required: false
|
||||||
type: text
|
type: text
|
||||||
- default: ""
|
- default: ""
|
||||||
edit: true
|
edit: true
|
||||||
envKey: BARK_SERVER_BASIC_AUTH_PASSWORD
|
envKey: BARK_SERVER_BASIC_AUTH_PASSWORD
|
||||||
labelZh: 密码 (服务基础验证)
|
|
||||||
labelEn: Basic Auth Password
|
labelEn: Basic Auth Password
|
||||||
|
labelZh: 密码 (服务基础验证)
|
||||||
required: false
|
required: false
|
||||||
type: text
|
type: text
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
@ -5,7 +5,6 @@ if [ -f .env ]; then
|
|||||||
|
|
||||||
# setup-1 add default values
|
# setup-1 add default values
|
||||||
CURRENT_DIR=$(pwd)
|
CURRENT_DIR=$(pwd)
|
||||||
sed -i '/^ENV_FILE=/d' .env
|
|
||||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||||
|
|
||||||
echo "Check Finish."
|
echo "Check Finish."
|
||||||
|
@ -5,7 +5,6 @@ if [ -f .env ]; then
|
|||||||
|
|
||||||
# setup-1 add default values
|
# setup-1 add default values
|
||||||
CURRENT_DIR=$(pwd)
|
CURRENT_DIR=$(pwd)
|
||||||
sed -i '/^ENV_FILE=/d' .env
|
|
||||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||||
|
|
||||||
echo "Check Finish."
|
echo "Check Finish."
|
||||||
|
@ -4,8 +4,6 @@
|
|||||||
|
|
||||||
![Bark](https://file.lifebus.top/imgs/bark_logo.png)
|
![Bark](https://file.lifebus.top/imgs/bark_logo.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)
|
|
||||||
|
|
||||||
## 特性
|
## 特性
|
||||||
|
|
||||||
+ 免费、轻量!简单调用接口即可给自己的iPhone发送推送。
|
+ 免费、轻量!简单调用接口即可给自己的iPhone发送推送。
|
||||||
@ -119,7 +117,3 @@ curl -X "POST" "https://api.day.app/push" \
|
|||||||
| group | 对消息进行分组,推送将按group分组显示在通知中心中。 也可在历史消息列表中选择查看不同的群组。 |
|
| group | 对消息进行分组,推送将按group分组显示在通知中心中。 也可在历史消息列表中选择查看不同的群组。 |
|
||||||
| isArchive | 传 1 保存推送,传其他的不保存推送,不传按APP内设置来决定是否保存。 |
|
| isArchive | 传 1 保存推送,传其他的不保存推送,不传按APP内设置来决定是否保存。 |
|
||||||
| url | 点击推送时,跳转的URL ,支持URL Scheme 和 Universal Link |
|
| url | 点击推送时,跳转的URL ,支持URL Scheme 和 Universal Link |
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
services:
|
services:
|
||||||
casdoor:
|
casdoor:
|
||||||
image: casbin/casdoor:v1.675.0
|
image: casbin/casdoor:v1.648.0
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
labels:
|
labels:
|
||||||
createdBy: "Apps"
|
createdBy: "Apps"
|
@ -5,7 +5,6 @@ if [ -f .env ]; then
|
|||||||
|
|
||||||
# setup-1 add default values
|
# setup-1 add default values
|
||||||
CURRENT_DIR=$(pwd)
|
CURRENT_DIR=$(pwd)
|
||||||
sed -i '/^ENV_FILE=/d' .env
|
|
||||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||||
|
|
||||||
if [ "$DB_TYPE" == "mysql" ]; then
|
if [ "$DB_TYPE" == "mysql" ]; then
|
@ -5,7 +5,6 @@ if [ -f .env ]; then
|
|||||||
|
|
||||||
# setup-1 add default values
|
# setup-1 add default values
|
||||||
CURRENT_DIR=$(pwd)
|
CURRENT_DIR=$(pwd)
|
||||||
sed -i '/^ENV_FILE=/d' .env
|
|
||||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||||
|
|
||||||
echo "Check Finish."
|
echo "Check Finish."
|
@ -1,15 +0,0 @@
|
|||||||
#!/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
|
|
@ -5,8 +5,6 @@ Casdoor 是一个 UI 优先的身份访问管理 (IAM)/单点登录 (SSO) 平台
|
|||||||
|
|
||||||
![Casdoor](https://file.lifebus.top/imgs/casdoor_cover.png)
|
![Casdoor](https://file.lifebus.top/imgs/casdoor_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)
|
|
||||||
|
|
||||||
## 简介
|
## 简介
|
||||||
|
|
||||||
Casdoor是一个基于OAuth 2.0、OIDC、SAML 和 CAS 的,UI-first的身份和访问管理(IAM)/单点登录(SSO)平台。
|
Casdoor是一个基于OAuth 2.0、OIDC、SAML 和 CAS 的,UI-first的身份和访问管理(IAM)/单点登录(SSO)平台。
|
||||||
@ -89,7 +87,3 @@ volumes:
|
|||||||
```
|
```
|
||||||
|
|
||||||
其中 `./config/init_data.json` 为默认配置文件所在路径,您可以根据实际情况进行修改为自定义绝对文件路径即可。
|
其中 `./config/init_data.json` 为默认配置文件所在路径,您可以根据实际情况进行修改为自定义绝对文件路径即可。
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
|
||||||
|
@ -3,9 +3,7 @@
|
|||||||
CookieCloud 是一个用于将 cookie 与您的自托管服务器同步的小工具,允许您将浏览器 cookie
|
CookieCloud 是一个用于将 cookie 与您的自托管服务器同步的小工具,允许您将浏览器 cookie
|
||||||
和本地存储同步到您的手机和云端。它具有内置的端到端加密功能,并允许您设置同步间隔。
|
和本地存储同步到您的手机和云端。它具有内置的端到端加密功能,并允许您设置同步间隔。
|
||||||
|
|
||||||
![CookieCloud](https://file.lifebus.top/imgs/cookie_cloud_cover.png)
|
![CookieCloud](https://github.com/easychen/CookieCloud/blob/master/images/20230121092535.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)
|
|
||||||
|
|
||||||
## 浏览器插件
|
## 浏览器插件
|
||||||
|
|
||||||
@ -19,7 +17,3 @@ CookieCloud 是一个用于将 cookie 与您的自托管服务器同步的小工
|
|||||||
+ 该浏览器扩展正式支持 Chrome 和 Edge。其他基于 Chromium 的浏览器可能可以工作,但尚未经过测试。使用源代码 cd extension &&
|
+ 该浏览器扩展正式支持 Chrome 和 Edge。其他基于 Chromium 的浏览器可能可以工作,但尚未经过测试。使用源代码 cd extension &&
|
||||||
pnpm build --target=firefox-mv2 自行编译Firefox版本。
|
pnpm build --target=firefox-mv2 自行编译Firefox版本。
|
||||||
+ 请注意,Firefox 的 cookie 格式与 Chrome 的不同,并且它们不能混合。
|
+ 请注意,Firefox 的 cookie 格式与 Chrome 的不同,并且它们不能混合。
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
@ -13,8 +15,7 @@ services:
|
|||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:8088
|
- ${PANEL_APP_PORT_HTTP}:8088
|
||||||
env_file:
|
|
||||||
- /etc/1panel/envs/global.env
|
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
|
||||||
volumes:
|
volumes:
|
||||||
- ${COOKIECLOUD_ROOT_PATH}/data:/data/api/data
|
- ${COOKIECLOUD_ROOT_PATH}/data:/data/api/data
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
@ -3,11 +3,6 @@
|
|||||||
if [ -f .env ]; then
|
if [ -f .env ]; then
|
||||||
source .env
|
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."
|
echo "Check Finish."
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -3,11 +3,6 @@
|
|||||||
if [ -f .env ]; then
|
if [ -f .env ]; then
|
||||||
source .env
|
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."
|
echo "Check Finish."
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
@ -12,9 +14,8 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- 1panel-network
|
- 1panel-network
|
||||||
ports:
|
ports:
|
||||||
- ${PANEL_APP_PORT_HTTP}:1188
|
- ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP:-1188}
|
||||||
env_file:
|
|
||||||
- /etc/1panel/envs/global.env
|
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
|
||||||
environment:
|
environment:
|
||||||
- PORT=1188
|
- PORT=${PANEL_APP_PORT_HTTP:-1188}
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
@ -3,11 +3,6 @@
|
|||||||
if [ -f .env ]; then
|
if [ -f .env ]; then
|
||||||
source .env
|
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."
|
echo "Check Finish."
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -3,11 +3,6 @@
|
|||||||
if [ -f .env ]; then
|
if [ -f .env ]; then
|
||||||
source .env
|
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."
|
echo "Check Finish."
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -2,9 +2,7 @@
|
|||||||
|
|
||||||
强大的 DeepL 翻译 API
|
强大的 DeepL 翻译 API
|
||||||
|
|
||||||
![DeepLX](https://file.lifebus.top/imgs/deeplx_cover.png)
|
![DeepLX](https://static.deepl.com/img/appDownload/macos_app_download.svg)
|
||||||
|
|
||||||
![](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)
|
|
||||||
|
|
||||||
## 简介
|
## 简介
|
||||||
|
|
||||||
@ -115,7 +113,3 @@ http://<username>:<password>@127.0.0.1:7890
|
|||||||
> 其他参数与免费端点相同。
|
> 其他参数与免费端点相同。
|
||||||
>
|
>
|
||||||
> 更多官方API配置请参考 [DeepL 官方文档](https://developers.deepl.com/docs/api-reference/translate)
|
> 更多官方API配置请参考 [DeepL 官方文档](https://developers.deepl.com/docs/api-reference/translate)
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
|
||||||
|
@ -6,7 +6,7 @@ additionalProperties:
|
|||||||
key: deeplx
|
key: deeplx
|
||||||
name: DeepLX
|
name: DeepLX
|
||||||
tags:
|
tags:
|
||||||
- Tool
|
- WebSite
|
||||||
- Middleware
|
- Middleware
|
||||||
- Local
|
- Local
|
||||||
shortDescZh: DeepL 免费API
|
shortDescZh: DeepL 免费API
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
@ -4,8 +4,6 @@
|
|||||||
|
|
||||||
![Dockge](https://file.lifebus.top/imgs/dockge_cover.png)
|
![Dockge](https://file.lifebus.top/imgs/dockge_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)
|
|
||||||
|
|
||||||
## 特性
|
## 特性
|
||||||
|
|
||||||
+ 🧑💼 管理您的 compose.yaml 文件
|
+ 🧑💼 管理您的 compose.yaml 文件
|
||||||
@ -19,7 +17,3 @@
|
|||||||
命令与它们交互
|
命令与它们交互
|
||||||
+ 🚄 反应式 - 一切都是响应式的。进度(Pull/Up/Down)和终端输出是实时的
|
+ 🚄 反应式 - 一切都是响应式的。进度(Pull/Up/Down)和终端输出是实时的
|
||||||
+ 🐣 易于使用且精美的 UI - 如果您喜欢 Uptime Kuma 的 UI/UX,您也会喜欢这个
|
+ 🐣 易于使用且精美的 UI - 如果您喜欢 Uptime Kuma 的 UI/UX,您也会喜欢这个
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
|
||||||
|
@ -1,101 +0,0 @@
|
|||||||
additionalProperties:
|
|
||||||
formFields:
|
|
||||||
- default: "/home/dujiaoka"
|
|
||||||
edit: true
|
|
||||||
envKey: DUJIAOKA_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
|
|
||||||
- default: 9000
|
|
||||||
edit: true
|
|
||||||
envKey: PANEL_APP_PORT_API
|
|
||||||
labelZh: API 端口
|
|
||||||
labelEn: API port
|
|
||||||
required: true
|
|
||||||
rule: paramPort
|
|
||||||
type: number
|
|
||||||
- default: "独角数卡"
|
|
||||||
edit: true
|
|
||||||
envKey: APP_NAME
|
|
||||||
labelZh: 网站名称
|
|
||||||
labelEn: Website name
|
|
||||||
required: true
|
|
||||||
type: text
|
|
||||||
- default: "base64:sKDhhXG+bHhlnH8hAVX2MbETkYABNhWNXALo0FU8WH0="
|
|
||||||
edit: true
|
|
||||||
envKey: APP_KEY
|
|
||||||
labelZh: 应用密钥
|
|
||||||
labelEn: Application key
|
|
||||||
required: true
|
|
||||||
type: text
|
|
||||||
- default: "http://127.0.0.1:8080"
|
|
||||||
edit: true
|
|
||||||
envKey: APP_URL
|
|
||||||
labelZh: 网站域名
|
|
||||||
labelEn: Website domain
|
|
||||||
required: true
|
|
||||||
type: text
|
|
||||||
- default: "/admin"
|
|
||||||
edit: true
|
|
||||||
envKey: ADMIN_ROUTE_PREFIX
|
|
||||||
labelZh: 后台路径
|
|
||||||
labelEn: Admin path
|
|
||||||
required: true
|
|
||||||
type: text
|
|
||||||
- default: "redis"
|
|
||||||
edit: true
|
|
||||||
envKey: QUEUE_CONNECTION
|
|
||||||
labelZh: 异步消息队列模式
|
|
||||||
labelEn: Asynchronous message queue mode
|
|
||||||
required: true
|
|
||||||
type: select
|
|
||||||
values:
|
|
||||||
- label: 异步模式 (Redis)
|
|
||||||
value: "redis"
|
|
||||||
- label: 同步模式
|
|
||||||
value: "sync"
|
|
||||||
- default: "redis"
|
|
||||||
edit: true
|
|
||||||
envKey: CACHE_DRIVER
|
|
||||||
labelZh: 缓存驱动
|
|
||||||
labelEn: Cache driver
|
|
||||||
required: true
|
|
||||||
type: select
|
|
||||||
values:
|
|
||||||
- label: Redis 缓存
|
|
||||||
value: "redis"
|
|
||||||
- label: 文件缓存
|
|
||||||
value: "file"
|
|
||||||
- default: "redis"
|
|
||||||
edit: true
|
|
||||||
envKey: CACHE_DRIVER
|
|
||||||
labelZh: 缓存驱动
|
|
||||||
labelEn: Cache driver
|
|
||||||
required: true
|
|
||||||
type: select
|
|
||||||
values:
|
|
||||||
- label: Redis 缓存
|
|
||||||
value: "redis"
|
|
||||||
- label: 文件缓存
|
|
||||||
value: "file"
|
|
||||||
- default: "false"
|
|
||||||
edit: true
|
|
||||||
envKey: ADMIN_HTTPS
|
|
||||||
labelZh: 启用后台 HTTPS
|
|
||||||
labelEn: Enable admin HTTPS
|
|
||||||
required: true
|
|
||||||
type: select
|
|
||||||
values:
|
|
||||||
- label: 启用
|
|
||||||
value: "true"
|
|
||||||
- label: 禁用
|
|
||||||
value: "false"
|
|
@ -1,32 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
|
||||||
dujiaoka:
|
|
||||||
image: qyg2297248353/dujiaoka:v2.0.7
|
|
||||||
container_name: ${CONTAINER_NAME}
|
|
||||||
labels:
|
|
||||||
createdBy: "Apps"
|
|
||||||
restart: always
|
|
||||||
tty: true
|
|
||||||
networks:
|
|
||||||
- 1panel-network
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTP}:80
|
|
||||||
- ${PANEL_APP_PORT_API}:9000
|
|
||||||
env_file:
|
|
||||||
- /etc/1panel/envs/global.env
|
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
|
||||||
volumes:
|
|
||||||
- ${DUJIAOKA_ROOT_PATH}/app:/app
|
|
||||||
environment:
|
|
||||||
- WEB_DOCUMENT_ROOT=/app/public
|
|
||||||
- DUJIAO_ADMIN_LANGUAGE=zh_CN
|
|
||||||
- BROADCAST_DRIVER=log
|
|
||||||
- SESSION_DRIVER=file
|
|
||||||
- SESSION_LIFETIME=120
|
|
||||||
- LOG_CHANNEL=stack
|
|
||||||
- APP_DEBUG=false
|
|
||||||
- APP_ENV=local
|
|
||||||
- DB_CONNECTION=mysql
|
|
@ -1,15 +0,0 @@
|
|||||||
#!/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
|
|
@ -1,15 +0,0 @@
|
|||||||
#!/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
|
|
@ -1,48 +0,0 @@
|
|||||||
# 独角数卡
|
|
||||||
|
|
||||||
🦄独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速!🚀🚀🎉🎉
|
|
||||||
|
|
||||||
![异次元店铺系统](https://file.lifebus.top/imgs/dujiaoka_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)
|
|
||||||
|
|
||||||
## 接口集成
|
|
||||||
|
|
||||||
+ 支付宝当面付
|
|
||||||
+ 支付宝PC支付
|
|
||||||
+ 支付宝手机支付
|
|
||||||
+ payjs微信扫码.
|
|
||||||
+ Paysapi(支付宝/微信).
|
|
||||||
+ 码支付(QQ/支付宝/微信)
|
|
||||||
+ 微信企业扫码支付
|
|
||||||
+ Paypal支付(默认美元)
|
|
||||||
+ V免签支付
|
|
||||||
+ 全网易支付支持(通用彩虹版)
|
|
||||||
+ stripe
|
|
||||||
|
|
||||||
## 环境说明
|
|
||||||
|
|
||||||
+ MySQL 5.7+
|
|
||||||
+ Redis 支持(可选)
|
|
||||||
|
|
||||||
## 安装说明
|
|
||||||
|
|
||||||
> 后台默认路径 `/admin`
|
|
||||||
>
|
|
||||||
> 默认管理员账号 admin
|
|
||||||
>
|
|
||||||
> 默认管理员密码 admin
|
|
||||||
|
|
||||||
### `应用密钥` 配置
|
|
||||||
|
|
||||||
该密钥由固定头部`base64:`加上`32位字符串的Base64编码`组成,例如:`base64:xxxxx`。
|
|
||||||
|
|
||||||
使用 `openssl` 生成密钥:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
openssl rand -base64 32
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
|
@ -1,18 +0,0 @@
|
|||||||
name: 独角数卡
|
|
||||||
title: 独角数卡
|
|
||||||
description: 独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速
|
|
||||||
additionalProperties:
|
|
||||||
key: dujiaoka
|
|
||||||
name: 独角数卡
|
|
||||||
tags:
|
|
||||||
- WebSite
|
|
||||||
- Tool
|
|
||||||
- Local
|
|
||||||
shortDescZh: 独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速
|
|
||||||
shortDescEn: Dujiaoka (Automatic Vending System) - Open source webmaster automatic vending solution, efficient, stable, fast
|
|
||||||
type: website
|
|
||||||
crossVersionUpdate: true
|
|
||||||
limit: 0
|
|
||||||
website: https://github.com/assimon/dujiaoka/
|
|
||||||
github: https://github.com/assimon/dujiaoka/
|
|
||||||
document: https://github.com/assimon/dujiaoka/
|
|
Binary file not shown.
Before Width: | Height: | Size: 9.9 KiB |
@ -1,60 +0,0 @@
|
|||||||
additionalProperties:
|
|
||||||
formFields:
|
|
||||||
- default: "/home/elasticsearch"
|
|
||||||
edit: true
|
|
||||||
envKey: ELASTICSEARCH_ROOT_PATH
|
|
||||||
labelZh: 数据持久化路径
|
|
||||||
labelEn: Data persistence path
|
|
||||||
required: true
|
|
||||||
type: text
|
|
||||||
- default: 9200
|
|
||||||
edit: true
|
|
||||||
envKey: PANEL_APP_PORT_HTTPS
|
|
||||||
labelZh: WebUI 端口
|
|
||||||
labelEn: WebUI port
|
|
||||||
required: true
|
|
||||||
rule: paramPort
|
|
||||||
type: number
|
|
||||||
- default: 9300
|
|
||||||
edit: true
|
|
||||||
envKey: PANEL_APP_PORT_CLUSTER
|
|
||||||
labelZh: 集群端口
|
|
||||||
labelEn: Cluster port
|
|
||||||
required: true
|
|
||||||
rule: paramPort
|
|
||||||
type: number
|
|
||||||
- default: ""
|
|
||||||
edit: true
|
|
||||||
envKey: ELASTIC_PASSWORD
|
|
||||||
labelZh: Elasticsearch 密码 (elastic)
|
|
||||||
labelEn: Elasticsearch password (elastic)
|
|
||||||
required: true
|
|
||||||
type: password
|
|
||||||
- default: ""
|
|
||||||
edit: true
|
|
||||||
envKey: KIBANA_PASSWORD
|
|
||||||
labelZh: Kibana 密码 (kibana_system)
|
|
||||||
labelEn: Kibana password (kibana_system)
|
|
||||||
required: false
|
|
||||||
type: password
|
|
||||||
- default: "elasticsearch"
|
|
||||||
edit: true
|
|
||||||
envKey: ES_SETTING_CLUSTER_NAME
|
|
||||||
labelZh: 集群名称
|
|
||||||
labelEn: Cluster name
|
|
||||||
required: true
|
|
||||||
type: text
|
|
||||||
- default: "es-node"
|
|
||||||
edit: true
|
|
||||||
envKey: ES_SETTING_NODE_NAME
|
|
||||||
labelZh: 节点名称
|
|
||||||
labelEn: Node name
|
|
||||||
required: true
|
|
||||||
type: text
|
|
||||||
- default: "-Xms1g -Xmx1g"
|
|
||||||
edit: true
|
|
||||||
envKey: ES_JAVA_OPTS
|
|
||||||
labelZh: Java 启动参数 (可选)
|
|
||||||
labelEn: Java startup parameters (optional)
|
|
||||||
required: false
|
|
||||||
type: text
|
|
@ -1,35 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
|
||||||
elasticsearch:
|
|
||||||
image: elasticsearch:8.15.0
|
|
||||||
container_name: ${CONTAINER_NAME}
|
|
||||||
labels:
|
|
||||||
createdBy: "Apps"
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- 1panel-network
|
|
||||||
tty: true
|
|
||||||
ulimits:
|
|
||||||
memlock:
|
|
||||||
soft: -1
|
|
||||||
hard: -1
|
|
||||||
nofile:
|
|
||||||
soft: 65536
|
|
||||||
hard: 65536
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTPS}:9200
|
|
||||||
- ${PANEL_APP_PORT_CLUSTER}:9300
|
|
||||||
env_file:
|
|
||||||
- /etc/1panel/envs/global.env
|
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
|
||||||
volumes:
|
|
||||||
- ${ELASTICSEARCH_ROOT_PATH}/data:/usr/share/elasticsearch/data
|
|
||||||
- ${ELASTICSEARCH_ROOT_PATH}/backup:/usr/share/elasticsearch/backup
|
|
||||||
- ${ELASTICSEARCH_ROOT_PATH}/plugins:/usr/share/elasticsearch/plugins
|
|
||||||
environment:
|
|
||||||
- LICENSE=basic
|
|
||||||
- ES_SETTING_BOOTSTRAP_MEMORY__LOCK=true
|
|
||||||
- ES_SETTING_PATH_REPO=/usr/share/elasticsearch/backup
|
|
@ -1,21 +0,0 @@
|
|||||||
#!/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
|
|
||||||
|
|
||||||
mkdir -p $ELASTICSEARCH_ROOT_PATH
|
|
||||||
mkdir -p "$ELASTICSEARCH_ROOT_PATH/data"
|
|
||||||
mkdir -p "$ELASTICSEARCH_ROOT_PATH/backup"
|
|
||||||
mkdir -p "$ELASTICSEARCH_ROOT_PATH/plugins"
|
|
||||||
|
|
||||||
chown -R 1000:1000 $ELASTICSEARCH_ROOT_PATH
|
|
||||||
|
|
||||||
echo "Check Finish."
|
|
||||||
else
|
|
||||||
echo "Error: .env file not found."
|
|
||||||
fi
|
|
@ -1,15 +0,0 @@
|
|||||||
#!/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
|
|
@ -1,105 +0,0 @@
|
|||||||
# Elasticsearch
|
|
||||||
|
|
||||||
搜索并分析您的数据
|
|
||||||
|
|
||||||
<img src="https://file.lifebus.top/imgs/elasticsearch_logo.svg" width="100%"/>
|
|
||||||
|
|
||||||
Elasticsearch 是 Elastic Stack 核心的分布式搜索和分析引擎。 Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在
|
|
||||||
Elasticsearch 中。
|
|
||||||
Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。 Elasticsearch 是索引、搜索和分析魔法发生的地方。
|
|
||||||
|
|
||||||
![](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)
|
|
||||||
|
|
||||||
## 安装说明
|
|
||||||
|
|
||||||
当前应用为主节点,仅首次部署有效。集群节点请使用 `Elasticsearch 节点` 应用。
|
|
||||||
|
|
||||||
### 宿主机配置
|
|
||||||
|
|
||||||
+ `vm.max_map_count` 配置
|
|
||||||
|
|
||||||
Elasticsearch 需要设置 `vm.max_map_count` 为至少 `262144`。可以通过以下命令设置:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
grep vm.max_map_count /etc/sysctl.conf
|
|
||||||
|
|
||||||
# 如果输出为空,表示没有设置,需要手动添加
|
|
||||||
vm.max_map_count=262144
|
|
||||||
```
|
|
||||||
|
|
||||||
添加配置
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# 临时生效
|
|
||||||
sysctl -w vm.max_map_count=262144
|
|
||||||
|
|
||||||
# 永久生效
|
|
||||||
echo "vm.max_map_count=262144" >>/etc/sysctl.conf
|
|
||||||
sysctl -p
|
|
||||||
```
|
|
||||||
|
|
||||||
### 集群主节点安装
|
|
||||||
|
|
||||||
> `集群名称` 配置
|
|
||||||
|
|
||||||
用于标识集群的名称。默认为 `elasticsearch-cluster`。
|
|
||||||
|
|
||||||
> `节点名称` 配置
|
|
||||||
|
|
||||||
用于标识节点的名称。默认为 `elasticsearch-node`。
|
|
||||||
|
|
||||||
> `Elasticsearch 密码 (elastic)` 配置
|
|
||||||
|
|
||||||
内置用户 `elastic` 的密码。默认情况下,密码是随机生成的。
|
|
||||||
|
|
||||||
> `Kibana 密码 (kibana_system)` 配置
|
|
||||||
|
|
||||||
内置用户 `kibana_system` 的密码。默认情况下,密码是随机生成的。
|
|
||||||
|
|
||||||
用于保护内置用户 `kibana_system` 的密码。默认情况下,密码是随机生成的。
|
|
||||||
|
|
||||||
> `Java 启动参数 (可选)` 配置
|
|
||||||
|
|
||||||
Java 启动参数。默认为空。
|
|
||||||
|
|
||||||
推荐参数:`-Xms1g -Xmx1g`
|
|
||||||
|
|
||||||
小内存推荐参数:`-Xms512m -Xmx512m`
|
|
||||||
|
|
||||||
## 快捷操作
|
|
||||||
|
|
||||||
> 重置密码
|
|
||||||
|
|
||||||
```sh
|
|
||||||
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
|
|
||||||
```
|
|
||||||
|
|
||||||
> 创建 `节点` 注册令牌
|
|
||||||
|
|
||||||
注册令牌的有效期为30分钟。
|
|
||||||
|
|
||||||
```sh
|
|
||||||
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node
|
|
||||||
```
|
|
||||||
|
|
||||||
> 创建 `kibana` 注册令牌
|
|
||||||
|
|
||||||
注册令牌的有效期为30分钟。
|
|
||||||
|
|
||||||
```sh
|
|
||||||
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
|
|
||||||
```
|
|
||||||
|
|
||||||
> 导出证书
|
|
||||||
|
|
||||||
<容器名称> 为容器名称或容器 ID,可以通过 `docker ps` 命令查看。
|
|
||||||
|
|
||||||
导出 `http_ca.crt` 证书到当前目录
|
|
||||||
|
|
||||||
```sh
|
|
||||||
docker cp <容器名称>:/usr/share/elasticsearch/config/certs/http_ca.crt .
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
|
@ -1,18 +0,0 @@
|
|||||||
name: Elasticsearch
|
|
||||||
title: 分布式、RESTful 风格的搜索和数据分析引擎
|
|
||||||
description: 分布式、RESTful 风格的搜索和数据分析引擎
|
|
||||||
additionalProperties:
|
|
||||||
key: elastic-elasticsearch
|
|
||||||
name: Elasticsearch
|
|
||||||
tags:
|
|
||||||
- Database
|
|
||||||
- Middleware
|
|
||||||
- Local
|
|
||||||
shortDescZh: 分布式、RESTful 风格的搜索和数据分析引擎
|
|
||||||
shortDescEn: Distributed, RESTful-style search and data analysis engine
|
|
||||||
type: runtime
|
|
||||||
crossVersionUpdate: true
|
|
||||||
limit: 0
|
|
||||||
website: https://www.elastic.co/
|
|
||||||
github: https://github.com/elastic/elasticsearch/
|
|
||||||
document: https://www.elastic.co/docs/
|
|
Binary file not shown.
Before Width: | Height: | Size: 51 KiB |
@ -1,24 +0,0 @@
|
|||||||
additionalProperties:
|
|
||||||
formFields:
|
|
||||||
- default: "/home/kibana"
|
|
||||||
edit: true
|
|
||||||
envKey: KIBANA_ROOT_PATH
|
|
||||||
labelZh: 数据持久化路径
|
|
||||||
labelEn: Data persistence path
|
|
||||||
required: true
|
|
||||||
type: text
|
|
||||||
- default: 5601
|
|
||||||
edit: true
|
|
||||||
envKey: PANEL_APP_PORT_HTTP
|
|
||||||
labelZh: WebUI 端口
|
|
||||||
labelEn: WebUI port
|
|
||||||
required: true
|
|
||||||
rule: paramPort
|
|
||||||
type: number
|
|
||||||
- default: "https://127.0.0.1:9200"
|
|
||||||
edit: true
|
|
||||||
envKey: elasticsearch_hosts
|
|
||||||
labelZh: Elasticsearch 地址
|
|
||||||
labelEn: Elasticsearch address
|
|
||||||
required: true
|
|
||||||
type: text
|
|
@ -1,27 +0,0 @@
|
|||||||
networks:
|
|
||||||
1panel-network:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
|
||||||
kibana:
|
|
||||||
image: kibana:8.15.0
|
|
||||||
container_name: ${CONTAINER_NAME}
|
|
||||||
labels:
|
|
||||||
createdBy: "Apps"
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- 1panel-network
|
|
||||||
ports:
|
|
||||||
- ${PANEL_APP_PORT_HTTP}:5601
|
|
||||||
env_file:
|
|
||||||
- /etc/1panel/envs/global.env
|
|
||||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
|
||||||
volumes:
|
|
||||||
- ${KIBANA_ROOT_PATH}/data:/usr/share/kibana/data
|
|
||||||
environment:
|
|
||||||
- SERVER_NAME="kibana"
|
|
||||||
- SERVER_HOST="0.0.0.0"
|
|
||||||
- SERVER_PORT=5601
|
|
||||||
- I18N_LOCALE="zh-CN"
|
|
||||||
- SERVER_SHUTDOWNTIMEOUT="5s"
|
|
||||||
- MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED=true
|
|
@ -1,20 +0,0 @@
|
|||||||
#!/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
|
|
||||||
|
|
||||||
mkdir -p $KIBANA_ROOT_PATH
|
|
||||||
mkdir -p "$KIBANA_ROOT_PATH/data"
|
|
||||||
|
|
||||||
chown -R 1000:1000 $KIBANA_ROOT_PATH
|
|
||||||
|
|
||||||
echo "Check Finish."
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "Error: .env file not found."
|
|
||||||
fi
|
|
@ -1,15 +0,0 @@
|
|||||||
#!/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
|
|
@ -1,58 +0,0 @@
|
|||||||
# Kibana
|
|
||||||
|
|
||||||
Kibana 是一个用户界面,可让您可视化 Elasticsearch 数据并导航 Elastic Stack。通过本教程了解可视化数据的基础知识。
|
|
||||||
|
|
||||||
![Kibana](https://file.lifebus.top/imgs/kibana_cover.png)
|
|
||||||
|
|
||||||
Kibana 适合管理员、分析师和业务用户。作为管理员,您的角色是管理 Elastic Stack,从创建部署到将 Elasticsearch 数据导入
|
|
||||||
Kibana,然后管理数据。
|
|
||||||
作为分析师,您希望发现数据中的见解、在仪表板上可视化您的数据并分享您的发现。作为业务用户,您希望查看现有仪表板并深入了解详细信息。
|
|
||||||
|
|
||||||
Kibana 适用于所有类型的数据。您的数据可以是结构化或非结构化文本、数字数据、时间序列数据、地理空间数据、日志、指标、安全事件等。无论您的数据是什么,Kibana
|
|
||||||
都可以帮助您发现模式和关系并可视化结果。
|
|
||||||
|
|
||||||
![](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)
|
|
||||||
|
|
||||||
## 特性
|
|
||||||
|
|
||||||
+ 搜索、观察和保护您的数据
|
|
||||||
|
|
||||||
从发现文档到分析日志再到查找安全漏洞,Kibana 是您访问这些功能及其他功能的门户。
|
|
||||||
|
|
||||||
+ 分析您的数据
|
|
||||||
|
|
||||||
搜索隐藏的见解,可视化您在图表、仪表、地图、图形等中发现的内容,并将它们组合在仪表板中。
|
|
||||||
|
|
||||||
+ 管理、监控和保护 Elastic Stack
|
|
||||||
|
|
||||||
管理您的数据、监控 Elastic Stack 集群的运行状况并控制哪些用户可以访问哪些功能。
|
|
||||||
|
|
||||||
## 安装说明
|
|
||||||
|
|
||||||
> 首次安装 日志中获得初始化界面的地址,访问该地址进行初始化配置。
|
|
||||||
>
|
|
||||||
> http://127.0.0.1:5601/?code=xxxxxx
|
|
||||||
|
|
||||||
### 注册令牌
|
|
||||||
|
|
||||||
可通过以下方式获取注册令牌:
|
|
||||||
|
|
||||||
在 `ElasticSearch` 容器中执行以下命令:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cd /usr/share/elasticsearch/bin
|
|
||||||
./elasticsearch-create-enrollment-token -s kibana
|
|
||||||
|
|
||||||
# 或
|
|
||||||
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
|
|
||||||
```
|
|
||||||
|
|
||||||
### 登录账户
|
|
||||||
|
|
||||||
> 默认账户: `elastic`
|
|
||||||
>
|
|
||||||
> 密码: 自行查看 ElasticSearch 参数配置
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
|
@ -1,19 +0,0 @@
|
|||||||
name: Kibana
|
|
||||||
title: 基于浏览器的 Elasticsearch 分析和搜索仪表盘
|
|
||||||
description: 基于浏览器的 Elasticsearch 分析和搜索仪表盘
|
|
||||||
additionalProperties:
|
|
||||||
key: elastic-kibana
|
|
||||||
name: Kibana
|
|
||||||
tags:
|
|
||||||
- WebSite
|
|
||||||
- Middleware
|
|
||||||
- Tool
|
|
||||||
- Local
|
|
||||||
shortDescZh: 基于浏览器的 Elasticsearch 分析和搜索仪表盘
|
|
||||||
shortDescEn: Browser-based Elasticsearch analytics and search dashboard
|
|
||||||
type: website
|
|
||||||
crossVersionUpdate: true
|
|
||||||
limit: 0
|
|
||||||
website: https://www.elastic.co/
|
|
||||||
github: https://github.com/elastic/kibana/
|
|
||||||
document: https://www.elastic.co/docs/
|
|
Binary file not shown.
Before Width: | Height: | Size: 36 KiB |
94
apps/elastic/8.12.0-cluster/data.yml
Normal file
94
apps/elastic/8.12.0-cluster/data.yml
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
additionalProperties:
|
||||||
|
formFields:
|
||||||
|
- default: "docker-cluster"
|
||||||
|
edit: true
|
||||||
|
envKey: CLUSTER_NAME
|
||||||
|
labelEn: cluster name
|
||||||
|
labelZh: 集群名称
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "elastic-net"
|
||||||
|
edit: true
|
||||||
|
envKey: CLUSTER_NETWORK
|
||||||
|
labelEn: cluster network
|
||||||
|
labelZh: 集群网络
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: ELASTIC_PASSWORD
|
||||||
|
labelEn: Password for the 'elastic' user, Numbers and letters
|
||||||
|
labelZh: elastic 用户的密码 数字与字母组合
|
||||||
|
required: true
|
||||||
|
random: true
|
||||||
|
type: password
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: KIBANA_PASSWORD
|
||||||
|
labelEn: Password for the 'kibana_system' user, Numbers and letters
|
||||||
|
labelZh: kibana_system 用户的密码 数字与字母组合
|
||||||
|
required: true
|
||||||
|
random: true
|
||||||
|
type: password
|
||||||
|
- default: "/home/elastic/cluster"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_ROOT_PATH
|
||||||
|
labelEn: data persistence root path
|
||||||
|
labelZh: 数据持久化根路径
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: 1073741824
|
||||||
|
edit: true
|
||||||
|
envKey: MEM_LIMIT
|
||||||
|
labelEn: Increase or decrease based on the available host memory (in bytes)
|
||||||
|
labelZh: 根据可用主机内存增加或减少(以字节为单位)
|
||||||
|
required: true
|
||||||
|
type: number
|
||||||
|
- default: "9200"
|
||||||
|
edit: true
|
||||||
|
envKey: PANEL_APP_PORT_HTTPS
|
||||||
|
labelEn: Port to expose Elasticsearch HTTP API to the host
|
||||||
|
labelZh: 开放API的端口
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: 5601
|
||||||
|
edit: true
|
||||||
|
envKey: PANEL_APP_PORT_HTTP
|
||||||
|
labelEn: Port to expose Kibana to the host
|
||||||
|
labelZh: Kibana面板端口
|
||||||
|
required: true
|
||||||
|
rule: paramPort
|
||||||
|
type: number
|
||||||
|
- default: "9300"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_COMMUNICATION_PORT
|
||||||
|
labelEn: Port to expose Elasticsearch communication to the host
|
||||||
|
labelZh: Elasticsearch通讯端口 9300
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: "512m"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_JAVA_OPTS_XMS
|
||||||
|
labelEn: JVM memory allocation pool
|
||||||
|
labelZh: JVM内存分配池 初始化内存
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "512m"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_JAVA_OPTS_XMX
|
||||||
|
labelEn: JVM memory allocation pool
|
||||||
|
labelZh: JVM内存分配池 运行内存
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "true"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_XPACK_SECURITY_ENABLED
|
||||||
|
labelEn: Enable security verification (recommended)
|
||||||
|
labelZh: 证书安全验证(推荐开启)
|
||||||
|
required: true
|
||||||
|
type: select
|
||||||
|
values:
|
||||||
|
- label: "开启"
|
||||||
|
value: "true"
|
||||||
|
- label: "关闭"
|
||||||
|
value: "false"
|
289
apps/elastic/8.12.0-cluster/docker-compose.yml
Normal file
289
apps/elastic/8.12.0-cluster/docker-compose.yml
Normal file
@ -0,0 +1,289 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
${DOCKER_NET}:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
elastic-init:
|
||||||
|
container_name: elastic-init
|
||||||
|
image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0
|
||||||
|
networks:
|
||||||
|
- ${CLUSTER_NETWORK}
|
||||||
|
volumes:
|
||||||
|
- ${ES_ROOT_PATH}/certs:/usr/share/elasticsearch/config/certs
|
||||||
|
user: "0"
|
||||||
|
command: >
|
||||||
|
bash -c '
|
||||||
|
if [ x${ELASTIC_PASSWORD} == x ]; then
|
||||||
|
echo "Set the ELASTIC_PASSWORD environment variable in the .env file";
|
||||||
|
exit 1;
|
||||||
|
elif [ x${KIBANA_PASSWORD} == x ]; then
|
||||||
|
echo "Set the KIBANA_PASSWORD environment variable in the .env file";
|
||||||
|
exit 1;
|
||||||
|
fi;
|
||||||
|
if [ ! -f config/certs/ca.zip ]; then
|
||||||
|
echo "Creating CA";
|
||||||
|
bin/elasticsearch-certutil ca --silent --pem -out config/certs/ca.zip;
|
||||||
|
unzip config/certs/ca.zip -d config/certs;
|
||||||
|
fi;
|
||||||
|
if [ ! -f config/certs/certs.zip ]; then
|
||||||
|
echo "Creating certs";
|
||||||
|
echo -ne \
|
||||||
|
"instances:\n"\
|
||||||
|
" - name: es01\n"\
|
||||||
|
" dns:\n"\
|
||||||
|
" - es01\n"\
|
||||||
|
" - localhost\n"\
|
||||||
|
" ip:\n"\
|
||||||
|
" - 127.0.0.1\n"\
|
||||||
|
" - name: es02\n"\
|
||||||
|
" dns:\n"\
|
||||||
|
" - es02\n"\
|
||||||
|
" - localhost\n"\
|
||||||
|
" ip:\n"\
|
||||||
|
" - 127.0.0.1\n"\
|
||||||
|
" - name: es03\n"\
|
||||||
|
" dns:\n"\
|
||||||
|
" - es03\n"\
|
||||||
|
" - localhost\n"\
|
||||||
|
" ip:\n"\
|
||||||
|
" - 127.0.0.1\n"\
|
||||||
|
> config/certs/instances.yml;
|
||||||
|
bin/elasticsearch-certutil cert --silent --pem -out config/certs/certs.zip --in config/certs/instances.yml --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key;
|
||||||
|
unzip config/certs/certs.zip -d config/certs;
|
||||||
|
fi;
|
||||||
|
echo "Setting file permissions"
|
||||||
|
chown -R root:root config/certs;
|
||||||
|
find . -type d -exec chmod 750 \{\} \;;
|
||||||
|
find . -type f -exec chmod 640 \{\} \;;
|
||||||
|
echo "Waiting for Elasticsearch availability";
|
||||||
|
until curl -s --cacert config/certs/ca/ca.crt https://es01:9200 | grep -q "missing authentication credentials"; do sleep 30; done;
|
||||||
|
echo "Setting kibana_system password";
|
||||||
|
until curl -s -X POST --cacert config/certs/ca/ca.crt -u "elastic:${ELASTIC_PASSWORD}" -H "Content-Type: application/json" https://es01:9200/_security/user/kibana_system/_password -d "{\"password\":\"${KIBANA_PASSWORD}\"}" | grep -q "^{}"; do sleep 10; done;
|
||||||
|
echo "All done!";
|
||||||
|
'
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD-SHELL", "[ -f config/certs/es01/es01.crt ]" ]
|
||||||
|
interval: 1s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 120
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
|
||||||
|
|
||||||
|
es01:
|
||||||
|
depends_on:
|
||||||
|
elastic-init:
|
||||||
|
condition: service_healthy
|
||||||
|
container_name: es01
|
||||||
|
restart: always
|
||||||
|
image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0
|
||||||
|
volumes:
|
||||||
|
- ${ES_ROOT_PATH}/certs:/usr/share/elasticsearch/config/certs
|
||||||
|
- ${ES_ROOT_PATH}/es01/data:/usr/share/elasticsearch/data
|
||||||
|
- ${ES_ROOT_PATH}/es01/logs:/usr/share/elasticsearch/logs
|
||||||
|
- ${ES_ROOT_PATH}/es01/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
|
||||||
|
- ${ES_ROOT_PATH}/es01/plugins:/usr/share/elasticsearch/plugins
|
||||||
|
ports:
|
||||||
|
- "${PANEL_APP_PORT_HTTPS}:9200"
|
||||||
|
- "${ES_COMMUNICATION_PORT}:9300"
|
||||||
|
networks:
|
||||||
|
- ${CLUSTER_NETWORK}
|
||||||
|
environment:
|
||||||
|
- node.name=es01
|
||||||
|
- cluster.name=${CLUSTER_NAME}
|
||||||
|
- cluster.initial_master_nodes=es01,es02,es03
|
||||||
|
- discovery.seed_hosts=es02,es03
|
||||||
|
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
|
||||||
|
- bootstrap.memory_lock=true
|
||||||
|
- xpack.security.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.http.ssl.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.http.ssl.key=certs/es01/es01.key
|
||||||
|
- xpack.security.http.ssl.certificate=certs/es01/es01.crt
|
||||||
|
- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
|
||||||
|
- xpack.security.transport.ssl.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.transport.ssl.key=certs/es01/es01.key
|
||||||
|
- xpack.security.transport.ssl.certificate=certs/es01/es01.crt
|
||||||
|
- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
|
||||||
|
- xpack.security.transport.ssl.verification_mode=certificate
|
||||||
|
- xpack.license.self_generated.type=basic
|
||||||
|
- ES_JAVA_OPTS=-Xms${ES_JAVA_OPTS_XMS} -Xmx${ES_JAVA_OPTS_XMX}
|
||||||
|
mem_limit: ${MEM_LIMIT}
|
||||||
|
ulimits:
|
||||||
|
memlock:
|
||||||
|
soft: -1
|
||||||
|
hard: -1
|
||||||
|
nofile:
|
||||||
|
soft: 65536
|
||||||
|
hard: 65536
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
"curl -s --cacert config/certs/ca/ca.crt https://localhost:9200 | grep -q 'missing authentication credentials'",
|
||||||
|
]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 120
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
|
||||||
|
es02:
|
||||||
|
depends_on:
|
||||||
|
- es01
|
||||||
|
container_name: es02
|
||||||
|
restart: always
|
||||||
|
image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0
|
||||||
|
volumes:
|
||||||
|
- ${ES_ROOT_PATH}/certs:/usr/share/elasticsearch/config/certs
|
||||||
|
- ${ES_ROOT_PATH}/es02/data:/usr/share/elasticsearch/data
|
||||||
|
- ${ES_ROOT_PATH}/es02/logs:/usr/share/elasticsearch/logs
|
||||||
|
- ${ES_ROOT_PATH}/es02/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
|
||||||
|
- ${ES_ROOT_PATH}/es02/plugins:/usr/share/elasticsearch/plugins
|
||||||
|
networks:
|
||||||
|
- ${CLUSTER_NETWORK}
|
||||||
|
environment:
|
||||||
|
- node.name=es02
|
||||||
|
- cluster.name=${CLUSTER_NAME}
|
||||||
|
- cluster.initial_master_nodes=es01,es02,es03
|
||||||
|
- discovery.seed_hosts=es01,es03
|
||||||
|
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
|
||||||
|
- bootstrap.memory_lock=true
|
||||||
|
- xpack.security.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.http.ssl.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.http.ssl.key=certs/es02/es02.key
|
||||||
|
- xpack.security.http.ssl.certificate=certs/es02/es02.crt
|
||||||
|
- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
|
||||||
|
- xpack.security.transport.ssl.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.transport.ssl.key=certs/es02/es02.key
|
||||||
|
- xpack.security.transport.ssl.certificate=certs/es02/es02.crt
|
||||||
|
- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
|
||||||
|
- xpack.security.transport.ssl.verification_mode=certificate
|
||||||
|
- xpack.license.self_generated.type=basic
|
||||||
|
- ES_JAVA_OPTS=-Xms${ES_JAVA_OPTS_XMS} -Xmx${ES_JAVA_OPTS_XMX}
|
||||||
|
mem_limit: ${MEM_LIMIT}
|
||||||
|
ulimits:
|
||||||
|
memlock:
|
||||||
|
soft: -1
|
||||||
|
hard: -1
|
||||||
|
nofile:
|
||||||
|
soft: 65536
|
||||||
|
hard: 65536
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
"curl -s --cacert config/certs/ca/ca.crt https://localhost:9200 | grep -q 'missing authentication credentials'",
|
||||||
|
]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 120
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
|
||||||
|
es03:
|
||||||
|
depends_on:
|
||||||
|
- es02
|
||||||
|
container_name: es03
|
||||||
|
restart: always
|
||||||
|
image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0
|
||||||
|
volumes:
|
||||||
|
- ${ES_ROOT_PATH}/certs:/usr/share/elasticsearch/config/certs
|
||||||
|
- ${ES_ROOT_PATH}/es03/data:/usr/share/elasticsearch/data
|
||||||
|
- ${ES_ROOT_PATH}/es03/logs:/usr/share/elasticsearch/logs
|
||||||
|
- ${ES_ROOT_PATH}/es03/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
|
||||||
|
- ${ES_ROOT_PATH}/es03/plugins:/usr/share/elasticsearch/plugins
|
||||||
|
networks:
|
||||||
|
- ${CLUSTER_NETWORK}
|
||||||
|
environment:
|
||||||
|
- node.name=es03
|
||||||
|
- cluster.name=${CLUSTER_NAME}
|
||||||
|
- cluster.initial_master_nodes=es01,es02,es03
|
||||||
|
- discovery.seed_hosts=es01,es02
|
||||||
|
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
|
||||||
|
- bootstrap.memory_lock=true
|
||||||
|
- xpack.security.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.http.ssl.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.http.ssl.key=certs/es03/es03.key
|
||||||
|
- xpack.security.http.ssl.certificate=certs/es03/es03.crt
|
||||||
|
- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
|
||||||
|
- xpack.security.transport.ssl.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.transport.ssl.key=certs/es03/es03.key
|
||||||
|
- xpack.security.transport.ssl.certificate=certs/es03/es03.crt
|
||||||
|
- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
|
||||||
|
- xpack.security.transport.ssl.verification_mode=certificate
|
||||||
|
- xpack.license.self_generated.type=basic
|
||||||
|
- ES_JAVA_OPTS=-Xms${ES_JAVA_OPTS_XMS} -Xmx${ES_JAVA_OPTS_XMX}
|
||||||
|
mem_limit: ${MEM_LIMIT}
|
||||||
|
ulimits:
|
||||||
|
memlock:
|
||||||
|
soft: -1
|
||||||
|
hard: -1
|
||||||
|
nofile:
|
||||||
|
soft: 65536
|
||||||
|
hard: 65536
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
"curl -s --cacert config/certs/ca/ca.crt https://localhost:9200 | grep -q 'missing authentication credentials'",
|
||||||
|
]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 120
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
|
||||||
|
kibana:
|
||||||
|
depends_on:
|
||||||
|
es01:
|
||||||
|
condition: service_healthy
|
||||||
|
es02:
|
||||||
|
condition: service_healthy
|
||||||
|
es03:
|
||||||
|
condition: service_healthy
|
||||||
|
container_name: kibana-${CONTAINER_NAME}
|
||||||
|
restart: always
|
||||||
|
image: docker.elastic.co/kibana/kibana:8.12.0
|
||||||
|
volumes:
|
||||||
|
- ${ES_ROOT_PATH}/certs:/usr/share/kibana/config/certs
|
||||||
|
- ${ES_ROOT_PATH}/kibana/data:/usr/share/kibana/data
|
||||||
|
- ${ES_ROOT_PATH}/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
|
||||||
|
ports:
|
||||||
|
- "${PANEL_APP_PORT_HTTP}:5601"
|
||||||
|
networks:
|
||||||
|
- ${CLUSTER_NETWORK}
|
||||||
|
environment:
|
||||||
|
- SERVERNAME=kibana
|
||||||
|
- ELASTICSEARCH_HOSTS=https://es01:9200
|
||||||
|
- ELASTICSEARCH_USERNAME=kibana_system
|
||||||
|
- ELASTICSEARCH_PASSWORD=${KIBANA_PASSWORD}
|
||||||
|
- ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES=config/certs/ca/ca.crt
|
||||||
|
mem_limit: ${MEM_LIMIT}
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
"curl -s -I http://localhost:5601 | grep -q 'HTTP/1.1 302 Found'",
|
||||||
|
]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 120
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
2
apps/elastic/8.12.0-cluster/scripts/elasticsearch.yml
Normal file
2
apps/elastic/8.12.0-cluster/scripts/elasticsearch.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
cluster.name: "docker-cluster"
|
||||||
|
network.host: 0.0.0.0
|
85
apps/elastic/8.12.0-cluster/scripts/init.sh
Normal file
85
apps/elastic/8.12.0-cluster/scripts/init.sh
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 检查 .env 文件是否存在
|
||||||
|
if [ -f .env ]; then
|
||||||
|
# 导入 .env 文件中的变量
|
||||||
|
source .env
|
||||||
|
|
||||||
|
# 检查模板是否启用
|
||||||
|
if [ "$MS_TEMPLATE_ENABLED" = "true" ]; then
|
||||||
|
# 检查模板文件是否存在
|
||||||
|
if [ -e "docker-compose-template.yml" ]; then
|
||||||
|
# 读取模板文件的内容
|
||||||
|
template_content=$(<docker-compose-template.yml)
|
||||||
|
# 清空目标文件
|
||||||
|
> docker-compose.yml
|
||||||
|
# 将模板内容写入目标文件
|
||||||
|
echo "$template_content" > docker-compose.yml
|
||||||
|
|
||||||
|
echo "docker-compose.yml updated successfully."
|
||||||
|
else
|
||||||
|
echo "Error: docker-compose-template.yml not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 替换 docker-compose.yml 中的网络变量
|
||||||
|
sed -i "s/\${DOCKER_NET}/$CLUSTER_NETWORK/" docker-compose.yml
|
||||||
|
|
||||||
|
# 创建目录
|
||||||
|
mkdir -p "$ES_ROOT_PATH"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/certs"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es01/data"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es02/data"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es03/data"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es01/logs"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es02/logs"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es03/logs"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es01/config"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es02/config"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es03/config"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es01/plugins"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es02/plugins"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es03/plugins"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/kibana/data"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/kibana/config"
|
||||||
|
|
||||||
|
# 生成 elasticsearch.yml 文件
|
||||||
|
elasticsearch_config="cluster.name: \"$CLUSTER_NAME\"\nnetwork.host: 0.0.0.0"
|
||||||
|
echo -e "$elasticsearch_config" > elasticsearch.yml
|
||||||
|
cp elasticsearch.yml "$ES_ROOT_PATH/es01/config/elasticsearch.yml"
|
||||||
|
cp elasticsearch.yml "$ES_ROOT_PATH/es02/config/elasticsearch.yml"
|
||||||
|
cp elasticsearch.yml "$ES_ROOT_PATH/es03/config/elasticsearch.yml"
|
||||||
|
|
||||||
|
# 生成 kibana.yml 文件
|
||||||
|
kibana_config="server.host: \"0.0.0.0\"\nserver.shutdownTimeout: \"5s\"\nelasticsearch.hosts: [ \"https://es01:9200\", \"https://es02:9200\", \"https://es03:9200\" ]\nmonitoring.ui.container.elasticsearch.enabled: true"
|
||||||
|
echo -e "$kibana_config" > kibana.yml
|
||||||
|
cp kibana.yml "$ES_ROOT_PATH/kibana/config/kibana.yml"
|
||||||
|
|
||||||
|
# 清理中间文件
|
||||||
|
rm elasticsearch.yml kibana.yml
|
||||||
|
|
||||||
|
# 设置权限
|
||||||
|
chmod -R 777 "$ES_ROOT_PATH"
|
||||||
|
|
||||||
|
# 创建网络
|
||||||
|
docker network create "$CLUSTER_NETWORK"
|
||||||
|
# 检查创建是否成功
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Network $CLUSTER_NETWORK created successfully."
|
||||||
|
else
|
||||||
|
echo "Failed to create network $CLUSTER_NETWORK."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Directories and permissions set successfully."
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Error: .env file not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
4
apps/elastic/8.12.0-cluster/scripts/kibana.yml
Normal file
4
apps/elastic/8.12.0-cluster/scripts/kibana.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
server.host: "0.0.0.0"
|
||||||
|
server.shutdownTimeout: "5s"
|
||||||
|
elasticsearch.hosts: [ "http://localhost:9200" ]
|
||||||
|
monitoring.ui.container.elasticsearch.enabled: true
|
21
apps/elastic/8.12.0-cluster/scripts/uninstall.sh
Normal file
21
apps/elastic/8.12.0-cluster/scripts/uninstall.sh
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 检查 .env 文件是否存在
|
||||||
|
if [ -f .env ]; then
|
||||||
|
# 导入 .env 文件中的变量
|
||||||
|
source .env
|
||||||
|
|
||||||
|
# 使用 docker network rm 命令删除网络
|
||||||
|
docker network rm $CLUSTER_NETWORK
|
||||||
|
|
||||||
|
# 检查删除是否成功
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Network $CLUSTER_NETWORK deleted successfully."
|
||||||
|
else
|
||||||
|
echo "Failed to delete network $CLUSTER_NETWORK."
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Error: .env file not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
99
apps/elastic/8.12.0-node/data.yml
Normal file
99
apps/elastic/8.12.0-node/data.yml
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
additionalProperties:
|
||||||
|
formFields:
|
||||||
|
- default: "docker-cluster"
|
||||||
|
edit: true
|
||||||
|
envKey: CLUSTER_NAME
|
||||||
|
labelEn: cluster name
|
||||||
|
labelZh: 集群名称 与现有集群名称一致
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "elastic-net"
|
||||||
|
edit: true
|
||||||
|
envKey: CLUSTER_NETWORK
|
||||||
|
labelEn: cluster network
|
||||||
|
labelZh: 集群网络 与现有集群网络一致
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "es04"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_NODE_NAME
|
||||||
|
labelEn: node name
|
||||||
|
labelZh: 节点名称 与现有节点名称不一致
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: ELASTIC_PASSWORD
|
||||||
|
labelEn: Password for the 'elastic' user, Numbers and letters
|
||||||
|
labelZh: elastic 用户的密码 数字与字母组合
|
||||||
|
required: true
|
||||||
|
random: true
|
||||||
|
type: password
|
||||||
|
- default: "es01,es02,es03"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_SEED_HOSTS
|
||||||
|
labelEn: Seed hosts
|
||||||
|
labelZh: 其他节点的名称 节点发现
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "es01,es02,es03,es04"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_INITIAL_MASTER_NODES
|
||||||
|
labelEn: Initial master nodes
|
||||||
|
labelZh: 主节点选举 es04为当前节点
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "/home/elastic/cluster"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_ROOT_PATH
|
||||||
|
labelEn: data persistence root path
|
||||||
|
labelZh: 集群根路径 与现有集群根路径一致
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: 1073741824
|
||||||
|
edit: true
|
||||||
|
envKey: MEM_LIMIT
|
||||||
|
labelEn: Increase or decrease based on the available host memory (in bytes)
|
||||||
|
labelZh: 根据可用主机内存增加或减少(以字节为单位)
|
||||||
|
required: true
|
||||||
|
type: number
|
||||||
|
- default: "9200"
|
||||||
|
edit: true
|
||||||
|
envKey: PANEL_APP_PORT_HTTPS
|
||||||
|
labelEn: Port to expose Elasticsearch HTTP API to the host
|
||||||
|
labelZh: 开放API的端口
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: "9300"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_COMMUNICATION_PORT
|
||||||
|
labelEn: Port to expose Elasticsearch communication to the host
|
||||||
|
labelZh: Elasticsearch通讯端口 9300
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: "512m"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_JAVA_OPTS_XMS
|
||||||
|
labelEn: JVM memory allocation pool
|
||||||
|
labelZh: JVM内存分配池 初始化内存
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "512m"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_JAVA_OPTS_XMX
|
||||||
|
labelEn: JVM memory allocation pool
|
||||||
|
labelZh: JVM内存分配池 运行内存
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "true"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_XPACK_SECURITY_ENABLED
|
||||||
|
labelEn: Enable security verification (recommended)
|
||||||
|
labelZh: 证书安全验证(推荐开启)
|
||||||
|
required: true
|
||||||
|
type: select
|
||||||
|
values:
|
||||||
|
- label: "开启"
|
||||||
|
value: "true"
|
||||||
|
- label: "关闭"
|
||||||
|
value: "false"
|
84
apps/elastic/8.12.0-node/docker-compose.yml
Normal file
84
apps/elastic/8.12.0-node/docker-compose.yml
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
${DOCKER_NET}:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
es-node:
|
||||||
|
container_name: ${CONTAINER_NAME}-${ES_NODE_NAME}
|
||||||
|
restart: always
|
||||||
|
image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0
|
||||||
|
volumes:
|
||||||
|
- ${ES_ROOT_PATH}/certs:/usr/share/elasticsearch/config/certs
|
||||||
|
- ${ES_ROOT_PATH}/${ES_NODE_NAME}/data:/usr/share/elasticsearch/data
|
||||||
|
- ${ES_ROOT_PATH}/${ES_NODE_NAME}/logs:/usr/share/elasticsearch/logs
|
||||||
|
- ${ES_ROOT_PATH}/${ES_NODE_NAME}/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
|
||||||
|
- ${ES_ROOT_PATH}/${ES_NODE_NAME}/plugins:/usr/share/elasticsearch/plugins
|
||||||
|
ports:
|
||||||
|
- "${PANEL_APP_PORT_HTTPS}:9200"
|
||||||
|
- "${ES_COMMUNICATION_PORT}:9300"
|
||||||
|
networks:
|
||||||
|
- ${CLUSTER_NETWORK}
|
||||||
|
command: >
|
||||||
|
bash -c '
|
||||||
|
echo "start es-node";
|
||||||
|
if [ ! -f config/certs/${ES_NODE_NAME}.zip ]; then
|
||||||
|
echo "Creating certs";
|
||||||
|
echo -ne \
|
||||||
|
"instances:\n"\
|
||||||
|
" - name: ${ES_NODE_NAME}\n"\
|
||||||
|
" dns:\n"\
|
||||||
|
" - ${ES_NODE_NAME}\n"\
|
||||||
|
" - localhost\n"\
|
||||||
|
" ip:\n"\
|
||||||
|
" - 127.0.0.1\n"\
|
||||||
|
> config/certs/${ES_NODE_NAME}.yml;
|
||||||
|
bin/elasticsearch-certutil cert --silent --pem -out config/certs/${ES_NODE_NAME}.zip --in config/certs/${ES_NODE_NAME}.yml --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key;
|
||||||
|
unzip config/certs/${ES_NODE_NAME}.zip -d config/certs;
|
||||||
|
fi;
|
||||||
|
echo "Setting file permissions"
|
||||||
|
chown -R root:root config/certs;
|
||||||
|
exec /usr/local/bin/docker-entrypoint.sh elasticsearch
|
||||||
|
'
|
||||||
|
environment:
|
||||||
|
- node.name=${ES_NODE_NAME}
|
||||||
|
- cluster.name=${CLUSTER_NAME}
|
||||||
|
- cluster.initial_master_nodes=${ES_INITIAL_MASTER_NODES}
|
||||||
|
- discovery.seed_hosts=${ES_SEED_HOSTS}
|
||||||
|
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
|
||||||
|
- bootstrap.memory_lock=true
|
||||||
|
- xpack.security.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.http.ssl.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.http.ssl.key=certs/${ES_NODE_NAME}/${ES_NODE_NAME}.key
|
||||||
|
- xpack.security.http.ssl.certificate=certs/${ES_NODE_NAME}/${ES_NODE_NAME}.crt
|
||||||
|
- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
|
||||||
|
- xpack.security.transport.ssl.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.transport.ssl.key=certs/${ES_NODE_NAME}/${ES_NODE_NAME}.key
|
||||||
|
- xpack.security.transport.ssl.certificate=certs/${ES_NODE_NAME}/${ES_NODE_NAME}.crt
|
||||||
|
- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
|
||||||
|
- xpack.security.transport.ssl.verification_mode=certificate
|
||||||
|
- xpack.license.self_generated.type=basic
|
||||||
|
- ES_JAVA_OPTS=-Xms${ES_JAVA_OPTS_XMS} -Xmx${ES_JAVA_OPTS_XMX}
|
||||||
|
mem_limit: ${MEM_LIMIT}
|
||||||
|
ulimits:
|
||||||
|
memlock:
|
||||||
|
soft: -1
|
||||||
|
hard: -1
|
||||||
|
nofile:
|
||||||
|
soft: 65536
|
||||||
|
hard: 65536
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
"curl -s --cacert config/certs/ca/ca.crt https://localhost:9200 | grep -q 'missing authentication credentials'",
|
||||||
|
]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 120
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
31
apps/elastic/8.12.0-node/scripts/init.sh
Normal file
31
apps/elastic/8.12.0-node/scripts/init.sh
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 检查 .env 文件是否存在
|
||||||
|
if [ -f .env ]; then
|
||||||
|
# 导入 .env 文件中的变量
|
||||||
|
source .env
|
||||||
|
|
||||||
|
# 替换 docker-compose.yml 中的网络变量
|
||||||
|
sed -i "s/\${DOCKER_NET}/$CLUSTER_NETWORK/" docker-compose.yml
|
||||||
|
|
||||||
|
# 创建并设置权限
|
||||||
|
mkdir -p "$ES_ROOT_PATH"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/$ES_NODE_NAME/data"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/$ES_NODE_NAME/logs"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/$ES_NODE_NAME/config"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/$ES_NODE_NAME/plugins"
|
||||||
|
|
||||||
|
# 生成 elasticsearch.yml 文件
|
||||||
|
elasticsearch_config="cluster.name: \"$CLUSTER_NAME\"\nnetwork.host: 0.0.0.0"
|
||||||
|
echo -e "$elasticsearch_config" > elasticsearch.yml
|
||||||
|
cp elasticsearch.yml "$ES_ROOT_PATH/$ES_NODE_NAME/config/elasticsearch.yml"
|
||||||
|
|
||||||
|
chmod -R 777 "$ES_ROOT_PATH"
|
||||||
|
|
||||||
|
echo "Directories and permissions set successfully."
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Error: .env file not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
89
apps/elastic/8.12.0-single/data.yml
Normal file
89
apps/elastic/8.12.0-single/data.yml
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
additionalProperties:
|
||||||
|
formFields:
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: ELASTIC_PASSWORD
|
||||||
|
labelEn: Password for the 'elastic' user, Numbers and letters
|
||||||
|
labelZh: elastic 用户的密码 数字与字母组合
|
||||||
|
required: true
|
||||||
|
random: true
|
||||||
|
type: password
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: KIBANA_PASSWORD
|
||||||
|
labelEn: Password for the 'kibana_system' user, Numbers and letters
|
||||||
|
labelZh: kibana_system 用户的密码 数字与字母组合
|
||||||
|
required: true
|
||||||
|
random: true
|
||||||
|
type: password
|
||||||
|
- default: "/home/elastic/single"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_ROOT_PATH
|
||||||
|
labelEn: data persistence root path
|
||||||
|
labelZh: 数据持久化根路径
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: 1073741824
|
||||||
|
edit: true
|
||||||
|
envKey: MEM_LIMIT
|
||||||
|
labelEn: Increase or decrease based on the available host memory (in bytes)
|
||||||
|
labelZh: 根据可用主机内存增加或减少(以字节为单位)
|
||||||
|
required: true
|
||||||
|
type: number
|
||||||
|
- default: "9200"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_HOST
|
||||||
|
labelEn: Access host restriction 127.0.0.1:9200
|
||||||
|
labelZh: 主机限定 127.0.0.1:9200
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: 9200
|
||||||
|
edit: true
|
||||||
|
envKey: PANEL_APP_PORT_HTTPS
|
||||||
|
labelEn: Port to expose Elasticsearch HTTP API to the host
|
||||||
|
labelZh: 开放API的端口 必须与主机限定端口一致
|
||||||
|
required: true
|
||||||
|
rule: paramPort
|
||||||
|
type: number
|
||||||
|
- default: 5601
|
||||||
|
edit: true
|
||||||
|
envKey: PANEL_APP_PORT_HTTP
|
||||||
|
labelEn: Port to expose Kibana to the host
|
||||||
|
labelZh: Kibana面板端口
|
||||||
|
required: true
|
||||||
|
rule: paramPort
|
||||||
|
type: number
|
||||||
|
- default: 9300
|
||||||
|
edit: true
|
||||||
|
envKey: ES_COMMUNICATION_PORT
|
||||||
|
labelEn: Port to expose Elasticsearch communication to the host
|
||||||
|
labelZh: Elasticsearch通讯端口 9300
|
||||||
|
required: true
|
||||||
|
rule: paramPort
|
||||||
|
type: number
|
||||||
|
- default: "512m"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_JAVA_OPTS_XMS
|
||||||
|
labelEn: JVM memory allocation pool
|
||||||
|
labelZh: JVM内存分配池 初始化内存
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "512m"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_JAVA_OPTS_XMX
|
||||||
|
labelEn: JVM memory allocation pool
|
||||||
|
labelZh: JVM内存分配池 运行内存
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "true"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_XPACK_SECURITY_ENABLED
|
||||||
|
labelEn: Enable security verification (recommended)
|
||||||
|
labelZh: 证书安全验证(推荐开启)
|
||||||
|
required: true
|
||||||
|
type: select
|
||||||
|
values:
|
||||||
|
- label: "开启"
|
||||||
|
value: "true"
|
||||||
|
- label: "关闭"
|
||||||
|
value: "false"
|
159
apps/elastic/8.12.0-single/docker-compose.yml
Normal file
159
apps/elastic/8.12.0-single/docker-compose.yml
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
1panel-network:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
es-single-init:
|
||||||
|
container_name: elastic-init
|
||||||
|
image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0
|
||||||
|
networks:
|
||||||
|
- 1panel-network
|
||||||
|
volumes:
|
||||||
|
- ${ES_ROOT_PATH}/certs:/usr/share/elasticsearch/config/certs
|
||||||
|
user: "0"
|
||||||
|
command: >
|
||||||
|
bash -c '
|
||||||
|
if [ x${ELASTIC_PASSWORD} == x ]; then
|
||||||
|
echo "Set the ELASTIC_PASSWORD environment variable in the .env file";
|
||||||
|
exit 1;
|
||||||
|
elif [ x${KIBANA_PASSWORD} == x ]; then
|
||||||
|
echo "Set the KIBANA_PASSWORD environment variable in the .env file";
|
||||||
|
exit 1;
|
||||||
|
fi;
|
||||||
|
if [ ! -f config/certs/ca.zip ]; then
|
||||||
|
echo "Creating CA";
|
||||||
|
bin/elasticsearch-certutil ca --silent --pem -out config/certs/ca.zip;
|
||||||
|
unzip config/certs/ca.zip -d config/certs;
|
||||||
|
fi;
|
||||||
|
if [ ! -f config/certs/certs.zip ]; then
|
||||||
|
echo "Creating certs";
|
||||||
|
echo -ne \
|
||||||
|
"instances:\n"\
|
||||||
|
" - name: es-single-es01\n"\
|
||||||
|
" dns:\n"\
|
||||||
|
" - es-single-es01\n"\
|
||||||
|
" - localhost\n"\
|
||||||
|
" ip:\n"\
|
||||||
|
" - 127.0.0.1\n"\
|
||||||
|
> config/certs/instances.yml;
|
||||||
|
bin/elasticsearch-certutil cert --silent --pem -out config/certs/certs.zip --in config/certs/instances.yml --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key;
|
||||||
|
unzip config/certs/certs.zip -d config/certs;
|
||||||
|
fi;
|
||||||
|
echo "Setting file permissions"
|
||||||
|
chown -R root:root config/certs;
|
||||||
|
find . -type d -exec chmod 750 \{\} \;;
|
||||||
|
find . -type f -exec chmod 640 \{\} \;;
|
||||||
|
echo "Waiting for Elasticsearch availability";
|
||||||
|
until curl -s --cacert config/certs/ca/ca.crt https://es-single-es01:9200 | grep -q "missing authentication credentials"; do sleep 30; done;
|
||||||
|
echo "Setting kibana_system password";
|
||||||
|
until curl -s -X POST --cacert config/certs/ca/ca.crt -u "elastic:${ELASTIC_PASSWORD}" -H "Content-Type: application/json" https://es-single-es01:9200/_security/user/kibana_system/_password -d "{\"password\":\"${KIBANA_PASSWORD}\"}" | grep -q "^{}"; do sleep 10; done;
|
||||||
|
echo "All done!";
|
||||||
|
'
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD-SHELL", "[ -f config/certs/es-single-es01/es-single-es01.crt ]" ]
|
||||||
|
interval: 1s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 120
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
|
||||||
|
|
||||||
|
es-single-es01:
|
||||||
|
depends_on:
|
||||||
|
es-single-init:
|
||||||
|
condition: service_healthy
|
||||||
|
container_name: es-single-es01
|
||||||
|
restart: always
|
||||||
|
image: docker.elastic.co/elasticsearch/elasticsearch:8.12.0
|
||||||
|
volumes:
|
||||||
|
- ${ES_ROOT_PATH}/certs:/usr/share/elasticsearch/config/certs
|
||||||
|
- ${ES_ROOT_PATH}/es01/data:/usr/share/elasticsearch/data
|
||||||
|
- ${ES_ROOT_PATH}/es01/logs:/usr/share/elasticsearch/logs
|
||||||
|
- ${ES_ROOT_PATH}/es01/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
|
||||||
|
- ${ES_ROOT_PATH}/es01/plugins:/usr/share/elasticsearch/plugins
|
||||||
|
ports:
|
||||||
|
- "${PANEL_APP_PORT_HTTPS}:9200"
|
||||||
|
- "${ES_COMMUNICATION_PORT}:9300"
|
||||||
|
networks:
|
||||||
|
- 1panel-network
|
||||||
|
environment:
|
||||||
|
- discovery.type=single-node
|
||||||
|
- node.name=es-single-es01
|
||||||
|
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
|
||||||
|
- bootstrap.memory_lock=true
|
||||||
|
- xpack.security.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.http.ssl.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.http.ssl.key=certs/es-single-es01/es-single-es01.key
|
||||||
|
- xpack.security.http.ssl.certificate=certs/es-single-es01/es-single-es01.crt
|
||||||
|
- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
|
||||||
|
- xpack.security.transport.ssl.enabled=${ES_XPACK_SECURITY_ENABLED}
|
||||||
|
- xpack.security.transport.ssl.key=certs/es-single-es01/es-single-es01.key
|
||||||
|
- xpack.security.transport.ssl.certificate=certs/es-single-es01/es-single-es01.crt
|
||||||
|
- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
|
||||||
|
- xpack.security.transport.ssl.verification_mode=certificate
|
||||||
|
- xpack.license.self_generated.type=basic
|
||||||
|
- ES_JAVA_OPTS=-Xms${ES_JAVA_OPTS_XMS} -Xmx${ES_JAVA_OPTS_XMX}
|
||||||
|
mem_limit: ${MEM_LIMIT}
|
||||||
|
ulimits:
|
||||||
|
memlock:
|
||||||
|
soft: -1
|
||||||
|
hard: -1
|
||||||
|
nofile:
|
||||||
|
soft: 65536
|
||||||
|
hard: 65536
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
"curl -s --cacert config/certs/ca/ca.crt https://localhost:9200 | grep -q 'missing authentication credentials'",
|
||||||
|
]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 120
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
||||||
|
|
||||||
|
es-single-kibana:
|
||||||
|
depends_on:
|
||||||
|
es-single-es01:
|
||||||
|
condition: service_healthy
|
||||||
|
container_name: kibana-${CONTAINER_NAME}
|
||||||
|
restart: always
|
||||||
|
image: docker.elastic.co/kibana/kibana:8.12.0
|
||||||
|
volumes:
|
||||||
|
- ${ES_ROOT_PATH}/certs:/usr/share/kibana/config/certs
|
||||||
|
- ${ES_ROOT_PATH}/kibana/data:/usr/share/kibana/data
|
||||||
|
- ${ES_ROOT_PATH}/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
|
||||||
|
ports:
|
||||||
|
- "${PANEL_APP_PORT_HTTP}:5601"
|
||||||
|
networks:
|
||||||
|
- 1panel-network
|
||||||
|
environment:
|
||||||
|
- SERVERNAME=kibana
|
||||||
|
- ELASTICSEARCH_HOSTS=https://es-single-es01:9200
|
||||||
|
- ELASTICSEARCH_USERNAME=kibana_system
|
||||||
|
- ELASTICSEARCH_PASSWORD=${KIBANA_PASSWORD}
|
||||||
|
- ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES=config/certs/ca/ca.crt
|
||||||
|
mem_limit: ${MEM_LIMIT}
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD-SHELL",
|
||||||
|
"curl -s -I http://localhost:5601 | grep -q 'HTTP/1.1 302 Found'",
|
||||||
|
]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 120
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "10m"
|
||||||
|
max-file: "3"
|
2
apps/elastic/8.12.0-single/scripts/elasticsearch.yml
Normal file
2
apps/elastic/8.12.0-single/scripts/elasticsearch.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
cluster.name: "docker-cluster"
|
||||||
|
network.host: 0.0.0.0
|
63
apps/elastic/8.12.0-single/scripts/init.sh
Normal file
63
apps/elastic/8.12.0-single/scripts/init.sh
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 检查 .env 文件是否存在
|
||||||
|
if [ -f .env ]; then
|
||||||
|
# 导入 .env 文件中的变量
|
||||||
|
source .env
|
||||||
|
|
||||||
|
# 检查模板是否启用
|
||||||
|
if [ "$MS_TEMPLATE_ENABLED" = "true" ]; then
|
||||||
|
# 检查模板文件是否存在
|
||||||
|
if [ -e "docker-compose-template.yml" ]; then
|
||||||
|
# 读取模板文件的内容
|
||||||
|
template_content=$(<docker-compose-template.yml)
|
||||||
|
# 清空目标文件
|
||||||
|
> docker-compose.yml
|
||||||
|
# 将模板内容写入目标文件
|
||||||
|
echo "$template_content" > docker-compose.yml
|
||||||
|
|
||||||
|
echo "docker-compose.yml updated successfully."
|
||||||
|
else
|
||||||
|
echo "Error: docker-compose-template.yml not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 创建目录
|
||||||
|
mkdir -p "$ES_ROOT_PATH"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/certs"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es01/data"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es01/logs"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es01/config"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/es01/plugins"
|
||||||
|
|
||||||
|
mkdir -p "$ES_ROOT_PATH/kibana/data"
|
||||||
|
mkdir -p "$ES_ROOT_PATH/kibana/config"
|
||||||
|
|
||||||
|
# 生成 elasticsearch.yml 文件
|
||||||
|
elasticsearch_config="cluster.name: \"$CLUSTER_NAME\"\nnetwork.host: 0.0.0.0"
|
||||||
|
echo -e "$elasticsearch_config" > elasticsearch.yml
|
||||||
|
cp elasticsearch.yml "$ES_ROOT_PATH/es01/config/elasticsearch.yml"
|
||||||
|
|
||||||
|
# 生成 kibana.yml 文件
|
||||||
|
kibana_config="server.host: \"0.0.0.0\"\nserver.shutdownTimeout: \"5s\"\nelasticsearch.hosts: [ \"https://es01:9200\" ]\nmonitoring.ui.container.elasticsearch.enabled: true"
|
||||||
|
echo -e "$kibana_config" > kibana.yml
|
||||||
|
cp kibana.yml "$ES_ROOT_PATH/kibana/config/kibana.yml"
|
||||||
|
|
||||||
|
# 清理中间文件
|
||||||
|
rm elasticsearch.yml kibana.yml
|
||||||
|
|
||||||
|
# 设置权限
|
||||||
|
chmod -R 777 "$ES_ROOT_PATH"
|
||||||
|
|
||||||
|
echo "Directories and permissions set successfully."
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Error: .env file not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
4
apps/elastic/8.12.0-single/scripts/kibana.yml
Normal file
4
apps/elastic/8.12.0-single/scripts/kibana.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
server.host: "0.0.0.0"
|
||||||
|
server.shutdownTimeout: "5s"
|
||||||
|
elasticsearch.hosts: [ "http://localhost:9200" ]
|
||||||
|
monitoring.ui.container.elasticsearch.enabled: true
|
21
apps/elastic/8.12.0-single/scripts/uninstall.sh
Normal file
21
apps/elastic/8.12.0-single/scripts/uninstall.sh
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 检查 .env 文件是否存在
|
||||||
|
if [ -f .env ]; then
|
||||||
|
# 导入 .env 文件中的变量
|
||||||
|
source .env
|
||||||
|
|
||||||
|
# 使用 docker network rm 命令删除网络
|
||||||
|
docker network rm $CLUSTER_NETWORK
|
||||||
|
|
||||||
|
# 检查删除是否成功
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Network $CLUSTER_NETWORK deleted successfully."
|
||||||
|
else
|
||||||
|
echo "Failed to delete network $CLUSTER_NETWORK."
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Error: .env file not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
151
apps/elastic/README.md
Normal file
151
apps/elastic/README.md
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
# Elastic
|
||||||
|
|
||||||
|
Elastic NV是一家美籍荷兰公司,成立于2012年,位于荷兰阿姆斯特丹,以前称为Elasticsearch。这是一家搜索公司,它构建用于搜索,日志记录,安全性,可观察性和分析用例的自我管理和软件即服务产品。
|
||||||
|
|
||||||
|
Elastic NV is an American-Dutch company that was founded in 2012 in Amsterdam, the Netherlands, and was previously known
|
||||||
|
as Elasticsearch.
|
||||||
|
|
||||||
|
## 参考资料
|
||||||
|
|
||||||
|
Docker@Elastic: [https://www.docker.elastic.co/](https://www.docker.elastic.co/)
|
||||||
|
|
||||||
|
DockerFiles: [https://github.com/elastic/dockerfiles](https://github.com/elastic/dockerfiles)
|
||||||
|
|
||||||
|
GitHub Elastic: [https://github.com/elastic](https://github.com/elastic)
|
||||||
|
|
||||||
|
官方网站: [https://www.elastic.co/](https://www.elastic.co/)
|
||||||
|
|
||||||
|
官方文档: [https://www.elastic.co/guide/index.html](https://www.elastic.co/guide/index.html)
|
||||||
|
|
||||||
|
## Elastic Stack
|
||||||
|
|
||||||
|
了解可帮助您构建搜索体验、解决问题并取得成功的搜索平台
|
||||||
|
|
||||||
|
核心产品包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)等等。能够安全可靠地从任何来源获取任何格式的数据,然后对数据进行搜索、分析和可视化。
|
||||||
|
|
||||||
|
### ELASTICSEARCH + KIBANA + INTEGRATIONS
|
||||||
|
|
||||||
|
集搜索驱动型产品和功能于一身
|
||||||
|
|
||||||
|
Elasticsearch 和 Kibana 都是在免费开放的基础上构建而成,适用于各种各样的用例,从日志开始,到您能想到的任何项目,无一不能胜任。Elastic
|
||||||
|
具备极有价值的功能组合,如 Machine Learning、安全和 Reporting,这些功能专为 Elastic 而生,让我们独树一帜。查看 Elastic Stack
|
||||||
|
功能的完整列表。
|
||||||
|
|
||||||
|
#### Elasticsearch
|
||||||
|
|
||||||
|
GitHub: [https://github.com/elastic/elasticsearch](https://github.com/elastic/elasticsearch)
|
||||||
|
|
||||||
|
Elasticsearch 是一个基于 JSON 的分布式搜索和分析引擎。
|
||||||
|
无论您正在查找来自特定 IP 地址的活动,还是正在分析交易请求数量为何突然飙升,或者正在方圆一公里内搜寻美食店,我们尝试解决的这些问题归根结底都是搜索问题。通过
|
||||||
|
Elasticsearch,您可以快速存储、搜索和分析大量数据。
|
||||||
|
|
||||||
|
#### Kibana
|
||||||
|
|
||||||
|
GitHub: [https://github.com/elastic/kibana](https://github.com/elastic/kibana)
|
||||||
|
|
||||||
|
Kibana 是一个可扩展的用户界面,您可以借助它对数据进行可视化分析。
|
||||||
|
在 Kibana 中通过炫酷的可视化来探索您的数据,从华夫饼图到热点图,再到时序数据分析,应有尽有。针对多样化数据源使用预配置仪表板,创建实时演示文稿以突出显示
|
||||||
|
KPI,并使用单一 UI 来管理您的部署。
|
||||||
|
|
||||||
|
#### Integrations
|
||||||
|
|
||||||
|
通过 Integrations,您可以使用 Elastic Stack 收集并关联数据。
|
||||||
|
在收集、存储、搜索和分析数据时,发掘有价值的见解。使用 Elastic 代理、Beats
|
||||||
|
或网络爬虫等功能,从应用程序、基础架构和公共内容源中采集数据,在大量开箱即用型集成功能的加持下,分分钟即可开始工作。
|
||||||
|
|
||||||
|
## 版本介绍
|
||||||
|
|
||||||
|
### 集群模式
|
||||||
|
|
||||||
|
> 8.12.0-cluster
|
||||||
|
|
||||||
|
+ Elasticsearch 8.12.0 x3
|
||||||
|
+ Kibana 8.12.0
|
||||||
|
|
||||||
|
> 8.12.0-node
|
||||||
|
|
||||||
|
新增节点,需要填写集群信息
|
||||||
|
|
||||||
|
+ Elasticsearch 8.12.0
|
||||||
|
|
||||||
|
### 单机模式
|
||||||
|
|
||||||
|
> 8.12.0-single
|
||||||
|
|
||||||
|
+ Elasticsearch 8.12.0
|
||||||
|
+ Kibana 8.12.0
|
||||||
|
|
||||||
|
> 8.12.0-elasticsearch
|
||||||
|
|
||||||
|
+ Elasticsearch 8.12.0
|
||||||
|
|
||||||
|
> 8.12.0-kibana
|
||||||
|
|
||||||
|
+ Kibana 8.12.0
|
||||||
|
|
||||||
|
## 安装事项
|
||||||
|
|
||||||
|
### 将 vm.max_map_count 设置为至少 262144
|
||||||
|
|
||||||
|
vm.max_map_count 内核设置必须至少设置为 262144 才能用于生产。
|
||||||
|
|
||||||
|
> Linux
|
||||||
|
>
|
||||||
|
> To view the current value for the vm.max_map_count setting, run:
|
||||||
|
> ```shell
|
||||||
|
> grep vm.max_map_count /etc/sysctl.conf
|
||||||
|
> ```
|
||||||
|
> 显示值大于或等于 262144。即可,如果显示的值小于 262144,请执行以下步骤:
|
||||||
|
|
||||||
|
临时设置 vm.max_map_count
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo sysctl -w vm.max_map_count=262144
|
||||||
|
```
|
||||||
|
|
||||||
|
永久设置 vm.max_map_count
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo vi /etc/sysctl.conf
|
||||||
|
# 文件末尾添加
|
||||||
|
vm.max_map_count=262144
|
||||||
|
# 生效
|
||||||
|
sudo sysctl -p
|
||||||
|
```
|
||||||
|
|
||||||
|
### 增加 nofile 和 nproc 的 ulimit 值 最小值 65535
|
||||||
|
|
||||||
|
> Linux
|
||||||
|
>
|
||||||
|
> root 用户 与 普通用户 请注意区别很大
|
||||||
|
>
|
||||||
|
> To view the current value for the ulimit setting, run:
|
||||||
|
> ```shell
|
||||||
|
> ulimit -n
|
||||||
|
> ```
|
||||||
|
> 显示值大于或等于 65535。即可,如果显示的值小于 65535,请执行以下步骤:
|
||||||
|
|
||||||
|
临时设置 ulimit
|
||||||
|
|
||||||
|
```shell
|
||||||
|
ulimit -n 65535
|
||||||
|
```
|
||||||
|
|
||||||
|
永久设置 ulimit
|
||||||
|
|
||||||
|
**涉及服务器重启**
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo vi /etc/security/limits.conf
|
||||||
|
# 文件末尾添加
|
||||||
|
root soft nofile unlimited
|
||||||
|
root hard nofile unlimited
|
||||||
|
* soft nofile 65535
|
||||||
|
* hard nofile 65535
|
||||||
|
# 生效 重启(重启服务器后生效!!!)
|
||||||
|
sudo reboot
|
||||||
|
```
|
||||||
|
|
||||||
|
## 日志配置
|
||||||
|
|
||||||
|
当前采用 `JSON File logging driver` 记录日志
|
20
apps/elastic/data.yml
Normal file
20
apps/elastic/data.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
name: Elastic
|
||||||
|
tags:
|
||||||
|
- 中间件
|
||||||
|
title: Elastic
|
||||||
|
type: 中间件
|
||||||
|
description: 分布式、RESTful 风格的搜索和数据分析引擎
|
||||||
|
additionalProperties:
|
||||||
|
key: elastic
|
||||||
|
name: Elastic
|
||||||
|
tags:
|
||||||
|
- Middleware
|
||||||
|
shortDescZh: 分布式、RESTful 风格的搜索和数据分析引擎
|
||||||
|
shortDescEn: Distributed, RESTful search and data analytics engine
|
||||||
|
type: runtime
|
||||||
|
crossVersionUpdate: true
|
||||||
|
limit: 0
|
||||||
|
recommend: 0
|
||||||
|
website: https://www.elastic.co/
|
||||||
|
github: https://github.com/elastic
|
||||||
|
document: https://www.elastic.co/guide/index.html
|
BIN
apps/elastic/logo.png
Normal file
BIN
apps/elastic/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
@ -8,11 +8,11 @@ additionalProperties:
|
|||||||
required: true
|
required: true
|
||||||
type: select
|
type: select
|
||||||
values:
|
values:
|
||||||
- label: 主机网络模式
|
- label: 主机模式
|
||||||
value: "host"
|
value: "host"
|
||||||
- label: 桥接网络模式
|
- label: 桥接模式
|
||||||
value: "bridge"
|
value: "bridge"
|
||||||
- label: 无网络模式
|
- label: 无网络
|
||||||
value: "none"
|
value: "none"
|
||||||
- label: 1panel-network
|
- label: 1panel-network
|
||||||
value: "1panel-network"
|
value: "1panel-network"
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
@ -14,13 +16,6 @@ services:
|
|||||||
- ${PANEL_APP_PORT_HTTP}:8096
|
- ${PANEL_APP_PORT_HTTP}:8096
|
||||||
devices:
|
devices:
|
||||||
- /dev/dri:/dev/dri
|
- /dev/dri:/dev/dri
|
||||||
# - /dev/nvidia0:/dev/nvidia0
|
|
||||||
# - /dev/nvidiactl:/dev/nvidiactl
|
|
||||||
# - /dev/nvidia-modeset:/dev/nvidia-modeset
|
|
||||||
# - /dev/nvidia-nvswitchctl:/dev/nvidia-nvswitchctl
|
|
||||||
# - /dev/nvidia-uvm:/dev/nvidia-uvm
|
|
||||||
# - /dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools
|
|
||||||
# - /dev/video11:/dev/video11
|
|
||||||
volumes:
|
volumes:
|
||||||
- /etc/timezone:/etc/timezone
|
- /etc/timezone:/etc/timezone
|
||||||
- /etc/localtime:/etc/localtime
|
- /etc/localtime:/etc/localtime
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user