Compare commits

..

No commits in common. "custom" and "revert-158-renovate/casbin-casdoor-1.x" have entirely different histories.

453 changed files with 3352 additions and 8916 deletions

View File

@ -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

View File

@ -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: 新疆萌森软件开发工作室提供技术支持

182
.github/README.md vendored
View File

@ -5,19 +5,6 @@
本仓库中的所有应用不会与 `1Panel` 官方应用商店冲突(存在相同应用并不影响后续的安装与升级,择优选择你需要的版本即可)
,我们会定期更新应用,如果您有任何问题,请联系我们。
---
> [!NOTE]
> ## 2024年07月29日 公告
>
> 版本 `v1.10.13-lts` 已经支持 `env_file` 文件,但是迫于稳定性考虑,我们依旧采用固定环境变量文件的方式解决问题。
>
> 近期我们上架了很多新应用,如果您有任何问题,请联系我们。
>
> 欢迎投稿,我们会根据您的需求,上架更多的应用。
>
> 🥰 [新疆萌森软件开发工作室](https://blog.lifebus.top/) 祝您生活愉快!
> [!NOTE]
> ## 2024年07月17日 公告
>
@ -76,67 +63,52 @@
</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/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/cookie-cloud/logo.png" width="22"/> | 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 | |
| 🟢 | <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/ | 独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/elastic-elasticsearch/logo.png" width="22"/> | Elasticsearch | https://www.elastic.co/elasticsearch/ | Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎 | 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 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | Emby |
| 🟢 | <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 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/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-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/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/linkding/logo.png" width="22"/> | 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/ | 可用于生产的全栈但简单的邮件服务器 | |
| 🟢 | <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/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/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/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/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/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/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/rsshub/logo.png" width="22"/> | RssHub | https://rsshub.app/ | 从任何内容生成 RSS/Atom/JSON 订阅源 | |
| 🟢 | <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"/> | 思源笔记 | https://b3log.org/siyuan/ | 【思源笔记】一款隐私优先、自托管、完全开源的个人知识管理软件 | |
| 🟢 | <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 服务运行速度测试检查 | |
| 🟢 | <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是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <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/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/wiseflow/logo.png" width="22"/> | WiseFlow | https://github.com/TeamWiseFlow/wiseflow/ | Wiseflow 首席情报官 | |
| 🔴 | | Yarr | https://github.com/nkanaev/yarr | Rss 阅读器 | |
| 🔴 | | Ztncui | https://www.zerotier.com/ | 【自建服务端】ZeroTier 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | |
| 状态 | 图标 | 应用名称 | 应用官网 | 短的描述 | 集合 |
|:--:|:---------------------------------------------------------------------------------------:|:-----------------------:|:-----------------------------------------:|:---------------------------------------------------------------------|:---------:|
| 🟢 | <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/casdoor/logo.png" width="22"/> | Casdoor | https://casdoor.org/ | 身份和访问管理(IAM)/单点登录(SSO)平台 | |
| 🔴 | | Cookie Cloud | https://github.com/easychen/CookieCloud/ | CookieCloud是一个和自架服务器同步浏览器Cookie和LocalStorage的小工具 | |
| 🔴 | | 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/ | 面向堆栈的管理器 | |
| 🔴 | | 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/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-lovechen | https://emby.media/ | 【开心版】Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | |
| 🟢 | <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/halo/logo.png" width="22"/> | Halo | https://halo.run/ | 强大易用的开源建站工具 | |
| 🟢 | <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-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/jellyfin/logo.png" width="22"/> | Jellyfin | https://jellyfin.org/ | 自由软件媒体系统 | |
| 🔴 | | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
| 🔴 | | 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/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/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/nezha/logo.png" width="22"/> | NeZha | https://nezha.wiki/ | 【哪吒监控】开源、轻量、易用的服务器监控、运维工具 | |
| 🟢 | <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/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/qinglong/logo.png" width="22"/> | QingLong | https://github.com/whyour/qinglong/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/redis/logo.png" width="22"/> | Redis | https://redis.io/ | 从世界上最快的内存数据库创建者那里获取该数据库 | |
| 🔴 | | Sentinel | https://sentinelguard.io/ | 面向分布式、多语言异构化服务架构的流量治理组件 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/siyuan/logo.png" width="22"/> | SiYuan | https://b3log.org/siyuan/ | 【思源笔记】一款隐私优先、自托管、完全开源的个人知识管理软件 | |
| 🔴 | | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | SpeedTest |
| 🔴 | | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |
| 🔴 | | Stream-Rec | https://github.com/hua0512/stream-rec | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <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/umami/logo.png" width="22"/> | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | |
| 🔴 | | Yarr | https://github.com/nkanaev/yarr | Rss 阅读器 | |
| 🔴 | | Ztncui | https://www.zerotier.com/ | 【自建服务端】ZeroTier 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | ZeroTier |
> 说明:
>
@ -144,24 +116,16 @@
>
> 维护状态:🟢 维护中 🔴 未维护 🟡 表示不定期维护
---
## 应用安装
> 温馨提示:
> 当您已安装其他第三方库时并且存在应用冲突,安装过程中会主动删除冲突的第三方库应用,如果您不同意,请不要执行脚本。
>
> 我们建议您在安装之前备份您的数据,或手动安装。
>
> 如果您不使用 `curl` 命令,可以使用 `wget` 命令代替。
>
> 将 `curl -sSL` 替换为 `wget -qO-` 即可。
### 自动化安装
### 一键式自动化安装 <sup>`推荐`</sup>
一键式安装,无需手动操作,自动完成 1Panel应用 上架应用商店。
每三小时自动更新一次应用列表。
如果您不想每次都手动执行命令,可以使用一键式安装。我们优先推荐此方式。
```shell
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
curl -sSL https://install.lifebus.top/app_install.sh | bash
```
### 计划任务模式
## 计划任务模式
将内容写入Shell计划任务中设定定期执行。
```shell
#!/bin/bash
# 此处可以定义代理方案
script_url="https://install.lifebus.top/app_install.sh"
echo "Downloading and executing script from $script_url..."
bash <(curl -sL "$script_url")
echo "Script execution completed."
```
#### 配置脚本网络代理
如果您的网络环境需要代理,请在脚本执行前配置代理。
可将以下脚本插入到 `计划任务模式` 的脚本中。
### 配置脚本网络代理
```sh
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"
```
---
</details>
## 安装 `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
```
---
## 卸载所有本地应用
通过此脚本,您可以卸载所有本地应用,但是不会删除数据。
可能您的库中遗留了一些无用的应用,您可以通过此脚本进行清理。该脚本不影响 `自动化脚本` 的应用更新。
**此脚本必须`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]
> <img src="https://file.lifebus.top/imgs/google_gmail_logo.png" alt="Gmail" width="30"/>

31
.github/renovate.json vendored
View File

@ -3,19 +3,14 @@
"extends": [
"config:base"
],
"enabledManagers": [
"docker-compose",
"github-actions"
],
"gitIgnoredAuthors": [
"githubaction@githubaction.com"
],
"rebaseWhen": "never",
"packageRules": [
{
"matchPackageNames": [
"actions/checkout",
"renovatebot/github-action"
"packageNames": [
"docker-compose"
],
"automerge": true
},
@ -74,14 +69,32 @@
"allowedVersions": "/^4.*.*/"
},
{
"matchDatasources": [
"docker"
],
"matchPackageNames": [
"emby/embyserver"
],
"allowedVersions": "/^4\\.8\\.\\d+\\.\\d+$/"
},
{
"matchPackageNames": ["photoprism/photoprism"],
"versioning": "regex:^(\\d{2})(\\d{2})(\\d{2})$"
"matchDatasources": [
"docker"
],
"matchPackageNames": [
"ghcr.io/*"
],
"versionCompatibility": "^(?<compatibility>.*)-(?<version>.*)$",
"versioning": "semver"
},
{
"matchDatasources": [
"docker"
],
"matchPackageNames": [
"ghcr.io/*"
],
"versioning": "semver"
}
],
"prCreation": "immediate"

View File

@ -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

View File

@ -4,91 +4,23 @@
app_name=$1
old_version=$2
# 定义关联数组,将应用名称与其对应的 keys 关联起来
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)
# 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)
process_image() {
local image=$1
# 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"
fi
}
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)
# 判断 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)
image=$(yq .services.$first_service.image $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"
# Only apply changes if the format is <image>:<version>
if [[ "$image" == *":"* ]]; then
version=$(cut -d ":" -f2- <<< "$image")
# 进行后续处理
process_image "$image"
else
echo "Key $key not found in $docker_compose_file"
fi
done
# Trim the "v" prefix
trimmed_version=${version/#"v"}
# 在循环完毕后执行版本移动操作
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
mv apps/$app_name/$old_version apps/$app_name/$trimmed_version
fi
done

View File

@ -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

View File

@ -8,7 +8,6 @@ on:
manual-trigger:
description: 'Manually trigger Renovate'
default: ''
jobs:
update-app-version:
runs-on: ubuntu-latest
@ -27,16 +26,15 @@ jobs:
id: updated-files
run: |
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
run: |
IFS=' ' read -ra files <<< "${{ steps.updated-files.outputs.files }}"
for file in "${files[@]}"; do
if [[ $file == *"docker-compose.yml"* ]]; then
app_name=$(echo $file | cut -d'/' -f 2)
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
.github/workflows/renovate-app-version.sh $app_name $old_version
fi
@ -45,10 +43,11 @@ jobs:
- name: Commit & Push Changes
run: |
IFS=' ' read -ra files <<< "${{ steps.updated-files.outputs.files }}"
for file in "${files[@]}"; do
if [[ $file == *"docker-compose.yml"* ]]; then
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
fi
done

View File

@ -2,7 +2,7 @@ name: Renovate
on:
schedule:
- cron: "0 * * * *"
- cron: "0 0 * * *"
workflow_dispatch:
inputs:
manual-trigger:
@ -16,7 +16,7 @@ jobs:
- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Run Renovate
uses: renovatebot/github-action@b266b24b144602ed4f512f0773009d026722f4cc # v40.2.6
uses: renovatebot/github-action@d4cde0ac34e53942ead1619a101748e3ab842937 # v40.2.1
with:
useSlim: false
token: ${{ secrets.GITHUBTOKEN }}

View File

@ -1,145 +1,145 @@
# 应用制作说明
### 基础目录
`/app`
### 应用格式
```
├── app_name // 应用名称
├── logo.png // 应用 logo , 推荐 180 * 180 px
├── data.yml // 应用声明文件
├── README.md // 应用说明文档
├── 2.2.0 // 应用版本
│   ├── data.yml // 表单配置
| ├── scripts // 脚本目录
│   └── docker-compose.yml // docker-compose 文件
└── 2.3.2 // 应用版本
├── data.yml
├── data
└── docker-compose.yml
```
#### 应用声明文件
```yaml
# 固定参数
additionalProperties:
# 应用的 key , 仅限英文
key: app_name
# 应用名称 显示名称
name: app_show_name
# 应用标签
tags:
# 参考 tags.yml
- WebSite
# 应用中文描述, 推荐 30 字以内
shortDescZh: 应用主要概述
# 应用英文描述
shortDescEn: Application main description
# 应用类型
type: website
# 跨大版本升级
crossVersionUpdate: true
# 安装限制, 0 代表无限制
limit: 0
# 官网地址
website: https://app.com
# 仓库地址
github: https://github.com/app/app
# 文档地址
document: https://docs.app.com
```
##### 应用类型
| type | 说明 |
|---------|--------------------------------------------------------|
| website | website 类型在 1Panel 中支持在网站中一键部署,wordpress halo 都是此 type |
| runtime | mysql openresty redis 等类型的应用 |
| tool | phpMyAdmin redis-commander jenkins 等类型的应用 |
#### 脚本目录
+ `scripts` 安装脚本文件
+ `init.sh` 安装前执行
+ `upgrade.sh` 升级前执行
+ `uninstall.sh` 卸载后执行
#### 表单配置
```yaml
# 固定参数
additionalProperties:
formFields:
# 默认值
- default: ""
# 安装后可修改
edit: true
# 是否禁用
disabled: false
# 环境变量 key
envKey: PANEL_DB_HOST
# 依赖应用 key
key: mysql
# 英文标签
labelEn: Database Service
# 中文标签
labelZh: 数据库服务
# 是否必填
required: true
# 依赖服务
type: service
# 是否在默认值基础上增加随机字符
random: true
# 校验规则
rule: paramCommon
# 下拉选择
- default: ""
envKey: LOG_LEVEL
labelEn: Log level
labelZh: 日志级别
required: true
type: select
values:
- label: DEBUG
value: "DEBUG"
- label: INFO
value: "INFO"
- label: WARNING
value: "WARNING"
- label: ERROR
value: "ERROR"
- label: CRITICAL
value: "CRITICAL"
# 端口效验
- default: 3306
envKey: PANEL_APP_PORT_DB
labelEn: Database port
labelZh: 数据库端口
rule: paramPort
type: number
```
##### 字段说明
+ `type` 字段类型
+ `service` 依赖服务
+ `password` 密码
+ `text` 文本
+ `number` 数字
+ `select` 下拉框
+ `rule` 校验规则
+ `paramPort` 用于限制端口范围为 1-65535
+ `paramCommon` 英文、数字、.-和_,长度2-30
+ `paramComplexity` 支持英文、数字、.%@$!&~_-,长度6-30特殊字符不能在首尾
+ `paramExtUrl` 格式为 http(s)://(域名/ip):(端口)
+ `key` 特殊值
+ `PANEL_APP_PORT_HTTP` Web应用端口
+ `PANEL_APP_PORT_HTTPS` Web应用端口 SSL
+ `PANEL_APP_PORT` 前缀将认定为端口,并且用于安装前的端口占用校验
#### docker-compose.yml 文件
通过使用 `${envKey}` 获取`表单配置`中的值
# 应用制作说明
### 基础目录
`/app`
### 应用格式
```
├── app_name // 应用名称
├── logo.png // 应用 logo , 推荐 180 * 180 px
├── data.yml // 应用声明文件
├── README.md // 应用说明文档
├── 2.2.0 // 应用版本
│   ├── data.yml // 表单配置
| ├── scripts // 脚本目录
│   └── docker-compose.yml // docker-compose 文件
└── 2.3.2 // 应用版本
├── data.yml
├── data
└── docker-compose.yml
```
#### 应用声明文件
```yaml
# 固定参数
additionalProperties:
# 应用的 key , 仅限英文
key: app_name
# 应用名称 显示名称
name: app_show_name
# 应用标签
tags:
# 参考 tags.yml
- WebSite
# 应用中文描述, 推荐 30 字以内
shortDescZh: 应用主要概述
# 应用英文描述
shortDescEn: Application main description
# 应用类型
type: website
# 跨大版本升级
crossVersionUpdate: true
# 安装限制, 0 代表无限制
limit: 0
# 官网地址
website: https://app.com
# 仓库地址
github: https://github.com/app/app
# 文档地址
document: https://docs.app.com
```
##### 应用类型
| type | 说明 |
|---------|--------------------------------------------------------|
| website | website 类型在 1Panel 中支持在网站中一键部署,wordpress halo 都是此 type |
| runtime | mysql openresty redis 等类型的应用 |
| tool | phpMyAdmin redis-commander jenkins 等类型的应用 |
#### 脚本目录
+ `scripts` 安装脚本文件
+ `init.sh` 安装前执行
+ `upgrade.sh` 升级前执行
+ `uninstall.sh` 卸载后执行
#### 表单配置
```yaml
# 固定参数
additionalProperties:
formFields:
# 默认值
- default: ""
# 安装后可修改
edit: true
# 是否禁用
disabled: false
# 环境变量 key
envKey: PANEL_DB_HOST
# 依赖应用 key
key: mysql
# 英文标签
labelEn: Database Service
# 中文标签
labelZh: 数据库服务
# 是否必填
required: true
# 依赖服务
type: service
# 是否在默认值基础上增加随机字符
random: true
# 校验规则
rule: paramCommon
# 下拉选择
- default: ""
envKey: LOG_LEVEL
labelEn: Log level
labelZh: 日志级别
required: true
type: select
values:
- label: DEBUG
value: "DEBUG"
- label: INFO
value: "INFO"
- label: WARNING
value: "WARNING"
- label: ERROR
value: "ERROR"
- label: CRITICAL
value: "CRITICAL"
# 端口效验
- default: 3306
envKey: PANEL_APP_PORT_DB
labelEn: Database port
labelZh: 数据库端口
rule: paramPort
type: number
```
##### 字段说明
+ `type` 字段类型
+ `service` 依赖服务
+ `password` 密码
+ `text` 文本
+ `number` 数字
+ `select` 下拉框
+ `rule` 校验规则
+ `paramPort` 用于限制端口范围为 1-65535
+ `paramCommon` 英文、数字、.-和_,长度2-30
+ `paramComplexity` 支持英文、数字、.%@$!&~_-,长度6-30特殊字符不能在首尾
+ `paramExtUrl` 格式为 http(s)://(域名/ip):(端口)
+ `key` 特殊值
+ `PANEL_APP_PORT_HTTP` Web应用端口
+ `PANEL_APP_PORT_HTTPS` Web应用端口 SSL
+ `PANEL_APP_PORT` 前缀将认定为端口,并且用于安装前的端口占用校验
#### docker-compose.yml 文件
通过使用 `${envKey}` 获取`表单配置`中的值

181
README.md
View File

@ -5,16 +5,6 @@
本仓库中的所有应用不会与 `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;">
<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>
@ -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>
</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/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/cookie-cloud/logo.png" width="22"/> | 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 | |
| 🟢 | <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/ | 独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/elastic-elasticsearch/logo.png" width="22"/> | Elasticsearch | https://www.elastic.co/elasticsearch/ | Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎 | 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 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | Emby |
| 🟢 | <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 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/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-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/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/linkding/logo.png" width="22"/> | 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/ | 可用于生产的全栈但简单的邮件服务器 | |
| 🟢 | <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/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/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/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/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/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/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/rsshub/logo.png" width="22"/> | RssHub | https://rsshub.app/ | 从任何内容生成 RSS/Atom/JSON 订阅源 | |
| 🟢 | <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"/> | 思源笔记 | https://b3log.org/siyuan/ | 【思源笔记】一款隐私优先、自托管、完全开源的个人知识管理软件 | |
| 🟢 | <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 服务运行速度测试检查 | |
| 🟢 | <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是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <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/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/wiseflow/logo.png" width="22"/> | WiseFlow | https://github.com/TeamWiseFlow/wiseflow/ | Wiseflow 首席情报官 | |
| 🔴 | | Yarr | https://github.com/nkanaev/yarr | Rss 阅读器 | |
| 🔴 | | Ztncui | https://www.zerotier.com/ | 【自建服务端】ZeroTier 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | |
| 状态 | 图标 | 应用名称 | 应用官网 | 短的描述 | 集合 |
|:--:|:---------------------------------------------------------------------------------------:|:-----------------------:|:-----------------------------------------:|:---------------------------------------------------------------------|:---------:|
| 🟢 | <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/casdoor/logo.png" width="22"/> | Casdoor | https://casdoor.org/ | 身份和访问管理(IAM)/单点登录(SSO)平台 | |
| 🔴 | | Cookie Cloud | https://github.com/easychen/CookieCloud/ | CookieCloud是一个和自架服务器同步浏览器Cookie和LocalStorage的小工具 | |
| 🔴 | | 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/ | 面向堆栈的管理器 | |
| 🔴 | | 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/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-lovechen | https://emby.media/ | 【开心版】Emby Server 是一款个人媒体服务器,可在几乎所有设备上运行应用程序 | |
| 🟢 | <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/halo/logo.png" width="22"/> | Halo | https://halo.run/ | 强大易用的开源建站工具 | |
| 🟢 | <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-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/jellyfin/logo.png" width="22"/> | Jellyfin | https://jellyfin.org/ | 自由软件媒体系统 | |
| 🔴 | | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
| 🔴 | | 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/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/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/nezha/logo.png" width="22"/> | NeZha | https://nezha.wiki/ | 【哪吒监控】开源、轻量、易用的服务器监控、运维工具 | |
| 🟢 | <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/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/qinglong/logo.png" width="22"/> | QingLong | https://github.com/whyour/qinglong/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/redis/logo.png" width="22"/> | Redis | https://redis.io/ | 从世界上最快的内存数据库创建者那里获取该数据库 | |
| 🔴 | | Sentinel | https://sentinelguard.io/ | 面向分布式、多语言异构化服务架构的流量治理组件 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/siyuan/logo.png" width="22"/> | SiYuan | https://b3log.org/siyuan/ | 【思源笔记】一款隐私优先、自托管、完全开源的个人知识管理软件 | |
| 🔴 | | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | SpeedTest |
| 🔴 | | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |
| 🔴 | | Stream-Rec | https://github.com/hua0512/stream-rec | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
| 🟢 | <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/umami/logo.png" width="22"/> | Umami | https://umami.is/ | 为速度和效率而构建的网站分析 | |
| 🔴 | | Yarr | https://github.com/nkanaev/yarr | Rss 阅读器 | |
| 🔴 | | Ztncui | https://www.zerotier.com/ | 【自建服务端】ZeroTier 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | ZeroTier |
> 说明:
>
@ -127,32 +102,24 @@
>
> 维护状态:🟢 维护中 🔴 未维护 🟡 表示不定期维护
---
## 应用安装
> 温馨提示:
> 当您已安装其他第三方库时并且存在应用冲突,安装过程中会主动删除冲突的第三方库应用,如果您不同意,请不要执行脚本。
>
> 我们建议您在安装之前备份您的数据,或手动安装。
>
> 如果您不使用 `curl` 命令,可以使用 `wget` 命令代替。
>
> 将 `curl -sSL` 替换为 `wget -qO-` 即可。
### 自动化安装
### 方案一:自动化安装
一键式安装,无需手动操作,自动完成 1Panel应用 上架应用商店
如果您不想每次都手动执行命令,可以使用一键式安装。我们优先推荐此方式。
每三小时自动更新一次应用列表。
```sh
```shell
curl -sSL https://install.lifebus.top/auto_install.sh | bash
```
> 卸载自动化脚本 (不会卸载应用)
```sh
```shell
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
```
### 计划任务模式
### 方案三:计划任务模式
将内容写入Shell计划任务中设定定期执行。
```sh
```shell
#!/bin/bash
# 此处可以定义代理方案
script_url="https://install.lifebus.top/app_install.sh"
echo "Downloading and executing script from $script_url..."
bash <(curl -sL "$script_url")
echo "Script execution completed."
```
#### 配置脚本网络代理
如果您的网络环境需要代理,请在脚本执行前配置代理。
可将以下脚本插入到 `计划任务模式` 的脚本中。
```sh
proxy_protocols="http"
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"
```
---
## 安装 `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
```
---
## 卸载所有本地应用
通过此脚本,您可以卸载所有本地应用,但是不会删除数据。
可能您的库中遗留了一些无用的应用,您可以通过此脚本进行清理。该脚本不影响 `自动化脚本` 的应用更新。
**此脚本必须`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;">

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -1,9 +1,10 @@
version: "3.8"
networks:
1panel-network:
external: true
services:
alist-aria2:
image: xhofe/alist-aria2:v3.36.0
image: xhofe/alist-aria2:v3.35.0
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"

View File

@ -5,7 +5,6 @@ if [ -f .env ]; then
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "Check Finish."

View File

@ -5,7 +5,6 @@ if [ -f .env ]; then
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "Check Finish."

View File

@ -4,8 +4,6 @@
![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;
}
```
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)

View File

@ -1,9 +1,9 @@
name: Alist Aira2插件版
name: Alist
title: 文件列表程序
description: 一个支持多种存储的文件列表程序
additionalProperties:
key: alist-aria2
name: Alist Aira2插件版
key: alist
name: Alist
tags:
- WebSite
- Storage

View File

@ -1,9 +1,10 @@
version: "3.8"
networks:
1panel-network:
external: true
services:
alist:
image: xhofe/alist:v3.36.0
image: xhofe/alist:v3.35.0-ffmpeg
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"

View File

@ -5,7 +5,6 @@ if [ -f .env ]; then
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "Check Finish."

View File

@ -5,7 +5,6 @@ if [ -f .env ]; then
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "Check Finish."

View File

@ -4,8 +4,6 @@
![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;
}
```
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)

View File

@ -1,9 +1,9 @@
name: Alist FFMpeg插件版
name: Alist
title: 文件列表程序
description: 一个支持多种存储的文件列表程序
additionalProperties:
key: alist-ffmpeg
name: Alist FFMpeg插件版
key: alist
name: Alist
tags:
- WebSite
- Storage

View File

@ -1,9 +1,10 @@
version: "3.8"
networks:
1panel-network:
external: true
services:
alist:
image: xhofe/alist:v3.36.0-ffmpeg
image: xhofe/alist:v3.35.0
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"

View File

@ -5,7 +5,6 @@ if [ -f .env ]; then
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "Check Finish."

View File

@ -5,7 +5,6 @@ if [ -f .env ]; then
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "Check Finish."

View File

@ -4,8 +4,6 @@
![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;
}
```
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)

View File

@ -18,21 +18,21 @@ additionalProperties:
- default: ""
edit: true
envKey: BARK_SERVER_DSN
labelZh: 数据库链接
labelEn: Database URL
labelZh: 数据库链接
required: false
type: text
- default: ""
edit: true
envKey: BARK_SERVER_BASIC_AUTH_USER
labelZh: 用户名 (服务基础验证)
labelEn: Basic Auth User
labelZh: 用户名 (服务基础验证)
required: false
type: text
- default: ""
edit: true
envKey: BARK_SERVER_BASIC_AUTH_PASSWORD
labelZh: 密码 (服务基础验证)
labelEn: Basic Auth Password
labelZh: 密码 (服务基础验证)
required: false
type: text

View File

@ -1,3 +1,5 @@
version: "3.8"
networks:
1panel-network:
external: true

View File

@ -5,7 +5,6 @@ if [ -f .env ]; then
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "Check Finish."

View File

@ -5,7 +5,6 @@ if [ -f .env ]; then
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "Check Finish."

View File

@ -4,8 +4,6 @@
![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发送推送。
@ -119,7 +117,3 @@ curl -X "POST" "https://api.day.app/push" \
| group | 对消息进行分组推送将按group分组显示在通知中心中。 也可在历史消息列表中选择查看不同的群组。 |
| isArchive | 传 1 保存推送传其他的不保存推送不传按APP内设置来决定是否保存。 |
| url | 点击推送时跳转的URL 支持URL Scheme 和 Universal Link |
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)

View File

@ -1,10 +1,12 @@
version: "3.8"
networks:
1panel-network:
external: true
services:
casdoor:
image: casbin/casdoor:v1.675.0
image: casbin/casdoor:v1.648.0
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"

View File

@ -5,7 +5,6 @@ if [ -f .env ]; then
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
if [ "$DB_TYPE" == "mysql" ]; then

View File

@ -5,7 +5,6 @@ if [ -f .env ]; then
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "Check Finish."

View File

@ -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

View File

@ -5,8 +5,6 @@ Casdoor 是一个 UI 优先的身份访问管理 (IAM)/单点登录 (SSO) 平台
![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)平台。
@ -89,7 +87,3 @@ volumes:
```
其中 `./config/init_data.json` 为默认配置文件所在路径,您可以根据实际情况进行修改为自定义绝对文件路径即可。
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)

View File

@ -3,9 +3,7 @@
CookieCloud 是一个用于将 cookie 与您的自托管服务器同步的小工具,允许您将浏览器 cookie
和本地存储同步到您的手机和云端。它具有内置的端到端加密功能,并允许您设置同步间隔。
![CookieCloud](https://file.lifebus.top/imgs/cookie_cloud_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)
![CookieCloud](https://github.com/easychen/CookieCloud/blob/master/images/20230121092535.png)
## 浏览器插件
@ -19,7 +17,3 @@ CookieCloud 是一个用于将 cookie 与您的自托管服务器同步的小工
+ 该浏览器扩展正式支持 Chrome 和 Edge。其他基于 Chromium 的浏览器可能可以工作,但尚未经过测试。使用源代码 cd extension &&
pnpm build --target=firefox-mv2 自行编译Firefox版本。
+ 请注意Firefox 的 cookie 格式与 Chrome 的不同,并且它们不能混合。
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)

View File

@ -1,3 +1,5 @@
version: "3.8"
networks:
1panel-network:
external: true
@ -13,8 +15,7 @@ services:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:8088
env_file:
- /etc/1panel/envs/global.env
- ${ENV_FILE:-/etc/1panel/envs/default.env}
volumes:
- ${COOKIECLOUD_ROOT_PATH}/data:/data/api/data
env_file:
- .env

View File

@ -3,11 +3,6 @@
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

View File

@ -3,11 +3,6 @@
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

View File

@ -1,3 +1,5 @@
version: "3.8"
networks:
1panel-network:
external: true
@ -12,9 +14,8 @@ services:
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:1188
env_file:
- /etc/1panel/envs/global.env
- ${ENV_FILE:-/etc/1panel/envs/default.env}
- ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP:-1188}
environment:
- PORT=1188
- PORT=${PANEL_APP_PORT_HTTP:-1188}
env_file:
- .env

View File

@ -3,11 +3,6 @@
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

View File

@ -3,11 +3,6 @@
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

View File

@ -2,9 +2,7 @@
强大的 DeepL 翻译 API
![DeepLX](https://file.lifebus.top/imgs/deeplx_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)
![DeepLX](https://static.deepl.com/img/appDownload/macos_app_download.svg)
## 简介
@ -115,7 +113,3 @@ http://<username>:<password>@127.0.0.1:7890
> 其他参数与免费端点相同。
>
> 更多官方API配置请参考 [DeepL 官方文档](https://developers.deepl.com/docs/api-reference/translate)
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)

View File

@ -6,7 +6,7 @@ additionalProperties:
key: deeplx
name: DeepLX
tags:
- Tool
- WebSite
- Middleware
- Local
shortDescZh: DeepL 免费API

View File

@ -1,3 +1,5 @@
version: "3.8"
networks:
1panel-network:
external: true

View File

@ -4,8 +4,6 @@
![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 文件
@ -19,7 +17,3 @@
命令与它们交互
+ 🚄 反应式 - 一切都是响应式的。进度Pull/Up/Down和终端输出是实时的
+ 🐣 易于使用且精美的 UI - 如果您喜欢 Uptime Kuma 的 UI/UX您也会喜欢这个
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View 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"

View 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"

View File

@ -0,0 +1,2 @@
cluster.name: "docker-cluster"
network.host: 0.0.0.0

View 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

View 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

View 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

View 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"

View 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"

View 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

View 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"

View 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"

View File

@ -0,0 +1,2 @@
cluster.name: "docker-cluster"
network.host: 0.0.0.0

View 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

View 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

View 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
View 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
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -8,11 +8,11 @@ additionalProperties:
required: true
type: select
values:
- label: 主机网络模式
- label: 主机模式
value: "host"
- label: 桥接网络模式
- label: 桥接模式
value: "bridge"
- label: 无网络模式
- label: 无网络
value: "none"
- label: 1panel-network
value: "1panel-network"

Some files were not shown because too many files have changed in this diff Show More