forked from Ms-Studio/appstore-1panel
Compare commits
465 Commits
revert-158
...
custom
Author | SHA1 | Date | |
---|---|---|---|
830ec95115 | |||
9fc00e3344 | |||
ba2277326b | |||
30703e34ab | |||
2d692c631d | |||
3b793c9348 | |||
9eb1bd23b3 | |||
|
ea62d72265 | ||
|
5101a8d54a | ||
|
d6973c43f8 | ||
|
6f09265744 | ||
36be513592 | |||
9f82da6589 | |||
|
11223ed545 | ||
|
f4a96c488b | ||
8e958111d0 | |||
|
5f889346f1 | ||
|
4ee1edd0cf | ||
ef7a2fe529 | |||
e83d28b56f | |||
|
fc360ef3c8 | ||
|
ec45631875 | ||
dd4edfe18f | |||
addb2f75b5 | |||
07e55ab636 | |||
6ec9b2894c | |||
536500bf12 | |||
47748f43e9 | |||
ce53268226 | |||
f554324c92 | |||
b72deee3a0 | |||
3da1ab4306 | |||
52bddb737d | |||
|
3598ce9867 | ||
|
50ef16303e | ||
492329c76a | |||
fce685b929 | |||
44d8a9efcf | |||
d40e1f82ab | |||
ff2c91341f | |||
2a90118f95 | |||
96ce2ead8d | |||
412ce58360 | |||
b01b7f18cf | |||
1cc2ca3bca | |||
|
5d81688600 | ||
|
5c3dd25141 | ||
|
a98319c1a9 | ||
|
c44231d4f1 | ||
2ee396c80d | |||
011bd98b76 | |||
7e84de121d | |||
|
b903002b83 | ||
|
a2dfadfd1b | ||
|
b756743e53 | ||
|
a386e9d800 | ||
|
eee9a77998 | ||
|
7b42efcae9 | ||
1b69ebc73f | |||
9b98321743 | |||
38fd46d88b | |||
14d088d4d7 | |||
|
80824736e7 | ||
|
f9892e643c | ||
c2766dd799 | |||
70388714ce | |||
|
dbad47ccd8 | ||
|
294c05b6a3 | ||
a9c03eebb6 | |||
825e266e21 | |||
|
77982635d5 | ||
|
9f181a62f9 | ||
|
723e08ae76 | ||
|
53f8ff1f83 | ||
da46524555 | |||
|
8df6b31cef | ||
|
3e1b61e990 | ||
873ad0db4e | |||
523cd1f7ce | |||
f8981d6ebb | |||
|
c2a92efb4d | ||
|
5c40b0721b | ||
|
27df6a6aed | ||
|
41acc42fb3 | ||
|
276bf65747 | ||
|
112945a8ac | ||
af3e370870 | |||
ca47bb9f29 | |||
96cefaa065 | |||
40fe10c75a | |||
|
b69677534f | ||
|
271bb465cd | ||
7a29d528e2 | |||
2ad56a93db | |||
1b00432c7e | |||
|
088dd395ca | ||
|
50a449b14e | ||
d009743ed8 | |||
7e8d5deba4 | |||
399c671f7c | |||
a175c436a7 | |||
2f1d379db4 | |||
5fd910b611 | |||
62b76962a0 | |||
|
87d5cd3fb6 | ||
|
5d4a27ba9e | ||
fab4c4a8a1 | |||
2717cf8240 | |||
97758e825d | |||
a00d276c22 | |||
0fe3a2795e | |||
|
20c2886f65 | ||
|
d45a808b6f | ||
fa4937b697 | |||
123dd0a6b8 | |||
b858752280 | |||
d4e17336f9 | |||
5809e22bfc | |||
7c4707027d | |||
e16a328695 | |||
|
c9387003cb | ||
|
1f5fb1dfcb | ||
|
0a0c0349b9 | ||
|
8ef0f02866 | ||
c1766db115 | |||
aad70afd8e | |||
5c61def7a4 | |||
ef5e567519 | |||
2cdc2bf4e0 | |||
3767157421 | |||
821f03d72e | |||
|
f198d3e77b | ||
|
4d50992654 | ||
fc22f1df8f | |||
60848ed856 | |||
|
c5394d56fe | ||
|
1f69ca9d2b | ||
a2b3fe40db | |||
531f28093d | |||
1462ce869a | |||
|
8fe25551f0 | ||
|
6904f9ff85 | ||
c3a50a6032 | |||
07fb32c1df | |||
53b2915fe4 | |||
464e7e5dd1 | |||
c7fd10d5eb | |||
|
0daa72415c | ||
|
bbaa8afdef | ||
|
b4c67bba4d | ||
|
730c750707 | ||
|
f4f081444f | ||
|
bb6ea0d1d0 | ||
|
6126f68440 | ||
|
4e7d3e3b22 | ||
1ddfbefd4b | |||
|
bf710f3ff9 | ||
fddab4c618 | |||
d5ac86c4b0 | |||
|
6b7cc01f74 | ||
|
11b1659668 | ||
|
80318ba385 | ||
|
ed4100d826 | ||
3622df0ba2 | |||
5e1ffa5b16 | |||
46c52b7173 | |||
17538c740e | |||
3807e982b6 | |||
|
432745bec7 | ||
|
091afaf977 | ||
|
1d70210dce | ||
|
55019eccef | ||
ae17097ec7 | |||
|
fb094d626b | ||
|
30d66df847 | ||
bbddb16223 | |||
89266e0144 | |||
|
279699c19f | ||
|
52b7e5455c | ||
|
c6d931f8a6 | ||
|
44decde2ee | ||
b59ff11ef9 | |||
e4841305cf | |||
ae4001b2a6 | |||
2f875f742f | |||
|
3c045985ff | ||
|
30337b854c | ||
|
373cfa6446 | ||
|
8f23e89f93 | ||
9323131d7c | |||
|
07d12fa5f6 | ||
|
277792d931 | ||
917d25bf7f | |||
|
374255e49c | ||
|
f8c3062b6d | ||
fdc5c8f1b1 | |||
e2181ecf67 | |||
df465e7cf1 | |||
15f4a49f59 | |||
8ba72fd83a | |||
e33258b501 | |||
fc73ca3e73 | |||
10b50528ce | |||
7b8c7e1b0a | |||
7525f0359a | |||
2b60eb2121 | |||
|
9723bd4763 | ||
|
81a58cd889 | ||
a601ee8dbe | |||
aa3ae0454f | |||
80d3c8fea8 | |||
4e2bd52f50 | |||
ca608c3c41 | |||
|
75685776ca | ||
|
72db13f489 | ||
b987471e58 | |||
6d3ba95e94 | |||
|
c2556b5905 | ||
|
eabe4c2a79 | ||
f421adbd44 | |||
127895a1dd | |||
|
7ab5b5cea1 | ||
|
8d2ec4d4af | ||
f7baf38fb8 | |||
8aa54527e0 | |||
0dc218e63a | |||
c1a8b33bc7 | |||
5025b2dd6b | |||
|
dd1de6639a | ||
def6d096d8 | |||
54e1a60d68 | |||
870f6bdeb0 | |||
1d466ed6d5 | |||
|
7560c47ff3 | ||
|
50b70cfad5 | ||
9646dbcfb0 | |||
3f0ec70ce1 | |||
1e107ab565 | |||
744d6da2cc | |||
8ea749644c | |||
4df150d432 | |||
|
65214f6ec2 | ||
1364bc601d | |||
89fb71d1f2 | |||
|
ed7c57b850 | ||
|
6b69e0148d | ||
c6a0c291bd | |||
|
92ca1979b3 | ||
|
3cc7896af8 | ||
884d5591ba | |||
52f9540d82 | |||
c78ba501c4 | |||
5f5192cf3a | |||
|
1f816f4d9c | ||
|
c8ced291b8 | ||
|
eff80696cc | ||
|
7da4eeadf7 | ||
0aff8aacd0 | |||
|
63994c64aa | ||
|
b57b01a52e | ||
a2468163c4 | |||
ca413095a6 | |||
d7e5fba868 | |||
a293cfcf10 | |||
bd6c2b97d9 | |||
a3f5b63123 | |||
|
9665b25f87 | ||
|
b4ee32dbe9 | ||
83a64eb6fa | |||
|
54594fdc32 | ||
|
2720870faa | ||
44cc7ec94f | |||
|
06f4ba71a7 | ||
|
cb2d98d940 | ||
2ef2c8c788 | |||
|
d0e8bfd016 | ||
|
3b4a75e496 | ||
cb7f698651 | |||
|
40d8c2edaf | ||
|
6fc5915395 | ||
|
cfcb635f64 | ||
c82a546544 | |||
|
c16d3888b5 | ||
|
49bec56520 | ||
6a0a3bfaed | |||
|
19c4f2b1f2 | ||
|
66d76d157d | ||
afac05d408 | |||
b84540be31 | |||
c79abf72a0 | |||
|
76e6c78fbc | ||
|
d646994991 | ||
1d08d5a88f | |||
|
8d56f1287f | ||
|
8e57426584 | ||
cbf901374e | |||
9cd5da9691 | |||
f8fa0c6eac | |||
97dd72d5fd | |||
fc7b736fc7 | |||
5149f9a851 | |||
0215e38900 | |||
e476c8b914 | |||
73b5d95a50 | |||
2f2be49879 | |||
a545ef8d50 | |||
a08bc0f190 | |||
|
ff43b245f5 | ||
|
07b7ae6813 | ||
ae1fb650dd | |||
4b0171fd4a | |||
c202a260c5 | |||
e8384836b9 | |||
29879251cc | |||
8ab45b88c8 | |||
9c28866f65 | |||
bf6c0cca79 | |||
8ad2c25a4f | |||
|
6fc6ac085b | ||
|
de4825e3b3 | ||
1009d0739d | |||
9706ac15c3 | |||
|
e201cd1cd9 | ||
4898e5ef6c | |||
|
955a08b5db | ||
|
cd534649da | ||
9bc274fa0d | |||
6e04d59dfa | |||
115b875d50 | |||
907c29e58f | |||
dd93b8cc6f | |||
6f82218e86 | |||
60767e63fa | |||
6e13561f5e | |||
c02d67bbdf | |||
58c7219afb | |||
1e3b21d749 | |||
3edecc9b4a | |||
e923dfc25f | |||
a007ff6cda | |||
c1a6ecfd4c | |||
daec1473f8 | |||
db42ef548b | |||
70849058f9 | |||
ff3ff2a1ba | |||
|
1f088806a8 | ||
|
e79e974bfc | ||
d39589686c | |||
10ebc2a92f | |||
77e24b9376 | |||
|
0b06dd825e | ||
|
951b7a2166 | ||
6ce33c645c | |||
c00ad8fbf6 | |||
2291d63391 | |||
1cceb8e77d | |||
9b9b692df6 | |||
238fbcc957 | |||
0b60c7688a | |||
31da094bf3 | |||
|
7eccae401a | ||
|
401d0a98b7 | ||
c6b9fdec7e | |||
78b0acae02 | |||
f4918db509 | |||
fe03b4e21f | |||
f27b7f569a | |||
57b03ec45e | |||
|
dba6437456 | ||
|
0389b54228 | ||
e8cb593b59 | |||
a2439ae921 | |||
e041a2df4e | |||
33a6eba1af | |||
e3f709ed9d | |||
|
4b308dbc91 | ||
|
dfd7c3c3fc | ||
|
dfc1795f5f | ||
|
5c213e0cbf | ||
88d80e0598 | |||
|
fa9e2655b6 | ||
|
02aa2b4171 | ||
f51a09158c | |||
d0f81112ed | |||
|
7417fa7d00 | ||
|
036544a48d | ||
|
01f8de689d | ||
|
ca08b69f30 | ||
ef39e04e2e | |||
86b6b6d65c | |||
ff71bfb839 | |||
531b2d304c | |||
9635354efe | |||
f689185e64 | |||
dd98108397 | |||
01e4bfa39d | |||
3524ac9aba | |||
77557c0c2a | |||
036b4eed6f | |||
d22f540d57 | |||
a31c2165d7 | |||
9f66e9b60e | |||
9ee960867e | |||
60e070c3d0 | |||
|
9e6cf4b395 | ||
|
a65ec105cb | ||
1ff8c7657d | |||
8a8f8a23e0 | |||
76a2c70e1a | |||
8e39031a9b | |||
862d477c80 | |||
506a66f5a8 | |||
79219ecf13 | |||
096235bb48 | |||
ea754dd677 | |||
1cfc0dac31 | |||
3a335222d4 | |||
829a4bc8c7 | |||
04633fce36 | |||
a2963ff872 | |||
feca8c24f7 | |||
efad6b6c81 | |||
4b049fea8b | |||
91ed4a32b6 | |||
9ca9ff8701 | |||
1b93ecf79c | |||
|
e42037d0b2 | ||
|
6da6f04f9f | ||
610c5aa7b1 | |||
b569bc9b3b | |||
0f7374c954 | |||
523b5584ca | |||
4e903153af | |||
4e94a8314e | |||
1177bb2114 | |||
b812094a23 | |||
169c351f2c | |||
d28320380e | |||
afb7bb31e1 | |||
b7ca4493b2 | |||
|
cbaca2c622 | ||
4754aefbfa | |||
46b46f26d5 | |||
23aa48e3ee | |||
70cdff1f9b | |||
b041a499b8 | |||
9e3e1c82a5 | |||
|
9f31ec30d0 | ||
|
6b9691153d | ||
|
30656d8f1f | ||
|
43939461dc | ||
|
8eb269b379 | ||
|
fe3fa86ba6 | ||
45048f7171 | |||
a2d9b8988a | |||
e7c6ee9ab5 | |||
|
52a9663504 | ||
|
4616df00f6 | ||
2fa4674686 | |||
2cb9bce0a0 | |||
4e64abfda1 | |||
3bfeec8630 | |||
|
12a73b5306 | ||
|
9a607dc8a0 | ||
ea4046590e |
69
.github/ISSUE_TEMPLATE/app.yml
vendored
Normal file
69
.github/ISSUE_TEMPLATE/app.yml
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
name: 💡 提交应用
|
||||
description: 提交您想要添加到 1Panel 的应用
|
||||
title: "[应用提交]"
|
||||
labels: app
|
||||
assignees: QYG2297248353
|
||||
body:
|
||||
- type: markdown
|
||||
id: base_info
|
||||
attributes:
|
||||
value: "## 基本信息"
|
||||
- type: input
|
||||
id: version
|
||||
validations:
|
||||
required: true
|
||||
attributes:
|
||||
label: "1Panel 版本号"
|
||||
description: "请提供您的 1Panel 版本号"
|
||||
- type: input
|
||||
id: email
|
||||
validations:
|
||||
required: true
|
||||
attributes:
|
||||
label: "邮箱"
|
||||
description: "请提供您的邮箱"
|
||||
- type: dropdown
|
||||
id: app_type
|
||||
validations:
|
||||
required: true
|
||||
attributes:
|
||||
label: "应用类型"
|
||||
multiple: false
|
||||
options:
|
||||
- 开源
|
||||
- 闭源
|
||||
- 半开源
|
||||
default: 0
|
||||
- type: input
|
||||
id: app_url
|
||||
validations:
|
||||
required: true
|
||||
attributes:
|
||||
label: "应用链接"
|
||||
description: "请提供应用的 Docker Hub 或 GitHub 或 官网 链接"
|
||||
- type: input
|
||||
id: app_name
|
||||
attributes:
|
||||
label: "应用名称"
|
||||
description: "请提供应用的名称"
|
||||
- type: input
|
||||
id: app_version
|
||||
attributes:
|
||||
label: "应用版本"
|
||||
description: "请提供应用的版本"
|
||||
- type: textarea
|
||||
id: details
|
||||
attributes:
|
||||
label: "应用描述"
|
||||
description: "请提供应用的描述"
|
||||
placeholder: "简单描述需要上架的理由"
|
||||
- type: checkboxes
|
||||
id: authorization
|
||||
attributes:
|
||||
label: 条款确认
|
||||
description: "请确认您已阅读并同意以下条款"
|
||||
options:
|
||||
- label: "我已确认该应用 允许在 中国大陆 使用"
|
||||
required: true
|
||||
- label: "我已确认该应用 符合 中国大陆 相关法律法规"
|
||||
required: true
|
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: 博客论坛
|
||||
url: https://blog.lifebus.top/
|
||||
about: 总能找到你想要的
|
||||
- name: 萌森工作室
|
||||
url: https://www.tianyancha.com/company/6145984989
|
||||
about: 新疆萌森软件开发工作室提供技术支持
|
124
.github/README.md
vendored
124
.github/README.md
vendored
@ -5,6 +5,19 @@
|
||||
本仓库中的所有应用不会与 `1Panel` 官方应用商店冲突(存在相同应用并不影响后续的安装与升级,择优选择你需要的版本即可)
|
||||
,我们会定期更新应用,如果您有任何问题,请联系我们。
|
||||
|
||||
---
|
||||
|
||||
> [!NOTE]
|
||||
> ## 2024年07月29日 公告
|
||||
>
|
||||
> 版本 `v1.10.13-lts` 已经支持 `env_file` 文件,但是迫于稳定性考虑,我们依旧采用固定环境变量文件的方式解决问题。
|
||||
>
|
||||
> 近期我们上架了很多新应用,如果您有任何问题,请联系我们。
|
||||
>
|
||||
> 欢迎投稿,我们会根据您的需求,上架更多的应用。
|
||||
>
|
||||
> 🥰 [新疆萌森软件开发工作室](https://blog.lifebus.top/) 祝您生活愉快!
|
||||
|
||||
> [!NOTE]
|
||||
> ## 2024年07月17日 公告
|
||||
>
|
||||
@ -63,52 +76,67 @@
|
||||
|
||||
</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)平台 | |
|
||||
| 🔴 | | 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/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/ | 面向堆栈的管理器 | |
|
||||
| 🔴 | | 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/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/ | 自由软件媒体系统 | |
|
||||
| 🔴 | | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
|
||||
| 🔴 | | MinIO | https://min.io/ | MinIO 是一种高性能、兼容 S3 的对象存储 | |
|
||||
| 🟢 | <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"/> | QingLong | https://github.com/whyour/qinglong/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | |
|
||||
| 🟢 | <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/ | 从世界上最快的内存数据库创建者那里获取该数据库 | |
|
||||
| 🔴 | | 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 |
|
||||
| 🟢 | <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 服务运行速度测试检查 | |
|
||||
| 🔴 | | Stream-Rec | https://github.com/hua0512/stream-rec | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
|
||||
| 🟢 | <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 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | ZeroTier |
|
||||
| 🔴 | | Ztncui | https://www.zerotier.com/ | 【自建服务端】ZeroTier 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | |
|
||||
|
||||
> 说明:
|
||||
>
|
||||
@ -116,16 +144,24 @@
|
||||
>
|
||||
> 维护状态:🟢 维护中 🔴 未维护 🟡 表示不定期维护
|
||||
|
||||
---
|
||||
|
||||
## 应用安装
|
||||
|
||||
> 温馨提示:
|
||||
> 当您已安装其他第三方库时并且存在应用冲突,安装过程中会主动删除冲突的第三方库应用,如果您不同意,请不要执行脚本。
|
||||
>
|
||||
> 我们建议您在安装之前备份您的数据,或手动安装。
|
||||
>
|
||||
> 如果您不使用 `curl` 命令,可以使用 `wget` 命令代替。
|
||||
>
|
||||
> 将 `curl -sSL` 替换为 `wget -qO-` 即可。
|
||||
|
||||
### 一键式自动化安装 <sup>`推荐`</sup>
|
||||
### 自动化安装
|
||||
|
||||
如果您不想每次都手动执行命令,可以使用一键式安装。我们优先推荐此方式。
|
||||
一键式安装,无需手动操作,自动完成 1Panel应用 上架应用商店。
|
||||
|
||||
每三小时自动更新一次应用列表。
|
||||
|
||||
```shell
|
||||
curl -sSL https://install.lifebus.top/auto_install.sh | bash
|
||||
@ -145,34 +181,37 @@ 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"
|
||||
@ -182,7 +221,7 @@ export http_proxy="$proxy_protocols://$proxy_server:$proxy_port"
|
||||
export https_proxy="$proxy_protocols://$proxy_server:$proxy_port"
|
||||
```
|
||||
|
||||
</details>
|
||||
---
|
||||
|
||||
## 安装 `Pre 尝鲜版` 应用
|
||||
|
||||
@ -202,8 +241,35 @@ 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` 命令
|
||||
+ 升级失败
|
||||
+ 检查网络状况与磁盘空间
|
||||
+ 配置镜像地址
|
||||
@ -219,13 +285,17 @@ curl -sSL https://install.lifebus.top/pre_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
31
.github/renovate.json
vendored
@ -3,14 +3,19 @@
|
||||
"extends": [
|
||||
"config:base"
|
||||
],
|
||||
"enabledManagers": [
|
||||
"docker-compose",
|
||||
"github-actions"
|
||||
],
|
||||
"gitIgnoredAuthors": [
|
||||
"githubaction@githubaction.com"
|
||||
],
|
||||
"rebaseWhen": "never",
|
||||
"packageRules": [
|
||||
{
|
||||
"packageNames": [
|
||||
"docker-compose"
|
||||
"matchPackageNames": [
|
||||
"actions/checkout",
|
||||
"renovatebot/github-action"
|
||||
],
|
||||
"automerge": true
|
||||
},
|
||||
@ -69,32 +74,14 @@
|
||||
"allowedVersions": "/^4.*.*/"
|
||||
},
|
||||
{
|
||||
"matchDatasources": [
|
||||
"docker"
|
||||
],
|
||||
"matchPackageNames": [
|
||||
"emby/embyserver"
|
||||
],
|
||||
"allowedVersions": "/^4\\.8\\.\\d+\\.\\d+$/"
|
||||
},
|
||||
{
|
||||
"matchDatasources": [
|
||||
"docker"
|
||||
],
|
||||
"matchPackageNames": [
|
||||
"ghcr.io/*"
|
||||
],
|
||||
"versionCompatibility": "^(?<compatibility>.*)-(?<version>.*)$",
|
||||
"versioning": "semver"
|
||||
},
|
||||
{
|
||||
"matchDatasources": [
|
||||
"docker"
|
||||
],
|
||||
"matchPackageNames": [
|
||||
"ghcr.io/*"
|
||||
],
|
||||
"versioning": "semver"
|
||||
"matchPackageNames": ["photoprism/photoprism"],
|
||||
"versioning": "regex:^(\\d{2})(\\d{2})(\\d{2})$"
|
||||
}
|
||||
],
|
||||
"prCreation": "immediate"
|
||||
|
23
.github/workflows/push_custom_to_released.yml
vendored
Normal file
23
.github/workflows/push_custom_to_released.yml
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
name: Push custom to released
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 */3 * *'
|
||||
|
||||
jobs:
|
||||
push-branch:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: custom
|
||||
|
||||
- name: Push to released branch
|
||||
run: |
|
||||
git config --global user.name "${{ github.actor }}"
|
||||
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
|
||||
git remote set-url origin https://x-access-token:${{ secrets.GITHUBTOKEN }}@github.com/${{ github.repository }}.git
|
||||
git push origin custom:released --force
|
84
.github/workflows/renovate-app-version.sh
vendored
84
.github/workflows/renovate-app-version.sh
vendored
@ -4,23 +4,91 @@
|
||||
app_name=$1
|
||||
old_version=$2
|
||||
|
||||
# find all docker-compose files under apps/$app_name (there should be only one)
|
||||
# 定义关联数组,将应用名称与其对应的 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)
|
||||
docker_compose_files=$(find apps/$app_name/$old_version -name docker-compose.yml)
|
||||
|
||||
for docker_compose_file in $docker_compose_files
|
||||
do
|
||||
# Assuming that the app version will be from the first docker image
|
||||
first_service=$(yq '.services | keys | .[0]' $docker_compose_file)
|
||||
|
||||
image=$(yq .services.$first_service.image $docker_compose_file)
|
||||
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"}
|
||||
|
||||
mv apps/$app_name/$old_version apps/$app_name/$trimmed_version
|
||||
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"
|
||||
|
||||
# 判断 app_name 是否在关联数组中
|
||||
if [[ -n "${app_keys[$app_name]}" ]]; then
|
||||
echo "$app_name is in the app_keys list."
|
||||
# 获取对应的 keys
|
||||
IFS=' ' read -r -a keys <<< "${app_keys[$app_name]}"
|
||||
for key in "${keys[@]}"; do
|
||||
echo "Processing key: $key"
|
||||
first_service=$(yq ".services | keys | .[] | select(. == \"$key\")" $docker_compose_file)
|
||||
|
||||
if [[ -n "$first_service" ]]; then
|
||||
image=$(yq .services.$first_service.image $docker_compose_file)
|
||||
echo "Found image for service $first_service: $image"
|
||||
|
||||
# 进行后续处理
|
||||
process_image "$image"
|
||||
else
|
||||
echo "Key $key not found in $docker_compose_file"
|
||||
fi
|
||||
done
|
||||
|
||||
# 在循环完毕后执行版本移动操作
|
||||
if [[ -n "$cleaned_version" ]]; then
|
||||
mv apps/$app_name/$old_version apps/$app_name/$cleaned_version
|
||||
echo "Moved $old_version to $cleaned_version"
|
||||
else
|
||||
echo "Could not determine version for image: $image"
|
||||
fi
|
||||
else
|
||||
echo "$app_name is not in the app_keys list. Processing first service normally."
|
||||
first_service=$(yq '.services | keys | .[0]' $docker_compose_file)
|
||||
|
||||
image=$(yq .services.$first_service.image $docker_compose_file)
|
||||
echo "Found image: $image"
|
||||
|
||||
# 进行后续处理
|
||||
process_image "$image"
|
||||
|
||||
# 在处理第一个服务后执行版本移动操作
|
||||
if [[ -n "$cleaned_version" ]]; then
|
||||
mv apps/$app_name/$old_version apps/$app_name/$cleaned_version
|
||||
echo "Moved $old_version to $cleaned_version"
|
||||
else
|
||||
echo "Could not determine version for image: $image"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
56
.github/workflows/renovate-app-version.sh.bac
vendored
Normal file
56
.github/workflows/renovate-app-version.sh.bac
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
#!/bin/bash
|
||||
# This script copies the version from docker-compose.yml to config.json.
|
||||
|
||||
app_name=$1
|
||||
old_version=$2
|
||||
|
||||
echo "Processing app: $app_name, old version: $old_version"
|
||||
|
||||
# Find all docker-compose files under apps/$app_name (there should be only one)
|
||||
docker_compose_files=$(find apps/$app_name/$old_version -name docker-compose.yml)
|
||||
|
||||
for docker_compose_file in $docker_compose_files
|
||||
do
|
||||
echo "Processing docker-compose file: $docker_compose_file"
|
||||
|
||||
# Assuming that the app version will be from the first docker image
|
||||
first_service=$(yq '.services | keys | .[0]' $docker_compose_file)
|
||||
|
||||
image=$(yq .services.$first_service.image $docker_compose_file)
|
||||
|
||||
echo "Found image: $image"
|
||||
|
||||
# Only apply changes if the format is <image>:<version>
|
||||
if [[ "$image" == *":"* ]]; then
|
||||
version=$(cut -d ":" -f2- <<< "$image")
|
||||
|
||||
echo "Extracted version: $version"
|
||||
|
||||
# Trim the "v" prefix
|
||||
trimmed_version=${version/#"v"}
|
||||
|
||||
echo "Trimmed version: $trimmed_version"
|
||||
|
||||
# Remove any suffixes (like -ffmpeg) for versioning purposes
|
||||
cleaned_version=$(echo $trimmed_version | grep -oE '^[0-9]+(\.[0-9]+){0,4}')
|
||||
|
||||
echo "Cleaned version: $cleaned_version"
|
||||
|
||||
# Handle special versions with dates and other formats
|
||||
if [[ -z "$cleaned_version" && "$trimmed_version" =~ ^RELEASE\.[0-9]{4}-[0-9]{2}-[0-9]{2} ]]; then
|
||||
# Handle minio version format RELEASE.YYYY-MM-DDTHH-MM-SSZ
|
||||
cleaned_version=$(echo $trimmed_version | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}')
|
||||
fi
|
||||
|
||||
echo "Final version: $cleaned_version"
|
||||
|
||||
# Move to the new versioned directory
|
||||
if [[ -n "$cleaned_version" ]]; then
|
||||
mv apps/$app_name/$old_version apps/$app_name/$cleaned_version
|
||||
|
||||
echo "Moved $old_version to $cleaned_version"
|
||||
else
|
||||
echo "Could not determine version for image: $image"
|
||||
fi
|
||||
fi
|
||||
done
|
7
.github/workflows/renovate-app-version.yml
vendored
7
.github/workflows/renovate-app-version.yml
vendored
@ -8,6 +8,7 @@ on:
|
||||
manual-trigger:
|
||||
description: 'Manually trigger Renovate'
|
||||
default: ''
|
||||
|
||||
jobs:
|
||||
update-app-version:
|
||||
runs-on: ubuntu-latest
|
||||
@ -26,15 +27,16 @@ 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
|
||||
@ -43,11 +45,10 @@ 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
|
||||
|
||||
|
4
.github/workflows/renovate.yml
vendored
4
.github/workflows/renovate.yml
vendored
@ -2,7 +2,7 @@ name: Renovate
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
- cron: "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@d4cde0ac34e53942ead1619a101748e3ab842937 # v40.2.1
|
||||
uses: renovatebot/github-action@b266b24b144602ed4f512f0773009d026722f4cc # v40.2.6
|
||||
with:
|
||||
useSlim: false
|
||||
token: ${{ secrets.GITHUBTOKEN }}
|
||||
|
123
README.md
123
README.md
@ -5,6 +5,16 @@
|
||||
本仓库中的所有应用不会与 `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>
|
||||
@ -49,52 +59,67 @@
|
||||
<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)平台 | |
|
||||
| 🔴 | | 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/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/ | 面向堆栈的管理器 | |
|
||||
| 🔴 | | 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/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/ | 自由软件媒体系统 | |
|
||||
| 🔴 | | LinkDing | https://github.com/sissbruecker/linkding/ | 自托管书签管理器 | |
|
||||
| 🔴 | | MinIO | https://min.io/ | MinIO 是一种高性能、兼容 S3 的对象存储 | |
|
||||
| 🟢 | <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"/> | QingLong | https://github.com/whyour/qinglong/ | 【青龙】支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台 | |
|
||||
| 🟢 | <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/ | 从世界上最快的内存数据库创建者那里获取该数据库 | |
|
||||
| 🔴 | | 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 |
|
||||
| 🟢 | <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 服务运行速度测试检查 | |
|
||||
| 🔴 | | Stream-Rec | https://github.com/hua0512/stream-rec | Stream-rec是一个用于各种流媒体服务的自动流媒体录制工具 | |
|
||||
| 🟢 | <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 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | ZeroTier |
|
||||
| 🔴 | | Ztncui | https://www.zerotier.com/ | 【自建服务端】ZeroTier 可让您构建几乎任何类型的现代化安全多点虚拟化网络 | |
|
||||
|
||||
> 说明:
|
||||
>
|
||||
@ -102,24 +127,32 @@
|
||||
>
|
||||
> 维护状态:🟢 维护中 🔴 未维护 🟡 表示不定期维护
|
||||
|
||||
---
|
||||
|
||||
## 应用安装
|
||||
|
||||
> 温馨提示:
|
||||
> 当您已安装其他第三方库时并且存在应用冲突,安装过程中会主动删除冲突的第三方库应用,如果您不同意,请不要执行脚本。
|
||||
>
|
||||
> 我们建议您在安装之前备份您的数据,或手动安装。
|
||||
>
|
||||
> 如果您不使用 `curl` 命令,可以使用 `wget` 命令代替。
|
||||
>
|
||||
> 将 `curl -sSL` 替换为 `wget -qO-` 即可。
|
||||
|
||||
### 方案一:自动化安装
|
||||
### 自动化安装
|
||||
|
||||
如果您不想每次都手动执行命令,可以使用一键式安装。我们优先推荐此方式。
|
||||
一键式安装,无需手动操作,自动完成 1Panel应用 上架应用商店。
|
||||
|
||||
```shell
|
||||
每三小时自动更新一次应用列表。
|
||||
|
||||
```sh
|
||||
curl -sSL https://install.lifebus.top/auto_install.sh | bash
|
||||
```
|
||||
|
||||
> 卸载自动化脚本 (不会卸载应用)
|
||||
|
||||
```shell
|
||||
```sh
|
||||
curl -sSL https://install.lifebus.top/auto_uninstall.sh | bash
|
||||
```
|
||||
|
||||
@ -131,33 +164,38 @@ curl -sSL https://install.lifebus.top/auto_uninstall.sh | bash
|
||||
|
||||
+ 应用数据目录:`${应用持久化目录}`
|
||||
|
||||
### 方案二:手动安装
|
||||
### 手动安装模式
|
||||
|
||||
应用的升级与更新均需要重新执行安装脚本。
|
||||
更新时机由自己把握,手动执行命令。
|
||||
|
||||
#### 手动执行模式
|
||||
|
||||
```shell
|
||||
```sh
|
||||
curl -sSL https://install.lifebus.top/app_install.sh | bash
|
||||
```
|
||||
|
||||
### 方案三:计划任务模式
|
||||
### 计划任务模式
|
||||
|
||||
将内容写入Shell计划任务中,设定定期执行。
|
||||
|
||||
```shell
|
||||
```sh
|
||||
#!/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"
|
||||
@ -166,6 +204,8 @@ export http_proxy="$proxy_protocols://$proxy_server:$proxy_port"
|
||||
export https_proxy="$proxy_protocols://$proxy_server:$proxy_port"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 安装 `Pre 尝鲜版` 应用
|
||||
|
||||
> 说明:
|
||||
@ -184,8 +224,35 @@ 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` 命令
|
||||
+ 升级失败
|
||||
+ 检查网络状况与磁盘空间
|
||||
+ 配置镜像地址
|
||||
@ -201,12 +268,16 @@ curl -sSL https://install.lifebus.top/pre_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;">
|
||||
|
17
apps/acg-faka/1.3.1/data.yml
Normal file
17
apps/acg-faka/1.3.1/data.yml
Normal file
@ -0,0 +1,17 @@
|
||||
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
|
20
apps/acg-faka/1.3.1/docker-compose.yml
Normal file
20
apps/acg-faka/1.3.1/docker-compose.yml
Normal file
@ -0,0 +1,20 @@
|
||||
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
|
@ -5,6 +5,7 @@ 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."
|
@ -5,6 +5,7 @@ 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."
|
77
apps/acg-faka/README.md
Normal file
77
apps/acg-faka/README.md
Normal file
@ -0,0 +1,77 @@
|
||||
# 异次元店铺系统
|
||||
|
||||
二次元发卡系统
|
||||
|
||||
![异次元店铺系统](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)
|
18
apps/acg-faka/data.yml
Normal file
18
apps/acg-faka/data.yml
Normal file
@ -0,0 +1,18 @@
|
||||
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/
|
BIN
apps/acg-faka/logo.png
Normal file
BIN
apps/acg-faka/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.8 KiB |
@ -1,10 +1,9 @@
|
||||
version: "3.8"
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
services:
|
||||
alist-aria2:
|
||||
image: xhofe/alist-aria2:v3.35.0
|
||||
image: xhofe/alist-aria2:v3.36.0
|
||||
container_name: ${CONTAINER_NAME}
|
||||
labels:
|
||||
createdBy: "Apps"
|
@ -5,6 +5,7 @@ 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."
|
@ -5,6 +5,7 @@ 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."
|
@ -4,6 +4,8 @@
|
||||
|
||||
![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,3 +84,7 @@ location / {
|
||||
client_max_body_size 20000m;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
||||
|
@ -1,9 +1,9 @@
|
||||
name: Alist
|
||||
name: Alist Aira2插件版
|
||||
title: 文件列表程序
|
||||
description: 一个支持多种存储的文件列表程序
|
||||
additionalProperties:
|
||||
key: alist
|
||||
name: Alist
|
||||
key: alist-aria2
|
||||
name: Alist Aira2插件版
|
||||
tags:
|
||||
- WebSite
|
||||
- Storage
|
||||
|
@ -1,10 +1,9 @@
|
||||
version: "3.8"
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
services:
|
||||
alist:
|
||||
image: xhofe/alist:v3.35.0
|
||||
image: xhofe/alist:v3.36.0-ffmpeg
|
||||
container_name: ${CONTAINER_NAME}
|
||||
labels:
|
||||
createdBy: "Apps"
|
@ -5,6 +5,7 @@ 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."
|
@ -5,6 +5,7 @@ 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."
|
@ -4,6 +4,8 @@
|
||||
|
||||
![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,3 +84,7 @@ location / {
|
||||
client_max_body_size 20000m;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
||||
|
@ -1,9 +1,9 @@
|
||||
name: Alist
|
||||
name: Alist FFMpeg插件版
|
||||
title: 文件列表程序
|
||||
description: 一个支持多种存储的文件列表程序
|
||||
additionalProperties:
|
||||
key: alist
|
||||
name: Alist
|
||||
key: alist-ffmpeg
|
||||
name: Alist FFMpeg插件版
|
||||
tags:
|
||||
- WebSite
|
||||
- Storage
|
||||
|
@ -1,10 +1,9 @@
|
||||
version: "3.8"
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
services:
|
||||
alist:
|
||||
image: xhofe/alist:v3.35.0-ffmpeg
|
||||
image: xhofe/alist:v3.36.0
|
||||
container_name: ${CONTAINER_NAME}
|
||||
labels:
|
||||
createdBy: "Apps"
|
@ -5,6 +5,7 @@ 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."
|
@ -5,6 +5,7 @@ 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."
|
@ -4,6 +4,8 @@
|
||||
|
||||
![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)
|
||||
|
||||
## 特性
|
||||
|
||||
+ 使用简单
|
||||
@ -80,3 +82,7 @@ location / {
|
||||
client_max_body_size 20000m;
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
||||
|
@ -18,21 +18,21 @@ additionalProperties:
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: BARK_SERVER_DSN
|
||||
labelEn: Database URL
|
||||
labelZh: 数据库链接
|
||||
labelEn: Database URL
|
||||
required: false
|
||||
type: text
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: BARK_SERVER_BASIC_AUTH_USER
|
||||
labelEn: Basic Auth User
|
||||
labelZh: 用户名 (服务基础验证)
|
||||
labelEn: Basic Auth User
|
||||
required: false
|
||||
type: text
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: BARK_SERVER_BASIC_AUTH_PASSWORD
|
||||
labelEn: Basic Auth Password
|
||||
labelZh: 密码 (服务基础验证)
|
||||
labelEn: Basic Auth Password
|
||||
required: false
|
||||
type: text
|
||||
|
@ -1,5 +1,3 @@
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
|
@ -5,6 +5,7 @@ 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."
|
||||
|
@ -5,6 +5,7 @@ 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."
|
||||
|
@ -4,6 +4,8 @@
|
||||
|
||||
![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发送推送。
|
||||
@ -117,3 +119,7 @@ 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)
|
||||
|
@ -1,12 +1,10 @@
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
|
||||
services:
|
||||
casdoor:
|
||||
image: casbin/casdoor:v1.648.0
|
||||
image: casbin/casdoor:v1.675.0
|
||||
container_name: ${CONTAINER_NAME}
|
||||
labels:
|
||||
createdBy: "Apps"
|
@ -5,6 +5,7 @@ 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
|
15
apps/casdoor/1.675.0/scripts/upgrade.sh
Normal file
15
apps/casdoor/1.675.0/scripts/upgrade.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
sed -i '/^ENV_FILE=/d' .env
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
@ -5,6 +5,8 @@ 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)平台。
|
||||
@ -87,3 +89,7 @@ volumes:
|
||||
```
|
||||
|
||||
其中 `./config/init_data.json` 为默认配置文件所在路径,您可以根据实际情况进行修改为自定义绝对文件路径即可。
|
||||
|
||||
---
|
||||
|
||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
||||
|
@ -3,7 +3,9 @@
|
||||
CookieCloud 是一个用于将 cookie 与您的自托管服务器同步的小工具,允许您将浏览器 cookie
|
||||
和本地存储同步到您的手机和云端。它具有内置的端到端加密功能,并允许您设置同步间隔。
|
||||
|
||||
![CookieCloud](https://github.com/easychen/CookieCloud/blob/master/images/20230121092535.png)
|
||||
![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)
|
||||
|
||||
## 浏览器插件
|
||||
|
||||
@ -17,3 +19,7 @@ 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)
|
||||
|
@ -1,5 +1,3 @@
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
@ -15,7 +13,8 @@ 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
|
||||
|
@ -3,6 +3,11 @@
|
||||
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
|
||||
|
@ -3,6 +3,11 @@
|
||||
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
|
||||
|
@ -1,5 +1,3 @@
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
@ -14,8 +12,9 @@ services:
|
||||
networks:
|
||||
- 1panel-network
|
||||
ports:
|
||||
- ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP:-1188}
|
||||
environment:
|
||||
- PORT=${PANEL_APP_PORT_HTTP:-1188}
|
||||
- ${PANEL_APP_PORT_HTTP}:1188
|
||||
env_file:
|
||||
- .env
|
||||
- /etc/1panel/envs/global.env
|
||||
- ${ENV_FILE:-/etc/1panel/envs/default.env}
|
||||
environment:
|
||||
- PORT=1188
|
||||
|
@ -3,6 +3,11 @@
|
||||
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
|
||||
|
@ -3,6 +3,11 @@
|
||||
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
|
||||
|
@ -2,7 +2,9 @@
|
||||
|
||||
强大的 DeepL 翻译 API
|
||||
|
||||
![DeepLX](https://static.deepl.com/img/appDownload/macos_app_download.svg)
|
||||
![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)
|
||||
|
||||
## 简介
|
||||
|
||||
@ -113,3 +115,7 @@ 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)
|
||||
|
@ -6,7 +6,7 @@ additionalProperties:
|
||||
key: deeplx
|
||||
name: DeepLX
|
||||
tags:
|
||||
- WebSite
|
||||
- Tool
|
||||
- Middleware
|
||||
- Local
|
||||
shortDescZh: DeepL 免费API
|
||||
|
@ -1,5 +1,3 @@
|
||||
version: "3.8"
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
|
@ -4,6 +4,8 @@
|
||||
|
||||
![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 文件
|
||||
@ -17,3 +19,7 @@
|
||||
命令与它们交互
|
||||
+ 🚄 反应式 - 一切都是响应式的。进度(Pull/Up/Down)和终端输出是实时的
|
||||
+ 🐣 易于使用且精美的 UI - 如果您喜欢 Uptime Kuma 的 UI/UX,您也会喜欢这个
|
||||
|
||||
---
|
||||
|
||||
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)
|
||||
|
101
apps/dujiaoka/2.0.7/data.yml
Normal file
101
apps/dujiaoka/2.0.7/data.yml
Normal file
@ -0,0 +1,101 @@
|
||||
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"
|
32
apps/dujiaoka/2.0.7/docker-compose.yml
Normal file
32
apps/dujiaoka/2.0.7/docker-compose.yml
Normal file
@ -0,0 +1,32 @@
|
||||
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
|
15
apps/dujiaoka/2.0.7/scripts/init.sh
Normal file
15
apps/dujiaoka/2.0.7/scripts/init.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
sed -i '/^ENV_FILE=/d' .env
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
15
apps/dujiaoka/2.0.7/scripts/upgrade.sh
Normal file
15
apps/dujiaoka/2.0.7/scripts/upgrade.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
sed -i '/^ENV_FILE=/d' .env
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
48
apps/dujiaoka/README.md
Normal file
48
apps/dujiaoka/README.md
Normal file
@ -0,0 +1,48 @@
|
||||
# 独角数卡
|
||||
|
||||
🦄独角数卡(自动售货系统)-开源站长自动化售货解决方案、高效、稳定、快速!🚀🚀🎉🎉
|
||||
|
||||
![异次元店铺系统](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)
|
18
apps/dujiaoka/data.yml
Normal file
18
apps/dujiaoka/data.yml
Normal file
@ -0,0 +1,18 @@
|
||||
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/
|
BIN
apps/dujiaoka/logo.png
Normal file
BIN
apps/dujiaoka/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.9 KiB |
60
apps/elastic-elasticsearch/8.15.0/data.yml
Normal file
60
apps/elastic-elasticsearch/8.15.0/data.yml
Normal file
@ -0,0 +1,60 @@
|
||||
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
|
35
apps/elastic-elasticsearch/8.15.0/docker-compose.yml
Normal file
35
apps/elastic-elasticsearch/8.15.0/docker-compose.yml
Normal file
@ -0,0 +1,35 @@
|
||||
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
|
21
apps/elastic-elasticsearch/8.15.0/scripts/init.sh
Normal file
21
apps/elastic-elasticsearch/8.15.0/scripts/init.sh
Normal file
@ -0,0 +1,21 @@
|
||||
#!/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
|
15
apps/elastic-elasticsearch/8.15.0/scripts/upgrade.sh
Normal file
15
apps/elastic-elasticsearch/8.15.0/scripts/upgrade.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
sed -i '/^ENV_FILE=/d' .env
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
105
apps/elastic-elasticsearch/README.md
Normal file
105
apps/elastic-elasticsearch/README.md
Normal file
@ -0,0 +1,105 @@
|
||||
# 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)
|
18
apps/elastic-elasticsearch/data.yml
Normal file
18
apps/elastic-elasticsearch/data.yml
Normal file
@ -0,0 +1,18 @@
|
||||
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/
|
BIN
apps/elastic-elasticsearch/logo.png
Normal file
BIN
apps/elastic-elasticsearch/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 51 KiB |
24
apps/elastic-kibana/8.15.0/data.yml
Normal file
24
apps/elastic-kibana/8.15.0/data.yml
Normal file
@ -0,0 +1,24 @@
|
||||
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
|
27
apps/elastic-kibana/8.15.0/docker-compose.yml
Normal file
27
apps/elastic-kibana/8.15.0/docker-compose.yml
Normal file
@ -0,0 +1,27 @@
|
||||
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
|
20
apps/elastic-kibana/8.15.0/scripts/init.sh
Normal file
20
apps/elastic-kibana/8.15.0/scripts/init.sh
Normal file
@ -0,0 +1,20 @@
|
||||
#!/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
|
15
apps/elastic-kibana/8.15.0/scripts/upgrade.sh
Normal file
15
apps/elastic-kibana/8.15.0/scripts/upgrade.sh
Normal file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f .env ]; then
|
||||
source .env
|
||||
|
||||
# setup-1 add default values
|
||||
CURRENT_DIR=$(pwd)
|
||||
sed -i '/^ENV_FILE=/d' .env
|
||||
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||
|
||||
echo "Check Finish."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
fi
|
58
apps/elastic-kibana/README.md
Normal file
58
apps/elastic-kibana/README.md
Normal file
@ -0,0 +1,58 @@
|
||||
# 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)
|
19
apps/elastic-kibana/data.yml
Normal file
19
apps/elastic-kibana/data.yml
Normal file
@ -0,0 +1,19 @@
|
||||
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/
|
BIN
apps/elastic-kibana/logo.png
Normal file
BIN
apps/elastic-kibana/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
@ -1,94 +0,0 @@
|
||||
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"
|
@ -1,289 +0,0 @@
|
||||
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"
|
@ -1,2 +0,0 @@
|
||||
cluster.name: "docker-cluster"
|
||||
network.host: 0.0.0.0
|
@ -1,85 +0,0 @@
|
||||
#!/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
|
@ -1,4 +0,0 @@
|
||||
server.host: "0.0.0.0"
|
||||
server.shutdownTimeout: "5s"
|
||||
elasticsearch.hosts: [ "http://localhost:9200" ]
|
||||
monitoring.ui.container.elasticsearch.enabled: true
|
@ -1,21 +0,0 @@
|
||||
#!/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
|
@ -1,99 +0,0 @@
|
||||
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"
|
@ -1,84 +0,0 @@
|
||||
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"
|
@ -1,31 +0,0 @@
|
||||
#!/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
|
@ -1,89 +0,0 @@
|
||||
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"
|
@ -1,159 +0,0 @@
|
||||
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"
|
@ -1,2 +0,0 @@
|
||||
cluster.name: "docker-cluster"
|
||||
network.host: 0.0.0.0
|
@ -1,63 +0,0 @@
|
||||
#!/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
|
@ -1,4 +0,0 @@
|
||||
server.host: "0.0.0.0"
|
||||
server.shutdownTimeout: "5s"
|
||||
elasticsearch.hosts: [ "http://localhost:9200" ]
|
||||
monitoring.ui.container.elasticsearch.enabled: true
|
@ -1,21 +0,0 @@
|
||||
#!/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
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user