Compare commits

..

6977 Commits

Author SHA1 Message Date
Mr Chen
afdccefa98 Merge pull request #885 from midoks/dev
0.18.6
2026-04-15 20:00:09 +08:00
e1fd0a5535 Delete r3.9.txt 2026-04-15 19:54:42 +08:00
15d2cd7342 update 2026-04-15 19:53:22 +08:00
Mr Chen
f5fda8b71f Merge pull request #884 from midoks/dev
紧急‼️更新。计划任务修改未鉴权
2026-04-15 19:33:41 +08:00
8586dbbe8b Update site_default.py 2026-04-15 19:32:07 +08:00
c508c71f60 Update __init__.py 2026-04-15 19:28:57 +08:00
Mr Chen
33cabc8e2d Merge pull request #883 from midoks/dev
简单优化
2026-04-15 17:33:09 +08:00
e244d477e2 Update mw.tpl 2026-04-15 17:08:47 +08:00
c2f81e182a update 2026-04-15 17:02:25 +08:00
d7c68cfaa9 Update mw.tpl 2026-04-15 16:42:15 +08:00
b1aa5b8183 Update install.sh 2026-04-15 16:34:01 +08:00
877b1dacf8 Update mw.tpl 2026-04-15 16:28:58 +08:00
8eef664e50 Update mw.tpl 2026-04-15 16:28:16 +08:00
f0581f5038 Update mw.tpl 2026-04-15 16:27:42 +08:00
0b584d48b8 up 2026-04-15 16:06:58 +08:00
9199875c51 Update mw.tpl 2026-04-15 15:41:19 +08:00
e062cc4870 Update __init__.py 2026-04-15 15:10:36 +08:00
2ba4d87b75 Update mw.tpl 2026-04-15 15:08:37 +08:00
4b4c0df77d update 2026-04-15 14:03:21 +08:00
b5e4f32fa5 Update __init__.py 2026-04-15 13:56:05 +08:00
27ca45b088 Update http.tpl 2026-04-15 13:45:02 +08:00
345e38a560 Create http.tpl 2026-04-15 13:26:43 +08:00
176e4c8b3e update 2026-04-15 13:22:15 +08:00
81083dd30c Delete test_apache_install.sh 2026-04-14 18:31:17 +08:00
9a5a09438e Update mw.tpl 2026-04-14 18:26:12 +08:00
f17447b2f1 Update mw.tpl 2026-04-14 18:11:18 +08:00
930eb14a8a Update mw.tpl 2026-04-14 18:04:35 +08:00
08951f8c2e Update mw.tpl 2026-04-14 18:00:02 +08:00
c74bb01c3c Update mw.tpl 2026-04-14 17:53:14 +08:00
34b9b189d4 Update mw.tpl 2026-04-14 17:43:22 +08:00
960aca266e Update mw.tpl 2026-04-14 17:32:55 +08:00
840e04dc55 Update index.py 2026-04-12 12:01:09 +08:00
defaf3f970 Update index.py 2026-04-12 12:01:02 +08:00
b8b2349b6c update 2026-04-12 11:49:35 +08:00
c3c4671f76 update 2026-04-12 11:23:54 +08:00
d9811d9d50 Update index.py 2026-04-12 11:10:47 +08:00
da515f8595 Update install.sh 2026-04-11 23:57:37 +08:00
467a8af504 Update httpd.conf 2026-04-11 23:55:46 +08:00
ed16571d44 Update install.sh 2026-04-11 23:53:49 +08:00
6d06f1fbce update 2026-04-11 23:53:31 +08:00
9a59b2ad3f Update install.sh 2026-04-11 23:51:33 +08:00
1dc03ca5ae Update httpd.service.tpl 2026-04-11 22:13:45 +08:00
260de6eae5 Update index.py 2026-04-11 22:05:27 +08:00
2458377010 Update index.py 2026-04-11 22:03:17 +08:00
d4a7f2bbc8 Update httpd.conf 2026-04-11 21:59:01 +08:00
1b8b009b58 Update httpd.conf 2026-04-11 21:55:10 +08:00
a6623058b5 Update httpd.conf 2026-04-11 21:52:11 +08:00
aa385a5e30 Update httpd.conf 2026-04-11 21:51:03 +08:00
67e9113b48 Update index.py 2026-04-11 21:45:10 +08:00
9667279bf6 Update index.py 2026-04-11 21:44:45 +08:00
84e94c1122 update 2026-04-11 21:43:44 +08:00
12fd04b296 Update index.py 2026-04-11 21:34:11 +08:00
2e5ab39fee Update install.sh 2026-04-11 21:32:54 +08:00
b975fedfee update 2026-04-11 21:24:15 +08:00
0670bca67d Update index.py 2026-04-11 21:00:23 +08:00
9a976fdd3c update 2026-04-11 20:56:29 +08:00
91d189cf00 Update index.py 2026-04-11 20:45:19 +08:00
b97e0df6c5 Update index.py 2026-04-11 20:44:54 +08:00
e966df976f Update index.py 2026-04-11 20:42:40 +08:00
530347c847 Update index.py 2026-04-11 20:41:55 +08:00
fc5acaf0be Update index.py 2026-04-11 20:40:07 +08:00
affea597bf Update index.py 2026-04-11 20:38:39 +08:00
732ad976bf Update index.py 2026-04-11 20:37:11 +08:00
b0133162f0 Update index.py 2026-04-11 20:36:30 +08:00
0fa462c385 Update index.py 2026-04-11 20:36:17 +08:00
f7d7ee6b43 update 2026-04-11 20:30:00 +08:00
b769b79b9a update 2026-04-11 20:23:44 +08:00
320001b3a3 Update httpd.service.tpl 2026-04-11 20:14:46 +08:00
5c53bb3853 up 2026-04-11 19:10:59 +08:00
584ac773b3 Update install.sh 2026-04-11 17:01:44 +08:00
be6e034153 Update install.sh 2026-04-11 16:57:04 +08:00
b85bb698d0 up 2026-04-11 16:56:03 +08:00
ecab1a45b9 up 2026-04-11 16:46:12 +08:00
d3a7f7a732 Update install.sh 2026-04-11 16:34:01 +08:00
30b106c5c2 Update install.sh 2026-04-11 16:32:44 +08:00
5b8148b83d Update install.sh 2026-04-11 16:32:04 +08:00
a973696501 Update install.sh 2026-04-11 16:30:49 +08:00
5bb5ad7ba8 Update install.sh 2026-04-11 16:22:08 +08:00
72188223ae Update install.sh 2026-04-11 16:19:02 +08:00
4fbd037af1 update 2026-04-11 16:18:12 +08:00
9789ab6e37 Update index.py 2026-04-11 15:04:56 +08:00
f766039139 caddy 2026-04-11 15:01:26 +08:00
9aad09be9a Update install.sh 2026-04-11 13:02:33 +08:00
Mr Chen
ea07a3e3ce Merge pull request #879 from midoks/dev
php pgsql扩展
2026-04-10 17:44:02 +08:00
4e9ea630d7 Update phplib.conf 2026-04-10 17:39:25 +08:00
c4aeecdf3a Update phplib.conf 2026-04-10 17:38:55 +08:00
ab36c69729 Update phplib.conf 2026-04-10 17:35:32 +08:00
ade7d1f735 Update phplib.conf 2026-04-10 17:33:13 +08:00
5c7d62c59b update 2026-04-10 17:31:20 +08:00
772de4e67b update 2026-04-10 17:29:14 +08:00
Mr Chen
2505f3904d Merge pull request #878 from midoks/dev
软件更新
2026-04-10 17:25:35 +08:00
ea06ede236 update 2026-04-10 16:40:29 +08:00
d9132fad5a update 2026-04-10 16:34:32 +08:00
b20148b93f update 2026-04-10 16:21:58 +08:00
41dde8a164 Update info.json 2026-04-10 16:14:31 +08:00
c83c4b052b update 2026-04-10 16:12:34 +08:00
3dad8258df Update setting.py 2026-04-08 22:58:17 +08:00
60f358510c Update nginx.conf 2026-04-08 19:03:54 +08:00
Mr Chen
46e5e5fbdc Merge pull request #876 from midoks/dev
常规优化
2026-04-08 00:24:22 +08:00
6561a63956 Update nginx.conf 2026-04-08 00:03:10 +08:00
9a390616ad Update nginx.conf 2026-04-08 00:02:27 +08:00
815ede7e1a Update nginx.conf 2026-04-08 00:01:20 +08:00
4960657be7 Update nginx.conf 2026-04-08 00:00:26 +08:00
Mr Chen
0b18aa4906 Merge pull request #875 from midoks/dev
Update __init__.py
2026-04-07 23:34:44 +08:00
f040827bc8 Update __init__.py 2026-04-07 23:27:43 +08:00
Mr Chen
876c3b2ecd Merge pull request #874 from midoks/dev
openresty配置优化
2026-04-07 15:30:38 +08:00
52c30a1e0e Update index.py 2026-04-07 15:27:00 +08:00
f2d93564a5 Update index.py 2026-04-07 15:24:46 +08:00
f19213d6f7 Update index.py 2026-04-07 15:23:08 +08:00
0e378ea982 Update openresty.js 2026-04-07 15:21:10 +08:00
51d8d48218 Update index.py 2026-04-07 15:18:28 +08:00
0f560a3594 update 2026-04-07 15:16:08 +08:00
Mr Chen
07ea3e39b9 Merge pull request #873 from midoks/dev
常规更新
2026-04-06 10:10:17 +08:00
50851ad62a Update mw.tpl 2026-04-06 10:04:31 +08:00
d45a956520 Update mw.tpl 2026-04-06 09:57:47 +08:00
7e9e95b7d2 Update mw.tpl 2026-04-06 09:56:49 +08:00
c02255dd08 Update mw.tpl 2026-04-06 09:55:18 +08:00
c465e15e96 Update __init__.py 2026-04-06 09:48:31 +08:00
Mr Chen
1da99434b3 Merge pull request #872 from midoks/dev
更新
2026-04-05 15:28:24 +08:00
368db8d94c up 2026-04-05 15:19:19 +08:00
a05c8cc3ea Update __init__.py 2026-04-05 15:12:45 +08:00
7d7ef2788e Update install.sh 2026-04-05 14:52:17 +08:00
93844b0e20 Update install.sh 2026-04-05 14:44:22 +08:00
Mr Chen
45b8e7cc28 Merge pull request #871 from midoks/dev
反代优化
2026-04-05 11:53:30 +08:00
59aea26e72 Update site.py 2026-04-05 11:51:16 +08:00
Mr Chen
a3a3a737ed Merge pull request #870 from midoks/dev
常规更新
2026-04-04 23:43:59 +08:00
69c048cfa6 Update index.py 2026-04-04 23:41:58 +08:00
045543f27a Update index.py 2026-04-04 23:41:05 +08:00
Mr Chen
3369821875 Merge pull request #869 from midoks/dev
面板优化
2026-04-04 23:09:53 +08:00
e880edd680 Update __init__.py 2026-04-04 22:59:04 +08:00
c5d516949d Update mw.tpl 2026-04-04 22:41:13 +08:00
cd695e5024 Update __init__.py 2026-04-04 22:37:01 +08:00
f97dd9747f Update __init__.py 2026-04-04 22:25:03 +08:00
67ed60731b Update __init__.py 2026-04-04 22:13:31 +08:00
d2c756a08a Update __init__.py 2026-04-04 22:13:22 +08:00
976d8a16e4 Update __init__.py 2026-04-04 22:08:54 +08:00
55f7a181cd 去掉 whitenoise , 使用flask static原生的功能 2026-04-04 21:28:51 +08:00
55d0ebad03 支持br和zstd 2026-04-04 21:04:47 +08:00
Mr Chen
5db9a064ca Merge pull request #868 from midoks/dev
常规更新
2026-04-04 19:26:23 +08:00
2a5fe72a34 Update mw.tpl 2026-04-04 19:24:57 +08:00
fd6d36b6d9 Update install.sh 2026-04-04 13:31:44 +08:00
Mr Chen
2aafc85fae Merge pull request #867 from midoks/dev
Update mw.py
2026-04-04 10:50:25 +08:00
3905f4ed28 Update mw.py 2026-04-04 10:38:24 +08:00
Mr Chen
c6570ac499 Merge pull request #866 from midoks/dev
openresty http3 较为完美实现
2026-04-04 01:08:23 +08:00
9241be1f5f Update mw.py 2026-04-04 01:01:22 +08:00
4fbd695f4e Update site.py 2026-04-04 00:42:07 +08:00
05b72a0c7e update 2026-04-04 00:29:52 +08:00
09ab982a4a Update site.js 2026-04-04 00:26:07 +08:00
70b2f20ca8 Update nginx.conf 2026-04-04 00:18:19 +08:00
4f12a096e7 up 2026-04-04 00:09:46 +08:00
ea5df706a8 Update site.py 2026-04-03 21:47:02 +08:00
d92dae066d Update install.sh 2026-04-03 21:13:22 +08:00
Mr Chen
40345f6cb9 Merge pull request #865 from midoks/dev
openresty优化
2026-04-03 14:18:42 +08:00
8aaf0eb99e Update site.py 2026-04-03 14:11:28 +08:00
cd1885477d Update site.py 2026-04-03 14:08:08 +08:00
28bb578170 Update site.py 2026-04-03 14:07:25 +08:00
2965df19cb Update site.py 2026-04-03 13:57:58 +08:00
36929f3ab4 Update nginx.conf 2026-04-03 13:54:14 +08:00
e1f7ea8f18 Update nginx.conf 2026-04-03 13:53:53 +08:00
7e4b603582 Update nginx.conf 2026-04-03 13:47:53 +08:00
f82eaee49e Update alpine.sh 2026-04-03 13:19:13 +08:00
e1fe3d959a update 2026-04-03 13:17:45 +08:00
86d3dd2c88 bash zstd 2026-04-03 13:13:59 +08:00
127e3ae325 openresty 2026-04-03 12:31:24 +08:00
16c8c3c873 Update nginx.conf 2026-04-03 12:30:09 +08:00
58fbd9c581 Update install.sh 2026-04-03 11:52:44 +08:00
91f75c60c6 Update install.sh 2026-04-03 11:52:02 +08:00
dee60a5a34 Update install.sh 2026-04-03 11:37:38 +08:00
013d53c346 Update install.sh 2026-04-03 11:33:11 +08:00
d42e28f713 Update site.py 2026-04-03 11:09:37 +08:00
dc69407d76 Update push_notice_msg.py 2026-04-03 10:51:29 +08:00
ab228bb8d4 Update push_ad.py 2026-04-03 10:33:27 +08:00
772ba40108 Update site.py 2026-04-03 03:44:44 +08:00
f143e2ea49 Update site.py 2026-04-03 03:44:36 +08:00
dd32fc58eb Update site.py 2026-04-03 03:35:43 +08:00
30f499f3cd update 2026-04-03 03:22:17 +08:00
c7325645be Update install.sh 2026-04-03 03:16:53 +08:00
dfca75f19a Update install.sh 2026-04-03 03:16:07 +08:00
70005b3b82 Update install.sh 2026-04-03 03:14:47 +08:00
e51e2dfe27 Update install.sh 2026-04-03 03:12:58 +08:00
57ddcb47f2 update 2026-04-03 03:09:19 +08:00
0ec2764369 update 2026-04-03 02:59:24 +08:00
2215a7895e update 2026-04-03 02:57:18 +08:00
bac86bd8e0 Update install.sh 2026-04-03 02:55:55 +08:00
3f9540a415 Update site.py 2026-04-03 02:38:07 +08:00
e5be78e832 Update site.py 2026-04-03 02:37:52 +08:00
8a03d1c704 Update site.py 2026-04-03 02:36:55 +08:00
1655fd33eb Update site.py 2026-04-03 02:36:23 +08:00
af93e5d00e Update site.py 2026-04-03 02:35:43 +08:00
f2f1f1c879 Update site.py 2026-04-03 02:23:45 +08:00
fd7179c3f5 Update site.py 2026-04-03 02:21:16 +08:00
bbf4200b42 Update site.py 2026-04-03 02:20:25 +08:00
e50877ba5d Update site.py 2026-04-03 02:20:15 +08:00
61cf4eb964 Update site.py 2026-04-03 02:20:05 +08:00
87ca7fdc8d Update site.py 2026-04-03 02:17:27 +08:00
7745bbe60c Update site.py 2026-04-03 02:01:47 +08:00
949ebf83e3 Update site.py 2026-04-03 02:01:13 +08:00
6744282bf1 Update site.py 2026-04-03 01:58:18 +08:00
5b374b0410 Update site.py 2026-04-03 01:56:58 +08:00
efaa97b9bd Update site.py 2026-04-03 01:50:13 +08:00
87c5dd5fa7 Update site.py 2026-04-03 01:48:15 +08:00
023a5b75b4 Update site.py 2026-04-03 01:46:54 +08:00
7e6a5de0f1 Update site.py 2026-04-03 01:43:21 +08:00
348500a288 Update site.py 2026-04-03 01:42:42 +08:00
27be26d12d Update site.py 2026-04-03 01:39:09 +08:00
4932eab08a Update site.py 2026-04-03 01:34:08 +08:00
341e2ed7ff Update site.py 2026-04-03 01:28:38 +08:00
7af6dac964 Update site.py 2026-04-03 01:19:43 +08:00
f94d23723c Update site.py 2026-04-03 01:14:40 +08:00
170005fb79 Update site.py 2026-04-03 01:07:59 +08:00
5ebe3fd95c Update site.py 2026-04-03 01:06:01 +08:00
d49d2247c9 Update site.py 2026-04-03 01:04:27 +08:00
593c90f605 Update site.py 2026-04-03 01:02:40 +08:00
fa41140aed Update site.py 2026-04-03 01:01:33 +08:00
e246509ebf Update site.py 2026-04-03 00:59:29 +08:00
81db94ac8a Update site.py 2026-04-03 00:58:19 +08:00
de29c766b3 Update site.py 2026-04-03 00:45:37 +08:00
3e96586c8e Update site.py 2026-04-03 00:39:50 +08:00
7eac6cadb0 Update nginx.conf 2026-04-03 00:33:25 +08:00
414ba32541 Update nginx.conf 2026-04-03 00:33:11 +08:00
8d4db5b574 Update site.py 2026-04-03 00:33:01 +08:00
422b904e00 Update site.py 2026-04-03 00:32:41 +08:00
5ce627ee0b Update site.py 2026-04-03 00:32:03 +08:00
3ddb6f9abc Update site.py 2026-04-03 00:31:53 +08:00
583f2a17b5 Update site.py 2026-04-03 00:31:33 +08:00
e628f1f6d5 update 2026-04-03 00:29:12 +08:00
89f21867a5 Update nginx.conf 2026-04-03 00:13:41 +08:00
4dd557feee Update nginx.conf 2026-04-03 00:12:18 +08:00
cc315db34b Update nginx.conf 2026-04-03 00:10:35 +08:00
086692e668 Update nginx.conf 2026-04-03 00:05:59 +08:00
e7528205f6 Update nginx.conf 2026-04-03 00:05:27 +08:00
af735e196e Update site.py 2026-04-02 23:37:24 +08:00
7dd59c3346 Update install.sh 2026-04-02 20:29:06 +08:00
1c6ade5b77 Update install.sh 2026-04-02 20:26:25 +08:00
f714da7662 Update install.sh 2026-04-02 11:25:02 +08:00
907ae1db04 update 2026-04-02 11:16:32 +08:00
691dd4a7bd Update install.sh 2026-04-02 11:12:33 +08:00
b1f531446a Update install.sh 2026-04-02 11:02:47 +08:00
c5aeaf1452 update 2026-04-02 10:48:59 +08:00
c27914c957 Update install.sh 2026-04-02 10:48:35 +08:00
6424e1e416 Update install.sh 2026-04-02 10:44:41 +08:00
0fc0e12c08 update 2026-04-02 10:39:45 +08:00
dfc3e79709 Update install.sh 2026-04-02 10:39:20 +08:00
f0b515ff5c Update install.sh 2026-04-02 10:38:53 +08:00
2f39e3277f Update install.sh 2026-04-02 10:38:25 +08:00
6576794456 Update install.sh 2026-04-02 10:34:20 +08:00
bdc8223c6c Update install.sh 2026-04-02 10:24:57 +08:00
d68cf3b557 Update install.sh 2026-04-02 10:22:40 +08:00
11787d290b Update install.sh 2026-04-02 10:16:00 +08:00
047a14dcbc up 2026-04-02 10:11:11 +08:00
f9d441a97f Update install.sh 2026-04-01 15:11:46 +08:00
Mr Chen
9cee124afd Merge pull request #864 from midoks/dev
openresty 加入br功能
2026-04-01 01:44:11 +08:00
43cf348b72 Update mw.py 2026-04-01 01:16:49 +08:00
86eb344492 Update mw.py 2026-04-01 00:56:32 +08:00
9030628090 Update mw.py 2026-04-01 00:52:26 +08:00
f6d39c7be3 Update install.sh 2026-04-01 00:46:49 +08:00
a9931b114e Update mw.py 2026-04-01 00:44:32 +08:00
87d9ce4486 Update install.sh 2026-04-01 00:32:21 +08:00
b61256221a Update install.sh 2026-04-01 00:24:09 +08:00
e9f43cb6f4 openresty 所有版本加入br的扩展 2026-04-01 00:17:53 +08:00
be79a9b4f9 Update install.sh 2026-04-01 00:13:38 +08:00
a3ff2fbefe Update install.sh 2026-04-01 00:12:31 +08:00
8d032cd867 Update nginx.conf 2026-04-01 00:05:10 +08:00
71392cd54f Update install.sh 2026-03-31 23:54:37 +08:00
92f14b1c12 Update install.sh 2026-03-31 23:41:37 +08:00
7e9674c7a7 Update install.sh 2026-03-31 23:41:06 +08:00
ccf0b070b0 Update install.sh 2026-03-31 23:17:08 +08:00
a9536cccd1 Update install.sh 2026-03-31 23:15:28 +08:00
5f26bdcefb Update install.sh 2026-03-31 23:13:55 +08:00
015c901047 Update install.sh 2026-03-31 23:08:23 +08:00
201ac15aea Update install.sh 2026-03-31 23:01:40 +08:00
04725db699 Update install.sh 2026-03-31 22:50:08 +08:00
9b72c785b5 Update install.sh 2026-03-31 22:49:46 +08:00
ca20d585da Update install.sh 2026-03-31 22:27:58 +08:00
48bcb80dd7 Update install.sh 2026-03-31 22:25:26 +08:00
e4bf1f0d53 Update install.sh 2026-03-31 22:18:23 +08:00
769764ad17 Update install.sh 2026-03-31 20:49:26 +08:00
Mr Chen
cbf732d072 Merge pull request #863 from midoks/dev
opcache优化
2026-03-21 23:50:54 +08:00
9a60ded31c Update opcache.sh 2026-03-21 23:47:55 +08:00
f7fa4a6dc5 Update opcache.sh 2026-03-21 23:41:33 +08:00
Mr Chen
d2f653decb Merge pull request #862 from midoks/dev
Update r3.6.txt
2026-03-21 15:04:06 +08:00
7471265010 Update r3.6.txt 2026-03-21 15:00:26 +08:00
Mr Chen
60e5dc0e57 Merge pull request #861 from midoks/dev
AI插件+swoole优化
2026-03-21 14:58:31 +08:00
9aacf8ca41 update 2026-03-21 14:52:16 +08:00
b91b4cd5b2 Update swoole.sh 2026-03-21 14:50:13 +08:00
e5843a4f40 Merge branch 'master' into dev 2026-03-21 11:17:28 +08:00
97259b5a14 Update phplib.conf 2026-03-21 11:17:17 +08:00
e0e56faa5d Update swoole.sh 2026-03-18 15:26:47 +08:00
f837fb31fc Update push_notice_msg.py 2026-03-17 18:41:35 +08:00
d1eef0a8c5 update 2026-03-17 18:15:40 +08:00
4a657451ed update 2026-03-17 18:08:50 +08:00
Mr Chen
68a5af4bef Merge pull request #859 from ccbkkb/master 2026-03-16 08:35:12 +08:00
ccbkkb
d0018d4de8 Update mw.py 2026-03-15 23:20:27 +08:00
ccbkkb
38dd92754a Fix: 修复安装时公网IP获取失败的问题(使用cloudflare接口替换v6r.ipip.net接口)
v6r.ipip.net return 502
2026-03-15 23:18:03 +08:00
1f2d68ffd2 Update ollama.js 2026-03-12 16:31:31 +08:00
f18d0c998f Update install.sh 2026-03-12 16:26:06 +08:00
374e2e6b91 Update install.sh 2026-03-12 16:23:42 +08:00
b2e439c94e Update install.sh 2026-03-12 16:21:57 +08:00
875d616cbf Update install.sh 2026-03-12 16:21:07 +08:00
837e229d11 Update ollama.js 2026-03-12 16:19:04 +08:00
8fd038cd11 Update install.sh 2026-03-12 16:18:42 +08:00
ca8b44dd8d update 2026-03-12 16:16:07 +08:00
e8f767a56b Update index.py 2026-03-12 16:07:46 +08:00
b531c48083 update 2026-03-12 16:00:51 +08:00
bbab1c13a2 Update info.json 2026-03-12 13:04:27 +08:00
4334b48ab1 Update info.json 2026-03-07 17:50:30 +08:00
ab1ca7af80 Update install.sh 2026-03-03 15:09:01 +08:00
ac54b65c87 update 2026-03-03 15:08:45 +08:00
35db1ff6b2 Update init_cron.py 2026-02-25 12:35:44 +08:00
Mr Chen
126bdcca73 Merge pull request #858 from midoks/dev
简单ui优化
2026-02-23 01:31:19 +08:00
5cfcb71759 up 2026-02-23 01:21:44 +08:00
e6a54b08f1 Update info.json 2026-02-13 13:29:48 +08:00
Mr Chen
434ac7b577 Merge pull request #857 from midoks/dev
常规更新
2026-02-05 11:58:03 +08:00
7e3b3fae1c Update install.sh 2026-02-05 11:57:00 +08:00
4c52629ba7 update 2026-02-05 10:37:31 +08:00
135b9b6e09 Update php.js 2026-02-05 10:32:43 +08:00
1647065b04 Update php.js 2026-02-05 10:30:01 +08:00
bf6b39707a Update php.js 2026-02-05 10:29:39 +08:00
4a4450260f Update php.js 2026-02-05 10:26:28 +08:00
Mr Chen
4701234c94 Merge pull request #856 from midoks/dev
可迁移ssh终端配置
2026-02-01 18:15:42 +08:00
8c4c4a25cb Update index.py 2026-02-01 17:43:09 +08:00
7be14d2d8c Update index.py 2026-02-01 17:40:58 +08:00
d8b387fbad Update index.py 2026-02-01 17:38:32 +08:00
6087377e8e Update index.py 2026-02-01 17:37:25 +08:00
e5797ef6a8 Update index.py 2026-02-01 17:37:09 +08:00
6817cafbfa update 2026-02-01 14:08:19 +08:00
bcdfeb03a8 Update index.py 2026-02-01 13:56:28 +08:00
Mr Chen
8854328697 Merge pull request #855 from midoks/dev
快捷连接ssh
2026-02-01 03:49:25 +08:00
0d83b2a59f Update cmd.md 2026-02-01 03:48:43 +08:00
691b4b5e59 Update mw.tpl 2026-02-01 03:47:15 +08:00
c4bffbda11 Update mw.tpl 2026-02-01 03:45:08 +08:00
ef7da60ec0 Update mw.tpl 2026-02-01 03:40:41 +08:00
95275c1b39 Update mw.tpl 2026-02-01 03:39:53 +08:00
944714e4ba update 2026-02-01 03:34:07 +08:00
aa7962c959 update 2026-02-01 03:07:48 +08:00
97c13d5f44 Update panel_tools.py 2026-01-31 17:56:36 +08:00
004faffc4c Update mw.tpl 2026-01-31 17:55:07 +08:00
eeef2abaf3 update 2026-01-31 17:54:34 +08:00
3a70c388cc update 2026-01-31 17:41:18 +08:00
Mr Chen
b81044106e Merge pull request #853 from midoks/dev
常规更新
2026-01-24 20:56:24 +08:00
a5230d1da4 Update swoole.sh 2026-01-24 20:38:53 +08:00
c1223aaee4 Update swoole.sh 2026-01-24 20:38:37 +08:00
7175315abc Update swoole.sh 2026-01-24 20:37:47 +08:00
00f4a722e1 Merge branch 'master' into dev 2026-01-24 20:35:53 +08:00
664d847a71 Update swoole.sh 2026-01-24 20:35:28 +08:00
21dedb7748 Update swoole.sh 2026-01-24 20:34:14 +08:00
88a0c5dc57 update 2026-01-24 20:29:30 +08:00
4677c39b97 Update phplib.conf 2026-01-24 20:28:17 +08:00
00b145d673 Update lib.sh 2026-01-24 20:27:43 +08:00
f04fff354a Update lib.sh 2026-01-24 20:27:18 +08:00
ca4264b838 Update brotli.sh 2026-01-24 20:22:21 +08:00
0e4047c36f Update phplib.conf 2026-01-24 20:16:38 +08:00
1f3bb11a5d Merge branch 'master' into dev 2026-01-20 12:13:15 +08:00
Mr Chen
f7a103ff89 Merge pull request #852 from midoks/dev
常规优化
2026-01-20 12:13:08 +08:00
555c326b0c Update lib.sh 2026-01-20 12:12:27 +08:00
4f74a770af Update lib.sh 2026-01-20 12:03:31 +08:00
b26b14a0f2 Update lib.sh 2026-01-20 11:55:14 +08:00
Mr Chen
7d0e8c96ee Merge pull request #851 from midoks/dev
Update my9.3.cnf
2026-01-15 18:41:15 +08:00
a14439f128 Update my9.3.cnf 2026-01-15 18:40:38 +08:00
Mr Chen
4de8aba54a Merge pull request #850 from midoks/dev
常规更新
2026-01-15 14:49:19 +08:00
3814dda46e Update ubuntu.sh 2026-01-15 14:45:39 +08:00
923716dd08 Update debian.sh 2026-01-15 14:33:16 +08:00
fa0f86c8a0 Update debian.sh 2026-01-15 14:31:53 +08:00
efb8d29f78 Update debian.sh 2026-01-15 14:30:10 +08:00
22c71009df Update debian.sh 2026-01-15 14:29:10 +08:00
4e48bae0ad Update debian.sh 2026-01-15 13:46:14 +08:00
Mr Chen
ce55c5c011 Merge pull request #849 from midoks/dev
常规更新
2026-01-14 22:01:16 +08:00
7daf02e94c Update index.py 2026-01-14 21:59:05 +08:00
e4fdf60b8a Update index.py 2026-01-14 21:56:59 +08:00
b9ae73d865 Update index.py 2026-01-14 21:47:59 +08:00
Mr Chen
e9583db6a7 Merge pull request #848 from midoks/dev
Update my9.3.cnf
2026-01-14 21:43:48 +08:00
89eda3c702 Update my9.3.cnf 2026-01-14 21:38:03 +08:00
Mr Chen
245e0e038b Merge pull request #847 from midoks/dev
版本更新
2026-01-14 21:22:30 +08:00
010579aa1b Create mysql9.3.service.tpl 2026-01-14 21:17:13 +08:00
24e8337b41 update 2026-01-14 21:10:58 +08:00
d5f6224236 update 2026-01-14 13:13:42 +08:00
9ec8fe921d Update push_notice_msg.py 2026-01-12 11:23:13 +08:00
6fd1d294e5 update 2025-12-21 14:53:26 +08:00
d48c7271c0 up 2025-12-21 14:26:27 +08:00
d155c675f2 up 2025-12-21 14:25:48 +08:00
3a56faf123 update 2025-12-21 10:56:35 +08:00
Mr Chen
bc74608271 Merge pull request #845 from midoks/dev
ca证书可选择
2025-12-20 21:02:18 +08:00
484a615981 Update ssl_acme.py 2025-12-20 20:56:40 +08:00
efe92ba356 Update site.py 2025-12-20 20:49:25 +08:00
25f4a815fd acme证书选择 2025-12-20 20:46:58 +08:00
74f774bc3b Update push_notice_msg.py 2025-12-19 15:42:20 +08:00
Mr Chen
e871beda8e Merge pull request #844 from midoks/dev
PHP85 openssl bug解决
2025-12-11 15:43:54 +08:00
ddc3011dd9 update 2025-12-11 14:46:13 +08:00
9bf9322994 Update redis.sh 2025-12-11 14:41:54 +08:00
325d1567a7 Update redis.sh 2025-12-11 14:41:26 +08:00
e3ed7fde45 update 2025-12-11 14:39:58 +08:00
e8810cc2a7 update 2025-12-11 14:30:16 +08:00
bf101519d8 Update install.sh 2025-12-11 12:48:10 +08:00
58e1302b75 Update install.sh 2025-12-10 20:35:15 +08:00
750a070fbb Update obf_proxy.conf 2025-12-09 18:16:12 +08:00
e8b3131d2e Update obf_proxy.conf 2025-12-09 18:15:58 +08:00
c00cc887e4 Delete obf.conf 2025-12-09 17:24:12 +08:00
6fb8a5bbe5 update 2025-12-09 17:24:09 +08:00
952fcc2a1e delete 2025-12-09 17:23:07 +08:00
d070592491 Update install.sh 2025-12-08 14:50:12 +08:00
4fe64ddcb1 update 2025-12-07 00:37:52 +08:00
a10f10aa61 Update obf.lua 2025-12-07 00:22:53 +08:00
db2ad358cf Update util.lua 2025-12-07 00:14:03 +08:00
124b19525f Update nginx.conf 2025-12-07 00:01:36 +08:00
a64b9e1ab2 Update nginx.conf 2025-12-06 23:59:07 +08:00
a936daf95b update 2025-12-06 23:45:53 +08:00
dba64f9ea7 Update obf.lua 2025-12-06 23:42:21 +08:00
2e6555a8cb Update tpl.lua 2025-12-06 23:41:32 +08:00
52003c2d58 Update obf.conf 2025-12-06 20:07:31 +08:00
da028d6665 update 2025-12-06 20:05:34 +08:00
01a7746ae9 Update obf.lua 2025-12-06 19:57:10 +08:00
827fe3578f update 2025-12-06 19:45:44 +08:00
d4cf1d9aca Update tpl.lua 2025-12-06 19:36:30 +08:00
c2a4be71c4 Create tpl_v5.lua 2025-12-06 19:35:32 +08:00
404fd0dfdd update 2025-12-06 17:14:40 +08:00
9ffd7c91b7 Update util.lua 2025-12-06 16:27:00 +08:00
fc20046aaf Update tpl.lua 2025-12-06 16:25:59 +08:00
934ccba81f update 2025-12-06 16:23:54 +08:00
4db502e0f1 up 2025-12-06 15:54:47 +08:00
dd9dbd8321 Create obf_v4.lua 2025-12-06 14:06:04 +08:00
47102edfef update 2025-12-06 14:04:12 +08:00
9b86a6ee33 Create obf_v3.lua 2025-12-06 13:58:31 +08:00
9cb4dbc79d Update obf.lua 2025-12-05 15:51:00 +08:00
4789e40574 up 2025-12-05 15:42:20 +08:00
39109ae40b Update obf.lua 2025-12-05 15:26:37 +08:00
b6ffe579e0 update 2025-12-05 15:11:40 +08:00
d2b94a9a0e Update obf.conf 2025-12-05 14:49:20 +08:00
809022b388 update 2025-12-05 14:30:44 +08:00
5c2c614a65 混淆配置 2025-12-05 05:48:48 +08:00
a0934d9aaf Update site.js 2025-12-05 04:49:40 +08:00
19ac2d9a0a Update obf.lua 2025-12-05 04:29:46 +08:00
ae5870556a update 2025-12-05 04:27:19 +08:00
87c42c810e Update index.py 2025-12-05 04:15:42 +08:00
d7d36b44b2 Update index.py 2025-12-05 04:13:51 +08:00
9bb44d3ae5 Update index.py 2025-12-05 04:13:29 +08:00
f216c03a7b Update index.py 2025-12-05 04:13:23 +08:00
d091fc48f6 Update index.py 2025-12-05 04:11:16 +08:00
0eeae3a7ff html混淆代码 2025-12-05 04:06:40 +08:00
22c26c97f7 Merge branch 'master' into dev 2025-12-04 16:46:48 +08:00
Mr Chen
86c6416090 Merge pull request #843 from clutter0584/clutter0584-patch-1
Update index.py
2025-12-04 16:46:12 +08:00
clutter0584
123c07efe0 Update index.py
修复supervisor多进程任务重启失败的bug
2025-12-01 10:34:07 +08:00
d64f01bc54 update 2025-11-30 19:20:05 +08:00
415d7988b9 Create t.md 2025-11-29 16:43:28 +08:00
f846a1ac83 Create doh.conf 2025-11-29 16:07:23 +08:00
e95269d539 Update install.sh 2025-11-29 15:52:51 +08:00
4161a3afc1 Update doh.service.tpl 2025-11-29 15:50:22 +08:00
f842ed7b3d Update doh.js 2025-11-29 15:40:36 +08:00
66c8bb7c78 update 2025-11-29 15:35:49 +08:00
cd499edd6c update 2025-11-29 15:34:38 +08:00
51d4e187b6 update 2025-11-29 15:24:12 +08:00
a75f648b71 Update index.py 2025-11-29 15:18:26 +08:00
66a253b4e9 Update index.py 2025-11-29 15:16:50 +08:00
076f8e0365 Update index.py 2025-11-29 15:16:44 +08:00
37c850cf6c Update index.py 2025-11-29 15:15:14 +08:00
dc93213811 Update index.py 2025-11-29 15:11:18 +08:00
56d8c6c236 Update index.py 2025-11-29 15:08:30 +08:00
0a0b114baf Update index.py 2025-11-29 15:07:51 +08:00
7c444b3c53 update 2025-11-29 14:57:11 +08:00
f4c72266ea update 2025-11-29 14:50:24 +08:00
f45e6c885e Update install.sh 2025-11-29 14:29:17 +08:00
c4646a7de6 Update install.sh 2025-11-29 14:27:52 +08:00
37be254f25 Update install.sh 2025-11-29 14:21:54 +08:00
21d6244c3c Update install.sh 2025-11-29 14:11:06 +08:00
d141e67f52 Update install.sh 2025-11-29 14:09:16 +08:00
d2c4a79791 Update install.sh 2025-11-29 14:06:22 +08:00
240058005f Update install.sh 2025-11-29 14:05:10 +08:00
6d31f3791b update 2025-11-29 13:59:51 +08:00
7fba05d0d5 Update .gitignore 2025-11-23 22:27:30 +08:00
Mr Chen
44ead9f469 Merge pull request #842 from midoks/dev
常规更新
2025-11-23 17:43:33 +08:00
7ef3971fe1 Update file.py 2025-11-23 17:41:30 +08:00
216a3d5d60 Update file.py 2025-11-23 12:03:38 +08:00
ffb6844a41 Update file.py 2025-11-23 12:02:37 +08:00
575723b860 update 2025-11-23 11:57:54 +08:00
50a000f1c7 Update files.js 2025-11-23 11:48:25 +08:00
476c73fed3 update 2025-11-22 23:56:35 +08:00
471e655eb3 Update install.sh 2025-11-22 18:33:50 +08:00
934a436065 Update install.sh 2025-11-22 18:27:57 +08:00
ba1508a82a Update info.json 2025-11-22 18:27:03 +08:00
0f67d14153 Update install.sh 2025-11-22 18:25:50 +08:00
832d8f44f1 update 2025-11-22 18:20:24 +08:00
33343e1b1c Update index.py 2025-11-22 18:15:34 +08:00
Mr Chen
28694cd2b7 Merge pull request #841 from midoks/dev
PHP8.5正式版
2025-11-22 13:37:01 +08:00
c65f66decc Update install.sh 2025-11-22 13:07:28 +08:00
73a4743e88 update 2025-11-22 13:05:22 +08:00
2bcbf6365e Update info.json 2025-11-13 12:07:28 +08:00
Mr Chen
43301108ba Merge pull request #838 from midoks/dev
ACME强制更新修改
2025-11-13 02:28:04 +08:00
7898d26461 Update init_cron.py 2025-11-13 02:26:40 +08:00
13b3158bd6 Update init_cron.py 2025-11-13 02:18:14 +08:00
f4f327f25d Update index.py 2025-11-13 01:30:04 +08:00
45ff09dadb Update index.py 2025-11-13 01:25:42 +08:00
Mr Chen
bec78bc44c Merge pull request #837 from midoks/dev
ad修改
2025-11-06 16:22:09 +08:00
16e35935f9 update 2025-11-06 16:11:22 +08:00
d6603488b6 Update valkey.conf 2025-11-06 15:56:39 +08:00
717c2d2ece Update redis.conf 2025-11-04 17:42:33 +08:00
Mr Chen
e704af5494 Merge pull request #836 from midoks/dev
暂时关闭面板检查
2025-11-03 18:22:16 +08:00
5399d26c94 Update __init__.py 2025-11-03 18:17:37 +08:00
a32e29a378 Update mw.py 2025-11-03 17:57:15 +08:00
a62c474f99 Create window.tpl 2025-11-01 00:21:15 +08:00
Mr Chen
c507bb0238 Merge pull request #833 from midoks/dev
简单优化
2025-10-23 17:08:45 +08:00
30902eeac8 Update crontab.py 2025-10-23 17:05:34 +08:00
9442d58f4c Update crontab.py 2025-10-23 17:00:08 +08:00
Mr Chen
55a14cfedc Merge pull request #832 from midoks/dev
mariadb 12.0 版本修正
2025-10-18 13:40:35 +08:00
3d0ea980c8 Update install.sh 2025-10-18 11:33:11 +08:00
c9f7696519 Update info.json 2025-10-17 13:01:22 +08:00
Mr Chen
623d435758 Merge pull request #830 from midoks/dev
面板自动更新-加入计划任务(可删除)
2025-10-14 18:37:45 +08:00
05f06f09d4 Update init_cron.py 2025-10-14 18:35:36 +08:00
e19402c80c Update init_cron.py 2025-10-14 18:33:59 +08:00
cb87c5ba71 Update __init__.py 2025-10-14 18:32:41 +08:00
657eca08bf Update init_cron.py 2025-10-14 18:32:17 +08:00
4c58c86f84 Update check.sh 2025-10-02 12:25:14 +08:00
9b73a057fa Update check.sh 2025-10-02 12:14:49 +08:00
3c9bf95728 Update check.sh 2025-10-02 12:14:16 +08:00
2f48af5afe Update check.sh 2025-10-02 12:12:34 +08:00
Mr Chen
f7f5ba15ff Merge pull request #829 from midoks/dev
php85版本配置
2025-10-01 22:47:54 +08:00
5fd014f023 Update index.py 2025-10-01 22:46:50 +08:00
Mr Chen
caf3f4a783 Merge pull request #828 from midoks/dev
修复pgadmin4安装
2025-09-26 17:04:12 +08:00
b264bf6f58 Update install.sh 2025-09-26 17:00:19 +08:00
06b07cf9a0 Update install.sh 2025-09-26 16:27:27 +08:00
e5804b22cd Update requirements.txt 2025-09-26 16:24:55 +08:00
Mr Chen
85f292e1d2 Merge pull request #826 from midoks/dev
mongodb维护功能及DNS配置更改推荐方式
2025-09-17 12:52:58 +08:00
057f05a88a Update check.sh 2025-09-17 12:49:30 +08:00
a700267ee6 Update mongodb.js 2025-09-17 12:47:44 +08:00
331e33ec70 update 2025-09-17 12:46:19 +08:00
c9dc118af6 mongodb维护功能 2025-09-17 12:44:37 +08:00
e1e24a3350 Update index.html 2025-09-17 12:38:14 +08:00
Mr Chen
339dfd1c0b Merge pull request #825 from ramondelee/patch-3
Update site.py
2025-09-17 02:26:22 +08:00
Mr Chen
5bcc81c00a Merge branch 'dev' into patch-3 2025-09-17 02:26:08 +08:00
e7212ed506 Update site.py 2025-09-17 02:22:17 +08:00
ramondelee
c705c282d1 Update site.py
按ACME官方推荐配置更新huaweicloud和cloudflare的DNS-API配置,cloudflare更改为账户ID和可配置权限token。
2025-09-16 22:23:49 +08:00
Mr Chen
20ea1f8209 Merge pull request #821 from midoks/dev
openresty 添加检查任务功能
2025-09-16 01:25:15 +08:00
fa73171d7d openresty 检查重启任务 2025-09-16 01:21:17 +08:00
a27675a783 Update tool_cron.py 2025-09-16 00:26:11 +08:00
2ddae1f0b9 Update tool_task.py 2025-09-16 00:18:07 +08:00
415acc7780 Update site.py 2025-09-14 22:01:30 +08:00
Mr Chen
7590cf824f Merge pull request #819 from midoks/dev
兼容及优化
2025-09-14 16:29:20 +08:00
3ee88ddfb4 Update install.sh 2025-09-14 16:01:47 +08:00
4d5f90e0ec Update install.sh 2025-09-14 15:51:47 +08:00
694a65e9de Update install.sh 2025-09-14 15:51:19 +08:00
7e33103758 update 2025-09-14 15:49:37 +08:00
e04f26223e Update file.py 2025-09-14 15:40:45 +08:00
cd76b72d3c Update file.py 2025-09-14 15:39:05 +08:00
57372fe922 Update file.py 2025-09-14 15:34:09 +08:00
82ca7fdcdc Update file.py 2025-09-14 15:18:21 +08:00
c6d9fb89ba Update file.py 2025-09-14 15:16:05 +08:00
2ecd88586b Update file.py 2025-09-14 15:10:55 +08:00
d8779bed14 Update files.js 2025-09-14 15:06:37 +08:00
7ad988bceb Update file.py 2025-09-14 15:04:26 +08:00
04fc897a60 Update file.py 2025-09-14 15:03:04 +08:00
7922ba15ce Update file.py 2025-09-14 15:02:43 +08:00
fae27f7e19 Update file.py 2025-09-14 15:01:57 +08:00
7ba2f29efc Update file.py 2025-09-14 15:01:13 +08:00
0e8439d52b Update file.py 2025-09-14 15:01:04 +08:00
17c60b6b4e Update file.py 2025-09-14 14:52:09 +08:00
4ec54b2dbc Update file.py 2025-09-14 14:49:52 +08:00
409b1fa00d Update file.py 2025-09-14 14:49:02 +08:00
ad5fc52d66 Update file.py 2025-09-14 14:46:45 +08:00
4b4d21a0de Update files.js 2025-09-14 14:42:07 +08:00
3642a3fec5 Update files.js 2025-09-14 14:37:40 +08:00
cac097ea66 Update www.conf 2025-09-14 14:25:14 +08:00
4a2b0d9d9f Update index.py 2025-09-14 14:24:24 +08:00
Mr Chen
6e53e7a23b Merge pull request #818 from midoks/dev
兼容细节优化
2025-09-12 14:27:52 +08:00
1e1e86dc16 Update rhel.sh 2025-09-12 14:09:13 +08:00
e7777877fa update 2025-09-12 14:00:27 +08:00
3a685eb316 Update install_generic.sh 2025-09-11 20:16:19 +08:00
344509ec28 up 2025-09-11 20:14:01 +08:00
b70a2951bd Update info.json 2025-09-11 20:08:52 +08:00
63282f42b2 Create install.sh 2025-09-11 20:08:30 +08:00
Mr Chen
03786817ed Merge pull request #817 from midoks/dev
兼容debain13
2025-09-11 18:21:24 +08:00
680bffa9e8 Update crontab.py 2025-09-11 18:10:11 +08:00
6f07ec52ad Update crontab.py 2025-09-11 18:09:59 +08:00
daecb76f8e Update crontab.py 2025-09-11 18:00:01 +08:00
7f653d900d Update crontab.py 2025-09-11 17:27:46 +08:00
4cd3e682b9 Update crontab.py 2025-09-11 17:27:37 +08:00
143cceeade Update crontab.py 2025-09-11 17:26:12 +08:00
fb8ca67ac1 Update crontab.py 2025-09-11 17:25:36 +08:00
80fc1c4112 Update tool_cron.py 2025-09-11 17:23:48 +08:00
eecdeb0af4 update 2025-09-11 17:22:58 +08:00
5e9e11694d Update crontab.py 2025-09-11 17:11:14 +08:00
bb41f89d44 update 2025-09-11 17:10:08 +08:00
4158f25b35 Update crontab.py 2025-09-11 17:06:51 +08:00
3694cd0694 Update mw.py 2025-09-11 16:52:47 +08:00
a5a06fbaab Update mw.py 2025-09-11 16:49:01 +08:00
a5ee38d4fd Update mw.py 2025-09-11 16:45:30 +08:00
eca95c36dd Update mw.py 2025-09-11 16:41:09 +08:00
554b4047b9 update 2025-09-11 16:38:30 +08:00
b1e8b4eb11 Update mw.py 2025-09-11 16:36:23 +08:00
b3f693556c Update mw.py 2025-09-11 16:36:05 +08:00
e2fd50d152 Update mw.py 2025-09-11 16:31:43 +08:00
f1cb9a824d Update install.sh 2025-09-11 16:07:00 +08:00
da0e718276 up 2025-09-11 15:07:55 +08:00
4519a4175b Update install.sh 2025-09-11 15:03:17 +08:00
4fa375f4f4 Update install.sh 2025-09-11 15:02:42 +08:00
3ca5fdb082 Update openssl.sh 2025-09-11 15:00:41 +08:00
32ae726050 update 2025-09-11 15:00:28 +08:00
83950cbecb Update install.sh 2025-09-11 14:59:08 +08:00
5b9f63bc91 Update install.sh 2025-09-11 14:57:48 +08:00
7b93072093 Update install.sh 2025-09-11 14:56:08 +08:00
90c312ea5c Update install.sh 2025-09-11 14:54:54 +08:00
2bec38d85f Update install.sh 2025-09-11 14:52:49 +08:00
b8ab1780d3 Update install.sh 2025-09-11 14:51:57 +08:00
997ad34151 Update install.sh 2025-09-11 14:50:06 +08:00
e960d4f00b update 2025-09-11 14:40:36 +08:00
52fe9e2c13 Update openssl_30.sh 2025-09-11 14:35:43 +08:00
e6b386dabf Update mw.py 2025-09-11 12:38:47 +08:00
f558095a0e Update index.py 2025-09-10 23:52:55 +08:00
014a604c86 Update index.py 2025-09-10 23:49:47 +08:00
5e7f2f0d5a Update index.py 2025-09-10 23:49:33 +08:00
11b52cb212 Update install.sh 2025-09-10 23:28:01 +08:00
aa7abab742 Update install.sh 2025-09-10 23:20:08 +08:00
f5ce6e47e2 Update install.sh 2025-09-10 23:06:29 +08:00
05258e6fce Update install.sh 2025-09-10 23:05:02 +08:00
7675ead837 Update install.sh 2025-09-10 23:04:36 +08:00
6e80a19933 Update install.sh 2025-09-10 23:04:15 +08:00
3a6cf05647 Update install.sh 2025-09-10 23:01:21 +08:00
147cd32129 Update crontab.py 2025-09-10 22:54:23 +08:00
9789117759 Update install.sh 2025-09-10 22:31:31 +08:00
aeee5658d3 Update install.sh 2025-09-10 22:29:00 +08:00
949ac2de98 Update install.sh 2025-09-10 22:17:25 +08:00
5b4333dacf Update install.sh 2025-09-10 22:16:46 +08:00
561cd7111e Update install.sh 2025-09-10 22:14:21 +08:00
784ee84fb3 Update install.sh 2025-09-10 22:12:20 +08:00
b0cf548775 Update install.sh 2025-09-10 22:08:35 +08:00
Mr Chen
55c315eb98 Merge pull request #815 from midoks/dev
禁止root登陆 功能添加
2025-09-10 22:05:00 +08:00
9bcb41ab5d Update firewall.py 2025-09-10 22:02:57 +08:00
007b1bd21b Update firewall.py 2025-09-10 22:02:50 +08:00
9dae7988fd Update firewall.py 2025-09-10 22:00:51 +08:00
8877d7ea55 Update firewall.py 2025-09-10 21:58:08 +08:00
f35a23a53d Update firewall.py 2025-09-10 21:56:10 +08:00
64484ef18b Update firewall.py 2025-09-10 21:53:39 +08:00
0d9381b528 Update firewall.py 2025-09-10 21:52:12 +08:00
d57465d067 Update firewall.py 2025-09-10 21:50:33 +08:00
5039dac045 Update firewall.py 2025-09-10 21:45:43 +08:00
6073357bb6 Update firewall.js 2025-09-10 21:44:15 +08:00
a00343d444 Update firewall.py 2025-09-10 21:38:57 +08:00
a0b4681369 Update firewall.py 2025-09-10 21:38:04 +08:00
ea340f3fc2 Update firewall.py 2025-09-10 21:36:52 +08:00
db39483f97 Update firewall.py 2025-09-10 21:36:05 +08:00
e575511849 Update firewall.js 2025-09-10 21:33:36 +08:00
9dc3030c18 Update firewall.js 2025-09-10 21:30:21 +08:00
f990d7584e Update firewall.js 2025-09-10 21:29:39 +08:00
133d560e64 update 2025-09-10 21:29:03 +08:00
b3ba764d89 update 2025-09-10 21:25:41 +08:00
Mr Chen
3ff1124c30 Merge pull request #814 from midoks/dev
回收站-永久删除修复
2025-09-07 12:04:43 +08:00
da927c8f7b Update file.py 2025-09-07 12:04:13 +08:00
cb211d8ba1 回收站-永久删除修复 2025-09-07 12:02:37 +08:00
Mr Chen
9cbebbdd6a Merge pull request #813 from midoks/dev
Update crontab.py
2025-09-03 22:27:33 +08:00
8684e21da3 Update crontab.py 2025-09-03 22:24:46 +08:00
Mr Chen
3f9a90f758 Merge pull request #812 from ramondelee/patch-2
Update crontab.py
2025-09-03 22:22:19 +08:00
ramondelee
661a58b549 Update crontab.py
修复计划任务停止后重新启用不生效问题。
2025-09-03 22:09:31 +08:00
Mr Chen
a47b049dfd Merge pull request #810 from midoks/dev
Update config.json
2025-08-30 14:19:59 +08:00
58b2918ea4 Update config.json 2025-08-30 14:19:18 +08:00
Mr Chen
484b4cb280 Merge pull request #809 from midoks/dev
Update tool_migrate.py
2025-08-30 01:00:24 +08:00
a77d512bac Update tool_migrate.py 2025-08-30 00:58:57 +08:00
Mr Chen
e295354aa1 Merge pull request #808 from midoks/dev
网站统计优化
2025-08-23 01:04:03 +08:00
7aeae1e998 Update webstats_common.lua 2025-08-23 00:53:58 +08:00
9b98afd6cf Update webstats_common.lua 2025-08-23 00:53:47 +08:00
bad97971db Update webstats_common.lua 2025-08-23 00:50:28 +08:00
6f8c122503 Update webstats_common.lua 2025-08-23 00:44:21 +08:00
8b25aecb3a Update webstats_common.lua 2025-08-23 00:40:08 +08:00
400846cab4 Update webstats_common.lua 2025-08-23 00:39:52 +08:00
72708bdef0 Update index.py 2025-08-23 00:36:48 +08:00
Mr Chen
23d817d1f3 Merge pull request #807 from midoks/dev
OP防火墙修复
2025-08-22 21:38:45 +08:00
daf4086bc9 Update tool_task.py 2025-08-22 20:03:36 +08:00
ab2e9ca43e Update tool_task.py 2025-08-22 20:02:06 +08:00
222d69218a Update tool_task.py 2025-08-22 20:00:15 +08:00
ae03da927e Update init.sql 2025-08-22 19:54:49 +08:00
9cb311a6c9 Update install.sh 2025-08-22 19:07:41 +08:00
dfd665088e update 2025-08-22 18:58:01 +08:00
51afd70fff Update install.sh 2025-08-22 18:48:19 +08:00
203abc1ff9 Update files.js 2025-08-22 18:09:19 +08:00
a0487671d2 Update tool_task.py 2025-08-22 17:24:27 +08:00
88e605fc5a Update tool_task.py 2025-08-22 17:24:07 +08:00
130c390916 Update install.sh 2025-08-22 17:19:05 +08:00
93389633ba Update tool_task.py 2025-08-22 17:15:55 +08:00
53897cf779 update 2025-08-22 17:15:32 +08:00
9192ac2c81 Update tool_task.py 2025-08-22 17:14:27 +08:00
d54b8ab756 Update install.sh 2025-08-22 17:06:43 +08:00
67210ce23b Update tool_task.py 2025-08-22 17:05:01 +08:00
a89f27abb9 Update install.sh 2025-08-22 17:02:20 +08:00
37eccd8a58 Update tool_task.py 2025-08-22 17:00:16 +08:00
452fd810ac Update tool_task.py 2025-08-22 16:35:15 +08:00
Mr Chen
cd91a79578 Merge pull request #806 from midoks/dev
修复批量压缩
2025-08-22 14:17:18 +08:00
4c70fb9cfa update 2025-08-22 14:16:09 +08:00
62dcd672fe Update stats.js 2025-08-21 17:03:01 +08:00
fde40577ee Update stats.js 2025-08-21 17:02:44 +08:00
Mr Chen
963633328c Merge pull request #805 from midoks/dev
网站统计/修复下载文件
2025-08-21 16:55:51 +08:00
bddf214f91 Update install.sh 2025-08-21 16:54:51 +08:00
c7ef2eeec7 Update install.sh 2025-08-21 16:10:30 +08:00
Mr Chen
8b988a3f02 Merge pull request #804 from midoks/dev
网站统计/索引优化
2025-08-21 15:41:32 +08:00
792337ed73 update 2025-08-21 15:27:58 +08:00
d1e5f9d0a4 update 2025-08-21 15:04:39 +08:00
d202746829 Update index.py 2025-08-21 14:53:18 +08:00
72724c6014 Update db.py 2025-08-21 14:38:50 +08:00
8cdbe8a491 Update index.py 2025-08-20 12:56:50 +08:00
Mr Chen
4617161f3d Merge pull request #803 from midoks/dev
0.18.4
2025-08-19 19:48:15 +08:00
ffed4f56bf 0.18.4 2025-08-19 19:47:20 +08:00
Mr Chen
19f9390020 Merge pull request #802 from midoks/dev
Update install_dev.sh
2025-08-19 19:17:58 +08:00
10a4401259 Update install_dev.sh 2025-08-19 19:17:21 +08:00
Mr Chen
ed7ab76cd6 Merge pull request #801 from midoks/dev
update
2025-08-19 19:13:59 +08:00
ccfe1bac74 update 2025-08-19 19:13:36 +08:00
Mr Chen
0c2071bc5d Merge pull request #800 from midoks/dev
修正acme安装
2025-08-19 19:11:14 +08:00
2d503ab05a Update install.sh 2025-08-19 19:10:12 +08:00
0f204b48dd Update README.md 2025-08-19 13:59:58 +08:00
ac586267c5 update 2025-08-19 01:03:40 +08:00
897619f126 Update install.sh 2025-08-19 00:57:06 +08:00
5fef08797d Update info.json 2025-08-19 00:56:31 +08:00
b43c3a7294 Update info.json 2025-08-19 00:55:28 +08:00
423b145b7f Update install.sh 2025-08-19 00:54:47 +08:00
Mr Chen
93333a4915 Merge pull request #799 from midoks/dev
Update site.html
2025-08-19 00:28:04 +08:00
b3708abcb6 Update site.html 2025-08-19 00:27:38 +08:00
Mr Chen
f8c2580773 Merge pull request #798 from midoks/dev
站点搜索,排序优化
2025-08-19 00:22:40 +08:00
4609d5588d 站点排序优化 2025-08-19 00:21:52 +08:00
cbeb44779f Update public.js 2025-08-19 00:10:45 +08:00
7c848aa372 Update sites.py 2025-08-19 00:10:40 +08:00
015fca8145 update 2025-08-19 00:02:33 +08:00
54cc5fbad5 Update sites.py 2025-08-18 23:41:06 +08:00
66f66dd408 Update install.sh 2025-08-18 23:34:08 +08:00
Mr Chen
24de9d5988 Merge pull request #797 from midoks/dev
为国内安装优化发一个版本号
2025-08-18 23:26:38 +08:00
7dc5fdc88e 为国内安装优化发一个版本号
可以选择代理
2025-08-18 23:26:07 +08:00
Mr Chen
2f912b4ddd Merge pull request #796 from midoks/dev
update
2025-08-18 22:41:37 +08:00
0931cb9f9c update 2025-08-18 22:41:08 +08:00
bc98a80de6 Update mw.tpl 2025-08-18 22:40:32 +08:00
9e3ad237b5 Update mw.tpl 2025-08-18 22:07:38 +08:00
Mr Chen
40a6ce7aa7 Merge pull request #795 from midoks/dev
国内安装支持多个代理选择
2025-08-18 21:59:21 +08:00
85bedbf56b update 2025-08-18 21:48:27 +08:00
5575710d7e Update update_dev.sh 2025-08-18 21:25:31 +08:00
df442f7fff update 2025-08-18 21:24:45 +08:00
89e665b369 Update mw.tpl 2025-08-18 21:22:43 +08:00
42f845a7e2 Update mw.tpl 2025-08-18 21:21:17 +08:00
a226bc9fbb update 2025-08-18 21:10:20 +08:00
b2f9935abb Update mw.tpl 2025-08-18 20:57:56 +08:00
d8a22ba5ee update 2025-08-18 20:36:17 +08:00
be09821778 Update mw.tpl 2025-08-18 20:35:33 +08:00
4f0f440f2c update 2025-08-18 20:26:06 +08:00
9cd46a7f9f Update update_dev.sh 2025-08-18 20:22:49 +08:00
66c875584f Update update_dev.sh 2025-08-18 20:13:35 +08:00
f14d2fddc7 Update mw.tpl 2025-08-18 20:10:19 +08:00
fa2dda6ee4 Update README.md 2025-08-18 20:08:43 +08:00
73c8117a67 Update README.md 2025-08-18 20:07:31 +08:00
5f42e94da7 Update README.md 2025-08-18 20:05:56 +08:00
c31a95dd4b Update README.md 2025-08-18 20:03:30 +08:00
19ec0ddcb9 Update mw.tpl 2025-08-18 20:00:41 +08:00
5e24086476 Delete t.sh 2025-08-18 19:58:04 +08:00
72934000b0 Update mw.tpl 2025-08-18 19:56:48 +08:00
8a240e2c9c Update mw.tpl 2025-08-18 19:55:45 +08:00
9f081359b0 Update mw.tpl 2025-08-18 19:54:17 +08:00
679a1f0d05 Update mw.tpl 2025-08-18 19:53:43 +08:00
4533e87bef Update mw.tpl 2025-08-18 19:50:29 +08:00
47a60b41a8 up 2025-08-18 19:30:17 +08:00
b06100d0dc Update README.md 2025-08-18 19:07:07 +08:00
e5591cc59e Update install_dev.sh 2025-08-18 18:08:17 +08:00
9831216ca4 Update install_dev.sh 2025-08-18 18:03:43 +08:00
57e36c5fdb Update mw.tpl 2025-08-18 17:45:02 +08:00
35904bd79d Update install_dev.sh 2025-08-18 17:41:12 +08:00
f16a2a7fec update 2025-08-18 17:37:33 +08:00
0b4b8a62aa Update install_dev.sh 2025-08-18 17:16:29 +08:00
ca4fa30cdb Update install_dev.sh 2025-08-18 17:11:40 +08:00
90c024dfe5 Update install_dev.sh 2025-08-18 17:05:35 +08:00
e634c44797 Update install_dev.sh 2025-08-18 17:04:58 +08:00
8eea4072f6 Update install_dev.sh 2025-08-18 17:03:19 +08:00
a0886e1a3d Update install_dev.sh 2025-08-18 17:01:11 +08:00
b93d77c907 Update install_dev.sh 2025-08-18 16:35:00 +08:00
a148e27211 Update install_dev.sh 2025-08-18 16:33:57 +08:00
3cd9b52d2a Update install_dev.sh 2025-08-18 16:30:13 +08:00
37206916e4 Update install_dev.sh 2025-08-18 16:29:49 +08:00
d36d2fa4b4 Update install_dev.sh 2025-08-18 16:29:07 +08:00
4591c9006b Update install_dev.sh 2025-08-18 16:28:23 +08:00
5b4ceb49df Update install_dev.sh 2025-08-18 16:27:54 +08:00
ba937c1e77 update 2025-08-18 16:25:54 +08:00
2b77254322 Update install_dev.sh 2025-08-18 16:22:57 +08:00
b27cb78f62 Update install_dev.sh 2025-08-18 16:21:26 +08:00
106af5b177 Update install_dev.sh 2025-08-18 16:21:14 +08:00
4b31160670 Update install_dev.sh 2025-08-18 16:19:48 +08:00
0593be9928 Update install_dev.sh 2025-08-18 16:18:18 +08:00
6602119ee7 Update install_dev.sh 2025-08-18 16:15:57 +08:00
2943d1f1b7 Update install_dev.sh 2025-08-18 16:14:53 +08:00
485ab6793c Update install_dev.sh 2025-08-18 16:13:35 +08:00
164a450784 update 2025-08-18 16:10:14 +08:00
f12db7e55f Update install_dev.sh 2025-08-18 16:03:31 +08:00
23e000afb3 Update install_dev.sh 2025-08-18 15:57:38 +08:00
5c77dd91e7 Update nosql_mongodb.py 2025-08-17 17:25:34 +08:00
1c4140daec Update nginx.conf 2025-08-11 17:48:18 +08:00
ad1035547d Update nginx.conf 2025-08-11 17:48:01 +08:00
e61be60f71 Update linux.conf 2025-08-11 17:11:38 +08:00
9d6db1e847 Update nginx.conf 2025-08-11 17:06:29 +08:00
Mr Chen
76a417fee7 Merge pull request #794 from midoks/dev
数据展示插件及修复计划任务列表
2025-08-03 11:48:32 +08:00
9e836148bb Update crontab.js 2025-08-03 11:44:35 +08:00
8d32e404e7 Update crontab.js 2025-08-03 11:28:46 +08:00
fb3b0f0ae6 Update crontab.js 2025-08-03 11:21:50 +08:00
6ad415fa5a Update index.py 2025-08-02 19:48:28 +08:00
79d2cc26b0 Update index.py 2025-08-02 19:47:36 +08:00
df0ad48348 Update prometheus.js 2025-08-02 19:45:50 +08:00
b1024d1da1 Update index.html 2025-08-02 19:45:15 +08:00
5db1ad1535 Update index.py 2025-08-02 19:44:26 +08:00
b45fef8b0b Update prometheus.service.tpl 2025-08-02 19:42:44 +08:00
22d4a9a809 update 2025-08-02 19:37:00 +08:00
0478356ea5 pdate 2025-08-02 19:34:25 +08:00
45e35c4396 Update linux.sh 2025-08-02 19:27:59 +08:00
eb5079a5ef Update linux.sh 2025-08-02 19:26:38 +08:00
a62e01e02e Update install.sh 2025-08-02 19:24:35 +08:00
c58db08e5f update 2025-08-02 19:23:00 +08:00
6476fe1d2c Update linux.sh 2025-08-02 19:22:30 +08:00
8ea34d5736 prometheus 2025-08-02 19:22:14 +08:00
4d4f43fa93 Update info.json 2025-08-02 19:07:39 +08:00
3e7b2ee6c1 Update promtail-config.yaml 2025-08-02 17:02:52 +08:00
0d16d3abf1 Update loki-config.yaml 2025-08-02 16:35:42 +08:00
3923ea9dd6 Update promtail-config.yaml 2025-08-02 15:19:37 +08:00
e1292620c7 update 2025-08-02 15:08:50 +08:00
4e2b2e1f54 Update promtail-config.yaml 2025-08-02 15:02:00 +08:00
fcf75b652c update 2025-08-02 14:57:53 +08:00
9765b51969 Update linux.sh 2025-08-02 14:52:48 +08:00
0769183f61 Update linux.sh 2025-08-02 14:52:39 +08:00
845cc1a2ef Update linux.sh 2025-08-02 14:49:03 +08:00
16a95c12b4 Update linux.sh 2025-08-02 14:45:04 +08:00
0516aeb94f Update linux.sh 2025-08-02 14:43:19 +08:00
6b92ecebf9 Update linux.sh 2025-08-02 14:37:48 +08:00
9010c71051 Update linux.sh 2025-08-02 14:35:53 +08:00
fcca331224 Update index.py 2025-08-02 14:32:26 +08:00
e3a2f76f78 Update promtail.service.tpl 2025-08-02 14:25:27 +08:00
7e221454a3 update 2025-08-02 14:24:40 +08:00
ebecffca03 Update linux.sh 2025-08-02 14:14:07 +08:00
42f99fd7a2 update 2025-08-02 14:05:46 +08:00
b31ab0ae16 update 2025-08-02 13:56:29 +08:00
bec041aa01 Update linux.sh 2025-08-02 13:53:37 +08:00
8ded811295 Update linux.sh 2025-08-02 13:51:17 +08:00
f1c0b9f1ed update 2025-08-02 13:49:07 +08:00
d32a371b3a Create loki-config.bak.yaml 2025-08-02 13:45:15 +08:00
c0860cd275 update 2025-08-02 13:34:50 +08:00
bfd125fc4f Update loki.service.tpl 2025-08-02 13:30:02 +08:00
a115ab28ba Update loki-config.yaml 2025-08-02 13:29:42 +08:00
d21b126401 update 2025-08-02 13:24:10 +08:00
410bf03682 Update loki.service.tpl 2025-08-02 13:21:35 +08:00
0a9f3de5c3 Update index.py 2025-08-02 13:18:47 +08:00
0ecadb918b Update index.py 2025-08-02 13:16:43 +08:00
e90b055f12 Update loki.service.tpl 2025-08-02 13:14:13 +08:00
02877dc23c Update index.py 2025-08-02 12:40:08 +08:00
e22439af4c update 2025-08-02 12:33:11 +08:00
298c777971 update 2025-08-02 12:31:35 +08:00
39cf12f51a Update linux.sh 2025-08-02 11:30:40 +08:00
276bc480cf Update install.sh 2025-08-02 11:10:43 +08:00
f0b2820034 Update linux.sh 2025-08-02 11:08:32 +08:00
ba65103df4 Update index.py 2025-08-02 11:07:08 +08:00
ae64b70f10 Update linux.sh 2025-08-02 11:04:01 +08:00
56ea2dd6f4 Update linux.sh 2025-08-02 11:02:31 +08:00
1633b9fca7 Update install.sh 2025-08-02 00:04:26 +08:00
cb7a79953f update 2025-08-01 23:33:43 +08:00
5c12d9d6a6 Update install.sh 2025-08-01 19:30:28 +08:00
244ae40969 update 2025-08-01 19:27:48 +08:00
e2b7fec286 Update install.sh 2025-08-01 19:20:39 +08:00
4cc2bc16c0 Update grafana.js 2025-08-01 19:19:29 +08:00
24a4872058 Update index.py 2025-08-01 19:18:20 +08:00
91a9788706 update 2025-08-01 19:17:14 +08:00
2a6ef8853d update 2025-08-01 19:10:26 +08:00
56358508c8 Update index.py 2025-08-01 18:57:27 +08:00
976b94464e Update index.py 2025-08-01 18:57:05 +08:00
d166a0ccfb Update index.html 2025-08-01 18:55:32 +08:00
7c5c389629 update 2025-08-01 18:54:20 +08:00
f447b527eb update 2025-08-01 18:52:52 +08:00
a251714989 Update install.sh 2025-08-01 18:50:28 +08:00
ea27f817e3 Update grafana.service.tpl 2025-08-01 18:48:58 +08:00
b6fb47fc16 update 2025-08-01 18:44:34 +08:00
fa540d516d Update install.sh 2025-08-01 18:37:17 +08:00
4b068d2a52 Update grafana.service.tpl 2025-08-01 18:34:35 +08:00
50f5289e2e Update grafana.service.tpl 2025-08-01 18:26:02 +08:00
1ba20a4ea7 Update grafana.service.tpl 2025-08-01 18:20:55 +08:00
e18067b2f0 Update index.py 2025-08-01 18:18:04 +08:00
025f19728f up 2025-08-01 18:14:54 +08:00
248496021a up 2025-08-01 18:12:07 +08:00
d56a73f0f7 Update linux.sh 2025-08-01 17:50:09 +08:00
a2b68ebce1 Update grafana.js 2025-08-01 17:27:00 +08:00
93b92f2b17 Update index.py 2025-08-01 17:26:02 +08:00
f5219bf79b Update index.py 2025-08-01 17:21:51 +08:00
cc1d99d9c9 Update index.py 2025-08-01 17:20:33 +08:00
f7101db942 Update linux.sh 2025-08-01 17:10:14 +08:00
97ae9d17bf Update linux.sh 2025-08-01 17:08:06 +08:00
a5624e7e3c Update linux.sh 2025-08-01 17:04:34 +08:00
0be42900c1 Update install.sh 2025-08-01 17:02:51 +08:00
9722e1ca64 update 2025-08-01 17:02:31 +08:00
63a20506a0 Update info.json 2025-08-01 16:58:28 +08:00
9b334e416f update 2025-08-01 16:55:54 +08:00
7805956cdf update 2025-07-30 15:33:03 +08:00
04ffd0ad45 Update install.sh 2025-07-30 15:30:51 +08:00
f6e7055c2b Update info.json 2025-07-30 13:23:05 +08:00
77167655e8 update 2025-07-30 13:22:42 +08:00
Mr Chen
24e2d0a3db Merge pull request #791 from midoks/dev
mysql强制修改密码
2025-07-27 17:20:18 +08:00
29795074fe Update index.py 2025-07-27 17:17:17 +08:00
e017675b4d Update index.py 2025-07-27 17:14:19 +08:00
74a9897deb Update index.py 2025-07-27 17:03:02 +08:00
f593e77d35 Update mysql.js 2025-07-27 17:01:36 +08:00
8b9ab7f0b8 Update mysql.js 2025-07-27 17:00:45 +08:00
02951833cc Update mysql.js 2025-07-27 16:58:53 +08:00
08e300d065 Update index.py 2025-07-27 16:56:56 +08:00
776e4c2418 Update index.py 2025-07-27 16:53:42 +08:00
cbe439815d Update index.py 2025-07-27 16:50:42 +08:00
5c43222e4f Update index.py 2025-07-27 16:49:54 +08:00
a6fe7e2fe3 Update index.py 2025-07-27 16:49:17 +08:00
6f6523836d Update index.py 2025-07-27 16:48:44 +08:00
650a57350c Update index.py 2025-07-27 16:48:25 +08:00
736b34e834 Update index.py 2025-07-27 16:45:55 +08:00
d29682fd19 Update index.py 2025-07-27 16:44:09 +08:00
59c9058426 Update index.py 2025-07-27 16:43:26 +08:00
dbd32201c5 Update index.py 2025-07-27 16:40:56 +08:00
55158a67fc Update index.py 2025-07-27 16:40:27 +08:00
49dfe99a14 Update index.py 2025-07-27 16:23:53 +08:00
165672f9fd Update index.py 2025-07-27 16:22:51 +08:00
3bf03aa0b2 Update index.py 2025-07-27 16:20:49 +08:00
8ccbe8e7a6 Update index.py 2025-07-27 16:17:02 +08:00
1d54f90c95 Update index.py 2025-07-27 16:11:56 +08:00
000de62093 Update index.py 2025-07-27 16:09:05 +08:00
7ed82a796a Update install.sh 2025-07-27 16:07:50 +08:00
4ad7e4c3f3 Update index.py 2025-07-27 16:07:41 +08:00
e1c17d8926 update 2025-07-27 15:58:59 +08:00
47cc40d0dd Update index.py 2025-07-27 15:56:34 +08:00
1a66d91885 Update mysql.js 2025-07-27 15:56:27 +08:00
01fbe11831 Update orm.py 2025-07-27 15:41:28 +08:00
d834965d79 Update orm.py 2025-07-27 15:37:30 +08:00
b6eeb79500 Update README.md 2025-07-25 11:56:51 +08:00
460d6c4e02 Update manticore.conf 2025-07-23 12:47:27 +08:00
c6089bd480 Update sphinx_make.py 2025-07-23 12:44:12 +08:00
3d18d4bc6f Update manticore.conf 2025-07-23 12:41:07 +08:00
61954b820f Update manticore.conf 2025-07-23 12:40:18 +08:00
dee67c6ea2 Update index.py 2025-07-23 12:31:19 +08:00
2fdaf1d482 update 2025-07-23 12:30:24 +08:00
8af986a4c5 Update sphinx_make.py 2025-07-23 12:18:29 +08:00
c3a13b66e6 Update index.py 2025-07-23 12:13:20 +08:00
Mr Chen
78111fd408 Merge pull request #788 from midoks/dev
manticoresearch插件配置优化
2025-07-23 12:05:04 +08:00
efeaa3f0b5 Update sphinx_make.py 2025-07-23 12:04:29 +08:00
aed5e1aa63 Update index.py 2025-07-23 11:58:35 +08:00
44211065a0 Update index.py 2025-07-23 11:55:05 +08:00
364d38cc05 Update install_dev.sh 2025-07-23 11:47:53 +08:00
b38bfd7ada Update index.py 2025-07-23 11:32:48 +08:00
f05efd1693 Update mw.tpl 2025-07-22 18:06:15 +08:00
c64b03135c Update alpine.sh 2025-07-22 17:56:07 +08:00
860a50f025 Update update.sh 2025-07-22 17:54:47 +08:00
5e9706ca23 Update install.sh 2025-07-22 17:54:35 +08:00
d3d23fe7b9 Update alpine.sh 2025-07-22 17:54:10 +08:00
af2aa2e083 Update alpine.sh 2025-07-22 17:44:34 +08:00
bb52b17a12 Update alpine.sh 2025-07-22 17:37:01 +08:00
17c68cb9b7 Update alpine.sh 2025-07-22 17:36:31 +08:00
5c3fe16e9c Update install_dev.sh 2025-07-22 17:30:21 +08:00
81ce4e3445 Update alpine.sh 2025-07-22 17:27:45 +08:00
9aaa5174bb Update update_dev.sh 2025-07-22 17:23:55 +08:00
8d9c89d281 update 2025-07-22 17:20:56 +08:00
Mr Chen
62fa42f1ba Merge pull request #787 from midoks/dev
manticoresearch状态修复
2025-07-22 00:35:59 +08:00
502cb1595f Update index.py 2025-07-22 00:33:13 +08:00
c1e358e9fd Update index.py 2025-07-22 00:33:01 +08:00
7600ef1b30 Update index.html 2025-07-22 00:14:54 +08:00
b9057da526 Update index.py 2025-07-22 00:14:05 +08:00
99e143b686 up 2025-07-22 00:10:10 +08:00
Mr Chen
0414f1f4de Merge pull request #786 from midoks/dev
增加插件manticoresearch
2025-07-21 21:28:24 +08:00
80f651d17a Update index.py 2025-07-21 21:03:19 +08:00
1a373eb876 Update install.sh 2025-07-21 21:01:09 +08:00
5882b6b58e Update index.py 2025-07-21 20:49:12 +08:00
f876e56a2d Update install.sh 2025-07-21 20:34:21 +08:00
ac98ec92e4 Update tool_cron.py 2025-07-21 20:32:25 +08:00
6cf6445c01 Update index.py 2025-07-21 20:31:00 +08:00
062a6def14 Update tool_cron.py 2025-07-21 20:30:42 +08:00
282a5451f8 Update index.py 2025-07-21 20:02:08 +08:00
b410f782e6 Update sphinx_make.py 2025-07-21 19:50:36 +08:00
f4d997957c Update index.py 2025-07-21 19:46:02 +08:00
5551c7d341 Update discuz.conf 2025-07-21 19:43:28 +08:00
642e028fca Update discuz.conf 2025-07-21 19:42:54 +08:00
ffe5cd21e5 Update index.py 2025-07-21 19:41:02 +08:00
93679924f4 up 2025-07-21 19:25:59 +08:00
212e3c1066 Update sphinx_make.py 2025-07-21 19:23:18 +08:00
ebd4baa6ff Update sphinx_make.py 2025-07-21 19:23:05 +08:00
6d846144dc Update sphinx_make.py 2025-07-21 19:20:52 +08:00
e9767ee6c7 Update sphinx_make.py 2025-07-21 19:19:09 +08:00
b4a77f25f9 Update sphinx_make.py 2025-07-21 19:18:03 +08:00
08098f48a0 Update sphinx_make.py 2025-07-21 19:17:11 +08:00
478ebe95f0 Update discuz.conf 2025-07-21 19:14:27 +08:00
bc48b85478 up 2025-07-21 19:09:44 +08:00
a5f7610230 Update index.py 2025-07-21 19:06:31 +08:00
98157bbc8b Update index.py 2025-07-21 19:05:34 +08:00
4e0792b139 Update discuz.conf 2025-07-21 18:51:19 +08:00
a171970c96 Update index.py 2025-07-21 18:46:39 +08:00
38490fd462 Create discuz.conf 2025-07-21 18:45:23 +08:00
b9726cc23f Update install.sh 2025-07-21 18:16:38 +08:00
e047696fba Update info.json 2025-07-21 18:13:24 +08:00
bea5a0896a Update install.sh 2025-07-21 18:12:18 +08:00
c15ddb64e8 Update install.sh 2025-07-21 18:07:18 +08:00
e4e3cbd68e update 2025-07-21 18:04:27 +08:00
fd8b27d3f1 Update install.sh 2025-07-21 17:58:53 +08:00
497a1632c0 Update install.sh 2025-07-21 17:58:43 +08:00
5e991a9708 Update manticore.conf 2025-07-21 17:55:46 +08:00
0e49874d38 update 2025-07-21 17:55:36 +08:00
a93b99bca7 Update install.sh 2025-07-21 17:38:33 +08:00
4d541c175c Update install.sh 2025-07-21 17:37:56 +08:00
588de95004 Update install.sh 2025-07-21 17:34:06 +08:00
8850d73ea3 Update install.sh 2025-07-21 17:33:38 +08:00
feca7c7d7c Update manticore.conf 2025-07-21 17:32:22 +08:00
1507368ea7 Update index.py 2025-07-21 17:20:34 +08:00
ce74ec97fb Update index.py 2025-07-21 17:20:12 +08:00
1fd5e2c3f6 update 2025-07-21 17:19:20 +08:00
79e23fe0c7 Update index.py 2025-07-21 17:12:44 +08:00
ab0c62c73a Update index.py 2025-07-21 17:07:27 +08:00
e72de994ad up 2025-07-21 17:01:16 +08:00
364a84cc6d Update manticoresearch.js 2025-07-21 16:58:56 +08:00
40072c6423 Update index.py 2025-07-21 16:55:51 +08:00
2d56f71588 Update index.py 2025-07-21 16:55:03 +08:00
d7a8b87473 Update index.py 2025-07-21 16:51:53 +08:00
7c8c2c655c Update index.py 2025-07-21 16:50:31 +08:00
8ea870b2a7 Update index.py 2025-07-21 16:49:59 +08:00
7e1317a400 Update index.py 2025-07-21 16:49:26 +08:00
6569a4af3b Update index.py 2025-07-21 16:47:40 +08:00
31ee85a523 Update index.py 2025-07-21 16:44:48 +08:00
acf6384318 Update index.py 2025-07-21 16:44:29 +08:00
539426d585 update 2025-07-21 16:43:51 +08:00
f8401414d3 update 2025-07-21 16:41:00 +08:00
e3cbdb9420 Update index.py 2025-07-21 16:35:23 +08:00
823126dad6 update 2025-07-21 16:34:29 +08:00
6d3c8d6679 Update install.sh 2025-07-21 16:33:13 +08:00
da2ee9c6f4 update 2025-07-21 16:32:02 +08:00
0b4299d6c3 Update install.sh 2025-07-21 16:29:19 +08:00
0830419658 Update install.sh 2025-07-21 16:28:51 +08:00
85bfcd7447 manticoresearch初始化 2025-07-21 16:13:34 +08:00
729b7e0bcc Update index.py 2025-07-21 16:08:23 +08:00
4dbaf5d0f8 Update site.py 2025-07-20 23:19:38 +08:00
Mr Chen
cbad208be6 Merge pull request #785 from midoks/dev
更友好的顶级域名识别
2025-07-20 22:16:11 +08:00
f7992d8eae Update site.py 2025-07-20 22:04:02 +08:00
8c7c344ea9 update 2025-07-20 21:52:24 +08:00
Mr Chen
2a52aa61c1 Merge pull request #783 from midoks/dev
php版本更新
2025-07-20 17:05:30 +08:00
8d06bd94b8 Update xdebug.sh 2025-07-20 17:02:27 +08:00
8f53747515 Update swoole.sh 2025-07-20 17:02:16 +08:00
d7a997052d Update xhprof.sh 2025-07-20 16:30:42 +08:00
324e98b639 Update xdebug.sh 2025-07-20 16:15:20 +08:00
7aebb728f8 Update xdebug.sh 2025-07-20 16:13:04 +08:00
c386a2a57a Update xdebug.sh 2025-07-20 16:12:19 +08:00
6e5c4917d9 Update event.sh 2025-07-20 16:07:37 +08:00
d5d9ae51c5 Update all_test.sh 2025-07-20 16:04:38 +08:00
ca39f0da3a Update all_test.sh 2025-07-20 15:59:53 +08:00
41cdbb43fc Update swoole.sh 2025-07-20 15:53:41 +08:00
6f3897886e Update swoole.sh 2025-07-20 15:50:55 +08:00
6b1bfdfeca Update solr.sh 2025-07-20 15:48:49 +08:00
a07a37f256 Update solr.sh 2025-07-20 15:30:07 +08:00
896512cf3e Update imagemagick.sh 2025-07-20 15:25:30 +08:00
60602e68f5 Update mcrypt.sh 2025-07-20 15:19:47 +08:00
7066eb2632 Update memcached.sh 2025-07-20 14:35:29 +08:00
ddfdebced2 up 2025-07-20 13:52:29 +08:00
4913cc9ed6 update 2025-07-20 13:31:18 +08:00
6427bb794d Update swoole.sh 2025-07-20 12:51:15 +08:00
77bc7c85f8 Update swoole.sh 2025-07-20 12:50:46 +08:00
54a90a2e99 Update swoole.sh 2025-07-20 12:46:17 +08:00
e4a9c32caa Update all_mac.sh 2025-07-20 12:28:37 +08:00
13b9711d4a Update phplib.conf 2025-07-20 12:25:38 +08:00
af15d6a592 Update all_test.sh 2025-07-20 12:23:19 +08:00
132580ea6c Update phplib.conf 2025-07-20 12:18:45 +08:00
262ab0ab73 Update phplib.conf 2025-07-20 12:15:56 +08:00
1e19d70fa1 Update phplib.conf 2025-07-20 12:13:07 +08:00
48b8d530ca Update all_test.sh 2025-07-20 11:35:41 +08:00
1f35c5b8fa Update install.sh 2025-07-20 11:26:12 +08:00
574b87f5b5 update 2025-07-20 11:20:11 +08:00
88be69ffc7 update 2025-07-20 11:19:14 +08:00
Mr Chen
87e49e3244 Merge pull request #782 from midoks/dev
mysql 配置回退
2025-07-20 11:06:02 +08:00
4a392126cd update 2025-07-20 11:05:24 +08:00
c0489ebb44 Update info.json 2025-07-19 19:02:29 +08:00
ed65f63a37 Update index.py 2025-07-17 20:12:16 +08:00
Mr Chen
2b4ff60de0 Merge pull request #781 from midoks/dev
版本更新及细节优化
2025-07-17 18:04:06 +08:00
8069bf51ab update 2025-07-17 17:37:57 +08:00
369b53e2fd update 2025-07-17 11:19:33 +08:00
1cf0c1636b update 2025-07-17 11:15:34 +08:00
060fe39331 update 2025-07-17 11:13:19 +08:00
8bec4058e2 Update info.json 2025-07-17 11:11:13 +08:00
Mr Chen
61d30d6f77 Merge pull request #780 from midoks/dev
Update index.py
2025-07-16 15:48:56 +08:00
7daae8a129 Update index.py 2025-07-16 15:47:01 +08:00
Mr Chen
ab2c9e450e Merge pull request #779 from midoks/dev
Dev
2025-07-16 15:34:06 +08:00
24c269bf4c Update install.sh 2025-07-16 15:29:54 +08:00
8f0c8fd800 Update install.sh 2025-07-16 15:29:21 +08:00
Mr Chen
a0e29a2bc2 Merge pull request #778 from midoks/dev
0.18.2
2025-07-16 15:22:03 +08:00
94cab2e71a update 2025-07-16 15:20:50 +08:00
266b9fa5c2 up 2025-07-16 11:47:23 +08:00
Mr Chen
31de8edc4a Merge pull request #777 from midoks/dev
Update site_reflect.py
2025-07-15 18:30:26 +08:00
1e59eda9a9 Update site_reflect.py 2025-07-15 18:23:40 +08:00
Mr Chen
36c3fcb395 Merge pull request #776 from midoks/dev
计划任务兼容性问题
2025-07-13 22:06:52 +08:00
ea8f0523d5 Update crontab.py 2025-07-13 21:34:46 +08:00
71625b7c0e Update init_cron.py 2025-07-13 21:19:30 +08:00
408a62c755 update 2025-07-13 10:58:05 +08:00
Mr Chen
da4a61b716 Merge pull request #775 from midoks/dev
0.18.1
2025-07-12 20:57:46 +08:00
996c4474ec Update version.py 2025-07-12 20:55:05 +08:00
cdc05d8d98 update 2025-07-12 20:44:37 +08:00
52892ef5df Update crontab.js 2025-07-12 20:34:50 +08:00
ce0340689b Update crontab.py 2025-07-12 20:34:06 +08:00
58cdb0db95 Update crontab.py 2025-07-12 20:28:40 +08:00
c2c49d09e9 Update crontab.py 2025-07-12 20:25:14 +08:00
c9a2997cea Update backup.py 2025-07-12 20:23:43 +08:00
94aba71ae4 Update backup.py 2025-07-12 20:17:16 +08:00
b80c7bdc23 Update backup.py 2025-07-12 20:12:31 +08:00
279231c08c update 2025-07-12 20:12:17 +08:00
ef47b839ad Update crontab.py 2025-07-12 19:54:24 +08:00
ffc8ae7d04 update 2025-07-12 17:43:45 +08:00
7d8269832f up 2025-07-12 16:42:10 +08:00
6ba516f66e Update default.sql 2025-07-12 14:26:09 +08:00
53d4fcbd6d update 2025-07-12 14:21:04 +08:00
237ef10545 update 2025-07-12 14:19:01 +08:00
23650aa800 update 2025-07-12 14:13:47 +08:00
9998691524 update 2025-07-12 13:59:05 +08:00
bd61a953ad Update public.js 2025-07-12 12:45:59 +08:00
f53379829c Update public.js 2025-07-12 01:35:49 +08:00
Mr Chen
04a4faba22 Merge pull request #774 from midoks/dev
编辑细节优化
2025-07-12 01:14:08 +08:00
65d4369306 Update public.js 2025-07-12 01:10:42 +08:00
6ab650d498 Update public.js 2025-07-12 00:20:17 +08:00
Mr Chen
2a06c108ac Merge pull request #773 from midoks/dev
Update public.js
2025-07-12 00:15:29 +08:00
3bd31c55fd Update public.js 2025-07-12 00:14:03 +08:00
Mr Chen
ea2fb6d4cd Merge pull request #772 from midoks/dev
编辑文件优化
2025-07-11 23:57:12 +08:00
d4dccc8016 Update public.js 2025-07-11 23:52:50 +08:00
3cdc78af1f Update push_ad.py 2025-07-11 15:37:26 +08:00
7784f0c929 Update push_notice_msg.py 2025-07-11 15:34:42 +08:00
a399d3d04a Update push_notice_msg.py 2025-07-11 15:33:39 +08:00
d261dd8fb4 Update push_notice_msg.py 2025-07-11 15:28:57 +08:00
273f475732 up 2025-07-04 08:40:56 +08:00
Mr Chen
35cce62b9b Merge pull request #769 from midoks/dev
修复mysql8+正确关闭二进制日志
2025-07-02 23:12:34 +08:00
7b5d2820ca up 2025-07-02 23:05:45 +08:00
46374cfb2d update 2025-07-02 23:00:48 +08:00
020bfb2abc Update index.py 2025-07-02 22:58:07 +08:00
d3ab317b34 Update index.py 2025-07-02 22:57:15 +08:00
da3dd52484 Update index.py 2025-07-02 22:54:38 +08:00
9514cd9cce Update my9.0.cnf 2025-07-02 22:52:34 +08:00
654a66062a Update my9.0.cnf 2025-07-02 22:52:18 +08:00
5ac5b13f9d update 2025-06-30 12:13:21 +08:00
Mr Chen
7f39bf5c6e Merge pull request #767 from midoks/dev
Update crontab.py
2025-06-26 17:30:00 +08:00
0e07a10dcf Update crontab.py 2025-06-26 15:45:03 +08:00
Mr Chen
8cbedd00b8 Merge pull request #766 from midoks/dev
acme.sh 定时每7天强制更新
2025-06-25 23:07:56 +08:00
d9d3d3fdb4 Update init_cron.py 2025-06-25 23:06:09 +08:00
364c142f0a Update init_cron.py 2025-06-25 23:04:07 +08:00
92c0177c44 Update init_cron.py 2025-06-25 22:59:42 +08:00
6bdca8c37e Update init_cron.py 2025-06-25 22:58:43 +08:00
fcb51e727a Update __init__.py 2025-06-25 22:57:34 +08:00
4523a10898 Update __init__.py 2025-06-25 22:56:39 +08:00
4e155c8039 Update init_cron.py 2025-06-25 22:55:40 +08:00
8b9f861f30 Update init_cron.py 2025-06-25 22:54:45 +08:00
Mr Chen
3595ae6066 Merge pull request #765 from midoks/dev
mysql 9.0 兼容优化
2025-06-25 18:55:27 +08:00
351d4a0ad6 Update index.py 2025-06-25 17:26:17 +08:00
c6e6771839 Update index.py 2025-06-25 17:21:18 +08:00
fb51e0fcd1 Update index.py 2025-06-25 17:05:09 +08:00
4fbf9c345d update 2025-06-25 17:03:45 +08:00
f3557e9acf update 2025-06-25 17:01:24 +08:00
cb7367264b Update index.py 2025-06-25 16:53:15 +08:00
2fb722edbf Update index.py 2025-06-25 16:50:22 +08:00
fce1608403 Update index.py 2025-06-25 16:46:38 +08:00
c6117cb599 update 2025-06-25 16:46:21 +08:00
c68e056267 Update index.py 2025-06-25 16:44:55 +08:00
4c9924580a Update index.py 2025-06-25 16:38:37 +08:00
058b3b8d62 Update index.py 2025-06-25 16:36:27 +08:00
1eb29acf7c Update index.py 2025-06-25 16:35:16 +08:00
48ac052de8 Update index.py 2025-06-25 16:35:03 +08:00
4863ff2a19 update 2025-06-25 16:32:59 +08:00
0b0fd8ea67 Update index.py 2025-06-25 16:25:48 +08:00
Mr Chen
b8f4ed2767 Merge pull request #759 from midoks/dev
Update file.py
2025-06-16 18:44:21 +08:00
732eba7d7d Update file.py 2025-06-16 18:43:19 +08:00
Mr Chen
8b676f3c1b Merge pull request #758 from midoks/dev
Update file.py
2025-06-12 15:40:50 +08:00
960ca4deca Update file.py 2025-06-12 15:37:14 +08:00
Mr Chen
63ecec4edb Merge pull request #757 from midoks/dev
bug! 根目录解压引起所有目录权限发生变化-限制
2025-06-12 15:18:40 +08:00
c6f04aa26f Update file.py 2025-06-12 15:18:22 +08:00
8f29df66d5 Update file.py 2025-06-12 15:11:12 +08:00
2d9e62aedb Update file.py 2025-06-12 15:10:25 +08:00
eba511add2 Update file.py 2025-06-12 15:09:42 +08:00
Mr Chen
e9e38d5224 Merge pull request #756 from midoks/dev
Update setting.py
2025-06-12 13:18:59 +08:00
b131ba8b93 Update setting.py 2025-06-12 13:17:44 +08:00
Mr Chen
a12046fe93 Merge pull request #755 from midoks/dev
简单优化
2025-06-12 08:11:46 +08:00
769f065bdf update 2025-06-12 08:10:42 +08:00
81f9ee5eca Update git.tpl 2025-06-09 23:03:14 +08:00
42fb44dd15 Update backup.py 2025-06-09 19:09:50 +08:00
600bb8b516 Update site.py 2025-06-04 15:58:34 +08:00
Mr Chen
8831d91cbe Merge pull request #753 from midoks/dev
PHP GD优化
2025-06-04 15:48:29 +08:00
d7d734565c Update gd_old.sh 2025-06-04 15:45:06 +08:00
791e9bf156 Update gd_old.sh 2025-06-04 15:43:20 +08:00
284812b4e3 Update gd_old.sh 2025-06-04 15:43:05 +08:00
505d59bc77 Update install.sh 2025-06-04 12:47:52 +08:00
Mr Chen
02eda25aaf Merge pull request #751 from midoks/dev
优化
2025-05-29 19:11:46 +08:00
d19521810e Update __init__.py 2025-05-29 19:10:41 +08:00
f8d17724f9 update 2025-05-29 19:07:51 +08:00
Mr Chen
6548125747 Merge pull request #750 from midoks/dev
常规优化
2025-05-29 18:51:51 +08:00
ef375619b6 php 默认的 mysql 连接配置,可支持localhost连接 2025-05-29 18:49:17 +08:00
fe89ae1846 Update index.py 2025-05-29 18:45:55 +08:00
4ccf142917 Update push_ad.py 2025-05-27 16:38:50 +08:00
Mr Chen
89fbeb85a2 Merge pull request #749 from midoks/dev
debian ufw 规则识别有优化
2025-05-27 11:09:07 +08:00
62b3d15991 Update firewall.py 2025-05-27 11:04:38 +08:00
52a305f5cd Update firewall.py 2025-05-27 11:01:21 +08:00
Mr Chen
658305ef28 Merge pull request #748 from midoks/dev
ACME泛域名SSL申请 第二次优化
2025-05-25 20:38:09 +08:00
19295e2832 Update common.js 2025-05-25 20:37:22 +08:00
719e8165f1 Update common.js 2025-05-25 20:20:10 +08:00
Mr Chen
d5ba280654 Merge pull request #747 from midoks/dev
ACME泛域名SSL - 插件优化
2025-05-25 20:14:53 +08:00
00dc48b439 Update index.py 2025-05-25 20:11:06 +08:00
8cc87ba7a0 Update acme.sql 2025-05-25 20:04:59 +08:00
8b2f7ee188 Update common.js 2025-05-25 20:03:18 +08:00
167c551b89 Update common.js 2025-05-25 20:02:42 +08:00
b57968d106 Update common.js 2025-05-25 19:57:26 +08:00
68514b8eae Update index.py 2025-05-25 19:27:54 +08:00
88a8e35793 Update tool_cron.py 2025-05-25 19:21:34 +08:00
ec4dcb2720 Update tool_cron.py 2025-05-25 19:20:15 +08:00
f01b64edd5 Update goedge.py 2025-05-25 19:05:10 +08:00
ef0b2af84b Update tool_cron.py 2025-05-25 19:04:55 +08:00
90af2e0c3c Update install.sh 2025-05-25 01:59:46 +08:00
344393244e Update info.json 2025-05-25 01:54:21 +08:00
96c75eb2d3 php优化 2025-05-25 00:14:07 +08:00
5594cbd1a8 php优化 2025-05-25 00:09:40 +08:00
Mr Chen
cb87abf19a Merge pull request #746 from midoks/dev
Update __init__.py
2025-05-24 23:06:48 +08:00
bf21399113 Update __init__.py 2025-05-24 23:06:24 +08:00
Mr Chen
f0fc8a644b Merge pull request #745 from midoks/dev
放开子目录绑定
2025-05-24 19:32:18 +08:00
a668234f2a Update site.py 2025-05-24 19:31:35 +08:00
6e80450e37 Update __init__.py 2025-05-24 18:54:20 +08:00
5639be6713 Update monitor.py 2025-05-24 18:48:57 +08:00
d36da3dc59 Update init.py 2025-05-24 18:45:59 +08:00
e83c743908 Update __init__.py 2025-05-24 18:45:41 +08:00
3410103859 Update default.sql 2025-05-24 18:45:36 +08:00
2685d9ebec Update .gitignore 2025-05-24 18:40:56 +08:00
c5574b3d93 Update site.js 2025-05-24 15:41:30 +08:00
832d65bac8 Update default.sql 2025-05-24 15:10:00 +08:00
8394f43b3f Update default.sql 2025-05-24 15:09:46 +08:00
Mr Chen
c77ab16f3b Merge pull request #744 from midoks/dev
ssh连接优化
2025-05-24 01:16:31 +08:00
2d10a3a69e Update ssh_local.py 2025-05-24 01:05:41 +08:00
90714961eb Update ssh_local.py 2025-05-24 01:04:26 +08:00
b2586adda0 Update ssh_local.py 2025-05-24 01:03:31 +08:00
d11dbbccb7 Update ssh_local.py 2025-05-24 01:03:08 +08:00
1390afae0e Update ssh_local.py 2025-05-24 01:00:59 +08:00
3ec2d5e757 Update ssh_terminal.py 2025-05-24 00:56:16 +08:00
cc0d0407af Update ssh_terminal.py 2025-05-24 00:56:05 +08:00
1e9e437b1c update 2025-05-24 00:54:02 +08:00
eae75e24f9 Update ssh_terminal.py 2025-05-24 00:53:34 +08:00
045d672d68 Update ssh_local.py 2025-05-24 00:51:38 +08:00
caeff7de55 Update ssh_local.py 2025-05-24 00:51:29 +08:00
b2785070bc Update ssh_terminal.py 2025-05-24 00:46:53 +08:00
545dbeecca 先尝试默认端口 2025-05-24 00:44:49 +08:00
b4fa69642c Update index.py 2025-05-23 23:44:08 +08:00
f84fcc035c Update git.tpl 2025-05-23 23:43:04 +08:00
f556eb9607 Update git.tpl 2025-05-23 23:41:32 +08:00
b8aa2ffc38 Update index.py 2025-05-23 23:36:46 +08:00
2be79ead78 Update index.py 2025-05-23 23:36:12 +08:00
c900048329 update 2025-05-23 23:35:02 +08:00
b7850eaa29 Update index.py 2025-05-23 23:22:27 +08:00
ec5a5c8d15 Update index.py 2025-05-23 23:21:20 +08:00
94c51196cf Update requirements.txt 2025-05-23 23:07:23 +08:00
35c18c807f Update requirements.txt 2025-05-23 23:02:48 +08:00
da3d44fc2a Update requirements.txt 2025-05-23 23:00:34 +08:00
Mr Chen
b9b9ab9006 Merge pull request #743 from midoks/dev
mariadb数据库备份问题
2025-05-23 17:18:16 +08:00
5df23c79e7 Update backup.py 2025-05-23 15:08:00 +08:00
Mr Chen
ee4d49752d Merge pull request #741 from midoks/dev
简单优化
2025-05-19 03:18:05 +08:00
d26bf25359 Update mw.py 2025-05-19 02:40:33 +08:00
b1edc7b2fb Update site.py 2025-05-18 16:14:01 +08:00
459fb086d0 update 2025-05-18 14:12:01 +08:00
Mr Chen
7872391c54 Merge pull request #740 from midoks/dev
webhook优化
2025-05-18 11:09:20 +08:00
c2f4171ee9 update 2025-05-18 11:04:56 +08:00
9fdfa1c22f Update git.tpl 2025-05-18 10:23:23 +08:00
8ad3018fe7 Update git.tpl 2025-05-18 10:22:33 +08:00
64883aa424 update 2025-05-18 10:20:03 +08:00
6a41f68289 update 2025-05-18 09:40:10 +08:00
ffd96b03e5 Update commit.tpl 2025-05-17 21:17:50 +08:00
961dd5a56e Update index.py 2025-05-17 21:07:59 +08:00
Mr Chen
f5cb8ba23d Merge pull request #739 from midoks/dev
简单的优化
2025-05-16 23:57:46 +08:00
6bfe9ea2af Update info.json 2025-05-16 23:48:35 +08:00
134b9ce2f2 php最新版本 2025-05-16 23:44:57 +08:00
54582fb676 mysql配置优化 2025-05-16 23:31:08 +08:00
Mr Chen
2e9864be2a Merge pull request #738 from midoks/dev
面板关联优化
2025-05-16 19:08:50 +08:00
73f01522ed Update public.js 2025-05-16 19:06:48 +08:00
Mr Chen
73a67ebdd6 Merge pull request #736 from midoks/dev
文件管理-右键菜单优化
2025-05-16 04:19:14 +08:00
92c000f63e 右键菜单优化 2025-05-16 04:15:24 +08:00
665d278b52 Update index.py 2025-05-16 02:56:35 +08:00
9393775e90 Update index.py 2025-05-16 02:55:28 +08:00
Mr Chen
fe441c7afe Merge pull request #735 from midoks/dev
mysql9的同步优化
2025-05-16 02:51:06 +08:00
c865ff433b Update index.py 2025-05-16 02:49:16 +08:00
7eb729e809 Update index.py 2025-05-16 02:41:41 +08:00
Mr Chen
f667fbff55 Merge pull request #734 from midoks/dev
细节调优
2025-05-16 02:06:31 +08:00
7c6b5bb200 Update file.py 2025-05-16 02:03:52 +08:00
d00ee1a35a Update file.py 2025-05-16 02:02:20 +08:00
Mr Chen
7364e19051 Merge pull request #733 from midoks/dev
优化
2025-05-16 01:56:29 +08:00
97263ba55d Update files.js 2025-05-16 01:55:42 +08:00
a9cccbb85f Update files.js 2025-05-16 01:55:35 +08:00
Mr Chen
732bdd5a1c Merge pull request #732 from midoks/dev
支持多种压缩和解压
2025-05-16 01:48:53 +08:00
2934d8fd7d 支持多种压缩和解压
7z,tgz,zip,rar
2025-05-16 01:47:31 +08:00
992555e80e Update cmd.md 2025-05-10 14:51:54 +08:00
4a1348403a Update app.sh 2025-05-06 15:42:15 +08:00
Mr Chen
6353a4dc58 Merge pull request #731 from midoks/dev
redis/memcached版本更新
2025-05-03 10:35:45 +08:00
9e45f493c6 update 2025-05-03 10:34:03 +08:00
66fc8c43db Update info.json 2025-05-03 10:31:26 +08:00
e4761d52bc Update info.json 2025-05-03 10:29:30 +08:00
Mr Chen
893eccfa07 Merge pull request #730 from midoks/dev
PHP最新版本
2025-05-01 23:05:58 +08:00
fc3dc8276a update 2025-05-01 21:01:05 +08:00
Mr Chen
9ab5e3354d Merge pull request #729 from midoks/dev
基本优化
2025-05-01 15:32:53 +08:00
ec607798b5 Update index.py 2025-05-01 15:31:13 +08:00
b01a2d15de Update index.py 2025-05-01 15:29:14 +08:00
7e3f40cb20 系统优化加入hosts修改 2025-05-01 15:22:50 +08:00
7a38224198 Update install.sh 2025-05-01 11:56:32 +08:00
5a4f1c3cce update ad 2025-05-01 09:46:23 +08:00
f5287e42ca update 2025-05-01 09:45:57 +08:00
Mr Chen
3ec02b8ead Merge pull request #728 from midoks/dev
0.17.0升级0.18.0升级后,站点修复
2025-04-26 18:15:41 +08:00
d25e4b3093 0.17.0升级0.18.0升级后,站点修复 2025-04-26 18:14:29 +08:00
0b81a1402e Update site_reflect.py 2025-04-26 17:54:05 +08:00
891ba787e1 Update site_reflect.py 2025-04-26 17:53:40 +08:00
85a85a83e4 Update site_reflect.py 2025-04-26 02:51:09 +08:00
449b4e6882 Update site_reflect.py 2025-04-26 01:43:59 +08:00
fba98f5ed6 up 2025-04-26 00:32:43 +08:00
fda19b6103 update 2025-04-18 19:51:49 +08:00
Mr Chen
d6d2325506 Merge pull request #727 from midoks/dev
OP防火墙修复
2025-04-16 00:54:01 +08:00
d4354f1a65 update 2025-04-16 00:49:45 +08:00
7ebe82cf9c Update install.sh 2025-04-16 00:34:08 +08:00
3029f8d263 update 2025-04-15 23:49:42 +08:00
Mr Chen
00d3aaeb22 Merge pull request #726 from midoks/dev
修复mysql问题
2025-04-14 16:59:13 +08:00
a8bd5cbbeb Update index.py 2025-04-14 16:57:05 +08:00
48bcf77deb Create mysql9.2.service.tpl 2025-04-14 16:54:00 +08:00
Mr Chen
a24f3b72bd Merge pull request #725 from midoks/dev
mysql优化
2025-04-14 16:39:53 +08:00
e916e134dc update 2025-04-14 16:22:51 +08:00
b9b18b063c Update index.py 2025-04-14 16:00:22 +08:00
753460c594 Update index.py 2025-04-14 15:59:52 +08:00
e6f8e3e6e3 Update index.py 2025-04-14 15:49:30 +08:00
952c6da41c Update push_notice_msg.py 2025-04-14 15:27:19 +08:00
adb1d0b26d update 2025-04-14 15:24:30 +08:00
Mr Chen
15efadfa9e Merge pull request #723 from midoks/dev
网站统计安装优化
2025-04-13 16:05:48 +08:00
f09cc4996b Update install.sh 2025-04-13 16:04:55 +08:00
01a81156cc Create install.old.sh 2025-04-13 15:58:27 +08:00
89ee88d734 Update logs.py 2025-04-12 14:20:28 +08:00
Mr Chen
23880fdb91 Merge pull request #721 from midoks/dev
简单优化
2025-04-12 14:09:38 +08:00
10628d1c69 Update logs.py 2025-04-12 13:56:38 +08:00
897e54cb86 Update pg.py 2025-04-09 11:41:01 +08:00
85da840688 update 2025-04-08 18:21:53 +08:00
10348168eb Update install_dev.sh 2025-04-08 17:58:35 +08:00
4a2570f96a Update install.sh 2025-04-08 17:57:38 +08:00
Mr Chen
65a4635b09 Merge pull request #720 from midoks/dev
Update files.js
2025-04-05 18:29:31 +08:00
3a5264b783 Update files.js 2025-04-03 00:22:46 +08:00
Mr Chen
b5866f2a90 Merge pull request #719 from midoks/dev
mysql9.0优化
2025-04-02 16:22:02 +08:00
a35913ab78 update 2025-04-02 16:21:16 +08:00
cc27602454 Update index.py 2025-04-02 16:18:44 +08:00
8920a1132c Update index.py 2025-04-02 16:07:40 +08:00
536c76b000 Update index.py 2025-04-02 15:42:06 +08:00
d054f7f9cd Update index.py 2025-04-02 15:39:59 +08:00
Mr Chen
16bab8f0fa Merge pull request #718 from midoks/dev
mysql9.0相关优化
2025-04-02 13:01:39 +08:00
b7aa774eb7 Update index.py 2025-04-02 12:53:11 +08:00
cef521390a Update index.py 2025-04-02 12:50:50 +08:00
f4cda4ec36 Update index.py 2025-04-02 12:48:38 +08:00
628b65a569 update 2025-04-02 12:48:06 +08:00
142f0fc6c9 Update install.sh 2025-04-02 11:06:47 +08:00
fe0f3f63a2 Update index.py 2025-04-01 22:02:42 +08:00
Mr Chen
dd3f5fdb0c Merge pull request #716 from midoks/dev
修复bug(crontab)
2025-03-29 14:09:38 +08:00
Mr Chen
b7dd2fa05d Merge pull request #715 from moonlightwatch/fix/crontab_echo_name_error
fix: rename cron_name to cron_shell
2025-03-29 14:08:16 +08:00
moonlightwatch
1cf471704c fix: rename cron_name to cron_shell 2025-03-29 14:04:21 +08:00
54f8fdeec2 Update my9.2.cnf 2025-03-26 01:20:21 +08:00
7ea45e4c0a Update my9.2.cnf 2025-03-26 01:17:27 +08:00
5b93e616dc Update my9.2.cnf 2025-03-26 01:13:14 +08:00
2c4176de32 Update index.py 2025-03-26 01:07:25 +08:00
114dcea023 update 2025-03-26 00:57:45 +08:00
3c6b5f3573 update 2025-03-25 12:53:08 +08:00
Mr Chen
258b9b610f Merge pull request #713 from midoks/dev
mysql关闭/开启 二进制日志优化
2025-03-25 12:49:22 +08:00
717d2b1ad0 mariadb更新 2025-03-25 12:48:32 +08:00
3cdd7027d6 Update index.py 2025-03-25 12:45:42 +08:00
c5dc755cb6 Update index.py 2025-03-25 12:45:00 +08:00
89d13494c0 Update index.py 2025-03-25 12:43:24 +08:00
6fe6f55df8 Update info.json 2025-03-25 12:26:05 +08:00
2f38ecf505 update 2025-03-25 12:21:18 +08:00
c4ba4b4702 Create my9.2.cnf 2025-03-25 12:19:43 +08:00
eab13531d4 Update index.py 2025-03-25 12:06:48 +08:00
62d78dbed8 update 2025-03-25 11:55:05 +08:00
f5a4f1b275 ad 2025-03-24 23:40:11 +08:00
ebe761b1cf Update linux.conf 2025-03-24 11:18:01 +08:00
6e754f2f7b Update __init__.py 2025-03-24 10:38:37 +08:00
39cd3d1f4d Update init_cron.py 2025-03-24 00:06:42 +08:00
778d595e6e Update crontab.py 2025-03-23 18:24:41 +08:00
5f4622fdcd Update init_cron.py 2025-03-23 17:27:43 +08:00
9664609bbd Update init_cron.py 2025-03-23 17:14:49 +08:00
aa92699562 Update requirements.txt 2025-03-23 17:14:23 +08:00
edc45d5d3b Update mw.tpl 2025-03-23 17:03:31 +08:00
ed732232f2 Update mw.tpl 2025-03-23 16:52:14 +08:00
db04b3f98a update 2025-03-23 16:50:30 +08:00
fb7c5d9d47 update 2025-03-20 11:48:12 +08:00
7d7df74500 Update .gitignore 2025-03-20 00:14:55 +08:00
909ba46f66 Update index.py 2025-03-10 17:55:03 +08:00
df84ad25d6 Update info.json 2025-03-10 17:47:42 +08:00
178cfb17f3 Update index.py 2025-03-10 17:43:02 +08:00
fcef7ec3ca Update index.py 2025-03-08 14:47:35 +08:00
c1e758c9df Revert "Update index.py"
This reverts commit f40cfb7d25.
2025-03-08 14:46:29 +08:00
a06c98d52f Revert "Update index.py"
This reverts commit bf49153973.
2025-03-08 14:46:22 +08:00
bf49153973 Update index.py 2025-03-08 14:43:55 +08:00
dami
f40cfb7d25 Update index.py 2025-03-08 14:37:05 +08:00
dcd4527c75 update 2025-03-06 20:34:57 +08:00
Mr Chen
225ea91f43 Merge pull request #712 from midoks/dev
简单优化
2025-03-01 22:18:31 +08:00
172ca05efa Update install.sh 2025-03-01 22:17:31 +08:00
b3e2c8d9df Update index.py 2025-02-25 20:22:41 +08:00
934327052d up 2025-02-23 22:33:02 +08:00
24a94b4965 Update info.json 2025-02-23 21:59:01 +08:00
c5385541a7 Update tamper_proof_service.py 2025-02-22 10:29:16 +08:00
5be2d5eb22 Update tamper_proof_service.py 2025-02-22 10:27:23 +08:00
3688cf6145 Update tamper_proof_service.py 2025-02-22 10:18:45 +08:00
Mr Chen
1328699da0 Merge pull request #710 from jd82k/master
fix bugs
2025-02-21 17:01:13 +08:00
jd82k
1b0e42c79e Update site.py
fix bugs
2025-02-20 22:40:07 -08:00
jd82k
6ca80e3d8c Update site.js
fix bugs
2025-02-20 22:38:37 -08:00
Mr Chen
d992541a78 Merge pull request #709 from midoks/dev
openresty1.17.1安装时http3参数缺少
2025-02-19 23:43:24 +08:00
d13adc707e Update install.sh 2025-02-19 23:15:18 +08:00
90d00d0d9a Update install.sh 2025-02-19 23:11:07 +08:00
Mr Chen
fbc9685b3c Merge pull request #708 from midoks/dev
php版本升级
2025-02-18 16:13:34 +08:00
5507cfdb7b Update install.sh 2025-02-18 16:12:50 +08:00
2c8de3e7be Create imagemagick.sh 2025-02-16 10:03:47 +08:00
cbba4adb19 Update imagemagick.sh 2025-02-16 09:48:07 +08:00
b1e36d8a71 Update imagemagick.sh 2025-02-16 09:43:42 +08:00
af6403d752 Update imagemagick.sh 2025-02-16 09:42:16 +08:00
232db27a15 update 2025-02-16 09:15:45 +08:00
e04fc75be0 Update index.py 2025-02-15 22:41:49 +08:00
5fd4c84a18 Update ubuntu.sh 2025-02-15 22:26:08 +08:00
ce65fb9234 Update imagemagick.sh 2025-02-15 22:21:34 +08:00
d8d8c630a5 update 2025-02-15 22:13:39 +08:00
08558b1581 Update imagemagick.sh 2025-02-15 21:14:41 +08:00
21637f170f up 2025-02-14 23:23:58 +08:00
Mr Chen
5013ffd38d Merge pull request #707 from midoks/dev
更新说明
2025-02-13 16:40:20 +08:00
f471368d21 Update README.md 2025-02-13 16:39:51 +08:00
Mr Chen
8ddf0168fd Merge pull request #706 from midoks/dev
webhook插件修复
2025-02-12 12:46:30 +08:00
5a4ba1297f Update dashboard.py 2025-02-12 12:44:53 +08:00
0608c531ed Update dashboard.py 2025-02-12 12:41:31 +08:00
5d242de4e2 update 2025-02-12 12:12:33 +08:00
b7efc0394b update 2025-02-11 01:17:13 +08:00
Mr Chen
16681d0193 Merge pull request #704 from midoks/dev
修复插件安装版本判断
2025-02-10 17:26:53 +08:00
31ea0865d1 Update plugin.py 2025-02-10 17:23:52 +08:00
602ad3390c Update README.md 2025-02-06 15:27:41 +08:00
Mr Chen
d8891a1767 Merge pull request #702 from midoks/dev
计划任务修复
2025-02-06 00:36:56 +08:00
2400a0b353 计划任务修复 2025-02-06 00:34:24 +08:00
Mr Chen
de0248d59a Merge pull request #701 from midoks/dev
解决ufw识别问题
2025-02-05 19:31:46 +08:00
3eb72d23f8 Update firewall.py 2025-02-05 19:21:37 +08:00
c0606112b2 update 2025-02-05 19:15:10 +08:00
5decb77f1e Update ubuntu.sh 2025-02-05 18:49:38 +08:00
a04b9487f1 update 2025-02-03 03:55:05 +08:00
8835cd4ab5 Update index.py 2025-02-03 03:31:43 +08:00
b17452a949 Update index.py 2025-02-03 03:30:09 +08:00
2072eee3a4 Update index.py 2025-02-03 03:24:34 +08:00
4321c0e6b3 up 2025-02-03 03:19:31 +08:00
f1f98b2624 Update index.py 2025-02-03 03:15:26 +08:00
ec37cee26c Update index.py 2025-02-03 03:11:00 +08:00
a8adaf7e5a Update index.py 2025-02-03 03:09:21 +08:00
84c763c39e Update phplib.conf 2025-02-03 03:06:43 +08:00
33e86c4f79 Update phplib.conf 2025-02-03 03:03:51 +08:00
c00f93a1d3 Update phplib.conf 2025-02-03 03:03:43 +08:00
81100f21b4 Update index.py 2025-02-03 02:48:30 +08:00
b8a720919f Update index.py 2025-02-03 02:41:32 +08:00
cba37ae2fc Update lam.js 2025-02-03 02:34:52 +08:00
5d15cbd4ea Update index.py 2025-02-03 02:29:45 +08:00
5f87606cf7 Create config.php 2025-02-03 02:29:21 +08:00
9b22efe3d4 Update index.py 2025-02-03 02:28:13 +08:00
675c3b27aa Update info.json 2025-02-03 02:26:40 +08:00
ddd9e70d05 Update install.sh 2025-02-03 02:24:24 +08:00
30ed2049e4 Update info.json 2025-02-03 02:21:19 +08:00
b8092ed6dd Update info.json 2025-02-03 02:19:38 +08:00
c80c0962dd Update info.json 2025-02-03 02:14:16 +08:00
63c223b237 Update install.sh 2025-02-03 02:13:02 +08:00
07aa49accc Update install.sh 2025-02-03 02:12:51 +08:00
c595c541fb lam 2025-02-03 02:09:45 +08:00
e6ec8b65ce Update index.py 2025-02-03 01:41:52 +08:00
bc8c455094 Update index.py 2025-02-03 01:39:51 +08:00
507820d25e Update index.py 2025-02-03 01:31:31 +08:00
35e08295ce Update install.sh 2025-02-03 01:28:16 +08:00
9e581d8608 update 2025-02-03 01:25:59 +08:00
dcb8e69aac Create install_debian.sh 2025-01-29 01:15:38 +08:00
617b354d03 update 2025-01-28 23:41:26 +08:00
76b095b344 Update config.php 2025-01-28 23:25:36 +08:00
Mr Chen
5ff05e8025 Merge pull request #700 from midoks/dev
网站防串改优化
2025-01-28 22:18:07 +08:00
b973a16247 Update tamper_proof_service.py 2025-01-28 22:06:29 +08:00
0cb5d7507f Update tamper_proof_py.service.tpl 2025-01-28 22:03:11 +08:00
2851ebf126 Update tamper_proof_service.py 2025-01-28 22:01:28 +08:00
2f5b1bb205 update 2025-01-28 22:01:05 +08:00
5528336698 Update tamper_proof_service.py 2025-01-28 21:52:13 +08:00
4eda80baa8 Update tamper_proof_service.py 2025-01-28 21:47:48 +08:00
02918d4bcd Update install.sh 2025-01-28 21:39:22 +08:00
8315e3ea96 Update phplib.conf 2025-01-28 17:12:43 +08:00
cae4a2ee13 update 2025-01-28 17:09:49 +08:00
26762eee73 Update phpldapadmin.js 2025-01-28 17:09:03 +08:00
2f05fb12a0 Update ico.png 2025-01-28 17:06:15 +08:00
befdf2e1d3 Update info.json 2025-01-28 16:58:42 +08:00
aac7b98913 Update phplib.conf 2025-01-28 16:55:15 +08:00
baa9b5e6bb Update phplib.conf 2025-01-28 16:52:09 +08:00
99c919811a Update phplib.conf 2025-01-28 16:51:03 +08:00
ac7a4e739e Create ldap.sh 2025-01-28 16:49:26 +08:00
f8936aa7bc Update install.sh 2025-01-28 16:44:36 +08:00
6933c44571 Update index.py 2025-01-28 16:40:20 +08:00
dfb2f4b3af Update index.py 2025-01-28 16:38:19 +08:00
6601aebddf Update index.py 2025-01-28 16:36:04 +08:00
4d2ca9587d update 2025-01-28 16:35:10 +08:00
694a5ceab2 Update index.py 2025-01-28 16:25:53 +08:00
e522093f6c update 2025-01-28 16:25:04 +08:00
feefa2e90a Update install.sh 2025-01-28 16:19:13 +08:00
3709569cd8 Update install.sh 2025-01-28 16:18:51 +08:00
052b4870bf Update install.sh 2025-01-28 16:17:35 +08:00
5cb413a911 Update install.sh 2025-01-28 16:13:36 +08:00
80e77dda3f update 2025-01-28 16:12:32 +08:00
7a3d554d6c Update index.py 2025-01-28 16:09:59 +08:00
ab0fb063cf update 2025-01-28 16:08:01 +08:00
caec558bea Update install.sh 2025-01-28 15:52:04 +08:00
2d44b62fef Update install.sh 2025-01-28 15:50:54 +08:00
f9cc72ba4a update 2025-01-28 15:48:26 +08:00
f8544d0600 update 2025-01-28 15:47:37 +08:00
c96d361b4d Update install.sh 2025-01-28 15:43:27 +08:00
fa5305f332 up 2025-01-28 15:42:56 +08:00
b996bdea93 update 2025-01-28 15:37:08 +08:00
1bae6538f7 Update index.html 2025-01-28 15:36:30 +08:00
5673964de4 Update index.py 2025-01-28 15:33:41 +08:00
25623170bb update 2025-01-28 15:33:14 +08:00
2aa5739cd8 update 2025-01-28 15:31:34 +08:00
bdff56843f Update index.py 2025-01-28 15:23:45 +08:00
6e563e6d74 Update index.py 2025-01-28 15:23:30 +08:00
334a3fb6fe update 2025-01-28 15:20:20 +08:00
a1d130a674 up 2025-01-28 15:02:06 +08:00
e14f2ea247 Update index.py 2025-01-28 14:59:57 +08:00
3f478eef8e Update install.sh 2025-01-28 14:55:42 +08:00
e929274b51 up 2025-01-28 14:47:07 +08:00
526c0301f6 Update tamper_proof_service.py 2025-01-28 12:54:53 +08:00
7e7a19829d Update ubuntu.sh 2025-01-24 17:05:44 +08:00
bc3854b4c4 Update debian.sh 2025-01-24 17:05:31 +08:00
193bf20a3e Update nginx.conf 2025-01-24 16:01:40 +08:00
Mr Chen
4cc5194939 Merge pull request #698 from midoks/dev
openresty配置优化
2025-01-24 15:49:23 +08:00
46a525ae09 Update index.py 2025-01-24 15:42:51 +08:00
6d006a357e Update nginx.conf 2025-01-24 14:28:10 +08:00
fad73b0922 Update push_notice_msg.py 2025-01-17 23:06:40 +08:00
d2d2d4658e update 2025-01-14 18:39:36 +08:00
84e6ce2b48 ad 2025-01-14 18:37:58 +08:00
b91a9963e2 update 2025-01-14 15:49:03 +08:00
Mr Chen
25fcf93185 Merge pull request #697 from midoks/dev
PHP国内安装优化
2025-01-13 00:07:12 +08:00
Mr Chen
26bb2005c1 Merge pull request #696 from jyeric/patch-1
Fix: Unable to move
2025-01-12 23:58:01 +08:00
jyeric
ee58805ae9 Fix: Unable to move 2025-01-12 03:49:32 +08:00
1bfc02a892 Update install.sh 2025-01-10 23:15:01 +08:00
0c7dc4dbee up 2025-01-10 23:14:18 +08:00
42e9859ccb Update install.sh 2025-01-10 23:13:23 +08:00
bf9b6b6046 up 2025-01-10 23:12:56 +08:00
Mr Chen
c10eac5190 Merge pull request #694 from midoks/dev
rsyncd优化
2025-01-10 12:13:07 +08:00
d01ccf1208 Update rsyncd.js 2025-01-10 12:10:06 +08:00
703b9be83e Update rsyncd.js 2025-01-10 12:07:03 +08:00
e0fea93983 update 2025-01-10 12:04:30 +08:00
84ceef47cb Update index.py 2025-01-10 11:48:20 +08:00
255ed5944f Update file.py 2025-01-10 11:36:54 +08:00
Mr Chen
0dc2b635ae Merge pull request #693 from midoks/dev
rsyncd同步-接收优化2
2025-01-08 19:46:41 +08:00
ebd1cfe203 Update index.py 2025-01-08 19:45:32 +08:00
Mr Chen
43b9297476 Merge pull request #692 from midoks/dev
冲突解决
2025-01-08 15:18:39 +08:00
aa2f4a0167 Merge branch 'master' into dev 2025-01-08 15:17:30 +08:00
Mr Chen
ad31d046d4 Merge pull request #691 from midoks/dev
rsyncd同步-接收优化
2025-01-08 15:10:57 +08:00
a67ad5a7db Update rsyncd.js 2025-01-08 15:07:49 +08:00
90d4fb245a Update rsyncd.js 2025-01-08 15:06:16 +08:00
19f55fde6e Update rsyncd.js 2025-01-08 15:03:16 +08:00
227be5258e up 2025-01-08 15:01:48 +08:00
Mr Chen
913190bfeb Merge pull request #690 from midoks/dev
细节优化
2025-01-08 13:05:46 +08:00
0b0097f367 Update mw.py 2025-01-08 13:03:13 +08:00
Mr Chen
97ac8264f2 Merge pull request #689 from midoks/dev
Update monitor.html
2025-01-08 00:31:54 +08:00
d9cca6ccc9 Update monitor.html 2025-01-07 23:53:38 +08:00
Mr Chen
28d0b1fd25 Merge pull request #688 from midoks/dev
修复-错误账户登录不能反应的问题2
2025-01-07 18:52:22 +08:00
cbcfe4cb9d Update login.py 2025-01-07 18:51:03 +08:00
Mr Chen
70c14d3369 Merge pull request #687 from midoks/dev
修复-错误账户登录不能反应的问题
2025-01-07 18:44:22 +08:00
0bcf7edab5 Update login.py 2025-01-07 18:43:39 +08:00
0f410c29f7 Update login.py 2025-01-07 18:37:57 +08:00
b451a6da25 错误登录判断 2025-01-07 18:37:24 +08:00
Mr Chen
e6c7bc1544 Merge pull request #686 from midoks/dev
php openssl编译优化
2025-01-07 17:10:58 +08:00
d1ff8f1cac update 2025-01-07 17:06:45 +08:00
d967100c14 update 2025-01-07 16:25:52 +08:00
8461c20e40 update 2025-01-07 16:24:39 +08:00
Mr Chen
52924f06d2 Merge pull request #684 from midoks/dev
增加命令-修改面板ip
2025-01-07 01:38:47 +08:00
fad4e7bd7d update 2025-01-07 01:36:17 +08:00
Mr Chen
666ee1a083 Merge pull request #683 from midoks/dev
修复计划任务-每星期修改
2025-01-06 22:00:20 +08:00
8f05e47363 修复计划任务-每星期修改 2025-01-06 21:58:31 +08:00
Mr Chen
67d8abf7bf Merge pull request #682 from midoks/dev
反向代理优化
2025-01-06 11:39:43 +08:00
30842a6659 Update site.py 2025-01-06 11:34:56 +08:00
3ee500d339 Update alist.tpl 2025-01-05 21:57:31 +08:00
Mr Chen
c5ade905b0 Merge pull request #681 from midoks/dev
php mysql_xdevapi 在debian下载安装优化
2025-01-04 16:13:45 +08:00
8e6784bf21 update 2025-01-04 16:10:44 +08:00
4eacbca674 update 2025-01-04 16:09:04 +08:00
Mr Chen
149fe72324 Merge pull request #680 from midoks/dev
关于phpmyadmin无法连接高级版本的问题【已解决】
2025-01-04 13:18:37 +08:00
43f752afbc update 2025-01-04 13:01:57 +08:00
19efde1fda update 2025-01-04 13:00:43 +08:00
98f267057b Update app_start.php 2025-01-04 12:59:22 +08:00
4f98894ce4 Update app_start.php 2025-01-04 12:56:24 +08:00
8cb225779e Update app_start.php 2025-01-04 12:55:45 +08:00
57ff303c39 Update phplib.conf 2025-01-04 12:50:55 +08:00
29cae6ae6c Update phplib.conf 2025-01-04 12:50:45 +08:00
e0c761bdf0 Update index.py 2025-01-04 12:46:07 +08:00
6ee1a8dc52 Update mw.py 2025-01-04 12:41:57 +08:00
db69532dde Update openssl.sh 2025-01-04 12:12:23 +08:00
d4c47c16e4 Update all_test.sh 2025-01-04 11:56:03 +08:00
a28733521b update 2025-01-04 11:54:00 +08:00
b957595944 update 2025-01-04 11:53:20 +08:00
b985d42336 update 2025-01-04 11:48:08 +08:00
9d467a13bb Update index_php.py 2025-01-04 05:33:40 +08:00
4629d39980 Update index_php.py 2025-01-04 05:23:14 +08:00
11d245dadf Update index_php.py 2025-01-04 05:22:19 +08:00
bb72b53f19 Update openssl.sh 2025-01-04 04:57:54 +08:00
3bef89d625 update 2025-01-04 04:39:37 +08:00
792b1348c1 Update openssl.sh 2025-01-04 04:06:12 +08:00
7399cd7d45 Update install.sh 2025-01-04 03:39:54 +08:00
d6347f6d4a update 2025-01-04 03:24:04 +08:00
3b5585193f update 2025-01-04 03:22:56 +08:00
5efa218247 Update install.sh 2025-01-04 03:20:18 +08:00
e5d312dbf9 Update install.sh 2025-01-04 03:19:49 +08:00
38e1c07e0b Update install.sh 2025-01-04 02:50:14 +08:00
809c9ea237 update 2025-01-04 02:37:28 +08:00
08a41f039b Update install.sh 2025-01-04 02:27:18 +08:00
3dd14307d0 Update install.sh 2025-01-04 02:25:30 +08:00
4122c11372 Update my8.0.cnf 2025-01-04 02:02:24 +08:00
9360a9cd68 Update my8.0.cnf 2025-01-04 01:48:01 +08:00
24746dab08 update 2025-01-04 01:37:10 +08:00
8879cba15d Update install.sh 2025-01-04 01:17:39 +08:00
Mr Chen
1b38c60f57 Merge pull request #679 from midoks/dev
时区接口与phpmyadmin/mysql[Tar]优化
2025-01-04 00:35:56 +08:00
7c944b27dd update 2025-01-04 00:26:31 +08:00
523e54eeb2 Update index.py 2025-01-03 23:54:04 +08:00
7b08a3f1bc Update mysql-community.js 2025-01-03 23:49:22 +08:00
018826e1a3 Update phpmyadmin.js 2025-01-03 23:47:02 +08:00
Mr Chen
a36b0b78b3 Merge pull request #678 from midoks/dev
修复phpmysqladmin插件
2025-01-03 22:42:44 +08:00
19964d39c1 Update phpmyadmin.js 2025-01-03 22:35:36 +08:00
31fd04456b update 2025-01-03 22:21:02 +08:00
76cf2e8fa5 update 2025-01-03 22:15:01 +08:00
f6b61c935e Update index.py 2025-01-03 22:12:47 +08:00
c736a04b4f Update debian.sh 2024-12-31 00:34:08 +08:00
14432fd6f9 Update install.sh 2024-12-27 17:40:13 +08:00
Mr Chen
047d84acb5 Merge pull request #676 from midoks/dev
面板修改用户名修复
2024-12-26 19:55:51 +08:00
8de4e6a0ee Update user.py 2024-12-26 19:54:37 +08:00
90fbb0e9ac Update requirements.txt 2024-12-26 19:07:19 +08:00
041f36ba00 Update requirements.txt 2024-12-26 19:04:48 +08:00
9e6cc873cb Update update.sh 2024-12-26 18:06:46 +08:00
20a6ced7b5 Update update.sh 2024-12-26 18:04:28 +08:00
34d9682cc1 Update update.sh 2024-12-26 18:02:38 +08:00
4ac797406a Update update.sh 2024-12-26 18:00:42 +08:00
bb3cdb5d85 Update update.sh 2024-12-26 17:56:43 +08:00
Mr Chen
245923d825 Merge pull request #675 from midoks/dev
兼容问题
2024-12-25 21:25:07 +08:00
41c048594e Update files.js 2024-12-25 21:21:54 +08:00
1360d2d066 Update files.js 2024-12-25 21:19:53 +08:00
Mr Chen
6286f03432 Merge pull request #674 from midoks/dev
网站目录 选择优化
2024-12-25 16:50:45 +08:00
c7a99cc61b Update files.py 2024-12-25 16:49:31 +08:00
e4aae5147c Update files.py 2024-12-25 16:35:35 +08:00
2a2e37ca97 Update public.js 2024-12-25 16:32:40 +08:00
a1489959d1 Update site.py 2024-12-25 16:02:41 +08:00
4561e37167 Update site.py 2024-12-25 15:58:52 +08:00
9fa04c9a90 Update site.py 2024-12-25 15:58:07 +08:00
aa4951b7fc Update site.py 2024-12-25 15:53:46 +08:00
53d08c261c Update site.py 2024-12-25 15:53:30 +08:00
74058243c6 Update site.py 2024-12-25 15:40:24 +08:00
62223d53be Update php.py 2024-12-25 15:29:35 +08:00
Mr Chen
06d33758eb Merge pull request #673 from midoks/dev
低版本兼容
2024-12-25 15:04:10 +08:00
af85245b06 Update site.js 2024-12-25 14:56:40 +08:00
01d8ebbd40 update 2024-12-25 14:52:57 +08:00
1c1cd1f434 Update site.js 2024-12-25 14:51:18 +08:00
Mr Chen
aaa801964c Merge pull request #672 from midoks/dev
创建站点兼容问题
2024-12-25 13:00:32 +08:00
01b490dff1 update 2024-12-25 12:52:41 +08:00
Mr Chen
1be1441352 Merge pull request #671 from midoks/dev
防火墙ssh修改端口修复
2024-12-24 23:08:09 +08:00
0b47b56fb5 Update firewall.py 2024-12-24 23:05:46 +08:00
0a1251ad0b Update firewall.py 2024-12-24 23:05:27 +08:00
Mr Chen
a506bebc94 Merge pull request #670 from midoks/dev
防火墙添加优化
2024-12-24 22:31:27 +08:00
26147acfa0 Update firewall.html 2024-12-24 22:27:10 +08:00
Mr Chen
f1d0be9f61 Merge pull request #669 from midoks/dev
兼容问题
2024-12-24 19:54:58 +08:00
45c1e9d28c Update r3.7.txt 2024-12-24 19:52:23 +08:00
Mr Chen
df3db9e632 Merge pull request #667 from midoks/dev
修复反向代理设置问题
2024-12-24 02:45:39 +08:00
8c1e672da7 Update site.py 2024-12-24 02:44:41 +08:00
Mr Chen
4bf5e68a9d Merge pull request #666 from midoks/dev
php版本更新及备份优化
2024-12-24 02:16:49 +08:00
0d4b157b1b Update backup.py 2024-12-24 02:14:20 +08:00
5fd207c84c Update backup.py 2024-12-24 02:14:01 +08:00
6829baba67 Update install.sh 2024-12-23 21:43:22 +08:00
b9983929fc update 2024-12-23 21:42:52 +08:00
Mr Chen
d540e7497b Merge pull request #664 from midoks/dev
站点页面和计划页面登录检查
2024-12-22 18:51:31 +08:00
0e0cc248fa 站点页面和计划页面登录检查 2024-12-22 18:50:58 +08:00
bcf6808e49 Update site.py 2024-12-22 01:33:19 +08:00
e2e27765ee Update site.py 2024-12-22 01:33:08 +08:00
f3b07bda65 Update site.py 2024-12-22 01:03:56 +08:00
Mr Chen
f555f1084f Merge pull request #663 from midoks/dev
@ramondelee 专用功能
2024-12-22 00:37:20 +08:00
212be88efe Update site.js 2024-12-22 00:36:29 +08:00
c131f0ecda Update site.js 2024-12-21 23:12:03 +08:00
Mr Chen
e3afb4b481 Merge pull request #662 from midoks/dev
acme手动验证
2024-12-21 20:32:05 +08:00
ca61f70d37 gorse便捷功能 2024-12-21 20:27:51 +08:00
90850ebfa3 Update site.js 2024-12-21 18:59:46 +08:00
771a6d6e08 Update site.js 2024-12-21 18:59:06 +08:00
55a6d17bc8 Update site.py 2024-12-21 18:35:01 +08:00
649990f2e1 update 2024-12-21 18:19:58 +08:00
48468a1c2d 右键解压方法缺失 2024-12-21 17:06:08 +08:00
dd685b664d acme手动申请ssl 2024-12-21 15:10:39 +08:00
36898e3e11 update 2024-12-21 14:19:53 +08:00
737450ba6e Update ssl_acme.py 2024-12-21 14:15:35 +08:00
0f63145319 Update rhel.sh 2024-12-21 00:50:29 +08:00
6a942db113 Update ubuntu.sh 2024-12-21 00:41:42 +08:00
6119adbe2d Update debian.sh 2024-12-21 00:41:39 +08:00
c31af5cbf4 Update mw.tpl 2024-12-21 00:21:52 +08:00
784629f11b Update cli.sh 2024-12-21 00:17:28 +08:00
Mr Chen
a581b7cdef Merge pull request #659 from midoks/dev
文件大小功能优化
2024-12-20 00:02:37 +08:00
d6918621fa Update files.py 2024-12-19 23:55:16 +08:00
dc54ec241e update 2024-12-19 23:49:57 +08:00
2f94674479 Update index.py 2024-12-19 23:28:22 +08:00
10b94514a7 update 2024-12-19 23:10:55 +08:00
Mr Chen
f5eacd6016 Merge pull request #658 from midoks/dev
插件优化
2024-12-19 17:28:03 +08:00
7383317f0b Merge branch 'master' into dev 2024-12-19 17:27:20 +08:00
26fa9378f5 Update README.md 2024-12-19 17:26:57 +08:00
9f37033e5c Update plugin.py 2024-12-19 17:24:34 +08:00
dc4ff9b694 Update info.json 2024-12-19 17:12:49 +08:00
3c9dc0a127 Update info.json 2024-12-19 17:09:48 +08:00
2afbe1c6fd Merge branch 'master' into dev 2024-12-19 16:38:36 +08:00
Mr Chen
309b5b9563 Merge pull request #657 from midoks/dev
插件位置调整
2024-12-19 16:38:22 +08:00
f64f0ebf4e Update info.json 2024-12-19 16:36:55 +08:00
dd646a155b Update info.json 2024-12-19 16:36:09 +08:00
6db38826d8 update 2024-12-19 16:34:14 +08:00
a18fd9b05c Update info.json 2024-12-19 16:32:27 +08:00
611c7b7b21 update 2024-12-19 16:32:06 +08:00
3961e95a5f update 2024-12-19 16:29:44 +08:00
d6e6a53301 update 2024-12-19 16:26:32 +08:00
e500026017 Update info.json 2024-12-19 16:25:03 +08:00
84632b6296 Update info.json 2024-12-19 16:24:44 +08:00
9b79e93967 Update info.json 2024-12-19 16:22:27 +08:00
Mr Chen
88e7ad0411 Merge pull request #656 from midoks/dev
mysql 快速安装 针对ubuntu24进行优化
2024-12-19 16:15:24 +08:00
d0e96eab91 Update install.sh 2024-12-19 16:13:13 +08:00
6ac78d9eb6 Update install.sh 2024-12-19 16:06:51 +08:00
5d830ae2f8 Update install.sh 2024-12-19 16:01:52 +08:00
178f844420 Update install.sh 2024-12-19 16:01:32 +08:00
adf3df510e Update install.sh 2024-12-19 16:01:12 +08:00
f58c03c429 Update install.sh 2024-12-19 16:00:05 +08:00
15f9edc5c7 Update install.sh 2024-12-19 15:59:22 +08:00
07f77024ab update 2024-12-19 15:57:26 +08:00
5b8ff7e612 Update ubuntu.sh 2024-12-19 15:30:57 +08:00
Mr Chen
1182e7405e Merge pull request #655 from midoks/dev
mw命令添加
2024-12-19 15:25:34 +08:00
9c6d8ef8e6 Update mw.tpl 2024-12-19 15:24:05 +08:00
eb807fb205 Update mw.tpl 2024-12-19 15:22:37 +08:00
Mr Chen
0602fb5569 Merge pull request #654 from midoks/dev
代理优化2
2024-12-19 15:14:41 +08:00
1dd78c3ea1 Update site.py 2024-12-19 15:11:56 +08:00
3175de4576 Update version.py 2024-12-19 15:11:00 +08:00
dfd1f172bb Update site.py 2024-12-19 15:09:42 +08:00
Mr Chen
0f6cf01fd3 Merge pull request #653 from midoks/dev
代理配置优化
2024-12-19 15:05:36 +08:00
3e9e7922b4 Update site.py 2024-12-19 15:01:19 +08:00
eb480c8838 update 2024-12-19 14:43:59 +08:00
a9bc4fe914 Update site.py 2024-12-19 14:21:39 +08:00
3bf1573e36 Update site.py 2024-12-19 14:20:39 +08:00
de6fd60f41 Update site.py 2024-12-19 14:19:17 +08:00
cf72ebdfd8 Update site.py 2024-12-19 14:17:22 +08:00
6e44452807 Update site.py 2024-12-19 14:17:12 +08:00
88c6abb53c Update site.py 2024-12-19 14:14:13 +08:00
27fd93f590 Update site.py 2024-12-19 14:09:25 +08:00
8b391f03c2 Update site.py 2024-12-19 14:08:59 +08:00
ea3033e22a Update site.py 2024-12-19 14:07:29 +08:00
Mr Chen
c88dff350e Merge pull request #652 from midoks/dev
站点代理+跨域设置
2024-12-18 19:36:08 +03:00
73e1a312b5 Update version.py 2024-12-19 00:31:08 +08:00
28c2b6dc77 Update site.py 2024-12-19 00:29:49 +08:00
0348cc55c6 update 2024-12-19 00:13:22 +08:00
e439918e05 Update site.js 2024-12-18 23:18:25 +08:00
Mr Chen
a5a7f405b3 Merge pull request #651 from midoks/dev
代理/重定向功能修复
2024-12-18 18:03:34 +03:00
4cd620fe2b update 2024-12-18 23:01:38 +08:00
b1826a60d2 Update proxy.py 2024-12-18 22:54:46 +08:00
50ec1c59d2 设置手动代理配置 2024-12-18 22:53:02 +08:00
36d604ec49 Update site.py 2024-12-18 22:47:21 +08:00
Mr Chen
7d6407afcf Merge pull request #650 from midoks/dev
Update README.md
2024-12-18 17:43:34 +08:00
92358db548 Update README.md 2024-12-18 17:34:37 +08:00
Mr Chen
161c6a69b1 Merge pull request #649 from midoks/dev
gdrive优化
2024-12-18 16:15:07 +08:00
215e053b6d update 2024-12-18 16:10:08 +08:00
e8a99af37f Update install.sh 2024-12-18 15:50:07 +08:00
de258a2568 Update install.sh 2024-12-18 15:49:40 +08:00
728db39ab7 update 2024-12-18 14:54:35 +08:00
Mr Chen
d885870302 Merge pull request #648 from midoks/dev
监控开启设置修复
2024-12-18 14:35:25 +08:00
2c87079686 Update system.py 2024-12-18 14:34:28 +08:00
e89785c1d2 Update mw.tpl 2024-12-18 14:13:28 +08:00
38f8eff1c5 Update mw.tpl 2024-12-18 14:12:07 +08:00
077394ec99 Update mw.tpl 2024-12-18 14:11:30 +08:00
7c23f85f75 Update mw.tpl 2024-12-18 14:09:24 +08:00
Mr Chen
20c1ceab92 Merge pull request #647 from midoks/dev
valkey命令加入
2024-12-18 12:21:13 +08:00
e5585caa09 Update version.py 2024-12-18 12:20:42 +08:00
a11b49befe update 2024-12-18 12:17:36 +08:00
Mr Chen
58027e4607 Merge pull request #646 from midoks/dev
valkey插件,redis的平替
2024-12-18 02:14:54 +08:00
1285641746 Update index.py 2024-12-18 02:02:51 +08:00
843ac18d2d Update valkey.conf 2024-12-18 01:56:03 +08:00
4383a202f2 update 2024-12-18 01:55:29 +08:00
cda412f6a9 update 2024-12-18 01:39:54 +08:00
f26b84c799 Update index.py 2024-12-18 01:39:07 +08:00
2fc3fd3ef1 update 2024-12-18 01:38:22 +08:00
57d04de8a5 Update redis.js 2024-12-18 01:38:14 +08:00
3e43c22a42 valkey,redis的平替 2024-12-18 01:33:46 +08:00
ea643b58d8 update 2024-12-18 01:21:14 +08:00
d366490fe5 update 2024-12-18 01:18:45 +08:00
83093f4c85 Update plugin.py 2024-12-18 01:15:33 +08:00
Mr Chen
99fcfa5223 Merge pull request #645 from midoks/dev
面板安装脚本优化
2024-12-18 00:30:35 +08:00
f6786b367b Update sql_mysql.py 2024-12-18 00:20:40 +08:00
eb373af6ed update 2024-12-18 00:18:18 +08:00
037e7e907b Update README.md 2024-12-18 00:09:08 +08:00
80844562e9 Update README.md 2024-12-18 00:07:06 +08:00
2a935845bf Update README.md 2024-12-17 23:54:44 +08:00
Mr Chen
3acbad4606 Merge pull request #644 from midoks/dev
更改/合并mysql快速安装方式
2024-12-17 23:35:13 +08:00
1973f6a2b0 删除冗余mysql插件 2024-12-17 23:33:46 +08:00
85e6a678dd Update sql_mysql.py 2024-12-17 23:20:48 +08:00
798c52f23d Update sql_mysql.py 2024-12-17 23:18:56 +08:00
aee405f9e2 update 2024-12-17 22:49:01 +08:00
f82ff2d482 Update rhel.sh 2024-12-17 22:46:00 +08:00
d9d9721249 Update index.py 2024-12-17 22:38:37 +08:00
8ef84763c6 Update index.py 2024-12-17 22:34:35 +08:00
c4f6db4431 update 2024-12-17 22:32:12 +08:00
60a7e7f885 Update mw.tpl 2024-12-17 22:30:50 +08:00
7e3c36cd27 Update version.py 2024-12-17 22:25:48 +08:00
5304abcd00 Update my5.7.cnf 2024-12-17 22:25:00 +08:00
19d94893cb Update index.py 2024-12-17 22:10:45 +08:00
485424b5c9 Update version.py 2024-12-17 21:43:17 +08:00
a8af7bed62 Update public.js 2024-12-17 21:42:55 +08:00
f63e7df28d Update public.js 2024-12-17 21:41:58 +08:00
7e81da6741 Update version.py 2024-12-17 21:37:25 +08:00
0c8e69c252 Update public.js 2024-12-17 21:36:54 +08:00
da8881dd1e Update version.py 2024-12-17 21:25:47 +08:00
d10c0a2fb9 update 2024-12-17 21:22:40 +08:00
34ed4b2f25 Update public.js 2024-12-17 21:20:32 +08:00
a109b148f6 Update install_generic.sh 2024-12-17 21:03:11 +08:00
65c7eeb9c9 update 2024-12-17 20:58:26 +08:00
e45b9b4101 mysql极速办版优化 2024-12-17 20:48:23 +08:00
8c9bfd7e2d update 2024-12-17 18:03:18 +08:00
208e418bba Update index_mysql_apt.py 2024-12-17 17:41:59 +08:00
05278bdacb Update install_generic.sh 2024-12-17 17:38:01 +08:00
5b11b35d5d Update install_generic.sh 2024-12-17 17:31:21 +08:00
9f5844c4de Update install_generic.sh 2024-12-17 17:29:31 +08:00
ae888e6d48 Update install_generic.sh 2024-12-17 17:22:16 +08:00
f5b4af6e38 Update install_generic.sh 2024-12-17 17:20:32 +08:00
84035e0cb1 Update install_generic.sh 2024-12-17 17:18:55 +08:00
6d5c3e81c8 Update install_generic.sh 2024-12-17 17:17:48 +08:00
16db84793d update 2024-12-17 17:15:27 +08:00
8b8a63c352 update 2024-12-17 17:04:50 +08:00
698cf0d263 update 2024-12-17 17:03:45 +08:00
6385d49eeb Update install_generic.sh 2024-12-17 17:00:49 +08:00
43e69909cd update 2024-12-17 16:59:35 +08:00
aeb0f866c8 Update mysql8.4.service.tpl 2024-12-17 16:39:32 +08:00
3e5c005f25 update_dev 2024-12-17 15:50:31 +08:00
bde27382b7 Update install.sh 2024-12-17 15:40:52 +08:00
Mr Chen
c17df789de Merge pull request #643 from midoks/dev
FTP存储空间 插件 修复
2024-12-17 14:12:48 +08:00
ca6a84fec4 Update index.py 2024-12-17 13:54:26 +08:00
1c952ca4cd update 2024-12-15 04:52:14 +08:00
c2c7073cd9 Create install_debian.sh 2024-12-15 04:44:51 +08:00
Mr Chen
6c84be1a82 Merge pull request #642 from midoks/dev
相关更新
2024-12-15 04:27:12 +08:00
16c90290f9 Update index.py 2024-12-15 04:22:07 +08:00
cf707df5e0 Update install.sh 2024-12-15 04:20:40 +08:00
078f1b763b Update install.sh 2024-12-15 04:18:10 +08:00
6060faa3ac Update install.sh 2024-12-15 04:16:36 +08:00
5059157515 update 2024-12-15 04:11:42 +08:00
49924c6b2b update 2024-12-15 04:08:59 +08:00
6ff1781372 update 2024-12-15 04:01:57 +08:00
29fd4d5220 Create my9.1.cnf 2024-12-15 03:42:32 +08:00
484dc13977 Update mw.tpl 2024-12-15 03:40:59 +08:00
59fc82c788 Create mysql9.1.service.tpl 2024-12-15 03:05:47 +08:00
9a4c9154f1 update 2024-12-15 03:01:57 +08:00
9949bb2493 u 2024-12-15 02:22:12 +08:00
07fc6ac8c4 openssl 2024-12-15 02:18:32 +08:00
6a93c3e90f Update openssl_10.sh 2024-12-15 02:16:31 +08:00
7bd88335c4 Update openssl_30.sh 2024-12-15 02:02:14 +08:00
9893e3bac2 Update index.py 2024-12-15 02:00:51 +08:00
946e886799 update 2024-12-15 02:00:38 +08:00
b84301debc Update openssl_30.sh 2024-12-15 01:56:43 +08:00
cb5c95ce03 Update index.py 2024-12-15 01:49:06 +08:00
c0a7e1ddba uppdate 2024-12-15 01:42:30 +08:00
220af054bb Update index.py 2024-12-15 01:33:29 +08:00
a9634f0249 Update index.py 2024-12-15 01:32:43 +08:00
fd77048d4b Update index.py 2024-12-15 01:30:09 +08:00
40cb632c80 Create my9.1.cnf 2024-12-15 01:23:01 +08:00
2313af825e update 2024-12-15 01:21:44 +08:00
762efdaa9a Update install.sh 2024-12-15 01:19:55 +08:00
b58cafb47a Update install.sh 2024-12-15 01:18:22 +08:00
308d909e72 Update install.sh 2024-12-15 01:17:45 +08:00
c88eb37b1a Update install.sh 2024-12-14 22:16:51 +08:00
e3189d39f4 Update install.sh 2024-12-14 21:55:57 +08:00
Mr Chen
de351c7473 Merge pull request #641 from midoks/dev
修复站点备份目录未指定默认值
2024-12-14 18:40:44 +08:00
9d08b7de34 Update mw.py 2024-12-14 18:35:26 +08:00
5cf0745da0 Update file.py 2024-12-14 18:26:55 +08:00
10009b65be Update file.py 2024-12-14 18:19:31 +08:00
Mr Chen
80c1c0b8b4 Merge pull request #640 from midoks/dev
修复站点根目录未指定默认值
2024-12-14 18:08:19 +08:00
9169d8899f Update mw.py 2024-12-14 18:06:18 +08:00
5166e05dbe 修复未指定默认值 2024-12-14 18:04:47 +08:00
e6e9dcb48c update 2024-12-14 17:15:20 +08:00
Mr Chen
712550cec8 Merge pull request #639 from midoks/dev
广告变价
2024-12-14 17:13:30 +08:00
f9061088fe update 2024-12-14 17:11:46 +08:00
Mr Chen
c53390d038 Merge pull request #638 from midoks/dev
常见优化
2024-12-14 17:04:57 +08:00
6fb93b19c9 Update info.json 2024-12-14 16:50:36 +08:00
e07e8391e1 Update gdrive.js 2024-12-14 16:05:49 +08:00
ccd8c056b1 Update install.sh 2024-12-14 15:12:17 +08:00
32ee0cf14c Update install.sh 2024-12-14 15:10:54 +08:00
9a6c02dd9a Update install.sh 2024-12-14 15:10:31 +08:00
3dd77715d8 update 2024-12-14 15:09:51 +08:00
0f99cdb115 Create install.sh 2024-12-14 15:06:45 +08:00
aecd0726e5 Update info.json 2024-12-14 15:05:33 +08:00
258b3495a1 Update install.sh 2024-12-14 14:56:40 +08:00
eb52d1a79a Update install.sh 2024-12-14 14:54:22 +08:00
1ad16b2b94 Create install.sh 2024-12-14 14:51:37 +08:00
fc28136936 Update panel_tools.py 2024-12-14 13:01:31 +08:00
575f3c9ce4 update 2024-12-14 12:47:20 +08:00
7c9ca83b46 Update install.sh 2024-12-14 12:22:50 +08:00
0d6c4010ff update 2024-12-14 05:14:12 +08:00
cb6d9762d5 Update setting.py 2024-12-14 05:01:43 +08:00
a4414d2083 Update sql_mysql.py 2024-12-14 04:52:14 +08:00
5bcae1b00c Update sql_mysql.py 2024-12-14 04:51:09 +08:00
5c01f36fe7 Update sql_mysql.py 2024-12-14 04:49:44 +08:00
84b7d1123e Update sql_mysql.py 2024-12-14 04:49:21 +08:00
Mr Chen
b819f345cf Merge pull request #637 from midoks/dev
xhprof|安全入口|面板端口命令修复
2024-12-14 02:52:48 +08:00
5278116f49 update 2024-12-14 02:47:59 +08:00
af36366a89 Update panel_tools.py 2024-12-14 02:41:39 +08:00
cabba7e2d2 Update panel_tools.py 2024-12-14 02:41:29 +08:00
ef6cc77dc2 update 2024-12-14 02:40:12 +08:00
4b6de5cd9f Update panel_tools.py 2024-12-14 02:34:07 +08:00
403e35c6c5 Update app_start.php 2024-12-14 02:21:31 +08:00
e1dbdc5886 Update index.py 2024-12-14 01:02:47 +08:00
9e0a64a51f Update index.py 2024-12-14 01:01:47 +08:00
971cc3a42a Update index.py 2024-12-14 00:24:59 +08:00
1c109ee86f Update index.py 2024-12-14 00:24:36 +08:00
b84106ae70 Update index.py 2024-12-14 00:24:23 +08:00
05881be9b9 Update index.py 2024-12-14 00:23:54 +08:00
06a7b3da19 Update index.py 2024-12-14 00:20:14 +08:00
9d77f66e47 update 2024-12-14 00:19:32 +08:00
85afff4848 Update app_start.php 2024-12-13 23:36:16 +08:00
8498eaa16d Update app_start.php 2024-12-13 23:28:48 +08:00
1e78341559 Update index.py 2024-12-13 23:21:05 +08:00
e4ed5a1d19 Update app_start.php 2024-12-13 23:19:00 +08:00
7b247d1e6f Update index.py 2024-12-13 23:13:46 +08:00
f98a7298c5 update 2024-12-13 23:10:04 +08:00
8e4e9ddf62 Update index.py 2024-12-13 23:05:31 +08:00
aea7fbe385 Update public.js 2024-12-13 23:05:26 +08:00
Mr Chen
392442b7b7 Merge pull request #636 from midoks/dev
js 兼容mac文件保存命令
2024-12-13 22:29:23 +08:00
cce3102beb Update public.js 2024-12-13 22:25:35 +08:00
fdf2e3854e Update public.js 2024-12-13 22:18:20 +08:00
Mr Chen
95011544c1 Merge pull request #635 from midoks/dev
修复监控设置不生效问题
2024-12-13 21:28:59 +08:00
fc97eb1c14 Update panel_task.py 2024-12-13 20:50:03 +08:00
fc6ec859fe Update panel_task.py 2024-12-13 20:44:50 +08:00
582ea54ed5 Update panel_task.py 2024-12-13 20:34:36 +08:00
Mr Chen
6caedb5b06 Merge pull request #634 from midoks/dev
gorse安装检测
2024-12-13 03:16:47 +08:00
307135d495 Update index.py 2024-12-13 03:14:28 +08:00
f786be41e7 Update index.py 2024-12-13 03:13:13 +08:00
e18ae543ee Update index.py 2024-12-13 03:07:26 +08:00
ab606e0629 Update index.py 2024-12-13 02:32:45 +08:00
b6cda24231 Update install.sh 2024-12-13 02:20:25 +08:00
ad4714418d Update install.sh 2024-12-13 02:19:11 +08:00
Mr Chen
a77e37ac65 Merge pull request #633 from midoks/dev
Update site.py
2024-12-13 01:16:03 +08:00
296b1cfe86 Update site.py 2024-12-13 01:14:25 +08:00
Mr Chen
c225570c00 Merge pull request #632 from midoks/dev
0.18.0
2024-12-12 23:29:56 +08:00
4b1db3d02f 0.18.0
### 版本更新 0.18.0

- 重新架构面板。
- PHP84正式版。
- 加入alist插件。
- 数据管理-常用命令。
- 插件读取优化(加入缓存+定时检查状态)。
- 恢复面板书签。
- 常规更新。
2024-12-12 23:28:49 +08:00
c358954e6d Update version.py 2024-12-12 23:27:19 +08:00
cfea5d498f Update dashboard.py 2024-12-12 23:26:32 +08:00
e69136534b Update install.sh 2024-12-12 23:00:41 +08:00
400ecfe690 Update alist.js 2024-12-12 22:23:45 +08:00
c64287fd51 Update index.py 2024-12-12 22:23:05 +08:00
0edc306aa8 Update index.py 2024-12-12 22:22:47 +08:00
839fec3a79 Update index.py 2024-12-12 22:15:39 +08:00
db2aab88f4 Update site.py 2024-12-12 17:43:26 +08:00
a5195956c2 Update sql_mysql.py 2024-12-12 12:41:55 +08:00
fc0b79f018 Update orm.py 2024-12-12 12:38:30 +08:00
1b42bafc49 Update php.py 2024-12-12 04:19:00 +08:00
83a2ea9b4e Update logs.py 2024-12-12 02:11:12 +08:00
4bf5fd712d Update sql_mysql.py 2024-12-11 20:15:42 +08:00
8a42898afe Update sql_mysql.py 2024-12-11 19:54:31 +08:00
6577b37b76 Update plugin.py 2024-12-11 18:56:53 +08:00
ccb02f14a6 update 2024-12-11 18:56:37 +08:00
0bd476340a Update install.sh 2024-12-11 14:26:01 +08:00
84c9436546 Update plugin.py 2024-12-11 14:03:47 +08:00
e9d220b54d Update plugin.py 2024-12-11 14:03:34 +08:00
adecec811e Update Dockerfile 2024-12-11 13:35:10 +08:00
c3285f8b2e Update panel_tools.py 2024-12-11 12:11:04 +08:00
864b5bb985 Update panel_tools.py 2024-12-11 12:10:42 +08:00
39bf6b811a Update python-app-php.yml 2024-12-11 12:01:43 +08:00
c7d0744fa3 Update python-app-op.yml 2024-12-11 11:43:08 +08:00
726cdd8dc7 Update python-app-op.yml 2024-12-11 00:04:55 +08:00
93f895d4e4 Update python-app-op.yml 2024-12-11 00:04:02 +08:00
00ed75502b Update python-app-php.yml 2024-12-10 23:55:14 +08:00
a4b1ca831e Update python-app-php.yml 2024-12-10 23:37:16 +08:00
18e59c9538 Update panel_tools.py 2024-12-10 23:24:07 +08:00
3fa51efd16 Update panel_tools.py 2024-12-10 23:23:57 +08:00
fcd747c4a5 Update panel_tools.py 2024-12-10 23:22:54 +08:00
4d9dd26337 Update panel_tools.py 2024-12-10 23:22:07 +08:00
7996722f04 Update setting.py 2024-12-10 22:33:27 +08:00
b0aa889a1f Update setting.py 2024-12-10 22:25:59 +08:00
4b1d6acb77 Update panel_tools.py 2024-12-10 22:17:21 +08:00
d00da44fcb update 2024-12-10 22:13:20 +08:00
1da7d08887 update 2024-12-10 21:27:30 +08:00
a04d24d410 update 2024-12-10 21:22:42 +08:00
055422bac9 update 2024-12-10 19:56:26 +08:00
4e09a802b0 update 2024-12-10 19:31:15 +08:00
a66bab02ab update 2024-12-10 19:20:19 +08:00
d217ebfc4f Update php.js 2024-12-10 19:05:09 +08:00
31cafa59ab Update index.py 2024-12-10 18:50:06 +08:00
c66b9794ee Update php.js 2024-12-10 18:40:29 +08:00
ddd3d3a33a Update version.py 2024-12-10 18:36:04 +08:00
7816dbf264 Update public.js 2024-12-10 18:35:57 +08:00
f78279a271 update 2024-12-10 18:34:21 +08:00
411174c07c Update public.js 2024-12-10 18:27:27 +08:00
28988eff93 Update public.js 2024-12-10 18:26:19 +08:00
5ee9a6790e update 2024-12-10 18:25:52 +08:00
6cce658ea3 Update public.js 2024-12-10 18:24:51 +08:00
3c54e7943b Update php.js 2024-12-10 18:21:17 +08:00
c0923f7d4f Update index.py 2024-12-10 18:15:05 +08:00
7973d369cc update 2024-12-10 18:05:43 +08:00
2b70534fb2 update 2024-12-10 18:00:09 +08:00
1d0a4c371c update 2024-12-10 17:42:51 +08:00
18eee3f8e8 Update firewall.py 2024-12-10 16:49:12 +08:00
2ae280e6c9 Update firewall.py 2024-12-10 16:48:42 +08:00
baf56d71e9 Update phplib.conf 2024-12-10 15:54:48 +08:00
fe6649a0a5 update 2024-12-10 15:51:15 +08:00
452623a56e Update README.md 2024-12-10 15:33:44 +08:00
a361c31c11 Update push_notice_msg.py 2024-12-10 15:22:51 +08:00
fb15ca1d76 Update push_ad.py 2024-12-10 15:22:23 +08:00
3d319c7c76 update 2024-12-10 15:17:22 +08:00
069bef1f0d Update igbinary.sh 2024-12-10 14:56:36 +08:00
3b0e624d92 Update README.md 2024-12-10 14:54:14 +08:00
ee13c8f519 Update solr.sh 2024-12-10 14:44:52 +08:00
51eff5f671 Update yaml.sh 2024-12-10 14:43:32 +08:00
e544ba53b5 Update yaf.sh 2024-12-10 14:40:43 +08:00
e28a7124a2 Update yaf.sh 2024-12-10 14:39:03 +08:00
dd0c46286c Update swoole.sh 2024-12-10 14:37:46 +08:00
a1b39dcff5 Update site.py 2024-12-10 14:26:02 +08:00
a3022c7f80 Update site.py 2024-12-10 14:24:40 +08:00
f16dfd6819 update 2024-12-10 14:22:59 +08:00
9f2bc6e0e1 Update phplib.conf 2024-12-10 05:30:44 +08:00
f2c4831786 update 2024-12-10 04:29:32 +08:00
3f5b6a0b00 Update panel_bookmark.py 2024-12-10 04:18:21 +08:00
1bf02abc1d Update __init__.py 2024-12-10 03:23:19 +08:00
5dcf932a81 Update __init__.py 2024-12-10 03:15:26 +08:00
f2f02e4b1b update 2024-12-10 03:14:06 +08:00
47ce5e05bc Update plugin.py 2024-12-10 03:10:48 +08:00
e878f79ffc up 2024-12-10 02:57:58 +08:00
5e6774ee63 Update version.py 2024-12-10 02:52:44 +08:00
ec4c3f3574 Update public.js 2024-12-10 02:52:35 +08:00
e7e9379c09 update 2024-12-10 02:30:07 +08:00
65c303272c update 2024-12-10 02:23:49 +08:00
2be356a875 Update readline.sh 2024-12-10 02:05:33 +08:00
d60e1291c8 Update version.py 2024-12-10 00:35:02 +08:00
ae342c71a7 Update public.js 2024-12-10 00:27:47 +08:00
ec79bfc93b Update openssl.sh 2024-12-10 00:12:26 +08:00
f3006b55b3 Update phplib.conf 2024-12-10 00:02:06 +08:00
08aa864fa0 Update install.sh 2024-12-09 23:29:57 +08:00
93b39f4fb0 Update phplib.conf 2024-12-09 23:28:34 +08:00
b189241745 update 2024-12-09 23:25:45 +08:00
3206e62583 update 2024-12-09 23:19:53 +08:00
299b216c48 Update phplib.conf 2024-12-09 23:15:39 +08:00
fe53068055 Update zip.sh 2024-12-09 23:12:27 +08:00
0a8b921327 Update phplib.conf 2024-12-09 23:10:59 +08:00
1119371bdb Update phplib.conf 2024-12-09 22:58:25 +08:00
980129a8ec Update phplib.conf 2024-12-09 22:58:19 +08:00
5554ff3350 update 2024-12-09 22:49:39 +08:00
3fd55fd5de Update sql_mysql.py 2024-12-09 20:11:02 +08:00
d4f9f5bcfd Update sql_mysql.py 2024-12-09 20:08:18 +08:00
318cba0d43 Update sql_mysql.py 2024-12-09 20:07:41 +08:00
173aae22b4 Update app.js 2024-12-09 19:59:01 +08:00
f86e30634d Update app.js 2024-12-09 19:55:27 +08:00
6f9b9bbbc1 Update sql_mysql.py 2024-12-09 19:48:30 +08:00
fa7ad33474 Update sql_mysql.py 2024-12-09 19:46:13 +08:00
834978adfd Update sql_mysql.py 2024-12-09 19:45:21 +08:00
e70fa6d257 Update app.js 2024-12-09 19:33:07 +08:00
326179479c Update app.js 2024-12-09 19:30:57 +08:00
909b8a3f88 Update sql_mysql.py 2024-12-09 19:25:55 +08:00
973cbf4f9d update 2024-12-09 19:20:06 +08:00
ca52d5bf65 Update app.js 2024-12-09 18:53:47 +08:00
5427a2b1ee Update nosql_redis.py 2024-12-09 18:49:34 +08:00
7b925e5504 Update app.js 2024-12-09 18:46:08 +08:00
6b7752e14a Update sql_mysql.py 2024-12-09 18:45:20 +08:00
f13a0c68dc Update site.py 2024-12-09 18:38:39 +08:00
017d96872a Update site.py 2024-12-09 18:37:25 +08:00
f11b8637bb update 2024-12-09 18:34:30 +08:00
5452ee3229 Update site.py 2024-12-09 18:24:12 +08:00
41a76e1ac6 Update site.py 2024-12-09 18:22:39 +08:00
2e3d5fda44 Update site.py 2024-12-09 18:21:58 +08:00
d26e2fb06f Update site.py 2024-12-09 18:08:15 +08:00
7aa0bf59f2 Update site.py 2024-12-09 18:07:31 +08:00
4cc72c7164 update 2024-12-09 18:01:25 +08:00
10dffd71f7 update 2024-12-09 17:48:13 +08:00
56c4710c55 Update site.py 2024-12-09 17:37:16 +08:00
2bebf3503f Update site.py 2024-12-09 17:32:00 +08:00
8e61c89bd3 Update site.py 2024-12-09 17:31:25 +08:00
2e4fe6e434 Update site.py 2024-12-09 17:28:34 +08:00
Mr Chen
be1e03828c Merge pull request #631 from midoks/revert-630-master
Revert "修复http3在多Worker 下需要reuseport以及不传HOST变量的问题"
2024-12-09 16:48:48 +08:00
Mr Chen
55d9700401 Revert "修复http3在多Worker 下需要reuseport以及不传HOST变量的问题" 2024-12-09 16:48:27 +08:00
e55f79b9b8 Update README.md 2024-12-09 15:57:46 +08:00
5684fc217f Update README.md 2024-12-09 15:57:26 +08:00
f0071b5e82 Update panel_task.py 2024-12-09 15:52:21 +08:00
7bb7ce2ef3 Update panel_task.py 2024-12-09 01:36:51 +08:00
47569c475f Update file.py 2024-12-09 01:07:22 +08:00
eb8886b4eb update 2024-12-09 01:04:30 +08:00
83711db1c8 update 2024-12-09 01:00:01 +08:00
6858a827f9 update 2024-12-09 00:53:02 +08:00
66c8900a30 update 2024-12-09 00:47:05 +08:00
892b1144e1 Update files.py 2024-12-09 00:39:41 +08:00
06d2b381b2 Update files.py 2024-12-09 00:38:19 +08:00
f8e3df36c8 Update file.py 2024-12-09 00:36:09 +08:00
b69c986dcd Update system.py 2024-12-09 00:18:03 +08:00
3501323a12 Update system.py 2024-12-09 00:17:51 +08:00
0671455b59 update 2024-12-09 00:10:10 +08:00
c4727b90da Update system.py 2024-12-09 00:08:37 +08:00
a14c4b566e update 2024-12-09 00:05:34 +08:00
33353dd2a3 Update plugin.py 2024-12-08 23:55:44 +08:00
3b436a15c1 Update plugin.py 2024-12-08 23:04:34 +08:00
49f45314d1 Update plugin.py 2024-12-08 23:04:23 +08:00
679aefba86 Update plugin.py 2024-12-08 23:00:42 +08:00
255d297d61 Update plugin.py 2024-12-08 23:00:03 +08:00
c1a59d63fc 缓存检查插件状态,提高速度 2024-12-08 22:43:55 +08:00
d75c729e29 re 修复 2024-12-08 22:41:10 +08:00
f50be939f5 Update version.py 2024-12-06 04:17:29 +08:00
3394a8892f update 2024-12-06 04:17:11 +08:00
02e5f595fd Update sql_mysql.py 2024-12-06 03:50:14 +08:00
1bee5e7429 Update option.py 2024-12-05 23:48:54 +08:00
a8b6ae4c21 Update option.py 2024-12-05 23:48:35 +08:00
154c482e67 Update compatibility.md 2024-12-05 14:55:50 +08:00
723d5e3959 Update __init__.py 2024-12-05 06:18:12 +08:00
73f8226854 Update init_cmd.py 2024-12-05 06:11:49 +08:00
3826bb53aa Update init_cmd.py 2024-12-05 06:11:23 +08:00
7fbe40e73f Update init_cmd.py 2024-12-05 06:11:03 +08:00
e3606a1ca4 Update __init__.py 2024-12-05 06:07:05 +08:00
bfe0e0a31a Update panel_tools.py 2024-12-05 06:04:05 +08:00
643338eab1 update 2024-12-05 06:02:42 +08:00
0777b65919 up 2024-12-05 05:45:06 +08:00
c9ef1cd141 up 2024-12-05 05:38:11 +08:00
b9a1d142d1 Update crontab.py 2024-12-05 05:36:06 +08:00
7959167554 Update version.py 2024-12-05 05:29:18 +08:00
fcf20958c9 Update crontab.html 2024-12-05 05:29:09 +08:00
92b26bd14f update 2024-12-05 05:22:16 +08:00
d6b414f022 Update version.py 2024-12-05 05:13:45 +08:00
dd3092639e Update crontab.html 2024-12-05 05:13:38 +08:00
0e633491bd Update version.py 2024-12-05 05:08:17 +08:00
2250770f66 Update crontab.js 2024-12-05 05:08:06 +08:00
1d8448d6bb update 2024-12-05 05:05:47 +08:00
6eda36aec2 Update index.py 2024-12-05 04:56:02 +08:00
09d656ef60 update 2024-12-05 04:54:06 +08:00
19aadb581f Update index.py 2024-12-05 04:46:36 +08:00
c27248af98 Update index.py 2024-12-05 04:42:36 +08:00
829a2516ba update 2024-12-05 04:27:37 +08:00
ac0dac2561 Update __init__.py 2024-12-05 04:23:06 +08:00
a308c630fc Update update.py 2024-12-05 03:58:04 +08:00
661a346060 Update config.py 2024-12-05 03:11:29 +08:00
b251de30b1 Update version.py 2024-12-05 03:05:22 +08:00
716c0a6d46 Update crontab.py 2024-12-05 03:04:37 +08:00
ac8c048b28 Update crontab.py 2024-12-05 02:57:33 +08:00
00afaec282 Update index.html 2024-12-05 02:51:38 +08:00
727c36ebc7 update 2024-12-05 02:11:47 +08:00
2f5bd3b5ed Update index.py 2024-12-05 01:57:20 +08:00
49ca076d6c Update index.py 2024-12-05 01:57:03 +08:00
f63e375b13 update 2024-12-05 01:54:12 +08:00
e480582fcf Update readline.sh 2024-12-05 01:11:43 +08:00
f45dd1bbf5 Update readline.sh 2024-12-05 01:10:51 +08:00
d37f651f23 Update readline.sh 2024-12-05 00:37:33 +08:00
4d2793d4dc Update version.py 2024-12-04 18:07:10 +08:00
fb3404e92f Update upgrade.py 2024-12-04 18:06:54 +08:00
2cdb62cbd3 update 2024-12-04 18:03:37 +08:00
a3d231f619 update 2024-12-04 17:58:16 +08:00
34551409d9 Update version.py 2024-12-04 17:44:23 +08:00
be83c2c3bb Update version.py 2024-12-04 16:58:37 +08:00
b963302a96 Update push_ad.py 2024-12-04 15:24:41 +08:00
5238d8f263 Update pathinfo.conf 2024-12-04 15:11:43 +08:00
384419fa30 Update app.js 2024-12-04 04:24:46 +08:00
d18952a72e Update index.py 2024-12-04 03:57:56 +08:00
f1478369b5 Update index.py 2024-12-04 03:28:06 +08:00
face89efc5 Update file.py 2024-12-04 03:15:12 +08:00
44f5f7f270 Update file.py 2024-12-04 03:11:35 +08:00
a30d68a3d9 Update file.py 2024-12-04 03:07:01 +08:00
0e5f3bc23b Update file.py 2024-12-04 02:33:56 +08:00
0f97e0db44 Update install.sh 2024-12-04 02:20:18 +08:00
79ed3f3a4c Update index.py 2024-12-04 01:57:14 +08:00
869a321c14 Update index.py 2024-12-04 01:57:01 +08:00
f338d8bd8e Update index.py 2024-12-04 01:54:30 +08:00
2a60cd981d Update index.py 2024-12-04 01:37:00 +08:00
3504ca24f2 Update mw_api.py 2024-12-04 01:26:36 +08:00
ebcd450f55 Update index.py 2024-12-04 01:26:33 +08:00
db8f74f848 update 2024-12-04 01:26:26 +08:00
b34cf3fc86 Update main.py 2024-12-04 00:38:34 +08:00
a1bb8b9816 update 2024-12-04 00:34:49 +08:00
3db30b1298 Update __init__.py 2024-12-04 00:14:53 +08:00
773bc41a12 Update version.py 2024-12-04 00:05:00 +08:00
c91928c55f update 2024-12-03 23:26:15 +08:00
5588976f95 Update index.py 2024-12-03 21:52:15 +08:00
87d76d7cf7 update 2024-12-03 20:48:01 +08:00
18202b859b Update system.py 2024-12-03 20:19:41 +08:00
8309b8e493 update 2024-12-03 20:16:19 +08:00
50a96b198a update 2024-12-03 20:12:55 +08:00
6ebc7a1514 update 2024-12-03 20:07:50 +08:00
Mr Chen
156f6d1791 Merge pull request #630 from jd82k/master
修复http3在多Worker 下需要reuseport以及不传HOST变量的问题
2024-12-03 18:56:32 +08:00
6a013dd7f6 Update index.py 2024-12-03 18:48:56 +08:00
05d8181202 update 2024-12-03 18:46:45 +08:00
2f8217d5d5 Update index.py 2024-12-03 18:39:51 +08:00
d9234c9b77 Update index.py 2024-12-03 18:38:44 +08:00
16b54569e0 update 2024-12-03 18:36:17 +08:00
23ed3a7e47 update 2024-12-03 18:33:47 +08:00
d2f586dadd Update index.py 2024-12-03 18:25:04 +08:00
c72dcf02d2 Update xui.js 2024-12-03 18:23:22 +08:00
a099a83f9b Update xui.js 2024-12-03 18:18:56 +08:00
a986082f62 Update index.html 2024-12-03 18:18:41 +08:00
5c9cde381c Update xui.js 2024-12-03 18:18:31 +08:00
c23ae77215 Update index.html 2024-12-03 18:05:28 +08:00
33a83a6d8e Update index.html 2024-12-03 18:03:40 +08:00
07d6ce0a34 Update index.html 2024-12-03 18:03:09 +08:00
940006a10a update 2024-12-03 18:02:44 +08:00
c77b8d47fd Update xui.js 2024-12-03 18:02:15 +08:00
58f24f0c75 Update xui.js 2024-12-03 18:01:33 +08:00
41b11669d8 Update index.html 2024-12-03 17:59:11 +08:00
bb04f1666f update 2024-12-03 17:55:14 +08:00
49c22a2d70 Update xui.js 2024-12-03 17:53:18 +08:00
5616b90474 Update index.py 2024-12-03 17:51:26 +08:00
230d3925df Update index.py 2024-12-03 17:49:23 +08:00
5e92740b62 Update index.py 2024-12-03 17:47:22 +08:00
f353fc3e5a Update index.py 2024-12-03 17:42:55 +08:00
8f5936135d Update index.py 2024-12-03 17:42:37 +08:00
2954b92963 Update xui.js 2024-12-03 17:41:27 +08:00
57141b3a90 Update index.py 2024-12-03 17:39:32 +08:00
3b0db0359c update 2024-12-03 17:38:12 +08:00
ad66ecc628 update 2024-12-03 17:30:41 +08:00
766dc32287 update 2024-12-03 17:29:50 +08:00
761ddd72e9 Update index.py 2024-12-03 17:28:12 +08:00
16e312bbe7 update 2024-12-03 17:25:53 +08:00
d36b36e1d3 Update index.py 2024-12-03 17:14:31 +08:00
9eabb10e41 Update index.py 2024-12-03 17:12:37 +08:00
7be3cdd5e8 update 2024-12-03 17:10:56 +08:00
2f5842622c Update install.sh 2024-12-03 17:09:55 +08:00
3f52744747 Update install.sh 2024-12-03 17:05:20 +08:00
91a2558bf4 Update install.sh 2024-12-03 17:04:43 +08:00
aa397eb8e7 Update install.sh 2024-12-03 17:02:46 +08:00
7663bdbc14 Create install_xui.sh 2024-12-03 17:01:12 +08:00
51a9b551fd Update install.sh 2024-12-03 17:01:09 +08:00
725572745b Update install.sh 2024-12-03 16:58:25 +08:00
77e65252fb Update file.py 2024-12-03 16:50:32 +08:00
1fc0a106b6 update 2024-12-03 16:49:04 +08:00
e8d72985e6 Update install.sh 2024-12-03 16:26:24 +08:00
2ecc29269f update 2024-12-03 16:14:47 +08:00
299eaa06b8 Update file.py 2024-12-03 15:35:41 +08:00
154c7cbdbc Update file.py 2024-12-03 15:35:17 +08:00
06bb5b5bb0 Update file.py 2024-12-03 15:34:27 +08:00
a718db5457 Update file.py 2024-12-03 15:34:14 +08:00
2e17870d03 update 2024-12-03 15:32:31 +08:00
e70113c280 Update file.py 2024-12-03 15:29:05 +08:00
4240f49de9 Update file.py 2024-12-03 15:28:33 +08:00
9b0b8015df update 2024-12-03 15:19:58 +08:00
jd82k
998938e7ab fix http3 bugs 2024-12-02 20:06:59 -08:00
jd82k
faffdaf535 Update pathinfo.conf 2024-12-02 20:04:17 -08:00
fce4cc332c Update install.sh 2024-12-03 01:10:02 +08:00
d211aa168c Update info.json 2024-12-03 00:27:34 +08:00
2430cbb11a Update public.js 2024-12-02 23:46:02 +08:00
ddef7b1182 Update public.js 2024-12-02 23:45:31 +08:00
f5af7688a7 Update public.js 2024-12-02 23:43:36 +08:00
1faef6799b update 2024-12-02 23:43:05 +08:00
34e6bb75e0 Update index.py 2024-12-02 22:26:28 +08:00
332aa43419 Update index.py 2024-12-02 22:24:49 +08:00
f96ff13843 Update version.py 2024-12-02 22:16:05 +08:00
f25066e23e Update public.js 2024-12-02 22:10:07 +08:00
35ce2abae6 Update __init__.py 2024-12-02 22:09:34 +08:00
897e236719 Update __init__.py 2024-12-02 22:08:53 +08:00
916b3dff6c Update public.js 2024-12-02 22:03:25 +08:00
846600ef99 Update index.py 2024-12-02 21:48:40 +08:00
8cbae18986 Update README.md 2024-12-02 21:46:30 +08:00
c81616894c Update README.md 2024-12-02 21:13:50 +08:00
408c9c291b Update init_cmd.py 2024-12-02 18:03:11 +08:00
824032b338 Update init_cmd.py 2024-12-02 17:57:19 +08:00
99c2c7ce4c Update init_cmd.py 2024-12-02 17:56:26 +08:00
93d4749d9e Update init_cmd.py 2024-12-02 17:54:29 +08:00
163776c5ff Update init_cmd.py 2024-12-02 17:54:09 +08:00
fd907e1dc9 Update mw.tpl 2024-12-02 17:39:19 +08:00
6c306ad97f Update mw.tpl 2024-12-02 17:39:07 +08:00
0357087b06 Update mw.tpl 2024-12-02 17:27:08 +08:00
85a9ee4b29 Update mw.tpl 2024-12-02 17:22:16 +08:00
5bab1ab4da Update mw.tpl 2024-12-02 17:18:29 +08:00
0312c5ceb0 update 2024-12-02 17:12:29 +08:00
eca12b2cf3 update 2024-12-02 16:49:06 +08:00
3476b4c30a Update init_cmd.py 2024-12-02 16:33:47 +08:00
46d7f83cc4 Update mw.service.tpl 2024-12-02 16:28:42 +08:00
e1ef876db1 Update init_cmd.py 2024-12-02 16:25:55 +08:00
8f1a89f978 Update init_cmd.py 2024-12-02 16:24:29 +08:00
a14301f769 Update tamper_proof_service.py 2024-12-02 14:53:23 +08:00
54bd8f1d5c Update sql_mysql.py 2024-12-02 04:41:35 +08:00
9d05edf09f Update orm.py 2024-12-02 04:33:02 +08:00
a0c228e352 Update sql_mysql.py 2024-12-02 04:13:19 +08:00
dfaf09735e Update sql_mysql.py 2024-12-02 04:08:03 +08:00
6f2cc03044 Update ubuntu.sh 2024-12-02 03:54:47 +08:00
2ff6d17d23 Update debian.sh 2024-12-02 03:54:32 +08:00
af83750220 update 2024-12-02 03:45:16 +08:00
70dbb9eab5 Update sql_mysql.py 2024-12-02 03:18:06 +08:00
a58fd4476e Update app.js 2024-12-02 03:13:43 +08:00
5f7f45c648 Update version.py 2024-12-02 03:09:33 +08:00
ca5b315725 update 2024-12-02 03:08:41 +08:00
6a33354b2b Update index.py 2024-12-02 03:00:22 +08:00
821683d484 Update init_cmd.py 2024-12-02 02:54:17 +08:00
a2e4fc8085 Update info.json 2024-12-02 02:41:49 +08:00
bb37fccee3 Update index.py 2024-12-02 02:40:52 +08:00
e9a01b5056 update 2024-12-02 02:33:32 +08:00
c1dec87784 Update install.sh 2024-12-02 02:31:48 +08:00
74b3118bc3 Update install.sh 2024-12-02 02:31:43 +08:00
853d5045f0 Update install.sh 2024-12-02 02:28:30 +08:00
30db5569ad Update gdriveclient.py 2024-12-02 02:25:52 +08:00
8c841e93a0 update 2024-12-02 02:00:13 +08:00
46a752480c update 2024-12-02 01:54:28 +08:00
1dddc3c5ba Update site.py 2024-12-02 01:47:26 +08:00
61d90ef8e7 Update site.py 2024-12-02 01:44:19 +08:00
c3241a5c17 Update version.py 2024-12-02 01:32:07 +08:00
c6d1a44d43 Update control.js 2024-12-02 01:31:59 +08:00
8ce5d6dfbe Update version.py 2024-12-02 01:30:41 +08:00
a8c8f922eb Update version.py 2024-12-02 01:28:54 +08:00
e7d458b2a9 Update control.js 2024-12-02 01:28:34 +08:00
9cba031049 Update version.py 2024-12-02 01:26:45 +08:00
73e5cc4fbd update 2024-12-02 01:25:06 +08:00
3df5ae86d4 Update version.py 2024-12-02 01:21:06 +08:00
542610f5a7 update 2024-12-02 01:20:37 +08:00
1b1d3aec8c update 2024-12-02 01:16:05 +08:00
829f4def27 update 2024-12-02 01:12:04 +08:00
cc9e628346 update 2024-12-02 01:04:40 +08:00
921af80598 Update version.py 2024-12-02 01:00:42 +08:00
dae5d2d062 update 2024-12-02 01:00:28 +08:00
6ee0496c4c Update requirements.txt 2024-12-02 00:36:48 +08:00
bbcac5f899 Update requirements.txt 2024-12-02 00:35:36 +08:00
7fb006b2ff Update index.py 2024-12-02 00:27:31 +08:00
6bfa72feb6 update 2024-12-01 23:54:04 +08:00
8867799825 Update mt.toml 2024-12-01 23:46:54 +08:00
12c90f5e6e update 2024-12-01 23:42:01 +08:00
8ed608e9cd update 2024-12-01 23:16:27 +08:00
1c0dbe76f9 update 2024-12-01 22:30:36 +08:00
14ad247168 Update index.py 2024-12-01 22:24:41 +08:00
b114c768dc Update index.py 2024-12-01 22:21:36 +08:00
58129d5209 update 2024-12-01 22:19:49 +08:00
54f5b44e04 Update index.py 2024-12-01 22:16:30 +08:00
85f64b72cb Update install.sh 2024-12-01 22:11:25 +08:00
626c64afb2 Update index.py 2024-12-01 22:01:56 +08:00
e639fc5746 Update index.py 2024-12-01 22:01:45 +08:00
d988dce5d8 Update install.sh 2024-12-01 22:00:04 +08:00
34f03d2ccb update 2024-12-01 21:57:23 +08:00
4e66ed3a32 mtproxy 2024-12-01 21:51:31 +08:00
fde9da1af5 Update dashboard.py 2024-12-01 21:45:16 +08:00
bad42e8e48 Update dashboard.py 2024-12-01 21:40:02 +08:00
c562f9481d Update dashboard.py 2024-12-01 21:39:49 +08:00
caa9b598d0 update 2024-12-01 21:26:58 +08:00
ffa16648ae Update mw.tpl 2024-12-01 20:59:59 +08:00
a7a06ea7bf Update mw.tpl 2024-12-01 20:59:45 +08:00
99de06abc0 Update mw.tpl 2024-12-01 20:59:32 +08:00
b538e646bd Update mw.tpl 2024-12-01 20:48:37 +08:00
6088386e51 update 2024-12-01 20:47:39 +08:00
404a38d990 update 2024-12-01 20:42:21 +08:00
91e3900d12 Update panel_tools.py 2024-12-01 20:38:13 +08:00
2b0dfcd460 Update panel_tools.py 2024-12-01 20:33:49 +08:00
f561a1da4f Update mw.tpl 2024-12-01 20:29:41 +08:00
34b435ffca update 2024-12-01 20:24:57 +08:00
5b92f109b9 Update version.py 2024-12-01 20:22:46 +08:00
fe68bf7226 update 2024-12-01 20:22:19 +08:00
1e4989857e Update version.py 2024-12-01 17:42:52 +08:00
56055000d9 Update public.js 2024-12-01 17:22:31 +08:00
9365139430 Update public.js 2024-12-01 17:12:39 +08:00
b22f240719 Update public.js 2024-12-01 16:57:29 +08:00
5b0e8ad2da update 2024-12-01 16:32:05 +08:00
cb794a946a Update sg11.sh 2024-12-01 15:48:17 +08:00
446e39fb68 Update sg11.sh 2024-12-01 15:42:57 +08:00
9276dd1bb8 Update sg11.sh 2024-12-01 15:23:03 +08:00
1972df1f2d update 2024-12-01 15:20:29 +08:00
afb9f430b3 update 2024-12-01 15:04:12 +08:00
52e9ff38fa Update phplib.conf 2024-12-01 14:54:25 +08:00
37f4244484 update 2024-12-01 13:53:32 +08:00
485b0605b4 Update python-app-op.yml 2024-12-01 13:52:36 +08:00
30e2ea56c8 Update init_cmd.py 2024-12-01 13:34:58 +08:00
371b6651f0 Update init_cmd.py 2024-12-01 04:21:09 +08:00
37448dc827 update 2024-12-01 04:19:00 +08:00
6e197f81ef Update app.js 2024-12-01 04:18:14 +08:00
bdd0634f61 update 2024-12-01 04:17:28 +08:00
a8019d1ec4 Update sql_mysql.py 2024-12-01 03:38:09 +08:00
d33ce43ad3 Update sql_mysql.py 2024-12-01 03:26:57 +08:00
cc165c4cde update 2024-12-01 03:23:13 +08:00
1f6e6957ea Update init_cmd.py 2024-12-01 02:15:32 +08:00
7b8bb6380d Update mw.py 2024-12-01 01:49:02 +08:00
b432b1c165 update 2024-12-01 01:40:56 +08:00
ce6f7153b3 Update firewall.py 2024-12-01 01:31:08 +08:00
1cc4aee6f7 Update index.py 2024-12-01 01:23:14 +08:00
eafaf13a3d Update init_cmd.py 2024-12-01 01:14:12 +08:00
7352f30d91 Update ubuntu.sh 2024-12-01 00:38:35 +08:00
31db220719 Update python-app-op.yml 2024-11-30 23:35:48 +08:00
000a4cccf1 Update python-app-op.yml 2024-11-30 23:35:34 +08:00
1cc6953415 Update install.sh 2024-11-30 23:10:58 +08:00
519951ad69 Update setting.py 2024-11-30 23:02:08 +08:00
b97b8c2c9b Update setting.py 2024-11-30 23:01:21 +08:00
27b3bc1150 Update firewall.py 2024-11-30 23:00:46 +08:00
c66ad2b7fb Update firewall.py 2024-11-30 22:58:24 +08:00
f040b590d5 Update firewall.py 2024-11-30 22:53:40 +08:00
a36d2f2665 Update firewall.py 2024-11-30 22:43:17 +08:00
b0c3e5b7e5 update 2024-11-30 22:41:39 +08:00
3d3cde4353 Update update_new.sh 2024-11-30 21:58:06 +08:00
da9c57cf84 update 2024-11-30 21:57:46 +08:00
9915ed35d0 update 2024-11-30 21:44:09 +08:00
97829cd944 Update install.sh 2024-11-30 21:16:59 +08:00
c355a120b4 Update install.sh 2024-11-30 21:16:21 +08:00
1d9bc68e28 update 2024-11-30 18:07:22 +08:00
778e1860df Update python-app-op.yml 2024-11-30 18:01:09 +08:00
76b9298efd update 2024-11-30 17:11:00 +08:00
371cc9c4c8 Update debian.sh 2024-11-30 16:57:58 +08:00
ab7c4792e2 Update sql_mysql.py 2024-11-30 16:51:26 +08:00
7e2c192d40 update 2024-11-30 16:42:42 +08:00
6874de5cda Update app.js 2024-11-30 04:26:28 +08:00
bd2ab7d529 update 2024-11-30 04:21:43 +08:00
152fadfc87 Update app.js 2024-11-30 04:07:29 +08:00
d3b3b526db update 2024-11-30 03:52:58 +08:00
00002a8540 update 2024-11-30 03:32:33 +08:00
a5bc06acf6 Update app.js 2024-11-29 22:08:54 +08:00
2dcb8b257e 添加插件 2024-11-29 21:14:18 +08:00
fd1f64a6e2 Update .gitignore 2024-11-29 21:14:08 +08:00
fbf1a36e00 Update brotli.sh 2024-11-29 19:49:55 +08:00
52d66b33cb update 2024-11-29 19:43:36 +08:00
eb0fe483b1 Update index.py 2024-11-29 19:24:31 +08:00
acc57ee993 Update mw.py 2024-11-29 19:19:21 +08:00
0397090458 Update macos.sh 2024-11-29 19:08:11 +08:00
5f6df46c90 Update mw.py 2024-11-29 18:52:38 +08:00
3030849bd2 Update ftp_client.py 2024-11-29 18:46:15 +08:00
7a1bc2ee39 Update ftp_client.py 2024-11-29 18:45:45 +08:00
efc715678b Update install.sh 2024-11-29 18:43:25 +08:00
65ec08d40f Update install.sh 2024-11-29 18:42:55 +08:00
7855df5aa2 up 2024-11-29 18:41:43 +08:00
abbe16eb87 up 2024-11-29 18:41:02 +08:00
45645a52b5 up 2024-11-29 18:40:11 +08:00
48d193141e Update install.sh 2024-11-29 18:31:04 +08:00
264dd392f6 Update install.sh 2024-11-29 18:28:18 +08:00
3e9b47cbf3 Update index.py 2024-11-29 18:23:25 +08:00
b350747eab update 2024-11-29 18:21:12 +08:00
d078b285a2 Update index.py 2024-11-29 18:14:02 +08:00
7b5d9bb3c1 Update index.py 2024-11-29 18:09:33 +08:00
346f07657d Update index.py 2024-11-29 17:55:37 +08:00
f4859ef7f6 Update index.py 2024-11-29 17:53:25 +08:00
40bc9798a9 Update index.py 2024-11-29 17:44:05 +08:00
98899cd76e Update index.py 2024-11-29 17:41:31 +08:00
6da57d6ccc Update index.py 2024-11-29 17:38:03 +08:00
0cef478d71 Update index.py 2024-11-29 17:36:34 +08:00
30e0db5adb Update debian.sh 2024-11-29 17:25:08 +08:00
bb6a64c0dc Update ubuntu.sh 2024-11-29 17:23:02 +08:00
d940a12ed5 Update ubuntu.sh 2024-11-29 17:22:28 +08:00
fe9cd42210 Update debian.sh 2024-11-29 17:21:15 +08:00
ad503863ad update 2024-11-29 17:16:23 +08:00
a660014740 update 2024-11-29 17:15:07 +08:00
637a4dacb9 update 2024-11-29 17:11:28 +08:00
79c8081c30 Update index.py 2024-11-29 17:04:15 +08:00
0903589e5b Update info.json 2024-11-29 17:04:09 +08:00
777bfa1145 Update index.py 2024-11-29 16:06:02 +08:00
4826dbd8a9 Update index.py 2024-11-29 16:05:27 +08:00
70507e9f65 Update index.py 2024-11-29 16:05:06 +08:00
b8d6d9ed60 update 2024-11-29 15:54:29 +08:00
d62531c700 Update info.json 2024-11-29 15:31:37 +08:00
96d5a817d5 Update install.sh 2024-11-29 15:31:26 +08:00
6436a933c9 Update panel_task.py 2024-11-29 05:19:53 +08:00
db79be96ed Update mcrypt.sh 2024-11-29 05:16:39 +08:00
d2d79092ca up 2024-11-29 05:12:09 +08:00
8f4fca5a6c update 2024-11-29 05:10:44 +08:00
dbe9fd4222 update 2024-11-29 04:49:47 +08:00
d0bc04e53b Update index.py 2024-11-29 04:05:33 +08:00
49858199a5 Update install.sh 2024-11-29 03:55:03 +08:00
7750fb7b38 Update readline.sh 2024-11-29 03:54:18 +08:00
d1d276d026 Update .gitignore 2024-11-29 03:35:01 +08:00
70aca29ce1 Update .gitignore 2024-11-29 03:34:38 +08:00
dc17d67dc9 Update plugin.py 2024-11-29 03:32:10 +08:00
407dc56f40 Update install.sh 2024-11-29 03:13:41 +08:00
bdfc044783 Update tasks.py 2024-11-29 03:13:34 +08:00
325a113ac6 Update mw.py 2024-11-29 03:13:30 +08:00
7e55e1e29a Update plugin.py 2024-11-29 03:13:04 +08:00
d604c966b2 update 2024-11-29 02:47:43 +08:00
573e3192fc Update swoole.sh 2024-11-29 02:36:40 +08:00
8ec3b66f20 Update install.sh 2024-11-29 02:24:37 +08:00
5b9a414688 Update openssl.sh 2024-11-29 02:24:29 +08:00
9553add27a Update readline.sh 2024-11-29 02:07:07 +08:00
fb3cd54ce0 Update install.sh 2024-11-29 01:54:48 +08:00
1ce5cac3ba Update openssl.sh 2024-11-29 01:23:55 +08:00
fa1819feb8 Update readline.sh 2024-11-29 01:21:32 +08:00
bd873b48d0 Update readline.sh 2024-11-29 01:16:13 +08:00
37e3850b43 update 2024-11-29 01:13:22 +08:00
3182bac95e Update install.sh 2024-11-29 01:08:08 +08:00
71dc92f59d Update phplib.conf 2024-11-29 01:08:01 +08:00
dc5a81ea89 Create curl.sh 2024-11-29 01:07:57 +08:00
e04214c14d Update install.sh 2024-11-29 00:23:17 +08:00
1846af7271 update 2024-11-29 00:23:07 +08:00
58cb061ef2 Update index.py 2024-11-28 23:28:58 +08:00
c71a59cce1 Update init.py 2024-11-28 20:48:57 +08:00
c3d6ec90e8 Update panel_tools.py 2024-11-28 20:43:33 +08:00
9569b64d26 Update __init__.py 2024-11-28 20:43:17 +08:00
6f7c26adc4 Update init.py 2024-11-28 20:42:53 +08:00
82e4e5c1d3 Update mw.tpl 2024-11-28 20:39:52 +08:00
d6972bae75 Update init.py 2024-11-28 20:29:48 +08:00
2beae29d25 Update init.py 2024-11-28 20:29:30 +08:00
e2d800a167 Update init.py 2024-11-28 20:29:11 +08:00
630e518ae3 Update mw.tpl 2024-11-28 20:22:01 +08:00
2c8108a0be Update mw.tpl 2024-11-28 20:21:40 +08:00
11ba771db3 Update __init__.py 2024-11-28 20:17:23 +08:00
e20341d3da Update setting.py 2024-11-28 20:16:58 +08:00
179b00e8a1 Update __init__.py 2024-11-28 20:16:02 +08:00
ab287d42ef Update __init__.py 2024-11-28 20:12:41 +08:00
8b439801ab Update .gitignore 2024-11-28 20:05:09 +08:00
8e39af00a3 update 2024-11-28 20:04:35 +08:00
493553ec4b update 2024-11-28 19:48:36 +08:00
0d1d4b66d6 Update panel_task.py 2024-11-28 19:47:24 +08:00
7ba7272a7c Update panel_tools.py 2024-11-28 19:43:44 +08:00
12d5ce5eea update 2024-11-28 19:31:45 +08:00
a059e09244 Update setting.py 2024-11-28 19:28:17 +08:00
2ac28e9d80 Update plugin.py 2024-11-28 19:12:10 +08:00
de3f2ab4d2 Update mw.py 2024-11-28 19:08:22 +08:00
ee206f014d Update mw.py 2024-11-28 19:07:59 +08:00
852fc6e5a7 Update mw.py 2024-11-28 19:04:25 +08:00
17b40e5d1d Update setting.py 2024-11-28 18:58:55 +08:00
769f36c560 Update app.py 2024-11-28 18:47:24 +08:00
7d1c2bac14 Update setting.py 2024-11-28 18:44:17 +08:00
58101f889d Update app.py 2024-11-28 18:43:49 +08:00
009be7e920 Update config.py 2024-11-28 18:20:11 +08:00
74817313f6 Update setting.py 2024-11-28 18:13:31 +08:00
1dc55d5e1a Update setting.py 2024-11-28 18:05:23 +08:00
2a943efcd7 Update setting.py 2024-11-28 18:03:31 +08:00
dfef78fc84 Update mw.py 2024-11-28 18:00:26 +08:00
51d092ca19 Update setting.py 2024-11-28 18:00:04 +08:00
c210429086 update 2024-11-28 16:26:14 +08:00
9cbec5a68f Update setting.py 2024-11-28 01:52:10 +08:00
b02a6a2d19 update 2024-11-28 01:49:17 +08:00
e5ef7d3e4d Update app.py 2024-11-28 01:40:52 +08:00
1d1dbfc54c Update mw.tpl 2024-11-28 01:36:00 +08:00
49867fadf0 Update setting.py 2024-11-28 01:31:27 +08:00
0df069b9a4 update 2024-11-28 01:28:45 +08:00
ef59c3a654 Update app.py 2024-11-28 01:24:24 +08:00
af3ceeefe7 Update version.py 2024-11-28 01:21:14 +08:00
655c2c2268 Update app.py 2024-11-28 01:19:44 +08:00
83f48cb05e update 2024-11-28 01:18:57 +08:00
25527d09f5 Update firewall.py 2024-11-28 01:07:00 +08:00
32718d5450 Update mw.tpl 2024-11-28 00:55:49 +08:00
7ce3160ade Update __init__.py 2024-11-28 00:52:16 +08:00
f4f4e32612 update 2024-11-28 00:45:50 +08:00
1bb99bb90e Update app.py 2024-11-28 00:33:31 +08:00
0ccf70be56 update 2024-11-28 00:33:08 +08:00
d6b68f45e5 Update __init__.py 2024-11-28 00:24:35 +08:00
41978d33bd Update app.py 2024-11-28 00:20:33 +08:00
85c62dd51a update 2024-11-27 23:59:56 +08:00
ccb9d678f6 Update __init__.py 2024-11-27 20:28:23 +08:00
d950501ec6 Create backup.py 2024-11-27 20:28:19 +08:00
4edae5114e Update site.py 2024-11-27 20:28:15 +08:00
eb925d004e Create backup.py 2024-11-27 20:28:10 +08:00
58fafd6233 Update all_test.sh 2024-11-27 18:09:17 +08:00
c4c3c1659c update 2024-11-27 15:59:25 +08:00
5a800ac1b2 Update gd_old.sh 2024-11-27 15:52:17 +08:00
0e6ea7cb7e Update setting.py 2024-11-27 06:05:54 +08:00
4078f4c67b Update setting.py 2024-11-27 05:50:15 +08:00
a44873b142 update 2024-11-27 05:48:44 +08:00
293c902a80 Update init.py 2024-11-27 05:23:05 +08:00
d25993e78b update 2024-11-27 04:48:39 +08:00
c3ef396728 Update panel_tools.py 2024-11-27 04:40:29 +08:00
17d46958f8 Update panel_tools.py 2024-11-27 04:35:55 +08:00
aef3c5d694 Update init.py 2024-11-27 04:15:28 +08:00
50eb0137a4 Update __init__.py 2024-11-27 04:13:19 +08:00
e8d1e6e1eb Update system.sql 2024-11-27 03:45:31 +08:00
e4c7a04701 Update init.py 2024-11-27 03:31:14 +08:00
e145e2c57f Update default.sql 2024-11-27 03:27:04 +08:00
2d892575f3 Update default.sql 2024-11-27 03:17:24 +08:00
0c4460282a Update default.sql 2024-11-27 03:01:15 +08:00
da0e599bad Update mw.py 2024-11-27 02:56:43 +08:00
7d2ca4ea74 Update user.py 2024-11-27 02:53:02 +08:00
7a1b30994b update 2024-11-27 02:47:23 +08:00
3994d8f0ce update 2024-11-27 02:21:45 +08:00
aa5ffdc3c0 Update mw.tpl 2024-11-27 02:17:01 +08:00
db1dfb9aed Update crontab.py 2024-11-27 02:15:08 +08:00
06db6b02d8 Update plugin.py 2024-11-27 02:13:28 +08:00
bf0269a7da Update plugin.py 2024-11-27 02:11:58 +08:00
486361f3b7 Update config.py 2024-11-27 02:08:55 +08:00
ab088d9355 Update config.py 2024-11-27 02:07:30 +08:00
c9c52cf7f5 update 2024-11-27 02:07:08 +08:00
e4ad01dd42 update 2024-11-27 01:55:03 +08:00
86ac000117 Update firewall.py 2024-11-27 01:51:15 +08:00
ae016172ea Update firewall.py 2024-11-27 01:50:47 +08:00
2c5ab01237 Update firewall.py 2024-11-27 01:50:32 +08:00
9b0a41c3d5 update 2024-11-27 01:49:20 +08:00
be55e79dcf Update sites.py 2024-11-27 01:47:53 +08:00
9265bd57e4 update 2024-11-27 01:46:54 +08:00
26bc566aed update 2024-11-27 01:41:17 +08:00
1b007460de update 2024-11-27 01:35:37 +08:00
b007010912 Update mw.py 2024-11-27 01:34:38 +08:00
053cd9bc01 Update mw.py 2024-11-27 01:33:15 +08:00
37c8da89ae Update mw.py 2024-11-27 01:32:57 +08:00
4f1001e487 Update file.py 2024-11-27 01:30:38 +08:00
f9f074ef01 update 2024-11-27 01:27:32 +08:00
8df9799564 Update mw.py 2024-11-27 01:23:59 +08:00
80e49a6ff8 Update setting.py 2024-11-27 01:19:40 +08:00
2a3bad681b Update install_new.sh 2024-11-27 00:56:23 +08:00
f7c9d61e8d Update plugin.py 2024-11-27 00:22:33 +08:00
296f54127d Update panel_task.py 2024-11-27 00:22:01 +08:00
b8161b86d2 update 2024-11-27 00:17:57 +08:00
3305e51fda Update install.sh 2024-11-27 00:13:34 +08:00
4adaa8565c Update setting.py 2024-11-27 00:01:00 +08:00
5564b27ff2 Update mw.py 2024-11-26 23:50:47 +08:00
0f1b98721b up 2024-11-26 23:50:17 +08:00
3894eebfb5 update 2024-11-26 15:47:22 +08:00
e3070b618f Update plugin.py 2024-11-26 05:14:26 +08:00
5f144924e4 update 2024-11-26 05:02:47 +08:00
570f775c66 Update site.py 2024-11-26 04:58:11 +08:00
cbdf826951 Update site.py 2024-11-26 04:56:25 +08:00
9933035cae update 2024-11-26 04:53:43 +08:00
4e3e7b7301 update 2024-11-26 04:53:03 +08:00
4ed5c48650 update 2024-11-26 04:45:38 +08:00
f46c28b39d update 2024-11-26 04:43:57 +08:00
b124aabb7b update 2024-11-26 04:38:55 +08:00
6e48e0c339 Update mongodb.sh 2024-11-26 03:55:43 +08:00
79160854b9 Update index.py 2024-11-26 03:53:33 +08:00
f5089eeb16 update 2024-11-26 03:53:21 +08:00
453639bf92 Update index.py 2024-11-26 03:50:08 +08:00
5ca5265b92 Update index.py 2024-11-26 03:49:36 +08:00
88b86b2b2b Update install.sh 2024-11-26 03:46:00 +08:00
7da0fa4379 Update index.py 2024-11-26 03:41:53 +08:00
add4d4bb5e Update panel_task.py 2024-11-26 02:01:07 +08:00
39a1c1e6e0 update 2024-11-26 01:56:33 +08:00
0b37a34528 up 2024-11-26 00:37:55 +08:00
ffcceb16cf update 2024-11-25 22:38:16 +08:00
4b7296f99e Update panel_task.py 2024-11-25 22:16:19 +08:00
5796e311a9 update 2024-11-25 22:13:45 +08:00
8af22d14c8 update 2024-11-25 16:52:18 +08:00
bd5753eb27 Update panel_task.py 2024-11-25 16:26:18 +08:00
6a6166c8ac update 2024-11-25 03:20:54 +08:00
82a5af071a update 2024-11-25 03:17:52 +08:00
4e6f867ba4 update 2024-11-25 03:16:46 +08:00
8e0a4ec34b Update install.sh 2024-11-25 03:15:08 +08:00
d5678d3f34 Update firewall.py 2024-11-25 03:08:33 +08:00
cfd7030d00 Update firewall.py 2024-11-25 03:08:18 +08:00
360d94d573 Update firewall.py 2024-11-25 03:07:09 +08:00
b3370f2937 Update firewall.py 2024-11-25 03:04:04 +08:00
ce3e37b6f8 Update site.py 2024-11-25 02:54:41 +08:00
43384f8ca4 Update site.py 2024-11-25 02:53:55 +08:00
9ab361604f Update site.py 2024-11-25 02:53:00 +08:00
000b825ef0 Delete app.py 2024-11-25 02:40:26 +08:00
d00101f6eb update 2024-11-25 02:40:09 +08:00
2d8528ca8d Update index.py 2024-11-25 02:32:11 +08:00
c6d900c4e0 Update index.py 2024-11-25 02:31:12 +08:00
15314974f6 Update index.py 2024-11-25 02:27:21 +08:00
60a1bfe679 Update index.py 2024-11-25 02:22:13 +08:00
a3af4ac405 Update index.py 2024-11-25 02:22:03 +08:00
df7a43919f Update index.py 2024-11-25 02:21:07 +08:00
ae4f3851e5 Update index.py 2024-11-25 02:20:47 +08:00
e0384dd6cb Update msodclient.py 2024-11-25 02:10:44 +08:00
d8a34e7a0b Update site.js 2024-11-25 02:04:47 +08:00
e013eb8137 update 2024-11-25 01:59:22 +08:00
72917bdc5b Update site.py 2024-11-25 01:39:17 +08:00
cf74b0a941 Update mw.py 2024-11-25 01:37:38 +08:00
e027700d50 update 2024-11-25 01:33:59 +08:00
d7fe140ff2 update 2024-11-25 01:13:47 +08:00
00c0c592fc Update index.py 2024-11-25 01:04:38 +08:00
6603a49d7b Update index.py 2024-11-25 01:01:55 +08:00
3340112c11 update 2024-11-25 01:01:20 +08:00
741e1aedf6 Update mw.py 2024-11-25 00:56:59 +08:00
a156c14248 Update index.py 2024-11-25 00:52:48 +08:00
d56de6d827 Update site.py 2024-11-25 00:41:58 +08:00
6433d6fc50 Update site.py 2024-11-25 00:40:41 +08:00
58950d581c Update site.py 2024-11-25 00:40:18 +08:00
6cd613a172 Update site.py 2024-11-25 00:38:50 +08:00
1fa57de2c0 Update site.py 2024-11-25 00:35:54 +08:00
5ebdbc74ad Update version.py 2024-11-25 00:30:10 +08:00
9c130746fb update 2024-11-25 00:29:25 +08:00
7d83f29db7 Update mw.tpl 2024-11-24 22:07:47 +08:00
729ea2df8f Update cli.sh 2024-11-24 22:04:31 +08:00
c560d3fced Update mw.tpl 2024-11-24 22:04:07 +08:00
590a246fc0 Update mw.tpl 2024-11-24 22:03:51 +08:00
5ea712b943 Update cli.sh 2024-11-24 21:56:23 +08:00
6329ce3fd6 Update cli.sh 2024-11-24 21:54:28 +08:00
cd069b24c6 Update cli.sh 2024-11-24 21:54:00 +08:00
3da3453503 Update cli.sh 2024-11-24 21:53:38 +08:00
1ab7c21910 update 2024-11-24 21:50:08 +08:00
d074224447 Update site.py 2024-11-24 21:43:03 +08:00
3f0f219896 Update site.py 2024-11-24 21:31:44 +08:00
06bdad4ab0 Update site.py 2024-11-24 21:31:04 +08:00
f2dac6e1e6 Update site.py 2024-11-24 21:28:30 +08:00
116140f5df Update site.py 2024-11-24 21:20:57 +08:00
df46b40c0f Update site.py 2024-11-24 17:53:34 +08:00
196ab188bb Update site.py 2024-11-24 17:53:07 +08:00
dc9d114ca4 Update site.py 2024-11-24 17:46:23 +08:00
d1f8cf9a8e update 2024-11-24 17:42:40 +08:00
7836622cd6 Update site.py 2024-11-24 17:32:09 +08:00
c5500c57f1 Update site.py 2024-11-24 17:30:45 +08:00
7956b6c8f4 update 2024-11-24 17:18:57 +08:00
80dd014be5 update 2024-11-24 16:48:42 +08:00
06f8a3c01a Update site.py 2024-11-24 16:38:08 +08:00
e76a0b1288 Update index.py 2024-11-24 06:25:28 +08:00
e9efc4cc35 Update index.py 2024-11-24 06:18:15 +08:00
8d6e0f049c Update install.sh 2024-11-24 06:16:14 +08:00
b83e632328 Update tool_task.py 2024-11-24 06:12:24 +08:00
315a3759c3 Update tool_cron.py 2024-11-24 06:10:07 +08:00
df0efaa7b1 update 2024-11-24 06:05:18 +08:00
c731077fba Update tool_task.py 2024-11-24 06:04:37 +08:00
c9f03c0f69 修改引入公共方法方式 2024-11-24 06:02:41 +08:00
941285d168 update 2024-11-24 05:48:35 +08:00
141c56fbc2 update 2024-11-24 05:46:05 +08:00
beb6dd874a update 2024-11-24 05:41:55 +08:00
b0392b7cf1 update 2024-11-24 05:40:30 +08:00
d57b0d0922 Update mw.py 2024-11-24 05:36:53 +08:00
add966bc62 Update crontab.py 2024-11-24 05:32:51 +08:00
62a94c5c15 Update tool_task.py 2024-11-24 05:26:35 +08:00
3b857833a7 update 2024-11-24 05:18:34 +08:00
27e1e0c73c Update mw.py 2024-11-24 05:11:35 +08:00
41000f0c5d update 2024-11-24 05:10:19 +08:00
c249da061d Update mw.py 2024-11-24 05:01:42 +08:00
aa2126e7e6 Update crontab.py 2024-11-24 04:57:24 +08:00
2893f02735 update 2024-11-24 04:51:29 +08:00
5a072d7cda Update crontab.py 2024-11-24 04:46:40 +08:00
5218468b96 Update tool_task.py 2024-11-24 04:44:31 +08:00
e4d7ebbe25 Update tool_task.py 2024-11-24 04:44:24 +08:00
d32523c451 up 2024-11-24 04:43:22 +08:00
7eb88d6a92 Update tool_task.py 2024-11-24 04:43:00 +08:00
2d14184c82 Update index.py 2024-11-24 04:40:21 +08:00
080e4ad696 Update tool_task.py 2024-11-24 04:38:28 +08:00
c639d2736e update 2024-11-24 04:24:46 +08:00
339d9e829e Update cli.sh 2024-11-24 04:24:12 +08:00
21af7b2c1c Update setting.py 2024-11-24 04:21:44 +08:00
7ef0b5a9ae Update version.py 2024-11-24 04:19:22 +08:00
ba96b38a82 Update firewall.js 2024-11-24 04:18:02 +08:00
92f9a2b9a2 update 2024-11-24 04:17:05 +08:00
9f6cd75893 update 2024-11-24 04:13:22 +08:00
d8bf989f83 update 2024-11-24 04:06:53 +08:00
2cf2a893e6 Update mw.tpl 2024-11-24 03:53:23 +08:00
08ac6ea08c update 2024-11-24 03:49:53 +08:00
6246cc84d5 Update notify_email.py 2024-11-24 03:20:34 +08:00
b056892676 update 2024-11-24 02:57:18 +08:00
c1607752b2 update 2024-11-24 00:44:39 +08:00
cf7323cf12 Update site.js 2024-11-24 00:19:45 +08:00
9765cb99ea Update site.js 2024-11-24 00:19:18 +08:00
33c67f90db Create cert.py 2024-11-23 23:48:13 +08:00
f510d23c92 Update site.py 2024-11-23 23:18:03 +08:00
5b2e40404d update 2024-11-23 23:15:25 +08:00
ed375271d2 Update site.py 2024-11-23 17:42:03 +08:00
4a16502269 up 2024-11-22 21:47:33 +08:00
0862df3182 Update site.py 2024-11-22 01:39:37 +08:00
4c1e2a206d up 2024-11-22 01:09:42 +08:00
98fbaa099f update 2024-11-21 02:54:46 +08:00
8ae54e30d0 update 2024-11-20 16:40:06 +08:00
0eed51452a Update setting.py 2024-11-14 16:51:43 +08:00
f6ff18dd8d Update crontab.js 2024-11-14 15:14:53 +08:00
4602b9fc07 Update crontab.js 2024-11-14 15:14:10 +08:00
bf6aa15505 Update crontab.js 2024-11-14 15:00:30 +08:00
ee64e55eca update 2024-11-13 19:28:56 +08:00
f685054a9a update 2024-11-13 14:45:53 +08:00
bfc1974043 Update setting.py 2024-11-13 14:27:27 +08:00
c8b9dd2ae9 Update setting.py 2024-11-13 14:25:29 +08:00
289f736160 Update setting.py 2024-11-13 14:25:22 +08:00
28def91c7d Update __init__.py 2024-11-12 22:56:40 +08:00
b9371e9b94 Update firewall.py 2024-11-12 22:40:15 +08:00
29c65c0e7c update 2024-11-12 20:24:57 +08:00
b10e1ba8cc update 2024-11-12 20:24:48 +08:00
31ac0c2542 Update firewall.py 2024-11-12 20:21:12 +08:00
2d32d8dbb2 update 2024-11-12 20:05:34 +08:00
e6f1bbfabe Update __init__.py 2024-11-12 15:40:58 +08:00
98f7c4810e Update __init__.py 2024-11-12 14:33:19 +08:00
c9288e8dbe Update __init__.py 2024-11-12 01:42:53 +08:00
1cc8ac17f3 update 2024-11-12 01:42:02 +08:00
687f16e1ef Update firewall.py 2024-11-12 01:37:59 +08:00
1616d4d191 update 2024-11-12 01:36:30 +08:00
0da42e9ec8 Update __init__.py 2024-11-12 01:21:14 +08:00
49bfb5b3a8 update 2024-11-12 01:12:15 +08:00
17a9f07f04 Update app.py 2024-11-12 01:06:31 +08:00
b03f7abcb8 Update requirements.txt 2024-11-12 01:03:49 +08:00
990199ec89 update 2024-11-12 01:00:06 +08:00
96fcdb8af3 Update README.md 2024-11-12 00:15:37 +08:00
6e88b3b0c5 Create update.sh 2024-11-12 00:15:08 +08:00
c182635fd6 Update README.md 2024-11-12 00:10:16 +08:00
7b37a86acb update 2024-11-12 00:09:20 +08:00
0f5e196e3f update 2024-11-11 23:48:44 +08:00
8f1396bb8b up 2024-11-11 22:18:32 +08:00
89d6bbd317 Update default.sql 2024-11-11 00:56:03 +08:00
111aaa768a update 2024-11-11 00:48:54 +08:00
f511b8e44f Update app.py 2024-11-10 22:48:41 +08:00
af29e865e8 update 2024-11-10 22:43:08 +08:00
97b23b7148 Update files.js 2024-11-10 20:36:48 +08:00
a9f10842e7 Update files.js 2024-11-10 20:35:58 +08:00
8520bfcd27 update 2024-11-10 20:05:21 +08:00
d8a2e91922 update 2024-11-10 19:33:56 +08:00
08336eb2ee Update firewall.html 2024-11-10 19:13:53 +08:00
9945425f99 update 2024-11-10 18:28:34 +08:00
3a1a3f6579 update 2024-11-10 17:32:00 +08:00
23b3f213b6 Update panel_tools.py 2024-11-10 14:15:53 +08:00
c2a8b95231 update 2024-11-10 13:19:03 +08:00
e6af36a34b Update panel_task.py 2024-11-10 02:26:15 +08:00
e5ed04ce31 update 2024-11-10 02:15:35 +08:00
433ad507e7 update 2024-11-09 23:31:56 +08:00
d50d8abab8 update 2024-11-09 23:25:16 +08:00
8233ba99df update 2024-11-09 19:02:08 +08:00
020c8da426 update 2024-11-09 17:18:57 +08:00
f1a74e6275 update 2024-11-09 01:27:32 +08:00
260c37f63b update 2024-11-08 21:29:01 +08:00
03e37a2b88 Update __init__.py 2024-11-08 20:06:42 +08:00
e1e7fd51cd update 2024-11-08 19:56:37 +08:00
5c24373a32 Update __init__.py 2024-11-08 19:35:48 +08:00
8ed2f6848b update 2024-11-08 19:26:16 +08:00
8f1ec01b58 update 2024-11-08 18:26:46 +08:00
d5a8efff0e update 2024-11-08 18:22:01 +08:00
43420b7c38 update 2024-11-08 18:15:31 +08:00
fa614fcf88 Update site.py 2024-11-07 03:55:16 +08:00
1b4785ec52 Update site.py 2024-11-07 03:54:48 +08:00
35c42d94c6 Update site.py 2024-11-07 03:54:37 +08:00
8609033d37 Update binding.py 2024-11-07 03:53:09 +08:00
881facdfa8 update 2024-11-07 03:50:50 +08:00
e994cd80f1 Update panel_tools.py 2024-11-07 03:09:47 +08:00
accdb5834d up 2024-11-06 20:58:22 +08:00
bcfdd22161 update 2024-11-06 02:08:35 +08:00
82ee20b1a9 update 2024-11-05 03:29:36 +08:00
d83e7b6905 Update firewall.py 2024-11-05 03:00:02 +08:00
f9b7526007 Update mw.py 2024-11-05 02:59:41 +08:00
9ce92eb69e update 2024-11-05 02:56:12 +08:00
a4079c09ef Update tasks.py 2024-11-05 02:37:39 +08:00
a09a9d5889 Update tasks.py 2024-11-05 02:35:36 +08:00
1a3972fa21 Update tasks.py 2024-11-05 02:35:16 +08:00
e477a69b98 Update tasks.py 2024-11-05 02:33:23 +08:00
1ec2c33384 Update tasks.py 2024-11-05 02:30:46 +08:00
a0a4292cb8 Update panel_task.py 2024-11-05 02:28:22 +08:00
2fe3ed5407 update 2024-11-05 02:28:06 +08:00
0c9eae860f Update mw.py 2024-11-05 01:45:22 +08:00
f6c4f3b2ee Update mw.py 2024-11-05 01:44:04 +08:00
ec70d3e955 Update firewall.js 2024-11-05 01:42:09 +08:00
534af4f017 Update index_php_yum.py 2024-11-05 01:39:21 +08:00
804f7646d1 update 2024-11-05 01:39:07 +08:00
4d44650609 Update install.sh 2024-11-05 01:35:39 +08:00
91327c50f0 Update install.sh 2024-11-05 01:34:27 +08:00
024dedabaf update 2024-11-05 01:26:45 +08:00
fed4a4ae48 Update tasks.py 2024-11-05 01:20:54 +08:00
f217c07d12 Update tasks.py 2024-11-05 01:19:09 +08:00
8d2e70c31e Update panel_task.py 2024-11-05 01:16:17 +08:00
36bd8d8a1f Update panel_task.py 2024-11-05 01:16:08 +08:00
6bf4371a2b Update panel_task.py 2024-11-05 01:15:40 +08:00
72c6dbabab update 2024-11-05 01:15:17 +08:00
ef7b680e37 update 2024-11-05 01:12:04 +08:00
910defe18b update 2024-11-05 01:03:37 +08:00
6f232aa46e Update panel_task.py 2024-11-05 00:59:38 +08:00
8010ead35a update 2024-11-05 00:58:40 +08:00
39c634ab14 Update panel_tools.py 2024-11-05 00:51:55 +08:00
9cf9b53671 update 2024-11-05 00:46:25 +08:00
fbe2da1cd8 update 2024-11-05 00:38:22 +08:00
b1dd7ea609 update 2024-11-05 00:16:19 +08:00
d4cfd90ccd update 2024-11-04 19:08:39 +08:00
1826adf50e Update install.sh 2024-11-04 01:21:17 +08:00
b58d457742 Update new_cli.sh 2024-11-04 00:33:15 +08:00
f37cd39a65 Update new_cli.sh 2024-11-04 00:32:57 +08:00
98a53b8639 Update mw.py 2024-11-04 00:28:52 +08:00
795bee7de3 update 2024-11-04 00:27:32 +08:00
477b8b1f73 Update mw.py 2024-11-04 00:13:21 +08:00
d795dd7d47 Update logs.py 2024-11-04 00:02:30 +08:00
4a7fea3b4c Update __init__.py 2024-11-03 23:59:22 +08:00
83ae4562fa update 2024-11-03 23:56:25 +08:00
06abfd92f2 update 2024-11-03 23:44:05 +08:00
3ae8f0253e up 2024-11-03 22:21:41 +08:00
c77d409317 up 2024-11-03 21:16:13 +08:00
39603f367f Update panel_tools.py 2024-11-03 20:24:45 +08:00
044eb2b65f up 2024-11-03 20:21:35 +08:00
0b6cdec4ce Update __init__.py 2024-11-03 19:50:58 +08:00
8f0be8a475 Update init_cmd.py 2024-11-03 19:39:49 +08:00
6114bcd9bc Update init_cmd.py 2024-11-03 19:36:17 +08:00
0f89246b17 Update init_cmd.py 2024-11-03 19:36:09 +08:00
63145c736f Update init_cmd.py 2024-11-03 19:33:16 +08:00
52e98f6d41 update 2024-11-03 19:15:37 +08:00
0c6fb48989 update 2024-11-03 18:57:50 +08:00
7c696c24f3 Update panel_tools.py 2024-11-03 18:48:17 +08:00
91612a8465 Update user.py 2024-11-03 18:46:41 +08:00
063263d924 update 2024-11-03 18:45:36 +08:00
514518e278 Update user.py 2024-11-03 18:36:16 +08:00
3ce1289c44 update 2024-11-03 18:14:25 +08:00
ed90f9a087 Update system.sql 2024-11-03 14:57:20 +08:00
9a9faa6a33 Update monitor.py 2024-11-03 03:38:07 +08:00
fa6900a937 Update monitor.py 2024-11-03 03:34:21 +08:00
b020f4c502 Update system.py 2024-11-03 03:31:47 +08:00
122bef53ff Update system.sql 2024-11-03 03:25:21 +08:00
bed1d7ee85 Update system.sql 2024-11-03 03:25:08 +08:00
7f68067f67 update 2024-11-03 03:17:02 +08:00
06d43efd7f update 2024-11-03 03:06:40 +08:00
745d95bbcb Update __init__.py 2024-11-03 02:20:52 +08:00
7f5b45fbdc Update monitor.py 2024-11-03 02:01:20 +08:00
179bc05e09 Update mw.py 2024-11-03 01:34:10 +08:00
5e53c637c3 update 2024-11-03 01:28:19 +08:00
d7b7c572b0 update 2024-11-03 00:59:26 +08:00
18e59ef377 up 2024-11-02 16:16:31 +08:00
fa64dfb89b update 2024-11-02 16:15:21 +08:00
5788693e6c Update install.sh 2024-11-02 16:14:29 +08:00
083f5e2271 update 2024-11-02 16:13:16 +08:00
6b378a9712 update 2024-11-02 16:12:55 +08:00
2a19a8f93d Update install.sh 2024-11-02 16:03:58 +08:00
c6418069fb Update install.sh 2024-11-02 16:01:48 +08:00
b66ab079ed Update install.sh 2024-11-02 15:58:50 +08:00
07bca6cac8 update 2024-11-02 15:54:37 +08:00
01b6ede03e update 2024-11-02 15:41:33 +08:00
472f441c0e update 2024-11-02 02:47:47 +08:00
31571a60e3 update 2024-11-02 02:19:58 +08:00
8803d3ee03 Update new_cli.sh 2024-11-01 21:30:24 +08:00
d81764cc78 Update __init__.py 2024-11-01 21:30:18 +08:00
c56c1c7274 Update __init__.py 2024-11-01 21:28:39 +08:00
580235b105 Update __init__.py 2024-11-01 21:24:14 +08:00
210dbfe164 Update __init__.py 2024-11-01 21:18:49 +08:00
e6598ff57d update 2024-11-01 21:16:25 +08:00
1dc21b3c0b Update __init__.py 2024-11-01 21:14:26 +08:00
1bae404c5e Update adult_log.py 2024-11-01 19:06:54 +08:00
39b3936eca Update adult_log.py 2024-11-01 19:04:14 +08:00
205bb47101 Update user.py 2024-11-01 19:00:21 +08:00
a4cdc1e03b Update user.py 2024-11-01 18:59:08 +08:00
0467d39c90 Update user.py 2024-11-01 18:57:12 +08:00
f8f152affb Update user.py 2024-11-01 18:56:49 +08:00
b2f595dfb2 Update user.py 2024-11-01 18:52:46 +08:00
3f3221a3df Update user.py 2024-11-01 18:48:04 +08:00
0eea41ba85 Update panel_tools.py 2024-11-01 18:45:07 +08:00
90a406e5e9 Update panel_tools.py 2024-11-01 18:43:07 +08:00
671859ad3c Update panel_tools.py 2024-11-01 18:37:00 +08:00
306d69bd39 Update mw.tpl 2024-11-01 18:36:04 +08:00
f3552281c5 Update mw.tpl 2024-11-01 18:35:07 +08:00
669bbfce93 Update mw.tpl 2024-11-01 18:34:35 +08:00
9b1552269b update 2024-11-01 18:30:50 +08:00
559e549590 Update panel_tools.py 2024-11-01 18:18:58 +08:00
fb8b5314e1 Update panel_tools.py 2024-11-01 18:18:12 +08:00
d767a4d4a2 update 2024-11-01 18:14:31 +08:00
759cbd1065 Update mw.tpl 2024-11-01 17:34:48 +08:00
386448d60c Update mw.tpl 2024-11-01 17:34:15 +08:00
3d381b6dfa Update mw.tpl 2024-11-01 17:33:16 +08:00
39c9a260cb Update mw.tpl 2024-11-01 17:32:30 +08:00
b0e9a13984 Update mw.tpl 2024-11-01 17:26:01 +08:00
9ff26caa5f Update mw.tpl 2024-11-01 17:22:32 +08:00
d5e2f554f1 update 2024-11-01 17:21:19 +08:00
14ee45918f Update panel_tools.py 2024-11-01 17:18:19 +08:00
9fd7d20051 Update mw.tpl 2024-11-01 17:16:47 +08:00
328543852c Update mw.tpl 2024-11-01 17:13:06 +08:00
aa23809390 Update mw.tpl 2024-11-01 17:01:52 +08:00
6da09e708a Update mw.tpl 2024-11-01 16:58:51 +08:00
b44fec1859 Update __init__.py 2024-11-01 16:56:45 +08:00
71ab5920c8 Update README.md 2024-11-01 16:55:47 +08:00
4bd04eb71d Update update_new.sh 2024-11-01 16:55:22 +08:00
c08a2965ab Create update_new.sh 2024-11-01 16:54:42 +08:00
87c50e529d Update mw.tpl 2024-11-01 16:51:45 +08:00
Mr Chen
2438717c79 Merge pull request #628 from midoks/dev
0.17.4
2024-11-01 12:23:57 +08:00
f952f88d9a Update config_api.py 2024-11-01 12:21:22 +08:00
019594cee7 update 2024-11-01 02:52:34 +08:00
d7980147d6 update 2024-11-01 02:51:54 +08:00
2e45194b34 update 2024-11-01 02:51:27 +08:00
8d21448edb Update system_api.py 2024-11-01 02:45:00 +08:00
1d986a2b16 Update system_api.py 2024-11-01 02:44:44 +08:00
c291cc57e7 Update mw.tpl 2024-11-01 02:40:33 +08:00
0c9fe565e4 Update mw.py 2024-11-01 02:29:48 +08:00
c04e52d3df Update system_api.py 2024-11-01 02:24:09 +08:00
966506bb8d update 2024-11-01 02:10:08 +08:00
11f42d5d2c update 2024-11-01 01:22:56 +08:00
ebf474aefb up 2024-10-31 19:20:35 +08:00
1ab3718fe5 Update __init__.py 2024-10-31 05:02:13 +08:00
aad35bb73b update 2024-10-31 04:57:02 +08:00
1c72e5b664 Update push_notice_msg.py 2024-10-30 23:39:59 +08:00
028307d1fc Update nginx.conf 2024-10-30 16:05:27 +08:00
d0fc6a4c08 update 2024-10-30 02:37:16 +08:00
7507de7ed2 update 2024-10-30 00:56:24 +08:00
eb3f78ef4a update 2024-10-30 00:55:34 +08:00
a015c32e42 up 2024-10-29 22:28:38 +08:00
e5e106e3bc update 2024-10-29 18:58:45 +08:00
bc85a6003b Update __init__.py 2024-10-29 18:49:21 +08:00
e7bf5ef8b9 update 2024-10-29 18:47:46 +08:00
2337ea901b update 2024-10-28 23:23:24 +08:00
3a17126ac0 update 2024-10-28 18:43:19 +08:00
164bfa780c Update mysql.js 2024-10-28 17:28:28 +08:00
cb0375d9f7 Update install.sh 2024-10-28 17:11:12 +08:00
1d15747753 Update index.py 2024-10-28 16:18:03 +08:00
af7c38a8c2 Update app.py 2024-10-28 16:06:57 +08:00
57bbf07432 Update index.py 2024-10-28 16:06:41 +08:00
fe1bc268d5 Update index.py 2024-10-28 16:06:25 +08:00
ea2cf0b691 Update __init__.py 2024-10-28 15:47:40 +08:00
a593e2b8e0 update 2024-10-28 03:13:10 +08:00
5394dd329a update 2024-10-27 19:29:09 +08:00
b121d08503 update 2024-10-27 03:00:24 +08:00
97800e3424 update 2024-10-27 02:58:55 +08:00
bb1068a03c update 2024-10-27 02:23:20 +08:00
f2443d9473 update 2024-10-27 02:23:12 +08:00
f7c9e6636a Update info.json 2024-10-27 00:04:19 +08:00
feb3e0220e Update install.sh 2024-10-27 00:01:22 +08:00
c9951f870d update 2024-10-26 18:35:49 +08:00
c876c59e4f Create db.py 2024-10-26 04:26:32 +08:00
0e75844fd3 Update __init__.py 2024-10-26 04:22:18 +08:00
515a8c4272 Update files.js 2024-10-26 04:04:19 +08:00
d026385370 update 2024-10-26 04:04:00 +08:00
95ff8c66f6 update 2024-10-25 23:02:10 +08:00
6d90935784 update 2024-10-25 19:04:14 +08:00
94d45b1b07 update 2024-10-25 02:24:38 +08:00
dc1458fb2a Update __init__.py 2024-10-24 18:24:40 +08:00
ae74121229 Update index.py 2024-10-24 14:39:19 +08:00
f5b0ce7788 Update index.py 2024-10-24 14:39:16 +08:00
5757627a12 Update user_login_check.py 2024-10-24 14:39:10 +08:00
28f8f8945d update 2024-10-24 14:25:27 +08:00
e5386ab01c Update index.py 2024-10-24 14:25:17 +08:00
8ad9153012 update 2024-10-24 00:12:16 +08:00
2790a3890b Update __init__.py 2024-10-23 20:53:37 +08:00
a978c494c4 update 2024-10-23 15:40:14 +08:00
e1dd781b73 update 2024-10-23 14:49:03 +08:00
13a7c20764 update 2024-10-23 04:22:06 +08:00
7812c4983f update 2024-10-23 04:11:31 +08:00
a35ae6df9e update 2024-10-23 03:46:29 +08:00
32eefbba10 update 2024-10-23 02:40:54 +08:00
81de116417 update 2024-10-22 18:52:50 +08:00
37ace1226b Update r3.7.txt 2024-10-22 02:28:19 +08:00
7c780b32b8 Create page.py 2024-10-22 02:26:28 +08:00
eba923aa5f Update __init__.py 2024-10-22 02:25:21 +08:00
d97e265035 update 2024-10-22 02:11:30 +08:00
86014afedb update 2024-10-22 01:36:09 +08:00
b3626022bf Update requirements.txt 2024-10-22 00:52:58 +08:00
e5bf49bca4 Update requirements.txt 2024-10-22 00:44:26 +08:00
d988ce55b1 update 2024-10-21 03:19:08 +08:00
2804d0ed24 Update index.py 2024-10-20 01:45:59 +08:00
730797dcde Update fail2ban.js 2024-10-20 01:33:33 +08:00
476a4e9d88 Update fail2ban.js 2024-10-20 01:24:51 +08:00
665710f912 Update fail2ban.js 2024-10-20 01:22:19 +08:00
890a1ee864 Update fail2ban.js 2024-10-20 01:20:53 +08:00
5d7872200d Update fail2ban.js 2024-10-20 01:19:49 +08:00
ccdfde3186 Update fail2ban.js 2024-10-20 01:15:10 +08:00
f74c1ab784 update 2024-10-20 01:14:53 +08:00
82efc1a3e5 Update index.py 2024-10-19 23:38:11 +08:00
b6f87e16ac update 2024-10-19 23:19:15 +08:00
e1014a72bd Update index.py 2024-10-19 23:10:50 +08:00
218991d8d0 Update index.py 2024-10-19 22:47:48 +08:00
7937747a05 update 2024-10-19 22:45:13 +08:00
649ea30cb4 Update __init__.py 2024-10-19 22:17:16 +08:00
b92cfdeade update 2024-10-19 21:52:59 +08:00
76199a20a4 update 2024-10-19 21:44:12 +08:00
c42b92bb95 update 2024-10-19 21:32:18 +08:00
ce2affb119 update 2024-10-19 21:27:24 +08:00
d3e228bcd6 Update index.py 2024-10-19 03:01:05 +08:00
baac8e84ec Update fail2ban.js 2024-10-19 00:01:35 +08:00
3d0a55a383 Update fail2ban.js 2024-10-19 00:00:10 +08:00
d8c822de9d Update fail2ban.js 2024-10-18 23:58:05 +08:00
ee8a928357 update 2024-10-18 23:54:12 +08:00
785fb9698b update 2024-10-18 22:32:11 +08:00
14c3ccbfa5 Update index.html 2024-10-18 22:07:00 +08:00
41edac3e3a Update index.html 2024-10-18 22:05:27 +08:00
36173cdd0a Update index.html 2024-10-18 22:04:22 +08:00
ee59bd31e6 update 2024-10-18 22:00:38 +08:00
63004db963 Update backup.py 2024-10-16 22:30:47 +08:00
93b3c5ba3c Update simpleping_index.py 2024-10-16 22:01:29 +08:00
613063ce24 Update simpleping_index.py 2024-10-16 22:01:16 +08:00
2e7a147fd3 Update simpleping_index.py 2024-10-16 21:44:02 +08:00
894c0bff1f Update simpleping_index.py 2024-10-16 21:41:49 +08:00
3ad999db00 Update index.py 2024-10-16 20:53:22 +08:00
1e5e1afeeb Update debian.sh 2024-10-16 17:08:17 +08:00
463d5c1b23 update 2024-10-16 17:06:22 +08:00
a24b98cbea mongodb 升级 2024-10-16 17:01:49 +08:00
94034125f7 Update install.sh 2024-10-16 01:19:11 +08:00
17d446161b update 2024-10-16 01:17:30 +08:00
fb8c1d124e update 2024-10-15 16:18:44 +08:00
5033692886 Update index.py 2024-10-15 16:05:27 +08:00
e5ba11ae79 Update install.sh 2024-10-15 15:57:58 +08:00
0be032041a Update index.py 2024-10-15 15:42:03 +08:00
3bf3e83442 Update index.py 2024-10-15 15:39:47 +08:00
bd7aefb6cc Update index.py 2024-10-15 15:39:18 +08:00
7009dfc3c4 Update pgadmin.service.tpl 2024-10-15 14:55:19 +08:00
21c30c6e99 Update pgadmin.service.tpl 2024-10-15 14:53:27 +08:00
63a0d2205d Update install.sh 2024-10-15 14:52:26 +08:00
2e2e48e440 update 2024-10-15 00:31:41 +08:00
2f125383bf cloudreve init 2024-10-15 00:29:57 +08:00
71877f7403 update 2024-10-13 22:15:58 +08:00
3d9d528694 Update index.py 2024-10-12 04:40:54 +08:00
39e8b98287 Update index.py 2024-10-12 04:36:00 +08:00
fe960a32ee Update index.py 2024-10-12 04:22:38 +08:00
645450f886 update 2024-10-12 01:36:22 +08:00
77b4917d3a Update install.sh 2024-10-11 22:25:53 +08:00
893797b5e4 Update alist.js 2024-10-11 21:26:38 +08:00
019543b790 Update install.sh 2024-10-11 21:26:33 +08:00
c85fb94bc2 update 2024-10-11 16:43:49 +08:00
60f3dbf6fc Update index.py 2024-10-11 16:22:48 +08:00
b1846342d7 Update index.py 2024-10-10 00:51:18 +08:00
2f583d2e97 Update index.py 2024-10-10 00:45:46 +08:00
551bb1c3f7 update 2024-10-10 00:42:54 +08:00
36cf6c87cc Update install.sh 2024-10-09 22:59:59 +08:00
66bea6a943 Update alist.service.tpl 2024-10-09 22:59:39 +08:00
212d3e4ee8 Update alist.service.tpl 2024-10-09 22:52:47 +08:00
422060b929 Update alist.service.tpl 2024-10-09 22:49:34 +08:00
2b4f755244 Update install.sh 2024-10-09 22:48:16 +08:00
67c477af14 update 2024-10-09 22:44:21 +08:00
a8502e30b3 alist init 2024-10-09 22:37:43 +08:00
82db6d14e0 Update index.py 2024-10-09 22:37:01 +08:00
c529d18ad8 Update index.py 2024-10-09 22:10:04 +08:00
cf54ee1736 Update .gitignore 2024-10-08 23:35:56 +08:00
8e8c4c47ec new version init 2024-10-08 23:35:42 +08:00
a6c981355c Update .gitignore 2024-10-07 17:00:36 +08:00
69755363ca Update install.sh 2024-10-06 23:18:42 +08:00
eaa5a4d4ed Update mcrypt.sh 2024-10-06 15:18:04 +08:00
4dcae9f877 Update redis.sh 2024-10-06 14:36:44 +08:00
424830729f Update install.sh 2024-10-06 14:17:41 +08:00
a678d28a12 update 2024-10-06 14:13:46 +08:00
b9b5ecbac9 Update app.sh 2024-10-04 14:58:42 +08:00
199716e1fd Update .gitignore 2024-10-04 14:55:12 +08:00
Mr Chen
c95efcdd04 Merge pull request #626 from midoks/dev
Dev
2024-10-03 02:36:54 +08:00
02f14b29ee Update site_api.py 2024-10-03 02:35:47 +08:00
97789d0796 Update cert_api.py 2024-10-03 02:19:13 +08:00
ea5af1ac5b update 2024-10-03 02:01:53 +08:00
6e279a67e2 Update cert_api.py 2024-10-03 01:58:21 +08:00
9758becc46 Update cert_api.py 2024-10-03 01:00:32 +08:00
Mr Chen
da2d0fd2ce Merge pull request #625 from midoks/dev
Update config_api.py
2024-10-02 20:27:03 +08:00
6e0d580f6b Update config_api.py 2024-10-02 20:26:36 +08:00
Mr Chen
34481c12e1 Merge pull request #624 from midoks/dev
0.17.3
2024-10-02 20:25:38 +08:00
bc27feab00 Update my.cnf 2024-10-02 19:17:00 +08:00
1e48b32170 Update my.cnf 2024-10-02 19:13:35 +08:00
b9cbf63945 Update install.sh 2024-10-02 18:58:16 +08:00
8437e236db update 2024-10-02 18:57:02 +08:00
838043a9dd Update README.md 2024-10-02 16:20:08 +08:00
8debe50f1b update 2024-10-02 16:15:19 +08:00
8a97577b61 Update info.json 2024-10-02 16:09:45 +08:00
cb9b6b2816 Update cert_api.py 2024-10-02 16:00:47 +08:00
92d5126230 Update cert_api.py 2024-10-02 15:43:40 +08:00
50c6f9fce5 update 2024-10-02 15:33:23 +08:00
cbb1403f80 update 2024-10-02 14:25:14 +08:00
21f995f8ac Update install.sh 2024-10-02 04:11:59 +08:00
185e0dae22 Update README.md 2024-10-02 04:11:44 +08:00
e555829f1b Update install.sh 2024-10-02 04:03:39 +08:00
2f50a2ffa0 update 2024-10-02 03:51:37 +08:00
069ececfe1 Update install.sh 2024-10-02 03:48:23 +08:00
1ea1ad5ae0 Update info.json 2024-10-02 03:37:13 +08:00
3787913a12 Update index.py 2024-10-02 03:33:28 +08:00
45f51954f9 update 2024-10-02 03:29:34 +08:00
0c7773c6d4 Update pgadmin.js 2024-10-02 03:17:59 +08:00
81e1940b8f Update pgadmin.js 2024-10-02 03:17:42 +08:00
2e24a715ba Update pgadmin.js 2024-10-02 03:17:03 +08:00
a05be24ed1 up 2024-10-02 03:15:36 +08:00
f09017fe6e Update index.py 2024-10-02 02:58:12 +08:00
1aedb66132 Update index.py 2024-10-02 02:17:37 +08:00
2e3aef3776 Update cmd.md 2024-10-02 02:01:35 +08:00
0d3cf64e9a Update cmd.md 2024-10-02 01:57:53 +08:00
66220c1963 update 2024-10-02 01:56:26 +08:00
1ed52a1033 Update pg_init.sh 2024-10-02 01:49:19 +08:00
1a4ac13f8b Update cmd.md 2024-10-02 01:44:05 +08:00
e2e94015a0 Update index.py 2024-10-02 01:40:20 +08:00
dee7abc850 Update index.py 2024-10-02 01:40:02 +08:00
a1464006db Update pg_init.sh 2024-10-02 01:35:51 +08:00
b4c6bcec6e Update cmd.md 2024-10-02 01:28:08 +08:00
1d55ef3d0a Update mw.tpl 2024-10-02 01:27:40 +08:00
24dab4775c update 2024-10-02 01:26:26 +08:00
7a7b77887c update 2024-10-02 00:53:31 +08:00
c39d21b300 update 2024-10-02 00:39:56 +08:00
3f7bce197f Update index.py 2024-10-02 00:11:27 +08:00
e706ff17c1 Update index.py 2024-10-02 00:07:35 +08:00
5a80422b77 Update config_local.py 2024-10-02 00:04:15 +08:00
d3fb392f28 Update config_local.py 2024-10-02 00:02:23 +08:00
6817043007 Update index.py 2024-10-02 00:02:07 +08:00
3106c101d8 Update index.py 2024-10-02 00:00:51 +08:00
e25c7f424d update 2024-10-01 23:57:54 +08:00
156459b6a4 update 2024-10-01 23:49:15 +08:00
c73fe892b7 Update install.sh 2024-10-01 23:09:59 +08:00
491ad84103 Update pgadmin.conf 2024-10-01 22:29:23 +08:00
cdb27c5d83 Update index.py 2024-10-01 22:18:50 +08:00
7d35f9d129 Update index.py 2024-10-01 21:31:28 +08:00
b34d1e7caa update 2024-10-01 21:30:16 +08:00
055a52da03 Update mw.tpl 2024-10-01 21:02:26 +08:00
2c3746c596 Update mw.tpl 2024-10-01 20:59:30 +08:00
96a0ca9b2f Update mw.tpl 2024-10-01 18:23:50 +08:00
1cd436bc5d Update mw.tpl 2024-10-01 18:19:54 +08:00
3834a9b0b8 update 2024-10-01 18:18:28 +08:00
30454e3b4a Update index.py 2024-10-01 17:57:29 +08:00
020354f5bc update 2024-10-01 17:46:49 +08:00
6e5dbeda72 update 2024-10-01 17:37:39 +08:00
804922a707 Update pgadmin.js 2024-10-01 17:32:01 +08:00
23081f4487 Update pgadmin.js 2024-10-01 17:30:06 +08:00
2f75f57365 Update index.py 2024-10-01 17:27:52 +08:00
f4f7ffe5dd Update pgadmin.js 2024-10-01 17:27:30 +08:00
0de23a3914 update 2024-10-01 17:24:56 +08:00
d1f47ca406 Update pgadmin.js 2024-10-01 17:13:52 +08:00
8d16fe1d46 Update index.py 2024-10-01 17:10:57 +08:00
d1bffd74ae Update index.py 2024-10-01 17:10:27 +08:00
23de77d951 Update index.py 2024-10-01 17:09:43 +08:00
172fe65df4 Update install.sh 2024-10-01 17:09:32 +08:00
4cd96252f1 Update index.py 2024-10-01 17:09:17 +08:00
a88f4c35bd Update pgadmin.js 2024-10-01 17:08:39 +08:00
19ffeb7e8e Update pgadmin.js 2024-10-01 17:07:44 +08:00
004e1ce03c update 2024-10-01 17:05:59 +08:00
485efb0c88 Update pgadmin.js 2024-10-01 17:01:36 +08:00
227107719b Update index.html 2024-10-01 16:32:04 +08:00
d683f18bd0 update 2024-10-01 16:26:44 +08:00
78446b5a68 update 2024-10-01 16:00:50 +08:00
3fe638d16c update 2024-10-01 15:57:26 +08:00
f71973b10a Update index.py 2024-10-01 15:52:28 +08:00
0ab0a918c3 Update index.py 2024-10-01 15:46:11 +08:00
c694688220 Update index.py 2024-10-01 15:42:26 +08:00
f979fd32e3 Update index.py 2024-10-01 15:39:00 +08:00
7e11e8138e update 2024-10-01 15:37:14 +08:00
590575f5b1 Update pgadmin.service.tpl 2024-10-01 15:26:42 +08:00
b76c525106 update 2024-10-01 15:21:54 +08:00
56a276f019 Update index.py 2024-10-01 15:12:14 +08:00
62050fcff1 Update index.py 2024-10-01 15:11:01 +08:00
d4989bb762 update 2024-10-01 14:24:52 +08:00
dff54109a4 Update index.py 2024-10-01 14:22:05 +08:00
5850d69c10 update 2024-10-01 14:21:17 +08:00
908507f64e Update install.sh 2024-10-01 12:25:13 +08:00
ecd455ab21 Update install.sh 2024-10-01 12:24:34 +08:00
c4ebfff55e Update install.sh 2024-10-01 12:22:10 +08:00
6adf5f472d Update install.sh 2024-10-01 12:16:40 +08:00
ee6b5c304a Update install.sh 2024-10-01 12:14:26 +08:00
03327a549f init pgadmin 2024-10-01 04:08:12 +08:00
f6e245e77d Update __init__.py 2024-10-01 01:33:47 +08:00
4dcf9d9a40 Update __init__.py 2024-10-01 01:33:34 +08:00
a6ef4e12ad Update __init__.py 2024-10-01 01:30:44 +08:00
2e751bb3fb Update __init__.py 2024-10-01 01:30:23 +08:00
5ab15341e4 update 2024-09-29 12:00:00 +08:00
d6b027e969 Update ubuntu.sh 2024-09-28 22:26:59 +08:00
76a4b3b3e6 Update debian.sh 2024-09-28 22:23:28 +08:00
3062aee5cb Update debian.sh 2024-09-28 22:22:13 +08:00
dbf0d95329 Update __init__.py 2024-09-28 21:47:27 +08:00
c42b0d5fda Create webhook_index.py 2024-09-28 21:43:44 +08:00
59f2688399 Update __init__.py 2024-09-28 21:43:42 +08:00
395bf3aa5a Update __init__.py 2024-09-28 21:41:29 +08:00
bd85e418bc Update nginx.conf 2024-09-27 17:51:03 +08:00
091ac05920 Update redis.conf 2024-09-26 14:57:12 +08:00
127d175e5c Update redis.conf 2024-09-26 00:49:55 +08:00
744a7f83df Update redis.conf 2024-09-26 00:39:09 +08:00
5f61a7af17 Update gd_old.sh 2024-09-24 16:00:09 +08:00
c4ceaddcca update 2024-09-24 15:10:18 +08:00
12729092d8 Update index_php_yum.py 2024-09-24 14:31:22 +08:00
94830659e9 Update index_php_yum.py 2024-09-24 14:11:46 +08:00
aef307c312 Update index_php_yum.py 2024-09-24 14:11:11 +08:00
2b15c77cdc Update index_php_yum.py 2024-09-24 14:09:20 +08:00
78acddb043 Update index_php_yum.py 2024-09-24 14:08:10 +08:00
9106f3d2f5 Update index_php_yum.py 2024-09-24 14:00:01 +08:00
2df8355a33 Update index_php_yum.py 2024-09-24 13:59:01 +08:00
c5610aae05 update 2024-09-24 13:55:02 +08:00
f1f3a42557 Update gd_old.sh 2024-09-24 13:41:32 +08:00
63072120fc Update rocky.sh 2024-09-24 13:40:01 +08:00
0be966646b Update rocky.sh 2024-09-24 13:38:51 +08:00
c3201118bd Update gd_old.sh 2024-09-24 13:16:20 +08:00
12896574c7 update 2024-09-23 12:12:47 +08:00
5bf877647f Update cert_api.py 2024-09-21 14:15:08 +08:00
697e692c92 Update linux.conf 2024-09-18 22:57:38 +08:00
7b620a294b Update push_notice_msg.py 2024-09-18 10:06:49 +08:00
8c1e4d7c4d Update push_ad.py 2024-09-18 10:06:32 +08:00
468c64df40 Update site.js 2024-09-16 02:26:42 +08:00
c560bc666f up 2024-09-15 22:19:04 +08:00
8c4ab4a60d Update index.py 2024-09-15 15:53:01 +08:00
1a0b7895d9 Update common.js 2024-09-15 15:41:33 +08:00
26a29fea96 Update index.py 2024-09-15 15:39:36 +08:00
5c9a12a7b2 update 2024-09-15 15:35:31 +08:00
7d103e8f4a Update index.py 2024-09-15 15:27:33 +08:00
4f4dfd0ee1 Update common.js 2024-09-15 14:38:36 +08:00
c02e95bc49 update 2024-09-15 05:17:16 +08:00
e77bfb055a Update goedge.py 2024-09-15 01:13:23 +08:00
712814515c update 2024-09-15 01:03:32 +08:00
512213df15 update 2024-09-15 00:53:06 +08:00
e07c5ab7f9 Update cert_api.py 2024-09-14 20:55:41 +08:00
83471a37b0 Update common.js 2024-09-14 19:39:42 +08:00
f82944a043 Update common.js 2024-09-14 19:36:53 +08:00
6eb5dec1f6 Update goedge.py 2024-09-14 19:31:58 +08:00
f7ec845a7e update 2024-09-14 19:31:15 +08:00
0e7ed65e04 update 2024-09-14 19:22:10 +08:00
60910c9d87 Update goedge.py 2024-09-14 17:45:49 +08:00
f4b4b3c3a6 update 2024-09-14 17:42:42 +08:00
ce363b0319 Update index.py 2024-09-14 16:03:03 +08:00
42b0a4067b update 2024-09-14 15:50:03 +08:00
1e6f755045 update 2024-09-14 15:47:30 +08:00
c7570e84a0 Update index.py 2024-09-14 15:12:26 +08:00
34b7a5f7ba Update index.py 2024-09-14 15:04:44 +08:00
ff2146a49d update 2024-09-14 15:02:18 +08:00
5038d8b07f Update install.sh 2024-09-14 11:59:35 +08:00
aacc87c190 Update index.py 2024-09-14 11:57:28 +08:00
e68a21ccb7 Update index.py 2024-09-14 11:52:07 +08:00
435f0a0c84 Update index.py 2024-09-14 11:50:33 +08:00
d4269dc886 update 2024-09-14 11:48:43 +08:00
079ae529ee Update tool_cron.py 2024-09-14 02:39:51 +08:00
f8d3e23025 Update install.sh 2024-09-14 02:38:49 +08:00
efa168a4b1 Update install.sh 2024-09-14 02:37:14 +08:00
ebfc32be74 Update index.py 2024-09-14 02:35:55 +08:00
79a2f6d7a4 Update install.sh 2024-09-14 02:33:48 +08:00
edd218b139 Create tool_cron.py 2024-09-14 02:31:49 +08:00
d3645425f6 up 2024-09-14 02:21:21 +08:00
2f34c689d0 update 2024-09-14 02:12:32 +08:00
548e5fbde1 update 2024-09-14 02:00:13 +08:00
f0b3d7f151 Update common.js 2024-09-14 01:46:37 +08:00
c85a6fd462 Update index.html 2024-09-14 01:42:05 +08:00
ddbc7988b2 update 2024-09-14 01:39:57 +08:00
83b1e3b8af update 2024-09-14 01:25:59 +08:00
8fd4f83793 Update common.js 2024-09-14 01:17:41 +08:00
32321c822f Update acme.sql 2024-09-14 01:04:22 +08:00
bb8e8b7367 Update common.js 2024-09-14 01:01:34 +08:00
224417e2bd acme_pandominassl_apply 2 2024-09-14 00:35:35 +08:00
afb2a39f8c update 2024-09-13 20:54:22 +08:00
f240f167ff Update install.sh 2024-09-13 15:47:12 +08:00
69273f9cf9 Update install.sh 2024-09-13 15:44:18 +08:00
e30079bd2c update 2024-09-13 15:31:28 +08:00
d882de1582 update 2024-09-13 15:25:26 +08:00
2e14dc22ff Update install.sh 2024-09-13 15:24:46 +08:00
6839e387c2 Update install.sh 2024-09-13 15:21:16 +08:00
bde2bc0b2b update 2024-09-13 00:19:27 +08:00
e6fe0885a5 Update acme.sql 2024-09-13 00:17:46 +08:00
f95440da99 acme_pandominassl_apply init 2024-09-13 00:12:18 +08:00
cbfff99f89 Update index.py 2024-09-09 23:04:09 +08:00
ee119ea3cc Update openresty.js 2024-09-09 23:02:38 +08:00
ebefee67bc Update openresty.js 2024-09-09 23:01:03 +08:00
60fc2e5803 Update openresty.js 2024-09-09 23:00:01 +08:00
b766a6eb6a Update openresty.js 2024-09-09 22:58:29 +08:00
f67342fd7a Update index.py 2024-09-09 22:56:52 +08:00
2f98228310 Update .gitignore 2024-09-06 19:30:22 +08:00
b07739a66a Update index.py 2024-09-04 23:11:54 +08:00
3b293e3163 Update index.py 2024-09-04 13:09:20 +08:00
cec5fc594f Update index.py 2024-09-04 13:07:57 +08:00
ed10a050bc Update .gitignore 2024-09-01 10:54:15 +08:00
cfc3dc73c4 Update cert_api.py 2024-08-30 15:10:36 +08:00
7c23c16280 Update header_cors.conf 2024-08-26 12:29:41 +08:00
0f27552817 Update webstats_common.lua 2024-08-20 03:14:40 +08:00
7464789c8c Update commit.tpl 2024-08-16 13:35:34 +08:00
a1f9c023c7 update 2024-08-15 14:29:19 +08:00
9e8cdc2c49 Update fail2ban.conf 2024-08-15 14:28:32 +08:00
dc9b44f5f9 update 2024-08-15 14:27:52 +08:00
b7ea4bd6f1 update 2024-08-15 14:24:40 +08:00
65dddb798c Create fail2ban.bak.conf 2024-08-15 14:23:51 +08:00
2451f0b593 Update fail2ban.conf 2024-08-15 14:16:55 +08:00
418734eb31 Update index.py 2024-08-15 14:13:24 +08:00
fce7fe4fe3 Update install.sh 2024-08-15 13:18:25 +08:00
e31407527f Update site_api.py 2024-08-15 09:36:33 +08:00
9250e81059 Update nosql_mongodb.py 2024-08-10 12:55:15 +08:00
f54f9c6736 update 2024-08-09 21:41:59 +08:00
54135a88f9 Update mongodb.js 2024-08-09 21:08:28 +08:00
Mr Chen
5b219708db Merge pull request #621 from midoks/dev
一些简单优化
2024-08-09 16:37:50 +08:00
b62a5e457b Update app.js 2024-08-09 14:24:48 +08:00
3af325f0c4 update 2024-08-09 14:15:26 +08:00
514ced2cc6 update 2024-08-09 01:46:39 +08:00
55cdf6c0cf Update linux.conf 2024-08-08 22:14:14 +08:00
00cd6e4309 Update cmd.md 2024-08-06 13:21:11 +08:00
03012d8296 Update cmd.md 2024-08-06 13:21:04 +08:00
b4952dbb20 update 2024-08-06 13:14:43 +08:00
9123cedf4c Update mw.tpl 2024-08-06 13:03:17 +08:00
1c9fbfc2eb Update mw.tpl 2024-08-06 13:01:22 +08:00
d6e182b94f Update mw.tpl 2024-08-06 13:01:05 +08:00
e48e56f36a Update info.json 2024-08-02 04:19:03 +08:00
adde6acf4d Update gorse.toml 2024-08-02 04:18:10 +08:00
e929aa0875 Update gorse.js 2024-08-02 04:11:06 +08:00
f784376486 Update index.py 2024-08-02 04:04:30 +08:00
7c0d0f4a07 gorse init 2024-08-02 04:00:41 +08:00
e25804998d PHP默认隐藏版本号 2024-07-30 01:12:53 +08:00
6e69f843a0 update 2024-07-29 19:49:53 +08:00
978d2878a4 Update plugins_api.py 2024-07-29 14:02:45 +08:00
675ea86b83 Update install.sh 2024-07-29 12:44:32 +08:00
c2be36b8b3 Update install.sh 2024-07-29 12:25:31 +08:00
938e204691 Create euler.sh 2024-07-29 12:24:14 +08:00
70eb911e58 Update getos.sh 2024-07-29 12:22:59 +08:00
0440d0f286 update 2024-07-29 11:57:35 +08:00
9651a88d67 update 2024-07-29 11:55:13 +08:00
6b8d2622b4 Update install.sh 2024-07-29 11:52:15 +08:00
e743499825 Update install.sh 2024-07-29 11:49:33 +08:00
127535c7d4 Update install.sh 2024-07-29 11:48:15 +08:00
0a322c9fed Update index.html 2024-07-28 22:34:05 +08:00
db36c34332 Update index.py 2024-07-28 21:41:21 +08:00
6c00e8c350 Update index.py 2024-07-28 20:20:34 +08:00
4e21b136d7 Update index.py 2024-07-28 20:18:34 +08:00
407b317f01 Update index.py 2024-07-28 20:15:22 +08:00
eb55ff7c30 Update install.sh 2024-07-28 20:13:25 +08:00
3729146b80 Update install.sh 2024-07-28 20:01:01 +08:00
48636eae43 Update fail2ban.js 2024-07-28 19:59:24 +08:00
ae62bee78d update 2024-07-28 19:54:38 +08:00
d0f33a0813 Update index.py 2024-07-28 19:42:54 +08:00
6627b67692 update 2024-07-28 19:39:44 +08:00
32f58e6323 Update index.py 2024-07-28 19:36:37 +08:00
4c82688f7d Update index.py 2024-07-28 19:28:46 +08:00
479ed7ac1e Update install.sh 2024-07-28 19:26:45 +08:00
1320a8aad1 Update install.sh 2024-07-28 19:26:19 +08:00
ed1b1322fa Update info.json 2024-07-28 19:24:28 +08:00
b9b61d1462 update 2024-07-28 19:24:07 +08:00
fc982674f8 fail2ban init 2024-07-28 19:22:17 +08:00
Mr Chen
3e51722085 Merge pull request #620 from midoks/dev
0.17.2
2024-07-26 23:08:01 +08:00
d5f5287ca3 Update README.md 2024-07-26 23:06:46 +08:00
f0f491fa86 Update README.md 2024-07-26 23:05:02 +08:00
bbaa00a479 Update README.md 2024-07-26 23:03:43 +08:00
6df248ec22 Update config_api.py 2024-07-26 22:59:43 +08:00
eae61c827d Update cert_api.py 2024-07-26 22:58:38 +08:00
eed5c91435 Update redis_simple.conf 2024-07-26 22:52:55 +08:00
9e09952471 update 2024-07-26 19:22:57 +08:00
46a3591019 Update index.py 2024-07-26 17:00:52 +08:00
5419a01b5c Update cert_api.py 2024-07-26 12:59:59 +08:00
3770ebc0f3 Update cert_api.py 2024-07-26 12:58:52 +08:00
209ae03e63 Update cert_api.py 2024-07-26 12:44:52 +08:00
fc7609874d Update cert_api.py 2024-07-26 12:43:32 +08:00
3c99f17158 Update cert_api.py 2024-07-26 12:18:04 +08:00
6fb3a52e31 Update my.cnf 2024-07-25 15:37:06 +08:00
4f6a626e3e Update install.sh 2024-07-25 13:57:48 +08:00
7021015a66 Update install.sh 2024-07-25 13:33:00 +08:00
185c5cb45b Update ubuntu.sh 2024-07-25 12:34:37 +08:00
011d3dccaa update 2024-07-25 12:30:09 +08:00
a629eeac55 Update ubuntu.sh 2024-07-25 12:29:28 +08:00
d3ce4a1aac Update firewall_api.py 2024-07-25 12:23:00 +08:00
8ff13fac5b Update install.sh 2024-07-25 02:43:57 +08:00
d5c232201b update 2024-07-25 01:27:44 +08:00
fb4e16790e Update install.sh 2024-07-25 00:53:35 +08:00
be4cdd194d Update install.sh 2024-07-25 00:52:07 +08:00
398165d832 update 2024-07-25 00:49:00 +08:00
7d70fdcd1d Update install.sh 2024-07-25 00:39:29 +08:00
5c33504582 Update install.sh 2024-07-25 00:39:04 +08:00
e4223a7a58 Update install.sh 2024-07-25 00:36:34 +08:00
f2d5e166da Update install.sh 2024-07-25 00:36:11 +08:00
55d0f2fad8 Update install.sh 2024-07-25 00:35:43 +08:00
58068a06dd Update install.sh 2024-07-25 00:34:59 +08:00
01a76ff5de Update install.sh 2024-07-24 23:16:36 +08:00
53dd0d81e7 update 2024-07-24 23:07:08 +08:00
8d4b5e8403 Update install.sh 2024-07-24 22:31:25 +08:00
c6e491a9bc Update install.sh 2024-07-24 22:19:39 +08:00
55f6a3189c Update install.sh 2024-07-24 22:19:31 +08:00
dfaa041843 update 2024-07-24 21:03:48 +08:00
0bcf0465a6 Update plugins_api.py 2024-07-24 20:56:15 +08:00
517c65b790 Update plugins_api.py 2024-07-24 20:55:42 +08:00
4bda6ab1b1 Update cert_api.py 2024-07-24 20:53:58 +08:00
5a71ec8d6c Update index.py 2024-07-24 14:48:47 +08:00
f622ea6779 update 2024-07-24 14:46:10 +08:00
875db69bcf Update index.py 2024-07-24 14:33:47 +08:00
97a07b4955 Update index.py 2024-07-24 14:32:35 +08:00
0912360794 Update index.py 2024-07-24 14:30:42 +08:00
bfc2a82384 Update install.sh 2024-07-24 14:26:08 +08:00
6f02ccf6e7 update 2024-07-24 14:21:36 +08:00
36e7085ce0 update 2024-07-24 14:10:30 +08:00
044f130671 update 2024-07-24 14:04:38 +08:00
bf95d50cfd Update install.sh 2024-07-24 14:03:22 +08:00
63349ce33b Update index.py 2024-07-24 13:48:03 +08:00
3618940713 Update index.py 2024-07-24 13:45:17 +08:00
f5f9064c52 Update index.py 2024-07-24 13:45:08 +08:00
fd8bda7f48 Update index.py 2024-07-24 13:44:51 +08:00
5e9b5466a6 Update ubuntu.sh 2024-07-24 13:43:15 +08:00
82a0fde37c Update index.py 2024-07-24 13:40:53 +08:00
72367c40fe update 2024-07-24 13:29:14 +08:00
b8502c7459 update 2024-07-24 13:22:26 +08:00
6b33cfe6bb update 2024-07-24 13:16:21 +08:00
81e61a469e Update index.py 2024-07-24 13:08:04 +08:00
267213efc1 Update install.sh 2024-07-24 12:57:12 +08:00
03ca9512a4 Update index.py 2024-07-24 12:33:44 +08:00
e77b24a213 Update index.py 2024-07-24 12:30:50 +08:00
6118c49335 Update index.py 2024-07-24 12:21:08 +08:00
843321dfe5 Update install.sh 2024-07-24 12:13:47 +08:00
bd13bc8d68 Update index.py 2024-07-24 12:08:18 +08:00
9f8af72c70 Update index.py 2024-07-24 12:07:00 +08:00
50e3173706 Update index.py 2024-07-24 12:06:53 +08:00
a43bfbebab Update index.py 2024-07-24 12:02:38 +08:00
ffaac9553e Update cert_api.py 2024-07-24 01:26:50 +08:00
f480cbeda4 Update cert_api.py 2024-07-24 01:26:14 +08:00
e8a72a0b7a Update cert_api.py 2024-07-24 01:23:15 +08:00
b4b14d2c28 Update cert_api.py 2024-07-24 01:21:25 +08:00
672ebb013f Update cert_api.py 2024-07-24 01:20:47 +08:00
8e5f1ae809 Update cert_api.py 2024-07-24 01:17:49 +08:00
1cf77806ba Update cert_api.py 2024-07-24 01:17:34 +08:00
d1a6c61bd8 Update install.sh 2024-07-24 01:15:47 +08:00
e15cb57c27 Update update.sh 2024-07-24 01:09:02 +08:00
c187c36c51 Update update_dev.sh 2024-07-24 01:07:56 +08:00
5bec8e0c38 Update install_dev.sh 2024-07-24 01:04:16 +08:00
ed4a58025b Update phplib.conf 2024-07-24 00:46:26 +08:00
67178757c0 Update common.sh 2024-07-24 00:44:16 +08:00
d4679e2b5c Update common.sh 2024-07-24 00:44:08 +08:00
7b8ecd520c Delete yaf.sh 2024-07-24 00:42:09 +08:00
f2c188b245 Update yaf.sh 2024-07-24 00:36:09 +08:00
8ca6c32a76 Update yaf.sh 2024-07-24 00:35:43 +08:00
e6ac37644b Create yaf.sh 2024-07-24 00:32:43 +08:00
048df7e1e7 Update install.sh 2024-07-24 00:16:21 +08:00
73f0ed73d4 update 2024-07-23 23:17:02 +08:00
4ce9a8cc0f Update ioncube.sh 2024-07-23 22:30:13 +08:00
3c6538565e Update phalcon.sh 2024-07-23 22:27:29 +08:00
995fa234d9 Update phalcon.sh 2024-07-23 22:24:31 +08:00
efa9890019 Update phplib.conf 2024-07-23 22:19:56 +08:00
d7f710d3e0 Update phplib.conf 2024-07-23 22:12:11 +08:00
552cab5632 Update phplib.conf 2024-07-23 22:10:27 +08:00
4d32683e66 Update index.py 2024-07-23 21:48:30 +08:00
2cd41b91f5 Create install.sh 2024-07-23 21:47:58 +08:00
d26f840b68 Update phplib.conf 2024-07-23 21:43:52 +08:00
93ddd3c2c4 Update yar.sh 2024-07-23 21:42:42 +08:00
95dcd4c04d Update yaf.sh 2024-07-23 21:42:16 +08:00
a886359e94 Update yar.sh 2024-07-23 21:35:43 +08:00
1d48010a0d Update phplib.conf 2024-07-23 21:31:47 +08:00
b220628ca1 Update phplib.conf 2024-07-23 21:28:12 +08:00
c7a8ca2ec9 Update install.sh 2024-07-23 21:23:56 +08:00
9720cf7a69 update 2024-07-23 21:22:35 +08:00
4eb33806bf Update info.json 2024-07-23 20:43:32 +08:00
3d12bbcdd1 Update info.json 2024-07-23 20:43:06 +08:00
fa8b2aefb7 Update info.json 2024-07-23 18:55:29 +08:00
e08bea00eb Update info.json 2024-07-23 16:17:00 +08:00
8427a0d9be update 2024-07-23 16:00:07 +08:00
79a44f4b15 Update index.py 2024-07-23 15:21:48 +08:00
2dba6e6816 Update index.py 2024-07-23 15:17:37 +08:00
258576963d Update index.py 2024-07-23 15:14:52 +08:00
68e9ffffe3 Update index.py 2024-07-23 15:14:13 +08:00
b26717eab3 Create my9.0.cnf 2024-07-23 15:08:54 +08:00
83810a8dd8 Update index.py 2024-07-23 15:05:11 +08:00
3ba6d5c3c4 Update index.py 2024-07-23 15:04:00 +08:00
c6b5a92e7d Update mysql9.0.service.tpl 2024-07-23 14:54:47 +08:00
8a5e2a45dc update 2024-07-23 14:52:50 +08:00
0fd5ef28e2 Update index.py 2024-07-23 14:42:57 +08:00
fcb5a44abe Create my9.0.cnf 2024-07-23 14:33:31 +08:00
fb83cb40df update 2024-07-23 14:28:09 +08:00
4211934490 update 2024-07-23 14:23:08 +08:00
4ca64694ff Update install.sh 2024-07-23 14:17:28 +08:00
75d13f3cc7 Update install.sh 2024-07-23 14:12:53 +08:00
db14ede309 Update install.sh 2024-07-23 14:04:37 +08:00
9e2d17f3f3 update 2024-07-23 14:03:43 +08:00
7af56e1c56 update 2024-07-23 14:02:57 +08:00
0c06ae6028 Update install.sh 2024-07-23 13:46:24 +08:00
c39076dfb7 Update install.sh 2024-07-23 12:50:13 +08:00
fd81666453 update 2024-07-23 12:49:46 +08:00
2e7afad20b update 2024-07-23 12:47:30 +08:00
c962c6f86a update 2024-07-23 12:43:11 +08:00
277939ba29 update 2024-07-23 11:02:30 +08:00
c7f3445e79 update 2024-07-23 11:00:46 +08:00
c1a1e80185 Update install.sh 2024-07-23 10:44:55 +08:00
16892d474e Update site_api.py 2024-07-23 00:52:56 +08:00
167977a3d1 Update site_api.py 2024-07-23 00:50:01 +08:00
bc876232f9 Update site_api.py 2024-07-23 00:49:43 +08:00
d529ff596b Update __init__.py 2024-07-23 00:45:14 +08:00
c7cad36fde Update cert_api.py 2024-07-23 00:17:38 +08:00
b299d5f74b Update cert_api.py 2024-07-23 00:17:10 +08:00
20df24ca80 Update cert_api.py 2024-07-23 00:16:59 +08:00
2482a24898 Update info.json 2024-07-22 23:30:24 +08:00
9621f112d1 update 2024-07-22 23:13:15 +08:00
82e2ee2aea Update ubuntu.sh 2024-07-22 23:05:33 +08:00
Mr Chen
b602ab678f Merge pull request #619 from midoks/dev
update
2024-07-20 19:25:15 +08:00
03a5f750ec Update install.sh 2024-07-20 19:24:52 +08:00
e3888244ac update 2024-07-20 19:00:27 +08:00
d0a513d64d Update zabbix.js 2024-07-20 18:38:57 +08:00
26817c7e61 update 2024-07-20 18:35:32 +08:00
cad77c69d9 update 2024-07-20 17:49:25 +08:00
ad0b667ed2 update 2024-07-20 17:43:29 +08:00
bc6c1886b9 Update index.py 2024-07-20 17:37:08 +08:00
084843586e Update zabbix_agentd.conf 2024-07-20 17:32:38 +08:00
981e320664 Update index.py 2024-07-20 17:29:22 +08:00
e57e043edf Update README.md 2024-07-20 14:33:13 +08:00
Mr Chen
5045af850f Merge pull request #618 from midoks/dev
增加zabbix插件
2024-07-20 14:32:37 +08:00
59f80800c3 Update index.py 2024-07-20 14:27:37 +08:00
ae4db462b0 Update index.py 2024-07-20 14:19:10 +08:00
ab939aa359 Update index.py 2024-07-20 14:16:58 +08:00
e90c4a0e19 Update opensuse.sh 2024-07-20 13:39:25 +08:00
bed6b7c347 Update opensuse.sh 2024-07-20 13:22:37 +08:00
f626291e2e Update opensuse.sh 2024-07-20 13:10:55 +08:00
996e452966 Update index.py 2024-07-20 13:06:50 +08:00
d32ccbce0c update_dev 2024-07-20 13:01:23 +08:00
72b44bcceb Update install.sh 2024-07-20 12:47:40 +08:00
ed02c3bad6 Update install.sh 2024-07-20 12:46:06 +08:00
86deba3111 Update install.sh 2024-07-20 12:32:39 +08:00
dbc7fc08a8 Update install.sh 2024-07-20 12:30:52 +08:00
948dadcf57 Update install.sh 2024-07-20 12:29:31 +08:00
f0a7ceb255 Update install.sh 2024-07-20 12:25:58 +08:00
c14bd47ad2 update 2024-07-20 12:25:27 +08:00
0824c0f509 Update install.sh 2024-07-20 12:24:29 +08:00
0177e3d7bb update 2024-07-20 12:24:07 +08:00
159701e840 Create opensuse.sh 2024-07-20 12:16:42 +08:00
1c47a4cc2f update 2024-07-20 12:16:00 +08:00
f9caafcb86 update 2024-07-20 12:09:40 +08:00
da6d8aa797 Update opensuse.sh 2024-07-20 12:08:24 +08:00
88a846aef1 Update opensuse.sh 2024-07-20 12:06:02 +08:00
6ee0780fec update 2024-07-20 12:04:37 +08:00
116549329c Update install.sh 2024-07-20 11:41:19 +08:00
11d90b704a Update install.sh 2024-07-20 11:41:06 +08:00
8bdc60e75a Update install.sh 2024-07-20 11:39:58 +08:00
7fd3e4e0a7 update 2024-07-20 11:39:17 +08:00
18ed21b36a Update index.py 2024-07-20 11:32:58 +08:00
b77801112f Update zabbix.js 2024-07-20 11:09:11 +08:00
efb237c783 Update centos.sh 2024-07-20 10:30:55 +08:00
15375c575a update 2024-07-20 10:30:24 +08:00
e5dc00dbd3 Update index.py 2024-07-20 10:26:30 +08:00
8d8231f787 Create centos.sh 2024-07-20 10:21:15 +08:00
025ed5aa5a Create rocky.sh 2024-07-20 03:25:43 +08:00
b62d228ec8 Update index.py 2024-07-20 03:09:49 +08:00
01894ad91e Update index.py 2024-07-20 03:09:29 +08:00
ee3258196b Update index.py 2024-07-20 03:08:52 +08:00
b1ce9fb05e Update index.py 2024-07-20 03:07:33 +08:00
2c996b0a41 Update index.py 2024-07-20 03:06:19 +08:00
e4ded8950e Update install.sh 2024-07-20 03:03:10 +08:00
11a69cfb8b Update index.py 2024-07-20 03:00:06 +08:00
85fa8fcbd1 update 2024-07-20 02:51:09 +08:00
68b2bcee33 Create rocky.sh 2024-07-20 02:38:44 +08:00
1796eecc9b Create rocky.sh 2024-07-20 02:37:58 +08:00
d6b0601f74 Update index.py 2024-07-20 02:29:00 +08:00
2c250ee67c Update index.py 2024-07-20 02:28:41 +08:00
5b451e211f Update index.py 2024-07-20 02:26:13 +08:00
1389f210de Update index.py 2024-07-20 02:25:19 +08:00
b0f0706dfd Update index.py 2024-07-20 02:23:39 +08:00
8f66e8c39e Update index.py 2024-07-20 02:22:56 +08:00
3c788afce6 Update zabbix_server6.conf 2024-07-20 02:21:16 +08:00
e03ada5191 Update zabbix_server6.conf 2024-07-20 02:21:02 +08:00
7998177e03 Update zabbix_server6.conf 2024-07-20 02:18:40 +08:00
aef54656d2 update 2024-07-20 02:16:43 +08:00
9b52fee2a7 Update index.py 2024-07-20 01:53:29 +08:00
f89be00419 Update index.py 2024-07-20 01:48:36 +08:00
bad4415650 Update index.py 2024-07-20 01:46:13 +08:00
e5f3e85f8b Update install.sh 2024-07-20 01:32:12 +08:00
0c45a5035b Create alma.sh 2024-07-20 01:21:07 +08:00
c3347fcb28 Update alma.sh 2024-07-20 01:18:21 +08:00
a97e8ceee5 Update index.py 2024-07-20 01:16:19 +08:00
87da782cc3 Update index.py 2024-07-20 01:14:59 +08:00
7416be6680 Update phplib.conf 2024-07-20 01:11:34 +08:00
df8eb7f9ef Update phplib.conf 2024-07-20 01:06:44 +08:00
8198ea6941 Update phplib.conf 2024-07-20 01:02:03 +08:00
6f7513a013 Update install.sh 2024-07-20 00:58:48 +08:00
5f163b0661 Update index.py 2024-07-20 00:57:36 +08:00
11a9bd2ecc Update index.py 2024-07-20 00:57:31 +08:00
1e6f143eb7 Update install.sh 2024-07-20 00:57:10 +08:00
b99bd5fded Update install.sh 2024-07-20 00:56:16 +08:00
442896eadc Update index.py 2024-07-20 00:50:41 +08:00
38c7b2d44e Update index.py 2024-07-20 00:50:23 +08:00
662e983f01 Update index.py 2024-07-20 00:46:41 +08:00
de402e9996 Update install.sh 2024-07-20 00:22:07 +08:00
69fc4323f3 Update index.py 2024-07-20 00:08:19 +08:00
617a986325 Update index.py 2024-07-20 00:02:35 +08:00
c09c7fa1a8 Update index.py 2024-07-19 23:59:57 +08:00
2b43680099 Update ubuntu.sh 2024-07-19 23:59:32 +08:00
c1bb8ad7a6 Update zabbix.nginx.conf 2024-07-19 23:57:10 +08:00
f59c68edb8 Update index.py 2024-07-19 23:55:50 +08:00
85ae2ff349 Update install.sh 2024-07-19 23:50:45 +08:00
b52635c747 Update ubuntu.sh 2024-07-19 23:41:41 +08:00
d09c8ac98f Create ubuntu.sh 2024-07-19 23:38:33 +08:00
1921deb7e3 update 2024-07-19 23:37:27 +08:00
a21c7eac02 update 2024-07-19 23:33:39 +08:00
50ab9c21cd Update index.py 2024-07-19 23:31:21 +08:00
edd1b34217 Update index.py 2024-07-19 23:08:05 +08:00
c1f165bfa3 Create ubuntu.sh 2024-07-19 20:16:24 +08:00
799be0fd3e Update index.py 2024-07-19 19:48:54 +08:00
1f8c975c4d Update zabbix_server.conf 2024-07-19 19:43:45 +08:00
b10967bfad Create server6.0.sql.gz 2024-07-19 19:39:51 +08:00
835cf6ad8f update 2024-07-19 19:34:28 +08:00
6b55a4e0ca Update index.py 2024-07-19 19:30:39 +08:00
aa3a5a90c4 Update index.py 2024-07-19 19:30:08 +08:00
5f34d52542 Update index.py 2024-07-19 19:28:52 +08:00
ad49cadfb8 Update index.py 2024-07-19 19:28:42 +08:00
b4c00a2d27 Update index.py 2024-07-19 19:28:17 +08:00
42dfe63c2f Update index.py 2024-07-19 19:26:53 +08:00
4fa2588b66 Update index.py 2024-07-19 19:26:32 +08:00
a3227a681a Update index.py 2024-07-19 19:26:09 +08:00
1abbaa29ff Update info.json 2024-07-19 19:22:37 +08:00
b783a90d81 update 2024-07-19 19:14:21 +08:00
263243ecd4 update 2024-07-19 19:13:04 +08:00
5942c2e822 Update index.py 2024-07-19 19:11:05 +08:00
0a87dcc610 Update index.py 2024-07-19 19:08:27 +08:00
a80e1db128 Update index.py 2024-07-19 17:36:37 +08:00
fad851edea Update index.py 2024-07-19 17:16:50 +08:00
4d23d7d354 Update index.py 2024-07-19 17:09:11 +08:00
a19fe7b0b5 Update index.py 2024-07-19 16:51:49 +08:00
15096e7954 Update index.py 2024-07-19 14:58:18 +08:00
2da9b59ae9 update 2024-07-19 14:55:59 +08:00
c4cda94309 update 2024-07-19 14:52:13 +08:00
d32dd19dd0 Update debian.sh 2024-07-19 11:59:38 +08:00
269d0dc57e update 2024-07-19 11:47:58 +08:00
bd221e2c75 Update debian.sh 2024-07-18 23:06:48 +08:00
eb26c7d4e1 Create alma.sh 2024-07-18 21:11:44 +08:00
4de0ecb5cc Update centos.sh 2024-07-18 13:52:45 +08:00
5753e3fb51 Update centos.sh 2024-07-18 12:53:51 +08:00
14cf933487 update 2024-07-18 12:33:51 +08:00
df240ac681 Update centos.sh 2024-07-18 12:23:11 +08:00
cf2d53fe0d Update index.py 2024-07-18 12:18:21 +08:00
520f46441e Update index.py 2024-07-18 12:13:08 +08:00
be1117ba31 Update index.py 2024-07-18 12:07:38 +08:00
e35ff2da63 Update centos.sh 2024-07-18 11:59:24 +08:00
99f91768ad Update centos.sh 2024-07-18 11:29:09 +08:00
d8e6e63b90 Update info.json 2024-07-18 00:58:25 +08:00
9f4a3ed53d Update index.py 2024-07-17 19:41:01 +08:00
b06dd84f6b Create centos.sh 2024-07-17 19:38:37 +08:00
bf77d84227 Update index.py 2024-07-17 19:34:33 +08:00
1ff24a2835 update 2024-07-17 19:32:19 +08:00
a10f31f4fb update 2024-07-17 17:19:26 +08:00
c47dac6731 update 2024-07-17 13:09:20 +08:00
0de883b5b1 Update debian.sh 2024-07-17 12:26:04 +08:00
a160b5bfac Update zabbix.js 2024-07-17 12:22:03 +08:00
d7580842a8 Update debian.sh 2024-07-16 20:18:43 +08:00
40dfc60079 Update debian.sh 2024-07-16 20:17:31 +08:00
bfa593ea46 update 2024-07-16 19:29:25 +08:00
68de2d2c5f Update debian.sh 2024-07-16 18:36:26 +08:00
e883ccfb62 Update debian.sh 2024-07-16 18:14:41 +08:00
2f530d8c9e Update debian.sh 2024-07-16 18:14:12 +08:00
43e7363535 Update install.sh 2024-07-16 18:08:03 +08:00
fbe8a06d0b Update install.sh 2024-07-16 18:07:01 +08:00
421757e88a Update install.sh 2024-07-16 18:06:47 +08:00
07340dc68c Update index.py 2024-07-16 17:52:51 +08:00
f7559f6a55 Update index.py 2024-07-16 17:36:39 +08:00
dd45fb47d6 Update index.py 2024-07-16 17:35:44 +08:00
d2ade7aa90 Update index.py 2024-07-16 17:31:55 +08:00
7bed4cda8e Update index.py 2024-07-16 17:28:54 +08:00
24c37d5b92 Update index.py 2024-07-16 17:18:10 +08:00
c03add82a5 Update debian.sh 2024-07-16 17:13:15 +08:00
6f443ef414 Update debian.sh 2024-07-16 17:13:05 +08:00
939b44699f Update debian.sh 2024-07-16 17:09:32 +08:00
db5f979149 Update install.sh 2024-07-16 17:09:16 +08:00
ded03b5c46 update 2024-07-16 17:05:02 +08:00
f755a39589 update 2024-07-16 17:02:52 +08:00
788c097a50 Update zabbix_server.conf 2024-07-16 15:53:53 +08:00
3fe4c80784 Update zabbix.conf.php 2024-07-16 15:31:58 +08:00
74ae353761 Update debian.sh 2024-07-16 15:25:26 +08:00
05d62c7105 Update index.py 2024-07-16 15:24:36 +08:00
79ffa0b5b1 Update zabbix_server.conf 2024-07-16 15:23:59 +08:00
ec68096e52 Update debian.sh 2024-07-16 15:20:22 +08:00
2e79def40d Update zabbix_server.conf 2024-07-16 15:00:33 +08:00
c0fbf71a8e Update index.py 2024-07-16 14:09:56 +08:00
cb62e367ec Update index.py 2024-07-16 14:07:47 +08:00
1608fae975 Update index.py 2024-07-16 13:52:34 +08:00
8d1ce42004 Update zabbix.js 2024-07-16 12:30:42 +08:00
fd7314b603 Update index.py 2024-07-16 12:28:16 +08:00
e2433964e9 Update zabbix_agentd.conf 2024-07-16 12:26:44 +08:00
9ef7b36998 update 2024-07-16 12:12:21 +08:00
9ae7fd716c Update index.py 2024-07-16 12:11:23 +08:00
7fbc7bef5e Update index.py 2024-07-16 12:11:14 +08:00
43bab2a80e update 2024-07-16 12:07:53 +08:00
b4eaec1ca5 Update debian.sh 2024-07-16 12:02:12 +08:00
c391e54ee5 Update debian.sh 2024-07-16 12:01:54 +08:00
0c226b1fc7 update 2024-07-16 11:38:17 +08:00
b218874a2b Update index.py 2024-07-16 11:32:21 +08:00
fce367075d update 2024-07-16 11:28:29 +08:00
f06b5004e2 Update index.py 2024-07-16 11:25:04 +08:00
03c5191e89 zabbix_agent 初始化 2024-07-16 11:13:08 +08:00
492ac0bb60 Update install.sh 2024-07-16 02:37:44 +08:00
9ab9330671 Update index.py 2024-07-16 02:20:30 +08:00
9851b5406e update 2024-07-16 02:15:29 +08:00
19e10199e0 Update index.py 2024-07-16 02:09:30 +08:00
f11b1b3219 Update index.py 2024-07-16 02:02:28 +08:00
49c37fa307 Update index.py 2024-07-16 02:01:44 +08:00
d7fedc3118 Update zabbix_server.conf 2024-07-16 01:59:37 +08:00
0cd9f7f0d6 Update zabbix_server.conf.bak 2024-07-16 01:59:24 +08:00
82f6b8cb56 update 2024-07-16 01:59:08 +08:00
1f723ab8e0 Update index.py 2024-07-16 01:44:36 +08:00
9496968fbb Update zabbix.js 2024-07-16 01:42:25 +08:00
c1e66ac574 Update debian.sh 2024-07-16 01:41:43 +08:00
0b6506885a Update index.py 2024-07-16 01:39:57 +08:00
d018163ef2 Update zabbix.js 2024-07-16 01:32:37 +08:00
d89ab5c45f Update index.py 2024-07-16 01:30:57 +08:00
c3c536632d Update index.py 2024-07-16 01:27:17 +08:00
b73070231e update 2024-07-16 01:21:07 +08:00
a9c0c0d1d2 Update index.py 2024-07-16 00:49:25 +08:00
f65b16723b Update index.py 2024-07-16 00:45:42 +08:00
69f828b169 Update index.py 2024-07-16 00:44:16 +08:00
dbf0b963bd Update zabbix.js 2024-07-16 00:35:20 +08:00
5c20185426 update 2024-07-16 00:34:44 +08:00
f976b8c315 update 2024-07-16 00:31:46 +08:00
d5fac8bb07 Update index.py 2024-07-16 00:30:50 +08:00
c33431a2fc Update index.html 2024-07-16 00:29:58 +08:00
23ba7bf636 Update index.py 2024-07-15 23:22:36 +08:00
232f992203 Update index.py 2024-07-15 23:20:42 +08:00
4438d5a8b4 Update index.py 2024-07-15 23:20:23 +08:00
ca213242fd Update debian.sh 2024-07-15 23:17:53 +08:00
360221aa7a Update debian.sh 2024-07-15 23:17:39 +08:00
987f56331b Update index.py 2024-07-15 23:15:29 +08:00
8ee23d694f Update index.py 2024-07-15 23:13:12 +08:00
0f93997aed Update index.py 2024-07-15 23:09:54 +08:00
012bc92042 update 2024-07-15 23:09:49 +08:00
ef6fdfc71c Update index.py 2024-07-15 22:56:50 +08:00
150d8e30b0 Update index.py 2024-07-15 22:51:52 +08:00
491927a32c Update index.py 2024-07-15 22:47:09 +08:00
f5020404df Update index.py 2024-07-15 20:03:26 +08:00
d4ddf22e5b Update index.py 2024-07-15 16:39:48 +08:00
45b30dc38e Update index.py 2024-07-15 16:11:45 +08:00
fed57f1f68 Update index.py 2024-07-15 16:11:12 +08:00
6d02d6a85f update 2024-07-15 16:00:05 +08:00
39bc0ff55d Update debian.sh 2024-07-15 15:47:57 +08:00
9e0f045696 Update zabbix.nginx.conf 2024-07-15 15:46:54 +08:00
2d1897fe62 Update install.sh 2024-07-15 15:46:18 +08:00
b35107016e Update zabbix.nginx.conf 2024-07-15 15:40:43 +08:00
67f5342be4 Update index.py 2024-07-15 15:07:21 +08:00
835796a9b1 Update index.html 2024-07-15 13:06:38 +08:00
b32fe10047 Update zabbix.nginx.conf 2024-07-15 12:17:47 +08:00
43bdff7af1 Update index.py 2024-07-15 12:09:20 +08:00
6628e135fc up 2024-07-15 02:36:09 +08:00
e94dc60f28 Update info.json 2024-07-14 18:54:59 +08:00
8a4453ec84 Update install.sh 2024-07-14 18:47:05 +08:00
1916e4c34a Update install.sh 2024-07-14 18:45:50 +08:00
f2a54682a1 Update debian.sh 2024-07-14 18:44:25 +08:00
163903cc8a Update index.py 2024-07-14 18:42:07 +08:00
6653f0b8ee Update install.sh 2024-07-14 18:31:06 +08:00
7fa0200889 Update index.py 2024-07-14 18:30:37 +08:00
7bf0611d67 Update debian.sh 2024-07-14 18:28:12 +08:00
1cd3c3df17 Update debian.sh 2024-07-14 18:28:02 +08:00
e9ff82f0a3 zabbix初始化 2024-07-14 18:24:30 +08:00
e381309ba7 Update info.json 2024-07-14 18:02:52 +08:00
Mr Chen
bd6d063a49 Merge pull request #617 from midoks/dev
增加插件simpleping及其他问题解决
2024-07-14 15:43:37 +08:00
de1e1401b9 Update index.py 2024-07-14 15:24:40 +08:00
52bb6099d7 Update index.py 2024-07-14 15:22:45 +08:00
f42ec4973a Update index.py 2024-07-14 15:20:38 +08:00
ba8374cc5a Update index.py 2024-07-14 15:17:55 +08:00
d1f0ee9c20 update 2024-07-14 15:15:33 +08:00
2a934daf89 Update mariadb.js 2024-07-14 14:45:39 +08:00
ac0fab2f2b update 2024-07-14 13:06:11 +08:00
ffab97d4c8 update 2024-07-14 12:58:33 +08:00
f51ed6115d update 2024-07-14 12:51:19 +08:00
f126015e70 Update simpleping.js 2024-07-13 22:07:05 +08:00
699f71e636 update 2024-07-13 22:05:27 +08:00
88a7431067 update 2024-07-13 14:25:49 +08:00
bf256c6e60 update 2024-07-12 18:14:51 +08:00
0c718229d1 Update simpleping_index.py 2024-07-11 15:20:11 +08:00
2366a4e551 update 2024-07-11 15:17:57 +08:00
81bddd7eee Update simpleping.js 2024-07-11 13:43:00 +08:00
35f2791c72 Update simpleping_index.py 2024-07-11 13:32:16 +08:00
0dbbbf4359 Update simpleping_index.py 2024-07-11 13:28:44 +08:00
04b7e07e90 Update simpleping_index.py 2024-07-11 13:24:31 +08:00
85c84b64c4 Update install.sh 2024-07-11 04:38:02 +08:00
b0014c0477 Update install.sh 2024-07-11 04:37:55 +08:00
a53ad5d1b1 Update install.sh 2024-07-11 04:37:37 +08:00
73a418376d Update mw.tpl 2024-07-11 04:33:51 +08:00
437088663e Update simpleping.js 2024-07-11 04:18:29 +08:00
9db5188d30 update 2024-07-11 04:17:47 +08:00
53563cb130 Update simpleping.js 2024-07-11 04:11:25 +08:00
c989644c6f Update simpleping.js 2024-07-11 04:05:36 +08:00
c2a55f2658 Update install.sh 2024-07-11 03:57:20 +08:00
8ca63c0396 update 2024-07-11 03:50:31 +08:00
3b1fcac0aa Update index.py 2024-07-11 03:27:33 +08:00
7c093617f5 update 2024-07-11 03:04:23 +08:00
9e2f1dc172 Update simpleping.js 2024-07-11 02:55:31 +08:00
25591dc3e5 Update install.sh 2024-07-11 02:54:14 +08:00
4596a3a73c Update install.sh 2024-07-11 02:49:19 +08:00
818ab604e2 update 2024-07-11 02:35:33 +08:00
04e18490fb Update db.py 2024-07-11 01:06:53 +08:00
b519bb5522 plugins ping init 2024-07-11 00:37:08 +08:00
9d8e76faec update 2024-07-10 11:49:41 +08:00
cbdfb1a033 update 2024-07-08 23:08:36 +08:00
8b10a5839a Update push_ad.py 2024-07-08 23:01:20 +08:00
905cecc060 Update ubuntu.sh 2024-07-05 16:13:57 +08:00
486cf03c79 Update ubuntu.sh 2024-07-05 14:48:48 +08:00
735b669d44 Update ubuntu.sh 2024-07-05 14:48:15 +08:00
Mr Chen
489caa6070 Merge pull request #616 from midoks/dev
Update install.sh
2024-07-05 12:38:59 +08:00
f6284ed167 Update install.sh 2024-07-05 12:34:55 +08:00
Mr Chen
a843dd4a87 Merge pull request #615 from midoks/dev
Update index.py
2024-07-05 12:00:10 +08:00
b5c14926df Update index.py 2024-07-05 11:57:19 +08:00
Mr Chen
8b58c34e5b Merge pull request #614 from midoks/dev
Update index.py
2024-07-05 11:45:33 +08:00
f29d10b0b9 Update index.py 2024-07-05 11:38:43 +08:00
Mr Chen
ce15f78a56 Merge pull request #613 from midoks/dev
mysql>=8.0优化
2024-07-04 03:49:13 +08:00
033db86d3b up 2024-07-04 03:42:48 +08:00
7d32309183 Update index.py 2024-07-04 03:42:11 +08:00
353290cfa8 Update index.py 2024-07-04 03:37:42 +08:00
a7aa34795b update 2024-07-04 03:37:22 +08:00
994bc4aa6a Update index.py 2024-07-04 03:34:01 +08:00
9737d65592 Update index.py 2024-07-04 03:32:40 +08:00
e9ee66e932 Update index.py 2024-07-04 03:25:02 +08:00
42f66a2fb8 Update my8.0.cnf 2024-07-04 02:58:31 +08:00
5aaac1bdec Update my8.0.cnf 2024-07-04 02:58:00 +08:00
57a1721f62 Update my8.0.cnf 2024-07-04 02:57:39 +08:00
8134c3c9c0 update 2024-07-04 02:53:01 +08:00
cdaf64b41b Update index.py 2024-07-04 02:51:14 +08:00
5f5384f5aa Update index.py 2024-07-04 02:50:49 +08:00
a11e43f9a5 update 2024-07-04 02:47:57 +08:00
b76a9bf13c update 2024-07-04 02:33:09 +08:00
4653667ef1 Update mysql-apt.js 2024-07-04 02:30:35 +08:00
a1cc2f0147 update 2024-07-04 02:29:25 +08:00
d08b97415b Update mysql-apt.js 2024-07-04 02:26:28 +08:00
7fc9045688 Update index.py 2024-07-04 02:16:20 +08:00
d9f77537f1 Update index.py 2024-07-04 02:15:25 +08:00
bc8a874c68 update 2024-07-04 02:03:15 +08:00
8067c20e5a Update index.py 2024-07-04 02:01:59 +08:00
22526d5255 Update my8.0.cnf 2024-07-04 01:45:02 +08:00
83f846eb69 update 2024-07-04 01:42:12 +08:00
61a8bf0275 Update mysql-apt.js 2024-07-04 01:41:45 +08:00
1662c3ff3f update 2024-07-04 01:38:31 +08:00
41a1fa856c Update mw.tpl 2024-07-04 01:26:10 +08:00
eee5881ca7 Update lib.sh 2024-07-04 01:25:28 +08:00
3ce92f2477 Update lib.sh 2024-07-04 01:25:18 +08:00
4020ecff80 Update lib.sh 2024-07-04 01:15:40 +08:00
979b86b7cb update 2024-07-04 01:06:50 +08:00
26080ade0e Update index.py 2024-07-04 01:05:17 +08:00
4deb9c59ea Update index.py 2024-07-04 01:00:39 +08:00
Mr Chen
b640515243 Merge pull request #612 from midoks/dev
常规优化
2024-07-03 16:24:43 +08:00
130da4e311 Update mw.tpl 2024-07-03 16:19:12 +08:00
Mr Chen
dcca93baef Merge pull request #611 from midoks/dev
mysql修改同步账户
2024-07-01 13:34:08 +08:00
92525b0549 Update mariadb.js 2024-07-01 13:32:24 +08:00
fa0bca88b3 update 2024-07-01 13:31:22 +08:00
72961e3dca Update logs_api.py 2024-06-29 00:18:38 +08:00
7ac4000687 Update index.py 2024-06-28 22:37:20 +08:00
Mr Chen
3c0d0f9036 Merge pull request #610 from midoks/dev
计划任务优化2
2024-06-28 22:10:08 +08:00
790fa18e1b Update crontab.js 2024-06-28 22:05:16 +08:00
7b06b5533c Update crontab.js 2024-06-28 21:59:08 +08:00
9301783c3a Update crontab.js 2024-06-28 21:56:53 +08:00
39359ab783 Update crontab.js 2024-06-28 21:54:33 +08:00
a44be32cdc Update crontab.js 2024-06-28 21:51:51 +08:00
d4a4f238f2 Update index.py 2024-06-28 21:09:03 +08:00
60584ee79f Update index.py 2024-06-28 21:07:01 +08:00
Mr Chen
95845663f4 Merge pull request #609 from midoks/dev
计划任务优化
2024-06-28 20:13:54 +08:00
d1991b5c0d Update config_api.py 2024-06-28 20:11:53 +08:00
5448ba4611 Update crontab_api.py 2024-06-28 19:55:51 +08:00
11b59cdc41 Update crontab_api.py 2024-06-28 19:52:03 +08:00
05234cba77 Update logs_backup.py 2024-06-28 19:46:29 +08:00
f17c7f3d13 Update logs_backup.py 2024-06-28 19:35:06 +08:00
546792b733 update 2024-06-28 19:34:31 +08:00
4e38909ef2 Update logs_backup.py 2024-06-28 19:32:49 +08:00
d411439734 update 2024-06-28 19:23:29 +08:00
599d3ca8fc Update config_api.py 2024-06-28 19:19:59 +08:00
5a2bb0ca5c Update crontab.js 2024-06-28 19:18:53 +08:00
Mr Chen
a1492d4f3e Merge pull request #608 from midoks/dev
mysql-apt debian12 安装优化
2024-06-28 15:43:11 +08:00
aee881b302 Update install.sh 2024-06-28 15:39:38 +08:00
6287dc523d Update install.sh 2024-06-28 15:39:00 +08:00
a9a48aef39 update 2024-06-28 14:30:20 +08:00
ef861ef28e Update install.sh 2024-06-28 14:29:11 +08:00
9af9908ab2 Update index.py 2024-06-27 00:41:39 +08:00
29fd76fc91 Update index.py 2024-06-27 00:38:20 +08:00
Mr Chen
b69f978371 Merge pull request #607 from midoks/dev
sphinx 自动加入计划任务
2024-06-26 19:41:46 +08:00
89cea53d92 Update index.py 2024-06-26 19:27:13 +08:00
2a08d91021 Update index.py 2024-06-26 19:26:14 +08:00
c726bc48a9 Update index.py 2024-06-26 19:24:35 +08:00
69272110fb Update tool_cron.py 2024-06-26 19:20:23 +08:00
682502ff2b Update tool_cron.py 2024-06-26 19:19:00 +08:00
345eff8a0b Update tool_cron.py 2024-06-26 19:17:12 +08:00
dec8135478 Update index.py 2024-06-26 19:12:19 +08:00
60f37fa586 Update tool_cron.py 2024-06-26 19:06:38 +08:00
61849bb14e Update tool_cron.py 2024-06-26 19:05:08 +08:00
f32a40b53f Update index.py 2024-06-26 19:03:51 +08:00
4e2921f3b9 Update index.py 2024-06-26 19:01:30 +08:00
8652f3b2d8 Update index.py 2024-06-26 18:56:15 +08:00
d4f75fa0f1 Update index.py 2024-06-26 18:55:22 +08:00
93accf9ff3 Update index.py 2024-06-26 18:52:30 +08:00
22b06b36f9 Update index.py 2024-06-26 18:48:40 +08:00
b0a763f972 Update index.py 2024-06-26 18:48:35 +08:00
44e4dfb0bd Update index.py 2024-06-26 18:46:31 +08:00
80fe60211f update 2024-06-26 18:06:22 +08:00
0a1e47da4d Update index.py 2024-06-26 17:52:41 +08:00
a6acecb8c2 update 2024-06-26 17:49:26 +08:00
33cb0149f2 Update tool_cron.py 2024-06-26 17:46:37 +08:00
ff873d2e2d Update debian.sh 2024-06-26 17:33:12 +08:00
bc184f03cc update 2024-06-26 17:32:22 +08:00
b3147b9a2c Update sphinx.js 2024-06-26 16:37:20 +08:00
8a4e64a079 Update ftp_client.py 2024-06-22 13:21:56 +08:00
Mr Chen
24bb36e320 Merge pull request #604 from midoks/dev
优化2
2024-06-15 23:26:37 +08:00
285aa45de8 Update debian.sh 2024-06-15 23:25:10 +08:00
b9eee76b6e Update ubuntu.sh 2024-06-15 23:24:36 +08:00
e3bb8e6463 Update lib.sh 2024-06-15 23:22:12 +08:00
e72f33b201 Update lib.sh 2024-06-15 23:21:59 +08:00
22fe247707 Update install_dev.sh 2024-06-15 23:19:11 +08:00
a3a44e1494 Update install_dev.sh 2024-06-15 23:14:37 +08:00
9c3dcaf2ec Update debian.sh 2024-06-15 22:51:04 +08:00
2a088241da Update ubuntu.sh 2024-06-15 22:43:46 +08:00
ed8af0728b Update ubuntu.sh 2024-06-15 22:43:35 +08:00
cc01c5cbc1 Update debian.sh 2024-06-15 22:41:29 +08:00
828a079184 Update task_manager_index.py 2024-06-15 22:31:36 +08:00
189f73e522 Update plugins_api.py 2024-06-15 22:18:09 +08:00
692f51fe44 update 2024-06-15 22:11:51 +08:00
ddacecec9a Update plugins_api.py 2024-06-15 22:07:27 +08:00
af629be9e0 Update task_manager_index.py 2024-06-15 21:27:30 +08:00
dc76d41369 Update ubuntu.sh 2024-06-15 21:21:36 +08:00
Mr Chen
cc65840a1f Merge pull request #603 from midoks/dev
优化
2024-06-15 21:01:24 +08:00
dad72a1fe2 update 2024-06-15 20:53:04 +08:00
e43eff325b Update install_dev.sh 2024-06-15 20:32:11 +08:00
1a41f2d248 update 2024-06-15 20:28:11 +08:00
Mr Chen
58274ba9dc Merge pull request #602 from midoks/dev
php-apt,php-yum优化2
2024-06-14 17:18:34 +08:00
aa22501aac Update debian.sh 2024-06-14 17:15:56 +08:00
b74e733252 Update debian.sh 2024-06-14 17:15:11 +08:00
2cc714abf0 Update debian.sh 2024-06-14 17:14:35 +08:00
d86e6dd5c4 Update install.sh 2024-06-14 17:10:32 +08:00
31f7269ba5 Update opcache.sh 2024-06-14 17:05:10 +08:00
f335f08c27 Update common.sh 2024-06-14 17:02:50 +08:00
7a16486105 Update common.sh 2024-06-14 17:00:03 +08:00
4a05152adc Update opcache.sh 2024-06-14 16:59:13 +08:00
379478b2c2 Update ioncube.sh 2024-06-14 16:33:19 +08:00
c2b3d4113a Update ioncube.sh 2024-06-14 16:30:11 +08:00
4655867db0 Update ioncube.sh 2024-06-14 16:29:51 +08:00
5daf371c65 Update ioncube.sh 2024-06-14 16:26:42 +08:00
8488f73d7f Update ioncube.sh 2024-06-14 16:24:51 +08:00
2788d76c00 Update ioncube.sh 2024-06-14 16:23:16 +08:00
d55a89766e Update ioncube.sh 2024-06-14 16:20:48 +08:00
df64e00a27 update 2024-06-14 16:18:51 +08:00
4569c20f58 Update files.js 2024-06-14 16:10:41 +08:00
d0cdbf48d2 Update opcache.sh 2024-06-14 16:02:36 +08:00
24b45afe6f Update opcache.sh 2024-06-14 16:02:23 +08:00
a577235ccc Update opcache.sh 2024-06-14 15:58:13 +08:00
cc98b3322a update 2024-06-14 15:56:31 +08:00
214d784413 Update opcache.sh 2024-06-14 15:40:26 +08:00
c2c02f9c62 Update opcache.sh 2024-06-14 15:34:03 +08:00
c4ce555f91 Update opcache.sh 2024-06-14 15:33:52 +08:00
5901b1bd33 Update opcache.sh 2024-06-14 15:30:02 +08:00
2c65fc65dd Update install.sh 2024-06-14 15:28:22 +08:00
322141b927 Update opcache.sh 2024-06-14 15:19:43 +08:00
9d94b1571a Update common.sh 2024-06-14 15:16:29 +08:00
ff64f3a70f Update common.sh 2024-06-14 15:16:11 +08:00
dc0bfd25c8 Update opcache.sh 2024-06-14 15:07:28 +08:00
10ccbc0dc2 Update opcache.sh 2024-06-14 14:58:15 +08:00
45e46b6826 Update opcache.sh 2024-06-14 14:56:02 +08:00
7d20b9e9a2 Update opcache.sh 2024-06-14 14:48:52 +08:00
086765090a Update opcache.sh 2024-06-14 14:47:21 +08:00
1c49000ec2 Update opcache.sh 2024-06-14 14:47:06 +08:00
e9261a1e19 Update opcache.sh 2024-06-14 14:26:59 +08:00
796afbdf1d Update opcache.sh 2024-06-14 14:22:32 +08:00
3dfe8d2829 Update opcache.sh 2024-06-14 13:59:29 +08:00
77368f9908 Update opcache.sh 2024-06-14 13:59:06 +08:00
2acad0fa01 Update opcache.sh 2024-06-14 13:49:49 +08:00
e0ccb81014 Update opcache.sh 2024-06-14 13:47:28 +08:00
93cedaaa41 Update opcache.sh 2024-06-14 13:36:59 +08:00
d306bb4f36 update 2024-06-14 13:36:37 +08:00
Mr Chen
4c66354c6a Merge pull request #601 from midoks/dev
php-apt,php-yum优化
2024-06-14 00:15:31 +08:00
35ecb54a26 Update php-fpm.conf 2024-06-14 00:09:13 +08:00
e2780ecbdf Update index.py 2024-06-13 23:59:33 +08:00
4e4cfb24d6 Update index.py 2024-06-13 23:52:33 +08:00
89307534df Update index.py 2024-06-13 23:47:41 +08:00
d0e126118d Update index.py 2024-06-13 23:44:44 +08:00
7e424691fd Update index.py 2024-06-13 23:42:12 +08:00
12fb0067d1 Update index.py 2024-06-13 23:41:05 +08:00
f0fd643ef0 Update index.py 2024-06-13 23:39:06 +08:00
cd48a580af Update php-fpm.conf 2024-06-13 23:36:59 +08:00
a08ebed065 Update php-fpm.conf 2024-06-13 23:36:03 +08:00
0784b9092d Update index.py 2024-06-13 23:30:27 +08:00
6954bb947e update 2024-06-13 23:29:25 +08:00
eafa053e21 update 2024-06-13 23:19:05 +08:00
90900b1589 Update php.js 2024-06-13 23:15:54 +08:00
40397e6aaa Update php-fpm.conf 2024-06-13 22:27:02 +08:00
2196c5c70e Update index.py 2024-06-13 22:25:46 +08:00
c4d9f13380 update 2024-06-13 22:23:59 +08:00
27fbc15469 Update install.sh 2024-06-13 21:57:39 +08:00
c96bb414fe Update index.py 2024-06-13 21:47:22 +08:00
d428d0ff03 Update index.py 2024-06-13 21:45:40 +08:00
d80216ff31 Update index.py 2024-06-13 21:38:36 +08:00
adcb4e74fa Update index.py 2024-06-13 21:27:45 +08:00
4df1555179 update 2024-06-13 21:22:35 +08:00
4bd78541fc update 2024-06-13 20:37:45 +08:00
2f2a4722f9 Update php.js 2024-06-13 20:34:40 +08:00
7ad235bba1 update 2024-06-13 20:33:08 +08:00
Mr Chen
c7faaeff62 Merge pull request #600 from midoks/dev
mysql 二进制日志 设置优化
2024-06-13 20:23:32 +08:00
525bcc909f update 2024-06-13 20:21:43 +08:00
Mr Chen
aecd605df9 Merge pull request #599 from midoks/dev
php-apt ubuntu细节优化
2024-06-11 19:12:27 +08:00
f1eac4f309 Update install.sh 2024-06-11 19:06:14 +08:00
562ab87771 Update install.sh 2024-06-11 19:05:02 +08:00
26d7aeb401 Update install.sh 2024-06-11 19:03:26 +08:00
3798ac5e09 update 2024-06-11 18:57:09 +08:00
a2ee74c700 Update install.sh 2024-06-11 18:55:12 +08:00
Mr Chen
1a3aaad591 Merge pull request #598 from midoks/dev
php-yum,php-apt优化
2024-06-11 18:29:40 +08:00
4a5196a5cb Update install.sh 2024-06-11 18:21:50 +08:00
207062cf1a Update install.sh 2024-06-11 18:17:54 +08:00
d6291dbcb0 Update lib.sh 2024-06-11 18:07:54 +08:00
7b8737006c Update lib.sh 2024-06-11 18:03:55 +08:00
75818ebb0a Update install.sh 2024-06-11 17:56:46 +08:00
37f26e0f1b Update index.py 2024-06-11 17:23:30 +08:00
3250fc2620 Update index.py 2024-06-11 17:04:21 +08:00
cf44358190 Update index.py 2024-06-11 16:38:58 +08:00
87a5685fec Update index.py 2024-06-11 16:34:37 +08:00
8b6c761812 Update phplib.conf 2024-06-11 16:28:35 +08:00
21d86bf57a Update rhel.sh 2024-06-11 16:27:48 +08:00
7d892fe298 Update phplib.conf 2024-06-11 16:21:42 +08:00
0b16f3541d Update mysql-apt.js 2024-06-11 16:14:36 +08:00
cd1947a445 Update mysql-yum.js 2024-06-11 16:14:08 +08:00
1929e19647 Update index.py 2024-06-11 16:06:52 +08:00
31e3c4442f Update install.sh 2024-06-11 16:04:36 +08:00
c1459377a1 Update all_test.sh 2024-06-11 16:03:04 +08:00
2f30f37b7c update 2024-06-11 15:57:39 +08:00
b31924f316 Update install.sh 2024-06-11 15:56:42 +08:00
efb10c477c Update phplib.conf 2024-06-11 15:21:53 +08:00
7adfd7a589 Update install.sh 2024-06-11 15:16:20 +08:00
87ec027cdb Update install.sh 2024-06-11 15:15:43 +08:00
d171e28e49 Update common.sh 2024-06-11 14:57:42 +08:00
9169502512 Update common.sh 2024-06-11 14:57:34 +08:00
92d42ec297 Update common.sh 2024-06-11 14:56:59 +08:00
e6457ac82e Update install.sh 2024-06-11 14:20:04 +08:00
7eb85fc0c3 Update common.sh 2024-06-11 14:17:43 +08:00
a97de38574 Update lib.sh 2024-06-11 12:43:54 +08:00
b426b66f9e Update install.sh 2024-06-11 12:41:40 +08:00
d9d66fa6b4 Update install.sh 2024-06-11 12:41:18 +08:00
ade2809a72 update 2024-06-11 12:39:04 +08:00
0c0f20a75d update 2024-06-11 12:29:34 +08:00
a8b531b08e Update my8.4.cnf 2024-06-11 10:44:29 +08:00
Mr Chen
40ce57ba37 Merge pull request #597 from midoks/dev
mysql-apt,mysql-yum功能同步
2024-06-10 22:16:29 +08:00
3488dce7ad Update install.sh 2024-06-10 21:31:11 +08:00
0af71b83cb Update install.sh 2024-06-10 21:29:17 +08:00
39a92a56d1 Update info.json 2024-06-10 21:25:24 +08:00
e4943fe60a update 2024-06-10 21:09:16 +08:00
1d0c965ff0 Update index.py 2024-06-10 20:56:55 +08:00
6d5b5efafa Update index.py 2024-06-10 20:55:31 +08:00
665e7454bb Update index.py 2024-06-10 20:52:01 +08:00
63056b2d91 Update my8.4.cnf 2024-06-10 20:49:28 +08:00
c995488e68 update 2024-06-10 20:48:46 +08:00
f4f7d7795e Update install.sh 2024-06-10 20:40:00 +08:00
ddad227ae9 Update index.py 2024-06-10 20:32:52 +08:00
0af1308b7d Update index.py 2024-06-10 20:30:29 +08:00
e2afed1dc4 Update index.py 2024-06-10 20:07:37 +08:00
47de48806f Update index.py 2024-06-10 19:55:28 +08:00
7886066fd4 Update my8.0.cnf 2024-06-10 19:39:57 +08:00
db27f0b8b7 update 2024-06-10 19:32:23 +08:00
1d28c83807 update 2024-06-10 19:29:21 +08:00
9f13b4ec5a Update index.py 2024-06-10 19:20:30 +08:00
133f8fd9f3 update 2024-06-10 19:19:26 +08:00
757e20c75c Update index.py 2024-06-10 18:57:08 +08:00
6b75914c91 Update index.py 2024-06-10 18:26:30 +08:00
ae6af8d777 Create my8.4.cnf 2024-06-10 18:21:17 +08:00
770718ba95 Create install.sh 2024-06-10 18:20:34 +08:00
da4a9f7088 update 2024-06-10 18:14:34 +08:00
bea62f6d3c Update index.py 2024-06-10 18:07:44 +08:00
ef960f945e update 2024-06-10 17:20:34 +08:00
9fd8ac426c Update index.py 2024-06-10 17:08:42 +08:00
a68a5e6c8b update 2024-06-10 17:08:18 +08:00
f78296c1b0 Update index.py 2024-06-10 17:05:38 +08:00
91a3b0d659 update 2024-06-10 17:04:31 +08:00
6fdba85d04 Update my8.4.cnf 2024-06-10 16:57:20 +08:00
c0fd42d5c4 Update my8.4.cnf 2024-06-10 16:57:08 +08:00
4095263c72 Update index.py 2024-06-10 16:56:20 +08:00
57558d7241 Update index.py 2024-06-10 16:43:53 +08:00
28b64b3819 Update index.py 2024-06-10 16:36:00 +08:00
08a0b5e186 Update my8.0.cnf 2024-06-10 16:33:15 +08:00
7d8d34b15e Update install.sh 2024-06-10 16:31:09 +08:00
d93a1d92f3 Update my8.0.cnf 2024-06-10 16:29:13 +08:00
6a5b63c359 update 2024-06-10 16:25:44 +08:00
5d10c45501 Update install.sh 2024-06-10 16:25:11 +08:00
28449b5dfd Update my8.0.cnf 2024-06-10 16:23:45 +08:00
e1ea19b54d Update index.py 2024-06-10 16:13:45 +08:00
87a18b54ad Update index.py 2024-06-10 15:53:48 +08:00
1d36b669b0 update 2024-06-10 15:53:37 +08:00
0d67c6a3ca Update my8.4.cnf 2024-06-10 15:30:23 +08:00
9e2919dc35 Update my8.4.cnf 2024-06-10 15:30:15 +08:00
88219e7802 update 2024-06-10 15:23:34 +08:00
dee06ecf45 Update index.py 2024-06-10 15:09:30 +08:00
cc6e4d07b0 update 2024-06-10 15:05:07 +08:00
f824293c96 update 2024-06-10 14:57:49 +08:00
92e48f44dc Update mysql-yum.js 2024-06-10 14:55:37 +08:00
02402eb5dc Update mysql-apt.js 2024-06-10 14:54:30 +08:00
9e9e0d8f35 Update mysql-apt.js 2024-06-10 14:52:35 +08:00
3a955ce107 Update index.py 2024-06-10 14:49:40 +08:00
1d22d64558 Update my8.4.cnf 2024-06-10 14:40:02 +08:00
e59f29badf update 2024-06-10 14:32:08 +08:00
8cfb038a0c update 2024-06-10 14:27:56 +08:00
5ba48d965c Create mysql8.4.service.tpl 2024-06-10 14:24:49 +08:00
d72a7c4bf8 Update info.json 2024-06-10 14:20:29 +08:00
fb20289a80 Update index.py 2024-06-10 14:20:11 +08:00
21df235fd5 update 2024-06-10 14:18:25 +08:00
e001e9eb0d update 2024-06-10 14:16:26 +08:00
7ebe575132 Create mysql8.4.service.tpl 2024-06-10 14:10:08 +08:00
34951d1058 Update install.sh 2024-06-10 14:07:40 +08:00
2ccb45bfcb Update index.py 2024-06-10 13:58:40 +08:00
0a7945806e Update index.py 2024-06-10 13:43:11 +08:00
e3fe8aff79 update 2024-06-10 13:40:47 +08:00
12fdc90536 Create my8.4.cnf 2024-06-10 13:39:40 +08:00
870ee26b60 update 2024-06-10 13:38:29 +08:00
7b84624e81 Update install.sh 2024-06-10 13:34:48 +08:00
43d7f918a5 update 2024-06-10 13:33:00 +08:00
78e61a7718 update 2024-06-10 13:31:55 +08:00
3e3e3db323 update 2024-06-10 13:31:13 +08:00
335073102e Update index.py 2024-06-10 12:56:42 +08:00
c749154fb3 Update rhel.sh 2024-06-10 12:55:08 +08:00
752152fb56 Update rhel.sh 2024-06-10 12:54:38 +08:00
cb2883646d Update rhel.sh 2024-06-10 12:53:20 +08:00
bc6370ad8e Update rhel.sh 2024-06-10 12:53:03 +08:00
15ceaa1dbb Update rhel.sh 2024-06-10 12:45:17 +08:00
66dfd39757 Update rhel.sh 2024-06-10 12:43:17 +08:00
b7b82da73f Update index.py 2024-06-10 12:39:55 +08:00
f95946a11b update 2024-06-10 03:59:47 +08:00
1609f189dd Update info.json 2024-06-10 03:57:17 +08:00
26de27fc85 Update info.json 2024-06-10 03:57:11 +08:00
41a3771efe Update info.json 2024-06-10 03:55:44 +08:00
d0ac69832f update 2024-06-10 03:54:44 +08:00
df6c2687af update 2024-06-10 03:46:39 +08:00
8783a619c9 Update install_dev.sh 2024-06-10 03:45:10 +08:00
573cc3fc47 Update rhel.sh 2024-06-10 03:37:12 +08:00
4d1ac42057 Update install.sh 2024-06-10 03:29:34 +08:00
12dc740f56 Update info.json 2024-06-10 03:25:51 +08:00
7b61f433a0 Update my8.3.cnf 2024-06-10 03:20:19 +08:00
0e25a1e87b Update my8.2.cnf 2024-06-10 03:20:12 +08:00
e9ff3b72e1 Update my8.2.cnf 2024-06-10 03:18:10 +08:00
623ec17c29 Update my8.2.cnf 2024-06-10 03:15:58 +08:00
cc1a665f7a Update my8.3.cnf 2024-06-10 03:12:04 +08:00
f092846ece Update my8.3.cnf 2024-06-10 03:09:15 +08:00
b547fef1b9 Create my8.3.cnf 2024-06-10 03:07:28 +08:00
665bc9f8d1 Update install.sh 2024-06-10 03:03:49 +08:00
c961921be8 Update info.json 2024-06-10 03:02:17 +08:00
3f65a92446 Update index.py 2024-06-10 02:59:49 +08:00
bfe82cc95d Update index.py 2024-06-10 02:59:00 +08:00
85ededc849 Update index.py 2024-06-10 02:58:03 +08:00
7efe37c35c update 2024-06-10 02:53:36 +08:00
d394a70f46 Update index.py 2024-06-10 02:52:04 +08:00
1db88e3343 Update index.py 2024-06-10 02:46:11 +08:00
b9e1e33dc8 Update index.py 2024-06-10 02:44:54 +08:00
8af80459a1 update 2024-06-10 02:41:27 +08:00
c2b46f77b7 Update mysql-yum.js 2024-06-10 02:37:03 +08:00
5f5955d51b Update mysql-apt.js 2024-06-10 02:36:36 +08:00
e29d632a78 Update mysql-yum.js 2024-06-10 02:33:06 +08:00
b5845d3881 update 2024-06-10 02:31:05 +08:00
f75c42690b update 2024-06-10 02:28:55 +08:00
18f9ac498b Update index.py 2024-06-10 02:22:51 +08:00
865c71ab96 update 2024-06-10 02:10:08 +08:00
2d40e2d84b Update index.py 2024-06-10 02:00:27 +08:00
e7e160c8e1 update 2024-06-10 01:58:11 +08:00
a542c95433 Update index.py 2024-06-10 01:40:04 +08:00
83a3e0ca24 Update mysql-apt.js 2024-06-10 01:35:18 +08:00
7eeb7c97d2 Update mysql-apt.js 2024-06-10 01:33:31 +08:00
8629224f2f Update ubuntu.sh 2024-06-10 01:27:42 +08:00
76866a46f0 update 2024-06-10 01:15:44 +08:00
3f96854d9a update 2024-06-10 01:13:13 +08:00
92001aadfe update 2024-06-10 00:52:46 +08:00
3473645798 Update mysql-apt.js 2024-06-10 00:46:10 +08:00
47834ea34e Update index.py 2024-06-10 00:44:48 +08:00
1329a87a06 Update index.py 2024-06-10 00:42:16 +08:00
38217e7571 Update index.py 2024-06-10 00:40:17 +08:00
fff22ede33 update 2024-06-10 00:26:41 +08:00
ab3c395f2f Update index.py 2024-06-10 00:19:09 +08:00
4a4502a33c Update index.py 2024-06-10 00:17:11 +08:00
07b2dcbba0 update 2024-06-10 00:13:02 +08:00
c582d520b7 update 2024-06-10 00:09:59 +08:00
22fcff77c2 update 2024-06-10 00:05:55 +08:00
4b49ca9194 Create install.sh 2024-06-09 23:54:44 +08:00
95a500f09d Update .gitignore 2024-06-09 23:38:26 +08:00
Mr Chen
5f186e0bf2 Merge pull request #595 from midoks/dev
backup_ftp插件-目录备份修复2
2024-06-09 14:14:18 +08:00
64ac1b2188 backup_ftp插件-目录备份修复2 2024-06-09 14:13:38 +08:00
Mr Chen
e60f0b2cf7 Merge pull request #594 from midoks/dev
ftp插件-目录备份修复
2024-06-09 13:42:39 +08:00
aeb79cfe57 Update index.py 2024-06-09 13:39:05 +08:00
05e74503c5 Update index.py 2024-06-09 13:00:15 +08:00
Mr Chen
ef34b4b3f1 Merge pull request #593 from midoks/dev
mysql同步提示优化
2024-06-09 01:07:10 +08:00
dc22fc81e7 update 2024-06-09 00:13:17 +08:00
2ce73aefad Update index.py 2024-06-09 00:07:25 +08:00
a8b37fb5ba Update all_mac.sh 2024-06-08 21:45:34 +08:00
ee1d3dec38 Update all_test.sh 2024-06-08 21:45:26 +08:00
dbdea53fc3 update 2024-06-07 21:08:29 +08:00
Mr Chen
cc770cd61b Merge pull request #592 from midoks/dev
细节优化
2024-06-07 20:51:33 +08:00
5c3f71c2e4 Update task.py 2024-06-07 20:06:20 +08:00
6b61fa6136 Update public.js 2024-06-07 20:04:30 +08:00
5509a7b3ae Update mw.py 2024-06-07 19:45:07 +08:00
9d24d7024f Update public.js 2024-06-07 19:42:44 +08:00
17405babae Update public.js 2024-06-07 19:41:57 +08:00
a61c636455 Update public.js 2024-06-07 19:39:38 +08:00
Mr Chen
c17f6a3956 Merge pull request #591 from midoks/dev
安装脚本优化
2024-06-07 18:55:03 +08:00
0042b12ad5 Update ubuntu.sh 2024-06-07 18:53:48 +08:00
bbbf670ec9 Merge branch 'master' into dev 2024-06-07 18:53:08 +08:00
986685169a Update debian.sh 2024-06-07 18:52:19 +08:00
4d160967bc Update opensuse.sh 2024-06-07 16:05:36 +08:00
0163c9b728 Merge branch 'master' into dev 2024-06-07 15:12:26 +08:00
Mr Chen
b6b7fa1021 Merge pull request #590 from midoks/dev
webssh 优化
2024-06-07 15:10:41 +08:00
6d9d5024a0 Update ssh_terminal.py 2024-06-07 15:08:54 +08:00
Mr Chen
fbe9937782 Merge pull request #589 from midoks/dev
Update webssh.js
2024-06-07 14:51:47 +08:00
6b60315036 Update webssh.js 2024-06-07 14:48:25 +08:00
Mr Chen
64f15e77bc Merge pull request #588 from midoks/dev
docker相关功能优化
2024-06-07 13:51:18 +08:00
efc4fb9cb2 docker 优化 2024-06-07 13:49:59 +08:00
f1f0a0f1a5 Update mw.py 2024-06-07 13:33:07 +08:00
Mr Chen
7f696862ef Merge pull request #587 from midoks/dev
日志清理 - 优化
2024-06-06 19:35:39 +08:00
4cf00c1a6b Update index.py 2024-06-06 19:34:26 +08:00
2908ffc1c8 Update index.py 2024-06-06 19:32:55 +08:00
761cd1f064 Update index.py 2024-06-06 19:31:06 +08:00
b2026ce74f Update index.py 2024-06-06 19:29:57 +08:00
ee565b22db Update index.py 2024-06-06 19:26:20 +08:00
ba34b851e4 Update index.py 2024-06-06 19:25:08 +08:00
aadfe8a6e8 Update index.html 2024-06-06 19:20:32 +08:00
736677fdc6 Update index.py 2024-06-06 19:18:57 +08:00
6870dbf711 update 2024-06-06 19:18:44 +08:00
679a112a2c Update index.py 2024-06-06 18:56:09 +08:00
391ca28f46 Merge branch 'master' into dev 2024-06-05 19:39:04 +08:00
f3e897b6c5 Merge branch 'master' into dev 2024-06-05 19:19:10 +08:00
Mr Chen
29a3e606e1 Merge pull request #586 from midoks/dev
0.17.1
2024-06-05 19:00:44 +08:00
d2b837f52c Update mw.py 2024-06-05 18:58:12 +08:00
8984381ea2 0.17.1 2024-06-05 18:57:35 +08:00
ff015b19f7 Update install.sh 2024-06-05 18:14:40 +08:00
1e71eedc19 Update install.sh 2024-06-05 18:13:40 +08:00
fbce4a1abc Update install.sh 2024-06-05 18:12:51 +08:00
d0cdab81d4 Update install.sh 2024-06-05 18:08:57 +08:00
a69d5367d7 Update task_manager_index.py 2024-06-05 17:48:26 +08:00
8d0ee48aa6 Update task_manager_index.py 2024-06-05 17:47:13 +08:00
c24510e1e7 Update task_manager_index.py 2024-06-05 17:44:27 +08:00
2e1c2e21b7 Update task_manager_index.py 2024-06-05 17:18:19 +08:00
fee8c8c3db Update task_manager_index.py 2024-06-05 17:13:16 +08:00
d94290019c Update task_manager_index.py 2024-06-05 17:08:42 +08:00
27b914a905 Update task_manager_index.py 2024-06-05 17:01:45 +08:00
ded25a7c87 Update task_manager_index.py 2024-06-05 16:41:29 +08:00
5ba5da4cd1 Update task_manager_index.py 2024-06-05 16:39:48 +08:00
cbb2a076e3 Update task_manager.js 2024-06-05 16:30:10 +08:00
62df45da6a Update task_manager_index.py 2024-06-05 16:22:45 +08:00
e441d8dc87 Update task_manager_index.py 2024-06-05 16:22:12 +08:00
6d77e923b7 Update task_manager_index.py 2024-06-05 16:22:04 +08:00
17a40802ae Update task_manager_index.py 2024-06-05 16:16:10 +08:00
13bb828a95 Update task_manager.js 2024-06-05 16:12:37 +08:00
eaa1a74dd6 Update task_manager_index.py 2024-06-05 16:05:46 +08:00
80b615810c Update process_network_total.py 2024-06-05 15:56:27 +08:00
23fe4928e0 Update task_manager_index.py 2024-06-05 15:31:09 +08:00
5a37c742e2 Update info.json 2024-06-05 15:21:09 +08:00
b94af58524 Update task_manager_index.py 2024-06-05 15:14:48 +08:00
082c90b769 update 2024-06-05 15:14:20 +08:00
5012dc3a7b Update task_manager_index.py 2024-06-05 14:02:41 +08:00
a6619b6e9d Update task_manager_index.py 2024-06-05 13:56:34 +08:00
fe4ab5a013 Update task_manager_index.py 2024-06-05 13:40:27 +08:00
ade3a5621f Update process_network_total.py 2024-06-05 13:33:23 +08:00
1cadeb3f59 Update task_manager_index.py 2024-06-05 13:19:44 +08:00
05a2ba7f21 Update process_network_total.py 2024-06-05 13:18:06 +08:00
1759b6bcb1 update 2024-06-05 13:16:56 +08:00
a9e4c1b793 Update task_manager_index.py 2024-06-05 12:59:31 +08:00
650b565fdf Update task_manager_index.py 2024-06-05 12:58:19 +08:00
7ab974e565 Update task_manager_index.py 2024-06-05 12:56:47 +08:00
95f8faf30f Update task_manager.js 2024-06-05 12:14:29 +08:00
3d69e3723e Update task_manager.js 2024-06-05 12:13:56 +08:00
4420bbc36c Update task_manager.js 2024-06-05 12:08:33 +08:00
d5d96f6323 Update config_api.py 2024-06-05 12:01:38 +08:00
0bc9ed9d49 Update task_manager.js 2024-06-05 12:01:13 +08:00
95e29d6266 Update task_manager.js 2024-06-05 12:00:27 +08:00
207cef200f update 2024-06-05 11:58:07 +08:00
0082bcd159 Update site.css 2024-06-05 11:39:21 +08:00
f2a1674247 Update task_manager_index.py 2024-06-05 11:29:04 +08:00
cd1a3de04a Update task_manager_index.py 2024-06-05 11:27:26 +08:00
60a0bd7a65 Update task_manager_index.py 2024-06-05 11:25:54 +08:00
a0696fc974 Update task_manager_index.py 2024-06-05 11:25:32 +08:00
159660815b Update task_manager.js 2024-06-05 11:20:28 +08:00
1c5a3f3c13 Update task_manager_index.py 2024-06-05 11:17:30 +08:00
b36fc58839 Update task_manager_index.py 2024-06-05 11:09:53 +08:00
0cd7a7dc9e Update task_manager_index.py 2024-06-05 11:05:10 +08:00
52724dd5b2 Update task_manager_index.py 2024-06-05 11:04:42 +08:00
dccea0e283 Update task_manager_index.py 2024-06-05 11:04:05 +08:00
0f488b26d1 Update task_manager_index.py 2024-06-05 11:03:41 +08:00
c3b60695c7 Update task_manager_index.py 2024-06-05 10:54:21 +08:00
6fe205dbfb Update task_manager_index.py 2024-06-05 10:51:36 +08:00
d8efd3f987 Update task_manager.js 2024-06-05 03:19:48 +08:00
4c50e44e2c Update task_manager.js 2024-06-05 03:15:32 +08:00
60717c3363 Update task_manager.js 2024-06-05 03:09:10 +08:00
48388edcfc Update task_manager_index.py 2024-06-05 03:07:24 +08:00
3c90a0fbe6 Update task_manager_index.py 2024-06-05 03:03:43 +08:00
6eadb548a1 Update task_manager_index.py 2024-06-05 02:54:10 +08:00
204be55c81 Update task_manager_index.py 2024-06-05 02:48:19 +08:00
a44ac7606a Update task_manager_index.py 2024-06-05 02:43:31 +08:00
67505f7aef Update task_manager_index.py 2024-06-05 02:40:57 +08:00
369dc69364 Update task_manager.js 2024-06-05 02:23:47 +08:00
1ffe197d69 Update task_manager_index.py 2024-06-05 02:16:53 +08:00
6a584ccf7b Update task_manager_index.py 2024-06-05 02:13:02 +08:00
43aba019c0 Update task_manager_index.py 2024-06-05 02:09:19 +08:00
a0a61d3bbc Update task_manager.js 2024-06-05 01:15:34 +08:00
9b008fcff9 Update task_manager_index.py 2024-06-05 01:09:51 +08:00
e80162cfa9 Update task_manager.js 2024-06-05 01:07:14 +08:00
30b02aea33 update 2024-06-05 01:05:37 +08:00
1cf49c24ef Update task_manager_index.py 2024-06-05 01:03:38 +08:00
3bb0552ba6 Update task_manager_index.py 2024-06-05 00:52:03 +08:00
b33be2ab84 update 2024-06-05 00:50:42 +08:00
8a4a63c85b Update task_manager.js 2024-06-05 00:39:40 +08:00
640e8bbfa0 Update task_manager_index.py 2024-06-05 00:37:13 +08:00
e6463e0286 Update task_manager_index.py 2024-06-05 00:35:08 +08:00
c6cf6fef0b Update task_manager_index.py 2024-06-05 00:32:50 +08:00
a428636e1c Update task_manager_index.py 2024-06-05 00:31:17 +08:00
6fd145fa52 Update index.html 2024-06-05 00:13:42 +08:00
6164d462f3 Update task_manager.js 2024-06-05 00:08:28 +08:00
d05e72e1d7 Update task_manager_index.py 2024-06-04 23:42:37 +08:00
d9fbfcb184 Update task_manager_index.py 2024-06-04 22:28:35 +08:00
660d95616d Update task_manager_index.py 2024-06-04 22:26:13 +08:00
6160819920 Update task_manager.js 2024-06-04 22:17:14 +08:00
c83b2d5bc5 Update task_manager_index.py 2024-06-04 22:09:59 +08:00
44d529d32f Update public.js 2024-06-04 20:36:31 +08:00
b81e51c0e8 Update task_manager.js 2024-06-04 20:35:43 +08:00
beccfe8519 update 2024-06-04 18:19:17 +08:00
9e774fb629 update 2024-06-04 17:57:58 +08:00
10c7ec8718 Update task_manager_index.py 2024-06-04 03:32:34 +08:00
4bb9d0f002 Update task_manager.js 2024-06-04 01:51:09 +08:00
39676d1a37 Update task_manager_index.py 2024-06-04 01:49:24 +08:00
50f44afd82 update 2024-06-04 01:48:47 +08:00
9884bbd0e3 Update task_manager.js 2024-06-04 01:38:53 +08:00
39853e39c7 Update task_manager.js 2024-06-04 01:38:37 +08:00
894656741d Update task_manager.js 2024-06-04 01:35:09 +08:00
93ef3659f2 Update task_manager_index.py 2024-06-04 01:34:17 +08:00
3ccf084a53 Update task_manager.js 2024-06-04 01:27:43 +08:00
aaa2b766a3 Update task_manager.js 2024-06-04 01:07:52 +08:00
dc1f03b7ae update 2024-06-04 01:04:16 +08:00
36b50d3bf2 update 2024-06-04 01:01:15 +08:00
b9b7081eb4 Update task_manager_index.py 2024-06-04 00:38:18 +08:00
808e65091d Update install.sh 2024-06-04 00:34:19 +08:00
9b0c30e554 Update task_manager_index.py 2024-06-04 00:33:02 +08:00
ffec30883f Update task_manager_index.py 2024-06-04 00:30:29 +08:00
900dfc6ca7 Update task_manager_index.py 2024-06-04 00:28:42 +08:00
203b4d11a8 Update task_manager_index.py 2024-06-04 00:26:48 +08:00
2ba57ab05f Update task_manager_index.py 2024-06-04 00:25:04 +08:00
4b11415f36 Update task_manager_index.py 2024-06-04 00:23:52 +08:00
1ef0c4b8f0 Update task_manager_index.py 2024-06-04 00:23:06 +08:00
4d85ed4e88 Update task_manager_index.py 2024-06-04 00:22:42 +08:00
6c40e57ff6 update 2024-06-04 00:19:15 +08:00
19a4974537 Update stats.js 2024-06-03 23:09:30 +08:00
6783e1507d Update mysql.js 2024-06-03 12:10:59 +08:00
8f3e722a0f Update .gitignore 2024-06-03 00:43:38 +08:00
3437d2e484 Update php.js 2024-06-01 12:17:10 +08:00
Mr Chen
06e654ae2e Merge pull request #585 from midoks/dev
ssh终端提高稳定性。
2024-06-01 02:08:55 +08:00
c3103a23c6 Update __init__.py 2024-06-01 01:57:36 +08:00
55b38c2741 Update ssh_local.py 2024-06-01 01:55:14 +08:00
9f30c1968d Update ssh_local.py 2024-06-01 01:53:53 +08:00
d2455768ff Update ssh_local.py 2024-06-01 01:53:39 +08:00
6331155dc7 Update ssh_local.py 2024-06-01 01:51:27 +08:00
06d9695d33 update 2024-06-01 01:50:29 +08:00
80b35284ed Update ssh_terminal.py 2024-06-01 01:33:29 +08:00
27c38153b8 Update ssh_terminal.py 2024-06-01 01:20:26 +08:00
db62524dab Update __init__.py 2024-06-01 01:19:04 +08:00
190b858e46 update 2024-06-01 01:16:40 +08:00
Mr Chen
be69e5838e Merge pull request #584 from midoks/dev
mysql插件 pv命令判断修复
2024-05-30 12:15:26 +08:00
b12122f53b update 2024-05-30 12:14:54 +08:00
33be35eb60 Update config_api.py 2024-05-27 19:06:20 +08:00
39b3f96ab5 Update index.js 2024-05-27 19:05:44 +08:00
7d214f74fd Update public.js 2024-05-27 18:59:47 +08:00
10aa140fe9 Update public.js 2024-05-27 18:59:39 +08:00
c68eaa9c61 Update public.js 2024-05-27 18:59:23 +08:00
3cc6021540 Update public.js 2024-05-27 18:53:50 +08:00
bfe7d49e07 Update public.js 2024-05-27 18:53:44 +08:00
c02aacb0d5 Update public.js 2024-05-27 18:53:19 +08:00
6d0f6fd171 Update index.js 2024-05-27 18:51:48 +08:00
712061e814 Update index.js 2024-05-27 18:49:48 +08:00
197dfa1b7e Update index.js 2024-05-27 18:48:41 +08:00
f21b66ddc0 Update index.js 2024-05-27 18:48:02 +08:00
5e086537d6 Update index.js 2024-05-27 18:46:53 +08:00
23532cb7e6 Update index.js 2024-05-27 18:43:40 +08:00
864ee5caec Update index.js 2024-05-27 18:43:07 +08:00
5db6d0332b Update config_api.py 2024-05-27 18:36:01 +08:00
eb9504658a update 2024-05-27 18:35:30 +08:00
a67389d611 Update stats.js 2024-05-27 18:07:12 +08:00
Mr Chen
f6d4609947 Merge pull request #583 from midoks/dev
0.17.0
2024-05-27 17:47:09 +08:00
d2ddcebe3e 0.17.0 2024-05-27 17:46:06 +08:00
fd2f2c0aa9 Update config.js 2024-05-27 17:42:48 +08:00
0aae3b0654 Update config_api.py 2024-05-27 17:39:03 +08:00
e56606ac61 Update config_api.py 2024-05-27 17:34:56 +08:00
54e11700c2 Update config_api.py 2024-05-27 17:27:45 +08:00
fe3b8de490 update 2024-05-27 17:26:42 +08:00
9874069100 Update config_api.py 2024-05-27 15:13:08 +08:00
9419d6d55b Update config_api.py 2024-05-27 15:06:14 +08:00
2f61facbda Update mw.py 2024-05-27 15:01:01 +08:00
5cd8d7bf18 Update setting.py 2024-05-27 14:57:55 +08:00
41f016050f Update mw.py 2024-05-27 14:51:39 +08:00
d931790dd3 Update mw.py 2024-05-27 14:50:56 +08:00
a81e63e131 Update mw.tpl 2024-05-27 14:47:38 +08:00
30717079d4 Update mw.tpl 2024-05-27 14:46:56 +08:00
3eb2fbb654 Update mw.py 2024-05-27 14:41:06 +08:00
cf54a430eb Update mw.py 2024-05-27 14:40:43 +08:00
04925c0534 Update mw.py 2024-05-27 14:40:27 +08:00
6473755127 Update mw.py 2024-05-27 14:39:13 +08:00
35f40fc8fc Update mw.py 2024-05-27 14:37:09 +08:00
088a4ab969 Update mw.py 2024-05-27 14:35:44 +08:00
3c00ddad75 Update mw.py 2024-05-27 14:31:04 +08:00
5edd9baeb6 Update config_api.py 2024-05-27 14:22:48 +08:00
734548d764 update 2024-05-27 14:18:54 +08:00
e47d3a235d Update task.py 2024-05-27 13:59:19 +08:00
0a93015720 Update tools.py 2024-05-27 12:24:23 +08:00
1078d71370 Update tools.py 2024-05-27 12:23:53 +08:00
b482127044 update 2024-05-27 12:12:41 +08:00
27b6ee135c Update config.js 2024-05-27 10:37:08 +08:00
cc2000267d Update config_api.py 2024-05-27 10:35:22 +08:00
c1e3655923 Update config_api.py 2024-05-27 09:34:21 +08:00
b0a6181dca up 2024-05-27 00:16:04 +08:00
33e7efa440 Update config_api.py 2024-05-26 23:01:16 +08:00
6d7a38dc08 Update config.js 2024-05-26 22:55:28 +08:00
8a60965069 update 2024-05-26 22:50:29 +08:00
ef9d627095 Update config_api.py 2024-05-26 22:37:12 +08:00
b66acc8c2a Update config.js 2024-05-26 22:28:19 +08:00
fb56f6c190 Update config_api.py 2024-05-26 22:09:29 +08:00
af0f55e6ef Update config_api.py 2024-05-26 21:23:05 +08:00
fb95e2ad8d Update config_api.py 2024-05-26 21:22:41 +08:00
138a6d3e66 Update config_api.py 2024-05-26 21:21:57 +08:00
98b9065585 Update config_api.py 2024-05-26 21:19:49 +08:00
36c3fae920 Update config.js 2024-05-26 21:17:58 +08:00
70ee376958 Update config.js 2024-05-26 21:14:04 +08:00
47b2f1b009 Update config_api.py 2024-05-26 17:01:31 +08:00
f2a35b97b0 Update config_api.py 2024-05-26 16:58:38 +08:00
c26e5dc40d update 2024-05-26 16:39:28 +08:00
893b2d601c Update config.js 2024-05-26 15:49:56 +08:00
28964721ec Update config_api.py 2024-05-26 15:47:48 +08:00
5a2028d797 update 2024-05-26 15:46:12 +08:00
fcbe6a87df Update mw.py 2024-05-26 15:32:05 +08:00
7f5cf75d68 update 2024-05-26 15:29:21 +08:00
c368638181 Update config_api.py 2024-05-26 15:13:53 +08:00
decc9d2b29 Update config_api.py 2024-05-26 14:08:37 +08:00
7da2a90712 Update config_api.py 2024-05-26 14:01:53 +08:00
7dd377460c Update config.js 2024-05-26 14:01:22 +08:00
6b6ae63aea Update config.js 2024-05-26 14:00:22 +08:00
cc9a4b5536 Update config.js 2024-05-26 13:58:52 +08:00
fd44a312f6 Update config.js 2024-05-26 13:58:26 +08:00
a5802b4280 Update config_api.py 2024-05-26 13:56:40 +08:00
d8c928dc02 Update config.js 2024-05-26 13:56:29 +08:00
339cdf662b Update cli.sh 2024-05-26 13:55:51 +08:00
1e2a174e30 Update config_api.py 2024-05-26 13:55:47 +08:00
2714538ad7 Update config_api.py 2024-05-26 13:54:50 +08:00
8a43f67801 Update mw.py 2024-05-26 13:52:19 +08:00
f3f7ef4a3d Update config.js 2024-05-26 13:52:12 +08:00
3523f8d6c8 update 2024-05-26 13:52:07 +08:00
eb8c2b6ad5 update 2024-05-26 00:48:03 +08:00
438322361d Update files.js 2024-05-25 23:19:57 +08:00
c902f48931 Update config_api.py 2024-05-25 13:24:11 +08:00
e67a258e7a Update sphinx.js 2024-05-25 13:06:28 +08:00
007993ed9e Update sphinx.js 2024-05-25 13:03:50 +08:00
81171c0c7c Update webstats_common.lua 2024-05-25 11:44:00 +08:00
Mr Chen
15d07e4234 Merge pull request #582 from midoks/dev
网站统计-PV,UV优化
2024-05-25 11:36:02 +08:00
786fac9142 Update webstats_common.lua 2024-05-25 11:31:56 +08:00
5499c8795f update 2024-05-25 11:08:46 +08:00
322698f345 Update init.sql 2024-05-24 23:31:30 +08:00
f229e03f10 Update stats.js 2024-05-23 15:52:32 +08:00
Mr Chen
6024dbcdb6 Merge pull request #581 from midoks/dev
网站统计 - 特殊处理
2024-05-23 15:51:59 +08:00
c874ea44eb 网站统计 - 特殊处理 2024-05-23 15:50:43 +08:00
Mr Chen
c70e4d1412 Merge pull request #580 from midoks/dev
Update index.py
2024-05-23 14:03:08 +08:00
235c5e329e Update index.py 2024-05-23 14:01:02 +08:00
Mr Chen
b77bfab5a8 Merge pull request #579 from midoks/dev
新功能同步到mariadb
2024-05-23 13:11:41 +08:00
890bbc4214 Update index.py 2024-05-23 13:05:44 +08:00
2f86f4d6ff Update index.py 2024-05-23 13:04:34 +08:00
c9ced293e8 Update mariadb.js 2024-05-23 12:57:33 +08:00
43f081aac1 Update mariadb.js 2024-05-23 12:56:09 +08:00
49aa411248 Update index.py 2024-05-23 12:53:00 +08:00
d597e15402 Update index.py 2024-05-23 12:52:49 +08:00
a74ee3faf4 Update index.py 2024-05-23 12:52:39 +08:00
cfe55ca196 Update index.py 2024-05-23 12:51:24 +08:00
2edffd36d0 Update requirements.txt 2024-05-23 12:07:31 +08:00
c7077ec283 Update index.py 2024-05-23 11:57:12 +08:00
cfcd4c2050 Update index.py 2024-05-23 11:55:28 +08:00
2387af2880 Update index.py 2024-05-23 11:25:33 +08:00
72f825c0c4 Update index.py 2024-05-23 11:23:55 +08:00
fbe4857944 Update index.py 2024-05-23 11:23:05 +08:00
01fe75e553 Update index.py 2024-05-23 11:21:37 +08:00
2bd607edad Update index.py 2024-05-23 11:20:35 +08:00
9b9a806dee Update install.sh 2024-05-23 11:17:20 +08:00
9bc6d392a0 Update index.py 2024-05-23 11:15:15 +08:00
26b5dc7cd4 update 2024-05-23 11:04:08 +08:00
80a690c431 Update mariadb.js 2024-05-23 10:48:15 +08:00
71840ee1e2 update 2024-05-23 10:45:03 +08:00
fbdbb25a78 Update index.py 2024-05-23 10:36:10 +08:00
e546428596 Update public.js 2024-05-23 00:43:10 +08:00
a16259f718 Update public.js 2024-05-23 00:35:54 +08:00
df0b708462 Update backup.py 2024-05-23 00:16:38 +08:00
b3c383327d Update index.py 2024-05-23 00:15:35 +08:00
Mr Chen
8a9c99fb0d Merge pull request #578 from midoks/dev
Update requirements.txt
2024-05-22 22:22:33 +08:00
a22d90198c Update requirements.txt 2024-05-22 22:21:18 +08:00
Mr Chen
dcae829a1c Merge pull request #577 from midoks/dev
0.16.9
2024-05-22 22:12:39 +08:00
de4e134be8 0.16.9
- mysql同步优化,享受丝滑般感觉。
- 网站统计 - 实时-可调节1-10s。
- 网站统计 - 加入大小条件。
- Sphinx优化。
2024-05-22 22:12:03 +08:00
ba96e62126 Update cmd.md 2024-05-22 22:11:07 +08:00
990fb06567 Update .gitignore 2024-05-22 22:02:17 +08:00
71c1034d12 Update .gitignore 2024-05-22 22:01:37 +08:00
6582cbc09d update 2024-05-22 22:01:09 +08:00
52bad278cc Update README.md 2024-05-22 19:48:12 +08:00
e023490002 网站统计加入大小条件 2024-05-22 19:44:25 +08:00
c1a7443597 Update r3.6.txt 2024-05-22 11:46:40 +08:00
3f57e7da07 update 2024-05-22 11:45:51 +08:00
0461bf3225 Update sphinx_make.py 2024-05-22 11:37:47 +08:00
ac0a503aa7 Update push_notice_msg.py 2024-05-22 10:57:45 +08:00
706e9e98e7 Update redis.tpl 2024-05-22 10:50:08 +08:00
d9e878d607 Update redis_cluster.conf 2024-05-22 10:45:57 +08:00
ceb5f21814 Update redis_slave.conf 2024-05-22 10:44:45 +08:00
c8e689433b mw update_dev 2024-05-22 10:44:21 +08:00
f2171aa159 Update mw.tpl 2024-05-22 03:29:46 +08:00
6eccdd510e update 2024-05-22 03:29:01 +08:00
c9a00809a4 Update redis_slave.conf 2024-05-22 02:57:42 +08:00
9f1d8e43e6 Update redis_slave.conf 2024-05-22 02:54:26 +08:00
e8eda79a1a Update redis.conf 2024-05-22 02:54:06 +08:00
f25847d31d Update tidb.yaml 2024-05-22 02:53:27 +08:00
bda7dfa518 Update redis_slave.conf 2024-05-22 02:53:06 +08:00
4115c29fe9 Update redis_slave.conf 2024-05-22 02:46:09 +08:00
f73e378fd6 Update index.py 2024-05-21 23:41:56 +08:00
aa9ab55fec Update sphinx_make.py 2024-05-21 23:39:19 +08:00
da5c44a747 Update sphinx_make.py 2024-05-21 23:39:04 +08:00
ee55c998ba Update sphinx_make.py 2024-05-21 23:28:55 +08:00
2e75a56502 Update sphinx_make.py 2024-05-21 23:26:15 +08:00
a66279ba37 Update sphinx_make.py 2024-05-21 23:23:33 +08:00
78bbae1f53 Update sphinx_make.py 2024-05-21 23:21:20 +08:00
a87def4325 Update sphinx_make.py 2024-05-21 22:29:32 +08:00
b84ac2daf1 Update sphinx_make.py 2024-05-21 20:58:22 +08:00
7c9bf99669 Update sphinx_make.py 2024-05-21 20:56:38 +08:00
599f6ecc51 Update sphinx_make.py 2024-05-21 20:42:38 +08:00
47a17fbc46 Update sphinx_make.py 2024-05-21 20:40:31 +08:00
80fa0ea62d Update sphinx_make.py 2024-05-21 20:40:15 +08:00
83c78609a4 Update sphinx_make.py 2024-05-21 20:35:50 +08:00
298d4b7981 Update sphinx_make.py 2024-05-21 20:33:22 +08:00
dc6f4e03e7 Update sphinx_make.py 2024-05-21 20:27:55 +08:00
8b0b2b2d72 Update sphinx.js 2024-05-21 20:00:29 +08:00
d4087ce7f0 Update sphinx_make.py 2024-05-21 19:59:23 +08:00
f92df461ba Update sphinx_make.py 2024-05-21 19:58:43 +08:00
9e015bc08c Update sphinx_make.py 2024-05-21 19:55:36 +08:00
4bffd9a22d update 2024-05-21 19:43:25 +08:00
e2ef42fbbc Update sphinx.js 2024-05-21 19:23:30 +08:00
f10e05b7ee update 2024-05-21 19:20:07 +08:00
c15288cf09 update 2024-05-21 17:12:39 +08:00
2461307d64 update 2024-05-21 16:57:05 +08:00
95ec87346d update 2024-05-21 16:07:59 +08:00
f99c5b5fc4 update 2024-05-21 16:04:02 +08:00
adfd3bef2d Update app.js 2024-05-21 15:58:32 +08:00
c11631c0c3 Update index.html 2024-05-21 14:42:11 +08:00
4f87725101 Update redis_slave.conf 2024-05-21 14:22:40 +08:00
3a6695bb0d Update redis.conf 2024-05-21 14:22:02 +08:00
dd3bcced66 Update redis_slave.conf 2024-05-21 14:21:57 +08:00
81a163f744 Update site.css 2024-05-21 03:08:08 +08:00
19dd36fa8b Update sphinx_make.py 2024-05-21 00:22:03 +08:00
9dcb028158 Update sphinx_make.py 2024-05-21 00:15:26 +08:00
1ce841eac9 Update sphinx_make.py 2024-05-21 00:12:15 +08:00
c99311dad9 update 2024-05-21 00:07:48 +08:00
d7dd126a48 Update sphinx_make.py 2024-05-20 23:50:06 +08:00
ec8ab6bc45 Update sphinx_make.py 2024-05-20 23:48:03 +08:00
d5b87f450d Update sphinx_make.py 2024-05-20 23:46:23 +08:00
0016f85132 Update sphinx_make.py 2024-05-20 23:18:48 +08:00
32a6b36297 Update tools.py 2024-05-20 22:31:11 +08:00
8da60ffc6b Update tools.py 2024-05-20 22:20:32 +08:00
64d65a5cac Update sphinx_make.py 2024-05-20 20:14:48 +08:00
cf5b986d2e update 2024-05-20 14:11:27 +08:00
e1d0fc49bb Update install.sh 2024-05-20 00:34:08 +08:00
68187ee7dd update 2024-05-20 00:21:09 +08:00
9f7a7c5e59 Update rhel.sh 2024-05-20 00:10:44 +08:00
90b14d59b0 Update install.sh 2024-05-19 23:51:32 +08:00
e8d1ea0a38 Update install.sh 2024-05-19 23:51:11 +08:00
edf8a5534a Update install.sh 2024-05-19 23:48:06 +08:00
87bceced80 update 2024-05-19 23:18:48 +08:00
db3350e85c Update install.sh 2024-05-19 23:03:59 +08:00
56b3aae0c7 Update install.sh 2024-05-19 22:22:52 +08:00
01d5b75d90 Update install.sh 2024-05-19 22:15:43 +08:00
cbf3a15bf0 update 2024-05-19 22:06:47 +08:00
2f0f6eaed6 Update install.sh 2024-05-19 21:54:20 +08:00
f0fcec44ff Update install.sh 2024-05-19 21:46:52 +08:00
fcfdfe822a up 2024-05-19 21:36:25 +08:00
d8e08812f9 update 2024-05-19 19:49:15 +08:00
d0ba142933 Update sphinx_make.py 2024-05-19 18:42:43 +08:00
b4e130c664 Update sphinx_make.py 2024-05-19 18:25:51 +08:00
7503907f34 Update sphinx_make.py 2024-05-19 18:22:13 +08:00
390df93477 Update sphinx_make.py 2024-05-19 18:20:55 +08:00
abcf6250e3 Update sphinx_make.py 2024-05-19 18:20:10 +08:00
70370fcb0b Update sphinx_make.py 2024-05-19 18:19:57 +08:00
57e7021be2 Update sphinx_make.py 2024-05-19 18:10:54 +08:00
45b7abd0fb Update sphinx_make.py 2024-05-19 17:58:50 +08:00
a6d96bb4d8 Update sphinx_make.py 2024-05-19 17:57:27 +08:00
2742ecfc67 Update sphinx_make.py 2024-05-19 17:49:08 +08:00
60747c2f04 Update sphinx_make.py 2024-05-19 17:47:51 +08:00
2b019a704a Update sphinx_make.py 2024-05-19 17:47:27 +08:00
7e049a381b Update sphinx_make.py 2024-05-19 17:45:39 +08:00
2f4cf46bcf Update sphinx_make.py 2024-05-19 17:45:27 +08:00
706ee146b5 Update sphinx_make.py 2024-05-19 17:43:52 +08:00
79b4d09d50 Update index.py 2024-05-19 17:37:47 +08:00
2f0797daab Update sphinx_make.py 2024-05-19 17:34:37 +08:00
8e47c73f5c Update sphinx_make.py 2024-05-19 17:27:22 +08:00
c90d752ae7 update 2024-05-19 17:21:19 +08:00
7c96bbe72f Update sphinx_make.py 2024-05-19 16:56:27 +08:00
53134b7ecc Update sphinx_make.py 2024-05-19 16:36:14 +08:00
bf859f7c7c Update sphinx_make.py 2024-05-19 16:29:16 +08:00
0046d02ddf update 2024-05-19 16:24:33 +08:00
5a0e7a3b60 update 2024-05-19 15:09:25 +08:00
a74ca20d0e up 2024-05-19 14:58:14 +08:00
41109af522 Update install.sh 2024-05-19 11:27:13 +08:00
b3b23994eb Update sphinx.js 2024-05-19 02:40:11 +08:00
02f3a147aa Update index.py 2024-05-19 02:36:34 +08:00
10edf675f5 Update config_api.py 2024-05-19 02:35:24 +08:00
b07b6f0c94 update 2024-05-19 02:35:03 +08:00
002639936e update 2024-05-19 01:32:31 +08:00
aac516c8f8 Update stats.js 2024-05-19 00:56:35 +08:00
efd07f6de2 网站统计 - 实时请求 可选择 2024-05-19 00:51:35 +08:00
fa17782573 Update index.py 2024-05-18 14:15:57 +08:00
9ee3aebc8c Update index.py 2024-05-18 14:02:17 +08:00
b778c8cdeb Update index.py 2024-05-18 13:57:34 +08:00
1d1e6b1d5b Update index.py 2024-05-18 12:49:46 +08:00
70012ea7ee Update index.py 2024-05-18 11:56:56 +08:00
0897fd9370 Update index.py 2024-05-18 11:51:51 +08:00
477b8b38fd Update index.py 2024-05-18 10:58:10 +08:00
e805910b1b Update index.py 2024-05-18 10:54:06 +08:00
2f9903753f Update index.py 2024-05-18 02:57:32 +08:00
53cd6377bb Update stats.js 2024-05-18 00:57:55 +08:00
56cf0271b8 Update index.py 2024-05-17 18:26:51 +08:00
4fefb0efb2 Update index.py 2024-05-17 18:26:18 +08:00
222b8bc4de Update index.py 2024-05-17 17:58:50 +08:00
dc0e6fe78a Update index.py 2024-05-17 17:57:14 +08:00
22a21025af Update index.py 2024-05-17 17:56:11 +08:00
7cd102c40f Update index.py 2024-05-17 17:55:47 +08:00
5cd7a65737 Update index.py 2024-05-17 17:48:40 +08:00
c370486845 Update mysql.js 2024-05-17 16:59:08 +08:00
cb9857edf2 update 2024-05-17 16:51:10 +08:00
8fb3410366 Update mysql.js 2024-05-17 16:26:55 +08:00
659ef259b7 Update index.py 2024-05-17 15:44:33 +08:00
9d89a92b78 Update mysql.js 2024-05-17 15:33:48 +08:00
139f353034 update 2024-05-17 14:09:57 +08:00
908b1cf684 Update backup.py 2024-05-17 14:05:25 +08:00
07dc74c283 update 2024-05-17 13:56:47 +08:00
61e136fb39 Update backup.py 2024-05-17 13:54:59 +08:00
030e05b2cf Update index.py 2024-05-17 13:52:19 +08:00
24750cfdb2 Update config_api.py 2024-05-17 13:35:26 +08:00
975a69fce8 Update layout.html 2024-05-17 13:35:13 +08:00
5f42f37ee2 Update mysql.sql 2024-05-17 05:24:48 +08:00
9925daa363 Update index.py 2024-05-17 05:08:45 +08:00
2572bde607 Update index.py 2024-05-17 05:05:06 +08:00
572207105c Update index.py 2024-05-17 05:04:18 +08:00
2b8804e960 同步问题 2024-05-17 05:01:39 +08:00
310409c52b Update mw.tpl 2024-05-17 04:06:01 +08:00
01e95fa6fb Update index.py 2024-05-17 03:36:27 +08:00
848021a639 Update index.py 2024-05-17 03:27:20 +08:00
a679c0e90c Update index.py 2024-05-17 03:26:37 +08:00
8d9eb6302c Update index.py 2024-05-17 03:20:29 +08:00
f6663ad370 Update index.py 2024-05-17 03:18:59 +08:00
9964745e46 Update index.py 2024-05-17 01:49:11 +08:00
b570a4552a Update index.py 2024-05-17 01:48:00 +08:00
cd2655a6f9 Update index.py 2024-05-17 01:47:40 +08:00
608b40a110 Update index.py 2024-05-17 01:46:17 +08:00
a65d42ed2e Update index.py 2024-05-17 01:43:57 +08:00
b0d8d4bef8 Update index.py 2024-05-17 01:43:19 +08:00
d9f657c236 Update index.py 2024-05-17 01:42:05 +08:00
de02bcd800 Update index.py 2024-05-17 01:39:46 +08:00
1f8dbe1a5f Update index.py 2024-05-17 01:37:54 +08:00
8f4949cf8d Update index.py 2024-05-17 01:35:43 +08:00
6128186a2c Update index.py 2024-05-17 01:26:35 +08:00
7f707f9aac Update index.py 2024-05-17 01:08:13 +08:00
56c1cd88ee Update config_api.py 2024-05-17 01:02:36 +08:00
5d0b8b1877 Update layout.html 2024-05-17 01:01:48 +08:00
e944c9fbc5 Update layout.html 2024-05-17 01:01:16 +08:00
8cab94e26c Update config_api.py 2024-05-17 00:45:56 +08:00
edb26fd11c update 2024-05-17 00:44:52 +08:00
cfd3a07046 Update mysql.js 2024-05-17 00:32:27 +08:00
8d4ffc431a Update index.py 2024-05-17 00:21:37 +08:00
22b97ab255 updatae 2024-05-17 00:21:06 +08:00
8cfc5c5344 Update stats.js 2024-05-16 21:09:10 +08:00
01c9633a1b Update index.py 2024-05-16 20:32:22 +08:00
160634d3d4 Update index.py 2024-05-16 20:09:21 +08:00
59b4ec32a6 Update index.py 2024-05-16 19:58:22 +08:00
08a2295cdc Update index.py 2024-05-16 19:57:51 +08:00
fb7dbd69e5 Update index.py 2024-05-16 19:43:55 +08:00
c212a30536 Update index.py 2024-05-16 19:42:04 +08:00
7a7acd3a4d Update index.py 2024-05-16 19:39:45 +08:00
f5edd83164 Update index.py 2024-05-16 19:04:38 +08:00
8ea3ac1a3c Update index.py 2024-05-16 19:04:21 +08:00
d241ceea3e Update index.py 2024-05-16 18:55:07 +08:00
6b3f50374a Update index.py 2024-05-16 18:32:59 +08:00
b3ceb03365 Update index.py 2024-05-16 18:25:20 +08:00
87b26a14df Update mysql.js 2024-05-16 18:25:02 +08:00
9046a09c0a Update mysql.js 2024-05-16 18:18:22 +08:00
8bbfdbbf66 Update index.py 2024-05-16 17:57:46 +08:00
fa2d5c690c Update index.py 2024-05-16 17:46:25 +08:00
681dfc96cb update 2024-05-16 16:33:19 +08:00
362f5eb427 Update index.py 2024-05-16 16:28:07 +08:00
b033bd1c73 Update index.py 2024-05-16 16:17:04 +08:00
ea94fa21d5 Update index.py 2024-05-16 16:14:51 +08:00
36c1541179 Update index.py 2024-05-16 16:13:05 +08:00
d5864db956 update 2024-05-15 23:56:52 +08:00
00008b657c Update index.py 2024-05-15 21:11:29 +08:00
3abed25d71 Update index.py 2024-05-15 20:52:58 +08:00
862ea95a77 Update index.py 2024-05-15 20:22:58 +08:00
63d624d084 Update index.py 2024-05-15 20:11:59 +08:00
c580076307 Update index.py 2024-05-15 20:01:59 +08:00
3fada81661 Update index.py 2024-05-15 20:00:36 +08:00
a3bd0c6bda Update index.py 2024-05-15 20:00:19 +08:00
454b036908 Update index.py 2024-05-15 20:00:01 +08:00
1af9b1ddaa Update index.py 2024-05-15 19:59:35 +08:00
5818fb46f1 Update mysql.js 2024-05-15 19:36:15 +08:00
1069fd5252 Update index.py 2024-05-15 19:33:53 +08:00
76229b6651 Update index.py 2024-05-15 19:31:30 +08:00
4c9e717559 Update index.py 2024-05-15 19:30:04 +08:00
9ae61517a4 Update index.py 2024-05-15 19:20:02 +08:00
952a173535 Update index.py 2024-05-15 19:11:28 +08:00
5b9b03a153 Update index.py 2024-05-15 19:09:01 +08:00
9475dbecfe Update index.py 2024-05-15 18:56:38 +08:00
5a64835969 Update index.py 2024-05-15 18:56:00 +08:00
8685f21ad9 Update index.py 2024-05-15 18:50:52 +08:00
500ccff90b update 2024-05-15 17:48:41 +08:00
85adb449c2 Update index.py 2024-05-15 17:38:49 +08:00
aa6748c09d Update index.py 2024-05-15 17:32:11 +08:00
05992b5f82 Update index.py 2024-05-15 17:31:49 +08:00
1a48e880d0 update 2024-05-15 17:29:02 +08:00
1da749aea9 Update index.py 2024-05-15 14:45:23 +08:00
bf121ee6f8 Update index.py 2024-05-15 14:41:19 +08:00
6b6e1f415f Update index.py 2024-05-15 14:40:33 +08:00
5535d56304 Update index.py 2024-05-15 14:30:56 +08:00
bbc0dee2b6 Update index.py 2024-05-15 14:28:23 +08:00
1da8f6bbb6 update 2024-05-15 14:21:43 +08:00
de15101a76 Update orm.py 2024-05-15 14:06:17 +08:00
ee99d14df3 Update index.py 2024-05-15 14:03:41 +08:00
7bff08b3e5 Update index.py 2024-05-15 14:02:10 +08:00
faca0b183e update 2024-05-15 13:59:59 +08:00
700b9a7c61 Update index.py 2024-05-15 13:53:30 +08:00
53952d267e Update index.py 2024-05-15 13:42:57 +08:00
ff52646fd2 Update index.py 2024-05-15 13:40:00 +08:00
1dcd4520f1 Update index.py 2024-05-15 13:37:23 +08:00
21d86f0583 Update index.py 2024-05-15 13:33:08 +08:00
3e95e3aaf2 Update index.py 2024-05-15 13:28:46 +08:00
29c7367906 Update index.py 2024-05-15 13:01:44 +08:00
fc1e23f12d Update index.py 2024-05-15 12:31:52 +08:00
ae4af02909 Update index.py 2024-05-15 12:27:54 +08:00
6b8716ae59 Update index.py 2024-05-15 12:07:57 +08:00
661faf8503 Update index.py 2024-05-15 11:57:58 +08:00
d0881ff3eb Update index.py 2024-05-15 06:04:24 +08:00
b708d4821a Update index.py 2024-05-15 05:59:39 +08:00
2f18bf5fb2 Update index.py 2024-05-15 05:50:25 +08:00
2079076638 Update index.py 2024-05-15 05:42:44 +08:00
6ec2e4f29f Update index.py 2024-05-15 05:41:51 +08:00
a07ed61305 Update index.py 2024-05-15 05:38:59 +08:00
8031ea2c45 Update index.py 2024-05-15 05:35:14 +08:00
24d3fc18d6 Update index.py 2024-05-15 05:05:29 +08:00
4b200765aa Update index.py 2024-05-15 05:02:01 +08:00
994ee32fbf Update index.py 2024-05-15 05:00:03 +08:00
c6a742a932 Update index.py 2024-05-15 04:57:51 +08:00
478e03bca1 Update index.py 2024-05-15 04:42:42 +08:00
f4cff7bcf7 Update index.py 2024-05-15 04:35:52 +08:00
ff7d2f358e Update index.py 2024-05-15 04:35:12 +08:00
e114b07d7d Update index.py 2024-05-15 04:30:04 +08:00
272b13b29c Update index.py 2024-05-15 04:24:13 +08:00
8d875fe589 Update index.py 2024-05-15 04:23:17 +08:00
e85e6a7299 update 2024-05-15 04:22:14 +08:00
e8a3f8b014 Update orm.py 2024-05-15 04:16:49 +08:00
585cd8b532 update_dev 2024-05-15 04:06:15 +08:00
c89ee89061 Update index.py 2024-05-15 01:20:42 +08:00
ea7310502f Update index.py 2024-05-15 01:19:02 +08:00
507b34797d Update backup.py 2024-05-15 01:18:56 +08:00
7baecfc4a0 Update README.md 2024-05-14 23:57:17 +08:00
8a1b64a524 Update index.py 2024-05-14 23:21:44 +08:00
89052225f9 Update index.py 2024-05-14 23:20:55 +08:00
b4c0030baa Update index.py 2024-05-14 23:20:26 +08:00
342dfe407c Create README.md 2024-05-14 22:36:37 +08:00
f9020d3c7f Update index.py 2024-05-14 22:24:08 +08:00
d9eb331f32 Update index.py 2024-05-14 22:23:24 +08:00
bc9b5ab511 Update install.sh 2024-05-14 21:48:55 +08:00
b71e3196b8 Update index.py 2024-05-14 21:38:07 +08:00
69b8c609aa Update index.py 2024-05-14 21:36:07 +08:00
b1ff41350c Update index.py 2024-05-14 21:02:24 +08:00
ddc9defe51 Update index.py 2024-05-14 20:59:46 +08:00
2942e47630 Update backup.py 2024-05-14 20:58:49 +08:00
b825ed9c76 Update index.py 2024-05-14 20:56:01 +08:00
5d2dd11163 Update index.py 2024-05-14 20:54:47 +08:00
253de5e70f Update index.py 2024-05-14 20:11:59 +08:00
a1e900f5c9 Update index.py 2024-05-14 19:25:18 +08:00
cf44889c74 Update index.py 2024-05-14 19:25:00 +08:00
abd48636ab Update index.py 2024-05-14 19:03:17 +08:00
cc0cdd62b8 Update index.py 2024-05-14 16:24:33 +08:00
0b95db3bd5 Update index.py 2024-05-14 16:13:06 +08:00
d473f0769f Update mongodb.js 2024-05-14 16:11:23 +08:00
dd498c2cfc update 2024-05-14 14:12:21 +08:00
77b4d0452a Update mongodb.sh 2024-05-13 23:18:00 +08:00
924e1ddbec Update layout.html 2024-05-13 22:35:10 +08:00
3213cee5f8 Update mongodb.sh 2024-05-13 20:50:45 +08:00
9fbf09f2ef Create tidb_debug.yaml 2024-05-13 10:41:00 +08:00
fd3e074cc3 Update install.sh 2024-05-13 03:18:02 +08:00
574007da2c Update stats.js 2024-05-13 02:47:13 +08:00
ec6c1b2024 Update nginx.conf 2024-05-12 16:09:36 +08:00
0dd6f47b2a Update index.py 2024-05-12 15:59:19 +08:00
968827480e Update install.sh 2024-05-12 14:42:07 +08:00
4bce8bb56d Update index.py 2024-05-12 14:35:53 +08:00
00fa001c91 update 2024-05-12 14:27:36 +08:00
2f65839b9a Update index.py 2024-05-12 14:17:49 +08:00
c0aa4bcc1e Update mongodb.js 2024-05-12 14:10:52 +08:00
4bb345abc4 update 2024-05-12 14:06:56 +08:00
3d552379bc update 2024-05-12 12:55:14 +08:00
2de399b70f Update index.py 2024-05-12 12:46:41 +08:00
7952570b45 update 2024-05-12 10:58:12 +08:00
00269662bf Create tidb.yaml 2024-05-12 01:25:10 +08:00
fb6dbde4c9 Update config_api.py 2024-05-12 01:18:49 +08:00
66a9ca2a5a Update files.js 2024-05-12 01:18:32 +08:00
2e9561dd86 Update files_api.py 2024-05-12 01:10:04 +08:00
47ff1e4458 Update r3.7.txt 2024-05-12 00:28:20 +08:00
9f49595bad Update r3.6.txt 2024-05-12 00:28:08 +08:00
3e6f4f32d5 Update install.sh 2024-05-11 23:42:26 +08:00
ae69d58ee8 Update install.sh 2024-05-11 23:40:45 +08:00
1788054cc4 Update install.sh 2024-05-11 22:14:51 +08:00
20b20d3cce Update index.py 2024-05-11 22:13:53 +08:00
3fc3d90b6f Update install.sh 2024-05-11 22:09:57 +08:00
cef6db80a2 Update install.sh 2024-05-11 22:08:06 +08:00
59aab80eab Update install.sh 2024-05-11 22:03:56 +08:00
53c2c71d3e Update install.sh 2024-05-11 21:56:24 +08:00
d9d814202a Update install.sh 2024-05-11 21:51:40 +08:00
941dbecfa2 Update index.py 2024-05-11 21:48:05 +08:00
cb7228c681 Update index.py 2024-05-11 21:47:55 +08:00
7ac1cb2944 Update index.py 2024-05-11 21:47:46 +08:00
0262d29218 Update install.sh 2024-05-11 21:46:48 +08:00
5a955c2a33 tidb插件init 2024-05-11 20:21:07 +08:00
Mr Chen
dd25ebe1e9 Merge pull request #574 from midoks/dev
修复
2024-05-11 13:54:29 +08:00
e92151c9c5 Update site_api.py 2024-05-11 13:52:52 +08:00
16cc3eab40 Update site_api.py 2024-05-11 13:52:39 +08:00
Mr Chen
87138fc41f Merge pull request #573 from midoks/dev
迁移加入版本判断
2024-05-11 12:38:52 +08:00
0787bff959 Update index.py 2024-05-11 12:36:57 +08:00
Mr Chen
8fc6855936 Merge pull request #572 from midoks/dev
mysql 不锁表导出
2024-05-11 12:13:27 +08:00
43f21b4d58 Update backup.py 2024-05-11 12:06:59 +08:00
56e75bc4cf Update backup.py 2024-05-11 11:59:38 +08:00
10190201c7 Update backup.py 2024-05-11 11:46:49 +08:00
Mr Chen
3db2aa0034 Merge pull request #571 from midoks/dev
Update site_api.py
2024-05-11 11:08:09 +08:00
9fa93b5c84 Update site_api.py 2024-05-11 11:07:23 +08:00
Mr Chen
fe3e9eec35 Merge pull request #570 from midoks/dev
调优
2024-05-10 17:40:28 +08:00
86a3922d4f Update index.html 2024-05-10 17:38:48 +08:00
aa50658245 update 2024-05-10 17:36:06 +08:00
8cd78d7dea Update index.js 2024-05-10 17:25:19 +08:00
Mr Chen
f33bfa214f Merge pull request #569 from midoks/dev
Update README.md
2024-05-10 16:26:26 +08:00
e231c38f1d Update README.md 2024-05-10 16:25:20 +08:00
Mr Chen
a6a3cf7882 Merge pull request #568 from midoks/dev
0.16.8
2024-05-10 15:34:21 +08:00
a1afe5e846 0.16.8
- 首页对网络/磁盘IO进行更细致的展示。
2024-05-10 15:30:49 +08:00
594e8c4b2b update 2024-05-10 14:36:38 +08:00
cc015bad61 update 2024-05-10 14:35:51 +08:00
bc9461dea6 update 2024-05-10 13:32:46 +08:00
0a25598c15 Update config_api.py 2024-05-10 12:14:05 +08:00
7a9a8a08b6 Update index.js 2024-05-10 12:13:51 +08:00
8eb728defa index加入io统计展示 2024-05-10 12:04:21 +08:00
7f8ffbf178 Update site.css 2024-05-10 04:36:43 +08:00
cb0027e903 Update system_api.py 2024-05-10 04:23:48 +08:00
e0ebdd922d Update site.css 2024-05-10 02:16:49 +08:00
d6f43a86c9 Update system_api.py 2024-05-10 02:16:39 +08:00
dfe7becdb1 Update system_api.py 2024-05-09 23:43:16 +08:00
57f4162cb8 Update mongodb.js 2024-05-09 01:08:14 +08:00
a9ce4f2e23 Update mongodb.js 2024-05-09 01:05:03 +08:00
b501d62d91 Update mongodb.js 2024-05-09 01:03:41 +08:00
Mr Chen
45ffba1559 Merge pull request #567 from midoks/dev
mysql手动导入大文件sql
2024-05-08 17:02:59 +08:00
28d0fbe106 手动导入大文件sql 2024-05-08 17:01:58 +08:00
Mr Chen
eeb8fee3b3 Merge pull request #566 from midoks/dev
日志清理-改成每隔7天
2024-05-08 12:59:59 +08:00
0e1fbdcfb9 update 2024-05-08 12:58:55 +08:00
Mr Chen
df2744816b Merge pull request #565 from midoks/dev
php更新和安装脚本加入pv命令
2024-05-08 12:34:20 +08:00
862c09778a Update euler.sh 2024-05-08 12:32:52 +08:00
8f9a1888ff update 2024-05-08 12:32:37 +08:00
66351dc3a7 update 2024-05-08 12:28:50 +08:00
Mr Chen
55c4709c93 Merge pull request #564 from midoks/dev
日志清理优化
2024-05-08 01:33:02 +08:00
e27ae42270 Update index.py 2024-05-08 01:27:23 +08:00
70805de98e Update index.py 2024-05-08 01:26:43 +08:00
c0e09e43a2 Update index.py 2024-05-08 01:25:58 +08:00
b69a32c81f Update index.py 2024-05-08 01:20:29 +08:00
2431833cce Update index.py 2024-05-08 01:19:53 +08:00
a85d8ec429 Update index.html 2024-05-08 01:15:59 +08:00
ce5a6edeea Update tool_task.py 2024-05-08 01:13:34 +08:00
aa195dea2c Update tool_task.py 2024-05-08 00:52:51 +08:00
840a3c5911 Update layout.html 2024-05-08 00:27:09 +08:00
ca87ab78b3 Update layout.html 2024-05-08 00:11:04 +08:00
d9fc411168 Update layout.html 2024-05-08 00:00:37 +08:00
Mr Chen
e468ab16eb Merge pull request #563 from midoks/dev
细节优化
2024-05-07 20:26:43 +08:00
c545062d07 Update index.py 2024-05-07 20:24:05 +08:00
Mr Chen
e620fd67e3 Merge pull request #562 from midoks/dev
mongodb删除保护
2024-05-07 20:18:53 +08:00
aa9a412e9a mongodb删除保护 2024-05-07 20:18:23 +08:00
Mr Chen
ad63a22a7e Merge pull request #561 from midoks/dev
0.16.7
2024-05-07 20:08:54 +08:00
5b1e4d3e0a 0.16.7
- mongodb副本设置/备份/认证。
2024-05-07 20:08:11 +08:00
110e9b501e 优化 2024-05-07 01:27:09 +08:00
26de973b82 Update mongodb.js 2024-05-07 01:02:15 +08:00
9adc0a8c38 Update index.py 2024-05-06 17:51:26 +08:00
08f75685fb Update index.py 2024-05-06 17:17:58 +08:00
dc59f24ce2 Update index.py 2024-05-06 17:17:36 +08:00
869843da82 Update index.py 2024-05-06 17:17:08 +08:00
01055e3403 Update mongodb.sql 2024-05-06 17:07:08 +08:00
43cfbc90a2 Update index.py 2024-05-06 17:02:37 +08:00
270fb15ebf Update index.py 2024-05-06 17:01:05 +08:00
4e7e4f5fb4 Update index.py 2024-05-06 16:57:47 +08:00
67530acf1d Update index.py 2024-05-06 16:42:10 +08:00
7a86ba4444 Update index.py 2024-05-06 15:20:56 +08:00
f4f29784d7 Update index.py 2024-05-06 15:20:34 +08:00
fafa64f2c7 Update index.py 2024-05-06 02:28:01 +08:00
41c7b0fb70 Update index.py 2024-05-06 02:13:59 +08:00
a779caea41 Update index.py 2024-05-06 02:11:37 +08:00
a8b97bf6d7 Update index.py 2024-05-06 01:33:14 +08:00
b31bfcb88a Update index.py 2024-05-06 01:24:55 +08:00
dbb95228b1 Update backup.py 2024-05-06 01:24:16 +08:00
5ad4772c33 Update index.py 2024-05-06 01:14:07 +08:00
b270c1bfdc Update mongodb.js 2024-05-06 01:10:39 +08:00
c8ccf4b1c8 Update backup.py 2024-05-06 00:51:28 +08:00
6eb21ffbf9 Update backup.py 2024-05-06 00:51:17 +08:00
58ce8db1d0 update 2024-05-06 00:49:48 +08:00
8b1bf28cf7 Update backup.py 2024-05-06 00:44:20 +08:00
0e98e114fa Update index.py 2024-05-06 00:16:51 +08:00
4c93cd77e0 Update index.py 2024-05-06 00:13:10 +08:00
7044d27ca9 Update info.json 2024-05-05 23:46:52 +08:00
9168af0a9c Update index.py 2024-05-05 23:36:34 +08:00
f893eec0e4 Update index.py 2024-05-05 20:27:58 +08:00
574c7558b4 Update mongodb.js 2024-05-05 20:08:37 +08:00
4901910a71 update 2024-05-05 20:07:36 +08:00
286be2a9f6 Update index.py 2024-05-05 20:03:18 +08:00
fed18880be Update index.py 2024-05-05 19:54:18 +08:00
b862cd2413 Update index.py 2024-05-05 19:53:34 +08:00
8c652c99da Update index.py 2024-05-05 19:50:42 +08:00
728677c702 update 2024-05-05 19:46:45 +08:00
4a023531e4 Update index.py 2024-05-05 18:21:50 +08:00
8d27ffbe91 update 2024-05-05 18:03:40 +08:00
afa32231ad mongodb备份 2024-05-05 17:49:29 +08:00
e693d15a04 Update mongodb.js 2024-05-05 14:50:21 +08:00
814d0cb925 update 2024-05-05 14:44:37 +08:00
6d95f7fd82 update 2024-05-05 14:43:41 +08:00
979c1fc530 Update index.py 2024-05-05 14:40:50 +08:00
c147ccd079 update 2024-05-05 14:25:47 +08:00
71b64b19a1 Update index.py 2024-05-05 13:51:59 +08:00
fdac352244 update 2024-05-05 13:45:50 +08:00
da5de004c4 Update backup.py 2024-05-05 12:34:29 +08:00
8108ca7ee6 Update backup.py 2024-05-05 12:12:23 +08:00
ba2fbbeb41 Update mongodb.conf 2024-05-05 11:01:50 +08:00
614e7af3c4 Update debian.sh 2024-05-04 22:26:14 +08:00
ec67913cda update 2024-05-04 22:26:09 +08:00
847353374f update 2024-05-04 21:44:32 +08:00
239d1de0ec Create backup.py 2024-05-04 18:05:55 +08:00
5fefbb46a7 Update index.py 2024-05-04 18:00:10 +08:00
4288ccfc0c Update index.py 2024-05-04 17:28:18 +08:00
367aeddd2d Update index.py 2024-05-04 16:24:57 +08:00
76ec5b58cd up 2024-05-04 16:14:27 +08:00
f0cc9e2d54 update 2024-05-04 16:02:44 +08:00
b3630699ce Update mongodb.js 2024-05-04 15:49:33 +08:00
dfe9a10a47 Update mongodb.js 2024-05-04 15:45:46 +08:00
c34405a4d6 Update index.py 2024-05-04 15:37:18 +08:00
3068e3b033 Update index.py 2024-05-04 15:28:09 +08:00
10db173b31 Update index.py 2024-05-04 15:26:18 +08:00
3db40877cd Update index.py 2024-05-04 15:24:44 +08:00
adc7f2fe98 Update index.py 2024-05-04 15:24:27 +08:00
6dc81175ea Update mongodb.js 2024-05-04 15:22:13 +08:00
c64183abe9 Update index.py 2024-05-04 14:44:27 +08:00
8eb2403e4b update 2024-05-04 14:34:38 +08:00
4c2178ea9c Update index.py 2024-05-03 19:26:25 +08:00
6702fb94a0 update 2024-05-03 19:01:34 +08:00
c4bc66e410 update 2024-05-03 18:30:50 +08:00
54a6a121ac Update index.py 2024-05-03 16:25:47 +08:00
1bb92d7f38 Update install.sh 2024-05-03 16:19:30 +08:00
9a99a5e1c6 Update index.py 2024-05-03 16:16:16 +08:00
eeeff6e825 update 2024-05-03 16:07:55 +08:00
8ee5b0a4aa update 2024-05-03 16:00:09 +08:00
4ee5e41882 update 2024-05-03 12:05:02 +08:00
8c4820046a Update index.py 2024-05-03 00:48:08 +08:00
1b6f54e6a5 update 2024-05-03 00:45:28 +08:00
9ae7644710 updatte 2024-05-02 19:58:58 +08:00
0ab87b1da5 update 2024-05-02 19:15:13 +08:00
6b7457e660 Update mongodb.js 2024-05-02 15:53:28 +08:00
b81deee461 up 2024-05-02 15:52:10 +08:00
59211703f8 Update index.py 2024-05-01 23:55:28 +08:00
3271e76d34 Update index.py 2024-05-01 23:50:45 +08:00
dca0955bb6 update 2024-05-01 23:48:40 +08:00
7af78883cc Update index.html 2024-05-01 20:35:23 +08:00
0f2db3f144 Update mongodb.js 2024-05-01 20:34:09 +08:00
eb2c476b28 update 2024-05-01 20:33:36 +08:00
99a57d29af Update php.js 2024-05-01 17:54:17 +08:00
ed0afb6b86 Update requirements.txt 2024-05-01 11:22:59 +08:00
2f005cbadd update 2024-05-01 03:36:34 +08:00
7bac4e0a6b Update setting.py 2024-05-01 03:13:28 +08:00
2dad4189c8 up 2024-04-30 17:18:30 +08:00
5c1fe49e1b update 2024-04-30 17:18:17 +08:00
9a5cd7e834 Update mongodb.conf 2024-04-30 14:49:37 +08:00
78a032a18b upda 2024-04-30 11:15:00 +08:00
b99a9d7d2f Update nosql_mongodb.py 2024-04-29 23:40:01 +08:00
36c9628695 Update nosql_mongodb.py 2024-04-29 23:38:59 +08:00
ccd7468ffe Update nosql_mongodb.py 2024-04-29 23:37:41 +08:00
129b244ea9 Update nosql_mongodb.py 2024-04-29 23:36:17 +08:00
716e39f947 Update index.py 2024-04-29 23:32:41 +08:00
a0167e7cf2 Update nosql_mongodb.py 2024-04-29 23:26:55 +08:00
2c6dea64ab Update index.py 2024-04-29 22:49:07 +08:00
9605676dbe update 2024-04-29 22:40:15 +08:00
a4e7be46fb Update debian.sh 2024-04-29 22:38:06 +08:00
e2ce520041 Update debian.sh 2024-04-29 22:34:34 +08:00
d1fc41682e Update debian.sh 2024-04-29 22:33:11 +08:00
56918a1ba2 Update debian.sh 2024-04-29 22:32:42 +08:00
869788028c Update debian.sh 2024-04-29 22:32:01 +08:00
a262c6c0b7 update 2024-04-29 22:24:59 +08:00
54682ef02c Update index.py 2024-04-29 21:47:53 +08:00
093bf3910b Update index.py 2024-04-29 21:22:31 +08:00
0b65f50b4b Update index.py 2024-04-29 21:21:35 +08:00
a1995772ef Update index.py 2024-04-29 21:20:34 +08:00
fcef433ba3 Update index.py 2024-04-29 21:20:14 +08:00
6950f0c7c9 Update index.py 2024-04-29 21:18:04 +08:00
e987c4d27e up 2024-04-29 19:45:58 +08:00
25c72b299e update 2024-04-29 18:35:19 +08:00
Mr Chen
8f4f182064 Merge pull request #559 from midoks/dev
文件名排序
2024-04-29 16:05:44 +08:00
2cd37b988f update 2024-04-29 16:04:49 +08:00
040ef6e22b Update index.py 2024-04-29 15:22:12 +08:00
5dfd0508da Update index.py 2024-04-29 15:19:37 +08:00
b0b043f432 Update index.py 2024-04-29 14:59:37 +08:00
cfe063a6e7 Update index.py 2024-04-29 14:59:00 +08:00
Mr Chen
22a5e147d2 Merge pull request #558 from midoks/dev
mysql8.3配置
2024-04-28 13:37:06 +08:00
648e4b3866 Update index.py 2024-04-28 13:34:26 +08:00
ffb5a66042 Create my8.3.cnf 2024-04-28 12:37:43 +08:00
e1593b67fc Update install.sh 2024-04-27 13:18:52 +08:00
871d7ef535 Update info.json 2024-04-27 13:17:59 +08:00
ac32c639fa update 2024-04-27 13:16:46 +08:00
Mr Chen
997c8194b6 Merge pull request #557 from midoks/dev
网站统计优化
2024-04-26 20:17:18 +08:00
7334ec38fb update 2024-04-26 20:00:54 +08:00
cafc7989e9 Update requirements.txt 2024-04-26 15:26:50 +08:00
2354d484ee Update __init__.py 2024-04-26 15:23:49 +08:00
f7ebdcb182 Update __init__.py 2024-04-26 15:09:53 +08:00
8305dc0ebe update 2024-04-26 15:09:37 +08:00
5923042bf1 update 2024-04-26 15:07:50 +08:00
00b162771f Update webstats_index.py 2024-04-26 15:03:43 +08:00
4b9ab17fcb Update webstats_index.py 2024-04-26 15:01:03 +08:00
946bd36e66 Update webstats_index.py 2024-04-26 14:50:10 +08:00
Mr Chen
42f4e419cd Merge pull request #556 from midoks/dev
网站统计优化
2024-04-26 13:48:48 +08:00
f7c8b8cdb5 Update swoole.sh 2024-04-26 13:43:12 +08:00
fdf8f30d90 Update stats.js 2024-04-26 13:34:37 +08:00
0f1127e502 Update stats.js 2024-04-26 13:29:34 +08:00
12c59f6ac6 统计查询优化 2024-04-26 13:15:08 +08:00
1f3414f5bc Update phplib.conf 2024-04-25 21:48:47 +08:00
Mr Chen
94a6a3f64d Merge pull request #555 from midoks/dev
切换获取ip的地址
2024-04-25 19:32:18 +08:00
812a520c43 Merge branch 'master' into dev 2024-04-25 19:27:38 +08:00
a48429f9f8 Update tools.py 2024-04-25 19:19:57 +08:00
Mr Chen
9aa4bdfd19 Merge pull request #554 from midoks/dev
debian/ubuntu 443/udp ufw防火墙默认开启。
2024-04-24 22:55:48 +08:00
7c3cde83df Merge branch 'master' into dev 2024-04-24 22:53:51 +08:00
Mr Chen
af00b1b127 Merge pull request #553 from jd82k/master
修复提交正则过滤时,因为正则中存在冒号,错误的将所有的冒号用于分割,应该只使用第一个冒号分割
2024-04-24 22:52:52 +08:00
jd82k
8a0e8e9c17 增加了一些非法扫描器及脚本
通过1年的日志分析,收集了一些非法扫描器、脚本、爬虫的UA
2024-04-24 22:42:05 +08:00
982ee4f60f Merge branch 'master' into dev 2024-04-24 22:40:48 +08:00
jd82k
c735dab40d 修复提交正则过滤时,因为正则中存在冒号,错误的将所有的冒号用于分割,应该只使用第一个冒号分割 2024-04-24 22:23:37 +08:00
Mr Chen
32b8cdf9bc Merge pull request #552 from jd82k/master
修复笔误
2024-04-24 16:56:19 +08:00
jd82k
fd7fa885ca 修复笔误 2024-04-24 16:50:05 +08:00
f4642d3b69 Merge branch 'master' into dev 2024-04-24 16:07:38 +08:00
Mr Chen
f54be91744 Merge pull request #551 from jd82k/master
修复数据类型错误导致的openresty lua error 从而使得useragent匹配失效的bug
2024-04-24 16:06:40 +08:00
jd82k
4ecbfb3e58 修复数据类型错误导致的openresty lua error 从而使得useragent匹配失效的bug 2024-04-24 14:52:07 +08:00
309cf2825e update 2024-04-24 11:32:41 +08:00
ecbc0f6afe Update plugins_api.py 2024-04-21 17:49:38 +08:00
c402a1dc79 update 2024-04-20 13:25:02 +08:00
Mr Chen
c949e8d0f2 Merge pull request #549 from midoks/dev
centos7的python库安装优化
2024-04-18 11:08:50 +08:00
195446ef86 update 2024-04-18 11:05:40 +08:00
e6a1fe58bc Update requirements.txt 2024-04-18 11:03:32 +08:00
3a9b1b374d Update site_api.py 2024-04-18 00:04:14 +08:00
Mr Chen
8bb0e744bb Merge pull request #548 from midoks/dev
常规更新
2024-04-17 23:44:25 +08:00
1182894326 Update nginx.conf 2024-04-17 23:43:46 +08:00
77b03f4a21 Update site_api.py 2024-04-17 23:41:38 +08:00
72bc30e188 Update install.sh 2024-04-17 23:25:32 +08:00
Mr Chen
35c789fc00 Merge pull request #547 from midoks/dev
部分php扩展更新
2024-04-17 18:58:35 +08:00
738bf5d441 Update gd_old.sh 2024-04-17 18:55:26 +08:00
22a62e6cb8 Update gd_old.sh 2024-04-17 18:53:57 +08:00
a63a1b8b51 Update xdebug.sh 2024-04-17 18:47:30 +08:00
c51f885653 Update gd_old.sh 2024-04-17 18:44:46 +08:00
266a23b7eb Update swoole.sh 2024-04-17 18:39:38 +08:00
48603b14da Update phplib.conf 2024-04-17 18:37:19 +08:00
7e7e19455e Update event.sh 2024-04-17 18:37:09 +08:00
7657ccb94e Update event.sh 2024-04-17 18:31:40 +08:00
Mr Chen
80ade55b69 Merge pull request #546 from midoks/dev
reuseport
2024-04-17 18:28:00 +08:00
a643c9b5f4 Update site_api.py 2024-04-17 18:25:53 +08:00
15dc4ae7cf Update site_api.py 2024-04-17 17:56:43 +08:00
Mr Chen
030734cc93 Merge pull request #545 from midoks/dev
http/3调整
2024-04-17 17:54:09 +08:00
1439d4edf6 Update site_api.py 2024-04-17 17:52:22 +08:00
d6a816b06e Update site_api.py 2024-04-17 17:40:00 +08:00
b6e1f46379 Update site_api.py 2024-04-17 17:38:08 +08:00
d926a69b59 Update site_api.py 2024-04-17 17:35:48 +08:00
0504ca3887 Update site_api.py 2024-04-17 16:58:08 +08:00
3f36019c2e Create altsvc.cache 2024-04-17 16:44:51 +08:00
b64e3b772f Update all_test.sh 2024-04-17 13:07:21 +08:00
ff29679b42 update 2024-04-17 12:34:07 +08:00
5aca1ef708 Update r3.6.txt 2024-04-17 11:29:03 +08:00
95a84c7ac5 Update r3.7.txt 2024-04-17 11:27:22 +08:00
28c2335223 Update r3.7.txt 2024-04-17 11:25:18 +08:00
8ea87a47ea Update r3.6.txt 2024-04-17 11:25:05 +08:00
57058f5ab0 Update requirements.txt 2024-04-17 11:18:10 +08:00
Mr Chen
b31d30bb31 Merge pull request #542 from midoks/dev
0.16.6
2024-04-17 01:52:02 +08:00
0670b7f338 Update README.md 2024-04-17 01:49:06 +08:00
c25ecc9db2 Update config_api.py 2024-04-17 01:41:21 +08:00
d0d75f4526 Update site_api.py 2024-04-17 01:37:50 +08:00
539857919a Update site_api.py 2024-04-17 01:20:34 +08:00
5139cacce8 Update install.sh 2024-04-17 00:59:06 +08:00
222c4c6d58 Update site_api.py 2024-04-17 00:53:33 +08:00
c2d6f5408d Update site_api.py 2024-04-17 00:50:06 +08:00
d3a5b9874b Update site_api.py 2024-04-17 00:43:23 +08:00
87da2b9fc5 443同时开启tcp/udp 2024-04-16 23:41:06 +08:00
a3a40c830b Update install.sh 2024-04-16 23:11:17 +08:00
d30ff5b882 Update install.sh 2024-04-16 23:10:30 +08:00
8a0e4122f3 Update install.sh 2024-04-16 23:00:42 +08:00
0766ad0063 update 2024-04-16 22:58:18 +08:00
04823f656a Update site_api.py 2024-04-16 22:19:05 +08:00
5d50b3664d Update install.sh 2024-04-16 21:43:16 +08:00
889c5d96e5 Update bcmath.sh 2024-04-16 21:25:29 +08:00
c6ac7e90df Revert "Update requirements.txt"
This reverts commit 28fe1950c4.
2024-04-16 19:38:51 +08:00
28fe1950c4 Update requirements.txt 2024-04-16 19:38:25 +08:00
Mr Chen
4a9baeb924 Merge pull request #541 from midoks/dev
修复
2024-04-16 15:59:38 +08:00
3e6a2e148c Update files.js 2024-04-16 15:58:46 +08:00
79ec3b2ec0 Update push_notice_msg.py 2024-04-16 14:47:57 +08:00
4b7b8aa801 Update args.json 2024-04-15 22:38:53 +08:00
66ea1b7f5b Update cookie.json 2024-04-15 22:37:53 +08:00
a9b703c6ee Update post.json 2024-04-15 22:36:45 +08:00
00b57bc1c0 Update user_agent.json 2024-04-15 22:34:50 +08:00
47cfe6ee04 Update user_agent.json 2024-04-15 22:34:10 +08:00
2b9c47b79c Update user_agent.json 2024-04-15 22:33:52 +08:00
Mr Chen
540fb5a11f Merge pull request #539 from midoks/dev
0.16.5
2024-04-15 17:02:43 +08:00
5dca6bfb80 update 2024-04-15 17:01:23 +08:00
8439fcbe98 Update config_api.py 2024-04-15 16:58:13 +08:00
6cee6f4785 Update info.json 2024-04-15 16:48:20 +08:00
6a067ad457 Update README.md 2024-04-15 14:23:42 +08:00
691aba1f2a Update config_api.py 2024-04-15 14:12:45 +08:00
6446a7053e https://github.com/midoks/mdserver-web/discussions/536 2024-04-15 14:11:45 +08:00
040c66cdc3 Update site.css 2024-04-15 02:01:57 +08:00
c8d02eaa85 Update files.html 2024-04-15 02:01:52 +08:00
59bbd99ba4 Update cert_api.py 2024-04-15 00:42:38 +08:00
c8d86fa835 Update cert_api.py 2024-04-15 00:27:46 +08:00
e629a82ed9 Update cert_api.py 2024-04-15 00:21:58 +08:00
fb0a771c81 Update cert_request.py 2024-04-15 00:11:02 +08:00
891cd56163 Update config.json 2024-04-13 11:56:49 +08:00
0714780938 Update zip.sh 2024-04-12 21:36:52 +08:00
0a11f17d90 Update phplib.conf 2024-04-12 21:34:44 +08:00
e22722f40e Update cert_api.py 2024-04-10 22:07:09 +08:00
519544715f Update README.md 2024-04-09 16:00:09 +08:00
Mr Chen
6d34061402 Merge pull request #535 from midoks/dev
优化
2024-04-05 02:31:50 +08:00
119928d9df 优化
* 任务日志查看优化。
* 优化MySQL打开phpMyAdmin速度。
2024-04-05 02:31:05 +08:00
022dfe31d4 update 2024-04-05 02:28:03 +08:00
c2011eedf9 Update mysql.js 2024-04-05 02:23:01 +08:00
b77d549b34 Update mysql.js 2024-04-05 02:19:24 +08:00
0b3bcafec7 update 2024-04-05 02:18:02 +08:00
4e12548978 Update mysql.js 2024-04-05 02:08:00 +08:00
bf7de761c8 update 2024-04-05 02:06:19 +08:00
bfc96e925f Update mysql.js 2024-04-05 01:57:06 +08:00
de1da98e92 Update index.py 2024-04-05 01:55:35 +08:00
d4edc449a2 Update index.py 2024-04-05 01:53:41 +08:00
a03d4e7dda Update index.py 2024-04-05 01:50:27 +08:00
4351367e32 update 2024-04-05 01:49:34 +08:00
0ec628f5e2 update 2024-04-05 01:28:47 +08:00
a94ef37b49 Update config_api.py 2024-04-05 01:17:19 +08:00
cf8729a6ac Update crontab.js 2024-04-05 01:16:49 +08:00
3688456ea0 Update install.sh 2024-04-04 18:14:42 +08:00
47c64e7212 Update site_api.py 2024-04-04 17:59:35 +08:00
e653f76608 Update info.json 2024-04-04 17:48:41 +08:00
d40d0001bf Update install.sh 2024-04-04 12:45:27 +08:00
793a236641 Update install.sh 2024-04-04 12:42:11 +08:00
Mr Chen
07996a3fe5 Merge pull request #533 from midoks/dev
Update README.md
2024-04-04 12:35:37 +08:00
a826f784fc Update README.md 2024-04-04 12:35:16 +08:00
Mr Chen
1561768524 Merge pull request #532 from midoks/dev
Update README.md
2024-04-04 12:34:32 +08:00
1d899fe330 Update README.md 2024-04-04 12:34:09 +08:00
Mr Chen
a1b3e70816 Merge pull request #531 from midoks/dev
0.16.4
2024-04-04 12:32:06 +08:00
6f4479558f Update README.md 2024-04-04 12:31:17 +08:00
f817792aeb Update config_api.py 2024-04-04 12:29:34 +08:00
c8c0e44143 Update op_waf.js 2024-04-04 12:26:29 +08:00
6668c2e14b update 2024-04-04 11:42:19 +08:00
721f041c65 Update README.md 2024-04-04 00:20:05 +08:00
Mr Chen
87239f5361 Merge pull request #530 from midoks/dev
更新为支付宝
2024-04-04 00:18:55 +08:00
b48e3cbfcc update 2024-04-04 00:17:58 +08:00
4b41c6df57 update 2024-04-02 00:17:20 +08:00
b491a6e913 Update README.md 2024-03-29 15:38:01 +08:00
Mr Chen
42271c5562 Merge pull request #529 from midoks/dev
discord
2024-03-29 15:30:24 +08:00
ef63465aea Update README.md 2024-03-29 15:28:40 +08:00
Mr Chen
98745e8134 Merge pull request #528 from midoks/dev
简单优化+ whatapp
2024-03-29 11:21:41 +08:00
2fb293c89c Update README.md 2024-03-29 11:20:59 +08:00
4e0db8d0a1 Update commit.tpl.ssh 2024-03-27 21:11:53 +08:00
4b1e40b42d Update index.html 2024-03-26 17:47:26 +08:00
935bee90f7 Update index.html 2024-03-26 17:42:25 +08:00
0489a9df2c Update config_api.py 2024-03-19 23:29:27 +08:00
20a4154240 update 2024-03-19 23:27:17 +08:00
a8ced31d32 Update mw.py 2024-03-19 23:24:40 +08:00
ac97b8f7ec Update tools.py 2024-03-19 23:21:19 +08:00
a797cd3741 Update push_notice_msg.py 2024-03-18 15:42:27 +08:00
Mr Chen
a616736bf1 Merge pull request #526 from midoks/dev
AD及 二次验证
2024-03-18 15:26:22 +08:00
8a90f5cb90 ad 2024-03-18 15:25:30 +08:00
419d4abe8e Update login.html 2024-03-10 19:21:18 +08:00
ba555fba63 Update __init__.py 2024-03-10 19:16:05 +08:00
7ead8708bc Update __init__.py 2024-03-10 19:15:42 +08:00
bd5b066afe Update __init__.py 2024-03-10 19:10:57 +08:00
6d08c160e0 Update __init__.py 2024-03-10 19:10:27 +08:00
f24f8a3a16 Update config_api.py 2024-03-10 18:35:05 +08:00
707b0d4b53 Update tools.py 2024-03-10 18:34:26 +08:00
d19e9cd8f4 二次验证,加强安全登录 2024-03-10 18:27:39 +08:00
a2d0cc6cfe Update requirements.txt 2024-03-10 14:43:53 +08:00
356fd831fb Update requirements.txt 2024-03-10 14:33:09 +08:00
ec4988e732 update 2024-02-19 18:41:32 +08:00
3a694b8d7d ad
# 海外服务器 高防CDN 解决移动屏蔽 | 19/m | next,2/19 | @YYCDNFW
2024-02-19 18:35:37 +08:00
Mr Chen
d5945fd449 Merge pull request #524 from midoks/dev
更换GitHub Proxy
2024-02-08 16:47:46 +08:00
10186786d9 更换GitHub Proxy
更换GitHub Proxy
2024-02-08 16:46:43 +08:00
Mr Chen
0eb8791e84 Merge pull request #523 from midoks/dev
Update sql_mysql.py
2024-02-07 01:57:51 +08:00
5234b55798 Update sql_mysql.py 2024-02-07 01:54:30 +08:00
Mr Chen
4efe740504 Merge pull request #522 from midoks/dev
0.16.3
2024-02-06 22:53:11 +08:00
bde0ed59ad Update README.md 2024-02-06 22:52:15 +08:00
19c855790f Update config_api.py 2024-02-06 22:51:47 +08:00
4a90f1b8b0 Update app.js 2024-02-06 22:45:25 +08:00
f83bdffed8 update 2024-02-06 22:44:52 +08:00
087cb4fc37 Update app.js 2024-02-06 22:16:09 +08:00
66bcd15502 update 2024-02-06 22:14:17 +08:00
29e3dedbe9 update 2024-02-06 22:11:02 +08:00
f10160c239 update 2024-02-06 22:06:26 +08:00
376d09a955 up 2024-02-06 21:31:20 +08:00
9076a3a11a Update app.js 2024-02-06 21:27:05 +08:00
57719990d5 Update app.js 2024-02-06 21:20:07 +08:00
7073d66662 Update app.js 2024-02-06 21:18:33 +08:00
1983d02107 up 2024-02-06 21:17:24 +08:00
b4acb2942f update 2024-02-06 19:49:15 +08:00
c94a662235 Update index.html 2024-02-06 18:25:47 +08:00
1d61026dd3 Update index.html 2024-02-06 18:25:28 +08:00
48a55e279e Update nosql_mongodb.py 2024-02-06 18:06:45 +08:00
55e9313711 update 2024-02-06 18:00:20 +08:00
5ab59c3b75 update 2024-02-06 04:34:41 +08:00
9c045b8e85 update 2024-02-06 04:10:13 +08:00
65e87fec1a up 2024-02-06 03:52:36 +08:00
dc8f508ac5 update 2024-02-06 03:14:20 +08:00
ce0c2fb9ea Update index.py 2024-02-05 00:22:00 +08:00
d7e70aa701 Update index.py 2024-02-05 00:17:44 +08:00
ceacaaf7ae Update index.py 2024-02-04 18:12:33 +08:00
36ad902250 Update tool_migrate.py 2024-02-04 15:30:05 +08:00
7a871d3e16 Update tool_migrate.py 2024-02-04 15:29:31 +08:00
f36ba4a351 Update tool_migrate.py 2024-02-04 15:27:50 +08:00
5093265a24 Update index.html 2024-02-04 02:38:03 +08:00
9c4347f692 del rockmongo 2024-02-03 23:30:52 +08:00
cb882ab7a1 Update requirements.txt 2024-02-03 20:36:40 +08:00
0d5fd1b423 Update README.md 2024-02-03 18:46:13 +08:00
e694635088 Update README.md 2024-02-03 18:45:59 +08:00
3386ae2064 Update app.js 2024-02-03 16:11:00 +08:00
bbaced5976 Update app.js 2024-02-03 15:51:33 +08:00
c0d5c5c0e6 Update app.js 2024-02-03 15:50:38 +08:00
f9f7de48ef Update app.js 2024-02-03 15:43:26 +08:00
5555eab5c0 Update stats.js 2024-02-03 15:40:35 +08:00
654737cbd2 Update setting.js 2024-02-03 15:34:38 +08:00
04568df3df update 2024-02-03 04:44:06 +08:00
b1e8839ace update_dev 2024-02-03 04:09:00 +08:00
80c6f91206 update 2024-02-02 06:16:28 +08:00
315b8e0e48 Update index.html 2024-02-01 22:18:18 +08:00
ed295d5456 up 2024-02-01 22:08:45 +08:00
eb38d81674 Update config_api.py 2024-02-01 15:06:39 +08:00
0bc3b42819 del phpredisadmin 2024-02-01 05:19:10 +08:00
8a640981d2 数据管理插件 2024-02-01 05:09:56 +08:00
7b94a61b65 update 2024-01-29 19:25:05 +08:00
e24151f332 Update public.js 2024-01-27 15:45:05 +08:00
dc43953c05 Update public.js 2024-01-27 15:44:52 +08:00
160ff6a4a7 update 2024-01-26 03:03:07 +08:00
a218ba05d2 Update app_start.php 2024-01-25 15:38:32 +08:00
65cb4941af Update index.py 2024-01-25 15:11:18 +08:00
53a12e7c4b Update site.js 2024-01-24 19:25:29 +08:00
6db8a906ff Update task.py 2024-01-23 23:41:06 +08:00
fc6c86e3ce Update info.json 2024-01-23 03:02:04 +08:00
f5989c881d Update info.json 2024-01-23 03:00:50 +08:00
b4946a87ee Update index.py 2024-01-23 02:43:58 +08:00
562e153371 Update site.css 2024-01-23 02:01:13 +08:00
63ea0cc129 Update requirements.txt 2024-01-23 00:16:03 +08:00
8eacae7c6a Update .gitignore 2024-01-22 23:46:30 +08:00
3e48c3871a Update task.py 2024-01-22 23:46:15 +08:00
22df4cb5b1 Update task.py 2024-01-22 23:41:02 +08:00
2d5d954586 Create ico.png 2024-01-22 16:48:14 +08:00
63ce3805ee Update index.py 2024-01-22 00:23:55 +08:00
3fe4918b55 update 2024-01-22 00:16:25 +08:00
24cc733e45 Update mongodb.conf 2024-01-21 23:30:52 +08:00
1ebb9e1ff3 Update mongodb.conf 2024-01-21 22:15:08 +08:00
9769f2c190 Update config_api.py 2024-01-21 16:34:28 +08:00
de91e4545b update 2024-01-21 16:01:10 +08:00
8d3c87a25e Update opcache.sh 2024-01-21 15:54:00 +08:00
660e393cf1 Update install.sh 2024-01-21 13:47:35 +08:00
fa5f2d6de5 Update config.js 2024-01-21 02:35:15 +08:00
f27406d343 Update config.js 2024-01-21 02:32:37 +08:00
488577af68 update 2024-01-21 02:23:18 +08:00
0f7b462b43 Update task.py 2024-01-21 01:47:41 +08:00
998f1ceae5 Update task.py 2024-01-21 01:44:17 +08:00
2a9bec3fb8 Update README.md 2024-01-21 01:29:08 +08:00
5c301296df 站点页优化 2024-01-21 01:27:09 +08:00
45b0e94132 update 2024-01-20 18:32:35 +08:00
06be751d1a update 2024-01-20 18:25:31 +08:00
f939b03a0b Update update_dev.sh 2024-01-20 18:22:35 +08:00
3339406f37 Update compatibility.md 2024-01-20 13:57:24 +08:00
f32d07ccc9 Update nginx.conf 2024-01-20 13:09:40 +08:00
ab8f1623bf update 2024-01-20 02:31:29 +08:00
d467d73230 Update backup.conf 2024-01-20 02:30:52 +08:00
4b0dd7d3fb Update php.js 2024-01-20 01:49:35 +08:00
91d243f8b1 Update install.sh 2024-01-20 01:37:57 +08:00
d682882d25 Update install.sh 2024-01-20 01:37:07 +08:00
0b3745c933 Update README.md 2024-01-20 01:29:45 +08:00
935c3012f9 Update README.md 2024-01-20 01:08:45 +08:00
a191548a83 Update enable-php-upstream.conf 2024-01-19 22:06:48 +08:00
9a01d61e1e Update enable-php.conf 2024-01-19 22:06:35 +08:00
7524798385 php配置改造 2024-01-19 21:21:36 +08:00
86e3796524 Update logs_api.py 2024-01-18 13:23:22 +08:00
37d68f5ff8 Update logs_api.py 2024-01-17 21:19:48 +08:00
647e3904d2 Create enable-php-upstream.conf 2024-01-17 04:22:34 +08:00
c5abb3eea1 Update index.html 2024-01-17 03:20:48 +08:00
65c94c64ae Update README.md 2024-01-17 02:47:12 +08:00
dbc132951b PHP-FPM设置多个应用池 2024-01-17 02:44:17 +08:00
440ba49e7b Create backup.conf 2024-01-17 00:07:45 +08:00
6a0f78b1a0 Update index.html 2024-01-17 00:07:30 +08:00
a69ff3e373 php更新加密校验 2024-01-16 01:18:27 +08:00
770d37e575 Update config_api.py 2024-01-15 19:58:33 +08:00
e725ad90ca Update config.js 2024-01-15 19:56:57 +08:00
bf5d8f7f27 Update commit.tpl 2024-01-15 17:14:46 +08:00
9bc72b23d6 Update commit.tpl 2024-01-15 17:13:52 +08:00
3ac3350240 Update install.sh 2024-01-14 22:38:40 +08:00
c1d04b0a16 Update index.py 2024-01-14 22:35:48 +08:00
1962cece21 Update index.py 2024-01-14 22:33:00 +08:00
0d24b8aebd update 2024-01-14 22:29:28 +08:00
de50de0a75 Update index.py 2024-01-14 22:16:35 +08:00
190fc88d4f Update index.py 2024-01-10 22:23:44 +08:00
727a7872a7 Update index.py 2024-01-10 14:52:19 +08:00
d408d56826 Update README.md 2024-01-10 14:14:17 +08:00
1cccd63edc update 2024-01-10 12:57:43 +08:00
cc50816286 Update config.html 2024-01-10 00:55:53 +08:00
04426c7a67 Update README.md 2024-01-10 00:40:27 +08:00
3979820eae 时区 2024-01-10 00:19:09 +08:00
3a850a31a1 Update config_api.py 2024-01-10 00:05:52 +08:00
6f5487b487 Update requirements.txt 2024-01-10 00:03:59 +08:00
d09a96ec84 时区设置 2024-01-10 00:02:04 +08:00
dcc4e14e7b Update gd.sh 2024-01-09 19:48:29 +08:00
e947b8db4e Update gd_old.sh 2024-01-09 19:47:51 +08:00
158a66ab62 update 2024-01-09 19:06:34 +08:00
df596fc673 Update tools.py 2024-01-09 01:57:28 +08:00
707fd668d5 update 2024-01-09 01:56:25 +08:00
b96c4c00e3 Update common.py 2024-01-09 01:12:13 +08:00
bc6cf72cfe up 2024-01-07 19:16:24 +08:00
48dacb4c27 Update php.js 2024-01-07 04:14:03 +08:00
78c9abbde2 update 2024-01-07 04:12:33 +08:00
d8d772c6dc Create trace.sh 2024-01-07 03:16:18 +08:00
33e114ffdd Update php.js 2024-01-07 03:11:18 +08:00
552b63d329 update 2024-01-07 03:08:41 +08:00
36637260a7 Update index_php_apt.py 2024-01-07 03:06:45 +08:00
53fbb5039b Update index_php_apt.py 2024-01-07 02:58:50 +08:00
74152af289 Update index_php_apt.py 2024-01-07 02:56:30 +08:00
5bf4401fb0 Update index_php_apt.py 2024-01-07 02:51:56 +08:00
12117a3b27 Update index_php_apt.py 2024-01-07 02:47:58 +08:00
d726f1bb15 Update php.js 2024-01-07 02:43:33 +08:00
a2b316b4d2 update 2024-01-07 02:40:56 +08:00
0d48e5250a Update php.js 2024-01-07 02:35:21 +08:00
d3cd606432 Update php.js 2024-01-07 02:35:14 +08:00
600435f23c update 2024-01-07 02:34:33 +08:00
b4831d64b9 php界面优化 2024-01-07 02:32:04 +08:00
6638967636 Create script.sh 2024-01-07 02:05:19 +08:00
ead409a58c Update linux.conf 2024-01-07 01:32:15 +08:00
971da145cb Update linux.conf 2024-01-07 01:21:59 +08:00
055d440484 up 2024-01-04 19:54:50 +08:00
97e2d131b4 update 2024-01-01 19:26:19 +08:00
e2784d2d55 Update .gitignore 2024-01-01 02:18:10 +08:00
6b697ae3be Update opcache.sh 2023-12-31 02:15:07 +08:00
207fa1d15e Update index.py 2023-12-30 19:58:54 +08:00
454e399d3d Update phpmongoadmin.conf 2023-12-30 19:32:39 +08:00
6ea8f20a9d php mongo admin 2023-12-30 19:32:17 +08:00
9dc3496c27 update 2023-12-30 04:30:21 +08:00
b523b84609 Update info.json 2023-12-30 04:19:03 +08:00
e443b88ad9 phpredisadmin 2023-12-30 04:12:15 +08:00
480ae78579 Update redis.conf 2023-12-30 03:32:23 +08:00
fb31e3ca15 Update index.py 2023-12-30 03:31:39 +08:00
53fdaed5c3 Update install.sh 2023-12-30 03:21:20 +08:00
37f6f2b6bc update 2023-12-30 03:21:13 +08:00
d1028bcc41 Update install.sh 2023-12-30 02:43:43 +08:00
72e7800b50 AD调整 2023-12-30 00:04:39 +08:00
bb717d2963 update 2023-12-28 19:07:05 +08:00
16787aebd0 Update stats.js 2023-12-28 03:34:53 +08:00
d769822731 Update stats.js 2023-12-28 03:32:48 +08:00
b6073ba8d3 Update maccms.conf 2023-12-28 00:47:18 +08:00
8d50f75f18 php 升级 2023-12-27 20:46:10 +08:00
8077b4cb13 Update gtid.cnf 2023-12-25 19:58:20 +08:00
7a9f1ebf5e Create orm.py 2023-12-25 19:56:48 +08:00
21f5670a85 Update index.py 2023-12-23 00:41:00 +08:00
Mr Chen
dbd0664c72 Merge pull request #519 from midoks/dev
mysql-apt/mysql-yum 功能增强
2023-12-22 23:25:00 +08:00
f9e53164d9 Update README.md 2023-12-22 23:23:24 +08:00
62e0321126 Update index.py 2023-12-22 23:10:47 +08:00
51b82ecbbb Update index.py 2023-12-22 23:09:32 +08:00
0229f50fef Update install.sh 2023-12-22 23:04:53 +08:00
be176001ea Update index.py 2023-12-22 22:50:33 +08:00
3bea21bb94 update 2023-12-22 22:48:14 +08:00
4b3104c849 Update index.py 2023-12-22 22:32:59 +08:00
0cbb1ad02e Update index.py 2023-12-22 22:28:50 +08:00
221f114dd4 Update index.py 2023-12-22 22:28:17 +08:00
5a5c2f3e33 update 2023-12-22 22:20:03 +08:00
69de62f8c3 Update index.py 2023-12-22 22:12:41 +08:00
af7698e157 update 2023-12-22 22:02:46 +08:00
f0af84f940 Update index.py 2023-12-22 21:54:05 +08:00
4802dde50a update 2023-12-22 21:52:31 +08:00
fcbf7be2b6 update 2023-12-22 21:45:06 +08:00
f77484df84 update 2023-12-22 21:42:06 +08:00
64ccba7595 Update index.py 2023-12-22 21:37:57 +08:00
b1935372a1 Update index.py 2023-12-22 21:37:37 +08:00
03c9afed4a Create index_mysql_apt.py 2023-12-22 21:35:09 +08:00
4e63c82e93 update 2023-12-22 21:32:20 +08:00
6fa2fde791 Update index_mysql_apt.py 2023-12-22 21:23:28 +08:00
98353df1ee Update index.py 2023-12-22 21:20:26 +08:00
50978741aa Update index.py 2023-12-22 21:14:59 +08:00
d4431f11be Update index.py 2023-12-22 21:09:08 +08:00
3faad62dd8 update 2023-12-22 20:58:23 +08:00
6d2550e607 update 2023-12-22 20:31:23 +08:00
f835e4d6a1 Merge branch 'master' into dev 2023-12-22 15:53:37 +08:00
Mr Chen
e33bdc5b7d Merge pull request #518 from midoks/dev
mariadb功能增强
2023-12-22 15:33:30 +08:00
1e6fe01819 Update index.py 2023-12-22 15:21:12 +08:00
c522738df5 Update mysql.js 2023-12-22 15:20:37 +08:00
5a8be9de7c Update mariadb.js 2023-12-22 15:19:44 +08:00
fd9c860d9b Update index.py 2023-12-22 15:11:12 +08:00
306a6d450f Update index.py 2023-12-22 15:04:56 +08:00
79fd1d7157 Update install.sh 2023-12-22 14:55:58 +08:00
9276e811c2 update 2023-12-22 14:50:50 +08:00
d1493ca13f Update index.py 2023-12-22 05:27:01 +08:00
13c605d58a Update index.py 2023-12-22 05:26:16 +08:00
36d19f2250 up 2023-12-22 05:21:59 +08:00
8f229c99be Update index.py 2023-12-22 05:05:48 +08:00
72b16e9540 update 2023-12-22 04:59:19 +08:00
dbe2a1f0df Update index.py 2023-12-22 04:56:05 +08:00
4c3f8c095f Update index.py 2023-12-22 04:55:30 +08:00
589933dc33 Update index.py 2023-12-22 04:53:05 +08:00
de36f41182 Update index.py 2023-12-22 04:51:07 +08:00
8e1b4881c4 Update index.py 2023-12-22 04:22:10 +08:00
692872ecd6 Update index.py 2023-12-22 04:14:58 +08:00
d422a640d5 Update index.py 2023-12-22 03:48:35 +08:00
46d293613e Update index.py 2023-12-22 03:46:26 +08:00
b775625890 Update index.py 2023-12-22 03:25:54 +08:00
eb2bb595de Update index.py 2023-12-22 03:10:31 +08:00
0ddc3bf762 Update index.py 2023-12-22 03:05:50 +08:00
e45604f211 update 2023-12-22 02:49:13 +08:00
4f22d9ae70 update 2023-12-22 02:39:43 +08:00
732363ec41 Update index.py 2023-12-22 01:26:16 +08:00
bc688aa93f update 2023-12-22 01:23:47 +08:00
56ed68b888 mariadb 二进制查看 2023-12-22 01:17:45 +08:00
90539a5049 Update index.py 2023-12-22 01:08:36 +08:00
df15100272 Update mariadb.js 2023-12-22 01:04:20 +08:00
4bfec3ac06 Update index.py 2023-12-22 01:01:46 +08:00
3a80a27970 Update mysql.js 2023-12-22 00:56:02 +08:00
09e79aff63 Update index.py 2023-12-22 00:55:18 +08:00
41a36a6fd3 Update index.py 2023-12-22 00:52:15 +08:00
fc0974dc91 mysql修复功能-敏感功能优化 2023-12-22 00:34:23 +08:00
4942c92b33 Update index.py 2023-12-22 00:24:08 +08:00
e173c2e51a mysql修复功能-敏感功能优化 2023-12-22 00:18:41 +08:00
daddf317e2 Update info.json 2023-12-21 19:07:32 +08:00
7e919050b2 Create my8.2.cnf 2023-12-21 19:01:03 +08:00
af9d050536 update 2023-12-21 18:59:32 +08:00
a9e6acd407 Update phplib.conf 2023-12-21 18:57:03 +08:00
180e67dde9 Update info.json 2023-12-21 18:11:37 +08:00
f8451fadba Create install.sh 2023-12-21 18:10:49 +08:00
558bfcb1ee 调整 2023-12-20 01:15:06 +08:00
6a27e69ee7 Update config_api.py 2023-12-19 23:34:11 +08:00
b5d28b4ef2 流量显示优化 2023-12-19 23:31:18 +08:00
8f80336901 Update index.py 2023-12-18 22:18:54 +08:00
0a78dda06c update 2023-12-18 22:13:03 +08:00
b6c3020705 Update index.py 2023-12-18 21:42:56 +08:00
ed70d4faa3 Update index.py 2023-12-18 21:41:26 +08:00
Mr Chen
46e4f55105 Merge pull request #517 from midoks/dev
mongodb优化
2023-12-17 13:52:23 +08:00
235f0b6d66 Update mongodb.conf 2023-12-17 13:47:30 +08:00
633066088d Update index.py 2023-12-17 13:32:39 +08:00
48f223f4f9 Update index.html 2023-12-16 20:59:29 +08:00
709a91dcec Update mongodb.js 2023-12-16 17:06:22 +08:00
2592291b49 update 2023-12-16 17:01:49 +08:00
502893194e mongo状态 2023-12-16 16:30:34 +08:00
8976e97ea5 Update mongodb.conf 2023-12-16 15:25:18 +08:00
22cb5f3bc2 Update config.js 2023-12-15 18:36:20 +08:00
0888b89ea7 Update config.js 2023-12-15 18:36:14 +08:00
738e69562e Update config.js 2023-12-15 18:35:54 +08:00
Mr Chen
511b62d911 Merge pull request #516 from midoks/dev
mysql8.2及密码生成加强
2023-12-15 14:49:43 +08:00
d748674b49 Update public.js 2023-12-15 14:48:54 +08:00
828372f16f Update public.js 2023-12-15 14:47:52 +08:00
a349b2bc81 Update install.sh 2023-12-14 14:00:31 +08:00
4f3fe2af54 Update index.py 2023-12-14 13:59:08 +08:00
4670811fd6 Create my8.2.cnf 2023-12-14 13:33:04 +08:00
e1fb85859a Update install.sh 2023-12-14 01:01:21 +08:00
c0fc1148eb Update install.sh 2023-12-14 01:01:01 +08:00
50052e7650 Update install.sh 2023-12-14 00:58:02 +08:00
8053f9b593 Update install.sh 2023-12-14 00:30:58 +08:00
1a5cdca70d Update mysql.js 2023-12-14 00:22:27 +08:00
341690d234 Update mysql.js 2023-12-14 00:20:24 +08:00
d76654b853 Update mysql.js 2023-12-14 00:17:37 +08:00
0ef35e1474 Update mysql.js 2023-12-14 00:12:56 +08:00
9ea52e452a mysql识别登录加密规则 2023-12-14 00:04:48 +08:00
5e39e1a463 Update my8.0.cnf 2023-12-13 23:54:39 +08:00
36421ae254 update 2023-12-13 23:51:18 +08:00
a34f025a36 Update index.py 2023-12-13 23:33:25 +08:00
7be4f9ea98 Update index.py 2023-12-13 23:32:59 +08:00
2dc93bf490 Update my8.0.cnf 2023-12-13 23:27:18 +08:00
Mr Chen
73fb46fcc0 Merge pull request #515 from midoks/dev
mongodb配置优化
2023-12-12 14:54:49 +08:00
f4ea1dc544 Update index.py 2023-12-12 14:51:47 +08:00
d17cc990fe Update index.py 2023-12-12 14:44:39 +08:00
8edd40393b Update index.py 2023-12-12 14:44:23 +08:00
98e653710c Update index.py 2023-12-12 14:43:49 +08:00
3eb6937778 Update layout.html 2023-12-12 13:22:31 +08:00
974eaf3583 Merge branch 'master' into dev 2023-12-11 23:32:27 +08:00
Mr Chen
dadcc2df6d Merge pull request #514 from midoks/dev
部分更新
2023-12-11 23:32:14 +08:00
639d5413e5 up 2023-12-11 23:20:34 +08:00
1d114d9db7 Update cmd.md 2023-12-09 15:59:36 +08:00
dfa669a032 Update cmd.md 2023-12-09 15:58:57 +08:00
bf370685b3 Update install.sh 2023-12-07 13:27:46 +08:00
8f9bdde0a1 Update info.json 2023-12-06 21:10:32 +08:00
dbbc32258a Create install.sh 2023-12-06 21:09:56 +08:00
Mr Chen
bf79e3028a Merge pull request #513 from midoks/dev
地址更新
2023-12-05 13:08:47 +08:00
0650858824 update 2023-12-05 13:07:56 +08:00
83f736d5b2 Update install.sh 2023-12-05 13:06:59 +08:00
Mr Chen
bafee3782a Merge pull request #512 from midoks/dev
地址更新
2023-12-04 16:24:36 +08:00
1aff003ba3 Update mw.tpl 2023-12-04 16:23:54 +08:00
Mr Chen
30e779686a Merge pull request #511 from midoks/dev
域名更改
2023-12-04 13:19:24 +08:00
15eccc72f3 Update README.md 2023-12-04 13:18:46 +08:00
f69691fac7 Update plugins_api.py 2023-12-04 00:13:41 +08:00
1ffcb9ca7d 站点-优化提示 2023-12-04 00:10:03 +08:00
75514f8e5c update 2023-12-03 03:15:13 +08:00
098be84816 Update push_bbs_ntid.py 2023-12-03 03:14:19 +08:00
8752e394a3 Update mw.py 2023-12-03 01:23:18 +08:00
0350f3ecbb Update mw.py 2023-12-03 01:17:50 +08:00
Mr Chen
3c855afc43 Merge pull request #510 from midoks/dev
简单更新
2023-12-03 00:31:34 +08:00
0c8ec2132f Update README.md 2023-12-03 00:30:43 +08:00
e3deac06b4 Update README.md 2023-12-03 00:30:09 +08:00
b92dbea2c8 update 2023-12-01 12:09:20 +08:00
Mr Chen
4da6738909 Merge pull request #509 from midoks/dev
换自建域名
2023-12-01 11:44:12 +08:00
1665256627 换自建域名 2023-12-01 11:43:31 +08:00
d49ebe9fa8 Update index.py 2023-11-29 00:35:51 +08:00
6dbdf26d80 Update index.py 2023-11-28 17:33:02 +08:00
114ed15c02 Update supervisor.service 2023-11-28 12:49:56 +08:00
315eb82a89 Update index.py 2023-11-28 12:46:23 +08:00
f4ef03304d Update install.sh 2023-11-28 12:28:04 +08:00
9877d04979 查看日志优化 2023-11-25 22:09:17 +08:00
Mr Chen
e6f379db9d Merge pull request #507 from midoks/dev
php83正式版发布
2023-11-24 17:01:00 +08:00
ecad324fc6 Update install.sh 2023-11-24 16:27:45 +08:00
ed13ee1645 Update install.sh 2023-11-24 16:26:33 +08:00
603c436f4e Update commit.tpl 2023-11-23 19:33:01 +08:00
d917c23fda Update webstats_common.lua 2023-11-21 22:17:01 +08:00
a0c4273280 Update webstats_common.lua 2023-11-21 21:59:24 +08:00
8e71d0a306 Update webstats_common.lua 2023-11-21 19:08:39 +08:00
Mr Chen
01dfb6f248 Merge pull request #506 from midoks/dev
命令行开启ipv6支持
2023-11-21 00:44:34 +08:00
4ab1d14ffe update 2023-11-21 00:43:38 +08:00
665fe41014 Update tool_migrate.py 2023-11-20 23:51:12 +08:00
ddba4f3abe Update tool_migrate.py 2023-11-20 23:43:18 +08:00
1f65f80bef Update webstats_common.lua 2023-11-20 23:40:07 +08:00
8dd9f707a6 命令行开启ip支持 2023-11-20 20:57:53 +08:00
Mr Chen
14437611c8 Merge pull request #505 from midoks/dev
增加php扩展
2023-11-20 01:01:13 +08:00
bfe857ee59 Update install.sh 2023-11-19 22:00:53 +08:00
01efa67bf1 Merge branch 'master' of https://github.com/midoks/mdserver-web 2023-11-19 21:38:07 +08:00
3b3356d5c6 update 2023-11-19 21:37:41 +08:00
6dbfd385fb Update readline.sh 2023-11-19 21:34:35 +08:00
1e9fa587f5 Update all_test.sh 2023-11-19 21:34:30 +08:00
fd673b76e8 Update phplib.conf 2023-11-19 21:34:07 +08:00
d2340872c0 Update libedit.sh 2023-11-19 21:05:46 +08:00
1c14566b6c Update readline.sh 2023-11-19 21:03:49 +08:00
adde0086aa Create libedit.sh 2023-11-19 21:02:31 +08:00
b6ca99f1ef Update libiconv.sh 2023-11-19 20:50:16 +08:00
c920b46a13 Update readline.sh 2023-11-19 20:37:30 +08:00
338e64d295 Update event.sh 2023-11-19 20:34:08 +08:00
f030f7a97d event 2023-11-19 20:33:19 +08:00
ef7da2ec96 update 2023-11-19 20:30:47 +08:00
6dec09741f Update maccms.conf 2023-11-19 19:26:03 +08:00
6d75a65a09 Update maccms.conf 2023-11-19 17:38:23 +08:00
8eeb55d555 Update maccms.conf 2023-11-19 17:32:53 +08:00
f54feaa87b Update maccms.conf 2023-11-19 17:29:50 +08:00
b828fc2188 Update maccms.conf 2023-11-19 17:23:22 +08:00
e645be4285 Update maccms.conf 2023-11-19 17:18:01 +08:00
05a7b8818e Update maccms.conf 2023-11-19 17:10:53 +08:00
391b313a65 Update maccms.conf 2023-11-19 17:06:13 +08:00
df7bff4a72 Update maccms.conf 2023-11-19 17:04:10 +08:00
2eefd7d3fa Update maccms.conf 2023-11-19 16:58:15 +08:00
130e4cf546 Update maccms.conf 2023-11-19 16:55:05 +08:00
096dfa6b96 Create maccms.conf 2023-11-19 16:54:36 +08:00
77361259c3 Update install.sh 2023-11-19 16:10:22 +08:00
Mr Chen
cf00bd3d98 Merge pull request #504 from midoks/dev
0.16.2
2023-11-18 22:55:14 +08:00
ad3f42059d Update config_api.py 2023-11-18 22:54:08 +08:00
9a1d3f5e15 Update README.md 2023-11-18 22:53:06 +08:00
f2246cf8ba Update index.py 2023-11-18 20:46:11 +08:00
81aabd3910 Update index.py 2023-11-18 20:44:51 +08:00
235b1dc5e4 Update install.sh 2023-11-18 20:43:39 +08:00
ad007b07a5 Update haproxy.conf 2023-11-18 20:40:54 +08:00
53cc020108 Update install.sh 2023-11-18 20:36:34 +08:00
71d63f3d68 Update install.sh 2023-11-18 20:34:44 +08:00
917b3f6099 Update default.tpl 2023-11-18 20:29:49 +08:00
36341f66f1 Update haproxy.conf 2023-11-18 20:29:32 +08:00
2a16e1d262 安装优化 2023-11-18 20:28:17 +08:00
d27db369dc Update public.js 2023-11-18 20:16:03 +08:00
6619ae0bc5 haproxy 配置检查 2023-11-18 20:13:39 +08:00
da1646eaed Update info.json 2023-11-18 19:37:14 +08:00
bf88621629 Create keepalived.lvs.nat.master.conf 2023-11-18 18:07:19 +08:00
7497c4608a Update install.sh 2023-11-18 17:34:15 +08:00
b0ee844b84 Update lvs.js 2023-11-18 17:32:43 +08:00
3efa46ce70 Update lvs.js 2023-11-18 17:32:29 +08:00
aaaef570a4 Update default.tpl 2023-11-18 17:28:51 +08:00
53c651724a update 2023-11-18 17:28:11 +08:00
dd8c97f4b8 update 2023-11-18 17:17:55 +08:00
b4e1a5947e Update install.sh 2023-11-18 17:14:49 +08:00
784056d465 Update install.sh 2023-11-18 17:10:47 +08:00
b1fbdf8d60 Update mw.tpl 2023-11-18 17:08:59 +08:00
f9459089a4 Update mw.tpl 2023-11-18 17:08:46 +08:00
36c3967e38 Update push_notice_msg.py 2023-11-18 16:25:31 +08:00
c7ba5fa2d9 Update push_ad.py 2023-11-18 16:25:07 +08:00
5f2f6d15ed Update linux.conf 2023-11-18 16:20:49 +08:00
5e3c81d785 update 2023-11-18 15:54:40 +08:00
76560bc4fd Update info.json 2023-11-18 15:27:34 +08:00
e84a104584 Update webstats_common.lua 2023-11-18 12:45:29 +08:00
afe7175941 Update webstats_common.lua 2023-11-18 04:32:35 +08:00
4b7c821a91 Update index.py 2023-11-18 03:39:53 +08:00
1941479092 Update index.py 2023-11-18 03:37:41 +08:00
bfcfc2015a Update index.py 2023-11-18 03:36:13 +08:00
8a5daeb327 网站统计-加入耗时搜索 2023-11-18 03:32:39 +08:00
66049068aa Update webstats_common.lua 2023-11-18 02:40:03 +08:00
e2d680cb2a 修复反向代理代过来的数据 2023-11-18 02:36:18 +08:00
719eec4b98 Update install.sh 2023-11-18 01:51:25 +08:00
9ea859f94c Update install.sh 2023-11-18 01:51:11 +08:00
0bdd384f46 Update install.sh 2023-11-18 01:50:21 +08:00
c3d20f358c Update install.sh 2023-11-18 01:04:50 +08:00
7a6454e126 Update requirements.txt 2023-11-18 00:50:33 +08:00
d683069fef Update info.json 2023-11-17 23:45:41 +08:00
5e7e7af1a7 update 2023-11-17 23:35:23 +08:00
5894323eec Update README.md 2023-11-17 23:12:54 +08:00
1cd4996527 Update linux.conf 2023-11-17 20:58:46 +08:00
78786a92e9 Update linux.conf 2023-11-17 20:57:41 +08:00
67d5d3fac5 Update linux.conf 2023-11-17 20:57:26 +08:00
5caf8f52bc Update index.html 2023-11-17 19:16:58 +08:00
b838caea8b update 2023-11-17 18:56:07 +08:00
57d4ef5fc9 Update index.py 2023-11-17 18:52:05 +08:00
ca3d8cccc9 Update install.sh 2023-11-17 18:33:39 +08:00
c56aa2efa3 Update install.sh 2023-11-17 18:33:21 +08:00
f41ef634bf Update install.sh 2023-11-17 18:30:41 +08:00
80e3a73fa4 Update install.sh 2023-11-17 17:54:08 +08:00
c4788c03f9 update 2023-11-17 17:49:42 +08:00
501012b4e6 初始化lvs插件 2023-11-17 17:40:58 +08:00
e7b927bdef Update keepalived.mysql.note.conf 2023-11-16 20:26:45 +08:00
9c818b0a5d Update keepalived.conf 2023-11-16 20:03:23 +08:00
8faf553e1d Update chk.sh 2023-11-16 19:55:18 +08:00
e22f296e38 Update chk.sh 2023-11-16 19:45:43 +08:00
b3deeb5a39 Update config_api.py 2023-11-16 19:39:24 +08:00
2ddb4e9ef8 Update chk.sh 2023-11-16 19:34:58 +08:00
74b1d424b9 Update chk_mysql.sh 2023-11-16 19:34:32 +08:00
cd13d0bbe7 update 2023-11-16 19:30:43 +08:00
5dc97276c1 keepalived 脚本模板 2023-11-16 19:16:14 +08:00
9da7f04379 Update keepalived.mysql.conf 2023-11-16 18:03:09 +08:00
0bee208795 update 2023-11-16 18:02:34 +08:00
af660daa30 update 2023-11-16 18:00:53 +08:00
71a2b43c06 Update mw.tpl 2023-11-16 17:49:21 +08:00
ad644c3cf9 Update chk_mysql.sh 2023-11-16 17:19:35 +08:00
e676790250 update 2023-11-16 17:11:49 +08:00
135b307a98 update 2023-11-16 16:11:17 +08:00
c95c760aef Update index.py 2023-11-16 16:06:15 +08:00
60125e6bbb Update keepalived.mysql.note.conf 2023-11-16 16:03:30 +08:00
fbef641839 update 2023-11-16 15:29:21 +08:00
37431a76b6 update 2023-11-16 03:07:51 +08:00
49cfeb7a39 mysql config 2023-11-16 00:34:03 +08:00
faf433b77d Update install.sh 2023-11-15 19:58:21 +08:00
d0b70841c2 Update install.sh 2023-11-15 19:58:03 +08:00
bf8a820343 Update install.sh 2023-11-15 19:21:27 +08:00
ae1e2cd972 php-fpm状态展示说明 2023-11-15 16:44:20 +08:00
46da6c0dd0 php性能调整优化 2023-11-14 01:52:02 +08:00
1e827944ab update 2023-11-14 01:41:51 +08:00
09bbd5280d update 2023-11-12 13:15:23 +08:00
01a887efad sync_binlog
默认,sync_binlog=0,表示MySQL不控制binlog的刷新,由文件系统自己控制它的缓存的刷新。这时候的性能是最好的,但是风险也是最大的。因为一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失。

如果sync_binlog>0,表示每sync_binlog次事务提交,MySQL调用文件系统的刷新操作将缓存刷下去。最安全的就是sync_binlog=1了,表示每次事务提交,MySQL都会把binlog刷下去,是最安全但是性能损耗最大的设置。这样的话,在数据库所在的主机操作系统损坏或者突然掉电的情况下,系统才有可能丢失1个事务的数据。但是binlog虽然是顺序IO,但是设置sync_binlog=1,多个事务同时提交,同样很大的影响MySQL和IO性能。虽然可以通过group commit的补丁缓解,但是刷新的频率过高对IO的影响也非常大。对于高并发事务的系统来说,“sync_binlog”设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多
2023-11-12 13:12:58 +08:00
aa236bac0b up 2023-11-12 12:45:44 +08:00
bcc1ae3b8f ad 改动 2023-11-12 12:22:34 +08:00
1acc9a4b76 Update index.py 2023-11-11 16:13:11 +08:00
e1b57621d5 Update index.py 2023-11-11 16:12:46 +08:00
0f9bd8d387 Update install.sh 2023-11-11 03:17:10 +08:00
24eb4fe994 没成功,不管了 2023-11-11 01:14:06 +08:00
7799d3436a php56 ,55 mac m2 ok 2023-11-11 00:47:32 +08:00
f3f1aaa041 php 70 mac m2 ok 2023-11-11 00:32:20 +08:00
d7d907945a php 71 mac m2 ok 2023-11-11 00:28:10 +08:00
6961ff7996 Update install.sh 2023-11-10 23:34:57 +08:00
27047cb169 php 54 mac m2 编译 2023-11-10 23:34:08 +08:00
25f3b5b18d Create pcre.sh 2023-11-10 23:29:36 +08:00
a9efe0f808 update 2023-11-10 21:51:50 +08:00
847a40e743 Update install.sh 2023-11-10 21:42:05 +08:00
9f59f479a2 update 2023-11-10 20:18:15 +08:00
c8b955f282 update 2023-11-10 20:03:04 +08:00
b4cee43517 Update macos.sh 2023-11-10 19:29:17 +08:00
a33c1261b3 更好的重启 2023-11-10 19:20:23 +08:00
8fd3476126 up 2023-11-10 19:06:31 +08:00
664852c26f update 2023-11-10 18:47:32 +08:00
b356ad5a43 Update index.py 2023-11-10 05:05:49 +08:00
ce96f54aa7 update 2023-11-10 05:01:06 +08:00
028bfe13ab Update macos.sh 2023-11-10 02:45:21 +08:00
93061a1138 Update macos.sh 2023-11-10 02:26:40 +08:00
66f0b8691c 群集创建说明 2023-11-10 01:45:27 +08:00
22ac89bc2c 集群节点暂时 2023-11-10 00:13:32 +08:00
4edf9c1bb7 Update redis.tpl 2023-11-09 22:52:59 +08:00
8169f89ddb Update redis.js 2023-11-09 22:31:47 +08:00
8c82641cb0 Update index.py 2023-11-09 22:26:48 +08:00
5e5606a586 Update redis.js 2023-11-09 22:26:24 +08:00
d4d0538996 集群状态 2023-11-09 22:18:37 +08:00
d03c630b48 Update index.py 2023-11-09 21:40:09 +08:00
698b5c2623 up 2023-11-09 21:00:42 +08:00
c9817cb1c6 Create redis_simple.conf 2023-11-09 21:00:23 +08:00
76d2acac76 Update redis.js 2023-11-09 20:54:53 +08:00
feb58ca3ad Update redis.js 2023-11-09 20:50:51 +08:00
2748d248b4 Update redis.js 2023-11-09 20:49:13 +08:00
e008de3d2c redis集群配置 2023-11-09 20:45:00 +08:00
57c9ca8e78 Update redis.js 2023-11-09 19:43:27 +08:00
db90443239 Update redis.js 2023-11-09 19:41:42 +08:00
883ce06c1c Update redis.js 2023-11-09 19:26:50 +08:00
9c9b0b9ae5 redis 复制状态 2023-11-09 15:08:45 +08:00
dd8341867f Update install.sh 2023-11-09 13:11:20 +08:00
15e6ca97e1 redis 主从配置识别 2023-11-09 03:33:07 +08:00
1996cb03ce 兼容新版mac 2023-11-09 01:32:59 +08:00
7d0834397d Update haproxy.conf 2023-11-08 17:58:46 +08:00
54055f2174 Update install.sh 2023-11-08 16:47:30 +08:00
33c77f0e90 Update mw.tpl 2023-11-08 16:19:49 +08:00
7d4c4a9ef9 mac优化 2023-11-08 15:55:53 +08:00
fbe211b3ec update 2023-11-08 15:28:52 +08:00
53e98bd5fe Update macos.sh 2023-11-08 12:12:16 +08:00
8a7be7e61c mac 不判断root 2023-11-08 11:59:28 +08:00
4aad9f90db mac 不判断root 2023-11-08 11:58:50 +08:00
Mr Chen
29de642a1a Merge pull request #503 from midoks/dev
mysql binlog日志查看功能及同步12306错误,尝试修复功能。
2023-11-08 02:14:07 +08:00
e73533b611 Update mysql.js 2023-11-08 02:04:14 +08:00
89e5d57926 Update index.py 2023-11-08 01:58:45 +08:00
283d3c5f1f Update index.py 2023-11-08 01:57:27 +08:00
69cde4ebc3 Update index_mysql.py 2023-11-08 01:56:55 +08:00
e5a9f2c197 Update index_mysql.py 2023-11-08 01:52:49 +08:00
b3f495efb8 Update index.py 2023-11-08 01:49:44 +08:00
c0310a2628 binlog日志功能基本OK 2023-11-08 01:44:17 +08:00
496e94ad54 Update mysql.js 2023-11-08 01:16:55 +08:00
beb00d46e0 update 2023-11-08 01:15:28 +08:00
9e123f067b update 2023-11-08 01:12:02 +08:00
aba594caf2 update 2023-11-08 01:00:29 +08:00
f67be6d59f update 2023-11-08 00:49:01 +08:00
bb5240dc43 Update ubuntu.sh 2023-11-07 19:42:02 +08:00
e24bf5313c Update debian.sh 2023-11-07 19:41:29 +08:00
f17a986461 mysql 同步1236错误-修复方案 2023-11-07 18:55:44 +08:00
2c31318a5c Update index.py 2023-11-07 18:06:09 +08:00
7c4231d9c0 Update debian.sh 2023-11-07 16:36:16 +08:00
462f7b78ec Update tool_task.py 2023-11-07 12:17:04 +08:00
83466e927e update 2023-11-06 18:29:20 +08:00
d8123d9350 Update install.sh 2023-11-05 19:57:14 +08:00
Mr Chen
23c3b553e9 Merge pull request #501 from midoks/dev
php扩展ioncube修复。
2023-11-05 19:32:05 +08:00
9c2129e638 Update phplib.conf 2023-11-05 19:05:40 +08:00
a29b2ac731 Update phplib.conf 2023-11-05 19:05:08 +08:00
944040cc03 Update ioncube.sh 2023-11-05 19:00:58 +08:00
9d9615acc9 Update ioncube.sh 2023-11-05 18:59:15 +08:00
e3f42c8f67 Update ioncube.sh 2023-11-05 18:48:10 +08:00
Mr Chen
6e9dbe4bd5 Merge pull request #500 from midoks/dev
安装减小体积3 && php扩展-yaml
2023-11-03 19:24:09 +08:00
e71329485a yaml依赖 2023-11-03 19:21:50 +08:00
5d0e24f0d5 php yaml 2023-11-03 19:14:24 +08:00
78263f6a06 Create yaml.sh 2023-11-03 19:10:52 +08:00
ce70fdc784 Update mw.py 2023-11-01 23:21:45 +08:00
184610acb9 Update all_test.sh 2023-11-01 02:36:32 +08:00
1b668d546f 优化 2023-11-01 02:35:36 +08:00
b7df4f57ad update 2023-11-01 02:27:42 +08:00
817e7607e5 update 2023-11-01 02:16:44 +08:00
d36df7b24c Update gd.sh 2023-11-01 02:15:37 +08:00
Mr Chen
e63a643c7b Merge pull request #499 from midoks/dev
安装结束后解压源码删除  2
2023-11-01 02:03:38 +08:00
0cfd2fc971 update 2023-11-01 01:47:45 +08:00
9b3383dd0e update 2023-11-01 01:43:05 +08:00
9b266ffd7d Update yaf.sh 2023-11-01 01:41:19 +08:00
345a5be488 Update swoole.sh 2023-11-01 01:41:00 +08:00
0a178f196a up 2023-11-01 00:43:52 +08:00
8abc166dd2 update 2023-10-31 22:09:22 +08:00
Mr Chen
a3e0fe817b Merge pull request #498 from midoks/dev
安装结束后解压源码删除
2023-10-31 21:15:30 +08:00
7ab4572bdd update 2023-10-31 21:01:21 +08:00
165f6ee323 update ad 2023-10-31 14:57:25 +08:00
e565390d5b ad 2023-10-31 14:43:06 +08:00
Mr Chen
7502fb7e08 Merge pull request #497 from midoks/dev
暂时不删除php源码。
2023-10-31 03:15:20 +08:00
026f191de2 update 2023-10-31 03:13:13 +08:00
6d7b58e65c Update ubuntu.sh 2023-10-31 02:34:54 +08:00
Mr Chen
6953140238 Merge pull request #496 from midoks/dev
php73-gd优化及部分安装删除源码,节省安装体积。
2023-10-31 02:33:22 +08:00
97963a67aa Update install.sh 2023-10-31 02:29:05 +08:00
1112e31a5f update 2023-10-31 02:21:57 +08:00
5358191adf Update install.sh 2023-10-31 02:17:16 +08:00
4f52e4a520 Update php5.ini 2023-10-31 02:13:14 +08:00
abcabeb2a1 update 2023-10-31 02:08:29 +08:00
c592086d29 u p d da te 2023-10-31 02:00:05 +08:00
f93dd8ebec Update www.conf 2023-10-31 01:59:12 +08:00
92283d1cfc Update icu.sh 2023-10-31 01:45:41 +08:00
f29b15dd60 update 2023-10-31 01:37:21 +08:00
84f2d212f4 mongodb 安装后删除文件 2023-10-31 01:34:24 +08:00
5fb00f7108 Update centos.sh 2023-10-31 01:25:45 +08:00
fcea7a0610 update 2023-10-31 01:25:11 +08:00
f9b364c435 Update debian.sh 2023-10-31 01:14:35 +08:00
e9743ce97e Update centos.sh 2023-10-31 01:13:06 +08:00
8c2475192b update 2023-10-31 01:05:23 +08:00
35c279d93a update 2023-10-31 00:59:03 +08:00
7c5a7fe822 Update install.sh 2023-10-31 00:53:35 +08:00
09ee8a0c61 Update install.sh 2023-10-31 00:52:48 +08:00
7bda3c0cd6 安装后,可以删除就删除 2023-10-31 00:50:25 +08:00
d8a5fcab90 Update imagemagick.sh 2023-10-31 00:42:57 +08:00
1d8bc48a9b Update imagemagick.sh 2023-10-31 00:36:50 +08:00
2d39f431c5 Update all_test.sh 2023-10-31 00:29:33 +08:00
b78cbb3c39 Update stats.js 2023-10-31 00:06:49 +08:00
d55450e0c9 Update icu.sh 2023-10-30 23:47:23 +08:00
7cc10a9bdb update 2023-10-30 23:25:33 +08:00
fdebeab6b2 Update phplib.conf 2023-10-30 23:21:58 +08:00
fdc1a93e51 Update install.sh 2023-10-30 23:21:40 +08:00
e9978642c8 Update phplib.conf 2023-10-30 23:14:44 +08:00
823c6f1f79 update 2023-10-30 23:08:02 +08:00
Mr Chen
7bbb49a459 Merge pull request #495 from midoks/dev
php73-gd优化
2023-10-30 23:01:55 +08:00
2bbbe3f17f update 2023-10-30 22:55:00 +08:00
9e8d036ee7 Update debian.sh 2023-10-30 22:43:18 +08:00
7ee6e491e8 Update install.sh 2023-10-30 20:02:49 +08:00
Mr Chen
10ffa66dd8 Merge pull request #494 from midoks/dev
Gogs/Gitea优化
2023-10-30 17:54:17 +08:00
85d2f2f702 Update stats.js 2023-10-30 16:34:39 +08:00
0917ec52de Update index.py 2023-10-30 16:12:53 +08:00
da872c1d92 Update index.py 2023-10-30 16:10:42 +08:00
91919426f4 Update index.py 2023-10-30 16:06:20 +08:00
7f7196c55e Update index.py 2023-10-30 16:03:37 +08:00
cb86245a35 Update index.py 2023-10-30 16:02:58 +08:00
a319c43d54 Update index.py 2023-10-30 15:55:27 +08:00
d07faf396e Update index.py 2023-10-30 15:49:56 +08:00
fc718ff727 Update index.html 2023-10-30 15:47:11 +08:00
bacac94186 Update index.py 2023-10-30 15:40:25 +08:00
c925e09ea6 Update index.py 2023-10-30 15:38:42 +08:00
2de9b736f5 Update gitea.js 2023-10-30 15:36:05 +08:00
24d3aeabb0 gitea update 2023-10-30 15:34:37 +08:00
3a33a4c758 Update index.py 2023-10-30 15:04:58 +08:00
109f562f06 update 2023-10-30 14:47:54 +08:00
f74702cbad Update gogs.js 2023-10-30 14:21:33 +08:00
be9365e4e6 Update gogs.js 2023-10-30 14:11:18 +08:00
6a61e66c05 Update index.html 2023-10-30 14:07:57 +08:00
42d07c1cec update 2023-10-30 14:02:10 +08:00
3886dab6b5 Update index.py 2023-10-30 13:55:42 +08:00
d17ebf1e9c Update index.py 2023-10-30 13:31:18 +08:00
a6644cc706 优化 2023-10-30 01:48:26 +08:00
43071db317 gogs 基本改造结束 2023-10-30 01:43:35 +08:00
e5c53323a5 gogs 项目管理细化 2023-10-30 01:00:54 +08:00
d08ba45f5f update 2023-10-30 00:25:45 +08:00
eba73c71bc update 2023-10-29 23:50:32 +08:00
fe63f684f3 Update index.py 2023-10-29 14:35:09 +08:00
f19ef94dca update 2023-10-29 14:34:16 +08:00
685aa7868d update 2023-10-29 14:26:46 +08:00
2e927da78c update 2023-10-29 03:23:17 +08:00
4391a3ccd7 Delete .gitignore 2023-10-29 02:01:47 +08:00
27041ee0e0 Update keepalived.backup.conf 2023-10-29 01:29:24 +08:00
e09085a64c update 2023-10-29 00:48:28 +08:00
8216000f35 update 2023-10-28 22:47:34 +08:00
36d59c6c67 Update push_notice_msg.py 2023-10-28 22:41:03 +08:00
363f97119c update 2023-10-28 22:35:21 +08:00
f86980b805 update 2023-10-28 22:34:14 +08:00
805b804a10 Update keepalived.conf 2023-10-28 20:02:02 +08:00
2f22cdb36e Update keepalived.conf 2023-10-28 18:51:24 +08:00
7254b9b862 update 2023-10-28 18:50:52 +08:00
ad9ab2d7af Update index.html 2023-10-28 18:44:38 +08:00
c8c4a0dbbe Update index.py 2023-10-28 18:43:15 +08:00
f425fb1ea2 Update init.lua 2023-10-28 13:32:45 +08:00
970c6dbe54 Update init.lua 2023-10-28 13:32:27 +08:00
3f529ac798 Update index.py 2023-10-24 16:42:04 +08:00
4be2f60b5b Update index.py 2023-10-24 16:41:25 +08:00
305b9ca7cf Update install.sh 2023-10-24 16:38:16 +08:00
fdf0c4e02f update 2023-10-24 16:35:58 +08:00
52dc2210a4 Update keepalived.conf 2023-10-24 16:13:55 +08:00
579b118495 Update install.sh 2023-10-24 15:46:34 +08:00
0fac1b026b Update keepalived.conf 2023-10-24 15:25:36 +08:00
a0c891ed92 Update keepalived.conf 2023-10-24 15:25:08 +08:00
98f3ad52dd Update keepalived.conf 2023-10-24 15:24:36 +08:00
ada1aeac05 Update keepalived.conf 2023-10-24 15:23:26 +08:00
272d71ed97 update 2023-10-24 15:23:05 +08:00
1a69d55da1 Update push_notice_msg.py 2023-10-23 19:04:55 +08:00
8a4174a8a4 Update index_php.py 2023-10-23 17:42:34 +08:00
7d58ba316d Update index_php.py 2023-10-23 17:42:15 +08:00
d4af727e5a Update index_php.py 2023-10-23 17:41:34 +08:00
3a8c93b595 update 2023-10-23 17:37:44 +08:00
25fe2e79bb Update keepalived.js 2023-10-23 16:33:50 +08:00
84ebfc4254 Update info.json 2023-10-23 16:31:34 +08:00
2bdba8aa8d Update index.html 2023-10-23 16:25:27 +08:00
60be806398 Update index.html 2023-10-23 16:25:14 +08:00
b919de1fd6 Update index.html 2023-10-23 16:24:00 +08:00
087dcc7f40 Update index.html 2023-10-23 16:22:13 +08:00
be2cfa4407 Update index.py 2023-10-23 16:19:42 +08:00
e86707d752 Update index.py 2023-10-23 16:19:17 +08:00
b31c49ac11 update 2023-10-23 16:15:33 +08:00
d013595431 Update index.py 2023-10-23 16:05:42 +08:00
9e9dad7325 update 2023-10-23 16:03:10 +08:00
1f52d69410 Update keepalived.tpl 2023-10-23 15:52:03 +08:00
5a221d9cb3 update 2023-10-22 22:53:42 +08:00
4abd1df942 Update index.py 2023-10-22 18:12:32 +08:00
ee84266acb Update index.py 2023-10-22 17:55:02 +08:00
4fadf4c275 Update keepalived.tpl 2023-10-22 17:52:42 +08:00
89b5a762d1 Update install.sh 2023-10-22 17:48:42 +08:00
759e1432f8 keepalived debug 2023-10-22 17:45:39 +08:00
d3e9fbb5db update 2023-10-22 17:18:39 +08:00
e3c60de0e7 Update stats.js 2023-10-21 17:42:01 +08:00
Mr Chen
1cd7667f7b Merge pull request #492 from midoks/dev
centos8 mongodb安装优化
2023-10-21 16:30:53 +08:00
d0ac8bd70c Update files.html 2023-10-21 16:29:36 +08:00
89e20482a0 Update mongodb.service.tpl 2023-10-21 16:23:02 +08:00
9036d88fab 首页软件列表优化 2023-10-21 16:10:27 +08:00
Mr Chen
919ca8ed83 Merge pull request #491 from midoks/dev
网站统计-增加查询条件
2023-10-21 15:02:38 +08:00
e41055443e Update stats.js 2023-10-21 14:53:59 +08:00
ad15bb303f 网站统计-增加查询条件 2023-10-21 14:41:45 +08:00
Mr Chen
a6e0af5672 Merge pull request #490 from midoks/dev
centos8-php-memcached扩展安装优化
2023-10-20 22:59:02 +08:00
dbd3c86970 Update rhel.sh 2023-10-20 22:46:03 +08:00
7659e654a9 Update all_test.sh 2023-10-20 22:39:48 +08:00
32c74fd85d Update memcached.sh 2023-10-20 22:32:56 +08:00
383fd3b068 Update libmemcached.sh 2023-10-20 22:27:10 +08:00
d8aed860a7 Update libmemcached.sh 2023-10-20 22:23:18 +08:00
68a8751137 Update libmemcached.sh 2023-10-20 22:23:07 +08:00
bb0f0ced62 Update libmemcached.sh 2023-10-20 22:22:17 +08:00
04ce9541a2 Update libmemcached.sh 2023-10-20 22:18:20 +08:00
2be2565736 Update memcached.sh 2023-10-20 21:59:08 +08:00
Mr Chen
b5776f903f Merge pull request #489 from midoks/dev
php argon2 安装优化
2023-10-20 13:44:37 +08:00
5052ea11b0 php argon2 安装优化 2023-10-20 13:42:08 +08:00
a578eeef01 Update rhel.sh 2023-10-20 13:15:44 +08:00
d1dcbcb0d6 Update libmemcached.sh 2023-10-20 02:47:22 +08:00
0916e96448 Update libmemcached.sh 2023-10-20 02:26:06 +08:00
7616acccb9 Update memcached.sh 2023-10-20 02:22:16 +08:00
2499c296e7 Update rhel.sh 2023-10-20 01:56:20 +08:00
ceb41fef68 Update index.py 2023-10-20 01:40:38 +08:00
aaaefdb996 Update libsodium.sh 2023-10-20 00:49:46 +08:00
0bef98d83e Update mongodb.service.tpl 2023-10-19 22:10:18 +08:00
Mr Chen
a21ac3fa6c Merge pull request #487 from midoks/dev
mongodb安装优化
2023-10-19 00:37:08 +08:00
de9fdd6e87 Update mongodb.service.tpl 2023-10-19 00:33:23 +08:00
6991a3ecfc Update index.py 2023-10-19 00:32:06 +08:00
863b42800b 优化 2023-10-19 00:28:31 +08:00
3bf83a6202 Update install.sh 2023-10-19 00:07:10 +08:00
ee6e6f8286 Update index.py 2023-10-19 00:05:57 +08:00
7370ef9816 Update index.py 2023-10-19 00:04:38 +08:00
8572b93ed0 debian 安装mongodb的bug 2023-10-18 23:51:43 +08:00
Mr Chen
337ba1fa1e Merge pull request #486 from midoks/dev
版本升级
2023-10-18 23:35:15 +08:00
1ad11de98e 版本升级 2023-10-18 23:34:18 +08:00
a9aaf268fc Update install.sh 2023-10-18 23:31:50 +08:00
d618f36f89 Update install.sh 2023-10-18 23:28:25 +08:00
929ead12bc Update install.sh 2023-10-18 23:28:06 +08:00
89991b8417 Update install.sh 2023-10-18 23:24:12 +08:00
af8f9fb1a9 Update index.py 2023-10-18 23:21:49 +08:00
4a09695343 Update index.py 2023-10-18 23:19:41 +08:00
5aead0ad7c Update index.py 2023-10-18 23:19:33 +08:00
8324a89edb Update install.sh 2023-10-18 23:17:21 +08:00
de6ed476fb Update install.sh 2023-10-18 23:13:38 +08:00
9342e31faf Update install.sh 2023-10-18 23:01:50 +08:00
061c2d86eb Update install.sh 2023-10-18 22:57:34 +08:00
1937a6344e php升级版本 2023-10-18 22:54:59 +08:00
5e91ac8fe9 Update install.sh 2023-10-18 22:49:26 +08:00
ff32ab721f Update info.json 2023-10-18 22:46:10 +08:00
Mr Chen
8d213a2444 Merge pull request #485 from midoks/dev
系统加固提醒
2023-10-18 16:58:08 +08:00
ca10177754 Update crontab_api.py 2023-10-18 16:53:59 +08:00
Mr Chen
7cbabaa04b Merge pull request #484 from midoks/dev
OP防火墙-地区限制优化
2023-10-18 03:15:25 +08:00
805bd0a3ad Update install.sh 2023-10-18 03:13:46 +08:00
cf003d9f62 Update index.py 2023-10-18 03:12:48 +08:00
2e22b7307c OP防火墙优化 2023-10-18 03:06:59 +08:00
4d346dd6c8 Update config.json 2023-10-18 02:28:11 +08:00
35a7025530 Update init.lua 2023-10-18 02:20:23 +08:00
9ad51c81d8 Update install.sh 2023-10-18 02:13:44 +08:00
30da2fe60d Update install.sh 2023-10-18 02:11:16 +08:00
b16ca19ca8 update 2023-10-18 02:02:44 +08:00
Mr Chen
986687b829 Merge pull request #483 from midoks/dev
增加清空python库文件
2023-10-18 01:23:45 +08:00
0cec515297 Update gd.sh 2023-10-18 01:08:25 +08:00
e54ea53017 Update gd.sh 2023-10-18 01:07:46 +08:00
755901b4ca Update mw.tpl 2023-10-17 17:23:03 +08:00
90d0d3ba72 Update mw.tpl 2023-10-17 17:22:20 +08:00
f65a8a24e0 Update init_cmd.py 2023-10-14 02:24:45 +08:00
Mr Chen
2c7d50e3bc Merge pull request #482 from midoks/dev
删除部分AD
2023-10-14 02:21:58 +08:00
91a71a1eb3 update 2023-10-14 02:21:06 +08:00
Mr Chen
875acda8a5 Merge pull request #481 from midoks/dev
各种小细节的优化
2023-10-14 02:05:59 +08:00
52e138ae56 Update __init__.py 2023-10-14 02:02:41 +08:00
a769623a24 Merge branch 'master' into dev 2023-10-14 01:56:22 +08:00
d7a4e1d4be Merge branch 'master' into dev 2023-10-14 01:54:58 +08:00
Mr Chen
057e152845 Merge pull request #480 from tsymq-live/master
Update __init__.py
2023-10-14 01:53:40 +08:00
tsymq-live
f80ac8e9f0 Update __init__.py
解决gogs webhook 验证失败的问题

需要带上参数post=1来强制使用post
2023-10-14 00:24:11 +08:00
aceb26e309 Update README.md 2023-10-13 21:32:28 +08:00
1d078a63ca Update index.py 2023-10-13 16:37:23 +08:00
f0ba3d58d6 Update redis.js 2023-10-13 00:52:49 +08:00
14f2fad644 Update redis.js 2023-10-12 19:43:40 +08:00
58f0cd69b7 Update files_api.py 2023-10-12 01:47:21 +08:00
9326138c6e Update files_api.py 2023-10-12 01:46:55 +08:00
ceffb49d61 Update files_api.py 2023-10-12 01:46:32 +08:00
a4e2b2d8b4 Update files_api.py 2023-10-12 01:46:01 +08:00
1ba42fdc4b Update site_api.py 2023-10-12 01:44:00 +08:00
b0ab2e28cb Update site_api.py 2023-10-12 01:43:09 +08:00
2471784d1f Update waf_common.lua 2023-10-11 14:48:22 +08:00
Mr Chen
78049fa34f Merge pull request #477 from midoks/dev
php安装的下载文件,md5校验
2023-10-11 02:37:40 +08:00
09c25924fe php安装的下载文件,md5校验 2023-10-11 02:36:03 +08:00
e8e2487f27 Update install.sh 2023-10-11 02:16:27 +08:00
cf930aeca1 Merge branch 'master' into dev 2023-10-10 23:34:39 +08:00
e6d380c321 Merge branch 'master' into dev 2023-10-10 23:34:11 +08:00
Mr Chen
065b6430f2 Merge pull request #475 from 0honus0/master
修改flask版本过高造成的启动失败
2023-10-10 23:32:44 +08:00
Mr Chen
e1c03474eb Merge branch 'master' into master 2023-10-10 23:32:36 +08:00
Mr Chen
3aef5f7bbf Merge pull request #476 from midoks/dev
解决python flask 最新版本影响大部分安装
2023-10-10 23:31:15 +08:00
cebeb7fe90 Update requirements.txt 2023-10-10 23:28:38 +08:00
c5d8166a2a Update mw.tpl 2023-10-10 23:22:46 +08:00
ff30de33ab Update cmd.md 2023-10-10 23:22:02 +08:00
7700eb92ec Update mw.tpl 2023-10-10 23:21:09 +08:00
0c8f84e81f Update requirements.txt 2023-10-10 23:18:45 +08:00
245d026726 Update README.md 2023-10-10 23:13:13 +08:00
1ac8bf51f2 Update README.md 2023-10-10 23:11:42 +08:00
248e6b1e0e update 2023-10-10 23:06:27 +08:00
6ff5d4128b Update README.md 2023-10-10 22:52:25 +08:00
0honus0
82e39f6be4 修改flask版本过高造成的启动失败 2023-10-10 22:39:32 +08:00
Mr Chen
780dfb08a3 Merge pull request #474 from midoks/dev
debian11  python3.9 flask默认安装太高问题解决。
2023-10-10 13:30:53 +08:00
dd586576a7 Create r3.9.txt 2023-10-10 13:26:29 +08:00
Mr Chen
c77efccd19 Merge pull request #473 from midoks/dev
mysql初始安装优化
2023-10-09 20:33:52 +08:00
962b0fa9c5 mysql 优化 2023-10-09 20:32:35 +08:00
5532dcd968 Update index.py 2023-10-09 18:43:48 +08:00
ce2d060c94 Update .gitignore 2023-10-09 11:40:44 +08:00
Mr Chen
3c388ada21 Merge pull request #471 from midoks/dev
快捷命令说明
2023-10-08 02:03:11 +08:00
c81ddebcd4 Update cmd.md 2023-10-08 02:02:10 +08:00
9ff01c3cfb Update cmd.md 2023-10-08 02:01:50 +08:00
6a981e1e8f Update cmd.md 2023-10-08 01:56:51 +08:00
3643d63a90 Update cmd.md 2023-10-08 01:55:41 +08:00
Mr Chen
8560880944 Merge pull request #470 from midoks/dev
Update mw.tpl
2023-10-08 01:52:55 +08:00
4210bb87a9 Update mw.tpl 2023-10-08 01:51:52 +08:00
Mr Chen
6473d68421 Merge pull request #469 from midoks/dev
增加命令 mw db 快捷登录数据库
2023-10-08 01:50:17 +08:00
009b599831 Update mw.tpl 2023-10-08 01:47:35 +08:00
1c4536980c Update mw.tpl 2023-10-08 00:48:00 +08:00
9b62a46312 update 2023-10-08 00:46:55 +08:00
bb100b6bf2 Update mw.tpl 2023-10-08 00:42:54 +08:00
81fba581bd Update mw.tpl 2023-10-08 00:32:21 +08:00
36cc799c1a Update mw.tpl 2023-10-08 00:31:19 +08:00
6d64401e22 update 2023-10-08 00:30:35 +08:00
8e81f423f9 Update mw.tpl 2023-10-08 00:26:47 +08:00
ea4677b2c4 update 2023-10-08 00:26:34 +08:00
774cf403f1 Update push_ad.py 2023-10-06 17:05:54 +08:00
3e3e53e58b Update mw.tpl 2023-10-04 21:34:23 +08:00
Mr Chen
e0678c8b4c Merge pull request #466 from midoks/dev
gogs同步模板优化
2023-10-04 16:32:13 +08:00
c0bdf2659f Update commit.tpl 2023-10-04 15:57:23 +08:00
ae3cc4bd0b Update commit.tpl 2023-10-04 15:53:59 +08:00
0f8c9ee740 Update commit.tpl 2023-10-04 15:33:03 +08:00
4bc4ff5eda Update gogs.js 2023-10-04 15:31:49 +08:00
7568bd10d8 Update gogs.js 2023-10-04 15:16:38 +08:00
28410d2bf5 Update gogs.js 2023-10-04 15:16:17 +08:00
c56246a9d7 Update index.py 2023-10-04 15:13:17 +08:00
5770c6d3c5 Update gogs.js 2023-10-04 15:10:18 +08:00
b9fed0b6e9 Update gogs.js 2023-10-04 14:55:35 +08:00
899e58500e Update gogs.js 2023-10-04 14:54:40 +08:00
Mr Chen
c6a8841a91 Merge pull request #465 from midoks/dev
细节优化2
2023-10-01 23:53:31 +08:00
40e8393c43 Update mw.tpl 2023-10-01 23:52:41 +08:00
ec3d29fc2b Update install.sh 2023-10-01 21:12:00 +08:00
fba632c393 update 2023-10-01 20:34:27 +08:00
Mr Chen
5dec539d40 Merge pull request #464 from midoks/dev
细节优化
2023-10-01 14:33:43 +08:00
0119e72771 Update mw.tpl 2023-10-01 14:07:48 +08:00
Mr Chen
c1ffb36642 Merge pull request #463 from midoks/dev
增加mosquitto插件
2023-09-30 15:22:52 +08:00
29d8779233 update
* 增加mosquitto插件。
* redis负载状态读取优化。
2023-09-30 15:21:41 +08:00
6e9a26c331 Update README.md 2023-09-30 01:39:09 +08:00
e2a491ab97 Update index.py 2023-09-30 01:36:56 +08:00
f1fb16366c Update php.service.tpl 2023-09-30 01:16:49 +08:00
29ffc62b7c Update index.py 2023-09-30 01:12:02 +08:00
f0d8f12f89 Update README.md 2023-09-29 23:58:37 +08:00
ef36d8729e Update mosquitto.tpl 2023-09-29 23:57:30 +08:00
28bf685e73 update 2023-09-29 23:45:20 +08:00
3f424668a7 Update install.sh 2023-09-29 23:39:00 +08:00
dfa53c4c4c Update install.sh 2023-09-29 23:38:13 +08:00
0b712c7242 Update install.sh 2023-09-29 23:33:59 +08:00
101792a081 Update mosquitto.js 2023-09-29 23:31:25 +08:00
0055fa98fa update 2023-09-29 23:23:42 +08:00
52a8cc6946 Update mosquitto.service.tpl 2023-09-29 23:19:56 +08:00
3da1ff214f Update mosquitto.service.tpl 2023-09-29 23:16:58 +08:00
ed509e2d8d Update index.py 2023-09-29 23:15:47 +08:00
5dfc0f7ebb Update index.py 2023-09-29 23:13:41 +08:00
1129d5753a update 2023-09-29 23:13:07 +08:00
0c48e0fcbb Update mosquitto.service.tpl 2023-09-29 23:11:02 +08:00
6a28e72273 Update index.py 2023-09-29 23:02:57 +08:00
82fc1a3609 Update index.py 2023-09-29 23:01:03 +08:00
73ff1c664e Update index.py 2023-09-29 22:59:39 +08:00
9093d4bc3f Update index.py 2023-09-29 22:59:03 +08:00
d50936349c Update index.py 2023-09-29 22:58:20 +08:00
20d85d0bd7 Update index.py 2023-09-29 22:56:56 +08:00
fc904c9a5d update 2023-09-29 22:54:14 +08:00
59e616919f mosquitto 初始化 2023-09-29 22:48:38 +08:00
3447c1e48f Update php.service.tpl 2023-09-29 21:35:31 +08:00
d7c6879d2f Update php.service.tpl 2023-09-29 21:14:49 +08:00
c0240836f7 Update php.service.tpl 2023-09-29 19:53:58 +08:00
99c6c26859 Update push_ad.py 2023-09-29 14:24:14 +08:00
7b0e65de42 update 2023-09-28 19:35:39 +08:00
Mr Chen
29c737121b Merge pull request #462 from midoks/dev
网站统计-其他爬虫识别优化
2023-09-27 18:41:19 +08:00
318d123015 Update webstats_common.lua 2023-09-27 18:36:24 +08:00
093f8b14f8 Update webstats_common.lua 2023-09-27 18:27:20 +08:00
2f48df6013 update 2023-09-27 15:22:44 +08:00
Mr Chen
7f42ee741c Merge pull request #461 from midoks/dev
防火墙支持tcp/udp模式
2023-09-26 22:17:36 +08:00
abfb92eaa5 Update README.md 2023-09-26 22:16:32 +08:00
3f8a822d5e Update index.py 2023-09-26 21:39:32 +08:00
f9bec73252 Update firewall_api.py 2023-09-26 21:35:01 +08:00
a9530b0630 Update firewall_api.py 2023-09-26 21:34:38 +08:00
33fe1095d7 Update firewall_api.py 2023-09-26 21:32:17 +08:00
ae5a947898 Update index.py 2023-09-26 21:27:03 +08:00
b1128cbddb update 2023-09-26 21:21:42 +08:00
ead8de6e0f update 2023-09-26 20:32:00 +08:00
caf3924b09 Update config_api.py 2023-09-26 20:25:21 +08:00
526caf0497 Update firewall_api.py 2023-09-26 20:25:03 +08:00
c20dc4af94 Update firewall.js 2023-09-26 20:20:01 +08:00
be500c898e Update firewall_api.py 2023-09-26 20:13:28 +08:00
d2ccea3520 Update firewall_api.py 2023-09-26 20:10:50 +08:00
051f992e91 Update firewall_api.py 2023-09-26 20:09:41 +08:00
af6b96d18b update 2023-09-26 20:07:11 +08:00
996786a7b7 update_dev 2023-09-26 19:02:31 +08:00
42bedca172 调整 - phpMyAdmin默认端口2 2023-09-26 18:00:47 +08:00
51e3d26492 调整 - phpMyAdmin默认端口 2023-09-26 17:58:38 +08:00
5ff6ee2763 Update default.sql 2023-09-26 17:49:07 +08:00
64f0ff8ad9 Update default.sql 2023-09-26 17:39:44 +08:00
7a6f4323d2 Update default.sql 2023-09-26 17:39:17 +08:00
Mr Chen
f927914ff1 Merge pull request #460 from midoks/dev
python gevent 调整
2023-09-26 15:39:01 +08:00
02ad9c95ee Update requirements.txt 2023-09-26 15:32:59 +08:00
4d9c102e8b up 2023-09-26 15:28:53 +08:00
ebb53ada1d Update requirements.txt 2023-09-26 15:28:30 +08:00
Mr Chen
87f4307655 Merge pull request #458 from midoks/dev
SSH禁止密码登陆优化
2023-09-25 04:11:56 +08:00
21cf48b08b Update README.md 2023-09-25 04:11:11 +08:00
dd6d9cf09a Update firewall_api.py 2023-09-25 04:07:47 +08:00
e0e889bbff Update firewall_api.py 2023-09-25 04:01:31 +08:00
18b36b08a7 Update firewall_api.py 2023-09-25 03:54:37 +08:00
1389280a70 Update firewall_api.py 2023-09-25 03:54:22 +08:00
8bc9500b23 Update firewall_api.py 2023-09-25 03:52:54 +08:00
49a358ccfa Update system_api.py 2023-09-24 00:12:29 +08:00
c9bf5f59f4 Update system_api.py 2023-09-24 00:11:20 +08:00
577e5f3512 Update system_api.py 2023-09-24 00:06:20 +08:00
Mr Chen
343b815823 Merge pull request #457 from midoks/dev
网站统计安装优化
2023-09-17 23:24:42 +08:00
3819e2f470 Update install.sh 2023-09-17 23:22:56 +08:00
0e5f762919 update 2023-09-15 13:28:19 +08:00
e9eab63e99 update 2023-09-15 13:24:19 +08:00
be43b537cc Update install.sh 2023-09-15 13:23:28 +08:00
6b85710504 Update install_dev.sh 2023-09-15 13:21:53 +08:00
Mr Chen
c2d89a91ab Merge pull request #456 from midoks/dev
支持rar解压。
2023-09-15 01:08:21 +08:00
682f8309c4 支持rar解压 2023-09-15 01:07:29 +08:00
586302b575 Update config_api.py 2023-09-15 00:59:50 +08:00
4af7183dbd Update config_api.py 2023-09-15 00:43:01 +08:00
a488f106ca Update files_api.py 2023-09-15 00:37:23 +08:00
f05de84dc2 Update files_api.py 2023-09-15 00:13:05 +08:00
fe4c95276d Update files_api.py 2023-09-15 00:08:13 +08:00
abc6e8f597 支持rar 2023-09-15 00:01:37 +08:00
Mr Chen
0fc03c81db Merge pull request #455 from midoks/dev
unrar&&rar准备
2023-09-14 15:14:39 +08:00
8a6dbf22c0 加入rar,unrar 2023-09-14 14:21:31 +08:00
8c18023f64 update 2023-09-14 00:17:01 +08:00
fd521eff3f ad 2023-09-14 00:05:29 +08:00
Mr Chen
55f8e3fd72 Merge pull request #454 from midoks/dev
延长检查时间
2023-09-13 23:18:12 +08:00
1a26224b6f 延长检查时间 2023-09-13 23:17:16 +08:00
Mr Chen
f9ab290d07 Merge pull request #453 from midoks/dev
php83显示&&redis安装优化
2023-09-12 17:22:16 +08:00
70a30412a5 Update install.sh 2023-09-12 17:00:11 +08:00
ed63341750 Update site_api.py 2023-09-12 16:52:10 +08:00
81fea53bc7 Update push_notice_msg.py 2023-09-12 16:12:46 +08:00
Mr Chen
eab194f5d1 Merge pull request #452 from midoks/dev
update
2023-09-11 13:12:42 +08:00
0b5299dbe0 update 2023-09-11 13:12:08 +08:00
Mr Chen
e5f399e700 Merge pull request #451 from midoks/dev
安装时默认监控开启2
2023-09-11 12:43:57 +08:00
f7ee3a9aed Update common.py 2023-09-11 12:42:27 +08:00
aa60d52662 Update __init__.py 2023-09-11 12:39:16 +08:00
Mr Chen
9249ed7896 Merge pull request #450 from midoks/dev
安装时默认监控开启
2023-09-11 12:25:09 +08:00
a470b3c53c Update common.py 2023-09-11 12:24:27 +08:00
0851e95fb2 Update common.py 2023-09-11 12:17:08 +08:00
Mr Chen
b6f7334f5e Merge pull request #449 from midoks/dev
0.16.1
2023-09-11 11:52:37 +08:00
27b77f8570 Update push_notice_msg.py 2023-09-10 23:18:13 +08:00
3d888961bc Update zip.sh 2023-09-10 22:02:43 +08:00
5edc4fb713 Update install.sh 2023-09-10 21:33:37 +08:00
214954b298 Update install.sh 2023-09-10 21:29:29 +08:00
13b0b2752e Update info.json 2023-09-10 21:23:27 +08:00
a2918e651f Update common.py 2023-09-10 14:26:00 +08:00
55dd1d7d5a update 2023-09-10 14:06:41 +08:00
df50eceeed update 2023-09-10 14:06:19 +08:00
e1de6dd514 Update install_dev.sh 2023-09-10 14:04:13 +08:00
08328bbb86 Update install_dev.sh 2023-09-10 14:03:53 +08:00
6abc5b365b Update README.md 2023-09-10 12:37:34 +08:00
6cc1279729 update 2023-09-10 12:36:23 +08:00
aeafaa2832 update 2023-09-10 12:25:51 +08:00
e74a511763 Update euler.sh 2023-09-10 12:25:01 +08:00
f86159eeac Update README.md 2023-09-10 12:20:02 +08:00
8097164475 支持华为欧拉系统 2023-09-10 12:19:14 +08:00
4ebb44e4c0 Update info.json 2023-09-09 22:32:52 +08:00
584f93461a update 2023-09-09 12:13:16 +08:00
e21f0a53e5 Update update_dev.sh 2023-09-09 11:57:34 +08:00
1d31a0eae0 Update update.sh 2023-09-09 11:57:15 +08:00
ded33ed6b4 update 2023-09-09 11:55:40 +08:00
b703758d0e update 2023-09-09 11:37:18 +08:00
33493ac03c up 2023-09-09 11:35:08 +08:00
74e63c5bbd Update install.sh 2023-09-09 11:33:38 +08:00
f2d34e5551 Update lib.sh 2023-09-09 11:32:02 +08:00
89c529f44c Update install_dev.sh 2023-09-09 11:28:53 +08:00
56b728601b MySQL/MYSQL-YUM/MySQL-APT添加重置master功能。
mysql主从同步数据过期时,可使用此命令
2023-09-07 21:17:56 +08:00
bf1d2daeaa Update push_notice_msg.py 2023-09-07 20:37:46 +08:00
cac45b3732 update 2023-09-07 13:36:54 +08:00
ee498b7094 Update install.sh 2023-09-07 13:04:30 +08:00
385113fe4d Update push_notice_msg.py 2023-09-07 12:58:53 +08:00
5dbfc5bd51 Update README.md 2023-09-06 19:34:09 +08:00
b76e0f606a Update install.sh 2023-09-06 19:24:25 +08:00
047702f26d Update debian.sh 2023-09-06 17:48:40 +08:00
eb219caada Update config_api.py 2023-09-04 18:45:49 +08:00
78b2046f19 Update README.md 2023-09-04 18:45:10 +08:00
Mr Chen
5fe85730e6 Merge pull request #447 from midoks/dev
0.16.1-提前版,合并不release.
2023-09-04 18:44:41 +08:00
adb72ef33b Update config_api.py 2023-09-04 18:40:39 +08:00
d9c8a46031 Update install.sh 2023-09-04 18:35:12 +08:00
24f520bdc9 Update install.sh 2023-09-04 18:30:40 +08:00
7492756997 Update install.sh 2023-09-04 18:23:08 +08:00
616af16635 Update install.sh 2023-09-04 18:15:53 +08:00
916d39e205 Update install.sh 2023-09-04 18:15:21 +08:00
017958b6b0 Update install.sh 2023-09-04 18:07:52 +08:00
d403c4c4ad Update opensuse.sh 2023-09-04 17:43:28 +08:00
9f1481db07 Update mw_api.py 2023-09-04 13:16:42 +08:00
47e0ec5fae update 2023-09-04 13:14:08 +08:00
a2377d960e 给防盗链增加禁止空来源 2023-09-04 12:47:12 +08:00
60f1ce2575 update 2023-09-03 00:16:01 +08:00
0e368f7157 Update index.py 2023-09-03 00:01:20 +08:00
3cf5c5b190 Update gdriveclient.py 2023-09-02 23:45:33 +08:00
4ed07beca3 Update gdriveclient.py 2023-09-02 23:43:30 +08:00
cee9619883 update 2023-09-02 23:30:02 +08:00
5db4a96fc9 Update install.sh 2023-09-02 23:17:38 +08:00
2e6b7bf5cd Update install.sh 2023-09-02 23:15:52 +08:00
f404caa763 Update install.sh 2023-09-02 22:59:37 +08:00
062a518492 gdrive云备份开始测试 2023-09-02 22:47:01 +08:00
0310cab3ae Update msonedrive.js 2023-09-02 21:06:30 +08:00
4a0b8df57f Update index.html 2023-09-01 16:28:44 +08:00
Mr Chen
63e427b488 Merge pull request #445 from midoks/dev
0.16.0
2023-08-30 23:26:30 +08:00
c688c692f9 0.16.0
yum install -y libargon2-devel
apt install -y libargon2-dev

OP防火墙 - 重载即可

* 增加PHP83。
* 面板日志单独为一页并加入日志审计功能。
* 修复webssh服务器读取问题。
* 站点批量删除修复。
* OP防火墙-修复`自动强制验证`关闭不生效。
* 新增OneDrive备份插件。
* FTP备份优化。
2023-08-30 23:24:49 +08:00
c9f074b319 FTP备份优化 2023-08-30 20:48:54 +08:00
38b4042c5a Update msonedrive.js 2023-08-30 19:51:52 +08:00
bf32390f0e Update README.md 2023-08-30 18:40:21 +08:00
91a9be4cc0 Update mw.py 2023-08-30 18:26:08 +08:00
be5f438f84 Delete config.conf 2023-08-30 17:47:38 +08:00
2705fd7ba2 Update config_api.py 2023-08-30 17:45:21 +08:00
4de7e72f0a Update test.py 2023-08-30 17:37:49 +08:00
da668c723c onedrive插件OK 2023-08-30 17:35:41 +08:00
20624217bf Update backup.py 2023-08-30 15:11:17 +08:00
2403af08c6 Update crontab.js 2023-08-30 13:35:52 +08:00
2350b73896 Update layout.html 2023-08-28 23:50:14 +08:00
464fa9cc0f Update cert_api.py 2023-08-28 23:06:16 +08:00
9a79f0b728 Update README.md 2023-08-28 22:57:47 +08:00
52cfff7038 OP防火墙-修复自动强制验证关闭不生效。 2023-08-28 22:50:03 +08:00
8d42f8137c Update .gitignore 2023-08-28 11:45:37 +08:00
41fb9759a3 Create readme.md 2023-08-28 11:38:44 +08:00
7d3833b2ef Update index.py 2023-08-27 19:56:17 +08:00
0badb053e0 站点批量删除修复。 2023-08-27 19:46:56 +08:00
80b9e7cbf7 Update index.py 2023-08-27 19:00:13 +08:00
94df21192f Update dynamic-tracking.js 2023-08-27 18:50:25 +08:00
346d687368 Update simple_trace.sh 2023-08-27 18:34:47 +08:00
46ec655365 Update simple_trace.sh 2023-08-27 18:28:52 +08:00
e852020c38 Update simple_trace.sh 2023-08-27 17:51:18 +08:00
d06e83676b Update simple_trace.sh 2023-08-27 17:50:32 +08:00
7a511f8217 Update dynamic-tracking.js 2023-08-27 17:09:49 +08:00
8c5021b9dc Update simple_trace.sh 2023-08-27 16:48:05 +08:00
b7d50540ac Create ubuntu.sh 2023-08-27 16:45:06 +08:00
2a95fcc59a Update install.sh 2023-08-27 16:29:52 +08:00
2b04cb3947 Update dynamic-tracking.js 2023-08-27 16:17:15 +08:00
7f0ad25342 Update simple_macosx_trace.sh 2023-08-27 15:51:42 +08:00
09f7e6f5b5 update 2023-08-27 15:50:52 +08:00
17a7ffa0b4 update 2023-08-27 15:38:00 +08:00
ba6dcabd04 Update simple_trace.sh 2023-08-27 14:29:17 +08:00
0ff5c170d3 update 2023-08-27 14:28:26 +08:00
b78e020993 Update index.py 2023-08-26 23:14:06 +08:00
9586eeda07 up 2023-08-26 23:02:17 +08:00
ea462aa51d update 2023-08-26 22:43:13 +08:00
aaac8b5239 文件管理-svg预览优化 2023-08-26 22:38:27 +08:00
2b86c375b0 动态追踪- svg查看功能 2023-08-26 22:23:13 +08:00
600e2688f9 update 2023-08-26 21:11:34 +08:00
3537bc520f Update dynamic-tracking.js 2023-08-26 17:47:06 +08:00
9ffdffadd6 Update README.md 2023-08-26 17:42:59 +08:00
3942f2fbf5 Update index.py 2023-08-26 17:35:48 +08:00
8ff2f217b3 Update index.py 2023-08-26 17:23:34 +08:00
480bd154c6 Update index.py 2023-08-26 17:21:20 +08:00
5eb3ed4524 Update README.md 2023-08-26 16:49:19 +08:00
50e78ae6f6 Update logs.html 2023-08-26 16:22:08 +08:00
0ec9b31c2f update 2023-08-26 16:17:54 +08:00
191b54821e Update logs_api.py 2023-08-26 16:07:19 +08:00
c2188a2c7e update 2023-08-26 16:04:35 +08:00
d23b64a92c Update update_dev.sh 2023-08-26 16:03:29 +08:00
3ae97e1c75 Update config_api.py 2023-08-26 15:59:04 +08:00
f0e7361436 Update logs_api.py 2023-08-26 15:57:54 +08:00
5f85d41352 日志审计转移完成 2023-08-26 15:55:09 +08:00
6fc8803446 update 2023-08-26 00:29:44 +08:00
b3120f3435 日志功能从防火墙提出来 2023-08-26 00:24:04 +08:00
f9f1b1a113 update 2023-08-25 21:21:58 +08:00
2645297cee update 2023-08-25 21:20:56 +08:00
7f171f5986 update 2023-08-25 20:56:53 +08:00
c3b3e3b01c update 2023-08-25 16:55:44 +08:00
3824b394ad php argon2 2023-08-25 16:55:32 +08:00
270660fb53 update 2023-08-25 15:26:23 +08:00
c4171a9506 Update install.sh 2023-08-25 15:09:54 +08:00
222943e312 Update index.py 2023-08-24 22:35:44 +08:00
92f8a4e949 Update mw.tpl 2023-08-24 22:12:02 +08:00
eff1f55a21 Update cli.sh 2023-08-24 22:10:43 +08:00
0b54da9747 Update freebsd.sh 2023-08-24 21:39:29 +08:00
0bec57937f Update index.py 2023-08-24 21:31:35 +08:00
6c64f8ee5e Update install.sh 2023-08-24 21:25:15 +08:00
b65ad9de80 Update install.sh 2023-08-24 21:18:49 +08:00
07be263d81 Update install.sh 2023-08-24 21:12:53 +08:00
bf9cb52fec Update index.py 2023-08-24 21:07:42 +08:00
f7135a6ded Update index.py 2023-08-24 21:02:36 +08:00
7b98dde1aa Update index.py 2023-08-24 21:02:26 +08:00
b51f3fdd68 update 2023-08-24 21:00:47 +08:00
e02c52df49 Update freebsd.sh 2023-08-24 20:58:26 +08:00
730bc7171b Update index.py 2023-08-24 20:55:57 +08:00
c065eabb48 Update index.py 2023-08-24 20:47:49 +08:00
1ad1e3326d php扩展库读取优化 2023-08-24 20:45:25 +08:00
d4346a51bc Update crontab_api.py 2023-08-24 20:22:53 +08:00
8260cc5f4a Update crontab_api.py 2023-08-24 20:12:50 +08:00
021b299b7d Update mw.tpl 2023-08-24 20:09:53 +08:00
a767e7e578 Update index.py 2023-08-24 20:05:08 +08:00
57da2aef27 Update freebsd.sh 2023-08-24 19:48:06 +08:00
5b43438cb1 Update index.py 2023-08-24 19:46:02 +08:00
7ab88a1bea Update index.py 2023-08-24 19:05:11 +08:00
31291a13c7 Update index.py 2023-08-24 18:58:59 +08:00
43d0b75d98 Update index.py 2023-08-24 18:58:35 +08:00
5490197b8a Update index.py 2023-08-24 18:58:16 +08:00
8f03574bce update 2023-08-24 18:56:19 +08:00
94487e0b3d Update index.py 2023-08-24 18:54:09 +08:00
45cc0159af Update index.py 2023-08-24 18:48:07 +08:00
504a618eb1 Update index.py 2023-08-24 18:33:48 +08:00
5e25849464 Update index.py 2023-08-24 18:33:22 +08:00
9bb59a1559 Update index.py 2023-08-24 18:10:07 +08:00
6883316efc Update index.py 2023-08-24 18:09:16 +08:00
de7ea503e5 update 2023-08-24 18:03:23 +08:00
4fcad95c79 Update index.py 2023-08-24 15:28:10 +08:00
75dc1bd70d Update freebsd.sh 2023-08-24 15:18:38 +08:00
44758e3e55 Update index.py 2023-08-24 15:02:20 +08:00
140624e62f Update index.py 2023-08-24 14:47:01 +08:00
65f90b473c Update index.py 2023-08-24 14:44:59 +08:00
0a089fcedf Update index.py 2023-08-24 14:41:58 +08:00
010624023f update 2023-08-24 14:39:32 +08:00
9399a14a92 update 2023-08-24 12:52:10 +08:00
2875b40e62 Update README.md 2023-08-23 20:15:28 +08:00
78c3686091 Update freebsd.sh 2023-08-23 13:12:29 +08:00
d7447197ec Update freebsd.sh 2023-08-22 19:58:23 +08:00
9b64ec5c6d Update freebsd.sh 2023-08-22 18:48:18 +08:00
dad51dad77 Update files_api.py 2023-08-22 18:48:07 +08:00
d89751f733 update 2023-08-22 18:25:46 +08:00
1dc486711b Update install.sh 2023-08-22 17:42:34 +08:00
60a2f85f02 Update install.sh 2023-08-22 17:41:57 +08:00
830d387ddb up 2023-08-22 17:37:53 +08:00
ae225780f9 Update system_api.py 2023-08-22 17:27:21 +08:00
e0a0a82d68 update 2023-08-22 17:25:54 +08:00
0b23c5f330 update 2023-08-22 17:18:32 +08:00
fb01c68f5a Update mw.py 2023-08-22 17:09:26 +08:00
5755121fa5 Update mw.py 2023-08-22 17:05:23 +08:00
3d1c613864 Update mw.py 2023-08-22 17:02:39 +08:00
9590c4bb7d Update mw.py 2023-08-22 17:01:45 +08:00
32c0bdf093 Update system_api.py 2023-08-22 16:52:15 +08:00
4f5424a746 Update freebsd.sh 2023-08-22 16:36:56 +08:00
81ba3bce9d Update freebsd.sh 2023-08-22 16:21:24 +08:00
22b3a1bc42 Update op_waf.js 2023-08-21 23:15:10 +08:00
df9a34aa31 Update index.py 2023-08-21 22:33:33 +08:00
2400213533 up 2023-08-21 22:20:51 +08:00
465eb118a9 0.16.0
改版为【老子面板】
2023-08-21 20:28:06 +08:00
7e81aa109f Update all_test.sh 2023-08-21 19:49:47 +08:00
b23b41c7a7 Update phplib.conf 2023-08-21 19:22:19 +08:00
724a77ae81 Update install.sh 2023-08-21 19:17:37 +08:00
3499ed74ee Update info.json 2023-08-21 19:13:36 +08:00
52997049e2 Update layout.html 2023-08-21 19:11:28 +08:00
a96a36b087 Create install.sh 2023-08-21 19:02:52 +08:00
5926f688a6 Update macos.sh 2023-08-21 00:41:26 +08:00
1b754f5c43 Update push_notice_msg.py 2023-08-21 00:12:30 +08:00
c4c20de520 Update install.sh 2023-08-20 22:37:42 +08:00
616895785f Update init_cmd.py 2023-08-20 20:37:30 +08:00
29d6c8740a Update receive_music163_search.py 2023-08-20 20:35:33 +08:00
64aa9a9d01 Update receive_music163_search.py 2023-08-20 19:46:30 +08:00
ffbe8ba6d4 Update receive_music163_search.py 2023-08-20 19:41:04 +08:00
ed39c5d243 Update receive_music163_search.py 2023-08-20 16:56:48 +08:00
4bb2115040 Update receive_music163_search.py 2023-08-20 15:32:16 +08:00
6b0cf8129d Update receive_music163_search.py 2023-08-20 15:11:19 +08:00
ab7bbe942b Update receive_music163_search.py 2023-08-20 15:11:01 +08:00
a8a3fa1754 update 2023-08-20 15:10:58 +08:00
e343f33b47 Update receive_faq.py 2023-08-20 14:58:48 +08:00
f55367ab5e Update index.py 2023-08-20 00:26:17 +08:00
050bd158c1 update 2023-08-20 00:25:46 +08:00
d35a680fec update 2023-08-19 20:11:08 +08:00
4a4ddeaabe Update system_api.py 2023-08-19 00:17:23 +08:00
0e74b0cccf Update system_api.py 2023-08-19 00:15:39 +08:00
806e29577e Update system_api.py 2023-08-19 00:14:47 +08:00
75923f5363 Update system_api.py 2023-08-19 00:13:19 +08:00
834196883c Update index.py 2023-08-18 00:53:15 +08:00
341826c641 Update index.py 2023-08-18 00:52:28 +08:00
1bd1ce5b31 Update index.py 2023-08-18 00:42:20 +08:00
Mr Chen
eef504e172 Merge pull request #442 from midoks/dev
OP防火墙测试功能修复
2023-08-18 00:20:06 +08:00
a0434ef7d6 Update index.py 2023-08-18 00:13:17 +08:00
893bbb8ea7 Update install.sh 2023-08-17 22:49:01 +08:00
92e3e277cc Update info.json 2023-08-17 21:38:44 +08:00
58e48bf013 Update info.json 2023-08-17 21:36:41 +08:00
644760d5b0 update 2023-08-17 21:35:37 +08:00
d6ccd81def 动态追踪 - 专业人员使用 2023-08-17 21:29:54 +08:00
Mr Chen
d32e71b2d9 Merge pull request #441 from midoks/dev
centos9 mysql8安装需要patchelf
2023-08-17 18:43:28 +08:00
ae9e56c56c Update rhel.sh 2023-08-17 18:41:42 +08:00
d7c0285bbf Update rhel.sh 2023-08-17 18:38:43 +08:00
5cc0957ffd Update rhel.sh 2023-08-17 18:38:18 +08:00
Mr Chen
1e44d64ace Merge pull request #440 from midoks/dev
mysql安装优化
2023-08-17 17:55:46 +08:00
907851c413 update 2023-08-17 17:29:04 +08:00
0faafc654b Update install.sh 2023-08-17 16:58:36 +08:00
Mr Chen
4cdc399b77 Merge pull request #439 from midoks/dev
mongodb脚本升级和检查openresty状态优化
2023-08-17 16:25:46 +08:00
a085e5b1ea Update mw.py 2023-08-17 16:20:07 +08:00
bdbf4dddc6 Update mongodb.tpl 2023-08-17 15:39:45 +08:00
5cee2f2b6d mongodb centos 2023-08-17 15:36:13 +08:00
Mr Chen
b9652a7940 Merge pull request #437 from midoks/dev
0.15.4
2023-08-17 14:53:59 +08:00
dc7ddbcf6b up 2023-08-17 14:52:52 +08:00
87a8bfe59e Update freebsd.sh 2023-08-17 13:49:30 +08:00
cfdd5e5f73 Update freebsd.sh 2023-08-17 13:48:38 +08:00
e2acf621ca Update freebsd.sh 2023-08-17 13:46:21 +08:00
0711a922d2 Update freebsd.sh 2023-08-17 13:45:05 +08:00
055ea0ca0c Update README.md 2023-08-17 13:23:26 +08:00
772d9c50f6 update 2023-08-17 13:18:46 +08:00
0809b51725 updaate 2023-08-17 12:27:31 +08:00
4e901e6750 update 2023-08-17 11:51:01 +08:00
5c62397234 update 2023-08-17 11:39:40 +08:00
63021a3eab Create centos.sh 2023-08-17 11:35:02 +08:00
e617b07790 update 2023-08-17 11:32:03 +08:00
960eeed4ce update 2023-08-17 11:18:25 +08:00
ccf020bf6b Update index.py 2023-08-17 11:14:56 +08:00
c4918d8cd7 update 2023-08-17 11:09:50 +08:00
b3d3ceb058 update 2023-08-17 11:02:39 +08:00
17a301c745 update 2023-08-17 00:56:07 +08:00
1bfa2ae3ab update 2023-08-17 00:52:43 +08:00
9be5dcfd8a Update index.py 2023-08-17 00:47:29 +08:00
d9e8f1d4ad Update ubuntu.sh 2023-08-17 00:43:22 +08:00
d85f544773 Create ubuntu.sh 2023-08-17 00:35:43 +08:00
577ac1f8ee Update debian.sh 2023-08-17 00:24:02 +08:00
ed117a1b40 Update debian.sh 2023-08-17 00:21:44 +08:00
9d54f0b6cd Create debian.sh 2023-08-17 00:19:23 +08:00
707eced7bf Create debian.sh 2023-08-17 00:16:28 +08:00
dd96833c09 Update index.py 2023-08-17 00:10:38 +08:00
4c61143918 update 2023-08-17 00:04:19 +08:00
8cb8a1bc70 update 2023-08-16 23:20:22 +08:00
c55c3c23d1 up 2023-08-16 22:37:31 +08:00
04e6b9367a Update index.py 2023-08-16 22:24:41 +08:00
f4f25b8ab3 Update index.py 2023-08-16 22:20:12 +08:00
a0b0b9b294 update 2023-08-16 22:18:31 +08:00
699ad0b8ca Update debian.sh 2023-08-16 22:11:39 +08:00
a45eaf1c3b Update debian.sh 2023-08-16 22:09:35 +08:00
0f51a6d481 update 2023-08-16 22:06:43 +08:00
142d5f7ed8 update 2023-08-16 22:00:57 +08:00
72bd528a24 update 2023-08-16 21:40:41 +08:00
af2dc0585b up 2023-08-16 18:27:12 +08:00
0a0021b09d Update install.sh 2023-08-16 13:46:00 +08:00
c5811d4494 Update install.sh 2023-08-16 12:11:11 +08:00
e329892cd2 Update openssl.sh 2023-08-16 11:32:40 +08:00
368324a813 Update install.sh 2023-08-16 11:28:52 +08:00
6a7cc4f054 Update install.sh 2023-08-16 11:27:54 +08:00
1d3cba599c Update install.sh 2023-08-16 11:15:14 +08:00
7d902a50eb Update install.sh 2023-08-16 11:09:48 +08:00
25feb7c0ad Update install.sh 2023-08-16 11:07:32 +08:00
e15d1716e5 Update install.sh 2023-08-16 11:02:48 +08:00
ee16e0142e Update install.sh 2023-08-16 10:59:15 +08:00
68e06aa8f5 u 2023-08-16 10:52:58 +08:00
d88003ca52 Update install.sh 2023-08-16 03:55:40 +08:00
8757c646f6 Update index.py 2023-08-16 03:49:13 +08:00
c3e9d8aa4c update 2023-08-16 03:45:39 +08:00
7e3983f612 update 2023-08-16 03:25:46 +08:00
a4e43b492d OP防火墙-加入地区限制 2023-08-16 02:53:29 +08:00
1f57517ea7 Update push_notice_msg.py 2023-08-15 09:47:44 +08:00
b2fe35771d up 2023-08-15 00:00:44 +08:00
00ce3e00d3 update 2023-08-14 20:16:16 +08:00
c7c28731a4 update 2023-08-14 19:42:08 +08:00
3305eab770 update 2023-08-14 18:30:29 +08:00
b595359f38 Update index.py 2023-08-14 18:29:00 +08:00
5dc06b90ca Update init.lua 2023-08-14 12:56:59 +08:00
651fa7672c Update layout.html 2023-08-14 11:53:53 +08:00
7a0db5abef Update layout.html 2023-08-14 11:52:51 +08:00
d21a5dfacc Update push_notice_msg.py 2023-08-14 09:15:50 +08:00
0c49749b63 Update waf_maxminddb.lua 2023-08-14 00:11:02 +08:00
11bb65a739 Update index.py 2023-08-13 22:03:55 +08:00
ce44353cbf debug 1 2023-08-13 21:13:13 +08:00
2e5c5ef5b9 update 2023-08-13 18:32:30 +08:00
Mr Chen
d1b687476b Merge pull request #436 from midoks/dev
0.15.4
2023-08-13 16:08:33 +08:00
a46eabce10 update 2023-08-13 16:06:40 +08:00
08e378a3e4 Update push_ad.py 2023-08-13 16:02:29 +08:00
c80ce63a4b Update push_notice_msg.py 2023-08-13 16:02:07 +08:00
72bb94df42 Update README.md 2023-08-13 15:26:45 +08:00
e9b7aca47a Update imagemagick.sh 2023-08-13 15:20:26 +08:00
f25d4f5a4f Update imagemagick.sh 2023-08-13 15:18:25 +08:00
59fcef76fe Update imagemagick.sh 2023-08-13 15:15:10 +08:00
4ab6ccbcbb Update imagemagick.sh 2023-08-13 15:14:22 +08:00
fd457df3c8 up 2023-08-13 15:04:54 +08:00
147bec02a5 Update phplib.conf 2023-08-13 14:58:38 +08:00
34c126fbb7 Update ioncube.sh 2023-08-13 14:57:41 +08:00
4d21c920a8 Update all_test.sh 2023-08-13 14:56:25 +08:00
2d810fe7ab Update opcache.sh 2023-08-13 14:52:34 +08:00
fb5260b9a5 Update opcache.sh 2023-08-13 14:50:24 +08:00
32b5542534 Update all_test.sh 2023-08-13 14:46:15 +08:00
c665486122 Update redis.sh 2023-08-13 14:44:11 +08:00
d3b885b1f9 Update redis.sh 2023-08-13 14:43:45 +08:00
e476e36420 Update solr.sh 2023-08-13 14:37:24 +08:00
587503dc67 Update solr.sh 2023-08-13 14:31:18 +08:00
cecfe9470f Update imagemagick.sh 2023-08-13 14:23:54 +08:00
abc37acacc Update all_test.sh 2023-08-13 14:18:56 +08:00
e0197fef3a Update eaccelerator.sh 2023-08-13 14:13:32 +08:00
04c4e7ddc8 Update xdebug.sh 2023-08-13 14:10:08 +08:00
6fb3e29a91 Update intl.sh 2023-08-13 14:01:10 +08:00
66fe66b479 update 2023-08-13 13:59:07 +08:00
4329d2470c update 2023-08-13 13:57:46 +08:00
0cd4527234 Update phalcon.sh 2023-08-13 13:44:07 +08:00
bdba9149f2 update 2023-08-13 13:43:04 +08:00
e05f7a9c3f Update seaslog.sh 2023-08-13 13:41:46 +08:00
bddd81c94d Update zlib.sh 2023-08-13 13:40:54 +08:00
f470392382 Update swoole.sh 2023-08-13 13:39:55 +08:00
895a250f06 update 2023-08-13 13:39:14 +08:00
dd579b7e5c update 2023-08-13 13:33:47 +08:00
cd0653d092 Update memcache.sh 2023-08-13 13:32:37 +08:00
f2bc938ade Update memcache.sh 2023-08-13 13:32:18 +08:00
dc694cae35 Update gettext.sh 2023-08-13 13:30:44 +08:00
0b98e40fec Update iconv.sh 2023-08-13 13:29:34 +08:00
10c40800ff Update mcrypt.sh 2023-08-13 13:28:38 +08:00
424d9fa799 Update intl.sh 2023-08-13 13:28:06 +08:00
1350fc7a4a Update gd_old.sh 2023-08-13 13:26:22 +08:00
d678ade262 Update pcntl.sh 2023-08-13 13:24:54 +08:00
0b0b0bc9c5 Update bcmath.sh 2023-08-13 13:22:46 +08:00
f3eee40e1e Update openssl.sh 2023-08-13 12:15:43 +08:00
8e0327a084 Update openssl.sh 2023-08-13 12:14:23 +08:00
0a4b5529b9 Update install.sh 2023-08-13 11:59:08 +08:00
a8c17e1f3c update 2023-08-13 11:55:33 +08:00
4d242dd322 update 2023-08-13 11:49:54 +08:00
272a08f4eb Update install.sh 2023-08-13 11:45:15 +08:00
453009da40 Update install.sh 2023-08-13 11:39:20 +08:00
9c8880e1bb Update install.sh 2023-08-13 10:49:24 +08:00
4f716830ef update 2023-08-13 10:46:54 +08:00
b4d799f8bd up 2023-08-13 10:14:22 +08:00
e9fc7d5344 up 2023-08-13 01:42:50 +08:00
585d3d1839 Update install.sh 2023-08-13 00:12:35 +08:00
3278dd23b5 Update install.sh 2023-08-13 00:08:50 +08:00
5b406eaeb1 Update my8.0.cnf 2023-08-12 21:48:48 +08:00
0a354f649d mysql添加可过滤的同步错误 2023-08-12 21:11:32 +08:00
176dd4a5b8 Update install.sh 2023-08-12 20:13:44 +08:00
4bb9cc2d67 Update config_api.py 2023-08-12 17:05:12 +08:00
f1edb26540 up 2023-08-12 17:04:56 +08:00
0692537cbd update 2023-08-12 16:41:15 +08:00
0710ca590a Update ubuntu.sh 2023-08-12 15:46:44 +08:00
c19b12e8df Update swoole.sh 2023-08-12 15:37:40 +08:00
99eeee19ef Update all_test.sh 2023-08-12 15:19:10 +08:00
fff3707031 Update solr.sh 2023-08-12 15:11:49 +08:00
0d0cb4add1 Update phalcon.sh 2023-08-12 15:06:52 +08:00
5ed37443da Update phalcon.sh 2023-08-12 14:47:18 +08:00
25b836e6f5 Update memcached.sh 2023-08-12 14:43:40 +08:00
4ca5c8e1a8 Merge branch 'master' into dev 2023-08-12 14:38:18 +08:00
b522287a87 Merge branch 'master' into dev 2023-08-12 14:37:36 +08:00
Mr Chen
05cec7e0bf Merge pull request #435 from msycn/master
修复Openssl 1.1.1 重大漏洞/更新MySQL到8.0.34/更新php到8.2.8/更新redis到7.0.12
2023-08-12 14:36:42 +08:00
msycn
b731868e06 Update openssl.sh 1.1.1 to 3.0.10
最新的稳定版本是 3.1 系列,支持到 2025 年 3 月 14 日。还提供 3.0 系列,它是长期支持 (LTS) 版本,支持到 2026 年 9 月 7 日。之前的 LTS 版本(1.1.1 系列)是 也可用并支持到 2023 年 9 月 11 日。所有旧版本(包括 1.1.0、1.0.2、1.0.0 和 0.9.8)现已不再支持,不应使用。 我们鼓励这些旧版本的用户尽快升级到3.1或3.0。 提供了对 1.0.2 的扩展支持,以获取该版本的安全修复程序。

The latest stable version is the 3.1 series supported until 14th March 2025. Also available is the 3.0 series which is a Long Term Support (LTS) version and is supported until 7th September 2026. The previous LTS version (the 1.1.1 series) is also available and is supported until 11th September 2023. All older versions (including 1.1.0, 1.0.2, 1.0.0 and 0.9.8) are now out of support and should not be used. Users of these older versions are encouraged to upgrade to 3.1 or 3.0 as soon as possible. Extended support for 1.0.2 to gain access to security fixes for that version is available.
2023-08-12 00:57:04 +08:00
msycn
9c4ceca41f Update install.sh 8.2.7 to 8.2.8
Version 8.2.8
06 Jul 2023
CLI:
Fixed bug GH-11246 (cli/get_set_process_title fails on MacOS).
Core:
Fixed build for the riscv64 architecture/GCC 12.
Curl:
Fixed bug GH-11433 (Unable to set CURLOPT_ACCEPT_ENCODING to NULL).
Date:
Fixed bug GH-11455 (Segmentation fault with custom object date properties).
DOM:
Fixed bugs GH-11288 and GH-11289 and GH-11290 and GH-9142 (DOMExceptions and segfaults with replaceWith).
Fixed bug GH-10234 (Setting DOMAttr::textContent results in an empty attribute value).
Fix return value in stub file for DOMNodeList::item.
Fix spec compliance error with '*' namespace for DOMDocument::getElementsByTagNameNS.
Fix DOMElement::append() and DOMElement::prepend() hierarchy checks.
Fixed bug GH-11347 (Memory leak when calling a static method inside an xpath query).
Fixed bug #67440 (append_node of a DOMDocumentFragment does not reconcile namespaces).
Fixed bug #81642 (DOMChildNode::replaceWith() bug when replacing a node with itself).
Fixed bug #77686 (Removed elements are still returned by getElementById).
Fixed bug #70359 (print_r() on DOMAttr causes Segfault in php_libxml_node_free_list()).
Fixed bug #78577 (Crash in DOMNameSpace debug info handlers).
Fix lifetime issue with getAttributeNodeNS().
Fix "invalid state error" with cloned namespace declarations.
Fixed bug #55294 and #47530 and #47847 (various namespace reconciliation issues).
Fixed bug #80332 (Completely broken array access functionality with DOMNamedNodeMap).
Opcache:
Fix allocation loop in zend_shared_alloc_startup().
Access violation on smm_shared_globals with ALLOC_FALLBACK.
Fixed bug GH-11336 (php still tries to unlock the shared memory ZendSem with opcache.file_cache_only=1 but it was never locked).
OpenSSL:
Fixed bug GH-9356 Incomplete validation of IPv6 Address fields in subjectAltNames (James Lucas, Jakub Zelenka).
PCRE:
Fix preg_replace_callback_array() pattern validation.
PGSQL:
Fixed intermittent segfault with pg_trace.
Phar:
Fix cross-compilation check in phar generation for FreeBSD.
SPL:
Fixed bug GH-11338 (SplFileInfo empty getBasename with more than one slash).
Standard:
Fix access on NULL pointer in array_merge_recursive().
Fix exception handling in array_multisort().
SQLite3:
Fixed bug GH-11451 (Invalid associative array containing duplicate keys).
2023-08-12 00:52:40 +08:00
msycn
22d266e710 Update redis 7.0.4 to 7.0.12 2023-08-12 00:50:36 +08:00
msycn
d35bf118ff Update install.sh to 8.0.34 2023-08-12 00:48:17 +08:00
msycn
1adb2f751c Update MySQL to 8.0.34
Update MySQL to 8.0.34
2023-08-12 00:46:07 +08:00
54e743037e Update index.py 2023-08-11 21:04:46 +08:00
6debb93fd1 Update init.lua 2023-08-11 21:01:17 +08:00
7229f9c569 Update index.py 2023-08-11 20:59:34 +08:00
844dcbda00 cf验证问题解决 2023-08-11 20:58:52 +08:00
af2b45a6f4 Update index.py 2023-08-11 20:54:37 +08:00
d848d41a71 Update index.py 2023-08-11 20:44:59 +08:00
826ebfb2e5 Update init.lua 2023-08-11 20:05:04 +08:00
e1807c1585 Update index.py 2023-08-11 17:17:08 +08:00
6e9d5a19c0 关于强制性验证优化 2023-08-11 17:15:47 +08:00
6eadad5db4 OP防火墙部分优化 2023-08-11 12:56:07 +08:00
2b2fc08120 Update index.py 2023-08-11 01:20:45 +08:00
175061884d update 2023-08-11 01:11:45 +08:00
cc3fa8ac95 Update init.lua 2023-08-11 00:51:54 +08:00
c9d736e338 update 2023-08-10 22:35:08 +08:00
e4437e42f3 Update site_api.py 2023-08-10 21:19:49 +08:00
644fc2c81f Update mw.py 2023-08-10 21:09:59 +08:00
d2314bf26f Update push_notice_msg.py 2023-08-10 18:44:22 +08:00
Mr Chen
c17314b634 Merge pull request #434 from midoks/dev
MySQL,MariaDB数据库主从同步及多源同步
2023-08-10 11:32:24 +08:00
92a4b28fbf mariadb,mysql多源同步支持 2023-08-10 11:28:17 +08:00
733e4e81be update 2023-08-10 09:54:19 +08:00
8b99ae2515 update 2023-08-09 13:01:41 +08:00
2a72422402 update ad 2023-08-09 12:57:38 +08:00
145a259ef9 update 2023-08-09 08:57:49 +08:00
a34b7719c8 update 2023-08-09 08:52:36 +08:00
4d98455c35 up 2023-08-08 21:17:49 +08:00
c0c9def1fb Update index.py 2023-08-08 21:07:53 +08:00
02d8416466 update 2023-08-08 21:06:56 +08:00
d505740269 Update index.py 2023-08-08 21:01:21 +08:00
b1f6314df7 Update index.py 2023-08-08 16:54:17 +08:00
533653fe47 Update index.py 2023-08-08 16:48:21 +08:00
dff4551fb1 update 2023-08-08 16:45:46 +08:00
79723149a5 Update install.sh 2023-08-08 16:32:07 +08:00
76da8a2ad5 Update install.sh 2023-08-08 16:25:40 +08:00
645538e633 Update index.py 2023-08-08 16:11:17 +08:00
1a1b4e9f3a Update index.py 2023-08-08 16:09:07 +08:00
3afde01f93 Update index.py 2023-08-08 16:07:44 +08:00
a14db23971 Update index.py 2023-08-08 16:04:25 +08:00
316f06911b Update index.py 2023-08-08 16:01:34 +08:00
698d049314 up 2023-08-08 15:50:20 +08:00
d397d74f73 Update index.py 2023-08-08 15:44:25 +08:00
8a7447a4ee Update mysql-apt.js 2023-08-08 15:37:45 +08:00
98414db41d update 2023-08-08 15:25:23 +08:00
7024185b59 Update my8.0.cnf 2023-08-08 14:52:57 +08:00
495f16f2cf Update mysql.js 2023-08-08 14:52:19 +08:00
62444b7b6d Update mysql.js 2023-08-08 14:51:59 +08:00
50b11457f7 update 2023-08-08 14:26:00 +08:00
393cbc3974 Merge branch 'master' into dev 2023-08-08 13:27:41 +08:00
ce3bfc2ebd Merge branch 'master' into dev 2023-08-08 13:25:56 +08:00
Mr Chen
b68e8f3650 Merge pull request #433 from midoks/midoks-patch-1
AD删除
2023-08-08 13:25:25 +08:00
Mr Chen
59a2765b2f AD删除 2023-08-08 13:24:29 +08:00
08c83edeb9 update 2023-08-08 13:17:39 +08:00
c114e9aca8 Update index.py 2023-08-07 22:50:52 +08:00
c5123268d0 Update index.py 2023-08-07 22:48:34 +08:00
54bbc3ff57 Update index.py 2023-08-07 22:39:24 +08:00
4658b991a9 Update index.py 2023-08-07 22:15:14 +08:00
52145e710b Update index.py 2023-08-07 22:05:01 +08:00
4acc48ded2 Update index.py 2023-08-07 22:04:00 +08:00
0d858f87ea Update index.py 2023-08-07 22:03:00 +08:00
f37f08a9f5 Update index.py 2023-08-07 21:53:28 +08:00
0b5fc1de55 Update index.py 2023-08-07 21:52:53 +08:00
8748777101 Update index.py 2023-08-07 21:47:03 +08:00
48ed0b8034 Update index.py 2023-08-07 21:44:32 +08:00
41c9f6b7b6 Update mariadb.js 2023-08-07 21:24:42 +08:00
c47336b65f update 2023-08-07 21:22:29 +08:00
24d7204ccc Update index.py 2023-08-07 21:05:22 +08:00
8c00fb8859 Update index.py 2023-08-07 20:42:08 +08:00
c573b28f16 Update index.py 2023-08-07 20:41:11 +08:00
afad548cf9 Update index.py 2023-08-07 20:22:26 +08:00
2605849de2 Update index.py 2023-08-07 20:02:18 +08:00
77598fa8a7 Update index.py 2023-08-07 19:44:47 +08:00
b175ab735d Update index.py 2023-08-07 19:34:57 +08:00
54ed17ab8f Update index.py 2023-08-07 19:32:47 +08:00
cadf72ea69 Update index.py 2023-08-07 17:53:33 +08:00
dadb737f88 update 2023-08-07 15:59:00 +08:00
fef2acf683 Update index.py 2023-08-07 15:56:59 +08:00
4b6dbf8887 Update mariadb.js 2023-08-07 15:46:10 +08:00
06c99e1cc1 Update index.py 2023-08-07 15:26:54 +08:00
afb3e920f8 mariadb多住一从功能 2023-08-07 15:10:38 +08:00
2c346c9850 Update my.cnf 2023-08-06 14:38:47 +08:00
5b6c5be288 Update mariadb.js 2023-08-06 00:43:24 +08:00
63bd806222 Update index.py 2023-08-06 00:25:22 +08:00
afe3848b71 update 2023-08-05 21:34:04 +08:00
cd361ec7ec Update install.sh 2023-08-05 21:33:14 +08:00
eb399fe799 Update install.sh 2023-08-05 21:32:25 +08:00
53e588b6fc Update install.sh 2023-08-05 21:31:58 +08:00
Mr Chen
612c104cca Merge pull request #432 from midoks/dev
PHP - libzip库修复
2023-08-05 17:35:09 +08:00
550ca7681a Update libzip.sh 2023-08-05 17:31:16 +08:00
6a09706362 Update libzip.sh 2023-08-05 17:30:26 +08:00
ca040e8986 Update install.sh 2023-08-05 17:23:52 +08:00
6fcc980d5d Update libzip.sh 2023-08-05 17:19:39 +08:00
b69adc9c7d Update libzip.sh 2023-08-05 17:09:10 +08:00
67da343705 Update libzip.sh 2023-08-05 17:05:48 +08:00
4b47e27a54 Update libzip.sh 2023-08-05 17:01:05 +08:00
fba3ddc9a5 Update libzip.sh 2023-08-05 16:44:39 +08:00
Mr Chen
4769ce5be8 Merge pull request #431 from midoks/dev
0.15.2
2023-08-05 15:12:37 +08:00
8e16cbf7f9 0.15.2 2023-08-05 15:06:22 +08:00
4225d4c040 Update common.py 2023-08-05 14:43:14 +08:00
b578f2fddc Update common.py 2023-08-05 14:42:43 +08:00
961c3423fd Update common.py 2023-08-05 14:29:52 +08:00
8040c8c67a Update common.py 2023-08-05 14:21:25 +08:00
5aca7d7c26 Update common.py 2023-08-05 14:17:16 +08:00
d9f99e6b7c Update common.py 2023-08-05 14:17:01 +08:00
3addb46708 Update common.py 2023-08-05 13:46:19 +08:00
e6b493237d 优化初始化安装SSH端口识别 2023-08-05 13:36:13 +08:00
7f42054a14 Update ubuntu.sh 2023-08-05 12:29:39 +08:00
501af3da15 Update plugins_api.py 2023-08-05 12:01:46 +08:00
68727cbe91 Update site_api.py 2023-08-05 11:28:33 +08:00
c5207961f3 Update index.py 2023-08-05 01:52:49 +08:00
a04e05c7e8 Update index.py 2023-08-05 01:19:42 +08:00
5b8cca24aa Update index.py 2023-08-05 00:46:41 +08:00
cafe58f3fc Update index.py 2023-08-05 00:45:04 +08:00
d1e2781eb9 Update index.py 2023-08-05 00:44:48 +08:00
67c899fc84 Update index.py 2023-08-05 00:43:06 +08:00
7432548ff9 Update index.py 2023-08-05 00:24:35 +08:00
0c2c136097 Update index.py 2023-08-04 23:58:21 +08:00
2a7e21951b Update my8.0.cnf 2023-08-04 22:49:18 +08:00
066185e404 网站设置反向代理升级功能 2023-08-04 20:27:20 +08:00
bd431f1647 docker阶段性完成 2023-08-03 18:37:14 +08:00
0a6e88d81d update 2023-08-03 17:00:12 +08:00
02c9988ef7 Update docker.js 2023-08-03 00:24:13 +08:00
5ee7df4a46 Update nginx.conf 2023-08-03 00:14:16 +08:00
5f382c0034 update 2023-08-03 00:06:01 +08:00
63d17c4d77 Update docker.js 2023-08-02 23:24:10 +08:00
38722c1dc2 Update index.py 2023-08-02 17:51:29 +08:00
ea982b7261 Update README.md 2023-08-02 17:50:22 +08:00
73d9edced8 使用mariadb二进制导入备份文件 2023-08-02 17:36:27 +08:00
af03c004a3 Update rsyncd.js 2023-08-02 15:35:30 +08:00
ddd9e70ac2 Update rsyncd.js 2023-08-02 15:29:32 +08:00
8976a7a147 Update rsyncd.js 2023-08-02 15:26:55 +08:00
677ff8ec0c Update README.md 2023-08-02 15:10:42 +08:00
47d240e2b8 rsyncd添加优化 2023-08-02 15:10:23 +08:00
1f7bd76875 Update crontab_api.py 2023-08-02 14:27:04 +08:00
f04c70f022 计划任务自动脚本运行时间 2023-08-02 14:04:00 +08:00
5044cc5db9 Update README.md 2023-08-02 00:06:51 +08:00
4329b90ac4 Update info.json 2023-08-01 23:58:10 +08:00
f7873b6dcd Update init_cmd.py 2023-07-25 00:03:20 +08:00
a80d666786 update 2023-07-24 23:52:38 +08:00
Mr Chen
0598704dce Merge pull request #428 from midoks/dev
修复centos9源安装问题
2023-07-22 12:54:17 +08:00
8f19a05755 Update rhel.sh 2023-07-22 12:53:07 +08:00
f320d7cc69 Update rhel.sh 2023-07-22 12:26:56 +08:00
1e97929a24 Update push_notice_msg.py 2023-07-21 12:10:55 +08:00
Mr Chen
c66bbac97e Merge pull request #427 from midoks/dev
python3.7 urllib3在亚马逊降级
2023-07-20 16:14:22 +08:00
1f7a0d2795 Create r3.7.txt 2023-07-20 16:04:18 +08:00
f05ce79e63 Update rhel.sh 2023-07-20 15:55:11 +08:00
9f3d06191a PHP提示优化 2023-07-19 18:35:27 +08:00
Mr Chen
2c6614a5ff Merge pull request #426 from midoks/dev
赞助换域名
2023-07-18 15:23:49 +08:00
905bad29cf Update README.md 2023-07-18 15:22:19 +08:00
9ba572a8ce AD修改 2023-07-16 17:23:45 +08:00
Mr Chen
85fc333d2c Merge pull request #424 from midoks/dev
0.15.1
2023-07-15 23:04:39 +08:00
5bc27a4725 Update config_api.py 2023-07-15 22:53:38 +08:00
e5acf206f5 Update cli.sh 2023-07-15 20:43:13 +08:00
ae7afc2eb5 Update rhel.sh 2023-07-15 20:34:46 +08:00
5c8527a5de 监控页面-自定义时间优化。 2023-07-15 19:33:17 +08:00
274592229e Update rhel.sh 2023-07-15 15:51:03 +08:00
60ddb13f8e Update rhel.sh 2023-07-15 15:50:35 +08:00
f62af00fb7 Update rhel.sh 2023-07-15 15:49:28 +08:00
9c6faefffd Update rhel.sh 2023-07-15 15:38:14 +08:00
c9e27c2add 优化
* [插件]docker - 添加IP地址池。
* PHP下载中国优化。
2023-07-15 15:00:00 +08:00
97b1e8b9b3 Update rhel.sh 2023-07-15 12:34:47 +08:00
18cdcd1436 修复子目录绑定-伪静态问题。 2023-07-13 10:36:16 +08:00
7d783c64b6 OP防火墙优化
站点配置-状态关闭后,不再防御。
2023-07-13 00:40:46 +08:00
0b65d69750 Update __init__.py 2023-07-12 22:18:55 +08:00
693dbb8cf1 Update __init__.py 2023-07-12 22:17:58 +08:00
117a99e729 增加标识 2023-07-12 09:46:58 +08:00
45d4b8a5de update 2023-07-11 16:25:34 +08:00
a5791051b1 Update debian.sh 2023-07-11 16:11:20 +08:00
dc3f8f8e0b 自动同步gitee 2023-07-11 12:21:48 +08:00
bf1d00c012 Update config_api.py 2023-07-10 22:41:13 +08:00
51cf851cea Update site.js 2023-07-10 22:38:37 +08:00
1e09408eb9 Update index.py 2023-07-10 22:13:46 +08:00
7659865caf Update lib.sh 2023-07-05 22:19:44 +08:00
Mr Chen
ad1851d068 Merge pull request #423 from midoks/dev
requests兼容低版本
2023-07-05 18:05:33 +08:00
e174652afc Update requirements.txt 2023-07-05 18:02:40 +08:00
a95e7aacd7 Update r3.6.txt 2023-07-05 18:00:36 +08:00
Mr Chen
6aa638ef9a Merge pull request #422 from midoks/dev
Update requirements.txt
2023-07-05 13:03:14 +08:00
6f3d50bae5 Update requirements.txt 2023-07-05 13:01:08 +08:00
Mr Chen
301a5a95b8 Merge pull request #421 from midoks/dev
AD
2023-07-05 12:51:37 +08:00
d35b9dccc7 AD信息 2023-07-05 12:49:47 +08:00
82680605ac mvirtua ad 2023-07-05 12:47:05 +08:00
5b148b3d1a Update requirements.txt 2023-07-05 10:20:04 +08:00
Mr Chen
714acd20e5 Merge pull request #420 from midoks/dev
0.15.0
2023-07-04 20:55:21 +08:00
bf58cd8acc Update config_api.py 2023-07-04 20:52:57 +08:00
059053d27c mysql安装成功后,删除原文件 2023-07-03 22:22:11 +08:00
185e73c26a Update index.py 2023-07-03 22:12:55 +08:00
569511d321 update 2023-07-03 22:08:00 +08:00
f88bf5059f Update README.md 2023-07-03 17:52:56 +08:00
05b63b8d2b Update index.py 2023-07-03 17:45:12 +08:00
3a197b273d Update docker.js 2023-07-03 17:37:14 +08:00
f4fdbab41c Update index.py 2023-07-03 17:35:34 +08:00
f6b2940657 docker插件容器创建OK 2023-07-03 17:34:58 +08:00
78b9ac5df0 up 2023-07-03 11:53:54 +08:00
3ea4272307 Update docker.js 2023-07-02 16:29:10 +08:00
efc7cee9ad Update docker.js 2023-07-02 15:36:38 +08:00
5c4805453d Update docker.js 2023-07-02 15:27:25 +08:00
f6da241c85 update 2023-07-02 14:38:56 +08:00
d5b6eb2325 update 2023-07-01 22:06:54 +08:00
6ed2cddf71 Update docker.js 2023-07-01 21:35:46 +08:00
9c31d76442 docker update 2023-07-01 21:34:04 +08:00
7aecbaf7df Update docker.js 2023-07-01 15:22:41 +08:00
ee81a86d24 update 2023-07-01 15:17:43 +08:00
0a60d66732 update 2023-07-01 14:46:22 +08:00
c3e3cff472 Update docker.js 2023-07-01 12:37:15 +08:00
194d46eb6a Update docker.js 2023-07-01 12:37:02 +08:00
d66bc94edc Update docker.js 2023-07-01 12:34:09 +08:00
fb4ffcd343 Update index.py 2023-07-01 12:30:58 +08:00
10c235e317 Update r3.6.txt 2023-07-01 12:25:32 +08:00
9c156928d8 up 2023-07-01 12:24:04 +08:00
771905d7f6 Update requirements.txt 2023-07-01 12:23:01 +08:00
cd21b3f3e7 Update r3.6.txt 2023-07-01 12:22:18 +08:00
982026db24 update 2023-07-01 12:21:07 +08:00
f9b91d9989 Update docker.js 2023-07-01 12:17:30 +08:00
f7b1159bd7 update 2023-07-01 12:15:51 +08:00
6aa49ddbcf Update rhel.sh 2023-07-01 11:48:06 +08:00
866eddac1d Update lib.sh 2023-07-01 10:19:42 +08:00
af0cce4216 Update install.sh 2023-07-01 10:16:39 +08:00
3951322d86 Update install_dev.sh 2023-07-01 10:16:23 +08:00
dfdd16b444 Update index.py 2023-07-01 10:11:15 +08:00
aa8fec2b7e update 2023-07-01 09:52:53 +08:00
2a8958ab84 Update index.py 2023-07-01 00:32:36 +08:00
f5125670ee Update index.py 2023-07-01 00:19:24 +08:00
2a8d4fb7a9 Update requirements.txt 2023-07-01 00:14:04 +08:00
59f7fe2290 Update requirements.txt 2023-07-01 00:07:30 +08:00
928db6e7e7 Update requirements.txt 2023-07-01 00:02:13 +08:00
f3927bd6cf Update requirements.txt 2023-07-01 00:01:32 +08:00
bb92727b56 Update requirements.txt 2023-07-01 00:00:14 +08:00
21b80b1fce Update index.py 2023-06-30 23:54:05 +08:00
637da92834 up 2023-06-30 23:43:51 +08:00
f5859626a9 update 2023-06-30 21:57:42 +08:00
003449eb0a update 2023-06-30 12:30:28 +08:00
d27f926191 update 2023-06-30 12:16:25 +08:00
7483247d4d up 2023-06-30 10:17:02 +08:00
1ad841d3af Update docker.js 2023-06-30 00:09:15 +08:00
27376d879c up 2023-06-30 00:09:09 +08:00
8b824447c1 Update php.service.tpl 2023-06-29 18:29:39 +08:00
a1d26dcd45 Update intl.sh 2023-06-29 16:25:12 +08:00
5e68c7bf0a Update install.sh 2023-06-29 13:00:08 +08:00
481ae16713 Update index.py 2023-06-29 12:59:05 +08:00
2d2bd39f9e Update intl.sh 2023-06-29 12:02:48 +08:00
7246a878a5 Update intl.sh 2023-06-29 12:00:37 +08:00
542ee3cdb0 Update intl.sh 2023-06-29 11:59:59 +08:00
69503b223b update 2023-06-29 11:43:56 +08:00
78d8fa7ebf Update lib.sh 2023-06-29 10:54:26 +08:00
21e9d8f2d8 Update update_dev.sh 2023-06-29 10:49:10 +08:00
3c6adfbd44 Update install.sh 2023-06-29 10:41:10 +08:00
c0e70abe6d Update install_dev.sh 2023-06-29 10:40:31 +08:00
f174e71228 Update app.py 2023-06-29 10:25:14 +08:00
7a9a811ea6 Update app.py 2023-06-29 10:21:39 +08:00
c7e3d9d9a3 Update app.py 2023-06-29 10:20:39 +08:00
161f7a1bc0 Update app.py 2023-06-29 10:18:52 +08:00
175cce0131 Update lib.sh 2023-06-29 10:11:52 +08:00
3735897ed2 Update lib.sh 2023-06-29 09:59:06 +08:00
30bfa5a630 Update lib.sh 2023-06-29 09:56:24 +08:00
594fdb4712 Update lib.sh 2023-06-29 09:55:14 +08:00
31a441ea02 update 2023-06-29 09:52:30 +08:00
06f7087fad Update requirements.txt 2023-06-29 09:30:06 +08:00
e7b8f5afdc Update index.py 2023-06-29 09:25:55 +08:00
6b57addfa7 Update index.py 2023-06-28 19:11:44 +08:00
aea435fbaf Update index.py 2023-06-28 18:53:45 +08:00
9cd6656946 u 2023-06-28 16:04:17 +08:00
4f7df4b3c3 Update index.py 2023-06-28 14:58:45 +08:00
70d12b7b8d docker 2023-06-28 14:53:59 +08:00
fe576c820a Update requirements.txt 2023-06-28 04:09:09 +08:00
b48a53e0d7 Create nezha.conf 2023-06-28 04:04:44 +08:00
4701839c33 up 2023-06-28 03:40:23 +08:00
916bc67c4d Update cert_api.py 2023-06-28 03:21:11 +08:00
d7bba830cc Update requirements.txt 2023-06-28 02:33:11 +08:00
7a28f8f57a Update index.py 2023-06-28 02:30:28 +08:00
41ee25aa7b update 2023-06-28 02:21:59 +08:00
c8aa91cfa3 up 2023-06-28 02:09:28 +08:00
98f27498b0 Update index.py 2023-06-28 01:57:06 +08:00
5444fe6455 Update index.py 2023-06-28 01:40:41 +08:00
9627c6e47b Update index.py 2023-06-28 01:32:14 +08:00
13597d6282 Update index.py 2023-06-28 01:21:15 +08:00
d09494e3aa Update index.py 2023-06-28 01:14:15 +08:00
d35439d286 Update index.py 2023-06-28 01:14:03 +08:00
ced48bab47 nezha 测试OK 2023-06-28 01:02:58 +08:00
fe2df6cc8d up 2023-06-28 00:08:38 +08:00
8bdfe15101 nezha 60% 2023-06-28 00:04:07 +08:00
42e9983b88 Update config.json 2023-06-27 15:56:43 +08:00
9b7c0b6f99 up 2023-06-27 15:11:38 +08:00
e421292c9e up 2023-06-27 14:13:04 +08:00
7b4d31779a Update install.sh 2023-06-27 01:31:52 +08:00
f3b09056f3 init nezha plugin 2023-06-26 23:06:06 +08:00
a92ccea6c5 lrzsz 2023-06-26 11:57:07 +08:00
9da77a0a9b up 2023-06-24 22:37:02 +08:00
c233ecaaa7 up 2023-06-22 16:06:04 +08:00
5828b8b8cb up 2023-06-22 16:00:09 +08:00
a4a1a2c83c up 2023-06-20 16:39:36 +08:00
0e20bc182c up 2023-06-19 20:28:44 +08:00
99c0b0a81a Update site_api.py 2023-06-17 23:20:24 +08:00
3fa199fec4 acme部署问题 2023-06-17 23:18:15 +08:00
194c36c6d8 tg ad 2023-06-15 01:43:21 +08:00
2fb542f6b4 Update all_test.sh 2023-06-14 01:25:55 +08:00
60af43ed31 Update intl.sh 2023-06-14 01:24:15 +08:00
9f02cf9744 Update install.sh 2023-06-14 01:21:47 +08:00
846bd270df Update yaf.sh 2023-06-14 01:14:47 +08:00
d910d4f462 up 2023-06-14 00:31:20 +08:00
13f5b1bf02 up 2023-06-13 18:34:57 +08:00
1fc3fd6247 Update lib.sh 2023-06-13 18:03:53 +08:00
36e3feb886 Update requirements.txt 2023-06-13 17:46:00 +08:00
0ca34afacd Update lib.sh 2023-06-13 17:43:39 +08:00
ffb3288f3d Update requirements.txt 2023-06-13 17:40:55 +08:00
e2f68a73ed Update requirements.txt 2023-06-13 17:34:23 +08:00
92fa8da2f6 Update lib.sh 2023-06-13 17:19:23 +08:00
7c96ddd63e Update lib.sh 2023-06-13 17:14:50 +08:00
c4e7872179 Update lib.sh 2023-06-13 17:14:31 +08:00
d399cb2bb4 Update install.sh 2023-06-13 16:38:04 +08:00
985cbc7eca Update install.sh 2023-06-13 16:36:48 +08:00
27ed21a17d update 2023-06-10 15:09:31 +08:00
972165ba1a Update lib.sh 2023-05-30 17:53:16 +08:00
e76eb4d0e8 Update client_check_member.py 2023-05-29 18:40:12 +08:00
fd05c40dbb up 2023-05-29 18:34:37 +08:00
a1a7fa5c82 网站备注优化 2023-05-28 19:59:31 +08:00
531de1407f Update push_notice_msg.py 2023-05-28 19:00:42 +08:00
ca455f13e8 ad 2023-05-28 14:50:53 +08:00
ab5342b01f Update docker.js 2023-05-27 00:18:44 +08:00
a5a57c5718 update 2023-05-27 00:18:39 +08:00
27999b21e6 Update config.json 2023-05-24 23:04:59 +08:00
d2c6caeef2 Update client_temp.py 2023-05-23 20:46:32 +08:00
de30d8a41f Create client_temp.py 2023-05-23 20:42:08 +08:00
d3abc8e7b2 up 2023-05-18 17:10:50 +08:00
b7aad65eb5 Update site_api.py 2023-05-17 13:36:35 +08:00
240b1dec27 修正网站搜索功能 2023-05-16 20:34:12 +08:00
4756e0f68b Update push_notice_msg.py 2023-05-15 19:30:38 +08:00
59f62b948a Update push_notice_msg.py 2023-05-15 19:30:00 +08:00
0ab0741031 up 2023-05-15 19:23:32 +08:00
2fd2f6e844 AD 2023-05-15 19:20:58 +08:00
e534c6177a update 2023-05-15 19:14:43 +08:00
897c6322fc Update install.sh 2023-05-14 23:57:41 +08:00
201e93f946 Update requirements.txt 2023-05-14 19:09:02 +08:00
Mr Chen
a78fd957ec Merge pull request #411 from midoks/dev
更新pip库2
2023-05-14 19:05:30 +08:00
3ce037b0a1 Update requirements.txt 2023-05-14 19:03:39 +08:00
f3176340f8 Update requirements.txt 2023-05-14 19:02:58 +08:00
7bfe096e8d Update requirements.txt 2023-05-14 19:00:45 +08:00
Mr Chen
066428fca8 Merge pull request #410 from midoks/dev
更新pip版本
2023-05-14 18:46:51 +08:00
a1313846c8 Update requirements.txt 2023-05-14 18:43:47 +08:00
0433123abd Update requirements.txt 2023-05-14 18:36:50 +08:00
72e99844dd Update requirements.txt 2023-05-14 18:31:19 +08:00
Mr Chen
3a7882e7fa Merge pull request #409 from midoks/dev
0.14.5
2023-05-14 13:12:27 +08:00
bec2a9a12c 0.14.5
* 软件管理-搜索功能。
* 文件-右键功能优化。
2023-05-14 13:10:17 +08:00
8f02363782 Update files.html 2023-05-12 11:22:38 +08:00
939c847f3e Update plugins_api.py 2023-05-10 18:23:06 +08:00
a623039db7 完成搜索功能 2023-05-10 18:20:48 +08:00
b7f49a1839 Update soft.html 2023-05-10 17:59:17 +08:00
f1f60870f6 up 2023-05-09 12:46:09 +08:00
3b04739fd4 up 2023-05-09 12:45:25 +08:00
fdf1e0b0be up 2023-05-09 12:39:44 +08:00
d3385f526f Update client_check_member.py 2023-05-09 11:37:39 +08:00
20f9095b93 up 2023-05-09 09:17:54 +08:00
757cf483a2 Update client_ad.py 2023-05-08 12:07:36 +08:00
1712cfd024 Update client_ad.py 2023-05-08 12:03:16 +08:00
2b524cbe75 Update client_ad.py 2023-05-08 11:57:01 +08:00
607d384000 Update client_ad.py 2023-05-08 11:29:09 +08:00
14cdc7b82e Update client_ad.py 2023-05-08 11:15:27 +08:00
c3219bcba2 Update client_check_member.py 2023-05-07 23:15:06 +08:00
Mr Chen
a12c4dd78e Merge pull request #407 from midoks/dev
0.14.4
2023-05-06 14:54:52 +08:00
39c6f19592 Update README.md 2023-05-06 14:54:34 +08:00
f18c05a097 0.14.4 2023-05-06 14:53:16 +08:00
80f296ea19 redat 系列 php74之后都需要安装oniguruma
debian系统,不需要
2023-05-06 14:42:54 +08:00
b3e9283a58 Update rhel.sh 2023-05-06 14:37:25 +08:00
2e140a3ae1 Update index.py 2023-05-06 14:18:46 +08:00
4d733c8886 Update index.py 2023-05-06 14:16:50 +08:00
62a7320baf Update rhel.sh 2023-05-06 13:59:02 +08:00
3dc7c2f5c1 Update rhel.sh 2023-05-06 13:52:55 +08:00
fe62bbee06 Update rhel.sh 2023-05-06 13:24:47 +08:00
f7c0cd82a0 Update rhel.sh 2023-05-06 13:22:49 +08:00
13a2014558 Update rhel.sh 2023-05-06 12:49:25 +08:00
5981f94376 Update rhel.sh 2023-05-06 12:30:51 +08:00
005e0f1513 Update rhel.sh 2023-05-06 12:27:54 +08:00
63a0f0fbdc Update rhel.sh 2023-05-05 23:32:07 +08:00
edc0be11a1 Update rhel.sh 2023-05-05 23:22:22 +08:00
908b6e67c6 Update rhel.sh 2023-05-05 23:21:57 +08:00
dfe46332db up 2023-05-05 22:49:39 +08:00
fcdf2e18b2 Update config_api.py 2023-05-05 22:19:33 +08:00
3c8f9bcf96 Update config.js 2023-05-05 22:19:26 +08:00
ebadd6d80d 端口修改后,跳转优化 2023-05-05 22:16:53 +08:00
Mr Chen
6062699074 Merge pull request #406 from midoks/dev
0.14.3
2023-05-05 20:52:04 +08:00
df9d57ba70 Update README.md 2023-05-05 20:50:20 +08:00
ffca953539 up 2023-05-05 20:49:45 +08:00
bd4946124f Update install.sh 2023-05-05 18:21:10 +08:00
8e18c63cee up 2023-05-05 17:52:13 +08:00
d201ca2574 Update install_dev.sh 2023-05-05 17:51:09 +08:00
b644f91090 安装时curl库软连接修复 2023-05-05 16:59:47 +08:00
931f51cf59 Update client_ad.py 2023-05-05 14:12:14 +08:00
0909a11fd9 Update client_ad.py 2023-05-05 14:03:45 +08:00
2ba2833699 Update client_ad.py 2023-05-05 13:59:14 +08:00
20389263fb Update client_ad.py 2023-05-04 20:41:10 +08:00
86141ccf3a Update my5.7.cnf 2023-05-04 16:42:59 +08:00
b2fdf84ca0 Update index.py 2023-05-04 16:39:46 +08:00
8fbc456e1a Update my5.7.cnf 2023-05-04 13:19:21 +08:00
4e43382496 Update client_ad.py 2023-05-03 18:29:37 +08:00
0326d4f112 Update client_ad.py 2023-05-03 18:05:33 +08:00
a87c13c5e0 Update client_ad.py 2023-05-03 13:02:21 +08:00
5f3720c855 Update client_ad.py 2023-05-03 12:50:41 +08:00
f548e020c4 up 2023-05-03 12:33:56 +08:00
7f21781c0b Update tgclient.py 2023-05-03 12:33:01 +08:00
680b0f09f2 Update client_ad.py 2023-05-03 12:22:31 +08:00
482943a63c Update client_ad.py 2023-05-03 10:53:49 +08:00
2871aee18e Create client_ad.py 2023-05-03 10:53:18 +08:00
ff46d9b36e up 2023-05-02 21:39:18 +08:00
fd5fcba543 up 2023-05-02 13:25:07 +08:00
Mr Chen
fe04e02e88 Merge pull request #405 from midoks/dev
0.14.2
2023-05-02 12:11:48 +08:00
93554332a7 Update README.md 2023-05-02 12:10:37 +08:00
b541c7e1b7 Update config_api.py 2023-05-02 12:09:02 +08:00
1dec1a286a Update docker.js 2023-05-02 12:07:51 +08:00
b17510104d up 2023-05-02 11:55:32 +08:00
c2c8ea0ce6 Update install.sh 2023-05-02 11:52:56 +08:00
acbdb013ae Update install.sh 2023-05-02 11:42:16 +08:00
b025f21765 Update index.py 2023-05-02 11:36:28 +08:00
1afc8a69e5 Update index.py 2023-05-02 11:35:21 +08:00
743fc9e8d3 Update index.py 2023-05-02 11:35:06 +08:00
8d692d2b3b Update install.sh 2023-05-02 11:34:00 +08:00
a0b362e691 Update index.py 2023-05-02 11:31:25 +08:00
98e1c2ae8f Update install.sh 2023-05-02 11:26:27 +08:00
c0e5915285 Update index.html 2023-05-02 11:23:46 +08:00
667a0fd0fd Update install.sh 2023-05-02 11:19:03 +08:00
8ed5f283b0 Update client_check_member.py 2023-05-01 17:30:03 +08:00
643c370d30 up 2023-05-01 17:26:02 +08:00
4601303065 up 2023-05-01 16:05:54 +08:00
14940d6734 Delete mdioks.session 2023-05-01 15:09:14 +08:00
fdc2b0f5c4 Update client_holding.py 2023-05-01 15:08:40 +08:00
cf0b233f63 Update client_check_member.py 2023-05-01 14:51:54 +08:00
b3a7ef2206 Create client_holding.py 2023-05-01 14:49:50 +08:00
9a3ca3e833 Update index.html 2023-04-30 10:17:28 +08:00
9afff8df3f Update index.py 2023-04-30 01:13:00 +08:00
ccd0b06223 Update tgclient.py 2023-04-30 01:04:16 +08:00
7b495fe9bf Update tgclient.py 2023-04-29 16:24:19 +08:00
2c3fb75e8f Update tgclient.js 2023-04-29 16:11:09 +08:00
53b606602f up 2023-04-29 16:10:30 +08:00
ecef0cf994 up 2023-04-29 16:01:10 +08:00
3691d41b23 Update client_change_username.py 2023-04-28 21:47:13 +08:00
1f66457a3e Update client_change_username.py 2023-04-28 17:25:38 +08:00
8e05beccfd Update tgclient.py 2023-04-28 17:22:56 +08:00
35424eae1f up 2023-04-28 17:21:13 +08:00
ed6df6d527 up 2023-04-28 17:03:41 +08:00
4366c4afde Update tgclient.py 2023-04-24 22:05:34 +08:00
4bb059f62f Update info.json 2023-04-24 21:23:44 +08:00
aa8f618d9c Update tgclient.py 2023-04-24 21:15:47 +08:00
dfd753e4c1 up 2023-04-24 21:07:25 +08:00
e38daf3c89 Update tgclient.py 2023-04-24 20:51:54 +08:00
535838fc5e Update tgclient.py 2023-04-24 20:44:28 +08:00
797853bd61 Update tgclient.py 2023-04-24 20:36:49 +08:00
0de3aff045 up 2023-04-24 20:32:41 +08:00
0b7b48ab23 up 2023-04-24 20:31:31 +08:00
5ff0a0bfbc Update index.py 2023-04-21 21:03:30 +08:00
9131f44d67 Update install.sh 2023-04-21 13:02:42 +08:00
6b86bb9d2b Update docker.js 2023-04-21 13:00:05 +08:00
dc06d6beda Update install.sh 2023-04-21 12:58:50 +08:00
2c8ea2498e Update install.sh 2023-04-21 12:55:38 +08:00
6b01173b61 Update push_notice_msg.py 2023-04-20 12:41:56 +08:00
883c554850 up 2023-04-20 12:19:33 +08:00
d267da351c Update push_ad.py 2023-04-16 23:48:24 +08:00
13a39f4d6a up 2023-04-16 20:50:30 +08:00
Mr Chen
cff1d5ee89 Merge pull request #403 from midoks/dev
0.14.1
2023-04-16 20:42:39 +08:00
bf5274c313 0.14.1
* 安装优化。
* 加入OP负载均衡插件。
* 网站防篡改程序(测试中)。
2023-04-16 20:41:39 +08:00
5623e3efac Update requirements.txt 2023-04-16 20:38:03 +08:00
b93bb6c64c Update requirements.txt 2023-04-16 20:37:24 +08:00
c9962f169e Update requirements.txt 2023-04-16 20:36:01 +08:00
080f343ee2 Update push_ad.py 2023-04-15 10:57:19 +08:00
5aeaf13f16 负载均衡插件 2023-04-13 15:42:01 +08:00
528094cfa7 网站防篡改程序 2023-04-13 15:33:15 +08:00
ed3e3336b2 Update push_notice_msg.py 2023-04-13 15:28:38 +08:00
Mr Chen
a75a49c2ae Merge pull request #402 from midoks/dev
0.14.0
2023-04-13 15:21:19 +08:00
1204e72f41 0.14.0
* 加入系统加固插件。
2023-04-13 15:20:15 +08:00
13ca5544a5 Update system_safe.tpl 2023-04-13 15:14:32 +08:00
e53fe26d52 Update system_safe.tpl 2023-04-13 15:09:20 +08:00
13772399f6 Update system_safe.py 2023-04-13 15:05:06 +08:00
98f11e2662 Update plugins_api.py 2023-04-13 14:49:46 +08:00
f0b0302f75 Update install.sh 2023-04-13 14:42:07 +08:00
5b9b466cb9 系统加固放出 2023-04-13 14:39:18 +08:00
5588a11ea5 Update cert_request.py 2023-04-10 22:35:09 +08:00
da05a4ef19 up 2023-04-10 22:34:12 +08:00
34cf899529 Update mw.py 2023-04-04 12:43:09 +08:00
0d7d67b012 up 2023-04-04 12:42:47 +08:00
5b778bfc0d Update vip_api.py 2023-04-04 12:20:28 +08:00
6ce414cecf up 2023-04-03 22:39:07 +08:00
c8160b63e7 up 2023-04-03 22:30:08 +08:00
68d957fd6e Update README.md 2023-04-03 19:34:05 +08:00
f09c438500 Update config.html 2023-04-03 17:46:18 +08:00
Mr Chen
9bc9944a3e Merge pull request #401 from midoks/dev
0.13.6
2023-04-03 17:43:58 +08:00
9e4c2b13d5 Update README.md 2023-04-03 17:43:05 +08:00
cd7143047f 0.13.6
1.修复初始化安装,缺少解压命令。
2.加入aes加密/解密方法
2023-04-03 17:41:48 +08:00
d608ac4d94 Update install.sh 2023-04-03 16:48:53 +08:00
9fedf9d10d Update push_notice_msg.py 2023-04-01 10:37:33 +08:00
9936191da2 up 2023-04-01 10:35:54 +08:00
538eba3acf up 2023-03-31 22:37:40 +08:00
e39ee9a6f7 VIP用户管理 2023-03-30 21:57:33 +08:00
Mr Chen
e1820ad5b3 Merge pull request #400 from midoks/dev
0.13.5
2023-03-30 17:31:54 +08:00
22133f1a6c 0.13.5
### 版本更新 0.13.5

* 添加邮件通知功能。
* 修复初始安装脚本。
2023-03-30 17:30:15 +08:00
0041cbdff3 添加邮件通知功能 2023-03-30 17:18:40 +08:00
889da3c769 Update install.sh 2023-03-30 11:59:55 +08:00
d086eb9c61 Update install.sh 2023-03-30 11:56:48 +08:00
832fa9cd1a Update install_dev.sh 2023-03-30 11:54:40 +08:00
8c19fb9629 Update config_api.py 2023-03-30 11:22:36 +08:00
a2e4dd6753 Update push_notice_msg.py 2023-03-30 11:22:19 +08:00
22ba7dda55 Update install.sh 2023-03-29 16:35:09 +08:00
2ffa36eecb up 2023-03-29 16:32:46 +08:00
Mr Chen
fe5843b35d Merge pull request #398 from midoks/dev
修复python pip源安装
2023-03-29 16:27:46 +08:00
e95acbe947 Update lib.sh 2023-03-29 16:08:55 +08:00
aed8319dd3 Update push_ad.py 2023-03-29 14:08:06 +08:00
babe1b885e Update push_notice_msg.py 2023-03-29 13:17:38 +08:00
0612f52402 Update push_notice_msg.py 2023-03-29 13:03:52 +08:00
db67cea737 AD 2023-03-29 13:01:12 +08:00
52cf675843 Update install_dev.sh 2023-03-29 08:49:26 +08:00
Mr Chen
3421bf6ab5 Merge pull request #397 from midoks/dev
0.13.4
2023-03-28 23:54:51 +08:00
2f39bd600b Update config_api.py
### 版本更新 0.13.4

无重大更新

* 国内安装不在依赖gitee。
* tgbot优化。
2023-03-28 23:53:14 +08:00
acd5ec69e8 Update tgbot.py 2023-03-28 23:49:59 +08:00
09878728af Update push_ad.py 2023-03-28 20:25:09 +08:00
af82e9f129 Update push_notice_msg.py 2023-03-28 20:23:08 +08:00
c74630e738 Update push_notice_msg.py 2023-03-28 20:19:49 +08:00
e4e0697b4b Update push_notice_msg.py 2023-03-28 20:18:52 +08:00
11b5ac658b Update mw.tpl 2023-03-28 18:00:50 +08:00
1306731164 up 2023-03-28 17:47:59 +08:00
bb6c933aee Update README.md 2023-03-28 17:41:50 +08:00
d6a93ef1e6 Update info.json 2023-03-28 17:18:59 +08:00
6610da402a Update info.json 2023-03-28 17:18:47 +08:00
3ace9cf51e Update install.sh 2023-03-28 16:54:21 +08:00
49c7ec6073 Update tgbot.py 2023-03-28 16:31:46 +08:00
8cf526667e up 2023-03-25 22:05:19 +08:00
6c42876411 Update receive_faq.py 2023-03-25 21:58:08 +08:00
79471e3806 Update receive_faq.py 2023-03-25 21:56:50 +08:00
cad06425fc Update lib.sh 2023-03-23 15:24:49 +08:00
6f1e11e474 Update lib.sh 2023-03-23 15:21:22 +08:00
59d13e50ce Update rhel.sh 2023-03-22 22:26:32 +08:00
5da0746240 Update push_bbs_ntid.py 2023-03-22 18:00:32 +08:00
192ea8b029 Update push_bbs_ntid.py 2023-03-22 17:34:18 +08:00
bfc20b3e42 Update push_tmp_msg.py 2023-03-22 17:01:50 +08:00
56bee5c752 Update push_tmp_msg.py 2023-03-22 16:41:26 +08:00
312df5de1f Create push_bbs_ntid.py 2023-03-22 16:41:23 +08:00
4d3640286c Update README.md 2023-03-20 17:49:48 +08:00
20930806b6 Update install.sh 2023-03-20 12:19:35 +08:00
71360b61da Update install.sh 2023-03-20 12:04:54 +08:00
411645c9e2 Update install.sh 2023-03-20 12:01:46 +08:00
3de4e1bfff up 2023-03-19 00:21:36 +08:00
34285f6051 Update push_tmp_msg.py 2023-03-19 00:20:23 +08:00
84f0cda89b up 2023-03-18 18:32:30 +08:00
04012085ce Update mdw.jpg 2023-03-17 19:18:27 +08:00
Mr Chen
265e17beac Merge pull request #393 from midoks/dev
0.13.3
2023-03-16 13:00:56 +08:00
Mr Chen
8849001384 Merge pull request #392 from midoks/dev
升级图表echarts
2023-03-09 02:49:57 +08:00
Mr Chen
d6c6ae5561 Merge pull request #391 from midoks/dev
0.13.2
2023-03-09 01:49:10 +08:00
Mr Chen
704b256408 Merge pull request #390 from midoks/dev
网站统计优化
2023-03-05 18:36:57 +08:00
Mr Chen
d38e9f7ad0 Merge pull request #389 from midoks/dev
OP防火墙优化
2023-03-05 18:07:54 +08:00
Mr Chen
04e43e051e Merge pull request #388 from midoks/dev
局部优化
2023-03-02 16:57:17 +08:00
Mr Chen
9d9b39dfe2 Merge pull request #387 from midoks/dev
0.13.1
2023-02-28 19:11:06 +08:00
Mr Chen
196fbbdd7d Merge pull request #382 from midoks/dev
0.13.0
2023-02-24 05:59:59 +08:00
Mr Chen
22d94ce67c Merge pull request #371 from midoks/dev
安装脚本优化3
2023-02-14 22:24:04 +08:00
Mr Chen
fc5970c65d Merge pull request #370 from midoks/dev
安装脚本优化2
2023-02-14 22:09:05 +08:00
Mr Chen
ea03bb056a Merge pull request #369 from midoks/dev
安装脚本优化
2023-02-14 21:59:22 +08:00
Mr Chen
628175a8ee Merge pull request #368 from midoks/dev
0.12.3
2023-02-14 20:13:04 +08:00
1714 changed files with 256315 additions and 380 deletions

View File

@@ -34,5 +34,5 @@ jobs:
cd /www/server/mdserver-web/plugins/mysql && sudo bash install.sh install 5.5
- name: Start DEBUG
run: |
gunicorn -c setting.py app:app
python3 task.py &
cd web && gunicorn -c setting.py app:app
python3 panel_task.py &

View File

@@ -34,5 +34,5 @@ jobs:
cd /www/server/mdserver-web/plugins/mysql && sudo bash install.sh install 5.6
- name: Start DEBUG
run: |
gunicorn -c setting.py app:app
python3 task.py &
cd web && gunicorn -c setting.py app:app
python3 panel_task.py &

View File

@@ -34,5 +34,5 @@ jobs:
cd /www/server/mdserver-web/plugins/mysql && sudo bash install.sh install 5.7
- name: Start DEBUG
run: |
gunicorn -c setting.py app:app
python3 task.py &
cd web && gunicorn -c setting.py app:app
python3 panel_task.py &

View File

@@ -34,5 +34,5 @@ jobs:
cd /www/server/mdserver-web/plugins/mysql && sudo bash install.sh install 8.0
- name: Start DEBUG
run: |
gunicorn -c setting.py app:app
python3 task.py &
cd web && gunicorn -c setting.py app:app
python3 panel_task.py &

View File

@@ -31,8 +31,8 @@ jobs:
sudo bash scripts/install_dev.sh
- name: Install OpenResty
run: |
cd /www/server/mdserver-web/plugins/openresty && sudo bash install.sh install 1.21.4.1
cd /www/server/mdserver-web/plugins/openresty && sudo bash install.sh install 1.27.1
- name: Start DEBUG
run: |
gunicorn -c setting.py app:app
python3 task.py &
source /www/server/mdserver-web/bin/activate && cd web && gunicorn -c setting.py app:app
cd /www/server/mdserver-web && python3 panel_task.py &

View File

@@ -64,5 +64,5 @@ jobs:
cd /www/server/mdserver-web/plugins/php && sudo bash install.sh install 81
- name: Start DEBUG
run: |
gunicorn -c setting.py app:app
python3 task.py &
source /www/server/mdserver-web/bin/activate && cd web && gunicorn -c setting.py app:app
cd /www/server/mdserver-web && python3 panel_task.py &

16
.github/workflows/sync2gitee.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
name: sync2gitee
on: [push]
jobs:
repo-sync:
runs-on: ubuntu-latest
steps:
- name: Mirror the Github organization repos to Gitee.
uses: Yikun/hub-mirror-action@master
with:
src: 'github/midoks'
dst: 'gitee/midoks'
dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
dst_token: ${{ secrets.GITEE_TOKEN }}
static_list: "mdserver-web"
force_update: true

74
.gitignore vendored
View File

@@ -87,6 +87,7 @@ venv/
ENV/
env.bak/
venv.bak/
lib/python*
# Spyder project settings
.spyderproject
@@ -98,6 +99,12 @@ venv.bak/
# mkdocs documentation
/site
bin
pyvenv.cfg
include
share
pip-selfcheck.json
# mypy
.mypy_cache/
@@ -108,9 +115,29 @@ tmp/*
*.swp
*.pem
*.zip
logs/*
debug.out
mdioks.session-journal
*.session
temp
logs/panel.pid
logs/panel.log
logs/panel_task.log
logs/panel_exec.log
logs/panel_task.lock
ssl/local
ssl/nginx
ssl/choose.pl
scripts/init.d/mw
scripts/mdserver-web
data/api_login.txt
data/sessions
data/*.db
data/control.conf
data/iplist.txt
data/json/index.json
data/json/config.json
@@ -123,27 +150,11 @@ data/default.pl
data/backup.pl
data/debug.pl
data/default_site.pl
ssl/input.pl
lib/python*
bin
pyvenv.cfg
include
share
pip-selfcheck.json
scripts/init.d/mw
scripts/mdserver-web
data/api_login.txt
data/sessions
data/ssl.pl
data/port.pl
data/ipv6.pl
data/restart.pl
data/ssl.pl
data/edate.pl
data/osname.pl
data/only_netio_counters.pl
@@ -155,19 +166,16 @@ data/notify.json
data/api.json
data/bind_domain.pl
data/unauthorized_status.pl
data/auth_secret.pl
data/panelSpeed.pl
plugins/vip_*
plugins/own_*
plugins/my_*
plugins/op_auth
plugins/l2tp
plugins/openlitespeed
plugins/system_safe
plugins/tamper_proof
plugins/tamper_proof_*
plugins/cryptocurrency_trade
plugins/op_load_balance
plugins/gdrive
plugins/mtproxy
plugins/zimg
plugins/bk_demo
plugins/mail
@@ -175,8 +183,16 @@ plugins/fastdfs
plugins/v2ray
plugins/frp
plugins/file_search
debug.out
plugins/proxysql
plugins/tidb
plugins/goedge-admin
plugins/goedge-node
plugins/goedge-happy
/logs
/data
/plugins/flexcdn
/plugins/tools
/plugins/choose-linux-python
*.md5
/bak

1
CNAME
View File

@@ -1 +0,0 @@
www.midoks.icu

201
LICENSE Normal file
View File

@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [midoks] [midoks of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

235
README.md Normal file
View File

@@ -0,0 +1,235 @@
<p align="center">
<img alt="logo" src="https://cdn.jsdelivr.net/gh/midoks/mdserver-web@latest/route/static/logo.png" height="140" />
<h3 align="center">mdserver-web</h3>
<p align="center">一款简单Linux面板服务</p>
<p align="center">强烈推荐系统:debian</p>
</p>
### 简介
简单的Linux面板,感谢BT.CN写出如此好的web管理软件。我一看到,就知道这是我一直想要的页面化管理方式。
复制了后台管理界面,按照自己想要的方式写了一版。
![EulerOS](https://img.shields.io/badge/LINUX-EulerOS-blue?style=for-the-badge&logo=EulerOS)
![Debian](https://img.shields.io/badge/LINUX-Debian-blue?style=for-the-badge&logo=Debian)
![Ubuntu](https://img.shields.io/badge/LINUX-Ubuntu-blue?style=for-the-badge&logo=Ubuntu)
![Fedora](https://img.shields.io/badge/LINUX-Fedora-blue?style=for-the-badge&logo=Fedora)
![CentOS](https://img.shields.io/badge/LINUX-CentOS-blue?style=for-the-badge&logo=CentOS)
[![Wiki](https://img.shields.io/badge/MW-Wiki-red?style=for-the-badge&logo=wiki)](https://github.com/midoks/mdserver-web/wiki)
[![jsdelivr](https://data.jsdelivr.com/v1/package/gh/midoks/mdserver-web/badge)](https://www.jsdelivr.com/package/gh/midoks/mdserver-web)
* SSH终端工具
* 面板收藏功能
* 网站备份功能
* 插件方式管理
基本上可以使用,后续会继续优化!欢迎提供意见!
- 吹水组 - https://t.me/mdserver_web
- 交流论坛 - https://bbs.midoks.icu
```
如果出现问题,最好私给我面板信息。不要让我猜。如果不提供,不要提出问题,自行解决。 — 座右铭
Talk is cheap, show me the code. -- linus
```
- [兼容性测试报告](/compatibility.md)
- [常用命令说明](/cmd.md) [ mw default ] [ mw dev ]
### 特别赞助
- [虚位以待](https://bbs.midoks.icu)
### 主要插件介绍
* OpenResty - 轻量级,占有内存少,并发能力强。
* PHP[53-85] - PHP是世界上最好的编程语言。
* MySQL - 一种关系数据库管理系统。
* MariaDB - 是MySQL的一个重要分支。
* MySQL[community] - 一种关系数据库管理系统。
* MongoDB - 一种非关系NOSQL数据库管理系统。
* PostgreSQL - 功能强大的开源数据库。
* phpMyAdmin - 著名Web端MySQL管理工具。
* Memcached - 一个高性能的分布式内存对象缓存系统。
* Redis - 一个高性能的KV数据库。
* PureFtpd - 一款专注于程序健壮和软件安全的免费FTP服务器软件。
* Gogs - 一款极易搭建的自助Git服务。
* Rsyncd - 通用同步服务。
### 插件开发相关
```
插件文档还不完善,如果有不明白的地方提Issue! 我会尽力完善。
如果你自己写了插件,想分享出来,也可以提Issue。
```
- 简单例子 - https://github.com/mw-plugin/simple-plugin
- 插件地址 - https://github.com/mw-plugin
- 开发文档 - https://github.com/midoks/mdserver-web/wiki/插件开发
## 其他插件
- OP鉴权 - https://github.com/mw-plugin/op_auth
# Note
```
phpMyAdmin[4.4.15]支持MySQL[5.5-5.7]
phpMyAdmin[5.2.1]支持MySQL[8.0+]
PHP[53-72]支持phpMyAdmin[4.4.15]
PHP[72-84]支持phpMyAdmin[5.2.1]
```
# 郑重声明
不卖、不会监控(统计使用除外)、更不会注入病毒,大家使用方便(望大家不吝捐赠)。
- https://www.youtube.com/watch?v=2taa5K-Jmmw
# AD - VPS推荐 - 🙏
| 服务商 | LOGO | 推广地址 | 优惠码 |
| ------------- |----------|-----------|-------|
| digitalvirt |[![digitalvirt](https://digitalvirt.com/templates/BlueWhite/img/logo-dark.svg)](https://digitalvirt.com/aff.php?aff=154) | https://digitalvirt.com/aff.php?aff=154 | mdserver-web |
# Docker
- 由[DDS-Derek](https://github.com/DDS-Derek)开发维护。
- https://github.com/DDS-Derek/mdserver-web-Docker
```
docker run -itd --name mw-server --privileged=true -p 7200:7200 -p 80:80 -p 443:443 -p 888:888 ddsderek/mw-server:latest
```
### 版本更新 0.18.5
- 常规优化。
### JSDelivr安装地址
- 初始安装
```
bash <(curl --insecure -fsSL https://cdn.jsdelivr.net/gh/midoks/mdserver-web@latest/scripts/install.sh)
```
- 直接更新
```
bash <(curl --insecure -fsSL https://cdn.jsdelivr.net/gh/midoks/mdserver-web@latest/scripts/update.sh)
```
- 卸载脚本
```
wget --no-check-certificate -O uninstall.sh https://cdn.jsdelivr.net/gh/midoks/mdserver-web@latest/scripts/uninstall.sh && bash uninstall.sh
```
### 备用地址
- 初始安装
```
bash <(curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/install.sh)
bash <(curl --insecure -fsSL https://code.midoks.icu/midoks/mdserver-web/raw/branch/master/scripts/install.sh)
```
- 直接更新
```
bash <(curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/master/scripts/update.sh)
```
- 卸载脚本
```
wget --no-check-certificate -O uninstall.sh https://raw.githubusercontent.com/midoks/mdserver-web/master/scripts/uninstall.sh && bash uninstall.sh
```
### 通用软件安装[命令行安装]
- 需已经安装mdserver-web
```
bash <(curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/quick/app.sh)
```
### DEV使用
```
bash <(curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/install.sh)
bash <(curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/update.sh)
bash <(curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/install_dev.sh)
bash <(curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/update_dev.sh)
wget --no-check-certificate -O install.sh https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/install.sh && bash install.sh
wget --no-check-certificate -O uninstall.sh https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/uninstall.sh && bash uninstall.sh
bash <(curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/quick/debug.sh)
bash <(curl --insecure -fsSL https://code.midoks.icu/midoks/mdserver-web/raw/branch/dev/scripts/install.sh)
bash <(curl --insecure -fsSL https://code.midoks.icu/midoks/mdserver-web/raw/branch/dev/scripts/update.sh)
bash <(curl --insecure -fsSL https://code.midoks.icu/midoks/mdserver-web/raw/branch/dev/scripts/install_dev.sh)
bash <(curl --insecure -fsSL https://code.midoks.icu/midoks/mdserver-web/raw/branch/dev/scripts/update_dev.sh)
```
### 旧版安装/更新
```
curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/old/install.sh | bash
curl --insecure -fsSL https://raw.githubusercontent.com/midoks/mdserver-web/dev/scripts/old/update.sh | bash
```
### 偶然问题
- 在安装/更新时,突然出现python插件pip,psutil,可尝试如下解决方案
```
cd /www/server/mdserver-web rm -rf lib
cd /www/server/mdserver-web && rm -rf lib64
cd /www/server/mdserver-web && rm -rf bin
cd /www/server/mdserver-web && rm -rf include
mw update/mw update_dev/mw dev
```
### 捐赠地址 USDT(TRC20)
TVbNgrpeGBGZVm5gTLa21ADP7RpnPFhjya
日行一善,以后必定大富大贵
### 支付宝赞助
[![截图](https://cdn.jsdelivr.net/gh/midoks/mdserver-web@latest/route/static/img/alipay_zz.png)](https://cdn.jsdelivr.net/gh/midoks/mdserver-web@latest/route/static/img/alipay_zz.png)
### 无图不真相
[![截图](https://cdn.jsdelivr.net/gh/midoks/mdserver-web@latest/route/static/mdw.jpg)](https://cdn.jsdelivr.net/gh/midoks/mdserver-web@latest/route/static/mdw.jpg)
### Stargazers over time
[![Stargazers over time](https://starchart.cc/midoks/mdserver-web.svg)](https://starchart.cc/midoks/mdserver-web)
### 感谢开发赞助
[![digitalvirt](https://digitalvirt.com/templates/BlueWhite/img/logo-dark.svg)](https://digitalvirt.com/aff.php?aff=154)
### 授权许可
本项目采用 Apache 开源授权许可证,完整的授权说明已放置在 [LICENSE](https://github.com/midoks/mdserver-web/blob/master/LICENSE) 文件中。

View File

@@ -1 +0,0 @@
google.com, pub-7736695762519033, DIRECT, f08c47fec0942fa0

8
clear.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/usr/local/lib/python2.7/bin
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
find . -name .DS_Store | xargs rm -rf
find . -type d -name "*.pyc" | xargs rm -rf

126
cli.sh Executable file
View File

@@ -0,0 +1,126 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin
DIR=$(cd "$(dirname "$0")"; pwd)
MDIR=$(dirname "$DIR")
export LC_ALL="en_US.UTF-8"
# echo $DIR
PATH=$PATH:$DIR/bin
if [ -f ${DIR}/bin/activate ];then
source ${DIR}/bin/activate
if [ "$?" != "0" ];then
echo "load local python env fail!"
fi
fi
mw_start_task()
{
isStart=$(ps aux |grep 'panel_task.py'|grep -v grep|awk '{print $2}')
if [ "$isStart" == '' ];then
echo -e "starting mw-tasks... \c"
cd $DIR && python3 panel_task.py >> ${DIR}/logs/panel_task.log 2>&1 &
sleep 0.3
isStart=$(ps aux |grep 'panel_task.py'|grep -v grep|awk '{print $2}')
if [ "$isStart" == '' ];then
echo -e "\033[31mfailed\033[0m"
echo '------------------------------------------------------'
tail -n 20 $DIR/logs/panel_task.log
echo '------------------------------------------------------'
echo -e "\033[31mError: mw-tasks service startup failed.\033[0m"
return;
fi
echo -e "\033[32mdone\033[0m"
else
echo "starting mw-tasks... mw-tasks (pid $(echo $isStart)) already running"
fi
}
mw_start(){
# 后台任务
mw_start_task
cd ${DIR}/web && gunicorn -c setting.py app:app
}
mw_start_debug(){
if [ ! -f $DIR/logs/panel_task.log ];then
echo '' > $DIR/logs/panel_task.log
fi
python3 panel_task.py >> $DIR/logs/panel_task.log 2>&1 &
port=7200
if [ -f /www/server/mdserver-web/data/port.pl ];then
port=$(cat /www/server/mdserver-web/data/port.pl)
fi
if [ -f ${DIR}/data/port.pl ];then
port=$(cat ${DIR}/data/port.pl)
fi
cd ${DIR}/web && gunicorn -b :${port} -k gthread -w 1 app:app
# cd ${DIR}/web && gunicorn -b :${port} -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 app:app
}
mw_start_panel(){
port=7200
if [ -f ${DIR}/data/port.pl ];then
port=$(cat ${DIR}/data/port.pl)
fi
cd ${DIR}/web && gunicorn -b :${port} -k gthread -w 1 app:app
# cd ${DIR}/web && gunicorn -b :${port} -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 app:app
}
mw_start_bgtask(){
cd ${DIR}/web && gunicorn -c setting.py app:app
cd ${DIR} && python3 panel_task.py
}
mw_stop()
{
APP_LIST=`ps -ef|grep app:app |grep -v grep|awk '{print $2}'`
APP_LIST=($APP_LIST)
for p in ${APP_LIST[@]}
do
kill -9 $p > /dev/null 2>&1
done
TASK_LIST=`ps -ef|grep panel_task.py | grep -v grep |awk '{print $2}'`
TASK_LIST=($TASK_LIST)
for p in ${TASK_LIST[@]}
do
kill -9 $p > /dev/null 2>&1
done
zzpids=`ps -A -o stat,ppid,pid | grep -e '^[Zz]' | awk '{print $2}'`
zzpids=($zzpids)
for p in ${zzpids[@]}
do
kill -9 ${p} > /dev/null 2>&1
done
}
case "$1" in
'start') mw_start;;
'stop') mw_stop;;
'restart')
mw_stop
mw_start
;;
'debug')
mw_stop
mw_start_debug
;;
'panel')
mw_stop
mw_start_panel
;;
'task')
# mw_stop
mw_start_bgtask
;;
esac

87
cmd.md Normal file
View File

@@ -0,0 +1,87 @@
### 常用命令说明
- 面板相关命令
```
mw start | 启动面板服务器
mw stop | 停止面板服务器
mw restart | 重启面板服务器
mw default | 显示登录信息
mw db | 快捷连接MySQL
mw redis | 快捷连接Redis
mw valkey | 快捷连接valkey
mw mongodb | 快捷连接MongoDB
mw pgdb | 快捷连接PostgreSQL
mw ssh | 快捷连接ssh
----------------------------------------
mw open | 开启面板
mw close | 关闭面板
mw debug | 开发测试
mw venv | 进入虚拟环境
mw mirror | 切换镜像
mw install_app | 快捷安装常用软件
mw update | 更新到正式
mw dev/update_dev | 更新到开发
service mw [start|stop|reload|restart|status]
```
- OpenResty
```
systemctl [start|stop|reload|restart|status] openresty
```
- MySQL
```
systemctl [start|stop|reload|restart|status] mysql
```
- MariaDB
```
systemctl [start|stop|reload|restart|status] mariadb
```
- PHP
```
systemctl [start|stop|reload|restart|status] php[54-81]
systemctl start php71
```
- Redis
```
systemctl [start|stop|reload|restart|status] redis
```
- Memcached
```
systemctl [start|stop|reload|restart|status] memcached
```
- sphinx
```
systemctl [start|stop|reload|restart|status] sphinx
```

71
compatibility.md Normal file
View File

@@ -0,0 +1,71 @@
### 兼容性测试报告
快速测试命令
```
cd /www/server/mdserver-web/scripts/quick && bash debug.sh
cd /www/server/mdserver-web/plugins/php/versions && bash all_test.sh
```
| 系统名称 | 面板 | OpenResty |
| ----------------- |---------------|---------------|
| CentOS 7.9 |✅ |✅ |
| CentOS 8.4 |✅ |✅ |
| CentOS 8 Stream |✅ |✅ |
| CentOS 9 Stream |✅ |✅ |
| Debian 10.3 |✅ |✅ |
| Debian 11.3 |✅ |✅ |
| Debian 12.0 |✅ |✅ |
| Ubuntu 18.04 |✅ |✅ |
| Ubuntu 20.04 |✅ |✅ |
| Ubuntu 22.04 |✅ |✅ |
| Fedora 31 |✅ |✅ |
| Fedora 32 |✅ |✅ |
| AlmaLinux 9 |✅ |✅ |
| RockyLinux 8.6 |✅ |✅ |
| Arch Linux  |✅ |✅ |
| openSUSE 15.4 |✅ |✅ |
| 系统名称 |PHP53 |PHP54 |PHP55 |PHP56 |PHP70 |PHP71 |PHP72 |PHP73 |PHP74 |PHP80 |PHP81 |PHP82 |PHP83 |PHP84 |
| ----------------- |-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| CentOS 7.9 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| CentOS 8.4 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| CentOS 8 Stream |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| CentOS 9 Stream |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| Debian 10.3 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| Debian 11.3 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| Debian 12 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| Ubuntu 18.04 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| Ubuntu 20.04 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| Ubuntu 22.04 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| Fedora 31 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| Fedora 32 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| AlmaLinux 9 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| RockyLinux 8.6 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| Arch Linux |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| openSUSE 15.4 |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |
| 系统名称 | MySQL55|MySQL56|MySQL57|MySQL80|
| ----------------- |-------|--------|-------|-------|
| CentOS 7.9 |✅ |✅ |✅ |✅ |
| CentOS 8.4 |✅ |✅ |✅ |✅ |
| CentOS 8 Stream |✅ |✅ |✅ |✅ |
| CentOS 9 Stream |✅ |✅ |✅ |✅ |
| Debian 10.3 |✅ |✅ |✅ |✅ |
| Debian 11.3 |✅ |✅ |✅ |✅ |
| Debian 12 |✅ |✅ |✅ |✅ |
| Ubuntu 18.04 |✅ |✅ |✅ |✅ |
| Ubuntu 20.04 |✅ |✅ |✅ |✅ |
| Ubuntu 22.04 |✅ |✅ |✅ |✅ |
| Fedora 31 |✅ |✅ |✅ |✅ |
| Fedora 32 |✅ |✅ |✅ |✅ |
| AlmaLinux 9 |✅ |✅ |✅ |✅ |
| RockyLinux 8.6 |✅ |✅ |✅ |✅ |
| Arch Linux |✅ |✅ |✅ |✅ |
| openSUSE 15.4 |✅ |✅ |✅ |✅ |

4
data/README.md Normal file
View File

@@ -0,0 +1,4 @@
# 自动生成
certificate.pem - 证书信息
privateKey.pem - 私钥

62
docker/Dockerfile Normal file
View File

@@ -0,0 +1,62 @@
FROM debian:10.12-slim
STOPSIGNAL SIGRTMIN+3
RUN rm -f /lib/systemd/system/multi-user.target.wants/* \
/etc/systemd/system/*.wants/* \
/lib/systemd/system/local-fs.target.wants/* \
/lib/systemd/system/sockets.target.wants/*udev* \
/lib/systemd/system/sockets.target.wants/*initctl* \
/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup* \
/lib/systemd/system/systemd-update-utmp*
RUN apt update -y && \
apt install -y devscripts && \
apt install -y wget zip unzip && \
apt-get install -y locales && \
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 && \
locale-gen en_US.UTF-8 && \
export LC_ALL=en_US.UTF-8 && \
export LANG=en_US.UTF-8 && \
export LANGUAGE=en_US.UTF-8 && \
localedef -i en_US -f UTF-8 en_US.UTF-8 && \
mkdir -p /www/server && \
mkdir -p /www/wwwroot && \
mkdir -p /www/wwwlogs && \
mkdir -p /www/backup/database && \
mkdir -p /www/backup/site && \
wget -O /tmp/dev.zip https://github.com/midoks/mdserver-web/archive/refs/heads/dev.zip && \
cd /tmp && unzip /tmp/dev.zip && \
mv -f /tmp/mdserver-web-dev /www/server/mdserver-web && \
rm -rf /tmp/dev.zip && \
rm -rf /tmp/mdserver-web-dev && \
cd /www/server/mdserver-web && \
bash scripts/install/debian.sh && \
cd /www/server/mdserver-web/ && \
/www/server/mdserver-web/bin/python tools.py username username && \
cd /www/server/mdserver-web/ && \
/www/server/mdserver-web/bin/python tools.py panel password
RUN cd /www/server/mdserver-web/plugins/php && \
bash install.sh install 74 && \
cd /www/server/mdserver-web/plugins/openresty && \
bash install.sh install 1.21.4 && \
cd /www/server/mdserver-web/plugins/mysql && \
bash install.sh install 5.6 && \
cd /www/server/mdserver-web/plugins/phpmyadmin && \
bash install.sh install 4.4.15 && \
systemctl enable openresty && \
systemctl enable php74 && \
systemctl enable mysql
RUN rm -rf /www/server/mysql/data
ADD ./start.sh /start.sh
ADD start.service /usr/lib/systemd/system/start.service
#RUN systemctl enable start
CMD [ "/lib/systemd/systemd", "log-level=info", "unit=sysinit.target" ]
EXPOSE 7200 80 443 888
VOLUME [ "/www" ]

9
docker/start.service Normal file
View File

@@ -0,0 +1,9 @@
[Unit]
Description=Customize the script
After=network.target
[Service]
ExecStart=/start.sh
[Install]
WantedBy=multi-user.target

1
docker/start.sh Normal file
View File

@@ -0,0 +1 @@
#!/bin/bash

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

View File

@@ -1,96 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="icon" type="image/x-icon" href="./static/images/logo.png">
<link type="text/css" href="./static/css/pages.css" media="all" rel="stylesheet">
<title>mdserver-web | Linux开源面板</title>
<meta name="generator" content="Jekyll v3.9.3">
<meta property="og:title" content="Linux开源面板">
<meta property="og:locale" content="en_US">
<meta name="description" content="Linux开源面板">
<meta property="og:description" content="Linux开源面板">
<link rel="canonical" href="https://www.midoks.me/">
<meta property="og:url" content="https://www.midoks.me/">
<meta property="og:site_name" content="Linux开源面板">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary">
<meta property="twitter:title" content="Linux开源面板">
<meta name="twitter:site" content="@github">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7736695762519033"
crossorigin="anonymous"></script>
</head>
<body class="home" style="">
<section id="hero-spot" class="hero-spot">
<a href="https://pages.github.com/">
<img src="./static/images/logo.png" alt="Linux开源面板" class="logo">
</a>
<h1>管理你的服务器</h1>
<a href="https://github.com/midoks/mdserver-web" class="help-link">Github</a>
<div id="slideshow">
<img src="./static/images/mw.jpg" alt="mdserver-web" class="slide active" width="893">
</div>
</section>
<section id="tutorial" class="tutorial">
<h1>准备好开始了吗?</h1>
<!-- ### Start of tutorials -->
<ul id="user-site" class="tutorial-list wrapper active">
<li id="terminal-step-1" class="option-terminal">
<h4>安装面板</h4>
<div class="terminal">
<div class="header"></div>
<div class="shell">
<p><span class="path">~</span><span class="prompt">$</span>curl -fsSL https://cdn.jsdelivr.net/gh/midoks/mdserver-web@latest/scripts/install.sh | bash</p>
<p><span class="path">~</span><span class="prompt">$</span>mw default</p>
<p>==================================================================</p>
<p>MW-Panel default info!</p>
<p>==================================================================</p>
<p>MW-Panel-Url: http://0.0.0.0:13148/xxx</p>
<p>username: yrajbw9q</p>
<p>password: oqxotjgb</p>
<p>Warning:</p>
<p>If you cannot access the panel. </p>
<p>release the following port (44010|888|80|443|22) in the security group.</p>
<p>==================================================================</p>
</div>
</div>
</li>
</ul>
<!-- End of user site tutorial -->
</section>
<!-- End of tutorial section -->
<script src="./static/js/jquery.js"></script>
<script>window.slides = {"mdserver-web":"mw","mw-php":"php",}</script>
<script src="./static/js/application.js"></script>
<footer class="page-footer">
<ul class="site-footer-links right">
<li><a href="https://bbs.midoks.icu">论坛</a></li>
</ul>
<ul class="site-footer-links">
<li>mdserver-web ©2018-∞ Linux面板</li>
<li><a href="https://github.com/midoks/mdserver-web">Github</a></li>
</ul>
</footer>
</body>
</html>

1
logs/README.md Normal file
View File

@@ -0,0 +1 @@
logs

361
panel_task.py Executable file
View File

@@ -0,0 +1,361 @@
# coding: utf-8
# ---------------------------------------------------------------------------------
# MW-Linux面板
# ---------------------------------------------------------------------------------
# copyright (c) 2018-∞(https://github.com/midoks/mdserver-web) All rights reserved.
# ---------------------------------------------------------------------------------
# Author: midoks <midoks@163.com>
# ---------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------
# 计划任务
# ---------------------------------------------------------------------------------
import sys
import os
import json
import time
import threading
import psutil
web_dir = os.getcwd() + "/web"
os.chdir(web_dir)
sys.path.append(web_dir)
import core.mw as mw
import thisdb
from admin import setup
setup.init()
g_log_file = mw.getPanelTaskExecLog()
if not os.path.exists(g_log_file):
os.system("touch " + g_log_file)
def execShell(cmdstring, cwd=None, timeout=None, shell=True):
cmd = cmdstring + ' > ' + g_log_file + ' 2>&1'
return mw.execShell(cmd)
def writeLogs(data):
# 写输出日志
try:
fp = open(g_log_file, 'w+')
fp.write(data)
fp.close()
except:
pass
def downloadFile(url, filename):
# 下载文件
try:
import urllib
import socket
socket.setdefaulttimeout(300)
headers = ('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36')
opener = urllib.request.build_opener()
opener.addheaders = [headers]
urllib.request.install_opener(opener)
urllib.request.urlretrieve(url, filename=filename, reporthook=downloadHook)
if not mw.isAppleSystem():
os.system('chown www.www ' + filename)
writeLogs(filename + ' download success!')
except Exception as e:
writeLogs(str(e))
return True
def downloadHook(count, blockSize, totalSize):
# 下载文件进度回调
used = count * blockSize
pre = int((100.0 * used / totalSize))
speed = {'total': totalSize, 'used': used, 'pre': pre}
writeLogs(json.dumps(speed))
def runPanelTask():
# 站点过期检查
siteEdateCheck()
lock_file = mw.getTriggerTaskLockFile()
try:
if os.path.exists(lock_file):
bash_list = thisdb.getTaskList(status=-1)
for task in bash_list:
thisdb.setTaskStatus(task['id'], 0)
run_list = thisdb.getTaskList(status=0)
for run_task in run_list:
start = int(time.time())
thisdb.setTaskData(run_task['id'], start=start)
thisdb.setTaskStatus(run_task['id'], -1)
if run_task['type'] == 'download':
argv = run_task['cmd'].split('|mw|')
downloadFile(argv[0], argv[1])
elif run_task['type'] == 'execshell':
execShell(run_task['cmd'])
end = int(time.time())
thisdb.setTaskData(run_task['id'], end=end)
thisdb.setTaskStatus(run_task['id'], 1)
if thisdb.getTaskUnexecutedCount() < 1:
os.remove(lock_file)
except Exception as e:
print('runPanelTask:',mw.getTracebackInfo())
# 网站到期处理
def siteEdateCheck():
try:
from utils.site import sites as MwSites
website_edate = thisdb.getOption('website_edate', default='0000-00-00')
now_time_ymd = time.strftime('%Y-%m-%d', time.localtime())
if website_edate == now_time_ymd:
return False
site_list = thisdb.getSitesEdateList(now_time_ymd)
for site in site_list:
MwSites.instance().stop(site['id'])
thisdb.setOption('website_edate', now_time_ymd)
except Exception as e:
print('siteEdateCheck:',mw.getTracebackInfo())
# 任务队列
def startPanelTask():
try:
while True:
runPanelTask()
time.sleep(5)
except Exception as e:
print('startPanelTask:',mw.getTracebackInfo())
time.sleep(30)
startPanelTask()
def systemTask():
# 系统监控任务
from utils.system import monitor
try:
while True:
monitor_status = thisdb.getOption('monitor_status',type='monitor',default='open')
if monitor_status == 'open':
monitor.instance().run()
time.sleep(5)
except Exception as ex:
print('systemTask:',mw.getTracebackInfo())
time.sleep(30)
systemTask()
def panelPluginStatusCheck():
# 系统监控任务
from utils.plugin import plugin
try:
while True:
# start_t = time.time()
plugin.instance().autoCachePluginStatus()
# end_t = time.time()
time.sleep(60)
except Exception as ex:
print('panelPluginStatusCheck:',mw.getTracebackInfo())
time.sleep(120)
panelPluginStatusCheck()
# -------------------------------------- PHP监控 start --------------------------------------------- #
# 502错误检查线程
def check502Task():
try:
check_file = mw.getPanelDir() + '/data/502Task.pl'
while True:
if os.path.exists(check_file):
check502()
time.sleep(10)
except:
time.sleep(30)
check502Task()
def check502():
try:
verlist = [
'52', '53', '54', '55', '56', '70',
'71', '72', '73', '74', '80', '81',
'82', '83', '84'
]
for ver in verlist:
server_dir = mw.getServerDir()
php_path = server_dir + '/php/' + ver + '/sbin/php-fpm'
if not os.path.exists(php_path):
continue
if checkPHPVersion(ver):
continue
if startPHPVersion(ver):
print('检测到PHP-' + ver + '处理异常,已自动修复!')
mw.writeLog('PHP守护程序', '检测到PHP-' + ver + '处理异常,已自动修复!')
except Exception as e:
mw.writeLog('PHP守护程序', '自动修复异常:'+str(e))
# 处理指定PHP版本
def startPHPVersion(version):
server_dir = mw.getServerDir()
try:
# system
phpService = mw.systemdCfgDir() + '/php' + version + '.service'
if os.path.exists(phpService):
mw.execShell("systemctl restart php" + version)
if checkPHPVersion(version):
return True
# initd
fpm = server_dir + '/php/init.d/php' + version
php_path = server_dir + '/php/' + version + '/sbin/php-fpm'
if not os.path.exists(php_path):
if os.path.exists(fpm):
os.remove(fpm)
return False
if not os.path.exists(fpm):
return False
# 尝试重载服务
os.system(fpm + ' reload')
if checkPHPVersion(version):
return True
# 尝试重启服务
cgi = '/tmp/php-cgi-' + version + '.sock'
pid = server_dir + '/php/' + version + '/var/run/php-fpm.pid'
data = mw.execShell("ps -ef | grep php/" + version +" | grep -v grep|grep -v python |awk '{print $2}'")
if data[0] != '':
os.system("ps -ef | grep php/" + version + " | grep -v grep|grep -v python |awk '{print $2}' | xargs kill ")
time.sleep(0.5)
if not os.path.exists(cgi):
os.system('rm -f ' + cgi)
if not os.path.exists(pid):
os.system('rm -f ' + pid)
os.system(fpm + ' start')
if checkPHPVersion(version):
return True
# 检查是否正确启动
if os.path.exists(cgi):
return True
except Exception as e:
print('startPHPVersion:',mw.getTracebackInfo())
mw.writeLog('PHP守护程序', '自动修复异常:'+str(e))
return True
def checkPHPVersion(version):
# 检查指定PHP版本
try:
sock = mw.getFpmAddress(version)
data = mw.requestFcgiPHP(sock, '/phpfpm_status_' + version + '?json')
result = str(data, encoding='utf-8')
except Exception as e:
result = 'Bad Gateway'
# 检查openresty
if result.find('Bad Gateway') != -1:
return False
if result.find('HTTP Error 404: Not Found') != -1:
return False
# 检查Web服务是否启动
if result.find('Connection refused') != -1:
return False
return True
# -------------------------------------- PHP监控 end --------------------------------------------- #
# --------------------------------------OpenResty Auto Restart Start --------------------------------------------- #
# 解决acme.sh续签后,未起效。
def openrestyAutoRestart():
try:
while True:
# 检查是否安装
odir = mw.getServerDir() + '/openresty'
if not os.path.exists(odir):
time.sleep(86400)
continue
mw.opWeb('reload')
time.sleep(86400)
except Exception as e:
mw.writeLog('OpenResty检测', '自动修复异常:'+str(e))
time.sleep(86400)
# --------------------------------------OpenResty Auto Restart End --------------------------------------------- #
# ------------------------------------ OpenResty Restart At Once Start ------------------------------------------ #
def openrestyRestartAtOnce():
restart_nginx_tip = mw.getPanelDir()+'/data/restart_nginx.pl'
while True:
if os.path.exists(restart_nginx_tip):
os.remove(restart_nginx_tip)
mw.opWeb('reload')
time.sleep(1)
# ----------------------------------- OpenResty Restart At Once End ------------------------------------------ #
# --------------------------------------Panel Restart Start --------------------------------------------- #
def restartPanelService():
restart_tip = mw.getPanelDir()+'/data/restart.pl'
while True:
if os.path.exists(restart_tip):
print("restart panel")
os.remove(restart_tip)
mw.panelCmd('restart_panel')
time.sleep(1)
# --------------------------------------Panel Restart End --------------------------------------------- #
def setDaemon(t):
if sys.version_info.major == 3 and sys.version_info.minor >= 10:
t.daemon = True
else:
t.setDaemon(True)
return t
def run():
# 系统监控
sysTask = threading.Thread(target=systemTask)
sysTask = setDaemon(sysTask)
sysTask.start()
# PHP 502错误检查线程
php502 = threading.Thread(target=check502Task)
php502 = setDaemon(php502)
php502.start()
# OpenResty Restart At Once Start
oraos = threading.Thread(target=openrestyRestartAtOnce)
oraos = setDaemon(oraos)
oraos.start()
# OpenResty Auto Restart Start
oar = threading.Thread(target=openrestyAutoRestart)
oar = setDaemon(oar)
oar.start()
# Panel Plugin Status Check
pps = threading.Thread(target=panelPluginStatusCheck)
pps = setDaemon(pps)
pps.start()
# Panel Restart Start
rps = threading.Thread(target=restartPanelService)
rps = setDaemon(rps)
rps.start()
# 面板后台任务
startPanelTask()
if __name__ == "__main__":
run()

433
panel_tools.py Executable file
View File

@@ -0,0 +1,433 @@
# coding=utf-8
# ---------------------------------------------------------------------------------
# MW-Linux面板
# ---------------------------------------------------------------------------------
# copyright (c) 2018-∞(https://github.com/midoks/mdserver-web) All rights reserved.
# ---------------------------------------------------------------------------------
# Author: midoks <midoks@163.com>
# ---------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------
# 工具箱
# ---------------------------------------------------------------------------------
import sys
import os
import json
import time
import re
web_dir = os.getcwd() + "/web"
os.chdir(web_dir)
sys.path.append(web_dir)
from utils.firewall import Firewall as MwFirewall
import core.mw as mw
import thisdb
INIT_DIR = "/etc/rc.d/init.d"
if mw.isAppleSystem():
INIT_DIR = mw.getPanelDir() + "/scripts/init.d"
INIT_CMD = INIT_DIR + "/mw"
def mw_input_cmd(msg):
if sys.version_info[0] == 2:
in_val = raw_input(msg)
else:
in_val = input(msg)
return in_val
def getRemainLen(cmd, max_length=100):
cmd_len = len(cmd)
cmd_u8_len = len(cmd.encode('utf-8'))
return max_length-int((cmd_u8_len - cmd_len)/2+cmd_len)
def mwcli(mw_input=0):
panel_dir = mw.getPanelDir()
raw_tip = "========================================================================"
if not mw_input:
print("========================mdserver-web cli tools==========================")
cmd_list = [
'(1) 重启面板服务',
'(2) 停止面板服务',
'(3) 启动面板服务',
'(4) 重载面板服务',
'(5) 修改面板IP',
'(6) 修改面板端口',
'(7) 关闭安全入口',
'(10) 查看面板默认信息',
'(11) 修改面板密码',
'(12) 修改面板用户名',
'(13) 显示面板错误日志',
'(14) 关闭面板访问',
'(15) 开启面板访问',
'(20) 关闭BasicAuth认证',
'(21) 解除域名绑定',
'(22) 解除面板SSL绑定',
'(23) 开启IPV6支持',
'(24) 关闭IPV6支持',
'(25) 开启防火墙SSH端口',
'(26) 关闭二次验证',
'(27) 查看防火墙信息',
'(28) 自动识别防火墙端口到面板',
'(29) 自动识别配置站点信息',
'(100) 开启PHP52显示',
'(101) 关闭PHP52显示',
'(200) 切换Linux系统软件源',
'(201) 简单速度测试',
'(202) SSH终端管理',
'(0) 取消'
]
cmd_list_num = len(cmd_list)
for index in range(cmd_list_num):
cmd = cmd_list[index]
if index % 2 == 0:
if index == (cmd_list_num-1):
print(cmd)
else:
print(cmd + " " * getRemainLen(cmd, 40), end="")
if index % 2 == 1:
print(cmd)
print(raw_tip)
try:
mw_input = input("请输入命令编号:")
if sys.version_info[0] == 3:
mw_input = int(mw_input)
except:
mw_input = 0
nums = [
1, 2, 3, 4, 5, 6, 7,
10, 11, 12, 13, 14, 15,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
100, 101,
200, 201, 202
]
if not mw_input in nums:
print(raw_tip)
print("已取消!")
exit()
if mw_input == 1:
os.system(INIT_CMD + " restart")
elif mw_input == 2:
os.system(INIT_CMD + " stop")
elif mw_input == 3:
os.system(INIT_CMD + " start")
elif mw_input == 4:
os.system(INIT_CMD + " reload")
elif mw_input == 5:
in_ip = mw_input_cmd("请输入设置的面板IP:")
in_ip = in_ip.strip()
ip_text = panel_dir + '/data/iplist.txt'
if not mw.isVaildIp(in_ip):
mw.echoInfo("【"+in_ip+"】: IP不合法")
return
mw.writeFile(ip_text, in_ip)
thisdb.setOption('server_ip', in_ip)
mw.echoInfo("设置面板IP: " + in_ip)
elif mw_input == 6:
in_port = mw_input_cmd("请输入新的面板端口:")
in_port_int = int(in_port.strip())
if in_port_int < 65536 and in_port_int > 0:
MwFirewall.instance().addAcceptPort(in_port, 'WEB面板[TOOLS修改]', 'port')
panel_port = panel_dir + '/data/port.pl'
mw.writeFile(panel_port, in_port)
os.system(INIT_CMD + " restart_panel")
os.system(INIT_CMD + " default")
else:
mw.echoInfo("端口范围在0-65536之间")
return
elif mw_input == 7:
thisdb.setOption('admin_path', '')
mw.echoInfo("关闭安全入口成功!")
elif mw_input == 10:
os.system(INIT_CMD + " default")
elif mw_input == 11:
input_pwd = mw_input_cmd("请输入新的面板密码:")
if len(input_pwd.strip()) < 5:
mw.echoInfo("错误,密码长度不能小于5位")
return
set_panel_pwd(input_pwd.strip(), True)
elif mw_input == 12:
input_user = mw_input_cmd("请输入新的面板用户名(>=5位):")
set_panel_username(input_user.strip())
elif mw_input == 13:
os.system('tail -100 ' + panel_dir + '/logs/panel_error.log')
elif mw_input == 14:
admin_close = thisdb.getOption('admin_close')
if admin_close == 'no':
thisdb.setOption('admin_close', 'yes')
mw.echoInfo("关闭面板访问成功!")
else:
mw.echoInfo("已关闭面板访问!")
elif mw_input == 15:
admin_close = thisdb.getOption('admin_close')
if admin_close == 'yes':
thisdb.setOption('admin_close', 'no')
mw.echoInfo("开启面板访问成功!")
else:
mw.echoInfo("已开启面板访问!")
elif mw_input == 20:
basic_auth = thisdb.getOptionByJson('basic_auth', default={'open':False})
if basic_auth['open']:
basic_auth['open'] = False
thisdb.setOption('basic_auth', json.dumps(basic_auth))
os.system(INIT_CMD + " restart")
mw.echoInfo("关闭basic_auth成功")
elif mw_input == 21:
panel_domain = thisdb.getOption('panel_domain', default='')
if panel_domain != '':
thisdb.setOption('panel_domain', '')
os.system(INIT_CMD + " unbind_domain")
mw.echoInfo("解除域名绑定成功")
else:
mw.echoInfo("面板未绑定域名!")
elif mw_input == 22:
panel_ssl = thisdb.getOptionByJson('panel_ssl', default={'open':False})
if panel_ssl['open']:
panel_ssl['open'] = False
thisdb.setOption('panel_ssl', json.dumps(panel_ssl))
os.system(INIT_CMD + " unbind_ssl")
mw.echoInfo("解除面板SSL绑定成功")
elif mw_input == 23:
listen_ipv6 = panel_dir + '/data/ipv6.pl'
if not os.path.exists(listen_ipv6):
mw.writeFile(listen_ipv6, 'True')
os.system(INIT_CMD + " restart")
mw.echoInfo("开启IPv6支持了")
else:
mw.echoInfo("已开启IPv6支持!")
elif mw_input == 24:
listen_ipv6 = panel_dir + '/data/ipv6.pl'
if not os.path.exists(listen_ipv6):
mw.echoInfo("已关闭IPv6支持!")
else:
os.remove(listen_ipv6)
os.system(INIT_CMD + " restart")
mw.echoInfo("关闭IPv6支持了")
elif mw_input == 25:
open_ssh_port()
mw.echoInfo("已开启!")
elif mw_input == 26:
two_step_verification = thisdb.getOptionByJson('two_step_verification', default={'open':False})
if two_step_verification['open']:
two_step_verification['open'] = False
thisdb.setOption('two_step_verification', json.dumps(two_step_verification))
mw.echoInfo("关闭二次验证成功!")
else:
mw.echoInfo("二次验证已关闭!")
elif mw_input == 27:
cmd = 'which ufw'
run_cmd = False
find_cmd = mw.execShell(cmd)
if find_cmd[0].strip() != '':
run_cmd = True
os.system('ufw status')
cmd = 'which firewall-cmd'
find_cmd = mw.execShell(cmd)
if find_cmd[0].strip() != '':
run_cmd = True
os.system('firewall-cmd --list-all')
if not run_cmd:
mw.echoInfo("未检测到防火墙!")
elif mw_input == 28:
MwFirewall.instance().aIF()
mw.echoInfo("执行自动识别防火墙端口到面板成功!")
elif mw_input == 29:
from utils.site_reflect import parse as MwParse
MwParse()
mw.echoInfo("自动识别配置站点信息成功!")
elif mw_input == 100:
php_conf = panel_dir + '/plugins/php/info.json'
if os.path.exists(php_conf):
cont = mw.readFile(php_conf)
cont = re.sub("\"53\"", "\"52\",\"53\"", cont)
cont = re.sub("\"5.3.29\"", "\"5.2.17\",\"5.3.29\"", cont)
mw.writeFile(php_conf, cont)
mw.echoInfo("执行PHP52显示成功!")
elif mw_input == 101:
php_conf = panel_dir + '/plugins/php/info.json'
if os.path.exists(php_conf):
cont = mw.readFile(php_conf)
cont = re.sub("\"52\",", "", cont)
cont = re.sub("\"5.2.17\",", cont)
mw.writeFile(php_conf, cont)
mw.echoInfo("执行PHP52隐藏成功!")
elif mw_input == 200:
os.system("bash <(curl -sSL https://linuxmirrors.cn/main.sh)")
# os.system(INIT_CMD + " mirror")
elif mw_input == 201:
os.system('curl -Lso- bench.sh | bash')
elif mw_input == 202:
package = mw.getPanelDir()+'/plugins'
dst_plugin = mw.getServerDir() + "/webssh"
if not os.path.exists(dst_plugin):
mw.echoInfo("未安装!")
exit(1)
if not package in sys.path:
sys.path.append(package)
from webssh.index import App
obj = App()
data = obj.get_server_list()
data = json.loads(data)
if data['status']:
wlist = data['data']
wlist_len = len(wlist)
if wlist_len == 0:
mw.echoInfo("SSH终端管理,数据为空!")
exit(1)
if len(sys.argv) == 4:
pos = int(sys.argv[3])
if pos >= wlist_len:
mw.echoInfo("SSH终端管理,超过限制!")
exit(1)
dst_data = wlist[pos]
tmp_host = dst_data["host"]
info = obj.get_server_by_host_data(tmp_host)
pp_info = tmp_host+"|"+info["port"]+"|"+info['username']+"|"+info['password']+""
print(pp_info)
exit(0)
mw.echoInfo("请选择:")
for x in range(wlist_len):
dst_data = wlist[x]
tag = dst_data['host']
if dst_data['ps'] != "":
tag = dst_data['ps']
print(str(x) +") " + tag)
def open_ssh_port():
find_ssh_port_cmd = "cat /etc/ssh/sshd_config | grep '^Port \\d*' | tail -1"
cmd_data = mw.execShell(find_ssh_port_cmd)
ssh_port = cmd_data[0].replace("Port ", '').strip()
if ssh_port == '':
ssh_port = '22'
mw.echoInfo("SSH端口: "+ str(ssh_port))
MwFirewall.instance().addAcceptPort(ssh_port, 'SSH远程管理服务', 'port')
return True
def set_panel_pwd(password, ncli=False):
info = thisdb.getUserByRoot()
thisdb.setUserByRoot(password=password)
if ncli:
mw.echoInfo("username: " + info['name'])
mw.echoInfo("password: " + password)
else:
print(username)
def show_panel_pwd():
# 面板密码展示
info = thisdb.getUserByRoot()
defailt_pwd_file = mw.getPanelDir()+'/data/default.pl'
pwd = ''
if os.path.exists(defailt_pwd_file):
pwd = mw.readFile(defailt_pwd_file).strip()
if mw.md5(pwd) == info['password']:
mw.echoInfo('password: ' + pwd)
return
print("*-password has been changed!")
def show_panel_adminpath():
admin_path = thisdb.getOption('admin_path')
if admin_path == '':
print('/login')
else:
print('/'+admin_path)
def set_panel_username(username=None):
# 随机面板用户名
if username:
if len(username) < 5:
mw.echoInfo("错误,用户名长度不能少于5位")
return
if username in ['admin', 'root']:
mw.echoInfo("错误,不能使用过于简单的用户名")
return
thisdb.setUserByRoot(name=username)
mw.echoInfo("username: %s" % username)
return
info = thisdb.getUserByRoot()
if info['name'] == 'admin':
username = mw.getRandomString(8).lower()
thisdb.setUserByRoot(name=username)
mw.echoInfo('username: ' + info['name'])
def getServerIp():
version = sys.argv[2]
# ip = mw.execShell(
# "curl --insecure -{} -sS --connect-timeout 5 -m 60 https://v6r.ipip.net/?format=text".format(version))
ip = mw.execShell(
"curl --insecure -{} -sS --connect-timeout 5 -m 60 https://ip.cachecha.com/?format=text".format(version))
# print(ip[0])
return ip[0]
def getPanelSslType():
scheme = 'http'
panel_ssl = thisdb.getOptionByJson('panel_ssl', default={'open':False})
if panel_ssl['open']:
scheme = 'https'
return scheme
def getPanelBindDomain():
return thisdb.getOption('panel_domain', default='')
def main():
if len(sys.argv) == 1:
print('ERROR: Parameter error!')
exit(-2)
method = sys.argv[1]
if method == 'panel':
set_panel_pwd(sys.argv[2])
elif method == 'username':
if len(sys.argv) > 2:
set_panel_username(sys.argv[2])
else:
set_panel_username()
elif method == 'password':
show_panel_pwd()
elif method == 'test':
thisdb.getOption('admin_path')
elif method == 'admin_path':
show_panel_adminpath()
elif method == 'getServerIp':
print(getServerIp())
elif method == 'panel_ssl_type':
print(getPanelSslType())
elif method == 'panel_bind_domain':
print(getPanelBindDomain())
elif method == "cli":
clinum = 0
try:
if len(sys.argv) > 2:
clinum = int(sys.argv[2]) if sys.argv[2][:6] else sys.argv[2]
except:
clinum = sys.argv[2]
mwcli(clinum)
else:
print('ERROR: Parameter error')
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,34 @@
CREATE TABLE IF NOT EXISTS `dnsapi` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` TEXT,
`type` TEXT,
`val` TEXT,
`remark` TEXT,
`addtime` TEXT
);
CREATE TABLE IF NOT EXISTS `email` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`addr` TEXT,
`remark` TEXT,
`addtime` TEXT
);
CREATE TABLE IF NOT EXISTS `domain` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`domain` TEXT,
`dnsapi_id` TEXT,
`email` TEXT,
`remark` TEXT,
`effective_date` TEXT default '',
`expiration_date` TEXT default '',
`error` TEXT,
`status` INTEGER default '0',
`addtime` TEXT
);
-- ALTER TABLE `domain` ADD COLUMN `effective_date` TEXT DEFAULT '';
-- ALTER TABLE `domain` ADD COLUMN `expiration_date` TEXT DEFAULT '';
-- ALTER TABLE `domain` ADD COLUMN `error` TEXT DEFAULT '';
-- ALTER TABLE `domain` ADD COLUMN `status` INTEGER DEFAULT '0';

View File

@@ -0,0 +1,136 @@
# coding:utf-8
import sys
import io
import os
import time
import re
import requests
import base64
# 8001 / 7788
goedge_addr = 'http://127.0.0.2:8009'
access_keyid = "xxx"
access_key = "xxx"
# 指定用户
userId = 1
if sys.platform != "darwin":
os.chdir("/www/server/mdserver-web")
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
domain = sys.argv[1]
ssl_path = sys.argv[2]
def getToken():
api_url = goedge_addr+'/APIAccessTokenService/getAPIAccessToken'
post_data = {
"type": "admin",
"accessKeyId": access_keyid,
"accessKey": access_key
}
data = requests.post(api_url,json=post_data)
data_obj = data.json()
return data_obj['data']['token']
token = getToken()
def commonReq(url, data):
headers = {
'X-Edge-Access-Token': token
}
api_url = goedge_addr+url
resp_data = requests.post(api_url,json=data, headers=headers)
return resp_data.json()
def listSSLCerts(domain):
request_data = {
"userId":userId,
"isCA":False,
"keyword": "ACME泛域名自动上传",
"domains":[domain,"*."+domain],
"size":1
}
response_data = commonReq('/SSLCertService/listSSLCerts', request_data)
data = response_data['data']['sslCertsJSON']
data = mw.base64StrDecode(data)
data = mw.getObjectByJson(data)
# print(data)
return data
# createSSLCert(domain)
def createSSLCert(domain, did=0):
ssl_cer_file = ssl_path + '/'+domain+'.cer'
if not os.path.exists(ssl_cer_file):
print("没有有效证书!")
return ''
# print(ssl_cer_file)
ssl_info = mw.getCertName(ssl_cer_file)
cer_data = mw.readFile(ssl_cer_file)
cer_data = mw.base64StrEncode(cer_data)
# print('cer',cer_data)
ssl_key_file = ssl_path + '/'+domain+'.key'
key_data = mw.readFile(ssl_key_file)
key_data = mw.base64StrEncode(key_data)
# print('ssl_info',ssl_info)
timeBeginAt = int(time.mktime(time.strptime(ssl_info['notBefore'], "%Y-%m-%d")))
timeEndAt = int(time.mktime(time.strptime(ssl_info['notAfter'], "%Y-%m-%d")))
request_data = {
"isOn":True,
"userId":userId,
"name": "ACME泛域名自动上传",
"isCA":False,
"description":domain,
"serverName":domain,
"certData":cer_data,
"keyData":key_data,
"timeBeginAt":timeBeginAt,
"timeEndAt": timeEndAt,
"dnsNames":[domain,"*."+domain],
"commonNames":[ssl_info['issuer']]
}
if did>0:
request_data['sslCertId'] = did
# print(request_data)
response_data = commonReq('/SSLCertService/updateSSLCert', request_data)
print('更新成功',domain,response_data)
return response_data
else:
# print(request_data)
response_data = commonReq('/SSLCertService/createSSLCert', request_data)
print('创建成功',domain,response_data)
return response_data
return response_data
def autoSyncDomain(domain):
data = listSSLCerts(domain)
if len(data) > 0 :
did = data[0]['id']
createSSLCert(domain,did)
else:
createSSLCert(domain)
print(data)
autoSyncDomain(domain)
print(domain,ssl_path)

View File

@@ -0,0 +1,12 @@
# coding:utf-8
import sys
import io
import os
import time
import re
domain = sys.argv[1]
path = sys.argv[2]
print(domain,path)

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -0,0 +1,34 @@
<style>
.overflow_hide {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
vertical-align: middle;
}
</style>
<div class="bt-form">
<div class='plugin_version'></div>
<div class="bt-w-main">
<div class="bt-w-menu">
<p class="bgw" onclick="pluginService('acme_pandominassl_apply');">服务</p>
<p onclick="dnsapiList();">DNSAPI *</p>
<p onclick="emailList();">邮件地址 </p>
<p onclick="domainList()">域名SSL *</p>
<p onclick="pluginConfigTpl('acme_pandominassl_apply',$('.plugin_version').attr('version'));">HOOK</p>
<p onclick="pluginLogs('acme_pandominassl_apply','','run_log');">日志</p>
<p onclick="apaReadme();">相关说明</p>
</div>
<div class="bt-w-con pd15">
<div class="soft-man-con"></div>
</div>
</div>
</div>
<script type="text/javascript">
resetPluginWinWidth(1000);
resetPluginWinHeight(550);
$.getScript( "/plugins/file?name=acme_pandominassl_apply&f=js/common.js", function(){
pluginService('acme_pandominassl_apply', $('.plugin_version').attr('version'));
});
</script>

View File

@@ -0,0 +1,863 @@
# coding:utf-8
import sys
import io
import os
import time
import re
import requests
import json
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'acme_pandominassl_apply'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getInitDFile():
current_os = mw.getOs()
if current_os == 'darwin':
return '/tmp/' + getPluginName()
if current_os.startswith('freebsd'):
return '/etc/rc.d/' + getPluginName()
return '/etc/init.d/' + getPluginName()
def getConf():
path = getServerDir() + "/hook.py"
return path
def getInitDTpl():
path = getPluginDir() + "/init.d/" + getPluginName() + ".tpl"
return path
def runLog():
return getServerDir() + '/hook.log'
def getArgs():
args = sys.argv[3:]
# print(args)
tmp = {}
args_len = len(args)
if args_len == 1:
t = args[0].strip('{').strip('}')
if t.strip() == '':
tmp = []
else:
t = t.split(':')
tmp[t[0]] = t[1]
tmp[t[0]] = t[1]
elif args_len > 1:
for i in range(len(args)):
t = args[i].split(':')
tmp[t[0]] = t[1]
return tmp
def checkArgs(data, ck=[]):
for i in range(len(ck)):
if not ck[i] in data:
return (False, mw.returnJson(False, '参数:(' + ck[i] + ')没有!'))
return (True, mw.returnJson(True, 'ok'))
def getHomeDir():
if mw.isAppleSystem():
user = mw.execShell(
"who | sed -n '2, 1p' |awk '{print $1}'")[0].strip()
return '/Users/' + user
else:
return '/root'
def getRunUser():
if mw.isAppleSystem():
user = mw.execShell(
"who | sed -n '2, 1p' |awk '{print $1}'")[0].strip()
return user
else:
return 'root'
def configTpl():
path = getPluginDir() + '/hooks'
pathFile = os.listdir(path)
tmp = []
for one in pathFile:
file = path + '/' + one
tmp.append(file)
return mw.getJson(tmp)
def readConfigTpl():
args = getArgs()
data = checkArgs(args, ['file'])
if not data[0]:
return data[1]
content = mw.readFile(args['file'])
content = contentReplace(content)
return mw.returnJson(True, 'ok', content)
def getPidFile():
file = getConf()
content = mw.readFile(file)
rep = r'pidfile\s*(.*)'
tmp = re.search(rep, content)
return tmp.groups()[0].strip()
def status():
return 'start'
def contentReplace(content):
service_path = mw.getServerDir()
content = content.replace('{$ROOT_PATH}', mw.getFatherDir())
content = content.replace('{$SERVER_PATH}', service_path)
content = content.replace('{$SERVER_APP}', service_path + '/redis')
content = content.replace('{$REDIS_PASS}', mw.getRandomString(10))
return content
def pSqliteDb(dbname='dnsapi'):
file = getServerDir() + '/acme.db'
name = 'acme'
import_sql = mw.readFile(getPluginDir() + '/conf/acme.sql')
md5_sql = mw.md5(import_sql)
import_sign = False
save_md5_file = getServerDir() + '/acme.md5'
if os.path.exists(save_md5_file):
save_md5_sql = mw.readFile(save_md5_file)
if save_md5_sql != md5_sql:
import_sign = True
mw.writeFile(save_md5_file, md5_sql)
else:
mw.writeFile(save_md5_file, md5_sql)
if not os.path.exists(file) or import_sql:
conn = mw.M(dbname).dbPos(getServerDir(), name)
csql_list = import_sql.split(';')
for index in range(len(csql_list)):
conn.execute(csql_list[index], ())
conn = mw.M(dbname).dbPos(getServerDir(), name)
return conn
def initDreplace():
file_tpl = getInitDTpl()
initD_path = getServerDir() + '/init.d'
if not os.path.exists(initD_path):
os.mkdir(initD_path)
file_bin = initD_path + '/' + getPluginName()
run_log_file = runLog()
if not os.path.exists(run_log_file):
mw.writeFile(run_log_file,'')
hook_file = getConf()
if not os.path.exists(hook_file):
mw.writeFile(hook_file,'')
return file_bin
def apaOp(method):
file = initDreplace()
return 'ok'
# current_os = mw.getOs()
# if current_os == "darwin":
# data = mw.execShell(file + ' ' + method)
# if data[1] == '':
# return 'ok'
# return data[1]
# if current_os.startswith("freebsd"):
# data = mw.execShell('service ' + getPluginName() + ' ' + method)
# if data[1] == '':
# return 'ok'
# return data[1]
# data = mw.execShell('systemctl ' + method + ' ' + getPluginName())
# if data[1] == '':
# return 'ok'
# return data[1]
def start():
import tool_cron
tool_cron.createBgTask()
return apaOp('start')
def stop():
import tool_cron
tool_cron.removeBgTask()
return apaOp('stop')
def restart():
status = apaOp('restart')
return status
def reload():
return apaOp('reload')
def dnsapiAdd():
conn = pSqliteDb('dnsapi')
args = getArgs()
data = checkArgs(args,['id','name', 'type', 'remark'])
if not data[0]:
return data[1]
name = args['name'].strip()
remark = args['remark'].strip()
stype = args['type'].strip()
val = args['val'].strip()
sid = args['id'].strip()
if name == '':
return mw.returnJson(False, '名称不能为空!')
if sid != '0' : #修改操作
conn.where("id=?", (sid,)).update({
'name':name,
'type':stype,
'val':val,
'remark':remark,
})
return mw.returnJson(True, '修改成功!')
if conn.where("name=?", (name,)).count():
return mw.returnJson(False, name+'已存在!')
addTime = time.strftime('%Y-%m-%d %X', time.localtime())
err = conn.add('name,type,val,remark,addtime', (name, stype, val,remark, addTime))
# print(err)
return mw.returnJson(True, '添加成功!')
def dnsapiDel():
args = getArgs()
data = checkArgs(args, ['id', 'name'])
if not data[0]:
return data[1]
conn = pSqliteDb('dnsapi')
try:
sid = args['id']
name = args['name']
conn.where("id=?", (sid,)).delete()
return mw.returnJson(True, '删除成功!')
except Exception as ex:
return mw.returnJson(False, '删除失败!' + str(ex))
def dnsapiList():
args = getArgs()
page = 1
page_size = 10
search = ''
data = {}
if 'page' in args:
page = int(args['page'])
if 'page_size' in args:
page_size = int(args['page_size'])
if 'search' in args:
search = args['search']
conn = pSqliteDb('dnsapi')
limit = str((page - 1) * page_size) + ',' + str(page_size)
condition = ''
if not search == '':
condition = "name like '%" + search + "%'"
field = 'id,name,type,val,remark,addtime'
clist = conn.where(condition, ()).field(
field).limit(limit).order('id desc').select()
count = conn.where(condition, ()).count()
_page = {}
_page['count'] = count
_page['p'] = page
_page['row'] = page_size
_page['tojs'] = 'dbList'
data['page'] = mw.getPage(_page)
data['data'] = clist
return mw.getJson(data)
def dnsapiListAll():
conn = pSqliteDb('dnsapi')
field = 'id,name,type,val,remark,addtime'
data = conn.field(field).limit('1000').select()
return mw.getJson(data)
def emailList():
args = getArgs()
page = 1
page_size = 10
search = ''
data = {}
if 'page' in args:
page = int(args['page'])
if 'page_size' in args:
page_size = int(args['page_size'])
if 'search' in args:
search = args['search']
conn = pSqliteDb('email')
limit = str((page - 1) * page_size) + ',' + str(page_size)
condition = ''
if not search == '':
condition = "addr like '%" + search + "%'"
field = 'id,addr,remark,addtime'
clist = conn.where(condition, ()).field(
field).limit(limit).order('id desc').select()
count = conn.where(condition, ()).count()
_page = {}
_page['count'] = count
_page['p'] = page
_page['row'] = page_size
_page['tojs'] = 'dbList'
data['page'] = mw.getPage(_page)
data['data'] = clist
return mw.getJson(data)
def emailAdd():
args = getArgs()
data = checkArgs(args,['addr', 'remark'])
if not data[0]:
return data[1]
addr = args['addr'].strip()
remark = args['remark'].strip()
if addr == '':
return mw.returnJson(False, '邮件地址不能为空!')
conn = pSqliteDb('email')
addTime = time.strftime('%Y-%m-%d %X', time.localtime())
conn.add('addr,remark,addtime', (addr, remark, addTime))
return mw.returnJson(True, '添加成功!')
def emailDel():
args = getArgs()
data = checkArgs(args, ['id', 'name'])
if not data[0]:
return data[1]
conn = pSqliteDb('email')
try:
sid = args['id']
name = args['name']
conn.where("id=?", (sid,)).delete()
return mw.returnJson(True, '删除成功!')
except Exception as ex:
return mw.returnJson(False, '删除失败!' + str(ex))
def domainAdd():
args = getArgs()
data = checkArgs(args,['id','domain', 'dnsapi_id','email','remark'])
if not data[0]:
return data[1]
sid = args['id'].strip()
domain = args['domain'].strip()
remark = args['remark'].strip()
email = args['email'].strip()
dnsapi_id = args['dnsapi_id'].strip()
if domain == '':
return mw.returnJson(False, '域名不能为空!')
if email == '':
return mw.returnJson(False, '邮件不能为空!')
conn = pSqliteDb('domain')
if sid != '0' : #修改操作
conn.where("id=?", (sid,)).update({
'domain':domain,
'dnsapi_id':dnsapi_id,
'email':email,
'remark':remark,
})
return mw.returnJson(True, '修改成功!')
if conn.where("domain=?", (domain,)).count():
return mw.returnJson(False, domain+'已存在!')
addTime = time.strftime('%Y-%m-%d %X', time.localtime())
conn.add('domain,dnsapi_id,email,remark,addtime', (domain, dnsapi_id,email,remark, addTime))
return mw.returnJson(True, '添加成功!')
def domainDel():
args = getArgs()
data = checkArgs(args, ['id', 'name'])
if not data[0]:
return data[1]
conn = pSqliteDb('domain')
try:
sid = args['id']
name = args['name']
conn.where("id=?", (sid,)).delete()
return mw.returnJson(True, '删除成功!')
except Exception as ex:
return mw.returnJson(False, '删除失败!' + str(ex))
def domainStatusToggle():
args = getArgs()
data = checkArgs(args, ['id'])
if not data[0]:
return data[1]
conn = pSqliteDb('domain')
field = 'id,status'
fdata = conn.field(field).where('id=?',(args['id'],)).find()
fstatus = fdata['status']
if fstatus == 0:
fstatus = 1
else:
fstatus = 0
# print(fdata['status'],fstatus)
conn.where("id=?", (args['id'],)).update({
'status':fstatus,
})
return mw.returnJson(True, '切换成功!')
def domainList():
args = getArgs()
page = 1
page_size = 10
search = ''
data = {}
if 'page' in args:
page = int(args['page'])
if 'page_size' in args:
page_size = int(args['page_size'])
if 'search' in args:
search = args['search']
conn = pSqliteDb('domain')
conn_dnsapi = pSqliteDb('dnsapi')
limit = str((page - 1) * page_size) + ',' + str(page_size)
condition = ''
if not search == '':
condition = "domain like '%" + search + "%'"
field = 'id,domain,dnsapi_id,email,status,effective_date,expiration_date,remark,addtime'
clist = conn.where(condition, ()).field(
field).limit(limit).order('id desc').select()
for i in range(len(clist)):
tdata = conn_dnsapi.field('id,name').where('id=?',(clist[i]['dnsapi_id'],)).select()
if len(tdata) > 0:
# print(tdata[0]['name'])
clist[i]['dnsapi_id_alias'] = clist[i]['dnsapi_id']+'('+ tdata[0]['name'] +')'
else:
clist[i]['dnsapi_id_alias'] = clist[i]['dnsapi_id']+' (无)'
count = conn.where(condition, ()).count()
_page = {}
_page['count'] = count
_page['p'] = page
_page['row'] = page_size
_page['tojs'] = 'dbList'
data['page'] = mw.getPage(_page)
data['data'] = clist
return mw.getJson(data)
def getDnsapiData(dnsapi_id):
if dnsapi_id == '0':
return {}
conn_dnsapi = pSqliteDb('dnsapi')
tdata = conn_dnsapi.field('id,name,type,val').where('id=?',(dnsapi_id,)).select()
if len(tdata)>0:
return tdata[0]
return {}
def getDnsapiExportVar(val):
cmd_list = val.split('~')
def_var = ''
for x in range(len(cmd_list)):
v = cmd_list[x]
vlist = v.split('|')
def_var += 'export '+vlist[0]+'="'+vlist[1]+'"\n'
return def_var
def getDnsapiKv(val):
cmd_list = val.split('~')
def_var = {}
for x in range(len(cmd_list)):
v = cmd_list[x]
vlist = v.split('|')
kk = vlist[0]
vv = vlist[1]
def_var[kk] = vv
return def_var
def domainApplyPathJudge(domain):
acme_dir = "/root/.acme.sh"
if mw.isAppleSystem():
user = getRunUser()
acme_dir = "/Users/"+user+"/.acme.sh"
abs_domain_path = acme_dir+'/'+domain+'_ecc'
# print(abs_domain_path)
if os.path.exists(abs_domain_path):
return True, abs_domain_path
abs_domain_path = acme_dir+'/'+domain
# print(abs_domain_path)
if os.path.exists(abs_domain_path):
return True, abs_domain_path
return False,''
def hookWriteLog(line):
hook_file = runLog()
mdate = time.strftime('%Y-%m-%d %X', time.localtime())
log = "["+mdate+"]:"+line
print(log)
return mw.writeFile(hook_file,log+"\n",'a+')
def runHookPy(domain,path):
# print(domain,path)
run_log = runLog()
hook_file = getConf()
cmd = 'cd '+mw.getPanelDir()
cmd += ' && python3 '+hook_file + ' ' + domain + ' ' + path
cmd += ' >> '+ run_log
print(cmd)
return mw.execShell(cmd)
def autoUpdateSslData(domain, path):
ssl_cer_file = path + '/'+domain+'.cer'
ssl_info = mw.getCertName(ssl_cer_file)
time_begin = int(time.mktime(time.strptime(ssl_info['notBefore'], "%Y-%m-%d")))
time_end = int(time.mktime(time.strptime(ssl_info['notAfter'], "%Y-%m-%d")))
# print(ssl_info)
# print(time_begin,time_end)
conn = pSqliteDb('domain')
conn.where('domain=?', (domain,)).update({
'effective_date':str(time_begin),
'expiration_date':str(time_end),
})
return True
def runHookDstDomain(row):
domain = row['domain']
email = str(row['email'])
if row['effective_date'] != '':
effective_date = int(row['effective_date'])
now_int = int(time.time())
day = (now_int - effective_date)/86400
if int(day) < 8:
common_log = '【'+domain+'】未过期'
hookWriteLog(common_log)
return
hookWriteLog('开始申请【'+domain+'】SSL证书')
cmd = "#!/bin/bash\n"
cmd += "PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin:/root/.acme.sh\n"
cmd += "export PATH\n"
if mw.isAppleSystem():
user = getRunUser()
cmd += "source /Users/"+user+"/.zshrc\n"
cmd_data = getDnsapiData(row['dnsapi_id'])
# print(cmd_data)
export_val = getDnsapiExportVar(cmd_data['val'])
cmd += export_val
# acme.sh --register-account -m my@example.com
cmd_register = 'acme.sh --register-account -m '+ email + '\n'
cmd += cmd_register
# acme.sh --issue -d "example.com" -d "*.example.com" --dns dns_cf
cmd_apply = 'acme.sh --issue --dns '+str(cmd_data['type'])+' -d '+domain+' -d "*.'+domain+'"'
if row['effective_date'] != '':
effective_date = int(row['effective_date'])
now_int = int(time.time())
day = (now_int - effective_date)/86400
if int(day) > 7:
cmd_apply = 'acme.sh --issue --dns '+str(cmd_data['type'])+' -d '+domain+' -d "*.'+domain+'" --force'
cmd += cmd_apply
run_log = runLog()
cmd += ' >> '+ run_log
print(cmd)
os.system(cmd)
hookWriteLog('结束申请【'+domain+'】SSL证书')
isok, path = domainApplyPathJudge(domain)
print(isok,path)
if isok:
autoUpdateSslData(domain, path)
hookWriteLog('开始执行【'+domain+'】Hook脚本')
runHookPy(domain,path)
hookWriteLog('结束执行【'+domain+'】Hook脚本')
def getHookIdCmd():
args = getArgs()
data = checkArgs(args, ['id'])
if not data[0]:
return data[1]
cmd = "cd "+mw.getPanelDir()+" "
cmd += '&& python3 plugins/acme_pandominassl_apply/index.py run_hook_id 1.0 {"id":"'+args['id']+'"}'
return mw.returnJson(True, 'ok',cmd)
def runHookId():
args = getArgs()
data = checkArgs(args, ['id'])
if not data[0]:
return data[1]
conn = pSqliteDb('domain')
field = 'id,domain,dnsapi_id,email,effective_date,expiration_date,remark'
row = conn.field(field).where('id=?',(args['id'],)).find()
runHookDstDomain(row)
return 'run hook '+args['id']+' end'
def runHookCmd():
cmd = "cd "+mw.getPanelDir()+" "
cmd += '&& python3 plugins/acme_pandominassl_apply/index.py run_hook'
return mw.returnJson(True, 'ok',cmd)
def runHook():
conn = pSqliteDb('domain')
field = 'id,domain,dnsapi_id,email,effective_date,expiration_date,remark'
clist = conn.field(field).where('status=?',(1,)).limit('1000').order('id desc').select()
for idx in range(len(clist)):
row = clist[idx]
# print(row)
runHookDstDomain(row)
time.sleep(1)
return 'run hook end'
def autoSyncDomain(domain, dnsapi_id, email):
conn = pSqliteDb('domain')
field = 'id,domain,dnsapi_id,email,effective_date,expiration_date,remark'
fdata = conn.field(field).where('domain=?',(domain,)).select()
# print(fdata)
mdate = time.strftime('%Y-%m-%d %X', time.localtime())
if len(fdata) == 0:
conn.add('domain,dnsapi_id,email,remark,addtime', (domain, dnsapi_id, email,"备注", mdate))
print(domain+" 同步成功!")
return True
def runSyncCfDataRow(row, page = 1):
# print(row, page)
cf_key = row['kv']['CF_Key']
cf_mail = row['kv']['CF_Email']
header = {
'X-Auth-Email': cf_mail,
'X-Auth-Key': cf_key,
'Content-Type': 'application/json'
}
url = "https://api.cloudflare.com/client/v4/zones?status=active&page="+str(page)+"&per_page=20&order=status&direction=desc&match=all"
try:
r = requests.get(url, timeout=30, headers=header)
r.raise_for_status()
r.encoding = r.apparent_encoding
# print(r.text)
jdata = json.loads(r.text)
result = jdata['result']
result_info = jdata['result_info']
# print(len(result))
for i in result:
autoSyncDomain(i['name'], row['id'], cf_mail)
if result_info['total_pages'] > page:
page += 1
runSyncCfDataRow(row, page)
# print(result)
except Exception as e:
print(e)
# 同步CloudFlare数据
def runSyncCfData():
print("同步CloudFlare数据开始")
conn_dnsapi = pSqliteDb('dnsapi')
field = "id,name,type,val"
fdata = conn_dnsapi.field(field).where('type=?', ('dns_cf',)).limit('10').select()
for x in range(len(fdata)):
row = fdata[x]
dnsapi_kv = getDnsapiKv(row['val'])
row['kv'] = dnsapi_kv
runSyncCfDataRow(row)
print("同步CloudFlare数据结束")
return ''
def runSyncCfCmd():
cmd = "cd "+mw.getPanelDir()+" "
cmd += '&& python3 plugins/acme_pandominassl_apply/index.py run_sync_cf_data'
return mw.returnJson(True, 'ok',cmd)
def runSyncDnspodDataRow(row, page = 1):
# print(row, page)
DPI_Id = row['kv']['DPI_Id']
DPI_Key = row['kv']['DPI_Key']
data = {
'login_token': DPI_Id+','+DPI_Key,
'length':5,
'format':'json',
}
url = "https://api.dnspod.com/Domain.List"
try:
r = requests.post(url, timeout=30, data=data)
r.raise_for_status()
r.encoding = r.apparent_encoding
# print(r.text)
jdata = json.loads(r.text)
info = jdata['info']
domains = jdata['domains']
# print(jdata)
for i in domains:
autoSyncDomain(i['name'], row['id'], i['owner'])
page_total = int(info['domain_total']/data['length'])
if page_total > page:
page += 1
runSyncDnspodDataRow(row, page)
except Exception as e:
print(e)
# 同步DnsPod数据
def runSyncDnsPodData():
print("同步DnsPod数据开始")
conn_dnsapi = pSqliteDb('dnsapi')
field = "id,name,type,val"
fdata = conn_dnsapi.field(field).where('type=?', ('dns_dpi',)).limit('10').select()
for x in range(len(fdata)):
row = fdata[x]
dnsapi_kv = getDnsapiKv(row['val'])
row['kv'] = dnsapi_kv
runSyncDnspodDataRow(row)
print(fdata)
print("同步DnsPod数据结束")
return ''
def runSyncDnsPodCmd():
cmd = "cd "+mw.getPanelDir()+" "
cmd += '&& python3 plugins/acme_pandominassl_apply/index.py run_sync_dnspod_data'
return mw.returnJson(True, 'ok',cmd)
if __name__ == "__main__":
func = sys.argv[1]
# print(func)
if func == 'status':
print(status())
elif func == 'start':
print(start())
elif func == 'stop':
print(stop())
elif func == 'restart':
print(restart())
elif func == 'reload':
print(reload())
elif func == 'run_info':
print(runInfo())
elif func == 'conf':
print(getConf())
elif func == 'run_log':
print(runLog())
elif func == 'config_tpl':
print(configTpl())
elif func == 'read_config_tpl':
print(readConfigTpl())
elif func == 'dnsapi_list':
print(dnsapiList())
elif func == 'dnsapi_list_all':
print(dnsapiListAll())
elif func == 'dnsapi_add':
print(dnsapiAdd())
elif func == 'dnsapi_del':
print(dnsapiDel())
elif func == 'email_list':
print(emailList())
elif func == 'email_add':
print(emailAdd())
elif func == 'email_del':
print(emailDel())
elif func == 'domain_list':
print(domainList())
elif func == 'domain_add':
print(domainAdd())
elif func == 'domain_del':
print(domainDel())
elif func == 'domain_status_toggle':
print(domainStatusToggle())
elif func == 'run_hook':
print(runHook())
elif func == 'run_hook_cmd':
print(runHookCmd())
elif func == 'get_run_hook_id_cmd':
print(getHookIdCmd())
elif func == 'run_hook_id':
print(runHookId())
elif func == 'run_sync_cf_data':
print(runSyncCfData())
elif func == 'run_sync_cf_cmd':
print(runSyncCfCmd())
elif func == 'run_sync_dnspod_data':
print(runSyncDnsPodData())
elif func == 'run_sync_dnspod_cmd':
print(runSyncDnsPodCmd())
else:
print('error')

View File

@@ -0,0 +1,17 @@
{
"sort": 7,
"ps": "ACME泛域名SSL申请/管理",
"name": "acme_pandominassl_apply",
"title": "ACME泛域名SSL",
"shell": "install.sh",
"versions":["1.0"],
"tip": "soft",
"checks": "server/acme_pandominassl_apply",
"path": "server/acme_pandominassl_apply",
"display": 1,
"author": "ACME",
"date": "2024-09-12",
"home": "https://github.com/acmesh-official/acme.sh",
"type": 0,
"pid": "5"
}

View File

@@ -0,0 +1,54 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
VERSION=$2
# curl https://get.acme.sh | sh
# acme.sh --uninstall
# source /Users/xxx/.zshrc
# https://github.com/acmesh-official/acme.sh/wiki/dnsapi
# https://docs.dnspod.com/api-legacy/domains.html#get-the-domain-list
# cd /www/server/mdserver-web && python3 plugins/acme_pandominassl_apply/index.py run_hook
# cd /www/server/mdserver-web && python3 plugins/acme_pandominassl_apply/index.py run_sync_cf_data
# cd /www/server/mdserver-web && python3 plugins/acme_pandominassl_apply/index.py run_sync_dnspod_data
if [ -f ${rootPath}/bin/activate ];then
source ${rootPath}/bin/activate
fi
# pip install cloudflare
Install_App()
{
echo '正在安装脚本文件...'
mkdir -p $serverPath/source
mkdir -p $serverPath/acme_pandominassl_apply
echo "${VERSION}" > $serverPath/acme_pandominassl_apply/version.pl
cd ${rootPath} && python3 ${rootPath}/plugins/acme_pandominassl_apply/index.py start
echo '安装[ACME泛域名SSL]完成'
}
Uninstall_App()
{
cd ${rootPath} && python3 ${rootPath}/plugins/acme_pandominassl_apply/index.py stop
rm -rf $serverPath/acme_pandominassl_apply
echo "卸载[ACME泛域名SSL]成功"
}
action=$1
if [ "${1}" == 'install' ];then
Install_App
else
Uninstall_App
fi

View File

@@ -0,0 +1,801 @@
function apaPost(method, args,callback){
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
var req_data = {};
req_data['name'] = 'acme_pandominassl_apply';
req_data['func'] = method;
req_data['version'] = $('.plugin_version').attr('version');
if (typeof(args) == 'string'){
req_data['args'] = JSON.stringify(toArrayObject(args));
} else {
req_data['args'] = JSON.stringify(args);
}
$.post('/plugins/run', req_data, function(data) {
layer.close(loadT);
if (!data.status){
//错误展示10S
layer.msg(data.msg,{icon:0,time:2000,shade: [10, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function apaPostN(method, args,callback){
var req_data = {};
req_data['name'] = 'acme_pandominassl_apply';
req_data['func'] = method;
req_data['version'] = $('.plugin_version').attr('version');
if (typeof(args) == 'string'){
req_data['args'] = JSON.stringify(toArrayObject(args));
} else {
req_data['args'] = JSON.stringify(args);
}
$.post('/plugins/run', req_data, function(data) {
if (!data.status){
//错误展示10S
layer.msg(data.msg,{icon:0,time:2000,shade: [10, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function apaPostCallbak(method, version, args,callback){
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
var req_data = {};
req_data['name'] = 'acme_pandominassl_apply';
req_data['func'] = method;
args['version'] = version;
if (typeof(args) == 'string'){
req_data['args'] = JSON.stringify(toArrayObject(args));
} else {
req_data['args'] = JSON.stringify(args);
}
$.post('/plugins/callback', req_data, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function apaReadme(){
var readme = '<ul class="help-info-text c7">';
readme += '<li>ACME泛域名SSL申请/管理/HOOK</li>';
readme += '<li>通过DNS验证获取SSL证书!</li>';
readme += '<li>HOOK: ssl发生变动时调用!</li>';
readme += '<li>暂时仅支持1000个域名管理!</li>';
readme += '<li>DNSAPI文档: https://github.com/acmesh-official/acme.sh/wiki/dnsapi</li>';
readme += '<li>默认7天强制更新!</li>';
readme += '</ul>';
$('.soft-man-con').html(readme);
}
function emailDel(id, name){
safeMessage('删除['+name+']','您真的要删除['+name+']吗?',function(){
var data='id='+id+'&name='+name;
apaPost('email_del', data, function(data){
var rdata = $.parseJSON(data.data);
showMsg(rdata.msg,function(){
emailList();
},{icon: rdata.status ? 1 : 2}, 600);
});
});
}
function emailAdd(type){
layer.open({
type: 1,
area: '500px',
title: '添加邮件地址',
closeBtn: 1,
shift: 5,
shadeClose: true,
btn:["提交","关闭"],
content: "<form class='bt-form pd20' id='email_add'>\
<div class='line'>\
<span class='tname'>邮件地址</span>\
<div class='info-r'><input name='addr' class='bt-input-text mr5' style='width:100%;' placeholder='邮件地址' type='text'></div>\
</div>\
<div class='line'>\
<span class='tname'>备注</span>\
<div class='info-r'><input name='remark' class='bt-input-text mr5' style='width:100%;' placeholder='备注' type='text'></div>\
</div>\
</form>",
success:function(){
$("input[name='addr']").keyup(function(){
var v = $(this).val();
$("input[name='remark']").val(v);
});
},
yes:function(index) {
var data = $("#email_add").serialize();
data = decodeURIComponent(data);
// data = toArrayObject(data);
apaPost('email_add', data, function(data){
var rdata = $.parseJSON(data.data);
showMsg(rdata.msg,function(){
if (rdata.status){
layer.close(index);
emailList();
}
},{icon: rdata.status ? 1 : 2}, 2000);
});
}
});
}
function emailList(page, search){
var _data = {};
if (typeof(page) =='undefined'){
var page = 1;
}
_data['page'] = page;
_data['page_size'] = 10;
if(typeof(search) != 'undefined'){
_data['search'] = search;
}
apaPost('email_list', _data, function(data){
var rdata = $.parseJSON(data.data);
var list = '';
for(i in rdata.data){
list += '<tr>';
list +='<td><input value="'+rdata.data[i]['id']+'" class="check" onclick="checkSelect();" type="checkbox"></td>';
list += '<td>' + rdata.data[i]['addr'] +'</td>';
list += '<td>' + rdata.data[i]['remark'] +'</td>';
list += '<td style="text-align:right">';
list += '<a href="javascript:;" class="btlink" onclick="emailDel(\''+rdata.data[i]['id']+'\',\''+rdata.data[i]['addr']+'\')" title="删除">删除</a>' +
'</td>';
list += '</tr>';
}
var con = '<div class="safe bgw">\
<button onclick="emailAdd()" title="添加邮件地址" class="btn btn-success btn-sm" type="button" style="margin-right: 5px;">添加邮件地址</button>\
<span style="float:right"> \
<button batch="true" style="float: right;display: none;margin-left:10px;" onclick="delDbBatch();" title="删除选中项" class="btn btn-default btn-sm">删除选中</button>\
</span>\
<div class="divtable mtb10">\
<div class="tablescroll">\
<table id="DataBody" class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0" style="border: 0 none;">\
<thead><tr><th width="30"><input class="check" onclick="checkSelect();" type="checkbox"></th>\
<th>邮件地址</th>\
<th>备注</th>\
<th style="text-align:right;">操作</th></tr></thead>\
<tbody>'+ list +'</tbody>\
</table>\
</div>\
<div class="dataTables_paginate paging_bootstrap page"></div>\
</div>\
</div>';
$(".soft-man-con").html(con);
$('.dataTables_paginate').html(rdata.page);
readerTableChecked();
});
}
function dnsapiDel(id, name){
safeMessage('删除['+name+']','您真的要删除['+name+']吗?',function(){
var data='id='+id+'&name='+name;
apaPost('dnsapi_del', data, function(data){
var rdata = $.parseJSON(data.data);
showMsg(rdata.msg,function(){
dnsapiList();
},{icon: rdata.status ? 1 : 2}, 600);
});
});
}
var dnsapi_option = [
{"name":"dns_cf", "title":'cloudflare', 'key':'CF_Key:CF_Email'},
{"name":"dns_dp", "title":'dnspod/国内', 'key':'DP_Id:DP_Key'},
{"name":"dns_dpi", "title":'dnspod/国际', 'key':'DPI_Id:DPI_Key'},
{"name":"dns_gd", "title":'GoDaddy', 'key':'GD_Key:GD_Secret'},
{"name":"dns_pdns", "title":'PowerDNS', 'key':'PDNS_Url:PDNS_ServerId:PDNS_Token:PDNS_Ttl'},
{"name":"dns_lua", "title":'LuaDNS', 'key':'LUA_Key:LUA_Email'},
{"name":"dns_me", "title":'DNSMadeEasy', 'key':'ME_Key:ME_Secret'},
{"name":"dns_aws", "title":'Amazon Route53', 'key':'AWS_ACCESS_KEY_ID:AWS_SECRET_ACCESS_KEY'},
{"name":"dns_ali", "title":'Aliyun', 'key':'Ali_Key:Ali_Secret'},
{"name":"dns_ispconfig", "title":'ISPConfig', 'key':'ISPC_User:ISPC_Password:ISPC_Api:ISPC_Api_Insecure'},
{"name":"dns_ad", "title":'Alwaysdata', 'key':'AD_API_KEY'},
{"name":"dns_linode_v4", "title":'Linode', 'key':'LINODE_V4_API_KEY'},
{"name":"dns_freedns", "title":'FreeDNS', 'key':'FREEDNS_User:FREEDNS_Password'},
{"name":"dns_cyon", "title":'cyon.ch', 'key':'CY_Username:CY_Password:CY_OTP_Secret'},
{"name":"dns_gandi_livedns", "title":'LiveDNS', 'key':'GANDI_LIVEDNS_TOKEN'},
{"name":"dns_knot", "title":'Knot', 'key':'KNOT_SERVER:KNOT_KEY'},
{"name":"dns_dgon", "title":'DigitalOcean', 'key':'DO_API_KEY'},
{"name":"dns_cloudns", "title":'ClouDNS.net', 'key':'CLOUDNS_SUB_AUTH_ID:CLOUDNS_AUTH_PASSWORD'},
{"name":"dns_namesilo", "title":'Namesilo', 'key':'Namesilo_Key'},
{"name":"dns_azure", "title":'Azure', 'key':'AZUREDNS_SUBSCRIPTIONID:AZUREDNS_TENANTID:AZUREDNS_APPID:AZUREDNS_CLIENTSECRET'},
{"name":"dns_selectel", "title":'selectel.com', 'key':'SL_Key'},
{"name":"dns_zonomi", "title":'zonomi.com', 'key':'ZM_Key'},
{"name":"dns_kinghost", "title":'KingHost', 'key':'KINGHOST_Username:KINGHOST_Password'},
{"name":"dns_zilore", "title":'Zilore', 'key':'Zilore_Key'},
{"name":"dns_gcloud", "title":'Google Cloud DNS', 'key':'CLOUDSDK_ACTIVE_CONFIG_NAME'},
{"name":"dns_mydnsjp", "title":'MyDNS.JP', 'key':'MYDNSJP_MasterID:MYDNSJP_Password'},
{"name":"dns_doapi", "title":'do.de', 'key':'DO_LETOKEN'},
{"name":"dns_online", "title":'Online', 'key':'ONLINE_API_KEY'},
{"name":"dns_cn", "title":'Core-Networks', 'key':'CN_User:CN_Password'},
{"name":"dns_ultra", "title":'UltraDNS', 'key':'ULTRA_USR:ULTRA_PWD'},
{"name":"dns_hetzner", "title":'Hetzner', 'key':'HETZNER_Token'},
{"name":"dns_ddnss", "title":'DDNSS.de', 'key':'DDNSS_Token'},
];
function getDnsapiKey(name){
for (var i = 0; i < dnsapi_option.length; i++) {
if (dnsapi_option[i]['name'] == name){
return dnsapi_option[i]['key'];
}
}
return '';
}
function getDnsapiTitle(name){
for (var i = 0; i < dnsapi_option.length; i++) {
if (dnsapi_option[i]['name'] == name){
return dnsapi_option[i]['title'];
}
}
return '其他';
}
function dnsapiAdd(row){
// console.log(row);
var option_name = '';
var option_remark = '';
var option_type = 'dns_cf';
var option_val = '';
var option_id = 0;
if (typeof(row) != 'undefined'){
option_name = row['name'];
option_remark = row['remark'];
option_type = row['type'];
option_val = row['val'];
option_id = row['id'];
}
function renderDnsapiOption(name, val){
var vlist = {};
if (val != ''){
var t = val.split('~');
for (var i = 0; i < t.length; i++) {
var kv = t[i].split('|');
if (kv.length == 2){
vlist[kv[0]] = kv[1];
} else {
vlist[kv[0]] = '';
}
}
// console.log(vlist);
}
var key = getDnsapiKey(name);
var klist = key.split(':');
var option_html = '';
for (var i = 0; i < klist.length; i++) {
var klist_val = '';
if (klist[i] in vlist){
klist_val = vlist[klist[i]];
}
option_html += "<span class='tname'>"+klist[i]+"</span>\
<div class='info-r'>\
<input name='"+klist[i]+"' class='bt-input-text mr5' style='width:100%;' value='"+klist_val+"' placeholder='请输入对应值' type='text'>\
</div>";
}
$('#dnsapi_option').html(option_html);
}
layer.open({
type: 1,
area: '500px',
title: '添加DNSAPI',
closeBtn: 1,
shift: 5,
shadeClose: true,
btn:["提交","关闭"],
content: "<form class='bt-form pd20' id='dnsapi_add'>\
<div class='line'>\
<span class='tname'>名称</span>\
<div class='info-r'><input name='name' class='bt-input-text mr5' style='width:100%;' placeholder='名称' value='"+option_name+"' type='text'></div>\
</div>\
<div class='line'>\
<span class='tname'>DNSAPI类型</span>\
<div class='info-r'>\
<select class='bt-input-text mr5' name='type'>\
<option name='cf'>cloudflare</option>\
</select>\
</div>\
</div>\
<div class='line' id='dnsapi_option'>\
<span class='tname'>CF_Key</span>\
<div class='info-r'>\
<input name='v1' class='bt-input-text mr5' style='width:100%;' placeholder='请输入对应值' type='text'>\
</div>\
<span class='tname'>CF_Email</span>\
<div class='info-r'>\
<input name='v2' class='bt-input-text mr5' style='width:100%;' placeholder='请输入对应值' type='text'>\
</div>\
</div>\
<div class='line'>\
<span class='tname'>备注</span>\
<div class='info-r'><input name='remark' class='bt-input-text mr5' style='width:100%;' placeholder='备注' value='"+option_remark+"' type='text'></div>\
</div>\
<input name='id' value='"+option_id+"' type='hidden'>\
</form>",
success:function(){
$("input[name='name']").keyup(function(){
var v = $(this).val();
$("input[name='remark']").val(v);
});
var option = '';
for (var i = 0; i<dnsapi_option.length; i++) {
if (dnsapi_option[i]['name'] == option_type){
option += "<option value='"+dnsapi_option[i]['name']+"' key='"+dnsapi_option[i]['key']+"' selected>"+dnsapi_option[i]['title']+"</option>";
} else {
option += "<option value='"+dnsapi_option[i]['name']+"' key='"+dnsapi_option[i]['key']+"'>"+dnsapi_option[i]['title']+"</option>";
}
}
renderDnsapiOption(option_type, option_val);
$('select[name="type"]').html(option);
$('select[name="type"]').change(function(){
var name = $(this).val();
if (option_type == name){
renderDnsapiOption(name, option_val);
} else {
renderDnsapiOption(name,'');
}
});
},
yes:function(index) {
var data = $("#dnsapi_add").serialize();
data = decodeURIComponent(data);
data = toArrayObject(data);
var key = getDnsapiKey(data['type']);
var klist = key.split(':');
var val = '';
for (var i = 0; i < klist.length; i++) {
var k = klist[i];
if (k in data){
if (klist.length - 1 == i){
val += k + '|' + data[k];
} else {
val += k + '|' + data[k]+'~';
}
}
}
data['val'] = val;
apaPost('dnsapi_add', data, function(data){
var rdata = $.parseJSON(data.data);
showMsg(rdata.msg,function(){
if (rdata.status){
layer.close(index);
dnsapiList();
}
},{icon: rdata.status ? 1 : 2}, 2000);
});
}
});
}
function dnsapiList(page, search){
var _data = {};
if (typeof(page) =='undefined'){
var page = 1;
}
_data['page'] = page;
_data['page_size'] = 10;
if(typeof(search) != 'undefined'){
_data['search'] = search;
}
apaPost('dnsapi_list', _data, function(data){
var rdata = $.parseJSON(data.data);
var list = '';
for(i in rdata.data){
list += '<tr>';
list +='<td><input value="'+rdata.data[i]['id']+'" class="check" onclick="checkSelect();" type="checkbox"></td>';
list += '<td>' + rdata.data[i]['name'] +'</td>';
list += '<td>' + getDnsapiTitle(rdata.data[i]['type']) +'</td>';
list += '<td>' + rdata.data[i]['val'].split('~').join("<br/>") +'</td>';
list += '<td>' + rdata.data[i]['remark'] +'</td>';
list += '<td style="text-align:right">';
list += '<a href="javascript:;" index="'+i+'" class="btlink edit" title="编辑">编辑</a> | ';
list += '<a href="javascript:;" class="btlink" onclick="dnsapiDel(\''+rdata.data[i]['id']+'\',\''+rdata.data[i]['name']+'\')" title="删除">删除</a>';
list += '</td></tr>';
}
var con = '<div class="safe bgw">\
<button onclick="dnsapiAdd()" title="DNSAPI" class="btn btn-success btn-sm" type="button" style="margin-right: 5px;">添加DNSAPI</button>\
<span style="float:right"> \
<button batch="true" style="float: right;display: none;margin-left:10px;" onclick="delDbBatch();" title="删除选中项" class="btn btn-default btn-sm">删除选中</button>\
</span>\
<div class="divtable mtb10">\
<div class="tablescroll">\
<table id="DataBody" class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0" style="border: 0 none;">\
<thead><tr><th width="30"><input class="check" onclick="checkSelect();" type="checkbox"></th>\
<th>名称</th>\
<th>类型</th>\
<th>值</th>\
<th>备注</th>\
<th style="text-align:right;">操作</th></tr></thead>\
<tbody>'+ list +'</tbody>\
</table>\
</div>\
<div class="dataTables_paginate paging_bootstrap page"></div>\
</div>\
</div>';
$(".soft-man-con").html(con);
$('.dataTables_paginate').html(rdata.page);
$('.edit').click(function(){
var idx = $(this).attr('index');
var row = rdata.data[idx];
// console.log(row);
dnsapiAdd(row);
})
readerTableChecked();
});
}
function domainDel(id, name){
safeMessage('删除['+name+']','您真的要删除['+name+']吗?',function(){
var data='id='+id+'&name='+name;
apaPost('domain_del', data, function(data){
var rdata = $.parseJSON(data.data);
showMsg(rdata.msg,function(){
domainList();
},{icon: rdata.status ? 1 : 2}, 600);
});
});
}
function domainStatusToggle(id){
var data='id='+id;
apaPost('domain_status_toggle', data, function(data){
var rdata = $.parseJSON(data.data);
showMsg(rdata.msg,function(){
domainList();
},{icon: rdata.status ? 1 : 2}, 600);
});
}
function domainIdCmd(id){
var data='id='+id;
apaPost('get_run_hook_id_cmd', data, function(data){
var rdata = $.parseJSON(data.data);
// console.log(rdata);
layer.open({
title: "手动同步命令",
area: ['600px', '180px'],
type:1,
closeBtn: 1,
shadeClose: false,
btn:["复制","取消"],
content: '<div class="pd15">\
<div class="divtable">\
<pre class="layui-code">'+rdata.data+'</pre>\
</div>\
</div>',
success:function(){
copyText(rdata.data);
},
yes:function(){
copyText(rdata.data);
}
});
});
}
function domainHookCmd(){
apaPost('run_hook_cmd', {}, function(data){
var rdata = $.parseJSON(data.data);
layer.open({
title: "手动同步全部命令",
area: ['600px', '180px'],
type:1,
closeBtn: 1,
shadeClose: false,
btn:["复制","取消"],
content: '<div class="pd15">\
<div class="divtable">\
<pre class="layui-code">'+rdata.data+'</pre>\
</div>\
</div>',
success:function(){
copyText(rdata.data);
},
yes:function(){
copyText(rdata.data);
}
});
});
}
function syncCfCmd(){
apaPost('run_sync_cf_cmd', {}, function(data){
var rdata = $.parseJSON(data.data);
layer.open({
title: "手动同步CloudFlare全部域名命令",
area: ['600px', '180px'],
type:1,
closeBtn: 1,
shadeClose: false,
btn:["复制","取消"],
content: '<div class="pd15">\
<div class="divtable">\
<pre class="layui-code">'+rdata.data+'</pre>\
</div>\
</div>',
success:function(){
copyText(rdata.data);
},
yes:function(){
copyText(rdata.data);
}
});
});
}
function syncDnsPodCmd(){
apaPost('run_sync_dnspod_cmd', {}, function(data){
var rdata = $.parseJSON(data.data);
layer.open({
title: "手动同步DnsPod全部域名命令",
area: ['600px', '180px'],
type:1,
closeBtn: 1,
shadeClose: false,
btn:["复制","取消"],
content: '<div class="pd15">\
<div class="divtable">\
<pre class="layui-code">'+rdata.data+'</pre>\
</div>\
</div>',
success:function(){
copyText(rdata.data);
},
yes:function(){
copyText(rdata.data);
}
});
});
}
function domainAdd(row){
var option_domian = '';
var option_remark = '备注';
var option_email = '';
var option_id = 0;
var option_dnsapi_id = 0;
if (typeof(row) != 'undefined'){
option_domian = row['domain'];
option_remark = row['remark'];
option_email = row['email'];
option_id = row['id'];
option_dnsapi_id = row['dnsapi_id'];
}
layer.open({
type: 1,
area: '500px',
title: '添加顶级域名',
closeBtn: 1,
shift: 5,
shadeClose: true,
btn:["提交","关闭"],
content: "<form class='bt-form pd20' id='domain_add'>\
<div class='line'>\
<span class='tname'>域名</span>\
<div class='info-r'><input name='domain' class='bt-input-text mr5' style='width:100%;' value='"+option_domian+"' placeholder='域名' type='text'></div>\
</div>\
<div class='line'>\
<span class='tname'>DNSAPI</span>\
<div class='info-r'>\
<select class='bt-input-text mr5' name='dnsapi_id'>\
<option name='0'>无设置</option>\
</select>\
</div>\
</div>\
<div class='line'>\
<span class='tname'>邮件</span>\
<div class='info-r'><input name='email' class='bt-input-text mr5' style='width:100%;' value='"+option_email+"' placeholder='邮件' type='text'></div>\
</div>\
<div class='line'>\
<span class='tname'>备注</span>\
<div class='info-r'><input name='remark' class='bt-input-text mr5' style='width:100%;' value='"+option_remark+"' placeholder='备注' type='text'></div>\
</div>\
<input name='id' value='"+option_id+"' type='hidden'>\
</form>",
success:function(){
// $("input[name='domain']").keyup(function(){
// var v = $(this).val();
// $("input[name='remark']").val(v);
// });
var dnsapi_id_html = "<option value='0'>无设置</option>";
apaPostN('dnsapi_list_all', {}, function(data){
var rdata = $.parseJSON(data.data);
for (var i = 0; i < rdata.length; i++) {
if (option_dnsapi_id == rdata[i]['id']){
dnsapi_id_html += "<option value='"+rdata[i]['id']+"' val='"+rdata[i]['val']+"' selected>"+rdata[i]['name']+"</option>";
} else {
dnsapi_id_html += "<option value='"+rdata[i]['id']+"' val='"+rdata[i]['val']+"'>"+rdata[i]['name']+"</option>";
}
}
$('select[name="dnsapi_id"]').change(function(){
var val = $('select[name="dnsapi_id"]').find("option:selected").attr('val');
var val_arr = val.split("|");
for (var i = 0; i < val_arr.length; i++) {
var param = val_arr[i];
var strictEmailRegex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
if(strictEmailRegex.test(param)){
$('input[name="email"]').val(param);
}
}
});
$('select[name="dnsapi_id"]').html(dnsapi_id_html);
});
},
yes:function(index) {
var data = $("#domain_add").serialize();
data = decodeURIComponent(data);
apaPost('domain_add', data, function(data){
var rdata = $.parseJSON(data.data);
showMsg(rdata.msg,function(){
if (rdata.status){
layer.close(index);
domainList();
}
},{icon: rdata.status ? 1 : 2}, 2000);
});
}
});
}
function domainList(page, search){
var _data = {};
if (typeof(page) =='undefined'){
var page = 1;
}
_data['page'] = page;
_data['page_size'] = 10;
if(typeof(search) != 'undefined'){
_data['search'] = search;
}
apaPost('domain_list', _data, function(data){
var rdata = $.parseJSON(data.data);
// console.log(rdata);
var list = '';
for(i in rdata.data){
list += '<tr>';
list +='<td><input value="'+rdata.data[i]['id']+'" class="check" onclick="checkSelect();" type="checkbox"></td>';
list += '<td>' + rdata.data[i]['domain'] +'</td>';
list += '<td>' + rdata.data[i]['dnsapi_id_alias'] +'</td>';
list += '<td>' + rdata.data[i]['email'] +'</td>';
list += '<td>' + rdata.data[i]['remark'] +'</td>';
if (rdata.data[i]['effective_date'] == ''){
list += '<td>空/未申请</td>';
} else {
list += '<td>'+getFormatTime(rdata.data[i]['effective_date'],'yyyy/MM/dd')+'</td>';
}
if (rdata.data[i]['expiration_date'] == ''){
list += '<td>空/未申请</td>';
} else {
list += '<td>'+getFormatTime(rdata.data[i]['expiration_date'],'yyyy/MM/dd')+'</td>';
}
if (rdata.data[i]['status'] == '0'){
list += '<td><a href="javascript:;" index="'+i+'" class="btlink status">否</a></td>';
} else {
list += '<td><a href="javascript:;" index="'+i+'" class="btlink status">是</a></td>';
}
list += '<td style="text-align:right">';
list += '<a href="javascript:;" index="'+i+'" class="btlink cmd" title="命令">命令</a> | ';
list += '<a href="javascript:;" index="'+i+'" class="btlink edit" title="编辑">编辑</a> | ';
list += '<a href="javascript:;" class="btlink" onclick="domainDel(\''+rdata.data[i]['id']+'\',\''+rdata.data[i]['domain']+'\')" title="删除">删除</a>';
list += '</td></tr>';
}
var con = '<div class="safe bgw">\
<button onclick="domainAdd()" title="添加顶级域名" class="btn btn-success btn-sm" type="button" style="margin-right: 5px;">添加域名</button>\
<button onclick="domainHookCmd()" title="全部同步命令" class="btn btn-success btn-sm" type="button" style="margin-right: 5px;">全部同步命令</button>\
<button onclick="syncCfCmd()" title="cloudflare同步命令" class="btn btn-success btn-sm" type="button" style="margin-right: 5px;">cloudflare同步命令</button>\
<button onclick="syncDnsPodCmd()" title="DnsPod国际同步命令" class="btn btn-success btn-sm" type="button" style="margin-right: 5px;">DnsPod国际同步命令</button>\
<div class="divtable mtb10">\
<div class="tablescroll">\
<table id="DataBody" class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0" style="border: 0 none;">\
<thead><tr><th width="30"><input class="check" onclick="checkSelect();" type="checkbox"></th>\
<th>域名</th>\
<th>DNSAPI</th>\
<th>邮件</th>\
<th>备注</th>\
<th>开始</th>\
<th>结束</th>\
<th>同步</th>\
<th style="text-align:right;">操作</th></tr></thead>\
<tbody>'+ list +'</tbody>\
</table>\
</div>\
<div class="dataTables_paginate paging_bootstrap page"></div>\
</div>\
</div>';
$(".soft-man-con").html(con);
$('.dataTables_paginate').html(rdata.page);
$('.edit').click(function(){
var idx = $(this).attr('index');
var row = rdata.data[idx];
domainAdd(row);
});
$('.status').click(function(){
var idx = $(this).attr('index');
var row = rdata.data[idx];
domainStatusToggle(row['id']);
});
$('.cmd').click(function(){
var idx = $(this).attr('index');
var row = rdata.data[idx];
domainIdCmd(row['id']);
});
readerTableChecked();
});
}

View File

@@ -0,0 +1,142 @@
# coding:utf-8
import sys
import io
import os
import time
import json
# print(sys.platform)
if sys.platform != "darwin":
os.chdir("/www/server/mdserver-web")
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
from utils.crontab import crontab as MwCrontab
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'acme_pandominassl_apply'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getTaskConf():
conf = getServerDir() + "/cron_config.json"
return conf
def getTaskDeltaConf():
conf = getServerDir() + "/cron_delta_config.json"
return conf
def getConfigData():
try:
return json.loads(mw.readFile(getTaskConf()))
except:
pass
return {
"task_id": -1,
"period": "day-n",
"where1": "1",
"hour": "0",
"minute": "15",
}
def createBgTask():
removeBgTask()
createBgTaskByName(getPluginName())
return True
def createBgTaskByName(name):
args = getConfigData()
_name = "[勿删]ACME泛域名SSL[APA]"
res = mw.M("crontab").field("id, name").where("name=?", (_name,)).find()
if res:
return True
if "task_id" in args and args["task_id"] > 0:
res = mw.M("crontab").field("id, name").where(
"id=?", (args["task_id"],)).find()
if res and res["id"] == args["task_id"]:
print("计划任务已经存在!")
return True
mw_dir = mw.getPanelDir()
cmd = '''
mw_dir=%s
rname=%s
plugin_path=%s
script_path=%s
logs_file=$plugin_path/${rname}.log
''' % (mw_dir, name, getServerDir(), getPluginDir())
cmd += 'echo "★【`date +"%Y-%m-%d %H:%M:%S"`】 STSRT★" >> $logs_file' + "\n"
cmd += 'echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" >> $logs_file' + "\n"
cmd += 'echo "python3 $script_path/index.py run_hook"' + "\n"
cmd += 'cd $mw_dir && python3 $script_path/index.py run_hook' + "\n"
cmd += 'echo "【`date +"%Y-%m-%d %H:%M:%S"`】 END★" >> $logs_file' + "\n"
cmd += 'echo "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" >> $logs_file' + "\n"
params = {
'name': _name,
'type': args['period'],
'week': "",
'where1': args['where1'],
'hour': args['hour'],
'minute': args['minute'],
'save': "",
'backup_to': "",
'stype': "toShell",
'sname': '',
'sbody': cmd,
'url_address': '',
}
task_id = MwCrontab.instance().add(params)
if task_id > 0:
args["task_id"] = task_id
args["name"] = name
mw.writeFile(getTaskConf(), json.dumps(args))
def removeBgTask():
cfg = getConfigData()
if "task_id" in cfg and cfg["task_id"] > 0:
res = mw.M("crontab").field("id, name").where(
"id=?", (cfg["task_id"],)).find()
if res and res["id"] == cfg["task_id"]:
import crontab_api
api = crontab_api.crontab_api()
data = api.delete(cfg["task_id"])
if data[0]:
cfg["task_id"] = -1
mw.writeFile(getTaskConf(), json.dumps(cfg))
return True
return False
if __name__ == "__main__":
if len(sys.argv) > 1:
action = sys.argv[1]
if action == "remove":
removeBgTask()
elif action == "add":
createBgTask()

BIN
plugins/alist/ico.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

31
plugins/alist/index.html Executable file
View File

@@ -0,0 +1,31 @@
<style>
.overflow_hide {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
vertical-align: middle;
}
</style>
<div class="bt-form">
<div class='plugin_version'></div>
<div class="bt-w-main">
<div class="bt-w-menu">
<p class="bgw" onclick="pluginService('alist');">服务</p>
<p onclick="pluginInitD('alist');">自启动</p>
<p onclick="alistCommonFunc();">常用功能</p>
<p onclick="pluginConfigTpl('alist',$('.plugin_version').attr('version'));">配置修改</p>
<p onclick="pluginLogs('alist','','run_log');">运行日志</p>
<p onclick="alistReadme();">相关说明</p>
</div>
<div class="bt-w-con pd15">
<div class="soft-man-con" style="height: 520px; overflow: auto;"></div>
</div>
</div>
</div>
<script type="text/javascript">
$.getScript( "/plugins/file?name=alist&f=js/alist.js", function(){
pluginService('alist', $('.plugin_version').attr('version'));
});
</script>

319
plugins/alist/index.py Executable file
View File

@@ -0,0 +1,319 @@
# coding:utf-8
import sys
import io
import os
import time
import re
import json
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'alist'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getInitDFile():
current_os = mw.getOs()
if current_os == 'darwin':
return '/tmp/' + getPluginName()
if current_os.startswith('freebsd'):
return '/etc/rc.d/' + getPluginName()
return '/etc/init.d/' + getPluginName()
def getInitDTpl():
path = getPluginDir() + "/init.d/" + getPluginName() + ".tpl"
return path
def getArgs():
args = sys.argv[3:]
tmp = {}
args_len = len(args)
if args_len == 1:
t = args[0].strip('{').strip('}')
if t.strip() == '':
tmp = []
else:
t = t.split(':')
tmp[t[0]] = t[1]
tmp[t[0]] = t[1]
elif args_len > 1:
for i in range(len(args)):
t = args[i].split(':')
tmp[t[0]] = t[1]
return tmp
def checkArgs(data, ck=[]):
for i in range(len(ck)):
if not ck[i] in data:
return (False, mw.returnJson(False, '参数:(' + ck[i] + ')没有!'))
return (True, mw.returnJson(True, 'ok'))
def getConf():
path = getServerDir() + "/data/config.json"
return path
def configTpl():
path = getPluginDir() + '/tpl'
pathFile = os.listdir(path)
tmp = []
for one in pathFile:
file = path + '/' + one
tmp.append(file)
return mw.getJson(tmp)
def readConfigTpl():
args = getArgs()
data = checkArgs(args, ['file'])
if not data[0]:
return data[1]
content = mw.readFile(args['file'])
content = contentReplace(content)
return mw.returnJson(True, 'ok', content)
def __release_port(port, ps = '开启端口'):
try:
from utils.firewall import Firewall as MwFirewall
MwFirewall.instance().addAcceptPort(port, ps, 'port')
return port
except Exception as e:
return "Release failed {}".format(e)
def __delete_port(port):
try:
from utils.firewall import Firewall as MwFirewall
MwFirewall.instance().delAcceptPortCmd(port, 'tcp')
return port
except Exception as e:
return "Delete failed {}".format(e)
def openPort():
content = mw.readFile(getConf())
data = json.loads(content)
http_port = data['scheme']['http_port']
__release_port(http_port, 'alist')
return True
def status():
cmd = "ps aux|grep alist |grep -v grep | grep -v python | grep -v mdserver-web | awk '{print $2}'"
data = mw.execShell(cmd)
if data[0] == '':
return 'stop'
return 'start'
def contentReplace(content):
service_path = mw.getServerDir()
content = content.replace('{$ROOT_PATH}', mw.getFatherDir())
content = content.replace('{$SERVER_PATH}', service_path)
content = content.replace('{$SERVER_APP}', service_path + '/'+getPluginName())
return content
def initDreplace():
file_tpl = getInitDTpl()
service_path = mw.getServerDir()
initD_path = getServerDir() + '/init.d'
if not os.path.exists(initD_path):
os.mkdir(initD_path)
file_bin = initD_path + '/' + getPluginName()
# initd replace
if not os.path.exists(file_bin):
content = mw.readFile(file_tpl)
content = content.replace('{$SERVER_PATH}', service_path)
mw.writeFile(file_bin, content)
mw.execShell('chmod +x ' + file_bin)
# systemd
systemDir = mw.systemdCfgDir()
systemService = systemDir + '/' + getPluginName() + '.service'
if os.path.exists(systemDir) and not os.path.exists(systemService):
systemServiceTpl = getPluginDir() + '/init.d/' + getPluginName() + '.service.tpl'
service_path = mw.getServerDir()
se_content = mw.readFile(systemServiceTpl)
se_content = se_content.replace('{$SERVER_PATH}', service_path)
mw.writeFile(systemService, se_content)
mw.execShell('systemctl daemon-reload')
time.sleep(1)
return file_bin
def alistOp(method):
file = initDreplace()
current_os = mw.getOs()
if current_os == "darwin":
data = mw.execShell(file + ' ' + method)
if data[1] == '':
return 'ok'
return data[1]
if current_os.startswith("freebsd"):
data = mw.execShell('service ' + getPluginName() + ' ' + method)
if data[1] == '':
return 'ok'
return data[1]
data = mw.execShell('systemctl ' + method + ' ' + getPluginName())
if data[1] == '':
return 'ok'
return data[1]
def start():
return alistOp('start')
def stop():
return alistOp('stop')
def restart():
status = alistOp('restart')
return status
def reload():
return alistOp('reload')
def initdStatus():
current_os = mw.getOs()
if current_os == 'darwin':
return "Apple Computer does not support"
if current_os.startswith('freebsd'):
initd_bin = getInitDFile()
if os.path.exists(initd_bin):
return 'ok'
shell_cmd = 'systemctl status ' + \
getPluginName() + ' | grep loaded | grep "enabled;"'
data = mw.execShell(shell_cmd)
if data[0] == '':
return 'fail'
return 'ok'
def initdInstall():
current_os = mw.getOs()
if current_os == 'darwin':
return "Apple Computer does not support"
# freebsd initd install
if current_os.startswith('freebsd'):
import shutil
source_bin = initDreplace()
initd_bin = getInitDFile()
shutil.copyfile(source_bin, initd_bin)
mw.execShell('chmod +x ' + initd_bin)
mw.execShell('sysrc ' + getPluginName() + '_enable="YES"')
return 'ok'
mw.execShell('systemctl enable ' + getPluginName())
return 'ok'
def initdUinstall():
current_os = mw.getOs()
if current_os == 'darwin':
return "Apple Computer does not support"
if current_os.startswith('freebsd'):
initd_bin = getInitDFile()
os.remove(initd_bin)
mw.execShell('sysrc ' + getPluginName() + '_enable="NO"')
return 'ok'
mw.execShell('systemctl disable ' + getPluginName())
return 'ok'
def runLog():
return getServerDir() + '/data/log/log.log'
def pSqliteDb(dbname='databases'):
pos_file = getServerDir() + '/data/'
file = pos_file + '/data.db'
name = 'data'
conn = mw.M(dbname).dbPos(pos_file, name)
return conn
def clearCopyTask():
conn = pSqliteDb('x_task_items')
conn.where('key=?', ('copy',)).setField('persist_data','[]')
restart()
return mw.returnJson(True, '清空成功并重启服务!')
def homePage():
content = mw.readFile(getConf())
data = json.loads(content)
http_port = data['scheme']['http_port']
ip = mw.getLocalIp()
if mw.isAppleSystem():
ip = '127.0.0.1'
url = 'http://'+ip+":"+str(http_port)
# print(url)
return mw.returnJson(True, 'ok!', url)
if __name__ == "__main__":
func = sys.argv[1]
if func == 'status':
print(status())
elif func == 'start':
print(start())
elif func == 'stop':
print(stop())
elif func == 'restart':
print(restart())
elif func == 'reload':
print(reload())
elif func == 'initd_status':
print(initdStatus())
elif func == 'initd_install':
print(initdInstall())
elif func == 'initd_uninstall':
print(initdUinstall())
elif func == 'conf':
print(getConf())
elif func == 'run_log':
print(runLog())
elif func == 'config_tpl':
print(configTpl())
elif func == 'read_config_tpl':
print(readConfigTpl())
elif func == 'clear_copy_task':
print(clearCopyTask())
elif func == 'home_page':
print(homePage())
else:
print('error')

17
plugins/alist/info.json Executable file
View File

@@ -0,0 +1,17 @@
{
"sort": 7,
"ps": "一个支持多种存储的文件列表程序",
"name": "alist",
"title": "Alist",
"shell": "install.sh",
"versions":["3.37.4","3.38.0","3.45.0"],
"tip": "soft",
"checks": "server/alist",
"path": "server/alist",
"display": 1,
"author": "alist",
"date": "2022-10-09",
"home": "https://alist.nn.ci",
"type": 0,
"pid": "5"
}

View File

@@ -0,0 +1,13 @@
[Unit]
Description=A file list program that supports multiple storage
After=network.target
[Service]
Type=simple
WorkingDirectory={$SERVER_PATH}/alist
ExecStart={$SERVER_PATH}/alist/alist server
ExecReload=/bin/kill -USR2 $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,46 @@
#!/bin/sh
# chkconfig: 2345 55 25
# description: alist Service
### BEGIN INIT INFO
# Provides: alist
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts alist
# Description: starts the MDW-Web
### END INIT INFO
# Simple alist init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
app_start(){
echo "Starting alist server..."
cd {$SERVER_PATH}/alist
./alist server >> {$SERVER_PATH}/alist/logs.pl 2>&1 &
}
app_stop(){
echo "dztasks stopped"
ps -ef| grep alist | grep -v grep | grep -v python | grep -v sh | awk '{print $2}'| xargs kill -9
}
case "$1" in
start)
app_start
;;
stop)
app_stop
;;
restart|reload)
app_stop
sleep 0.3
app_start
;;
*)
echo "Please use start or stop as first argument"
;;
esac

93
plugins/alist/install.sh Executable file
View File

@@ -0,0 +1,93 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
# cd /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/alist && bash install.sh install 3.37.4
# cd /www/server/mdserver-web/plugins/alist && bash install.sh install 3.45.0
VERSION=$2
sysArch=`arch`
sysName=`uname`
ALIST_ARCH_NAME=amd64
if [ "$sysArch" == "arm64" ];then
ALIST_ARCH_NAME=arm64
elif [ "$sysArch" == "x86_64" ]; then
ALIST_ARCH_NAME=amd64
elif [ "$sysArch" == "aarch64" ]; then
ALIST_ARCH_NAME=arm64
fi
ALIST_NAME=linux
if [ "$sysName" == "Darwin" ];then
ALIST_NAME=darwin
fi
Install_App()
{
echo '正在安装脚本文件...'
mkdir -p $serverPath/source
mkdir -p $serverPath/source/alist
FILE_TGZ=alist-${ALIST_NAME}-${ALIST_ARCH_NAME}.tar.gz
ALIST_DIR=$serverPath/source/alist
if [ ! -f $ALIST_DIR/${FILE_TGZ} ];then
wget --no-check-certificate -O $ALIST_DIR/${FILE_TGZ} https://github.com/alist-org/alist/releases/download/v${VERSION}/${FILE_TGZ}
fi
mkdir -p $serverPath/alist
cd $ALIST_DIR && tar -zxvf ${FILE_TGZ} -C $serverPath/alist
echo "${VERSION}" > $serverPath/alist/version.pl
cd ${rootPath} && python3 ${rootPath}/plugins/alist/index.py start
cd ${rootPath} && python3 ${rootPath}/plugins/alist/index.py initd_install
cd $serverPath/alist && ./alist admin set admin
# cd /www/server/alist && ./alist admin set admin
echo '安装完成'
}
Uninstall_App()
{
if [ -f /usr/lib/systemd/system/alist.service ];then
systemctl stop alist
systemctl disable alist
rm -rf /usr/lib/systemd/system/alist.service
systemctl daemon-reload
fi
if [ -f /lib/systemd/system/alist.service ];then
systemctl stop alist
systemctl disable alist
rm -rf /lib/systemd/system/alist.service
systemctl daemon-reload
fi
if [ -f $serverPath/alist/initd/alist ];then
$serverPath/alist/initd/alist stop
fi
if [ -d $serverPath/alist ];then
rm -rf $serverPath/alist
fi
echo "卸载alist成功"
}
action=$1
if [ "${1}" == 'install' ];then
Install_App
else
Uninstall_App
fi

93
plugins/alist/js/alist.js Executable file
View File

@@ -0,0 +1,93 @@
function alistPost(method, version, args,callback){
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
var req_data = {};
req_data['name'] = 'alist';
req_data['func'] = method;
req_data['version'] = version;
if (typeof(args) == 'string'){
req_data['args'] = JSON.stringify(toArrayObject(args));
} else {
req_data['args'] = JSON.stringify(args);
}
$.post('/plugins/run', req_data, function(data) {
layer.close(loadT);
if (!data.status){
//错误展示10S
layer.msg(data.msg,{icon:0,time:2000,shade: [10, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function alistPostCallbak(method, version, args,callback){
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
var req_data = {};
req_data['name'] = 'alist';
req_data['func'] = method;
args['version'] = version;
if (typeof(args) == 'string'){
req_data['args'] = JSON.stringify(toArrayObject(args));
} else {
req_data['args'] = JSON.stringify(args);
}
$.post('/plugins/callback', req_data, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function clearTaskCopy(){
layer.confirm('您真的要清空复制任务吗?', { icon: 3, closeBtn: 2 }, function() {
alistPost('clear_copy_task', '', {}, function(data){
var rdata = $.parseJSON(data.data);
showMsg(rdata.msg, function(){},{ icon: rdata.status ? 1 : 2 });
});
});
}
function commonHomePage(){
alistPost('home_page', '', {}, function(data){
var rdata = $.parseJSON(data.data);
window.open(rdata.data);
});
}
function alistCommonFunc(){
var con = '';
con += '<hr/><p class="conf_p" style="text-align:center;">\
<button class="btn btn-default btn-sm" onclick="commonHomePage()">主页</button>\
<button class="btn btn-default btn-sm" onclick="clearTaskCopy()">清空复制任务</button>\
</p>';
$(".soft-man-con").html(con);
}
function alistReadme(){
var readme = '<ul class="help-info-text c7">';
readme += '<li>手动开启默认端口:5244</li>';
readme += '<li>默认admin:admin</li>';
readme += '<li>手动改密码: cd /www/server/alist && ./alist admin set NEW_PASSWORD</li>';
readme += '</ul>';
$('.soft-man-con').html(readme);
}

35
plugins/apache/check.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin
export PATH
# OpenResty服务名称
service_name="openresty"
# 检查OpenResty是否正在运行
if systemctl is-active --quiet "$service_name"; then
# 检查是否存在僵尸进程
zombie_processes=$(ps -ef | grep -i openresty | grep -v grep | awk '{print $2}' | xargs ps -o state= -p 2>/dev/null | grep -c Z)
if [ "$zombie_processes" -gt 0 ]; then
echo "kill nginx 僵尸进程"
ps -ef|grep nginx| grep -v grep| awk '{print $2}' | xargs kill -9
echo "检测到OpenResty僵尸进程,正在重启服务..."
systemctl restart "$service_name"
echo "服务已重启"
else
echo "OpenResty运行正常"
fi
else
echo "kill nginx"
ps -ef|grep nginx| grep -v grep| awk '{print $2}' | xargs kill -9
echo "OpenResty未运行,正在启动服务..."
systemctl start "$service_name"
echo "服务已启动"
fi
NGINX_IDS=`ps -ef|grep nginx | grep -v grep| awk '{print $2}'`
if [ "$NGINX_IDS" == "" ];then
ps -ef|grep nginx| grep -v grep| awk '{print $2}' | xargs kill -9
systemctl start "$service_name"
echo "OpenResty未运行,正在启动服务..."
fi

View File

@@ -0,0 +1,57 @@
<IfModule !mpm_netware_module>
PidFile "logs/httpd.pid"
</IfModule>
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 3
MinSpareThreads 75
MaxSpareThreads 250
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 3
MinSpareThreads 75
MaxSpareThreads 250
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 0
</IfModule>
<IfModule mpm_netware_module>
ThreadStackSize 65536
StartThreads 250
MinSpareThreads 25
MaxSpareThreads 250
MaxThreads 1000
MaxConnectionsPerChild 0
</IfModule>
<IfModule mpm_mpmt_os2_module>
StartServers 2
MinSpareThreads 5
MaxSpareThreads 10
MaxConnectionsPerChild 0
</IfModule>
<IfModule mpm_winnt_module>
ThreadsPerChild 150
MaxConnectionsPerChild 0
</IfModule>
<IfModule !mpm_netware_module>
MaxMemFree 2048
</IfModule>
<IfModule mpm_netware_module>
MaxMemFree 100
</IfModule>

View File

@@ -0,0 +1,105 @@
ServerRoot "{$SERVER_PATH}/apache/httpd"
Listen 8280
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule filter_module modules/mod_filter.so
LoadModule brotli_module modules/mod_brotli.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule status_module modules/mod_status.so
LoadModule dir_module modules/mod_dir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
<IfModule unixd_module>
User daemon
Group daemon
</IfModule>
ServerAdmin you@example.com
ServerName localhost:8280
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "{$SERVER_PATH}/apache/httpd/htdocs"
<Directory "{$SERVER_PATH}/apache/httpd/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error.log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access.log" common
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "{$SERVER_PATH}/apache/httpd/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "{$SERVER_PATH}/apache/httpd/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule headers_module>
RequestHeader unset Proxy early
</IfModule>
<IfModule mime_module>
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
EnableSendfile on
Include conf/extra/httpd-info.conf
Include conf/extra/httpd-mpm.conf
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

View File

@@ -0,0 +1,506 @@
#
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path. If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so "logs/access_log"
# with ServerRoot set to "/usr/local/apache2" will be interpreted by the
# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log"
# will be interpreted as '/logs/access_log'.
#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path. If you point
# ServerRoot at a non-local disk, be sure to specify a local disk on the
# Mutex directive, if file-based mutexes are used. If you wish to share the
# same ServerRoot for multiple httpd daemons, you will need to change at
# least PidFile.
#
ServerRoot "/Users/midoks/Desktop/mwdev/server/apache/httpd"
#
# Mutex: Allows you to set the mutex mechanism and mutex file directory
# for individual mutexes, or change the global defaults
#
# Uncomment and change the directory if mutexes are file-based and the default
# mutex file directory is not on a local disk or is not appropriate for some
# other reason.
#
# Mutex default:logs
#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80
#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_socache_module modules/mod_authn_socache.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_dbd_module modules/mod_authz_dbd.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_form_module modules/mod_auth_form.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule allowmethods_module modules/mod_allowmethods.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cache_disk_module modules/mod_cache_disk.so
#LoadModule cache_socache_module modules/mod_cache_socache.so
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
#LoadModule socache_dbm_module modules/mod_socache_dbm.so
#LoadModule socache_memcache_module modules/mod_socache_memcache.so
#LoadModule socache_redis_module modules/mod_socache_redis.so
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule macro_module modules/mod_macro.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule dumpio_module modules/mod_dumpio.so
#LoadModule buffer_module modules/mod_buffer.so
#LoadModule ratelimit_module modules/mod_ratelimit.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule request_module modules/mod_request.so
#LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule sed_module modules/mod_sed.so
#LoadModule brotli_module modules/mod_brotli.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_debug_module modules/mod_log_debug.so
#LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
#LoadModule remoteip_module modules/mod_remoteip.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
#LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_express_module modules/mod_proxy_express.so
#LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
#LoadModule session_module modules/mod_session.so
#LoadModule session_cookie_module modules/mod_session_cookie.so
#LoadModule session_dbd_module modules/mod_session_dbd.so
#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule http2_module modules/mod_http2.so
#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule unixd_module modules/mod_unixd.so
#LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule info_module modules/mod_info.so
#LoadModule cgid_module modules/mod_cgid.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
#LoadModule actions_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
#LoadModule rewrite_module modules/mod_rewrite.so
<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon
</IfModule>
# 'Main' server configuration
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition. These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#
#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed. This address appears on some server-generated pages, such
# as error documents. e.g. admin@your-domain.com
#
ServerAdmin you@example.com
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80
#
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
#
<Directory />
AllowOverride none
Require all denied
</Directory>
#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/Users/midoks/Desktop/mwdev/server/apache/httpd/htdocs"
<Directory "/Users/midoks/Desktop/mwdev/server/apache/httpd/htdocs">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ".ht*">
Require all denied
</Files>
#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog "logs/error_log"
#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn
<IfModule log_config_module>
#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
#
# The location and format of the access logfile (Common Logfile Format).
# If you do not define any access logfiles within a <VirtualHost>
# container, they will be logged here. Contrariwise, if you *do*
# define per-<VirtualHost> access logfiles, transactions will be
# logged therein and *not* in this file.
#
CustomLog "logs/access_log" common
#
# If you prefer a logfile with access, agent, and referer information
# (Combined Logfile Format) you can use the following directive.
#
#CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
#
# Redirect: Allows you to tell clients about documents that used to
# exist in your server's namespace, but do not anymore. The client
# will make a new request for the document at its new location.
# Example:
# Redirect permanent /foo http://www.example.com/bar
#
# Alias: Maps web paths into filesystem paths and is used to
# access content that does not live under the DocumentRoot.
# Example:
# Alias /webpath /full/filesystem/path
#
# If you include a trailing / on /webpath then the server will
# require it to be present in the URL. You will also likely
# need to provide a <Directory> section to allow access to
# the filesystem path.
#
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the target directory are treated as applications and
# run by the server when requested rather than as documents sent to the
# client. The same rules about trailing "/" apply to ScriptAlias
# directives as to Alias.
#
ScriptAlias /cgi-bin/ "/Users/midoks/Desktop/mwdev/server/apache/httpd/cgi-bin/"
</IfModule>
<IfModule cgid_module>
#
# ScriptSock: On threaded servers, designate the path to the UNIX
# socket used to communicate with the CGI daemon of mod_cgid.
#
#Scriptsock cgisock
</IfModule>
#
# "/Users/midoks/Desktop/mwdev/server/apache/httpd/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/Users/midoks/Desktop/mwdev/server/apache/httpd/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule headers_module>
#
# Avoid passing HTTP_PROXY environment to CGI's on this or any proxied
# backend servers which have lingering "httpoxy" defects.
# 'Proxy' request header is undefined by the IETF, not listed by IANA
#
RequestHeader unset Proxy early
</IfModule>
<IfModule mime_module>
#
# TypesConfig points to the file containing the list of mappings from
# filename extension to MIME-type.
#
TypesConfig conf/mime.types
#
# AddType allows you to add to or override the MIME configuration
# file specified in TypesConfig for specific file types.
#
#AddType application/x-gzip .tgz
#
# AddEncoding allows you to have certain browsers uncompress
# information on the fly. Note: Not all browsers support this.
#
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
#AddHandler cgi-script .cgi
# For type maps (negotiated resources):
#AddHandler type-map var
#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
</IfModule>
#
# The mod_mime_magic module allows the server to use various hints from the
# contents of the file itself to determine its type. The MIMEMagicFile
# directive tells the module where the hint definitions are located.
#
#MIMEMagicFile conf/magic
#
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#
#
# MaxRanges: Maximum number of Ranges in a request before
# returning the entire resource, or one of the special
# values 'default', 'none' or 'unlimited'.
# Default setting is to accept 200 Ranges.
#MaxRanges unlimited
#
# EnableMMAP and EnableSendfile: On systems that support it,
# memory-mapping or the sendfile syscall may be used to deliver
# files. This usually improves server performance, but must
# be turned off when serving from networked-mounted
# filesystems or if support for these functions is otherwise
# broken on your system.
# Defaults: EnableMMAP On, EnableSendfile Off
#
#EnableMMAP off
#EnableSendfile on
# Supplemental configuration
#
# The configuration files in the conf/extra/ directory can be
# included to add extra features or to modify the default configuration of
# the server, or you may simply copy their contents here and change as
# necessary.
# Server-pool management (MPM specific)
#Include conf/extra/httpd-mpm.conf
# Multi-language error messages
#Include conf/extra/httpd-multilang-errordoc.conf
# Fancy directory listings
#Include conf/extra/httpd-autoindex.conf
# Language settings
#Include conf/extra/httpd-languages.conf
# User home directories
#Include conf/extra/httpd-userdir.conf
# Real-time info on requests and configuration
#Include conf/extra/httpd-info.conf
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
# Local access to the Apache HTTP Server Manual
#Include conf/extra/httpd-manual.conf
# Distributed authoring and versioning (WebDAV)
#Include conf/extra/httpd-dav.conf
# Various default settings
#Include conf/extra/httpd-default.conf
# Configure mod_proxy_html to understand HTML4/XHTML1
<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>
# Secure (SSL/TLS) connections
#Include conf/extra/httpd-ssl.conf
#
# Note: The following must must be present to support
# starting without SSL on platforms with no /dev/random equivalent
# but a statically compiled-in mod_ssl.
#
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

BIN
plugins/apache/ico.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

25
plugins/apache/index.html Executable file
View File

@@ -0,0 +1,25 @@
<div class="bt-form">
<!-- <div class='plugin_version'></div> -->
<div class="bt-w-main">
<div class="bt-w-menu">
<p class="bgw" onclick="httpPluginService('apache',$('.plugin_version').attr('version'));">服务</p>
<p onclick="pluginInitD('apache', $('.plugin_version').attr('version'));">自启动</p>
<p onclick="pluginConfig('apache');">配置修改</p>
<p onclick="getHttpdStatus();">负载状态</p>
<p onclick="setOpCfg();">MPM性能调整</p>
<p onclick="pluginLogs('apache');">错误日志</p>
<p onclick="otherFunc();">维护功能</p>
</div>
<div class="bt-w-con pd15">
<div class="soft-man-con" style="height: 500px; overflow-y: auto;"></div>
</div>
</div>
</div>
<script type="text/javascript">
// resetPluginWinHeight(600);
$.getScript( "/plugins/file?name=apache&f=js/httpd.js", function(){
httpPluginService('apache');
});
</script>

593
plugins/apache/index.py Executable file
View File

@@ -0,0 +1,593 @@
# coding:utf-8
import sys
import io
import os
import time
import threading
import subprocess
import re
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'apache'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getInitDFile():
current_os = mw.getOs()
if current_os == 'darwin':
return '/tmp/' + getPluginName()
if current_os.startswith('freebsd'):
return '/etc/rc.d/' + getPluginName()
return '/etc/init.d/' + getPluginName()
def getArgs():
args = sys.argv[2:]
# print(args)
tmp = {}
args_len = len(args)
if args_len == 1:
t = args[0].strip('{').strip('}')
t = t.split(':',2)
tmp[t[0]] = t[1]
elif args_len > 1:
for i in range(len(args)):
t = args[i].split(':',2)
tmp[t[0]] = t[1]
# print(tmp)
return tmp
def checkArgs(data, ck=[]):
for i in range(len(ck)):
if not ck[i] in data:
return (False, mw.returnJson(False, '参数:(' + ck[i] + ')没有!'))
return (True, mw.returnJson(True, 'ok'))
def clearTemp():
path_bin = getServerDir() + "/httpd"
def getConf():
path = getServerDir() + "/httpd/conf/httpd.conf"
return path
def getConfMpm():
path = getServerDir() + "/httpd/conf/extra/httpd-mpm.conf"
return path
def getConfTpl():
path = getPluginDir() + '/conf/httpd.conf'
return path
def getOs():
data = {}
data['os'] = mw.getOs()
data['auth'] = True
return mw.getJson(data)
def getInitDTpl():
path = getPluginDir() + "/init.d/httpd.tpl"
return path
def getPidFile():
file = getConf()
content = mw.readFile(file)
rep = r'pid\s*(.*);'
tmp = re.search(rep, content)
return tmp.groups()[0].strip()
def getFileOwner(filename):
import pwd
stat = os.lstat(filename)
uid = stat.st_uid
pw = pwd.getpwuid(uid)
return pw.pw_name
def checkAuthEq(file, owner='root'):
fowner = getFileOwner(file)
if (fowner == owner):
return True
return False
def confReplace():
service_path = mw.getServerDir()
content = mw.readFile(getConfTpl())
content = content.replace('{$SERVER_PATH}', service_path)
# 主配置文件
nconf = getServerDir() + '/httpd/conf/httpd.conf'
mw.writeFile(nconf, content)
def initDreplace():
file_tpl = getInitDTpl()
service_path = mw.getServerDir()
initD_path = getServerDir() + '/init.d'
# OpenResty is not installed
if not os.path.exists(getServerDir()):
print("ok")
exit(0)
# init.d
file_bin = initD_path + '/' + getPluginName()
if not os.path.exists(initD_path):
os.mkdir(initD_path)
# initd replace
content = mw.readFile(file_tpl)
content = content.replace('{$SERVER_PATH}', service_path)
mw.writeFile(file_bin, content)
mw.execShell('chmod +x ' + file_bin)
# config replace
confReplace()
# systemd
# /usr/lib/systemd/system
systemDir = mw.systemdCfgDir()
systemService = systemDir + '/httpd.service'
if os.path.exists(systemDir) and not os.path.exists(systemService):
systemServiceTpl = getPluginDir() + '/init.d/httpd.service.tpl'
se_content = mw.readFile(systemServiceTpl)
se_content = se_content.replace('{$SERVER_PATH}', service_path)
mw.writeFile(systemService, se_content)
mw.execShell('systemctl daemon-reload')
return file_bin
def status():
cmd = "ps -ef|grep 'httpd/bin/httpd' |grep -v grep | grep -v python | awk '{print $2}'"
data = mw.execShell(cmd)
if data[0] == '':
return 'stop'
return 'start'
def restyOp(method):
file = initDreplace()
# 启动时,先检查一下配置文件
check = getServerDir() + "/httpd/bin/httpd -t"
check_data = mw.execShell(check)
if not check_data[1].find('Syntax OK') > -1:
return check_data[1]
current_os = mw.getOs()
if current_os == "darwin":
data = mw.execShell(file + ' ' + method)
if data[1] == '':
return 'ok'
return data[1]
if current_os.startswith("freebsd"):
mw.execShell('service httpd '+method)
if data[1] == '':
return 'ok'
return data[1]
data = mw.execShell('systemctl ' + method + ' httpd')
if data[1] == '':
return 'ok'
return data[1]
def op_submit_systemctl_restart():
current_os = mw.getOs()
if current_os.startswith("freebsd"):
mw.execShell('service httpd restart')
return True
mw.execShell('systemctl restart httpd')
return True
def op_submit_init_restart(file):
mw.execShell(file + ' restart')
def restyOp_restart():
file = initDreplace()
# 启动时,先检查一下配置文件
check = getServerDir() + "/httpd/bin/httpd -t"
check_data = mw.execShell(check)
if not check_data[1].find('Syntax OK') > -1:
return 'ERROR: 配置出错<br><a style="color:red;">' + check_data[1].replace("\n", '<br>') + '</a>'
if not mw.isAppleSystem():
threading.Timer(2, op_submit_systemctl_restart).start()
return 'ok'
threading.Timer(2, op_submit_init_restart, args=(file,)).start()
return 'ok'
def start():
return restyOp('start')
def stop():
r = restyOp('stop')
mw.execShell("ps -ef|grep httpd | grep -v grep | awk '{print $2}'|xargs -r kill")
return r
def restart():
return restyOp_restart()
def reload():
confReplace()
return restyOp('reload')
def initdStatus():
current_os = mw.getOs()
if current_os == 'darwin':
return "Apple Computer does not support"
if current_os.startswith('freebsd'):
initd_bin = getInitDFile()
if os.path.exists(initd_bin):
return 'ok'
shell_cmd = 'systemctl status httpd | grep loaded | grep "enabled;"'
data = mw.execShell(shell_cmd)
if data[0] == '':
return 'fail'
return 'ok'
def initdInstall():
current_os = mw.getOs()
if current_os == 'darwin':
return "Apple Computer does not support"
# freebsd initd install
if current_os.startswith('freebsd'):
import shutil
source_bin = initDreplace()
initd_bin = getInitDFile()
shutil.copyfile(source_bin, initd_bin)
mw.execShell('chmod +x ' + initd_bin)
mw.execShell('sysrc httpd_enable="YES"')
return 'ok'
mw.execShell('systemctl enable httpd')
return 'ok'
def initdUinstall():
current_os = mw.getOs()
if current_os == 'darwin':
return "Apple Computer does not support"
if current_os.startswith('freebsd'):
initd_bin = getInitDFile()
os.remove(initd_bin)
mw.execShell('sysrc httpd_enable="NO"')
return 'ok'
mw.execShell('systemctl disable httpd')
return 'ok'
def getHttpdStatusPort():
conf = mw.getServerDir() + '/apache/httpd/conf/httpd.conf'
content = mw.readFile(conf)
if not content:
return None
rep = r'^\s*Listen\s*(?:\d+\.\d+\.\d+\.\d+:)?(\d+)' # 匹配非注释行的 Listen 指令,忽略大小写
tmp = re.search(rep, content, re.IGNORECASE | re.MULTILINE)
if tmp:
port = tmp.groups()[0].strip()
return port
return None
def runInfoDone(data):
result = {}
if not data:
return result
# 解析服务器状态数据
lines = data.strip().split('\n')
for line in lines:
if ':' in line:
key, value = line.split(':', 1)
key = key.strip()
value = value.strip()
result[key] = value
return result
def runInfo():
op_status = status()
if op_status == 'stop':
return mw.returnJson(False, "未启动!")
port = getHttpdStatusPort()
if not port:
return mw.returnJson(False, "无法获取端口信息!")
# 取Openresty负载状态
try:
url = 'http://127.0.0.1:%s/server-status?auto' % port
result = mw.httpGet(url, timeout=3)
data = runInfoDone(result)
return mw.getJson(data)
except Exception as e:
try:
url = 'http://' + mw.getHostAddr() + ':%s/server-status?auto' % port
result = mw.httpGet(url)
data = runInfoDone(result)
return mw.getJson(data)
except Exception as e:
return mw.returnJson(False, "apache异常!")
except Exception as e:
return mw.returnJson(False, "apache not started!")
def errorLogPath():
return getServerDir() + '/httpd/logs/error.log'
def getCfg():
cfg = getConfMpm()
content = mw.readFile(cfg)
unitrep = "[kmgKMG]"
# 获取当前 MPM 模块
mpm_module = ""
mpm_match = re.search(r"mpm_(\w+)_module", content)
if mpm_match:
mpm_module = mpm_match.group(1)
# MPM 配置参数
mpm_cfg_args = {
"prefork": [
{"name": "StartServers", "ps": "服务器进程启动数量", 'type': 2},
{"name": "MinSpareServers", "ps": "保持空闲的最小服务器进程数", 'type': 2},
{"name": "MaxSpareServers", "ps": "保持空闲的最大服务器进程数", 'type': 2},
{"name": "MaxRequestWorkers", "ps": "允许启动的最大服务器进程数", 'type': 2},
{"name": "MaxConnectionsPerChild", "ps": "服务器进程服务的最大连接数", 'type': 2},
],
"worker": [
{"name": "StartServers", "ps": "初始服务器进程数", 'type': 2},
{"name": "MinSpareThreads", "ps": "保持空闲的最小工作线程数", 'type': 2},
{"name": "MaxSpareThreads", "ps": "保持空闲的最大工作线程数", 'type': 2},
{"name": "ThreadsPerChild", "ps": "每个服务器进程的工作线程数", 'type': 2},
{"name": "MaxRequestWorkers", "ps": "最大工作线程数", 'type': 2},
{"name": "MaxConnectionsPerChild", "ps": "服务器进程服务的最大连接数", 'type': 2},
],
"event": [
{"name": "StartServers", "ps": "初始服务器进程数", 'type': 2},
{"name": "MinSpareThreads", "ps": "保持空闲的最小工作线程数", 'type': 2},
{"name": "MaxSpareThreads", "ps": "保持空闲的最大工作线程数", 'type': 2},
{"name": "ThreadsPerChild", "ps": "每个服务器进程的工作线程数", 'type': 2},
{"name": "MaxRequestWorkers", "ps": "最大工作线程数", 'type': 2},
{"name": "MaxConnectionsPerChild", "ps": "服务器进程服务的最大连接数", 'type': 2},
],
"netware": [
{"name": "ThreadStackSize", "ps": "每个工作线程分配的堆栈大小", 'type': 2},
{"name": "StartThreads", "ps": "服务器启动时启动的工作线程数", 'type': 2},
{"name": "MinSpareThreads", "ps": "保持空闲的最小线程数", 'type': 2},
{"name": "MaxSpareThreads", "ps": "保持空闲的最大线程数", 'type': 2},
{"name": "MaxThreads", "ps": "同时活跃的最大工作线程数", 'type': 2},
{"name": "MaxConnectionsPerChild", "ps": "线程服务的最大连接数", 'type': 2},
],
"mpmt_os2": [
{"name": "StartServers", "ps": "维护的服务器进程数", 'type': 2},
{"name": "MinSpareThreads", "ps": "每个进程的最小空闲线程数", 'type': 2},
{"name": "MaxSpareThreads", "ps": "每个进程的最大空闲线程数", 'type': 2},
{"name": "MaxConnectionsPerChild", "ps": "每个服务器进程的最大连接数", 'type': 2},
],
"winnt": [
{"name": "ThreadsPerChild", "ps": "服务器进程中的工作线程数", 'type': 2},
{"name": "MaxConnectionsPerChild", "ps": "服务器进程服务的最大连接数", 'type': 2},
]
}
# 通用配置参数
common_cfg_args = [
{"name": "MaxMemFree", "ps": "每个分配器允许持有的最大空闲KB数", 'type': 2},
]
# 合并配置参数
cfg_args = []
if mpm_module in mpm_cfg_args:
cfg_args.extend(mpm_cfg_args[mpm_module])
cfg_args.extend(common_cfg_args)
rdata = []
for i in cfg_args:
# 匹配 MPM 特定配置
rep = r"<IfModule mpm_%s_module>.*?(%s)\s+(\w+).*?</IfModule>" % (mpm_module, i["name"])
k = re.search(rep, content, re.DOTALL)
# 如果没有找到 MPM 特定配置,尝试匹配通用配置
if not k:
rep = r"(%s)\s+(\w+)" % i["name"]
k = re.search(rep, content)
if not k:
continue
key = k.group(1)
v = k.group(2) if len(k.groups()) > 1 else ""
if re.search(unitrep, v):
u = str.upper(v[-1])
v = v[:-1]
if len(u) == 1:
psstr = u + "B," + i["ps"]
else:
psstr = u + "," + i["ps"]
else:
u = ""
kv = {"name": key, "value": v, "unit": u,
"ps": i["ps"], "type": i["type"]}
rdata.append(kv)
return mw.returnJson(True, "ok", rdata)
def replaceChar(value, index, new_char):
return value[:index] + new_char + value[index+1:]
def setCfg():
args = getArgs()
# 检查参数,允许动态参数
cfg = getConfMpm()
mw.backFile(cfg)
content = mw.readFile(cfg)
# 获取当前 MPM 模块
mpm_module = ""
mpm_match = re.search(r"mpm_(\w+)_module", content)
if mpm_match:
mpm_module = mpm_match.group(1)
# 验证参数值
for k, v in args.items():
# 检查是否为数字参数
if not re.search(r"\d+", v):
return mw.returnJson(False, '参数值错误,请输入数字整数')
# 替换 MPM 特定配置
if mpm_module:
def replace_mpm_config(match):
return match.group(1) + k + match.group(2) + v + match.group(3)
rep = r"(<IfModule mpm_%s_module>.*?)%s(\s+)\d+(.*?</IfModule>)" % (mpm_module, k)
if re.search(rep, content, re.DOTALL):
content = re.sub(rep, replace_mpm_config, content, flags=re.DOTALL)
# 替换通用配置
def replace_common_config(match):
return k + match.group(1) + v
rep = r"%s(\s+)\d+" % k
if re.search(rep, content):
content = re.sub(rep, replace_common_config, content)
mw.writeFile(cfg, content)
isError = mw.checkHttpdConfig()
if (isError != True):
mw.restoreFile(cfg)
return mw.returnJson(False, 'ERROR: 配置出错<br><a style="color:red;">' + isError.replace("\n", '<br>') + '</a>')
mw.restartWeb()
return mw.returnJson(True, '设置成功')
def cronAddCheck():
try:
import tool_task
tool_task.createBgTask()
return mw.returnJson(True, '添加检查任务成功')
except Exception as e:
return mw.returnJson(False, '添加检查任务失败:'+str(e))
def cronDelCheck():
try:
import tool_task
tool_task.removeBgTask()
return mw.returnJson(True, '删除检查任务成功')
except Exception as e:
return mw.returnJson(False, '删除检查任务失败:'+str(e))
def cronCheck():
return 'ok'
def installPreInspection():
return 'ok'
if __name__ == "__main__":
version = '2.4'
version_pl = getServerDir() + "/version.pl"
if os.path.exists(version_pl):
version = mw.readFile(version_pl)
func = sys.argv[1]
if func == 'status':
print(status())
elif func == 'start':
print(start())
elif func == 'stop':
print(stop())
elif func == 'restart':
print(restart())
elif func == 'reload':
print(reload())
elif func == 'initd_status':
print(initdStatus())
elif func == 'initd_install':
print(initdInstall())
elif func == 'initd_uninstall':
print(initdUinstall())
elif func == 'install_pre_inspection':
print(installPreInspection())
elif func == 'conf':
print(getConf())
elif func == 'get_os':
print(getOs())
elif func == 'run_info':
print(runInfo())
elif func == 'error_log':
print(errorLogPath())
elif func == 'get_cfg':
print(getCfg())
elif func == 'set_cfg':
print(setCfg())
elif func == 'check':
print(cronCheck())
elif func == 'cron_add_check':
print(cronAddCheck())
elif func == 'cron_del_check':
print(cronDelCheck())
else:
print('error')

18
plugins/apache/info.json Executable file
View File

@@ -0,0 +1,18 @@
{
"sort": 0,
"title":"apache",
"tip":"soft",
"name":"apache",
"type":"其他插件",
"ps":"世界排名第一,快速、可靠并且可通过简单的API扩充",
"shell":"install.sh",
"install_pre_inspection":true,
"checks":"server/apache",
"path":"server/apache",
"author":"apache",
"home":"https://downloads.apache.org/httpd/",
"date":"2026-04-11",
"pid": "1",
"versions": ["2.4"],
"updates": ["2.4:66"]
}

View File

@@ -0,0 +1,16 @@
[Unit]
Description=Apache Web Server
After=network.target
[Service]
Type=simple
Environment=LANG=C
ExecStart={$SERVER_PATH}/apache/httpd/bin/httpd $OPTIONS -DFOREGROUND
ExecReload={$SERVER_PATH}/apache/httpd/bin/httpd $OPTIONS -k graceful
KillSignal=SIGWINCH
KillMode=mixed
PrivateTmp=true
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,17 @@
[Unit]
Description=Apache Web Server
After=network.target
[Service]
Type=forking
PIDFile={$SERVER_PATH}/apache/httpd/logs/httpd.pid
ExecStart={$SERVER_PATH}/apache/httpd/bin/apachectl start
ExecReload={$SERVER_PATH}/apache/httpd/bin/apachectl graceful
ExecStop={$SERVER_PATH}/apache/httpd/bin/apachectl stop
PrivateTmp=true
User=www
Group=www
Restart=on-failure
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,47 @@
#!/bin/bash
# chkconfig: 345 85 15
# description: Apache Server
### BEGIN INIT INFO
# Provides: apache
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Apache Server
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/homebrew/bin
# Apache 可执行文件的路径
DAEMON={$SERVER_PATH}/apache/httpd/bin/httpd
# 进程的 PID 文件路径
PIDFILE={$SERVER_PATH}/apache/httpd/logs/httpd.pid
# 根据传入的参数执行不同操作
case "$1" in
start)
echo "Starting Apache..."
$DAEMON -k start
;;
stop)
echo "Stopping Apache..."
$DAEMON -k stop
;;
restart)
echo "Restarting Apache..."
$DAEMON -k restart
;;
status)
if [ -f $PIDFILE ]; then
echo "Apache is running."
else
echo "Apache is not running."
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0

87
plugins/apache/install.sh Executable file
View File

@@ -0,0 +1,87 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin
export PATH
# cd /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/apache && bash install.sh install 2.4
# cd /www/server/mdserver-web/plugins/apache && bash install.sh install 2.4
# cd /www/server/mdserver-web/plugins/apache && bash install.sh upgrade 2.4
# curl -I -H "Accept-Encoding: br" http://localhost
# curl -I -H "Accept-Encoding: zstd" http://localhost
# curl --http3 -v https://www.xxx.com
# apt install ncat -y
# nc -u -v www.xx.com 443
# cd /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/apache && python3 plugins/apache/index.py start
# cd /www/server/mdserver-web && python3 plugins/apache/index.py start
# cd /www/server/mdserver-web && python3 plugins/apache/index.py run_info
# ps -ef|grep httpd | grep -v grep | awk '{print $2}'|xargs kill
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sysName=`uname`
action=$1
type=$2
VERSION=$2
openrestyDir=${serverPath}/source/apache
if id www &> /dev/null ;then
echo "www uid is `id -u www`"
echo "www shell is `grep "^www:" /etc/passwd |cut -d':' -f7 `"
else
groupadd www
useradd -g www -s /bin/bash www
fi
if [ "${action}" == "upgrade" ];then
sh -x $curPath/versions/$2/install.sh $1
echo "${VERSION}" > $serverPath/apache/version.pl
mkdir -p $serverPath/web_conf/php/conf
echo 'set $PHP_ENV 0;' > $serverPath/web_conf/php/conf/enable-php-00.conf
#初始化
cd ${rootPath} && python3 ${rootPath}/plugins/apache/index.py start
cd ${rootPath} && python3 ${rootPath}/plugins/apache/index.py initd_install
exit 0
fi
if [ "${2}" == "" ];then
echo '缺少安装脚本版本...'
exit 0
fi
if [ "${action}" == "uninstall" ];then
if [ -f /usr/lib/systemd/system/httpd.service ] || [ -f /lib/systemd/system/httpd.service ];then
systemctl stop httpd
rm -rf /usr/systemd/system/httpd.service
rm -rf /lib/systemd/system/httpd.service
systemctl daemon-reload
fi
if [ -f $serverPath/apache/init.d/httpd ];then
$serverPath/apache/init.d/httpd stop
fi
rm -rf $serverPath/apache
fi
sh -x $curPath/versions/$2/install.sh $1
if [ "${action}" == "install" ] && [ -d $serverPath/apache ];then
echo "${VERSION}" > $serverPath/apache/version.pl
mkdir -p $serverPath/web_conf/php/conf
echo 'set $PHP_ENV 0;' > $serverPath/web_conf/php/conf/enable-php-00.conf
#初始化
cd ${rootPath} && python3 ${rootPath}/plugins/apache/index.py start
cd ${rootPath} && python3 ${rootPath}/plugins/apache/index.py initd_install
fi

278
plugins/apache/js/httpd.js Executable file
View File

@@ -0,0 +1,278 @@
function httpPost(method, args, callback){
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
$.post('/plugins/run', {name:'apache', func:method, args:JSON.stringify(args)}, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function httpPluginService(_name, version){
var data = {name:_name, func:'status'}
if ( typeof(version) != 'undefined' ){
data['version'] = version;
} else {
version = '';
}
httpPost('status', data, function(data){
if (data.data == 'start'){
orPluginSetService(_name, true, version);
} else {
orPluginSetService(_name, false, version);
}
});
}
function orPluginSetService(_name ,status, version){
var serviceCon ='<p class="status">当前状态:<span>'+(status ? '开启' : '关闭' )+
'</span><span style="color: '+
(status?'#20a53a;':'red;')+
' margin-left: 3px;" class="glyphicon ' + (status?'glyphicon glyphicon-play':'glyphicon-pause')+'"></span></p><div class="sfm-opt">\
<button class="btn btn-default btn-sm" onclick="orPluginOpService(\''+_name+'\',\''+(status?'stop':'start')+'\',\''+version+'\')">'+(status?'停止':'启动')+'</button>\
<button class="btn btn-default btn-sm" onclick="orPluginOpService(\''+_name+'\',\'restart\',\''+version+'\',\'yes\')">重启</button>\
<button class="btn btn-default btn-sm" onclick="orPluginOpService(\''+_name+'\',\'reload\',\''+version+'\')">重载配置</button>\
</div>';
$(".soft-man-con").html(serviceCon);
}
function orPluginOpService(a, b, v,request_callback) {
var c = "name=" + a + "&func=" + b;
if(v != ''){
c = c + '&version='+v;
}
var d = "";
switch(b) {
case "stop":d = '停止';break;
case "start":d = '启动';break;
case "restart":d = '重启';break;
case "reload":d = '重载';break;
}
layer.confirm( msgTpl('您真的要{1}{2}{3}服务吗?', [d,a,v]), {icon:3,closeBtn: 2}, function() {
httpPost('get_os',{},function(data){
var rdata = $.parseJSON(data.data);
if (!rdata['auth']){
layer.prompt({title: '检查到权限不足,需要输入密码!', formType: 1},function(pwd, index){
layer.close(index);
var data = {'pwd':pwd};
c += '&args='+JSON.stringify(data);
orPluginOpServiceOp(a,b,c,d,a,v,request_callback);
});
} else {
orPluginOpServiceOp(a,b,c,d,a,v,request_callback);
}
});
})
}
function orPluginOpServiceOp(a,b,c,d,a,v,request_callback){
var request_path = "/plugins/run";
if (request_callback == 'yes'){
request_path = "/plugins/callback";
}
var e = layer.msg(msgTpl('正在{1}{2}{3}服务,请稍候...',[d,a,v]), {icon: 16,time: 0});
$.post(request_path, c, function(g) {
layer.close(e);
var f = g.data == 'ok' ? msgTpl('{1}{2}服务已{3}',[a,v,d]) : msgTpl('{1}{2}服务{3}失败!',[a,v,d]);
layer.msg(f, {icon: g.data == 'ok' ? 1 : 2});
if( b != "reload" && g.data == 'ok' ) {
if ( b == 'start' ) {
orPluginSetService(a, true, v);
} else if ( b == 'stop' ){
orPluginSetService(a, false, v);
}
}
if( g.status && g.data != 'ok' ) {
layer.msg(g.data, {icon: 2,time: 10000,shade: 0.3});
}
},'json').error(function() {
layer.close(e);
layer.msg('操作异常!', {icon: 2});
});
}
// 定时器变量
var httpdStatusTimer = null;
//查看Apache负载状态
function getHttpdStatus() {
$.post('/plugins/run', {name:'apache', func:'run_info'}, function(data) {
try {
var rdata = $.parseJSON(data.data);
console.log(rdata);
if ('status' in rdata && !rdata.status){
showMsg(rdata.msg, function(){}, null,3000);
return;
}
var con = "<div><table class='table table-hover table-bordered'>\
<tr><th>服务器版本(ServerVersion)</th><td>" + (rdata.ServerVersion || '-') + "</td></tr>\
<tr><th>服务器MPM(ServerMPM)</th><td>" + (rdata.ServerMPM || '-') + "</td></tr>\
<tr><th>服务器构建时间(Server Built)</th><td>" + (rdata['Server Built'] || '-') + "</td></tr>\
<tr><th>当前时间(CurrentTime)</th><td>" + (rdata.CurrentTime || '-') + "</td></tr>\
<tr><th>重启时间(RestartTime)</th><td>" + (rdata.RestartTime || '-') + "</td></tr>\
<tr><th>服务器运行时间(ServerUptime)</th><td>" + (rdata.ServerUptime || '-') + "</td></tr>\
<tr><th>服务器运行秒数(ServerUptimeSeconds)</th><td>" + (rdata.ServerUptimeSeconds || '-') + "</td></tr>\
<tr><th>1分钟负载(Load1)</th><td>" + (rdata.Load1 || '-') + "</td></tr>\
<tr><th>5分钟负载(Load5)</th><td>" + (rdata.Load5 || '-') + "</td></tr>\
<tr><th>15分钟负载(Load15)</th><td>" + (rdata.Load15 || '-') + "</td></tr>\
<tr><th>总访问次数(Total Accesses)</th><td>" + (rdata['Total Accesses'] || '-') + "</td></tr>\
<tr><th>总流量(Total kBytes)</th><td>" + (rdata['Total kBytes'] || '-') + " KB</td></tr>\
<tr><th>总请求时间(Total Duration)</th><td>" + (rdata['Total Duration'] || '-') + "</td></tr>\
<tr><th>CPU用户时间(CPUUser)</th><td>" + (rdata.CPUUser || '-') + "</td></tr>\
<tr><th>CPU系统时间(CPUSystem)</th><td>" + (rdata.CPUSystem || '-') + "</td></tr>\
<tr><th>CPU负载(CPULoad)</th><td>" + (rdata.CPULoad || '-') + "</td></tr>\
<tr><th>每秒请求数(ReqPerSec)</th><td>" + (rdata.ReqPerSec || '-') + "</td></tr>\
<tr><th>每秒流量(BytesPerSec)</th><td>" + (rdata.BytesPerSec || '-') + "</td></tr>\
<tr><th>每请求流量(BytesPerReq)</th><td>" + (rdata.BytesPerReq || '-') + "</td></tr>\
<tr><th>每请求时间(DurationPerReq)</th><td>" + (rdata.DurationPerReq || '-') + "</td></tr>\
<tr><th>活动工作进程(BusyWorkers)</th><td>" + (rdata.BusyWorkers || '-') + "</td></tr>\
<tr><th>优雅关闭进程(GracefulWorkers)</th><td>" + (rdata.GracefulWorkers || '-') + "</td></tr>\
<tr><th>空闲工作进程(IdleWorkers)</th><td>" + (rdata.IdleWorkers || '-') + "</td></tr>\
<tr><th>进程数(Processes)</th><td>" + (rdata.Processes || '-') + "</td></tr>\
<tr><th>总连接数(ConnsTotal)</th><td>" + (rdata.ConnsTotal || '-') + "</td></tr>\
</table></div>";
$(".soft-man-con").html(con);
}catch(err){
showMsg(data.data, function(){}, null,3000);
}
},'json');
}
// 启动自动刷新
function startHttpdStatusAutoRefresh() {
// 先清除现有的定时器
if (httpdStatusTimer) {
clearInterval(httpdStatusTimer);
}
// 立即执行一次
getHttpdStatus();
// 设置定时器,每5秒刷新一次
httpdStatusTimer = setInterval(getHttpdStatus, 5000);
}
// 停止自动刷新
function stopHttpdStatusAutoRefresh() {
if (httpdStatusTimer) {
clearInterval(httpdStatusTimer);
httpdStatusTimer = null;
}
}
function setOpCfg(){
httpPost('get_cfg', {}, function(data){
var rdata = $.parseJSON(data.data);
var rdata = rdata.data;
// console.log(rdata);
var mlist = '';
for (var i = 0; i < rdata.length; i++) {
var w = '70'
var ibody = '<input style="width: ' + w + 'px;" class="bt-input-text mr5" name="' + rdata[i].name + '" value="' + rdata[i].value + '" type="text" >';
switch (rdata[i].type) {
case 0:
var selected_1 = (rdata[i].value == 1) ? 'selected' : '';
var selected_0 = (rdata[i].value == 0) ? 'selected' : '';
ibody = '<select class="bt-input-text mr5" name="' + rdata[i].name + '" style="width: ' + w + 'px;">\
<option value="1" ' + selected_1 + '>开启</option>\
<option value="0" ' + selected_0 + '>关闭</option>\
</select>';
break;
case 1:
var selected_1 = (rdata[i].value == 'on') ? 'selected' : '';
var selected_0 = (rdata[i].value == 'off') ? 'selected' : '';
ibody = '<select class="bt-input-text mr5" name="' + rdata[i].name + '" style="width: ' + w + 'px;">\
<option value="on" ' + selected_1 + '>开启</option>\
<option value="off" ' + selected_0 + '>关闭</option>\
</select>';
break;
}
mlist += '<p style="margin-top:15px;"><span>' + rdata[i].name + '</span>' + ibody + "<b class='unit c9'>"+rdata[i].unit+"</b>" +', <font class="c9">' + rdata[i].ps + '</font></p>';
}
var con = '<style>.conf_p p{margin-bottom: 2px}</style><div class="conf_p" style="margin-bottom:0">\
' + mlist + '\
<div style="margin-top:10px; padding-right:15px" class="text-right">\
<button class="btn btn-success btn-sm mr5" onclick="setOpCfg()">刷新</button>\
<button class="btn btn-success btn-sm" onclick="submitConf()">保存</button>\
</div>\
</div>'
$(".soft-man-con").html(con);
});
}
function submitConf() {
var data = {};
// 收集所有配置参数
$("input[name]").each(function() {
data[$(this).attr('name')] = $(this).val();
});
$("select[name]").each(function() {
data[$(this).attr('name')] = $(this).val() || 'on';
});
// console.log(data);
httpPost('set_cfg', data, function(rdata){
var rdata = $.parseJSON(rdata.data);
// console.log(rdata);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
});
}
function otherFunc(){
var con = '<p class="conf_p" style="text-align:center;">\
<button class="btn btn-default btn-sm" onclick="cronAddCheck()">添加检查任务</button> \
<button class="btn btn-default btn-sm" onclick="cronDelCheck()">删除检查任务</button>\
</p>';
$(".soft-man-con").html(con);
}
function cronAddCheck(){
httpPost('cron_add_check', {}, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
});
}
function cronDelCheck(){
httpPost('cron_del_check', {}, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
});
}

124
plugins/apache/tool_task.py Normal file
View File

@@ -0,0 +1,124 @@
# coding:utf-8
import sys
import io
import os
import time
import json
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
from utils.crontab import crontab as MwCrontab
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'apache'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getTaskConf():
conf = getServerDir() + "/task_config.json"
return conf
def getConfigData():
conf = getTaskConf()
if os.path.exists(conf):
return json.loads(mw.readFile(getTaskConf()))
return {
"task_id": -1,
"period": "minute-n",
"where1": "3",
"hour": "0",
"minute": "0",
}
def createBgTask():
removeBgTask()
createBgTaskByName(getPluginName())
def createBgTaskByName(name):
args = getConfigData()
_name = "[apache]检查任务"
res = mw.M("crontab").field("id, name").where("name=?", (_name,)).find()
if res:
return True
if "task_id" in args and args["task_id"] > 0:
res = mw.M("crontab").field("id, name").where(
"id=?", (args["task_id"],)).find()
if res and res["id"] == args["task_id"]:
print("计划任务已经存在!")
return True
mw_dir = mw.getPanelDir()
cmd = '''
mw_dir=%s
rname=%s
plugin_path=%s
script_path=%s
''' % (mw_dir, name, getServerDir(), getPluginDir())
cmd += 'echo "bash $script_path/check.sh"' + "\n"
cmd += 'cd $mw_dir && bash $script_path/check.sh' + "\n"
params = {
'name': _name,
'type': args['period'],
'week': "",
'where1': args['where1'],
'hour': args['hour'],
'minute': args['minute'],
'save': "",
'backup_to': "",
'stype': "toShell",
'sname': '',
'sbody': cmd,
'url_address': '',
}
task_id = MwCrontab.instance().add(params)
if task_id > 0:
args["task_id"] = task_id
args["name"] = name
mw.writeFile(getTaskConf(), json.dumps(args))
def removeBgTask():
cfg = getConfigData()
if "task_id" in cfg and cfg["task_id"] > 0:
res = mw.M("crontab").field("id, name").where(
"id=?", (cfg["task_id"],)).find()
if res and res["id"] == cfg["task_id"]:
data = MwCrontab.instance().delete(cfg["task_id"])
if data["status"]:
cfg["task_id"] = -1
mw.writeFile(getTaskConf(), json.dumps(cfg))
return True
return False
if __name__ == "__main__":
if len(sys.argv) > 1:
action = sys.argv[1]
if action == "remove":
removeBgTask()
elif action == "add":
createBgTask()

View File

@@ -0,0 +1,172 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin
export PATH
# cd /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/apache && bash install.sh install 2.4
# cd /www/server/mdserver-web/plugins/apache && bash install.sh install 2.4
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sysName=`uname`
action=$1
type=$2
VERSION=2.4.66
apacheDir=${serverPath}/source/apache
Install_App()
{
if [ "${action}" == "install" ];then
if [ -d $serverPath/apache ];then
exit 0
fi
fi
# ----- cpu start ------
if [ -z "${cpuCore}" ]; then
cpuCore="1"
fi
if [ -f /proc/cpuinfo ];then
cpuCore=`cat /proc/cpuinfo | grep "processor" | wc -l`
fi
MEM_INFO=$(free -m|grep Mem|awk '{printf("%.f",($2)/1024)}')
if [ "${cpuCore}" != "1" ] && [ "${MEM_INFO}" != "0" ];then
if [ "${cpuCore}" -gt "${MEM_INFO}" ];then
cpuCore="${MEM_INFO}"
fi
else
cpuCore="1"
fi
if [ "$cpuCore" -gt "2" ];then
cpuCore=`echo "$cpuCore" | awk '{printf("%.f",($1)*0.8)}'`
else
cpuCore="1"
fi
# ----- cpu end ------
mkdir -p ${apacheDir}
echo 'install script ...'
OPTIONS=''
# 安装 APR 和 APR-util
APR_VERSION=1.7.6
APR_UTIL_VERSION=1.6.3
if [ ! -f ${apacheDir}/apr-${APR_VERSION}.tar.bz2 ];then
wget --no-check-certificate -O ${apacheDir}/apr-${APR_VERSION}.tar.bz2 https://downloads.apache.org/apr/apr-${APR_VERSION}.tar.bz2 -T 3
fi
if [ ! -f ${apacheDir}/apr-util-${APR_UTIL_VERSION}.tar.bz2 ];then
wget --no-check-certificate -O ${apacheDir}/apr-util-${APR_UTIL_VERSION}.tar.bz2 https://downloads.apache.org/apr/apr-util-${APR_UTIL_VERSION}.tar.bz2 -T 3
fi
# 安装 APR
if [ ! -d ${serverPath}/apache/apr ];then
cd ${apacheDir} && tar -jxf apr-${APR_VERSION}.tar.bz2
cd ${apacheDir}/apr-${APR_VERSION} && ./configure --prefix=${serverPath}/apache/apr
make -j${cpuCore} && make install
if [ "$?" == "0" ];then
# 检查 APR 配置文件
APR_CONFIG=$(find ${serverPath}/apache/apr -name "apr-*config" | head -1)
if [ -z "$APR_CONFIG" ];then
echo "APR installation failed: apr-config not found"
exit 1
fi
echo "APR installed successfully: $APR_CONFIG"
else
echo "APR configure failed"
exit 1
fi
fi
# 安装 APR-util
if [ ! -d ${serverPath}/apache/apr-util ];then
cd ${apacheDir} && tar -jxf apr-util-${APR_UTIL_VERSION}.tar.bz2
cd ${apacheDir}/apr-util-${APR_UTIL_VERSION} && ./configure --prefix=${serverPath}/apache/apr-util --with-apr=${serverPath}/apache/apr
make -j${cpuCore} && make install
if [ "$?" == "0" ];then
# 检查 APR-util 配置文件
APU_CONFIG=$(find ${serverPath}/apache/apr-util -name "apu-*config" | head -1)
if [ -z "$APU_CONFIG" ];then
echo "APR-util installation failed: apu-config not found"
find ${serverPath}/apache/apr-util -name "apu-*config"
exit 1
fi
echo "APR-util installed successfully: $APU_CONFIG"
else
echo "APR-util configure failed"
exit 1
fi
fi
if [ ! -f ${apacheDir}/httpd-${VERSION}.tar.bz2 ];then
wget --no-check-certificate -O ${apacheDir}/httpd-${VERSION}.tar.bz2 https://downloads.apache.org/httpd/httpd-${VERSION}.tar.bz2 -T 3
fi
if [ ! -d ${apacheDir}/httpd-${VERSION} ];then
cd ${apacheDir} && tar -jxf ${apacheDir}/httpd-${VERSION}.tar.bz2
fi
# 检查 APR 和 APR-util 可执行文件
APR_CONFIG=$(find ${serverPath}/apache/apr -name "apr-*config" | head -1)
APU_CONFIG=$(find ${serverPath}/apache/apr-util -name "apu-*config" | head -1)
if [ -z "$APR_CONFIG" ];then
echo "APR config not found"
exit 1
fi
if [ -z "$APU_CONFIG" ];then
echo "APR-util config not found"
exit 1
fi
OPTIONS="${OPTIONS} --with-apr=$APR_CONFIG"
OPTIONS="${OPTIONS} --with-apr-util=$APU_CONFIG"
# if [ "$sysName" != "Darwin" ];then
# OPTIONS="${OPTIONS} --enable-systemd"
# fi
# echo "cd ${apacheDir}/httpd-${VERSION} && ./configure --prefix=$serverPath/apache $OPTIONS"
cd ${apacheDir}/httpd-${VERSION} && ./configure \
--prefix=$serverPath/apache/httpd \
$OPTIONS
make -j${cpuCore} && make install && make clean
if [ -d ${apacheDir}/apr-${APR_VERSION} ];then
rm -rf ${apacheDir}/apr-${APR_VERSION}
fi
if [ -d ${apacheDir}/apr-util-${APR_UTIL_VERSION} ];then
rm -rf ${apacheDir}/apr-util-${APR_UTIL_VERSION}
fi
if [ -d ${apacheDir}/httpd-${APR_UTIL_VERSION} ];then
rm -rf ${apacheDir}/httpd-${APR_UTIL_VERSION}
fi
echo 'installation of apache completed'
}
Uninstall_App()
{
echo 'uninstalling apache completed'
}
action=$1
if [ "${1}" == "install" ];then
Install_App
elif [ "${1}" == "upgrade" ];then
Install_App
else
Uninstall_App
fi

View File

@@ -0,0 +1,424 @@
# coding:utf-8
'''
doc: https://docs.python.org/zh-cn/3/library/ftplib.html
'''
import sys
import io
import os
import time
import re
import json
import paramiko
import ftplib
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
DEBUG = True
BLOCK_SIZE = 1024 * 1024 * 2
# BLOCK_SIZE = 50
PROGRESS_FILE_NAME = "PROGRESS_FILE_NAME"
"""
=============自定义异常===================
"""
class OsError(Exception):
"""OS端异常"""
class ObjectNotFound(OsError):
"""对象不存在时抛出的异常"""
def __init__(self, *args, **kwargs):
message = "文件对象不存在。"
super(ObjectNotFound, self).__init__(message, *args, **kwargs)
class APIError(Exception):
"""API参数错误异常"""
def __init__(self, *args, **kwargs):
_api_error_msg = 'API资料校验失败,请核实!'
super(APIError, self).__init__(_api_error_msg, *args, **kwargs)
class FtpPSClient:
_title = "FTP"
_name = "ftp"
__host = None
__port = None
__user = None
__password = None
default_port = 21
default_backup_path = "/backup/"
config_file = "cfg.json"
def __init__(self, load_config=True, timeout=600):
self.timeout = timeout
if load_config:
data = self.get_config()
self.injection_config(data)
def get_config(self):
default_config = {
"ftp_host": '',
"ftp_user": '',
"ftp_pass": '',
"backup_path": self.default_backup_path
}
cfg = mw.getServerDir() + "/backup_ftp/" + self.config_file
if os.path.exists(cfg):
data = mw.readFile(cfg)
return json.loads(data)
else:
return default_config
def injection_config(self, data):
self.__host = host = data["ftp_host"].strip()
if host.find(':') == -1:
self.__port = self.default_port
else:
self.__host = host.split(':')[0]
self.__port = host.split(':')[1]
self.__user = data['ftp_user'].strip()
self.__password = data['ftp_pass'].strip()
bp = data['backup_path'].strip()
if bp:
self.backup_path = self.getPath(bp)
else:
self.backup_path = self.getPath(self.default_backup_path)
def authorize(self):
try:
if self.timeout is not None:
ftp = ftplib.FTP(timeout=self.timeout)
else:
ftp = ftplib.FTP()
debuglevel = 0
# if DEBUG:
# debuglevel = 3
ftp.set_debuglevel(debuglevel)
# ftp.set_pasv(True)
ftp.connect(self.__host, int(self.__port))
ftp.login(self.__user, self.__password)
return ftp
except Exception as e:
raise OsError("无法连接FTP客户端,请检查配置参数是否正确!")
# 取目录路径
def getPath(self, path):
if path[-1:] != '/':
path += '/'
if path[:1] != '/':
path = '/' + path
return path.replace('//', '/')
def generateDownloadUrl(self, object_name):
return 'ftp://' + \
self.__user + ':' + \
self.__password + '@' + \
self.__host + ':' + \
"/" + object_name
def buildDirName(self, data_type, file_name):
import re
prefix_dict = {
"site": "web",
"database": "db",
"path": "path",
}
file_regx = prefix_dict.get(data_type) + r"_(.+)_20\d+_\d+\."
sub_search = re.search(file_regx, file_name)
sub_path_name = ""
if sub_search:
sub_path_name = sub_search.groups()[0]
sub_path_name += '/'
# 构建OS存储路径
object_name = self.backup_path + \
data_type + '/' + \
sub_path_name + \
file_name
return object_name
def uploadFile(self, filename, data_type=None, *args, **kwargs):
client = self.authorize()
local_file_name = filename
filename = os.path.abspath(filename)
dirname = os.path.dirname(filename)
temp_name = os.path.split(filename)[1]
object_name = self.buildDirName(data_type, temp_name)
upload_tmp_dir = os.path.join(dirname, ".upload_tmp")
if not os.path.exists(upload_tmp_dir):
os.mkdir(upload_tmp_dir)
print("|-正在上传文件到 {}".format(object_name))
total_bytes = os.path.getsize(filename)
object_md5_name = mw.md5(object_name)
pg_file = os.path.join(upload_tmp_dir, object_md5_name + ".pl")
block_size = BLOCK_SIZE
if kwargs.get("block_size"):
try:
block_size = float(kwargs.get("block_size"))
except:
pass
remote_file_size = None
if not os.path.exists(pg_file):
# import uuid
# uid = str(uuid.uuid1())
progress_info = {
"filename": local_file_name,
"total_bytes": total_bytes,
"uploaded_bytes": 0,
}
mw.writeFile(pg_file, json.dumps(progress_info))
else:
progress_info = json.loads(mw.readFile(pg_file))
if total_bytes == progress_info.get("total_bytes"):
# 取远程文件大小
_max_loop = 10
while _max_loop > 0:
try:
time.sleep(1)
remote_file_size = client.size(object_name)
if remote_file_size > total_bytes:
remote_file_size = None
break
except Exception as e:
if DEBUG:
print(type(e))
print(e)
_max_loop -= 1
else:
remote_file_size = None
uploaded_bytes = 0 if remote_file_size is None else remote_file_size
dir_name = os.path.split(object_name)[0]
if dir_name:
self.createDirP(dir_name)
upload_start = time.time()
try:
if total_bytes > 1024 * 1024 * 1024:
with open(local_file_name, 'rb') as file_handler:
if remote_file_size is not None:
file_handler.seek(remote_file_size)
client.voidcmd("TYPE I")
datasock = ''
esize = ''
datasock, esize = client.ntransfercmd(
"STOR " + object_name, remote_file_size)
while True:
buf = file_handler.read(block_size)
if not len(buf):
break
datasock.sendall(buf)
uploaded_bytes += len(buf)
if DEBUG:
print('\ruploading %.2f%%' %
(float(uploaded_bytes) / total_bytes * 100))
print("uploaded_bytes", uploaded_bytes)
if uploaded_bytes == total_bytes:
break
datasock.close()
if DEBUG:
print('close data handle')
try:
client.voidcmd('NOOP')
except Exception as e:
if DEBUG:
print("Send NOOP command error:")
print(e)
else:
if DEBUG:
print('keep alive cmd success')
client.voidresp()
if DEBUG:
print('No loop cmd')
else:
# 小于1G文件直接上传
file_handler = open(local_file_name, "rb")
client.storbinary('STOR %s' % object_name,
file_handler, blocksize=block_size)
file_handler.close()
except Exception as e:
print(str(e))
completed_file_size = None
_max_loop = 10
while _max_loop > 0:
try:
time.sleep(1)
completed_file_size = client.size(object_name)
break
except Exception as e:
_max_loop -= 1
if DEBUG:
print("size error:" + str(e))
# 上传完成
if completed_file_size == total_bytes:
if DEBUG:
upload_completed = time.time()
upload_diff = upload_completed - upload_start
print("文件上传成功, 耗时: {}s。".format(upload_diff))
if os.path.exists(pg_file):
os.remove(pg_file)
return True
else:
if os.path.exists(pg_file):
os.remove(pg_file)
print("文件上传后大小不一致!")
print("completed_file_size:" + str(completed_file_size))
print("total_bytes:", total_bytes)
print("object_md5_name:", object_md5_name)
print("pg_file:", pg_file)
print("filename:", filename)
print("dirname:", dirname)
print("object_name:", object_name)
return False
def createDirP(self, dir_name):
"""创建远程目录
:param dir_name: 目录名称
:return:
"""
try:
dirnames = dir_name.split('/')
ftp = self.authorize()
# ftp.cwd(get.path);
for dirname in dirnames:
if not dirname or not dirname.strip():
continue
try:
flist = ftp.nlst()
if not dirname in flist:
ftp.mkd(dirname)
except:
# print("mlsd mode.")
try:
flist = list(ftp.mlsd())[1:]
for f in flist:
if dirname == f[0]:
break
else:
ftp.mkd(dirname)
except:
return False
ftp.cwd(dirname)
return True
except:
return False
def createDir(self, path, name):
ftp = self.authorize()
path = self.getPath(path)
ftp.cwd(path)
try:
ftp.mkd(name)
ftp.close()
return True
except Exception as e:
print(str(e))
ftp.close()
return False
def deleteDir(self, path, dir_name):
try:
ftp = self.authorize()
ftp.rmd(dir_name)
return True
except ftplib.error_perm as e:
print("deleteDir:" + str(e) + ":" + dir_name)
except Exception as e:
print(e)
return False
def deleteFile(self, filename):
try:
ftp = self.authorize()
ftp.delete(filename)
return True
except Exception as e:
print(str(e))
return False
def getList(self, path="/"):
ftp = self.authorize()
path = self.getPath(path)
ftp.cwd(path)
mlsd = False
try:
files = list(ftp.mlsd())
mlsd = True
except:
try:
files = ftp.nlst(path)
mlsd = False
except:
raise RuntimeError("FTP服务器数据返回异常!")
ftp.close()
# print(files)
f_list = []
dirs = []
data = []
default_time = '1971/01/01 01:01:01'
for dt in files:
# print(dt)
if mlsd:
dt_name = dt[0]
dt_info = dt[1]
else:
if dt.find("/") >= 0:
dt = dt.split("/")[-1]
tmp = {}
tmp['name'] = dt_name
if dt_name == '.' or dt_name == '..':
continue
tmp['time'] = dt_info['modify']
try:
tmp['size'] = dt_info['size']
tmp['type'] = "File"
tmp['download'] = self.generateDownloadUrl(path + dt_name)
f_list.append(tmp)
except:
tmp['size'] = dt_info['sizd']
tmp['type'] = None
tmp['download'] = ''
dirs.append(tmp)
data = dirs + f_list
mlist = {}
mlist['path'] = path
mlist['list'] = data
return mlist

BIN
plugins/backup_ftp/ico.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

101
plugins/backup_ftp/index.html Executable file
View File

@@ -0,0 +1,101 @@
<style>
.upyunCon {
height: 428px;
}
.up-place {
height: 62px;
border-bottom: 1px solid #ddd;
}
.up-place .btn {
border-radius: 0;
}
.up-place .place-input {
background-color: #f3f3f3;
border: 1px solid #ccc;
height: 30px;
line-height: 28px;
overflow: hidden;
margin: 1px 0 0 -1px;
width: 340px;
}
.place-input ul {
display: inline-block;
position: relative;
width: auto;
}
.place-input ul li {
background: url("/static/img/ico/ico-ltr.png") no-repeat right center;
float: left;
padding-left: 10px;
padding-right: 18px;
}
.place-input ul li a {
height: 28px;
cursor: pointer;
display: inline-block;
}
.upyunlist {
height: 516px;
overflow: auto;
}
.up-bottom {
background-color: #fafafa;
border-top: 1px solid #eee;
bottom: 0;
position: absolute;
width: 100%;
}
.up-use {
line-height: 50px
}
.list-list .cursor span {
line-height: 30px;
}
.btn-title {
margin-top: 1px
}
.tip {
font-size: 10px;
font-style: oblique;
color: green;
}
</style>
<div class="upyunCon">
<div class="up-place pd15">
<button id="backBtn" class="btn btn-default btn-sm glyphicon glyphicon-arrow-left pull-left" title="后退"></button>
<input id="myPath" style="display:none;" type="text" value="">
<div class="place-input pull-left">
<div style="width:1400px;height:28px"><ul></ul></div>
</div>
<button class="refreshBtn btn btn-default btn-sm glyphicon glyphicon-refresh pull-left mr20" title="刷新" style="margin-left:-1px;"></button>
<button class="btn btn-default btn-sm pull-right btn-title" onclick="upyunApi()">帐户设置</button>
<button class="btn btn-default btn-sm pull-right mr20 btn-title" onclick="createDir()">新建文件夹</button>
</div>
<div class="upyunlist pd15">
<div class="divtable" style="margin-bottom:15px">
<table class="table table-hover">
<thead><tr><th>名称</th><th>大小</th><th>更新时间</th><th class="text-right">操作</th></tr></thead>
<tbody class="list-list"></tbody>
</table>
</div>
</div>
</div>
<script type="text/javascript">
$.getScript( "/plugins/file?name=backup_ftp&f=js/backup_ftp.js", function(){
osList('/');
});
</script>

311
plugins/backup_ftp/index.py Executable file
View File

@@ -0,0 +1,311 @@
# coding:utf-8
import sys
import io
import os
import time
import re
import json
# print(sys.platform)
if sys.platform != "darwin":
os.chdir("/www/server/mdserver-web")
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
import core.db as db
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'backup_ftp'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
sys.path.append(getPluginDir() + "/class")
from ftp_client import FtpPSClient
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getArgs():
args = sys.argv[2:]
tmp = {}
args_len = len(args)
if args_len == 1:
t = args[0].strip('{').strip('}')
t = t.split(':')
tmp[t[0]] = t[1]
elif args_len > 1:
for i in range(len(args)):
t = args[i].split(':', 1)
tmp[t[0]] = t[1]
return tmp
def checkArgs(data, ck=[]):
for i in range(len(ck)):
if not ck[i] in data:
return (False, mw.returnJson(False, '参数:(' + ck[i] + ')没有!'))
return (True, mw.returnJson(True, 'ok'))
def status():
return 'start'
def getConf():
cfg = getServerDir() + "/cfg.json"
if not os.path.exists(cfg):
rdata = {
'use_sftp':False,
}
return mw.returnJson(False, "未配置", rdata)
data = mw.readFile(cfg)
data = json.loads(data)
return mw.returnJson(True, "OK", data)
def setConf():
args = getArgs()
data = checkArgs(args, ['use_sftp', 'ftp_user',
'ftp_pass', 'ftp_host', 'backup_path'])
if not data[0]:
return data[1]
cfg = getServerDir() + "/cfg.json"
values = ['ftp_user',
'ftp_pass',
'ftp_host']
for v in values:
if args[v] == '':
return mw.returnJson(False, '必填资料不能为空,请核实!', [])
if args['backup_path'] == '':
args['backup_path'] = "/backup"
try:
ftp = FtpPSClient(load_config=False)
ftp.injection_config(args)
data = ftp.getList("/")
if data:
mw.writeFile(cfg, mw.getJson(args))
return mw.returnJson(True, '设置成功', [])
except Exception as e:
return mw.returnJson(False, "FTP校验失败,请核实!\n" + str(e), [])
def getList():
cfg = getServerDir() + "/cfg.json"
if not os.path.exists(cfg):
return mw.returnJson(False, "未配置FTP,请点击`账户设置`", [])
args = getArgs()
data = checkArgs(args, ['path'])
if not data[0]:
return data[1]
try:
ftp = FtpPSClient()
flist = ftp.getList(args['path'])
return mw.returnJson(True, "ok", flist)
except Exception as e:
return mw.returnJson(False, str(e), [])
def createDir():
cfg = getServerDir() + "/cfg.json"
if not os.path.exists(cfg):
return mw.returnJson(False, "未配置FTP,请点击`账户设置`", [])
args = getArgs()
data = checkArgs(args, ['path', 'name'])
if not data[0]:
return data[1]
ftp = FtpPSClient()
isok = ftp.createDir(args['path'], args['name'])
if isok:
return mw.returnJson(True, "创建成功")
return mw.returnJson(False, "创建失败")
def deleteDir():
args = getArgs()
data = checkArgs(args, ['dir_name', 'path'])
if not data[0]:
return data[1]
ftp = FtpPSClient()
isok = ftp.deleteDir(args['path'], args['dir_name'])
if isok:
return mw.returnJson(True, "删除成功")
return mw.returnJson(False, "删除失败")
def deleteFile():
args = getArgs()
data = checkArgs(args, ['path', 'filename'])
if not data[0]:
return data[1]
ftp = FtpPSClient()
isok = ftp.deleteFile(args['path'] + "/" + args['filename'])
if isok:
return mw.returnJson(True, "删除成功")
return mw.returnJson(False, "删除失败")
def findPathName(path, filename):
f = os.scandir(path)
l = []
for ff in f:
t = {}
if ff.name.find(filename) > -1:
t['filename'] = path + '/' + ff.name
l.append(t)
return l
def backupAllFunc(stype):
name = sys.argv[2]
num = sys.argv[3]
prefix_dict = {
"site": "web",
"database": "db",
"path": "path",
}
backups = []
# print("stype:", stype)
# 提前获取-清理多余备份
if stype == 'site':
pid = mw.M('sites').where('name=?', (name,)).getField('id')
backups = mw.M('backup').where('type=? and pid=?', ('0', pid)).field('id,filename').select()
if stype == 'database':
db_path = mw.getServerDir() + '/mysql'
pid = mw.M('databases').dbPos(db_path, 'mysql').where('name=?', (name,)).getField('id')
backups = mw.M('backup').where('type=? and pid=?', ('1', pid)).field('id,filename').select()
if stype == 'path':
backup_dir = mw.getBackupDir()
backup_path = backup_dir + '/path'
_name = 'path_{}'.format(os.path.basename(name))
backups = findPathName(backup_path, _name)
# 其他类型关系性数据库(mysql类的)
if stype.find('database_') > -1:
plugin_name = stype.replace('database_', '')
db_path = mw.getServerDir() + '/' + plugin_name
pid = mw.M('databases').dbPos(db_path, 'mysql').where('name=?', (name,)).getField('id')
backups = mw.M('backup').where('type=? and pid=?', ('1', pid)).field('id,filename').select()
args = stype + " " + name + " " + num
cmd = 'python3 ' + mw.getPanelDir() + '/scripts/backup.py ' + args
if stype.find('database_') > -1:
plugin_name = stype.replace('database_', '')
args = "database " + name + " " + num
cmd = 'python3 ' + mw.getPanelDir() + '/plugins/' + plugin_name + '/scripts/backup.py ' + args
os.system(cmd)
# 开始执行上传信息.
if stype.find('database_') > -1:
bk_name = 'database'
plugin_name = stype.replace('database_', '')
bk_prefix = plugin_name + '/db'
stype = 'database'
else:
bk_prefix = prefix_dict[stype]
bk_name = stype
find_path = mw.getBackupDir() + '/' + bk_name + '/' + bk_prefix + '_' + name
if stype == 'path':
_name = 'path_{}'.format(os.path.basename(name))
find_path = mw.getBackupDir() + '/path/'+_name
find_new_file = "ls " + find_path + "_* | grep '.gz' | cut -d \\ -f 1 | awk 'END {print}'"
filename = mw.execShell(find_new_file)[0].strip()
if filename == "":
mw.echoInfo("not find upload file!")
return ''
mw.echoInfo("准备上传文件 {}".format(filename))
ftp = FtpPSClient()
ftp.uploadFile(filename, stype)
# print(backups)
backups = sorted(backups, key=lambda x: x['filename'], reverse=False)
mw.echoStart('开始删除远程备份')
num = int(num)
sep = len(backups) - num
if sep > -1:
for backup in backups:
fn = os.path.basename(backup['filename'])
object_name = ftp.buildDirName(stype, fn)
ftp.deleteFile(object_name)
mw.echoInfo("已清理远程过期备份文件:" + object_name)
sep -= 1
if sep < 0:
break
mw.echoEnd('结束删除远程备份')
return ''
def in_array(name, arr=[]):
for x in arr:
if name == x:
return True
return False
def installPreInspection():
return 'ok'
if __name__ == "__main__":
func = sys.argv[1]
if func == 'status':
print(status())
elif func == 'start':
print(start())
elif func == 'stop':
print(stop())
elif func == 'restart':
print(restart())
elif func == 'reload':
print(reload())
elif func == 'install_pre_inspection':
print(installPreInspection())
elif func == 'conf':
print(getConf())
elif func == 'set_config':
print(setConf())
elif func == "get_list":
print(getList())
elif func == "create_dir":
print(createDir())
elif func == "delete_dir":
print(deleteDir())
elif func == 'delete_file':
print(deleteFile())
elif in_array(func, ['site', 'database', 'path']) or func.find('database_') > -1:
print(backupAllFunc(func))
else:
print('error')

18
plugins/backup_ftp/info.json Executable file
View File

@@ -0,0 +1,18 @@
{
"sort":6,
"title":"FTP存储空间",
"hook":["backup"],
"tip":"soft",
"name":"backup_ftp",
"type":"运行环境",
"ps":"将网站或数据库打包备份到FTP存储空间",
"versions":["1.0"],
"install_pre_inspection":false,
"shell":"install.sh",
"checks":"server/backup_ftp",
"path": "server/backup_ftp",
"author":"midoks",
"home":"https://github.com/midoks/mdserver-web",
"date":"2022-10-23",
"pid": "5"
}

31
plugins/backup_ftp/install.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sys_os=`uname`
Install_App()
{
mkdir -p ${serverPath}/backup_ftp
echo "${1}" > ${serverPath}/backup_ftp/version.pl
echo '安装完成'
}
Uninstall_App()
{
rm -rf ${serverPath}/backup_ftp
}
action=$1
if [ "${1}" == 'install' ];then
Install_App $2
else
Uninstall_App $2
fi

View File

@@ -0,0 +1,258 @@
function bkfPost(method,args,callback){
var _args = null;
if (typeof(args) == 'string'){
_args = JSON.stringify(toArrayObject(args));
} else {
_args = JSON.stringify(args);
}
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
$.post('/plugins/run', {name:'backup_ftp', func:method, args:_args}, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function getFtpLocalTime(data){
var str = data.slice(0,4)+"/"+data.slice(4,6)+"/"+data.slice(6,8)
+ " " + data.slice(8,10)+":"+data.slice(10,12)+":"+data.slice(12,14);
return str;
}
// 自定义部分
var i = null;
//设置API
function upyunApi(){
bkfPost('conf', {}, function(rdata){
var rdata = $.parseJSON(rdata.data);
var token = rdata.data;
var check_status = token.use_sftp;
var sftp_checked = check_status === "true" ? " checked=\"checked\"" : "";
if (typeof(token.ftp_host) == 'undefined'){
token.ftp_host = '';
}
if (typeof(token.ftp_user) == 'undefined'){
token.ftp_user = '';
}
if (typeof(token.ftp_pass) == 'undefined'){
token.ftp_pass = '';
}
if (typeof(token.backup_path) == 'undefined'){
token.backup_path = '';
}
var apicon = '<div class="bingfa mtb15" style="padding-bottom:0px;">\
<p>\
<span class="span_tit">使用SFTP:</span>\ <input style="width: 20px; vertical-align:middle;" type="checkbox" name="use_sftp"'+sftp_checked+'> 是否使用SFTP进行数据传输 \
</p>\
<p>\
<span class="span_tit">Host:</span>\
<input placeholder="请输入主机地址" style="width: 200px;" type="text" name="upyun_service" value="'+token.ftp_host+'"> *服务器地址,FTP默认端口21, SFTP默认端口22\
</p>\
<p>\
<span class="span_tit">用户名:</span>\
<input style="width: 200px;" type="text" name="ftp_username" value="'+token.ftp_user+'"> *指定用户名\
</p>\
<p>\
<span class="span_tit">密码:</span>\
<input style="width: 200px;" type="password" name="ftp_password" value="'+token.ftp_pass+'"> *登录密码\
</p>\
<p>\
<span class="span_tit">存储位置:</span>\
<input placeholder="请输入存储位置" style="width: 200px;" type="text" name="backup_path" value="'+token.backup_path+'"> *相对于根目录的路径,默认是/backup\
</p>\
</div>';
layer.open({
type: 1,
area: "600px",
title: "FTP/SFTP帐户设置",
closeBtn: 1,
shift: 5,
shadeClose: false,
btn: ['确定','取消'],
content:apicon,
yes:function(index,layero){
var data = {
use_sftp:$("input[name='use_sftp']").prop('checked'),
ftp_user:$("input[name='ftp_username']").val(),
ftp_pass:$("input[name='ftp_password']").val(),
ftp_host:$("input[name='upyun_service']").val(),
backup_path:$("input[name='backup_path']").val()
}
bkfPost('set_config', data, function(rdata){
var rdata = $.parseJSON(rdata.data);
if (rdata.status){
showMsg(rdata.msg,function(){
layer.close(index);
osList("/");
},{icon:1},2000);
} else{
layer.msg(rdata.msg,{icon:2});
}
})
},
});
});
}
function createDir(){
layer.open({
type: 1,
area: "400px",
title: "创建目录",
closeBtn: 1,
shift: 5,
shadeClose: false,
btn: ['确定','取消'],
content:'<div class="bingfa bt-form c6" style="padding-bottom: 10px;">\
<p>\
<span class="span_tit">目录名称:</span>\
<input style="width: 200px;" type="text" name="newPath" value="">\
</p>\
</div>',
success:function(){
$("input[name='newPath']").focus().keyup(function(e){
if(e.keyCode == 13) $(".layui-layer-btn0").click();
});
},
yes:function(index,layero){
var name = $("input[name='newPath']").val();
if(name == ''){
layer.msg('目录名称不能为空!',{icon:2});
return;
}
var path = $("#myPath").val();
var dirname = name;
// var loadT = layer.msg('正在创建目录['+dirname+']...',{icon:16,time:0,shade: [0.3, '#000']});
bkfPost('create_dir', {path:path,name:dirname}, function(data){
var rdata = $.parseJSON(data.data);
if(rdata.status) {
showMsg(rdata.msg, function(){
layer.close(index);
osList(path);
} ,{icon:1}, 2000);
} else{
layer.msg(rdata.msg,{icon:2});
}
});
}
});
}
//删除文件
function deleteFile(name, is_dir){
if (is_dir === false){
safeMessage('删除文件','删除后将无法恢复,真的要删除['+name+']吗?',function(){
var path = $("#myPath").val();
var filename = name;
bkfPost('delete_file', {filename:filename,path:path}, function(rdata){
var rdata = $.parseJSON(rdata.data);
showMsg(rdata.msg,function(){
osList(path);
},{icon:rdata.status?1:2},2000);
});
});
} else {
safeMessage('删除文件夹','删除后将无法恢复,真的要删除['+name+']吗?',function(){
var path = $("#myPath").val();
bkfPost('delete_dir', {dir_name:name,path:path}, function(rdata){
var rdata = $.parseJSON(rdata.data);
showMsg(rdata.msg,function(){
osList(path);
},{icon:rdata.status?1:2},2000);
});
});
}
}
function osList(path){
bkfPost('get_list', {path:path}, function(rdata){
var rdata = $.parseJSON(rdata.data);
if(rdata.status === false){
showMsg(rdata.msg,function(){
upyunApi();
},{icon:2},2000);
return;
}
var mlist = rdata.data;
// console.log(mlist);
var listBody = ''
var listFiles = ''
for(var i=0;i<mlist.list.length;i++){
if(mlist.list[i].type == null){
listBody += '<tr><td class="cursor" onclick="osList(\''+(path+'/'+mlist.list[i].name).replace('//','/')+'\')"><span class="ico ico-folder"></span>\<span>'+mlist.list[i].name+'</span></td>\
<td>-</td>\
<td>-</td>\
<td class="text-right"><a class="btlink" onclick="deleteFile(\''+mlist.list[i].name+'\', true)">删除</a></td></tr>'
}else{
listFiles += '<tr><td class="cursor"><span class="ico ico-file"></span>\<span>'+mlist.list[i].name+'</span></td>\
<td>'+toSize(mlist.list[i].size)+'</td>\
<td>'+getFtpLocalTime(mlist.list[i].time)+'</td>\
<td class="text-right"><a target="_blank" href="'+mlist.list[i].download+'" class="btlink">下载</a> | <a class="btlink" onclick="deleteFile(\''+mlist.list[i].name+'\', false)">删除</a></td></tr>'
}
}
listBody += listFiles;
var pathLi='';
var tmp = path.split('/')
var pathname = '';
var n = 0;
for(var i=0;i<tmp.length;i++){
if(n > 0 && tmp[i] == '') continue;
var dirname = tmp[i];
if(dirname == '') {
dirname = '根目录';
n++;
}
pathname += '/' + tmp[i];
pathname = pathname.replace('//','/');
pathLi += '<li><a title="'+pathname+'" onclick="osList(\''+pathname+'\')">'+dirname+'</a></li>';
}
var um = 1;
if(tmp[tmp.length-1] == '') um = 2;
var backPath = tmp.slice(0,tmp.length-um).join('/') || '/';
$('#myPath').val(path);
$(".upyunCon .place-input ul").html(pathLi);
$(".upyunlist .list-list").html(listBody);
upPathLeft();
$('#backBtn').unbind().click(function() {
osList(backPath);
});
$('.upyunCon .refreshBtn').unbind().click(function(){
osList(path);
});
});
}
//计算当前目录偏移
function upPathLeft(){
var UlWidth = $(".place-input ul").width();
var SpanPathWidth = $(".place-input").width() - 20;
var Ml = UlWidth - SpanPathWidth;
if(UlWidth > SpanPathWidth ){
$(".place-input ul").css("left",-Ml)
}
else{
$(".place-input ul").css("left",0)
}
}
// $('.layui-layer-page').css('height','670px');

35
plugins/caddy/check.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin
export PATH
# OpenResty服务名称
service_name="caddy"
# 检查OpenResty是否正在运行
if systemctl is-active --quiet "$service_name"; then
# 检查是否存在僵尸进程
zombie_processes=$(ps -ef | grep -i caddy | grep -v grep | awk '{print $2}' | xargs ps -o state= -p 2>/dev/null | grep -c Z)
if [ "$zombie_processes" -gt 0 ]; then
echo "kill caddy 僵尸进程"
ps -ef|grep caddy| grep -v grep| awk '{print $2}' | xargs kill -9
echo "检测到OpenResty僵尸进程,正在重启服务..."
systemctl restart "$service_name"
echo "服务已重启"
else
echo "OpenResty运行正常"
fi
else
echo "kill caddy"
ps -ef|grep caddy| grep -v grep| awk '{print $2}' | xargs kill -9
echo "caddy未运行,正在启动服务..."
systemctl start "$service_name"
echo "服务已启动"
fi
NGINX_IDS=`ps -ef|grep caddy | grep -v grep| awk '{print $2}'`
if [ "$NGINX_IDS" == "" ];then
ps -ef|grep caddy| grep -v grep| awk '{print $2}' | xargs kill -9
systemctl start "$service_name"
echo "caddy未运行,正在启动服务..."
fi

View File

@@ -0,0 +1,13 @@
:8080 {
# Set this path to your site's directory.
root * /tmp
# Enable the static file server.
file_server
# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080
# Or serve a PHP site through php-fpm:
# php_fastcgi localhost:9000
}

BIN
plugins/caddy/ico.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

24
plugins/caddy/index.html Executable file
View File

@@ -0,0 +1,24 @@
<div class="bt-form">
<!-- <div class='plugin_version'></div> -->
<div class="bt-w-main">
<div class="bt-w-menu">
<p class="bgw" onclick="orPluginService('caddy',$('.plugin_version').attr('version'));">服务</p>
<p onclick="pluginInitD('caddy', $('.plugin_version').attr('version'));">自启动</p>
<p onclick="pluginConfig('caddy');">配置修改</p>
<p onclick="getOpStatus();">负载状态</p>
<p onclick="setOpCfg();">性能调整</p>
<p onclick="pluginLogs('caddy');">错误日志</p>
<p onclick="otherFunc();">维护功能</p>
</div>
<div class="bt-w-con pd15">
<div class="soft-man-con"></div>
</div>
</div>
</div>
<script type="text/javascript">
$.getScript( "/plugins/file?name=caddy&f=js/caddy.js", function(){
orPluginService('caddy');
});
</script>

445
plugins/caddy/index.py Executable file
View File

@@ -0,0 +1,445 @@
# coding:utf-8
import sys
import io
import os
import time
import threading
import subprocess
import re
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'caddy'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getInitDFile():
current_os = mw.getOs()
if current_os == 'darwin':
return '/tmp/' + getPluginName()
if current_os.startswith('freebsd'):
return '/etc/rc.d/' + getPluginName()
return '/etc/init.d/' + getPluginName()
def getArgs():
args = sys.argv[2:]
# print(args)
tmp = {}
args_len = len(args)
if args_len == 1:
t = args[0].strip('{').strip('}')
t = t.split(':',2)
tmp[t[0]] = t[1]
elif args_len > 1:
for i in range(len(args)):
t = args[i].split(':',2)
tmp[t[0]] = t[1]
# print(tmp)
return tmp
def checkArgs(data, ck=[]):
for i in range(len(ck)):
if not ck[i] in data:
return (False, mw.returnJson(False, '参数:(' + ck[i] + ')没有!'))
return (True, mw.returnJson(True, 'ok'))
def getOs():
data = {}
data['os'] = mw.getOs()
data['auth'] = True
return mw.getJson(data)
def getConf():
path = getServerDir() + "/Caddyfile"
return path
def getConfTpl():
path = getPluginDir() + '/conf/Caddyfile'
return path
def getInitDTpl():
path = getPluginDir() + "/init.d/caddy.tpl"
return path
def initDreplace():
file_tpl = getInitDTpl()
service_path = mw.getServerDir()
initD_path = getServerDir() + '/init.d'
# init.d
file_bin = initD_path + '/' + getPluginName()
if not os.path.exists(initD_path):
os.mkdir(initD_path)
# initd replace
content = mw.readFile(file_tpl)
content = content.replace('{$SERVER_PATH}', service_path)
mw.writeFile(file_bin, content)
mw.execShell('chmod +x ' + file_bin)
caddy_file = getConf()
if not os.path.exists(caddy_file):
caddy_file_tpl = getConfTpl()
content = mw.readFile(systemServiceTpl)
content = content.replace('{$SERVER_PATH}', service_path)
mw.writeFile(caddy_file, content)
# systemd
# /usr/lib/systemd/system
systemDir = mw.systemdCfgDir()
systemService = systemDir + '/caddy.service'
if os.path.exists(systemDir) and not os.path.exists(systemService):
systemServiceTpl = getPluginDir() + '/init.d/caddy.service.tpl'
se_content = mw.readFile(systemServiceTpl)
se_content = se_content.replace('{$SERVER_PATH}', service_path)
mw.writeFile(systemService, se_content)
mw.execShell('systemctl daemon-reload')
return file_bin
def status():
cmd = "ps -ef|grep 'caddy run' |grep -v grep | grep -v python | awk '{print $2}'"
data = mw.execShell(cmd)
if data[0] == '':
return 'stop'
return 'start'
def caddyOp(method):
file = initDreplace()
current_os = mw.getOs()
if current_os == "darwin":
data = mw.execShell(file + ' ' + method)
if data[1] == '':
return 'ok'
return data[1]
if current_os.startswith("freebsd"):
data = mw.execShell('service caddy ' + method)
if data[1] == '':
return 'ok'
return data[1]
data = mw.execShell('systemctl ' + method + ' caddy')
if data[1] == '':
return 'ok'
return data[1]
def start():
return caddyOp('start')
def stop():
r = caddyOp('stop')
return r
def restart():
return restyOp_restart()
def reload():
confReplace()
return caddyOp('reload')
def initdStatus():
current_os = mw.getOs()
if current_os == 'darwin':
return "Apple Computer does not support"
if current_os.startswith('freebsd'):
initd_bin = getInitDFile()
if os.path.exists(initd_bin):
return 'ok'
shell_cmd = 'systemctl status caddy | grep loaded | grep "enabled;"'
data = mw.execShell(shell_cmd)
if data[0] == '':
return 'fail'
return 'ok'
def initdInstall():
current_os = mw.getOs()
if current_os == 'darwin':
return "Apple Computer does not support"
# freebsd initd install
if current_os.startswith('freebsd'):
import shutil
source_bin = initDreplace()
initd_bin = getInitDFile()
shutil.copyfile(source_bin, initd_bin)
mw.execShell('chmod +x ' + initd_bin)
mw.execShell('sysrc ' + getPluginName() + '_enable="YES"')
return 'ok'
mw.execShell('systemctl enable caddy')
return 'ok'
def initdUinstall():
current_os = mw.getOs()
if current_os == 'darwin':
return "Apple Computer does not support"
if current_os.startswith('freebsd'):
initd_bin = getInitDFile()
os.remove(initd_bin)
mw.execShell('sysrc ' + getPluginName() + '_enable="NO"')
return 'ok'
mw.execShell('systemctl disable caddy')
return 'ok'
def runInfo():
op_status = status()
if op_status == 'stop':
return mw.returnJson(False, "未启动!")
def errorLogPath():
return getServerDir() + '/nginx/logs/error.log'
def getCfg():
cfg = getConf()
content = mw.readFile(cfg)
unitrep = "[kmgKMG]"
cfg_args = [
{"name": "worker_processes", "ps": "处理进程,auto表示自动,数字表示进程数", 'type': 2},
{"name": "worker_connections", "ps": "最大并发链接数", 'type': 2},
{"name": "keepalive_timeout", "ps": "连接超时时间", 'type': 2},
{"name": "zstd", "ps": "是否开启zstd压缩传输", 'type': 1},
{"name": "brotli", "ps": "是否开启brotli压缩传输", 'type': 1},
{"name": "gzip", "ps": "是否开启gzip压缩传输", 'type': 1},
{"name": "gzip_min_length", "ps": "最小压缩文件", 'type': 2},
{"name": "gzip_comp_level", "ps": "压缩率", 'type': 2},
{"name": "client_max_body_size", "ps": "最大上传文件", 'type': 2},
{"name": "server_names_hash_bucket_size",
"ps": "服务器名字的hash表大小", 'type': 2},
{"name": "client_header_buffer_size", "ps": "客户端请求头buffer大小", 'type': 2},
]
# {"name": "client_body_buffer_size", "ps": "请求主体缓冲区"}
rdata = []
for i in cfg_args:
rep = r"(%s)\s+(\w+)" % i["name"]
k = re.search(rep, content)
if not k:
return mw.returnJson(False, "获取 key {} 失败".format(k))
k = k.group(1)
v = re.search(rep, content)
if not v:
return mw.returnJson(False, "获取 value {} 失败".format(v))
v = v.group(2)
if re.search(unitrep, v):
u = str.upper(v[-1])
v = v[:-1]
if len(u) == 1:
psstr = u + "B," + i["ps"]
else:
psstr = u + "," + i["ps"]
else:
u = ""
kv = {"name": k, "value": v, "unit": u,
"ps": i["ps"], "type": i["type"]}
rdata.append(kv)
return mw.returnJson(True, "ok", rdata)
def replaceChar(value, index, new_char):
return value[:index] + new_char + value[index+1:]
def makeWorkerCpuAffinity(val):
if val == "auto":
return "auto"
if mw.isNumber(val):
core_num = int(val)
default_core_str = "0"*core_num
core_num_arr = []
for x in range(core_num):
t = replaceChar(default_core_str, x , "1")
core_num_arr.append(t)
return " ".join(core_num_arr)
return 'auto'
def setCfg():
args = getArgs()
data = checkArgs(args, [
'worker_processes', 'worker_connections', 'keepalive_timeout','zstd','brotli',
'gzip', 'gzip_min_length', 'gzip_comp_level', 'client_max_body_size',
'server_names_hash_bucket_size', 'client_header_buffer_size'
])
if not data[0]:
return data[1]
cfg = getConf()
mw.backFile(cfg)
content = mw.readFile(cfg)
unitrep = "[kmgKMG]"
cfg_args = [
{"name": "worker_processes", "ps": "处理进程,auto表示自动,数字表示进程数", 'type': 2},
{"name": "worker_connections", "ps": "最大并发链接数", 'type': 2},
{"name": "keepalive_timeout", "ps": "连接超时时间", 'type': 2},
{"name": "zstd", "ps": "是否开启zstd压缩传输", 'type': 1},
{"name": "brotli", "ps": "是否开启brotli压缩传输", 'type': 1},
{"name": "gzip", "ps": "是否开启压缩传输", 'type': 1},
{"name": "gzip_min_length", "ps": "最小压缩文件", 'type': 2},
{"name": "gzip_comp_level", "ps": "压缩率", 'type': 2},
{"name": "client_max_body_size", "ps": "最大上传文件", 'type': 2},
{"name": "server_names_hash_bucket_size",
"ps": "服务器名字的hash表大小", 'type': 2},
{"name": "client_header_buffer_size", "ps": "客户端请求头buffer大小", 'type': 2},
]
# print(args)
for k, v in args.items():
# print(k, v)
rep = r"%s\s+[^kKmMgG\;\n]+" % k
if k == "worker_processes" or k == "gzip":
if not re.search(r"auto|on|off|\d+", v):
return mw.returnJson(False, '参数值错误')
elif k == "zstd" or k == "brotli":
if not re.search(r"auto|on|off|\d+", v):
return mw.returnJson(False, '参数值错误')
else:
if not re.search(r"\d+", v):
return mw.returnJson(False, '参数值错误,请输入数字整数')
if k == "worker_processes" :
k_wca = "worker_cpu_affinity"
rep_wca = r"%s\s+[^\;\n]+" % k_wca
v_wca = makeWorkerCpuAffinity(v)
newconf = "%s %s" % (k_wca, v_wca)
content = re.sub(rep_wca, newconf, content)
if re.search(rep, content):
newconf = "%s %s" % (k, v)
content = re.sub(rep, newconf, content)
elif re.search(rep, content):
newconf = "%s %s" % (k, v)
content = re.sub(rep, newconf, content)
mw.writeFile(cfg, content)
isError = mw.checkWebConfig()
if (isError != True):
mw.restoreFile(cfg)
return mw.returnJson(False, 'ERROR: 配置出错<br><a style="color:red;">' + isError.replace("\n", '<br>') + '</a>')
mw.restartWeb()
return mw.returnJson(True, '设置成功')
def cronAddCheck():
try:
import tool_task
tool_task.createBgTask()
return mw.returnJson(True, '添加检查任务成功')
except Exception as e:
return mw.returnJson(False, '添加检查任务失败:'+str(e))
def cronDelCheck():
try:
import tool_task
tool_task.removeBgTask()
return mw.returnJson(True, '删除检查任务成功')
except Exception as e:
return mw.returnJson(False, '删除检查任务失败:'+str(e))
def cronCheck():
return 'ok'
def installPreInspection():
return 'ok'
if __name__ == "__main__":
version = '1.27.1'
version_pl = getServerDir() + "/version.pl"
if os.path.exists(version_pl):
version = mw.readFile(version_pl)
func = sys.argv[1]
if func == 'status':
print(status())
elif func == 'start':
print(start())
elif func == 'stop':
print(stop())
elif func == 'restart':
print(restart())
elif func == 'reload':
print(reload())
elif func == 'initd_status':
print(initdStatus())
elif func == 'initd_install':
print(initdInstall())
elif func == 'initd_uninstall':
print(initdUinstall())
elif func == 'install_pre_inspection':
print(installPreInspection())
elif func == 'conf':
print(getConf())
elif func == 'get_os':
print(getOs())
elif func == 'run_info':
print(runInfo())
elif func == 'error_log':
print(errorLogPath())
elif func == 'get_cfg':
print(getCfg())
elif func == 'set_cfg':
print(setCfg())
elif func == 'check':
print(cronCheck())
elif func == 'cron_add_check':
print(cronAddCheck())
elif func == 'cron_del_check':
print(cronDelCheck())
else:
print('error')

18
plugins/caddy/info.json Executable file
View File

@@ -0,0 +1,18 @@
{
"sort": 0,
"title":"caddy",
"tip":"soft",
"name":"caddy",
"type":"其他插件",
"ps":"一款功能强大、企业级、开源 Web 服务器,具有用 Go 编写的自动 HTTPS",
"shell":"install.sh",
"install_pre_inspection":true,
"checks":"server/caddy",
"path":"server/caddy",
"author":"caddyserver",
"home":"https://caddyserver.com/",
"date":"2026-04-11",
"pid": "1",
"versions": ["2.11"],
"updates": ["2.11.2"]
}

View File

@@ -0,0 +1,36 @@
# caddy.service
#
# For using Caddy with a config file.
#
# Make sure the ExecStart and ExecReload commands are correct
# for your installation.
#
# See https://caddyserver.com/docs/install for instructions.
#
# WARNING: This service does not use the --resume flag, so if you
# use the API to make changes, they will be overwritten by the
# Caddyfile next time the service is restarted. If you intend to
# use Caddy's API to configure it, add the --resume flag to the
# `caddy run` command or use the caddy-api.service file instead.
[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target
[Service]
Type=notify
User=caddy
Group=caddy
ExecStart={$SERVER_PATH}/caddy/bin/caddy run --environ --config {$SERVER_PATH}/caddy/Caddyfile
ExecReload={$SERVER_PATH}/caddy/bin/caddy reload --config {$SERVER_PATH}/caddy/Caddyfile --force
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,111 @@
#!/bin/sh
#
# /etc/rc.d/init.d/caddy
#
# Runs the caddy
#
#
# chkconfig: - 85 15
#
### BEGIN INIT INFO
# Provides: caddy
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Should-Start: caddy
# Should-Stop: caddy
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start caddy at boot time.
# Description: Control caddy.
### END INIT INFO
# Source function library.
if [ -f /etc/init.d/functions ];then
. /etc/init.d/functions
fi
if [ -f /etc/rc.d/init.d/functions ];then
. /etc/rc.d/init.d/functions
fi
# Default values
export HOME={$HOME_DIR}
export USER={$RUN_USER}
NAME=caddy
CADDY_HOME={$SERVER_PATH}/caddy
CADDY_PATH=${CADDY_HOME}/bin/$NAME
CADDY_USER={$RUN_USER}
SERVICENAME="caddy"
LOCKFILE=/tmp/caddy.lock
LOGPATH=${CADDY_HOME}/log
LOGFILE=${LOGPATH}/caddy.log
RETVAL=0
if [ -d $LOGPATH ];then
mkdir -p $LOGPATH
fi
[ -r /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME
DAEMON_OPTS="--check $NAME"
[ ! -z "$CADDY_USER" ] && DAEMON_OPTS="$DAEMON_OPTS --user=${CADDY_USER}"
status(){
isStart=`ps -ef|grep 'caddy run' |grep -v grep|awk '{print $2}'`
if [ "$isStart" == '' ];then
echo -e "${SERVICENAME} not running"
else
echo -e "${SERVICENAME}(pid $(echo $isStart)) already running"
fi
}
start() {
isStart=`ps -ef | grep 'caddy run' | grep -v grep | awk '{print $2}'`
if [ "$isStart" != '' ];then
echo "${SERVICENAME}(pid $(echo $isStart)) already running"
return $RETVAL
fi
cd ${CADDY_HOME}
echo -e "starting ${SERVICENAME}: \c"
${CADDY_PATH} run --environ --config ${CADDY_HOME}/Caddyfile > ${LOGFILE} 2>&1 &
RETVAL=$?
[ $RETVAL = 0 ] && touch ${LOCKFILE} && echo -e "\033[32mdone\033[0m"
return $RETVAL
}
stop() {
pids=`ps -ef | grep 'caddy run' | grep -v grep | awk '{print $2}'`
arr=($pids)
echo -e "stopping caddy... \c"
for p in ${arr[@]}
do
kill -9 $p
done
echo -e "\033[32mdone\033[0m"
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
start
;;
reload)
stop
start
;;
*)
echo "Usage: ${NAME} {start|stop|status|restart}"
exit 1
;;
esac
exit $RETVAL

76
plugins/caddy/install.sh Executable file
View File

@@ -0,0 +1,76 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin
export PATH
# cd /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/caddy && bash install.sh install 1.21.4
# cd /www/server/mdserver-web/plugins/caddy && bash install.sh install 1.21.4
# cd /www/server/mdserver-web/plugins/caddy && bash install.sh install 1.29.2
# cd /www/server/mdserver-web/plugins/caddy && bash install.sh upgrade 1.29.2
# curl -I -H "Accept-Encoding: br" http://localhost
# curl -I -H "Accept-Encoding: zstd" http://localhost
# curl --http3 -v https://www.xxx.com
# cd /www/server/mdserver-web && python3 plugins/caddy/index.py run_info
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sysName=`uname`
action=$1
type=$2
VERSION=$2
openrestyDir=${serverPath}/source/caddy
if id www &> /dev/null ;then
echo "www uid is `id -u www`"
echo "www shell is `grep "^www:" /etc/passwd |cut -d':' -f7 `"
else
groupadd www
useradd -g www -s /bin/bash www
fi
if [ "${action}" == "upgrade" ];then
sh -x $curPath/versions/$2/install.sh $1
echo "${VERSION}" > $serverPath/caddy/version.pl
#初始化
cd ${rootPath} && python3 ${rootPath}/plugins/caddy/index.py start
cd ${rootPath} && python3 ${rootPath}/plugins/caddy/index.py initd_install
exit 0
fi
if [ "${2}" == "" ];then
echo '缺少安装脚本版本...'
exit 0
fi
if [ "${action}" == "uninstall" ];then
if [ -f /usr/lib/systemd/system/caddy.service ] || [ -f /lib/systemd/system/caddy.service ];then
systemctl stop caddy
rm -rf /usr/systemd/system/caddy.service
rm -rf /lib/systemd/system/caddy.service
systemctl daemon-reload
fi
if [ -f $serverPath/caddy/init.d/caddy ];then
$serverPath/caddy/init.d/caddy stop
fi
rm -rf $serverPath/caddy
fi
sh -x $curPath/versions/$2/install.sh $1
if [ "${action}" == "install" ] && [ -d $serverPath/caddy ];then
echo "${VERSION}" > $serverPath/caddy/version.pl
#初始化
cd ${rootPath} && python3 ${rootPath}/plugins/caddy/index.py start
cd ${rootPath} && python3 ${rootPath}/plugins/caddy/index.py initd_install
fi

238
plugins/caddy/js/caddy.js Executable file
View File

@@ -0,0 +1,238 @@
function caddyPost(method, args, callback){
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
$.post('/plugins/run', {name:'caddy', func:method, args:JSON.stringify(args)}, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function orPluginService(_name, version){
var data = {name:_name, func:'status'}
if ( typeof(version) != 'undefined' ){
data['version'] = version;
} else {
version = '';
}
caddyPost('status', data, function(data){
if (data.data == 'start'){
orPluginSetService(_name, true, version);
} else {
orPluginSetService(_name, false, version);
}
});
}
function orPluginSetService(_name ,status, version){
var serviceCon ='<p class="status">当前状态:<span>'+(status ? '开启' : '关闭' )+
'</span><span style="color: '+
(status?'#20a53a;':'red;')+
' margin-left: 3px;" class="glyphicon ' + (status?'glyphicon glyphicon-play':'glyphicon-pause')+'"></span></p><div class="sfm-opt">\
<button class="btn btn-default btn-sm" onclick="orPluginOpService(\''+_name+'\',\''+(status?'stop':'start')+'\',\''+version+'\')">'+(status?'停止':'启动')+'</button>\
<button class="btn btn-default btn-sm" onclick="orPluginOpService(\''+_name+'\',\'restart\',\''+version+'\',\'yes\')">重启</button>\
<button class="btn btn-default btn-sm" onclick="orPluginOpService(\''+_name+'\',\'reload\',\''+version+'\')">重载配置</button>\
</div>';
$(".soft-man-con").html(serviceCon);
}
function orPluginOpService(a, b, v,request_callback) {
var c = "name=" + a + "&func=" + b;
if(v != ''){
c = c + '&version='+v;
}
var d = "";
switch(b) {
case "stop":d = '停止';break;
case "start":d = '启动';break;
case "restart":d = '重启';break;
case "reload":d = '重载';break;
}
layer.confirm( msgTpl('您真的要{1}{2}{3}服务吗?', [d,a,v]), {icon:3,closeBtn: 2}, function() {
caddyPost('get_os',{},function(data){
var rdata = $.parseJSON(data.data);
if (!rdata['auth']){
layer.prompt({title: '检查到权限不足,需要输入密码!', formType: 1},function(pwd, index){
layer.close(index);
var data = {'pwd':pwd};
c += '&args='+JSON.stringify(data);
orPluginOpServiceOp(a,b,c,d,a,v,request_callback);
});
} else {
orPluginOpServiceOp(a,b,c,d,a,v,request_callback);
}
});
})
}
function orPluginOpServiceOp(a,b,c,d,a,v,request_callback){
var request_path = "/plugins/run";
if (request_callback == 'yes'){
request_path = "/plugins/callback";
}
var e = layer.msg(msgTpl('正在{1}{2}{3}服务,请稍候...',[d,a,v]), {icon: 16,time: 0});
$.post(request_path, c, function(g) {
layer.close(e);
var f = g.data == 'ok' ? msgTpl('{1}{2}服务已{3}',[a,v,d]) : msgTpl('{1}{2}服务{3}失败!',[a,v,d]);
layer.msg(f, {icon: g.data == 'ok' ? 1 : 2});
if( b != "reload" && g.data == 'ok' ) {
if ( b == 'start' ) {
orPluginSetService(a, true, v);
} else if ( b == 'stop' ){
orPluginSetService(a, false, v);
}
}
if( g.status && g.data != 'ok' ) {
layer.msg(g.data, {icon: 2,time: 10000,shade: 0.3});
}
},'json').error(function() {
layer.close(e);
layer.msg('操作异常!', {icon: 2});
});
}
//查看Nginx负载状态
function getOpStatus() {
var loadT = layer.msg('正在处理,请稍后...', { icon: 16, time: 0, shade: 0.3 });
$.post('/plugins/run', {name:'openresty', func:'run_info'}, function(data) {
layer.close(loadT);
try {
var rdata = $.parseJSON(data.data);
if ('status' in rdata && !rdata.status){
showMsg(rdata.msg, function(){}, null,3000);
return;
}
var con = "<div><table class='table table-hover table-bordered'>\
<tr><th>活动连接(Active connections)</th><td>" + rdata.active + "</td></tr>\
<tr><th>总连接次数(accepts)</th><td>" + rdata.accepts + "</td></tr>\
<tr><th>总握手次数(handled)</th><td>" + rdata.handled + "</td></tr>\
<tr><th>总请求数(requests)</th><td>" + rdata.requests + "</td></tr>\
<tr><th>请求数(Reading)</th><td>" + rdata.Reading + "</td></tr>\
<tr><th>响应数(Writing)</th><td>" + rdata.Writing + "</td></tr>\
<tr><th>驻留进程(Waiting)</th><td>" + rdata.Waiting + "</td></tr>\
</table></div>";
$(".soft-man-con").html(con);
}catch(err){
showMsg(data.data, function(){}, null,3000);
}
},'json');
}
function setOpCfg(){
caddyPost('get_cfg', {}, function(data){
var rdata = $.parseJSON(data.data);
var rdata = rdata.data;
// console.log(rdata);
var mlist = '';
for (var i = 0; i < rdata.length; i++) {
var w = '70'
var ibody = '<input style="width: ' + w + 'px;" class="bt-input-text mr5" name="' + rdata[i].name + '" value="' + rdata[i].value + '" type="text" >';
switch (rdata[i].type) {
case 0:
var selected_1 = (rdata[i].value == 1) ? 'selected' : '';
var selected_0 = (rdata[i].value == 0) ? 'selected' : '';
ibody = '<select class="bt-input-text mr5" name="' + rdata[i].name + '" style="width: ' + w + 'px;">\
<option value="1" ' + selected_1 + '>开启</option>\
<option value="0" ' + selected_0 + '>关闭</option>\
</select>';
break;
case 1:
var selected_1 = (rdata[i].value == 'on') ? 'selected' : '';
var selected_0 = (rdata[i].value == 'off') ? 'selected' : '';
ibody = '<select class="bt-input-text mr5" name="' + rdata[i].name + '" style="width: ' + w + 'px;">\
<option value="on" ' + selected_1 + '>开启</option>\
<option value="off" ' + selected_0 + '>关闭</option>\
</select>';
break;
}
mlist += '<p style="margin-top:15px;"><span>' + rdata[i].name + '</span>' + ibody + "<b class='unit c9'>"+rdata[i].unit+"</b>" +', <font class="c9">' + rdata[i].ps + '</font></p>';
}
var con = '<style>.conf_p p{margin-bottom: 2px}</style><div class="conf_p" style="margin-bottom:0">\
' + mlist + '\
<div style="margin-top:10px; padding-right:15px" class="text-right">\
<button class="btn btn-success btn-sm mr5" onclick="setOpCfg()">刷新</button>\
<button class="btn btn-success btn-sm" onclick="submitConf()">保存</button>\
</div>\
</div>'
$(".soft-man-con").html(con);
});
}
function submitConf() {
var data = {
worker_processes: $("input[name='worker_processes']").val(),
worker_connections: $("input[name='worker_connections']").val(),
keepalive_timeout: $("input[name='keepalive_timeout']").val(),
zstd: $("select[name='zstd']").val() || 'on',
brotli: $("select[name='brotli']").val() || 'on',
gzip: $("select[name='gzip']").val() || 'on',
gzip_min_length: $("input[name='gzip_min_length']").val(),
gzip_comp_level: $("input[name='gzip_comp_level']").val(),
client_max_body_size: $("input[name='client_max_body_size']").val(),
server_names_hash_bucket_size: $("input[name='server_names_hash_bucket_size']").val(),
client_header_buffer_size: $("input[name='client_header_buffer_size']").val(),
};
// console.log(data);
caddyPost('set_cfg', data, function(rdata){
var rdata = $.parseJSON(rdata.data);
// console.log(rdata);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
});
}
function otherFunc(){
var con = '<p class="conf_p" style="text-align:center;">\
<button class="btn btn-default btn-sm" onclick="cronAddCheck()">添加检查任务</button> \
<button class="btn btn-default btn-sm" onclick="cronDelCheck()">删除检查任务</button>\
</p>';
$(".soft-man-con").html(con);
}
function cronAddCheck(){
caddyPost('cron_add_check', {}, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
});
}
function cronDelCheck(){
caddyPost('cron_del_check', {}, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
});
}

124
plugins/caddy/tool_task.py Normal file
View File

@@ -0,0 +1,124 @@
# coding:utf-8
import sys
import io
import os
import time
import json
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
from utils.crontab import crontab as MwCrontab
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'caddy'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getTaskConf():
conf = getServerDir() + "/task_config.json"
return conf
def getConfigData():
conf = getTaskConf()
if os.path.exists(conf):
return json.loads(mw.readFile(getTaskConf()))
return {
"task_id": -1,
"period": "minute-n",
"where1": "3",
"hour": "0",
"minute": "0",
}
def createBgTask():
removeBgTask()
createBgTaskByName(getPluginName())
def createBgTaskByName(name):
args = getConfigData()
_name = "[caddy]检查任务"
res = mw.M("crontab").field("id, name").where("name=?", (_name,)).find()
if res:
return True
if "task_id" in args and args["task_id"] > 0:
res = mw.M("crontab").field("id, name").where(
"id=?", (args["task_id"],)).find()
if res and res["id"] == args["task_id"]:
print("计划任务已经存在!")
return True
mw_dir = mw.getPanelDir()
cmd = '''
mw_dir=%s
rname=%s
plugin_path=%s
script_path=%s
''' % (mw_dir, name, getServerDir(), getPluginDir())
cmd += 'echo "bash $script_path/check.sh"' + "\n"
cmd += 'cd $mw_dir && bash $script_path/check.sh' + "\n"
params = {
'name': _name,
'type': args['period'],
'week': "",
'where1': args['where1'],
'hour': args['hour'],
'minute': args['minute'],
'save': "",
'backup_to': "",
'stype': "toShell",
'sname': '',
'sbody': cmd,
'url_address': '',
}
task_id = MwCrontab.instance().add(params)
if task_id > 0:
args["task_id"] = task_id
args["name"] = name
mw.writeFile(getTaskConf(), json.dumps(args))
def removeBgTask():
cfg = getConfigData()
if "task_id" in cfg and cfg["task_id"] > 0:
res = mw.M("crontab").field("id, name").where(
"id=?", (cfg["task_id"],)).find()
if res and res["id"] == cfg["task_id"]:
data = MwCrontab.instance().delete(cfg["task_id"])
if data["status"]:
cfg["task_id"] = -1
mw.writeFile(getTaskConf(), json.dumps(cfg))
return True
return False
if __name__ == "__main__":
if len(sys.argv) > 1:
action = sys.argv[1]
if action == "remove":
removeBgTask()
elif action == "add":
createBgTask()

View File

@@ -0,0 +1,87 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin
export PATH
# cd /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/caddy && bash install.sh install 2.11
# cd /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/caddy && bash install.sh upgrade 2.11
# cd /www/server/mdserver-web/plugins/caddy && bash install.sh install 2.11
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
sysName=`uname`
action=$1
type=$2
OS=`uname`
OSNAME=''
case $(uname) in
Darwin) OSNAME="mac" ;;
Linux) OSNAME="linux" ;;
esac
ARCH=`uname -m`
ARCH_NAME=''
case $(uname -m) in
i386) ARCH_NAME="386" ;;
i686) ARCH_NAME="386" ;;
x86_64) ARCH_NAME="amd64" ;;
arm) ARCH_NAME="arm64" ;;
arm64) ARCH_NAME="arm64" ;;
esac
VERSION=2.11.2
caddyDir=${serverPath}/source/caddy
Install_App()
{
if [ "${action}" == "install" ];then
if [ -d $serverPath/caddy ];then
exit 0
fi
fi
mkdir -p ${caddyDir}
# mkdir -p ${serverPath}/caddy
echo 'install scripts ...'
FILE_NAME="caddy_${VERSION}_${OSNAME}_${ARCH_NAME}.tar.gz"
if [ ! -f ${caddyDir}/${FILE_NAME} ];then
wget --no-check-certificate -O ${caddyDir}/${FILE_NAME} "https://github.com/caddyserver/caddy/releases/download/v${VERSION}/${FILE_NAME}"
fi
echo "cd $serverPath/source/caddy/caddy && tar -zxvf ${caddyDir}/$FILE_NAME"
mkdir -p cd $serverPath/source/caddy/caddy
cd $serverPath/source/caddy/caddy && tar -zxvf ${caddyDir}/$FILE_NAME
if [ "$OSNAME" == "mac" ];then
xattr -cr caddy
fi
if [ ! -f $serverPath/caddy/bin ];then
mkdir -p $serverPath/caddy/bin
mv $serverPath/source/caddy/caddy/* $serverPath/caddy/bin
chmod +x $serverPath/caddy/bin/caddy
fi
echo 'Installation of caddy completed'
}
Uninstall_App()
{
echo 'Uninstalling caddy completed'
}
action=$1
if [ "${1}" == "install" ];then
Install_App
elif [ "${1}" == "upgrade" ];then
Install_App
else
Uninstall_App
fi

BIN
plugins/clean/ico.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

74
plugins/clean/index.html Executable file
View File

@@ -0,0 +1,74 @@
<div class="bt-form">
<div class="bt-w-main">
<div class="bt-w-menu">
<p class="bgw" onclick="pluginService('clean');">服务</p>
<p onclick="pluginConfig('clean');">配置修改</p>
<p onclick="commonFunc();">常用功能</p>
<p onclick="pluginLogs('clean',null,'run_log');">运行日志</p>
<p onclick="pRead()">说明</p>
</div>
<div class="bt-w-con pd15">
<div class="soft-man-con"></div>
</div>
</div>
</div>
<script type="text/javascript">
pluginService('clean');
function cleanPost(method, version, args, callback){
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
var req_data = {};
req_data['name'] = 'clean';
req_data['func'] = method;
req_data['version'] = version;
if (typeof(args) == 'string'){
req_data['args'] = JSON.stringify(toArrayObject(args));
} else {
req_data['args'] = JSON.stringify(args);
}
$.post('/plugins/run', req_data, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [10, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function cleanRun(){
cleanPost('clean_run', '', {}, function(rdata){
// var rdata = $.parseJSON(rdata.data);
// layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
});
layer.msg("执行成功!", { icon: 1});
}
function commonFunc(){
con = '<hr/><p class="conf_p" style="text-align:center;">\
<button class="btn btn-default btn-sm" onclick="cleanRun()">手动执行</button> \
</p>';
$(".soft-man-con").html(con);
}
function pRead(){
var readme = '<ul class="help-info-text c7">';
readme += '<li>启动后,加入到计划任务每隔7天[0:15]执行。</li>';
readme += '<li>【*】代表要删除。</li>';
readme += '<li>添加/删除清除日志,可在`配置修改`中添加/删除。</li>';
readme += '<li>如果是目录,会寻找【.log】后缀的文件清空。</li>';
readme += '</ul>';
$('.soft-man-con').html(readme);
}
</script>

303
plugins/clean/index.py Executable file
View File

@@ -0,0 +1,303 @@
# coding:utf-8
import sys
import io
import os
import time
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'clean'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getInitDFile():
if app_debug:
return '/tmp/' + getPluginName()
return '/etc/init.d/' + getPluginName()
def getConf():
path = getServerDir() + "/clean.conf"
return path
def getArgs():
args = sys.argv[2:]
tmp = {}
args_len = len(args)
if args_len == 1:
t = args[0].strip('{').strip('}')
t = t.split(':')
tmp[t[0]] = t[1]
elif args_len > 1:
for i in range(len(args)):
t = args[i].split(':')
tmp[t[0]] = t[1]
return tmp
def getLockFile():
return getServerDir() + "/installed_lock.pl"
def runLog():
return getServerDir() + "/clean.log"
def status():
initConf()
if os.path.exists(getLockFile()):
return "start"
return 'stop'
def initConf():
conf = getConf()
if not os.path.exists(conf):
content = ""
clog = [
"/var/log/cron-*",
"/var/log/maillog-*",
"/var/log/secure-*",
"/var/log/spooler-*",
"/var/log/yum.log-*",
"/var/log/messages-*",
"/var/log/btmp-*",
"/var/log/auth.*",
"/var/log/messages.*",
"/var/log/debug.*",
"/var/log/syslog.*",
"/var/log/syslog",
"/var/log/mail.*",
"/var/log/mail.err.*",
"/var/log/mail.info.*",
"/var/log/mail.warn.*",
"/var/log/btmp.*",
"/var/log/sa/sa*",
"/var/log/sysstat/sa*",
"/var/log/atop/atop*",
"/var/log/anaconda/*.log",
"/var/log/dpkg.log.*",
"/var/log/alternatives.log.*",
"/var/log/user.log.*",
"/var/log/kern.log.*",
"/var/log/daemon.log.*",
"/var/log/*.gz",
"/var/log/*.xz",
"/var/log/*.log.*",
"/var/log/audit/audit.log.*",
"/var/log/hawkey.log-*",
"/var/log/apt/*.gz",
"/var/log/apt/*.xz",
"/var/log/rhsm/rhsm.log-*",
"/var/log/rhsm/rhsmcertd.log-*",
"/var/log/exim4/*.gz",
"/var/log/journal/*",
"/var/spool/clientmqueue/*",
"/tmp/yum_save_*",
"/tmp/tmp.*",
"/www/server/dztasks/logs/dztasks.*.log",
"/www/server/dztasks/logs/dztasks_*",
]
for i in clog:
content += i + "\n"
# 常用日志
clogcom = [
"/var/log/messages",
"/var/log/btmp",
"/var/log/wtmp",
"/var/log/secure",
"/var/log/lastlog",
"/var/log/syslog",
"/var/log/cron",
"/www/wwwlogs",
"/www/server/rsyncd",
"/www/server/acme_pandominassl_apply",
"/www/server/sphinx/index",
"/www/server/mongodb/logs",
"/www/server/php/53/var/log",
"/www/server/php/54/var/log",
"/www/server/php/55/var/log",
"/www/server/php/56/var/log",
"/www/server/php/70/var/log",
"/www/server/php/71/var/log",
"/www/server/php/72/var/log",
"/www/server/php/73/var/log",
"/www/server/php/74/var/log",
"/www/server/php/80/var/log",
"/www/server/php/81/var/log",
"/www/server/php/82/var/log",
"/www/server/php/83/var/log",
"/www/server/php/84/var/log",
"/www/server/php/85/var/log",
"/www/server/openresty/nginx/logs",
"/www/server/phpmyadmin",
"/www/server/apache/httpd/logs",
"/www/server/redis/data",
"/www/server/alist/data/log",
"/www/server/dztasks/logs",
"/www/server/rsyncd/lsyncd.log",
]
for i in clogcom:
if os.path.exists(i):
content += i + "\n"
content += "/www/server/cron\n"
# 清理日志
rootDir = "/var/log"
l = os.listdir(rootDir)
for x in range(len(l)):
abspath = rootDir + "/" + l[x]
content += abspath + "\n"
mw.writeFile(conf, content)
def start():
initConf()
lock_file = getLockFile()
if not os.path.exists(lock_file):
mw.writeFile(lock_file, "")
import tool_task
tool_task.createBgTask()
return 'ok'
return 'fail'
def stop():
initConf()
lock_file = getLockFile()
if os.path.exists(lock_file):
os.remove(lock_file)
import tool_task
tool_task.removeBgTask()
return 'ok'
return 'fail'
def reload():
return 'ok'
def get_filePath_fileName_fileExt(filename):
(filepath, tempfilename) = os.path.split(filename)
(shotname, extension) = os.path.splitext(tempfilename)
return filepath, shotname, extension
def cleanFileLog(path):
filepath, shotname, extension = get_filePath_fileName_fileExt(path)
if extension == ".log":
cmd = "echo \"\" > " + path
tmp = mw.execShell(cmd)
if tmp[1] != "":
cmd += " | error:" + tmp[1].strip()
print(cmd)
def cleanSelfFileLog(path):
filepath, shotname, extension = get_filePath_fileName_fileExt(path)
if extension == ".log":
cmd = "echo \"\" > " + path
tmp = mw.execShell(cmd)
if tmp[1] != "":
cmd += " | error:" + tmp[1].strip()
print(cmd)
def cleanDirLog(path):
l = os.listdir(path)
for x in range(len(l)):
abspath = path + "/" + l[x]
if os.path.isfile(abspath):
cleanFileLog(abspath)
if os.path.isdir(abspath):
cleanDirLog(abspath)
def cleanRun():
plugin_dir = getPluginDir()
log_file = getServerDir()+'/clean.log'
cmd = 'cd '+mw.getPanelDir()+' && python3 '+plugin_dir+'/index.py clean > '+log_file
os.system(cmd)
return mw.returnJson(True, '执行成功!')
def cleanLog():
conf = getConf()
clist = mw.readFile(conf).strip()
clist = clist.split("\n")
for x in clist:
abspath = x.strip()
if abspath.find('*') > 1:
cmd = 'rm -rf ' + abspath
print(cmd)
data = mw.execShell(cmd)
# print(data)
continue
if os.path.exists(abspath):
if os.path.isfile(abspath):
cleanSelfFileLog(abspath)
continue
if os.path.isdir(abspath):
cleanDirLog(abspath)
continue
if __name__ == "__main__":
func = sys.argv[1]
if func == 'status':
print(status())
elif func == 'start':
print(start())
elif func == 'stop':
print(stop())
elif func == 'restart':
print(restart())
elif func == 'reload':
print(reload())
elif func == 'conf':
print(getConf())
elif func == 'run_log':
print(runLog())
elif func == 'clean':
cleanLog()
elif func == 'clean_run':
print(cleanRun())
else:
print('error')

17
plugins/clean/info.json Executable file
View File

@@ -0,0 +1,17 @@
{
"sort":2,
"title":"日志清理",
"tip":"soft",
"name":"clean",
"type":"运行环境",
"ps":"日志清理",
"versions":"1.0",
"updates":"1.0",
"shell":"install.sh",
"checks":"server/clean",
"path": "server/clean",
"author":"clean",
"home":"https://github.com/midoks",
"date":"2021-11-23",
"pid": "5"
}

42
plugins/clean/install.sh Executable file
View File

@@ -0,0 +1,42 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# cd /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/mongodb && /bin/bash install.sh install 5.0.4
# cd /www/server/mdserver-web/plugins/mongodb && /bin/bash install.sh install 5.0.4
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
VERSION=$2
if [ -f ${rootPath}/bin/activate ];then
source ${rootPath}/bin/activate
fi
Install_app()
{
echo '正在安装脚本文件...'
mkdir -p $serverPath/clean
cd ${rootPath} && python3 ${rootPath}/plugins/clean/index.py start
echo "${VERSION}" > $serverPath/clean/version.pl
echo '安装完成'
}
Uninstall_app()
{
cd ${rootPath} && python3 ${rootPath}/plugins/clean/index.py stop
rm -rf $serverPath/clean
echo "Uninstall_clean"
}
action=$1
if [ "${1}" == 'install' ];then
Install_app
else
Uninstall_app
fi

129
plugins/clean/tool_task.py Normal file
View File

@@ -0,0 +1,129 @@
# coding:utf-8
import sys
import io
import os
import time
import json
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
from utils.crontab import crontab as MwCrontab
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'clean'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getTaskConf():
conf = getServerDir() + "/task_config.json"
return conf
def getConfigData():
conf = getTaskConf()
if os.path.exists(conf):
return json.loads(mw.readFile(getTaskConf()))
return {
"task_id": -1,
"period": "day-n",
"where1": "7",
"hour": "0",
"minute": "15",
}
def createBgTask():
removeBgTask()
createBgTaskByName(getPluginName())
def createBgTaskByName(name):
args = getConfigData()
_name = "[勿删]日志清理[" + name + "]"
res = mw.M("crontab").field("id, name").where("name=?", (_name,)).find()
if res:
return True
if "task_id" in args and args["task_id"] > 0:
res = mw.M("crontab").field("id, name").where(
"id=?", (args["task_id"],)).find()
if res and res["id"] == args["task_id"]:
print("计划任务已经存在!")
return True
mw_dir = mw.getPanelDir()
cmd = '''
mw_dir=%s
rname=%s
plugin_path=%s
script_path=%s
logs_file=$plugin_path/${rname}.log
''' % (mw_dir, name, getServerDir(), getPluginDir())
cmd += 'echo "★【`date +"%Y-%m-%d %H:%M:%S"`】 STSRT★" >> $logs_file' + "\n"
cmd += 'echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" >> $logs_file' + "\n"
cmd += 'echo "python3 $script_path/index.py clean >> $logs_file 2>&1"' + "\n"
cmd += 'cd $mw_dir && python3 $script_path/index.py clean >> $logs_file 2>&1' + "\n"
cmd += 'echo "【`date +"%Y-%m-%d %H:%M:%S"`】 END★" >> $logs_file' + "\n"
cmd += 'echo "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" >> $logs_file' + "\n"
params = {
'name': _name,
'type': args['period'],
'week': "",
'where1': args['where1'],
'hour': args['hour'],
'minute': args['minute'],
'save': "",
'backup_to': "",
'stype': "toShell",
'sname': '',
'sbody': cmd,
'url_address': '',
}
task_id = MwCrontab.instance().add(params)
if task_id > 0:
args["task_id"] = task_id
args["name"] = name
mw.writeFile(getTaskConf(), json.dumps(args))
def removeBgTask():
cfg = getConfigData()
if "task_id" in cfg and cfg["task_id"] > 0:
res = mw.M("crontab").field("id, name").where(
"id=?", (cfg["task_id"],)).find()
if res and res["id"] == cfg["task_id"]:
data = MwCrontab.instance().delete(cfg["task_id"])
if data["status"]:
cfg["task_id"] = -1
mw.writeFile(getTaskConf(), json.dumps(cfg))
return True
return False
if __name__ == "__main__":
if len(sys.argv) > 1:
action = sys.argv[1]
if action == "remove":
removeBgTask()
elif action == "add":
createBgTask()

BIN
plugins/cloudreve/ico.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

31
plugins/cloudreve/index.html Executable file
View File

@@ -0,0 +1,31 @@
<style>
.overflow_hide {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
vertical-align: middle;
}
</style>
<div class="bt-form">
<div class='plugin_version'></div>
<div class="bt-w-main">
<div class="bt-w-menu">
<p class="bgw" onclick="pluginService('cloudreve');">服务</p>
<p onclick="pluginInitD('cloudreve');">自启动</p>
<p onclick="alistCommonFunc();">常用功能</p>
<p onclick="pluginConfigTpl('cloudreve',$('.plugin_version').attr('version'));">配置修改</p>
<p onclick="pluginLogs('cloudreve','','run_log');">运行日志</p>
<p onclick="alistReadme();">相关说明</p>
</div>
<div class="bt-w-con pd15">
<div class="soft-man-con" style="height: 520px; overflow: auto;"></div>
</div>
</div>
</div>
<script type="text/javascript">
$.getScript( "/plugins/file?name=cloudreve&f=js/cloudreve.js", function(){
pluginService('cloudreve', $('.plugin_version').attr('version'));
});
</script>

292
plugins/cloudreve/index.py Executable file
View File

@@ -0,0 +1,292 @@
# coding:utf-8
import sys
import io
import os
import time
import re
web_dir = os.getcwd() + "/web"
if os.path.exists(web_dir):
sys.path.append(web_dir)
os.chdir(web_dir)
import core.mw as mw
app_debug = False
if mw.isAppleSystem():
app_debug = True
def getPluginName():
return 'cloudreve'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getInitDFile():
current_os = mw.getOs()
if current_os == 'darwin':
return '/tmp/' + getPluginName()
if current_os.startswith('freebsd'):
return '/etc/rc.d/' + getPluginName()
return '/etc/init.d/' + getPluginName()
def getInitDTpl():
path = getPluginDir() + "/init.d/" + getPluginName() + ".tpl"
return path
def getArgs():
args = sys.argv[3:]
tmp = {}
args_len = len(args)
if args_len == 1:
t = args[0].strip('{').strip('}')
if t.strip() == '':
tmp = []
else:
t = t.split(':')
tmp[t[0]] = t[1]
tmp[t[0]] = t[1]
elif args_len > 1:
for i in range(len(args)):
t = args[i].split(':')
tmp[t[0]] = t[1]
return tmp
def checkArgs(data, ck=[]):
for i in range(len(ck)):
if not ck[i] in data:
return (False, mw.returnJson(False, '参数:(' + ck[i] + ')没有!'))
return (True, mw.returnJson(True, 'ok'))
def getConf():
path = getServerDir() + "/conf.ini"
return path
def configTpl():
path = getPluginDir() + '/tpl'
pathFile = os.listdir(path)
tmp = []
for one in pathFile:
file = path + '/' + one
tmp.append(file)
return mw.getJson(tmp)
def readConfigTpl():
args = getArgs()
data = checkArgs(args, ['file'])
if not data[0]:
return data[1]
content = mw.readFile(args['file'])
content = contentReplace(content)
return mw.returnJson(True, 'ok', content)
def status():
data = mw.execShell(
"ps aux|grep cloudreve |grep -v grep | grep -v python | grep -v mdserver-web | awk '{print $2}'")
if data[0] == '':
return 'stop'
return 'start'
def contentReplace(content):
service_path = mw.getServerDir()
content = content.replace('{$ROOT_PATH}', mw.getFatherDir())
content = content.replace('{$SERVER_PATH}', service_path)
content = content.replace('{$SERVER_APP}', service_path + '/'+getPluginName())
return content
def initDreplace():
file_tpl = getInitDTpl()
service_path = mw.getServerDir()
initD_path = getServerDir() + '/init.d'
if not os.path.exists(initD_path):
os.mkdir(initD_path)
file_bin = initD_path + '/' + getPluginName()
# initd replace
if not os.path.exists(file_bin):
content = mw.readFile(file_tpl)
content = content.replace('{$SERVER_PATH}', service_path)
mw.writeFile(file_bin, content)
mw.execShell('chmod +x ' + file_bin)
# systemd
systemDir = mw.systemdCfgDir()
systemService = systemDir + '/' + getPluginName() + '.service'
if os.path.exists(systemDir) and not os.path.exists(systemService):
systemServiceTpl = getPluginDir() + '/init.d/' + getPluginName() + '.service.tpl'
service_path = mw.getServerDir()
se_content = mw.readFile(systemServiceTpl)
se_content = se_content.replace('{$SERVER_PATH}', service_path)
mw.writeFile(systemService, se_content)
mw.execShell('systemctl daemon-reload')
return file_bin
def alistOp(method):
file = initDreplace()
current_os = mw.getOs()
if current_os == "darwin":
data = mw.execShell(file + ' ' + method)
if data[1] == '':
return 'ok'
return data[1]
if current_os.startswith("freebsd"):
data = mw.execShell('service ' + getPluginName() + ' ' + method)
if data[1] == '':
return 'ok'
return data[1]
data = mw.execShell('systemctl ' + method + ' ' + getPluginName())
if data[1] == '':
return 'ok'
return data[1]
def start():
return alistOp('start')
def stop():
return alistOp('stop')
def restart():
status = alistOp('restart')
return status
def reload():
return alistOp('reload')
def initdStatus():
current_os = mw.getOs()
if current_os == 'darwin':
return "Apple Computer does not support"
if current_os.startswith('freebsd'):
initd_bin = getInitDFile()
if os.path.exists(initd_bin):
return 'ok'
shell_cmd = 'systemctl status ' + \
getPluginName() + ' | grep loaded | grep "enabled;"'
data = mw.execShell(shell_cmd)
if data[0] == '':
return 'fail'
return 'ok'
def initdInstall():
current_os = mw.getOs()
if current_os == 'darwin':
return "Apple Computer does not support"
# freebsd initd install
if current_os.startswith('freebsd'):
import shutil
source_bin = initDreplace()
initd_bin = getInitDFile()
shutil.copyfile(source_bin, initd_bin)
mw.execShell('chmod +x ' + initd_bin)
mw.execShell('sysrc ' + getPluginName() + '_enable="YES"')
return 'ok'
mw.execShell('systemctl enable ' + getPluginName())
return 'ok'
def initdUinstall():
current_os = mw.getOs()
if current_os == 'darwin':
return "Apple Computer does not support"
if current_os.startswith('freebsd'):
initd_bin = getInitDFile()
os.remove(initd_bin)
mw.execShell('sysrc ' + getPluginName() + '_enable="NO"')
return 'ok'
mw.execShell('systemctl disable ' + getPluginName())
return 'ok'
def runLog():
return getServerDir() + '/logs.pl'
def pSqliteDb(dbname='databases'):
pos_file = getServerDir() + '/data/'
file = pos_file + '/data.db'
name = 'data'
conn = mw.M(dbname).dbPos(pos_file, name)
return conn
def getCloudrevePort():
file = getConf()
content = mw.readFile(file)
rep = r'Listen\s*=\s*(.*)'
tmp = re.search(rep, content)
return tmp.groups()[0].strip()
def homePage():
http_port = getCloudrevePort()
ip = mw.getLocalIp()
if mw.isAppleSystem():
ip = '127.0.0.1'
url = 'http://'+ip+""+str(http_port)
# print(url)
return mw.returnJson(True, 'ok!', url)
if __name__ == "__main__":
func = sys.argv[1]
if func == 'status':
print(status())
elif func == 'start':
print(start())
elif func == 'stop':
print(stop())
elif func == 'restart':
print(restart())
elif func == 'reload':
print(reload())
elif func == 'initd_status':
print(initdStatus())
elif func == 'initd_install':
print(initdInstall())
elif func == 'initd_uninstall':
print(initdUinstall())
elif func == 'conf':
print(getConf())
elif func == 'run_log':
print(runLog())
elif func == 'config_tpl':
print(configTpl())
elif func == 'read_config_tpl':
print(readConfigTpl())
elif func == 'home_page':
print(homePage())
else:
print('error')

17
plugins/cloudreve/info.json Executable file
View File

@@ -0,0 +1,17 @@
{
"sort": 7,
"ps": "一个支持多种存储的文件列表程序",
"name": "cloudreve",
"title": "cloudreve",
"shell": "install.sh",
"versions":["3.8.3"],
"tip": "soft",
"checks": "server/cloudreve",
"path": "server/cloudreve",
"display": 1,
"author": "cloudreve",
"date": "2024-10-14",
"home": "https://cloudreve.org/",
"type": 0,
"pid": "5"
}

View File

@@ -0,0 +1,13 @@
[Unit]
Description=A file list program that supports multiple storage
After=network.target
[Service]
Type=simple
WorkingDirectory={$SERVER_PATH}/cloudreve
ExecStart={$SERVER_PATH}/cloudreve/cloudreve
ExecReload=/bin/kill -USR2 $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,46 @@
#!/bin/sh
# chkconfig: 2345 55 25
# description: cloudreve Service
### BEGIN INIT INFO
# Provides: cloudreve
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts cloudreve
# Description: starts the MDW-Web
### END INIT INFO
# Simple cloudreve init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
app_start(){
echo "Starting cloudreve server..."
cd {$SERVER_PATH}/cloudreve
./cloudreve >> {$SERVER_PATH}/cloudreve/logs.pl 2>&1 &
}
app_stop(){
echo "dztasks stopped"
ps -ef| grep cloudreve | grep -v grep | grep -v python | grep -v sh | awk '{print $2}'| xargs kill
}
case "$1" in
start)
app_start
;;
stop)
app_stop
;;
restart|reload)
app_stop
sleep 0.3
app_start
;;
*)
echo "Please use start or stop as first argument"
;;
esac

90
plugins/cloudreve/install.sh Executable file
View File

@@ -0,0 +1,90 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin
export PATH
curPath=`pwd`
rootPath=$(dirname "$curPath")
rootPath=$(dirname "$rootPath")
serverPath=$(dirname "$rootPath")
# cd /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/cloudreve && bash install.sh install 3.8.3
# cd /www/server/mdserver-web/plugins/cloudreve && bash install.sh install 3.8.3
VERSION=$2
sysArch=`arch`
sysName=`uname`
ALIST_ARCH_NAME=amd64
if [ "$sysArch" == "arm64" ];then
ALIST_ARCH_NAME=arm64
elif [ "$sysArch" == "x86_64" ]; then
ALIST_ARCH_NAME=amd64
elif [ "$sysArch" == "aarch64" ]; then
ALIST_ARCH_NAME=aarch64
fi
ALIST_NAME=linux
if [ "$sysName" == "Darwin" ];then
ALIST_NAME=darwin
fi
Install_App()
{
echo '正在安装脚本文件...'
mkdir -p $serverPath/source
mkdir -p $serverPath/source/cloudreve
FILE_TGZ=cloudreve_${VERSION}_${ALIST_NAME}_${ALIST_ARCH_NAME}.tar.gz
CLOUDREVE_DIR=$serverPath/source/cloudreve
if [ ! -f $CLOUDREVE_DIR/${FILE_TGZ} ];then
wget -O $CLOUDREVE_DIR/${FILE_TGZ} https://github.com/cloudreve/Cloudreve/releases/download/${VERSION}/${FILE_TGZ}
fi
mkdir -p $serverPath/cloudreve
cd $CLOUDREVE_DIR && tar -zxvf ${FILE_TGZ} -C $serverPath/cloudreve
echo "${VERSION}" > $serverPath/cloudreve/version.pl
cd ${rootPath} && python3 ${rootPath}/plugins/cloudreve/index.py start
cd ${rootPath} && python3 ${rootPath}/plugins/cloudreve/index.py initd_install
# cd $serverPath/cloudreve && ./alist admin set admin
echo '安装cloudreve完成'
}
Uninstall_App()
{
if [ -f /usr/lib/systemd/system/cloudreve.service ];then
systemctl stop cloudreve
systemctl disable cloudreve
rm -rf /usr/lib/systemd/system/cloudreve.service
systemctl daemon-reload
fi
if [ -f /lib/systemd/system/cloudreve.service ];then
systemctl stop cloudreve
systemctl disable cloudreve
rm -rf /lib/systemd/system/cloudreve.service
systemctl daemon-reload
fi
if [ -f $serverPath/cloudreve/initd/cloudreve ];then
$serverPath/cloudreve/initd/cloudreve stop
fi
if [ -d $serverPath/cloudreve ];then
rm -rf $serverPath/cloudreve
fi
echo "卸载cloudreve成功"
}
action=$1
if [ "${1}" == 'install' ];then
Install_App
else
Uninstall_App
fi

View File

@@ -0,0 +1,82 @@
function alistPost(method, version, args,callback){
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
var req_data = {};
req_data['name'] = 'cloudreve';
req_data['func'] = method;
req_data['version'] = version;
if (typeof(args) == 'string'){
req_data['args'] = JSON.stringify(toArrayObject(args));
} else {
req_data['args'] = JSON.stringify(args);
}
$.post('/plugins/run', req_data, function(data) {
layer.close(loadT);
if (!data.status){
//错误展示10S
layer.msg(data.msg,{icon:0,time:2000,shade: [10, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function alistPostCallbak(method, version, args,callback){
var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 });
var req_data = {};
req_data['name'] = 'cloudreve';
req_data['func'] = method;
args['version'] = version;
if (typeof(args) == 'string'){
req_data['args'] = JSON.stringify(toArrayObject(args));
} else {
req_data['args'] = JSON.stringify(args);
}
$.post('/plugins/callback', req_data, function(data) {
layer.close(loadT);
if (!data.status){
layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']});
return;
}
if(typeof(callback) == 'function'){
callback(data);
}
},'json');
}
function commonHomePage(){
alistPost('home_page', '', {}, function(data){
var rdata = $.parseJSON(data.data);
window.open(rdata.data);
});
}
function alistCommonFunc(){
var con = '';
con += '<hr/><p class="conf_p" style="text-align:center;">\
<button class="btn btn-default btn-sm" onclick="commonHomePage()">主页</button>\
</p>';
$(".soft-man-con").html(con);
}
function alistReadme(){
var readme = '<ul class="help-info-text c7">';
readme += '<li>记住安装时生成的用户+密码</li>';
readme += '</ul>';
$('.soft-man-con').html(readme);
}

View File

@@ -0,0 +1,78 @@
# plugins_cryptocurrency_trade
- https://docs.ccxt.com/en/latest/install.html#python-proxies
数字货币量化交易插件
```
cd /www/server/mdserver-web && python3 plugins/cryptocurrency_trade/ccxt/okex/strategy/st_demo.py
python3 plugins/cryptocurrency_trade/ccxt/okex/strategy/st_demo.py
miniconda3
```
# 免费TV策略
https://cn.tradingview.com/scripts/?script_type=strategies
### tradingview pine 指标
```
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TenCloud
//@version=5
indicator("第一个指标",shorttitle = "开心吧")
ema10 = ta.ema(close, 25)
ema100 = ta.ema(close, 100)
l1=plot(ema10, color=color.red,title = "ema10")
l2=plot(ema100,color = color.green, title = "ema100")
buy = ta.crossover(ema10,ema100)
sell = ta.crossunder(ema10,ema100)
plotchar(buy, text = "buy", color=color.green)
plotchar(sell, text="sell", color=color.red)
l_color = ema10>ema100 ? color.green:color.red
fill(l1,l2,color=color.new(l_color,70))
```
### tradingview pine 策略
```
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TenCloud
//@version=5
strategy("第一个指标",shorttitle = "开心吧", overlay = true, initial_capital = 1000)
ema10 = ta.ema(close, 25)
ema100 = ta.ema(close, 100)
l1=plot(ema10, color=color.red,title = "ema10")
l2=plot(ema100,color = color.green, title = "ema100")
buy = ta.crossover(ema10,ema100)
sell = ta.crossunder(ema10,ema100)
if buy
strategy.entry("long1", strategy.long,1)
if sell
strategy.close("long1", qty_percent = 100,comment = "平仓多单")
// plotchar(buy, text = "buy", color=color.green)
// plotchar(sell, text="sell", color=color.red)
// l_color = ema10>ema100 ? color.green:color.red
// fill(l1,l2,color=color.new(l_color,70))
```

View File

@@ -0,0 +1,555 @@
import ccxt
from datetime import datetime
import time
import sys
import json
import os
import glob
import threading
from pprint import pprint
# print(os.getcwd())
sys.path.append(os.getcwd() + "/class/core")
import mw
# cd /www/server/mdserver-web && source bin/activate
# python3 plugins/cryptocurrency_trade/ccxt/public_data/data.py run
# python3 plugins/cryptocurrency_trade/ccxt/public_data/data.py long
# 查看支持的交易所
# print(ccxt.exchanges)
# 代理设置
# exchange = ccxt.poloniex({
# 'proxies': {
# 'http': 'http://127.0.0.1:1088'
# },
# })
# exchange = ccxt.poloniex()
exchange = ccxt.okex()
def getPluginName():
return 'cryptocurrency_trade'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getConfigData():
cfg_path = getServerDir() + "/data.cfg"
if not os.path.exists(cfg_path):
mw.writeFile(cfg_path, '{}')
t = mw.readFile(cfg_path)
return json.loads(t)
def writeLog(log_str):
if __name__ == "__main__":
print(log_str)
log_file = getServerDir() + '/logs/datasource.log'
mw.writeFileLog(log_str, log_file, 1 * 1024 * 1024)
return True
def isSetDbConf():
data = getConfigData()
if 'db' in data:
return True
return False
def beforeDate(day=360):
dd = time.time() - day * 86400
d = datetime.fromtimestamp(dd)
day = d.strftime("%Y-%m-%d")
return day
def getTextTimeShow(time):
d = datetime.fromtimestamp(time)
day = d.strftime("%Y-%m-%d %H:%M:%S")
return day
def isSqlError(mysqlMsg):
# 检测数据库执行错误
mysqlMsg = str(mysqlMsg)
if "MySQLdb" in mysqlMsg:
return mw.returnJson(False, 'MySQLdb组件缺失! <br>进入SSH命令行输入: pip install mysql-python | pip install mysqlclient==2.0.3')
if "2002," in mysqlMsg:
return mw.returnJson(False, '数据库连接失败,请检查数据库服务是否启动!')
if "2003," in mysqlMsg:
return mw.returnJson(False, "Can't connect to MySQL server on '127.0.0.1' (61)")
if "using password:" in mysqlMsg:
return mw.returnJson(False, '数据库密码错误')
if "1045" in mysqlMsg:
return mw.returnJson(False, '连接错误!')
if "SQL syntax" in mysqlMsg:
return mw.returnJson(False, 'SQL语法错误!')
if "Connection refused" in mysqlMsg:
return mw.returnJson(False, '数据库连接失败,请检查数据库服务是否启动!')
if "1133" in mysqlMsg:
return mw.returnJson(False, '数据库用户不存在!')
if "1007" in mysqlMsg:
return mw.returnJson(False, '数据库已经存在!')
return None
def pMysqlDb():
# pymysql
db = mw.getMyORM()
data = getConfigData()
db_data = data['db']
db.setHost(db_data['db_host'])
db.setPort(db_data['db_port'])
db.setUser(db_data['db_user'])
db.setPwd(db_data['db_pass'])
db.setDbName(db_data['db_name'])
return db
def makeInsertSql(table, item):
sql = "insert into " + table
keyStr = '('
valueStr = ' values('
for i in item:
# print i, item[i]
keyStr += '`' + str(i) + '`,'
valueStr += "'" + str(item[i]) + "',"
keyStrLen = len(keyStr)
keyStr = keyStr[0:keyStrLen - 1]
keyStr += ') '
valueStrLen = len(valueStr)
valueStr = valueStr[0:valueStrLen - 1]
valueStr += ') '
sql += keyStr
sql += valueStr
return sql
def makeReplaceSql(table, item):
sql = "replace into " + table
keyStr = '('
valueStr = ' values('
for i in item:
# print i, item[i]
keyStr += '`' + str(i) + '`,'
valueStr += "'" + str(item[i]) + "',"
keyStrLen = len(keyStr)
keyStr = keyStr[0:keyStrLen - 1]
keyStr += ') '
valueStrLen = len(valueStr)
valueStr = valueStr[0:valueStrLen - 1]
valueStr += ') '
sql += keyStr
sql += valueStr
return sql
def makeUpdateSql(table, item, mid):
sql = "update " + table + " set "
keyStr = ''
for i in item:
keyStr += '`' + str(i) + '`=' + "'" + item[i] + "',"
keyStrLen = len(keyStr)
keyStr = keyStr[0:keyStrLen - 1]
sql += keyStr
sql += " where id = '" + str(mid) + "'"
return sql
def dataToDb(table_name, data):
pdb = pMysqlDb()
for i in data:
rdata = {
'addtime': int(i[0] / 1000),
'open': i[1],
'high': i[2],
'low': i[3],
'close': i[4],
'vol': i[5],
}
# sql = """SELECT id FROM %s where addtime='%s' LIMIT 1""" % (
# table_name, rdata['addtime'])
# fdata = pdb.query(sql)
# if fdata:
# print(table_name + ":" + str(rdata['addtime']) + ", old to db ok")
# else:
# isql = makeReplaceSql(table_name, rdata)
# r = pdb.execute(isql)
# print(table_name + ":" + str(rdata['addtime']) + ", go to db ok")
isql = makeReplaceSql(table_name, rdata)
r = pdb.execute(isql)
# print(table_name + ":" + str(rdata['addtime']) + ", go to db ok")
return True
def makeTableName(input_type="btc", input_tf="1m"):
table_name = "ct_%s_%s" % (input_type, input_tf)
return table_name
def isHasTable(input_type="btc", input_tf="1m"):
pdb = pMysqlDb()
# input_type = 'btc'
# input_tf = '1m'
table_name = makeTableName(input_type, input_tf)
mtable = pdb.query("show tables like '%s'" % (table_name,))
if len(mtable) != 0:
return True
return False
def createSql(input_type="btc", input_tf="1m"):
pdb = pMysqlDb()
# input_type = 'btc'
# input_tf = '1m'
table_name = makeTableName(input_type, input_tf)
mtable = pdb.query("show tables like '%s'" % (table_name,))
if len(mtable) != 0:
return True
sql_tpl = getPluginDir() + "/conf/create.sql"
content = mw.readFile(sql_tpl)
content = content.replace("xx1", input_type)
content = content.replace("xx2", input_tf)
res = pdb.execute(content)
# pprint(res)
return True
def getDataFetch(symbol, start_time="2023-3-1", input_tf="1m", limit=500):
start_time = datetime.strptime(start_time, '%Y-%m-%d')
end_time = datetime.strptime(end_time, '%Y-%m-%d')
start_time_stamp = int(time.mktime(start_time.timetuple())) * 1000
data = exchange.fetch_ohlcv(symbol, timeframe=input_tf,
since=start_time_stamp, limit=limit)
return data
def getPointData(symbol, start_time=1677713220000, input_tf="1m", limit=500):
data = exchange.fetch_ohlcv(
symbol, timeframe=input_tf, since=start_time, limit=limit)
return data
def toUnixTimeSecond(tf="1m"):
if tf.find("m") > -1:
v = int(tf.replace("m", ''))
return v * 60
if tf.find("h") > -1:
v = int(tf.replace("h", ''))
return v * 3600
if tf.find("d") > -1:
v = int(tf.replace("d", ''))
return v * 86400
return 0
def findAndUpdateData(tag, input_tf="1m", start_time="2023-1-1", limit=300):
pdb = pMysqlDb()
table_name = makeTableName(tag, input_tf)
sql = 'SELECT addtime FROM ' + table_name + ' order by addtime desc LIMIT 1'
qdata = pdb.query(sql)
start_time = datetime.strptime(start_time, '%Y-%m-%d')
start_time = int(time.mktime(start_time.timetuple())) * 1000
if len(qdata) != 0:
start_time = int(qdata[0]['addtime']) * 1000
pre_time = toUnixTimeSecond(input_tf) * 5 * 1000
start_time = start_time - pre_time
# pprint(start_time)
symbol = tag.upper() + "/USDT"
data = getPointData(symbol, start_time, input_tf, limit)
# pprint(data)
# print("------------lini===========")
# pprint(data[1:])
if len(qdata) == 1:
data = data[1:]
dataToDb(table_name, data)
now = time.strftime("%m/%d %H:%M:%S")
data_len = len(data)
msg_head = now + "|虚拟币:" + tag + ",tf:" + \
input_tf + "!,总数:" + str(data_len)
writeLog(msg_head)
if data_len > 0:
# print("new data time", data[data_len - 1][0])
dt = getTextTimeShow(data[data_len - 1][0] / 1000)
msg = now + "|最新日期:" + dt
writeLog(msg)
table_name = makeTableName(tag, input_tf)
sql = "SELECT addtime FROM " + table_name + \
" order by addtime desc limit 10000,1"
qdata = pdb.query(sql)
if len(qdata) > 0:
print(qdata)
# input_tf_time = toUnixTimeSecond(input_tf)
# now_t = int(time.time())
# del_before_t = now_t - input_tf_time * 1000
sql = "delete from %s where addtime<'%d' " % (
table_name, qdata[0]['addtime'],)
writeLog("删除冗余数据:" + str(sql))
pdb.execute(sql)
return True
def dataToDbTpl(tag='btc', input_tf="1m", start_time="2023-1-1", limit=300):
# tag = "btc"
# tf = "1m"
# start_time = "2023-1-1"
# end_time = "2023-3-2"
symbol = tag.lower() + '/USDT'
if not isHasTable(tag, input_tf):
createSql(tag, input_tf)
data = getDataFetch(symbol, start_time, input_tf, limit)
table_name = makeTableName(tag, input_tf)
dataToDb(table_name, data)
now = time.strftime("%m/%d %H:%M:%S")
data_len = len(data)
writeLog(now + "|数据获取成功!,总数:" + str(data_len))
else:
findAndUpdateData(tag, input_tf, start_time, limit)
return True
def dataToDbList(input_tf="1m", start_time="2023-1-1"):
data = getConfigData()
if not 'token' in data:
writeLog("未设置同步配置,需要添加币种!")
return
for t in data['token']:
dataToDbTpl(t, input_tf, start_time)
time.sleep(4)
def dataRunToDb():
data = getConfigData()
if not 'db' in data:
writeLog("数据库未设置!")
return
tag = "btc"
symbol = tag.upper() + '/USDT'
# pprint(exchange.fetch_ticker('XRP/USDT'))
limit_count = 1
start_time = "2023-1-1"
end_time = "2023-3-2"
tf = "1m"
if not isHasTable(tag, tf):
createSql(tag, tf)
data = getDataFetch(symbol, start_time, end_time, tf, limit_count)
table_name = makeTableName(tag, tf)
dataToDb(table_name, data)
china_datetime = str(datetime.now())
data_len = len(data)
writeLog(china_datetime + ":数据获取成功!,总数:" + str(data_len))
else:
findAndUpdateData(tag, tf, start_time, 30)
return data
def startTask():
# 任务队列
try:
while True:
time.sleep(5)
except Exception as e:
time.sleep(60)
startTask()
def setDaemon(t):
if sys.version_info.major == 3 and sys.version_info.minor >= 10:
t.daemon = True
else:
t.setDaemon(True)
return t
def dataDay():
try:
while True:
if not isSetDbConf():
print("数据库未设置!")
else:
start_time = beforeDate(2 * 365)
dataToDbList("1d", start_time=start_time)
time.sleep(3600)
# time.sleep(10)
except Exception as e:
time.sleep(60)
dataDay()
def data4h():
try:
while True:
if not isSetDbConf():
print("数据库未设置!")
else:
start_time = beforeDate(365)
dataToDbList("4h", start_time=start_time)
time.sleep(10)
except Exception as e:
time.sleep(60)
data4h()
def data1h():
try:
while True:
if not isSetDbConf():
print("数据库未设置!")
else:
start_time = beforeDate(365)
dataToDbList("1h", start_time=start_time)
time.sleep(10)
except Exception as e:
print(e)
time.sleep(60)
data1h()
def data15m():
try:
while True:
if not isSetDbConf():
print("数据库未设置!")
else:
start_time = beforeDate(365)
dataToDbList("15m", start_time=start_time)
time.sleep(10)
except Exception as e:
time.sleep(60)
data15m()
def data5m():
try:
while True:
if not isSetDbConf():
print("数据库未设置!")
else:
start_time = beforeDate(180)
dataToDbList("5m", start_time=start_time)
time.sleep(10)
except Exception as e:
time.sleep(60)
data5m()
def data1m():
try:
while True:
if not isSetDbConf():
print("数据库未设置!")
else:
start_time = beforeDate(30)
dataToDbList("1m", start_time=start_time)
time.sleep(10)
except Exception as e:
time.sleep(60)
data1m()
def longRun():
# 日线
d1_tt = threading.Thread(target=dataDay)
d1_tt = setDaemon(d1_tt)
d1_tt.start()
# 4h
h4_tt = threading.Thread(target=data4h)
h4_tt = setDaemon(h4_tt)
h4_tt.start()
# 1h
h1_tt = threading.Thread(target=data1h)
h1_tt = setDaemon(h1_tt)
h1_tt.start()
# 15m
m15_tt = threading.Thread(target=data15m)
m15_tt = setDaemon(m15_tt)
m15_tt.start()
# 5m
m5_tt = threading.Thread(target=data5m)
m5_tt = setDaemon(m5_tt)
m5_tt.start()
# 1m
# h1m_tt = threading.Thread(target=data1m)
# h1m_tt = setDaemon(h1m_tt)
# h1m_tt.start()
startTask()
def dataRun():
do_num = 0
while True:
if do_num > 1:
break
do_num = do_num + 1
dataRunToDb()
time.sleep(6)
if __name__ == "__main__":
func = sys.argv[1]
if func == 'run':
data5m()()
elif func == 'long':
longRun()
elif func == 'demo':
writeLog('111')
else:
print('error')

View File

@@ -0,0 +1,12 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curPath=`pwd`
# bash plugins/cryptocurrency_trade/ccxt/public_data/data.sh
if [ -f ${curPath}/bin/activate ];then
source ${curPath}/bin/activate
fi
python3 plugins/cryptocurrency_trade/ccxt/public_data/data.py long

View File

@@ -0,0 +1,19 @@
import time
from datetime import datetime
china_datetime = datetime.now()
print(china_datetime)
# date()
tt = time.time() - 180 * 86400
# print(date("%Y-%m-%d", time.time()))
# t = datetime.strptime(str(time.time() - 180 * 86400), "%Y-%m-%d")
# print(t)
d = datetime.fromtimestamp(tt)
# 精确到毫秒
str1 = d.strftime("%Y-%m-%d")
print(str1)

View File

@@ -0,0 +1,352 @@
import ccxt
import time
import sys
import json
import os
import glob
import threading
import pandas as pd
from decimal import Decimal
from pprint import pprint
from datetime import datetime
# print(os.getcwd())
sys.path.append(os.getcwd() + "/class/core")
import mw
exchange = ccxt.poloniex()
def calc_ClosingPriceWithOutStopLossPrice(open_price, stype='buy', profit=0.5):
# profit 百分比 %
v = 0
vf_len = len(str(open_price).split('.')[1])
if stype == 'buy':
v = open_price * (100 + profit) / 100
else:
v = open_price * (100 - profit) / 100
return round(v, vf_len)
def roundVal(price, compare_price):
price = float(price)
csplite = str(compare_price).split('.')
clen = len(csplite)
if clen == 2:
vf_len = len(csplite[1])
return round(price, vf_len)
return price
def roundValCeil(price, compare_price):
price = float(price)
csplite = str(compare_price).split('.')
clen = len(csplite)
if clen == 2:
vf_len = len(csplite[1]) - 1
return round(price, vf_len)
return price
def multiply(a1, a2):
v = Decimal(str(a1)) * Decimal(str(a2))
return v
def addition(a1, a2):
v = Decimal(str(a1)) + Decimal(str(a2))
return v
def subtract(a1, a2):
v = Decimal(str(a1)) - Decimal(str(a2))
return v
def divided(a1, a2):
v = Decimal(str(a1)) / Decimal(str(a2))
return v
def calc_ClosingPrice(open_price, stop_loss_price, stype='buy', profit=0.5):
# profit 百分比 %
v = 0
vf_len = len(str(open_price).split('.')[1])
if stype == 'buy':
v = open_price * (100 + profit) / 100
diff = open_price - stop_loss_price
profit_price = open_price + diff * 1.5
if profit_price > v:
return round(profit_price, vf_len)
else:
v = open_price * (100 - profit) / 100
diff = stop_loss_price - open_price
profit_price = open_price - diff * 1.5
if profit_price < v:
return round(profit_price, vf_len)
return round(v, vf_len)
def toDateFromInt(time_unix, tf_format="%Y-%m-%d %H:%M:%S", time_zone="Asia/Shanghai"):
# 取格式时间
import time
os.environ['TZ'] = time_zone
time_str = time.localtime(time_unix)
time.tzset()
return time.strftime(tf_format, time_str)
def getPluginName():
return 'cryptocurrency_trade'
def getPluginDir():
return mw.getPluginDir() + '/' + getPluginName()
def getServerDir():
return mw.getServerDir() + '/' + getPluginName()
def getConfigData():
cfg_path = getServerDir() + "/data.cfg"
if not os.path.exists(cfg_path):
mw.writeFile(cfg_path, '{}')
t = mw.readFile(cfg_path)
return json.loads(t)
def getUserCfgData():
data = getConfigData()
if 'user' in data:
try:
udata = mw.deDoubleCrypt('mw', data['user'])
udata = json.loads(udata)
return udata
except Exception as e:
pass
return []
def initEx():
data = getUserCfgData()
# print(data)
if (len(data) > 0):
exchange = ccxt.okex({
"apiKey": data['app_key'],
"secret": data['secret'],
"password": data['password'],
})
return exchange
else:
print("初始化失败,检查原因!")
exchange = ccxt.poloniex()
return exchange
def toUnixTimeSecond(tf="1m"):
if tf.find("m") > -1:
v = int(tf.replace("m", ''))
return v * 60
if tf.find("h") > -1:
v = int(tf.replace("h", ''))
return v * 3600
if tf.find("d") > -1:
v = int(tf.replace("d", ''))
return v * 86400
return 0
def notifyMsg(msg, tf='15m', tag='btc'):
trigger_time = toUnixTimeSecond(tf)
return mw.notifyMessage(msg, '量化交易/' + tag, trigger_time)
def makeTableName(input_type="btc", input_tf="1m"):
table_name = "ct_%s_%s" % (input_type, input_tf,)
return table_name
def writeLog(log_str):
if __name__ == "__main__":
print(log_str)
log_file = getServerDir() + '/logs/strategy.log'
mw.writeFileLog(log_str, log_file)
return True
def writeLogEx(log_str, tag='btc'):
tag = tag.replace('/', '_')
# 各种币的详细API日志
if __name__ == "__main__":
print(log_str)
log_file = getServerDir() + '/logs/strategy_' + tag + '.log'
mw.writeFileLog(log_str, log_file)
return True
def writeLogErrorEx(log_str, tag='btc'):
tag = tag.replace('/', '_')
# 各种币的详细API日志
if __name__ == "__main__":
print(log_str)
log_file = getServerDir() + '/logs/strategy_' + tag + '.err.log'
mw.writeFileLog(log_str, log_file)
return True
def pMysqlDb():
# pymysql
db = mw.getMyORM()
data = getConfigData()
db_data = data['db']
# print(db_data)
db.setHost(db_data['db_host'])
db.setPort(db_data['db_port'])
db.setUser(db_data['db_user'])
db.setPwd(db_data['db_pass'])
db.setDbName(db_data['db_name'])
return db
def getOnlineData(symbol, input_tf="15m", limit=200):
bars = exchange.fetch_ohlcv(symbol, timeframe=input_tf, limit=limit)
df = pd.DataFrame(bars[:], columns=['timestamp',
'open', 'high', 'low', 'close', 'volume'])
df['dt'] = pd.to_datetime(df['timestamp'], unit='ms')
return df
def toDataFrame(data):
# print(data)
data = sorted(data, key=lambda x: x["addtime"], reverse=False)
dfield = ['addtime', 'open', 'high', 'low', 'close']
v = {}
for dx in dfield:
v[dx] = []
for x in data:
for i in range(len(x)):
field = dfield[i]
# print(i, field)
v[field].append(x[field])
# pprint(data)
frame = pd.DataFrame(v)
# frame = frame.sort_values(by=['addtime'])
frame['dt'] = pd.to_datetime(frame['addtime'], unit='s')
frame.set_index('dt', inplace=True)
frame.index = frame.index.tz_localize('UTC').tz_convert('Asia/Shanghai')
return frame
def getDataFromDb(tf="1m", tag='btc', limit=1000):
tn = makeTableName(tag, tf)
sql = 'select addtime,open,high,low,close from ' + \
tn + ' order by addtime desc limit ' + str(limit)
pdb = pMysqlDb()
fdata = pdb.query(sql)
# print(fdata)
return fdata
def getDataFromDb_DF(tf="5m", tag='btc', limit=1000):
data = getDataFromDb(tf, tag, limit)
rdata = toDataFrame(data)
return rdata
# 消息模板类
class MsgTpl():
__name = ''
__strategy_name = ''
__time_frame = ''
__content = ''
__open_time = ''
__strategy_dt = ''
__stop_loss_price = ''
__closing_price = ''
__open_price = ''
__msg = ''
def setName(self, name):
self.__name = name
def setStrategyName(self, name):
self.__strategy_name = name
def setTimeFrame(self, tf):
self.__time_frame = tf
def setContent(self, content):
self.__content = content
def setOpenTime(self, time):
self.__open_time = toDateFromInt(time)
def setStrategicDt(self, stype='buy'):
if stype == 'buy':
self.__strategy_dt = '做多'
else:
self.__strategy_dt = '做空'
def setStopLossPrice(self, price):
self.__stop_loss_price = price
def setClosingPrice(self, price):
self.__closing_price = price
def setOpenPrice(self, price):
self.__open_price = price
def setMsg(self, msg):
self.__msg = msg
def toText(self):
msg = ''
msg += '名称:' + self.__name + "\n"
if self.__strategy_name != '':
msg += '策略名称:' + self.__strategy_name + "\n"
if self.__time_frame != '':
msg += '时间周期:' + self.__time_frame + "\n"
if self.__content != '':
msg += '策略描述:' + self.__content + "\n"
if self.__open_time != '':
msg += '开盘时间:' + self.__open_time + "\n"
if self.__strategy_dt != '':
msg += '开仓方向:' + self.__strategy_dt + "\n"
if self.__open_price != '':
msg += '开仓价:' + str(self.__open_price) + "\n"
if self.__stop_loss_price != '':
msg += '止损价:' + str(self.__stop_loss_price) + "\n"
if self.__closing_price != '':
msg += '止盈价:' + str(self.__closing_price) + "\n"
msg += '发送时间:' + mw.getDateFromNow() + "\n"
if self.__msg != '':
msg += __msg
return msg

View File

@@ -0,0 +1,57 @@
# import ccxt
# import talib
import sys
import os
import time
# import pandas as pd
from pprint import pprint
from decimal import Decimal
sys.path.append(os.getcwd() + "/plugins/cryptocurrency_trade/strategy")
import common
# cd /www/server/mdserver-web && source bin/activate
# python3 plugins/cryptocurrency_trade/ccxt/strategy/func_test.py run
# common.notifyMsg("任务开始")
def toUnixTimeSecond(tf="1m"):
if tf.find("m") > -1:
v = int(tf.replace("m", ''))
return v * 60
if tf.find("h") > -1:
v = int(tf.replace("h", ''))
return v * 3600
if tf.find("d") > -1:
v = int(tf.replace("d", ''))
return v * 86400
return 0
def multiply(a1, a2):
v = Decimal(str(a1)) * Decimal(str(a2))
return v
# print(toUnixTimeSecond("1d"))
# f = 19911.2
# s = common.calc_ClosingPrice(f, 19890.2, 'buy')
# print(s)
# print(sys.version_info)
# os.environ['TZ'] = 'Europe/London'
# time.tzset()
# t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
# print(t)
# v = multiply(26236.8, 0.003)
# print(float(v))
# print(v)
print(float('0.00255234') + float('-0.00000255234'))
v1 = common.addition('0.00255234', '-0.00000255234')
print(v1)

View File

@@ -0,0 +1,440 @@
# cd /www/server/mdserver-web && source bin/activate
# python3 plugins/cryptocurrency_trade/ccxt/strategy/gate_100.py run
# python3 plugins/cryptocurrency_trade/ccxt/strategy/gate_100.py long
import ccxt
import talib
import sys
import os
import time
import json
import pandas as pd
# import pandas_ta as ta
from pprint import pprint
import numpy as np
sys.path.append(os.getcwd() + "/plugins/cryptocurrency_trade/strategy")
import common
sys.path.append(os.getcwd() + "/class/core")
import mw
exchange = ccxt.gate({
"apiKey": '756e1ff80526cb0ac9620c75680fc506',
"secret": '95ac89362056bcf12ce37aabff6eb7ec78185483105f39b4a35e8dc8db8b4d3c',
})
exchange.load_markets()
# 默认开仓数据
# default_open_num = 10
default_open = {
"BTC/USDT": 0.01,
'ETH/USDT': 30,
'DOT/USDT': 30,
'CEL/USDT': 30,
}
default_sell = {
"BTC/USDT": 0.01,
'ETH/USDT': 0.01,
'DOT/USDT': 5,
'CEL/USDT': 85,
}
# 做多开仓
def onBuyOrderTry(symbol, stop_loss_price, profit=0.005, timeframe='15m'):
# 信号只在一个周期内执行一次|start
lock_file = common.getServerDir() + '/signal.json'
if not os.path.exists(lock_file):
mw.writeFile(lock_file, '{}')
stype = symbol.replace('/', '_') + '_' + timeframe
trigger_time = common.toUnixTimeSecond(timeframe)
lock_data = json.loads(mw.readFile(lock_file))
if stype in lock_data:
diff_time = time.time() - lock_data[stype]['do_time']
if diff_time >= trigger_time:
lock_data[stype]['do_time'] = time.time()
else:
return False, 0, 0
else:
lock_data[stype] = {'do_time': time.time()}
mw.writeFile(lock_file, json.dumps(lock_data))
# 信号只在一个周期内执行一次|end
common.writeLogEx('------做多----------------------------------', symbol)
default_open_num = default_open[symbol]
# 做多开仓 | 市价
data = exchange.createMarketBuyOrder(
symbol, default_open_num, {"tdMode": "cross"})
common.writeLogEx('开仓数据:', symbol)
common.writeLogEx(json.dumps(data), symbol)
order_id = data['info']['ordId']
order_data = exchange.fetchOrder(order_id, symbol)
common.writeLogEx('订单数据:', symbol)
common.writeLogEx(json.dumps(order_data), symbol)
# 实际开场平均价
open_price = order_data['info']['avgPx']
# 做多-止损价大于开仓价,重设止损价
if float(stop_loss_price) <= float(open_price):
stop_loss_price = float(open_price) * float((1 - 0.003))
# property_val = float(order_data['info']['accFillSz']) + float(order_data['info']['fee'])
property_val = common.addition(
order_data['info']['accFillSz'], order_data['info']['fee'])
property_val = float(property_val)
# 可平仓的数量
property_val = common.roundValCeil(
property_val, order_data['info']['accFillSz'])
common.writeLogEx('可平仓资产:' + str(property_val), symbol)
# 止盈价
diff = float(open_price) - float(stop_loss_price)
closing_price_c = float(open_price) + (diff * 2)
closing_price = float(open_price) * float((1 + profit))
# 选择盈利多的
if closing_price_c > closing_price:
closing_price = closing_price_c
closing_price = common.roundVal(closing_price, stop_loss_price)
# stop_loss_price = common.roundVal(stop_loss_price, open_price)
common.writeLogEx('实际开仓价:' + str(open_price), symbol)
common.writeLogEx('止盈价:' + str(closing_price), symbol)
common.writeLogEx('止损价:' + str(stop_loss_price), symbol)
# 设置 - 止损价/止盈价
sl_exchange_params = {
'ccy': "USDT",
'reduceOnly': True,
'tdMode': "cross",
'slOrdPx': "-1",
'slTriggerPx': stop_loss_price,
}
# 止损条件单
common.writeLogEx('止损参数:' + json.dumps([symbol, 'limit', 'sell',
property_val, stop_loss_price, sl_exchange_params]), symbol)
sl_cond_data = exchange.create_order(
symbol, 'limit', 'sell', property_val, stop_loss_price, sl_exchange_params)
common.writeLogEx('止损价数据:', symbol)
common.writeLogEx(json.dumps(sl_cond_data), symbol)
# 止赢条件单
tp_exchange_params = {
'ccy': "USDT",
'reduceOnly': True,
'tdMode': "cross",
'tpOrdPx': "-1",
'tpTriggerPx': closing_price,
}
common.writeLogEx('止盈参数:' + json.dumps([symbol, 'limit', 'sell',
property_val, closing_price, tp_exchange_params]), symbol)
tp_cond_data = exchange.create_order(
symbol, 'limit', 'sell', property_val, closing_price, tp_exchange_params)
common.writeLogEx('止赢数据:', symbol)
common.writeLogEx(json.dumps(tp_cond_data), symbol)
common.writeLogEx('------做多 end----------------------------------', symbol)
return True, open_price, closing_price
def onBuyOrder(symbol, stop_loss_price, profit=0.005, timeframe='15m'):
# 做多开仓
# profit 百分比
try:
return onBuyOrderTry(symbol, stop_loss_price, profit, timeframe)
except Exception as e:
common.writeLogErrorEx(mw.getTracebackInfo(), symbol)
return False, 0, 0
def onSellOrderTry(symbol, stop_loss_price, profit=0.005, timeframe='15m'):
# 信号只在一个周期内执行一次|start
lock_file = common.getServerDir() + '/signal.json'
if not os.path.exists(lock_file):
mw.writeFile(lock_file, '{}')
stype = symbol.replace('/', '_') + '_' + timeframe
trigger_time = common.toUnixTimeSecond(timeframe)
lock_data = json.loads(mw.readFile(lock_file))
if stype in lock_data:
diff_time = time.time() - lock_data[stype]['do_time']
if diff_time >= trigger_time:
lock_data[stype]['do_time'] = time.time()
else:
return False, 0, 0
else:
lock_data[stype] = {'do_time': time.time()}
mw.writeFile(lock_file, json.dumps(lock_data))
# 信号只在一个周期内执行一次|end
common.writeLogEx('------做空----------------------------------', symbol)
# 计算借币卖币多多少,以USDT为基准
# sell_num = float(default_open_num) / float(stop_loss_price)
# sell_num = round(sell_num, 8)
sell_num = default_sell[symbol]
# 做空开仓 | 市价
data = exchange.createMarketSellOrder(
symbol, sell_num, {"tdMode": "cross", 'ccy': "USDT"})
common.writeLogEx('开仓数据:', symbol)
common.writeLogEx(json.dumps(data), symbol)
order_id = data['info']['ordId']
order_data = exchange.fetchOrder(order_id, symbol)
common.writeLogEx('订单数据:', symbol)
common.writeLogEx(json.dumps(order_data), symbol)
# 实际开场平均价
open_price = order_data['info']['avgPx']
common.writeLogEx('可平仓资产:' + str(sell_num), symbol)
# 做空-止损价小于开仓价,重设止损价
if float(stop_loss_price) <= float(open_price):
stop_loss_price = float(open_price) * float((1 + 0.003))
# 止盈价
diff = float(stop_loss_price) - float(open_price)
closing_price_c = float(open_price) - (diff * 2)
closing_price = float(open_price) * float((1 - profit))
# 选择盈利多的
if closing_price_c < closing_price:
closing_price = closing_price_c
closing_price = common.roundVal(closing_price, open_price)
stop_loss_price = common.roundVal(stop_loss_price, open_price)
common.writeLogEx('实际开仓价:' + str(open_price), symbol)
common.writeLogEx('止盈价:' + str(closing_price), symbol)
common.writeLogEx('止损价:' + str(stop_loss_price), symbol)
# 设置 - 止损价
sl_exchange_params = {
'ccy': "USDT",
'reduceOnly': True,
'tdMode': "cross",
'slOrdPx': "-1",
'slTriggerPx': stop_loss_price,
}
sl_amount = common.multiply(stop_loss_price, sell_num)
# 解决平仓时,未全部平仓
sl_amount = common.addition(sl_amount, 0.1)
common.writeLogEx('止损总价值:' + str(sl_amount), symbol)
common.writeLogEx('止损参数:' + json.dumps([symbol, 'limit', 'buy', float(
sl_amount), stop_loss_price, sl_exchange_params]), symbol)
sl_cond_data = exchange.create_order(
symbol, 'limit', 'buy', sl_amount, stop_loss_price, sl_exchange_params)
common.writeLogEx('止损价数据:', symbol)
common.writeLogEx(json.dumps(sl_cond_data), symbol)
tp_exchange_params = {
'ccy': "USDT",
'reduceOnly': True,
'tdMode': "cross",
'tpOrdPx': "-1",
'tpTriggerPx': closing_price,
}
# 设置 -止盈价
tp_amount = common.multiply(closing_price, sell_num)
# 解决平仓时,未全部平仓
tp_amount = common.addition(tp_amount, 0.1)
common.writeLogEx('止盈总价值:' + str(tp_amount), symbol)
common.writeLogEx('止盈参数:' + json.dumps([symbol, 'limit', 'buy', float(
tp_amount), closing_price, tp_exchange_params]), symbol)
tp_cond_data = exchange.create_order(
symbol, 'limit', 'buy', tp_amount, closing_price, tp_exchange_params)
common.writeLogEx('止盈价数据:', symbol)
common.writeLogEx(json.dumps(tp_cond_data), symbol)
common.writeLogEx('------做空 end----------------------------------', symbol)
return True, open_price, closing_price
def onSellOrder(symbol, stop_loss_price, profit=0.005, timeframe='15m'):
# 做空开仓
# profit 百分比
try:
return onSellOrderTry(symbol, stop_loss_price, profit, timeframe)
except Exception as e:
common.writeLogErrorEx(mw.getTracebackInfo(), symbol)
return False, 0, 0
def getOnlineData(symbol, input_tf="15m", limit=230):
bars = exchange.fetch_ohlcv(symbol, timeframe=input_tf, limit=limit)
df = pd.DataFrame(bars[:], columns=['timestamp',
'open', 'high', 'low', 'close', 'volume'])
df['dt'] = pd.to_datetime(df['timestamp'], unit='ms')
df.set_index('dt', inplace=True)
df.index = df.index.tz_localize('UTC').tz_convert('Asia/Shanghai')
return df
def isKdj(last, last_pre):
# 判断是否是金叉
if (float(last_pre['macd']) < 0) and (float(last['macd']) > 0):
return True
return False
def isDeadFork(last, last_pre):
# 判断是否是死叉
if (float(last_pre['macd']) > 0) and (float(last['macd']) < 0):
return True
return False
def getMACD(df, lenght=-60):
if len(df['close'].values) < 100:
return False, None
close_p = df['close'].values
df['dif'], df['dea'], df['macd'] = talib.MACD(close_p,
fastperiod=12,
slowperiod=26,
signalperiod=9)
return df[lenght:]
def getEMA(df):
close_p = df['close'].values
df['ema'] = talib.EMA(np.array(close_p), timeperiod=200)
return df
def doneMacd(data, tag, timeframe):
data = getEMA(data)
ma_data = getMACD(data)
# alen = len(data)
# print(ma_data)
t_data = ma_data.tail(3)
print(t_data)
last_pre = t_data.iloc[0]
last = t_data.iloc[1]
print(last)
# print(last.index)
# print('close:', last['close'], 'ema:', last['ema'])
obj = common.MsgTpl()
symbol = tag.upper() + '/USDT'
obj.setName(symbol)
obj.setStrategyName("MACD检查")
obj.setTimeFrame(timeframe)
obj.setOpenTime(last['timestamp'] / 1000)
now_data = t_data.iloc[2]
# print('now_data:', now_data)
# msg = obj.toText()
# print(msg)
if isKdj(last, last_pre) and last['close'] > last['ema']:
# if isKdj(last, last_pre):
# closing_price = common.calc_ClosingPrice(
# now_data['close'], last_pre['low'], 'buy')
# # print('closing_price:', closing_price)
# 做多止损点
stop_loss_price = last_pre['low']
buy_status, open_price, closing_price = onBuyOrder(
symbol, stop_loss_price, 0.005, timeframe)
if buy_status:
obj.setStrategicDt('buy')
# 做多止损点
obj.setStopLossPrice(str(stop_loss_price))
obj.setOpenPrice(str(open_price))
obj.setClosingPrice(str(closing_price))
obj.setContent("检查到金叉状态")
msg = obj.toText()
print(msg)
common.notifyMsg(msg, timeframe, tag)
common.writeLog(msg)
if isDeadFork(last, last_pre) and last['close'] < last['ema']:
# if isDeadFork(last, last_pre):
# closing_price = common.calc_ClosingPrice(
# now_data['close'], last_pre['high'], 'sell')
# 做空止损点
stop_loss_price = last_pre['high']
sell_status, open_price, closing_price = onSellOrder(
symbol, stop_loss_price, 0.005, timeframe)
if sell_status:
obj.setStopLossPrice(str(stop_loss_price))
obj.setOpenPrice(str(open_price))
obj.setClosingPrice(str(closing_price))
obj.setStrategicDt('sell')
obj.setContent("检查到死叉状态")
msg = obj.toText()
print(msg)
common.notifyMsg(msg, timeframe, tag)
common.writeLog(msg)
def mainProcess(tag, timeframe='15m'):
symbol = tag.upper() + '/USDT'
data = getOnlineData(symbol, timeframe)
doneMacd(data, tag, timeframe)
def foreachList():
tag_list = ['btc']
for tag in tag_list:
mainProcess(tag, '15m')
time.sleep(1)
def longRun():
while True:
foreachList()
time.sleep(3)
def debug():
while True:
mainProcess('xrp', '1m')
time.sleep(3)
if __name__ == "__main__":
func = sys.argv[1]
if func == 'long':
longRun()
elif func == 'run':
debug()
else:
print('error')

View File

@@ -0,0 +1,138 @@
import ccxt
import talib
import sys
import os
import time
import pandas as pd
import pandas_ta as ta
from pprint import pprint
sys.path.append(os.getcwd() + "/plugins/cryptocurrency_trade/strategy")
import common
# cd /www/server/mdserver-web && source bin/activate
# python3 plugins/cryptocurrency_trade/ccxt/strategy/hammer_robot.py run
pd.set_option('display.max_rows', None)
exchange = common.initEx()
exchange.load_markets()
entry_rsi = 30
exit_rsi = 40
symbol = 'XRP/USDT'
timeframe = '15m'
tf_mult = exchange.parse_timeframe(timeframe) * 1000
def indicators(data):
data['rsi'] = data.ta.rsi(length=10)
data['ema'] = data.ta.ema(length=200)
# close_p = data['close'].values
# data['rsi'] = talib.RSI(close_p, timeperiod=10)
# data['ema'] = talib.EMA(close_p, timeperiod=200)
return data
def check_buy_sell_signals(df):
last_row_index = len(df.index) - 1
lastest_rsi = round(df['rsi'].iloc[-1], 2)
lastest_price = round(df['close'].iloc[-1], 5)
lastest_ema = round(df['ema'].iloc[-1], 5)
lastest_ts = df['timestamp'].iloc[-1]
msg = "lastest_rsi:" + str(lastest_rsi) + " < entry_rsi:" + str(entry_rsi)
msg += ",lastest_price:" + \
str(lastest_price) + " > lastest_ema:" + str(lastest_ema)
print(msg)
long_cond = (lastest_rsi < entry_rsi) and (lastest_price > lastest_ema)
if long_cond:
print("买入")
order = exchange.create_market_buy_order(symbol, 1)
closed_orders = exchange.fetchClosedOrders(symbol, limit=2)
if len(closed_orders) > 0:
print("closed_orders:", closed_orders)
most_recent_closed_order = closed_orders[-1]
diff = lastest_ts - most_recent_closed_order['timestamp']
last_buy_signal_cnt = int(diff / tf_mult)
exit_cond = (lastest_rsi > exit_rsi) and (last_buy_signal_cnt > 10)
if exit_cond:
print("卖出")
order = exchange.create_market_sell_order(symbol, 1)
return
def get_hammer(df, lenght):
# 影线要大于body的多少倍
factor = 2
hl_range = df['high'] - df['low']
body_hi = df.apply(lambda x: max(x['close'], x['open']), axis=1)
body_lo = df.apply(lambda x: min(x['close'], x['open']), axis=1)
body = body_hi - body_lo
body_avg = ta.ema(body, lenght=lenght)
small_body = body < body_avg
# 上下影线站body的百分比
shadow_percent = 10
# 上影线
up_shadow = df['high'] - body_hi
dn_shadow = body_lo - df['low']
has_up_shadow = up_shadow > shadow_percent / 100 * body
has_dn_shadow = dn_shadow > shadow_percent / 100 * body
downtrend = df['close'] < ta.ema(df['close'], 50)
bullish_hammer = downtrend & small_body & (body > 0) & (
dn_shadow >= factor * body) & (has_up_shadow == False)
return bullish_hammer
def runBot():
bars = exchange.fetch_ohlcv(symbol, timeframe=timeframe, limit=200)
df = pd.DataFrame(bars[:], columns=['timestamp',
'open', 'high', 'low', 'close', 'volume'])
# format='%Y-%m-%d %H:%M:%S',
df['dt'] = pd.to_datetime(
df['timestamp'], unit="ms")
df['hammer'] = get_hammer(df, 10)
lastest_hammer = df.iloc[-1, -1]
lastest_price = df.iloc[-1, 0]
print("lastest_price:" + str(lastest_price))
print("lastest_hammer:" + str(lastest_hammer))
print(df.tail())
if lastest_hammer:
print("购买,做多")
notifyMsg("购买,做多")
def longRunBot():
common.notifyMsg("任务开始")
while True:
runBot()
time.sleep(10)
if __name__ == "__main__":
func = sys.argv[1]
if func == 'run':
longRunBot()
else:
print('error')

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