mirror of
https://github.com/PhyreApps/PhyrePanel.git
synced 2025-04-20 11:23:39 +00:00
Compare commits
958 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
feaf2e2e53 | ||
![]() |
ca2320d814 | ||
![]() |
e4bbe14d22 | ||
![]() |
017cc606e4 | ||
![]() |
253bbc5d29 | ||
![]() |
4dac3e94b6 | ||
![]() |
da16176eb8 | ||
![]() |
0d04d49b22 | ||
![]() |
81644287b5 | ||
![]() |
de9c2d774b | ||
![]() |
0ca205963d | ||
![]() |
ae5147bdb1 | ||
![]() |
f3e462e1c2 | ||
![]() |
7cfd6129ed | ||
![]() |
b50571fc22 | ||
![]() |
419e941397 | ||
![]() |
7fcca4f35a | ||
![]() |
cd6af66256 | ||
![]() |
c05545c631 | ||
![]() |
855b4e31c8 | ||
![]() |
fb866221fd | ||
![]() |
d1575a43a3 | ||
![]() |
e4718323be | ||
![]() |
2fe31c7c30 | ||
![]() |
3068292054 | ||
![]() |
ccb60d378e | ||
![]() |
4a4f18f2f8 | ||
![]() |
e1a423e975 | ||
![]() |
9a3e18468b | ||
![]() |
6891b398c5 | ||
![]() |
eb3f2d2803 | ||
![]() |
e891eed89d | ||
![]() |
ee669c1c65 | ||
![]() |
36a43cf767 | ||
![]() |
96353958aa | ||
![]() |
ef9fb0ce4a | ||
![]() |
126a0977d2 | ||
![]() |
d7ad9b8016 | ||
![]() |
12ff24788f | ||
![]() |
1027cd07b6 | ||
![]() |
0c2e03cdb6 | ||
![]() |
90265e9339 | ||
![]() |
df1e5505b4 | ||
![]() |
74cafabdb9 | ||
![]() |
1f58351010 | ||
![]() |
29d8172110 | ||
![]() |
726202d057 | ||
![]() |
2a6e395514 | ||
![]() |
1cb955b6d6 | ||
![]() |
64b0c73fdc | ||
![]() |
f825d63b91 | ||
![]() |
55c98cf6de | ||
![]() |
71222928b9 | ||
![]() |
ad9f885235 | ||
![]() |
ad81ba4e12 | ||
![]() |
5a96af2d27 | ||
![]() |
85e8c3781a | ||
![]() |
0fc0055ac3 | ||
![]() |
276e626df1 | ||
![]() |
f4076677d1 | ||
![]() |
4d8ffe00d1 | ||
![]() |
771ba59ea9 | ||
![]() |
3381394009 | ||
![]() |
e5725a94a8 | ||
![]() |
17c37eef1b | ||
![]() |
d3745f24ae | ||
![]() |
04b1c880df | ||
![]() |
e5591576fe | ||
![]() |
2ba5ecbc7c | ||
![]() |
5d9e96bcf3 | ||
![]() |
13ac4e603d | ||
![]() |
cc229b6ce5 | ||
![]() |
2b918a5116 | ||
![]() |
cfab2284fb | ||
![]() |
14d63de60c | ||
![]() |
386ff1242c | ||
![]() |
235161f014 | ||
![]() |
bb24afcd62 | ||
![]() |
2e16714685 | ||
![]() |
792602a572 | ||
![]() |
164e9590ff | ||
![]() |
006afa3aa5 | ||
![]() |
ce3bb2b609 | ||
![]() |
a7ddd77f10 | ||
![]() |
15bfb0e788 | ||
![]() |
c76c018f67 | ||
![]() |
a178a72e7a | ||
![]() |
022bc67fe8 | ||
![]() |
9f294b0bf3 | ||
![]() |
49e2418469 | ||
![]() |
0db80728e1 | ||
![]() |
c42b143867 | ||
![]() |
06e792b5dc | ||
![]() |
09240080a0 | ||
![]() |
8d92fed232 | ||
![]() |
ef1b4d325a | ||
![]() |
3cf9d1cc4b | ||
![]() |
8e9abe546c | ||
![]() |
851a155894 | ||
![]() |
bb2fa1a0a4 | ||
![]() |
04eb1c7e3d | ||
![]() |
afc87ede66 | ||
![]() |
d6c85dc426 | ||
![]() |
295f29af85 | ||
![]() |
bca5682070 | ||
![]() |
c93f8c5671 | ||
![]() |
9d4c005269 | ||
![]() |
93716d3379 | ||
![]() |
d993926142 | ||
![]() |
0ee005948d | ||
![]() |
453de79e75 | ||
![]() |
8cf10cb488 | ||
![]() |
e3653b4883 | ||
![]() |
1266a854ea | ||
![]() |
f20f21bf11 | ||
![]() |
c3cc2be24a | ||
![]() |
bff4a7e6f4 | ||
![]() |
78bbe763ef | ||
![]() |
6c24c44d5e | ||
![]() |
ba6f4a635c | ||
![]() |
f77503b786 | ||
![]() |
d75d7f0787 | ||
![]() |
55fc6a7af4 | ||
![]() |
a3278130b8 | ||
![]() |
296247008e | ||
![]() |
1d38f7c008 | ||
![]() |
5a02f9ac46 | ||
![]() |
3b93dcf070 | ||
![]() |
f0c4d090ab | ||
![]() |
68fb3724db | ||
![]() |
7695c5f7ea | ||
![]() |
872bd8443c | ||
![]() |
e6b0f612c4 | ||
![]() |
6f4a5e92b6 | ||
![]() |
fdbf732ec4 | ||
![]() |
a2039f7946 | ||
![]() |
b881e9bc48 | ||
![]() |
a459bfa1f8 | ||
![]() |
0ac9e02c53 | ||
![]() |
ac505f80a5 | ||
![]() |
61cef2a0b2 | ||
![]() |
415a1a4ca7 | ||
![]() |
0b391d127d | ||
![]() |
5bd22bec73 | ||
![]() |
56f25aacee | ||
![]() |
824cc954fd | ||
![]() |
04cf3a396e | ||
![]() |
cfe8e24bdd | ||
![]() |
4e6847e331 | ||
![]() |
4000ad1af9 | ||
![]() |
a92b135780 | ||
![]() |
d33c57eb9b | ||
![]() |
aff7b4986b | ||
![]() |
e5fa7f7798 | ||
![]() |
1dfc9e93dd | ||
![]() |
29b6db9ec8 | ||
![]() |
9990d43272 | ||
![]() |
4816d4a8e4 | ||
![]() |
cee2359b14 | ||
![]() |
069f72329e | ||
![]() |
904e659350 | ||
![]() |
1c0dee251e | ||
![]() |
9706b3d43b | ||
![]() |
1259773e05 | ||
![]() |
524336fd3c | ||
![]() |
8752cbd0a2 | ||
![]() |
9f92d11be3 | ||
![]() |
ffaab8de57 | ||
![]() |
cec3b22168 | ||
![]() |
1f630813ac | ||
![]() |
2bcceb0ed5 | ||
![]() |
0101dedfe8 | ||
![]() |
77d4cc1b9b | ||
![]() |
91786a2433 | ||
![]() |
e3b77495c2 | ||
![]() |
c36d7f4530 | ||
![]() |
e90d6e566e | ||
![]() |
9981995c11 | ||
![]() |
2b546583b6 | ||
![]() |
ae20c3d7b8 | ||
![]() |
72a361081e | ||
![]() |
ab7c240101 | ||
![]() |
8f54926b44 | ||
![]() |
99adad61bc | ||
![]() |
05b08a62c3 | ||
![]() |
018c743a07 | ||
![]() |
57f144d093 | ||
![]() |
fb32352ea1 | ||
![]() |
244b6974a9 | ||
![]() |
3fbd58281e | ||
![]() |
887dbc2cb5 | ||
![]() |
aec8aa85f1 | ||
![]() |
57d0ce6231 | ||
![]() |
725953c16b | ||
![]() |
2d37abcc83 | ||
![]() |
3f60580d59 | ||
![]() |
169bfbbecc | ||
![]() |
0f1dd7a848 | ||
![]() |
925cb4ea1a | ||
![]() |
89b94eb86c | ||
![]() |
1fd03997a5 | ||
![]() |
e8dc629c9c | ||
![]() |
adbbc0416f | ||
![]() |
d37bef54f2 | ||
![]() |
145064f148 | ||
![]() |
47c651251f | ||
![]() |
f99c200e56 | ||
![]() |
90a2762150 | ||
![]() |
f2f7dc815e | ||
![]() |
1441eaa6e4 | ||
![]() |
aff951e9d6 | ||
![]() |
c274d89d5f | ||
![]() |
7126c143e8 | ||
![]() |
cc513faf36 | ||
![]() |
4d4820b56a | ||
![]() |
f18c2b6701 | ||
![]() |
795fba3715 | ||
![]() |
371619c6d3 | ||
![]() |
732606270a | ||
![]() |
5d42587168 | ||
![]() |
cff063b61a | ||
![]() |
4ca4c7b04a | ||
![]() |
6218b9f602 | ||
![]() |
5d2f2c0c9b | ||
![]() |
f8efe85ab6 | ||
![]() |
5db9264ded | ||
![]() |
aa2c3d3ee8 | ||
![]() |
86ce72ea1f | ||
![]() |
d858607617 | ||
![]() |
a4dc759a96 | ||
![]() |
27d137b636 | ||
![]() |
1c7796b9e9 | ||
![]() |
c537046640 | ||
![]() |
6ae9e2eb62 | ||
![]() |
36d4e283ed | ||
![]() |
fd51132c4f | ||
![]() |
225f9beb4e | ||
![]() |
538adb73c5 | ||
![]() |
b0aa66e756 | ||
![]() |
14f2d0cd20 | ||
![]() |
ce62ec5ab1 | ||
![]() |
5799c99f10 | ||
![]() |
5fd2460aa2 | ||
![]() |
c52d63b7af | ||
![]() |
e9ec04b654 | ||
![]() |
55b8d6e356 | ||
![]() |
6241f2c85c | ||
![]() |
97483c85f2 | ||
![]() |
a2c83d02a8 | ||
![]() |
d2e9dc8c37 | ||
![]() |
d8778b30cc | ||
![]() |
9718506b3b | ||
![]() |
29493603b4 | ||
![]() |
c71ec174d4 | ||
![]() |
bb8d43e71e | ||
![]() |
c5a3cbcb53 | ||
![]() |
2e59570736 | ||
![]() |
e062e53e51 | ||
![]() |
d1feb95eef | ||
![]() |
058b71631e | ||
![]() |
daf5998568 | ||
![]() |
3839d5cb98 | ||
![]() |
825fd7d050 | ||
![]() |
1f29b62827 | ||
![]() |
f1bd79a49b | ||
![]() |
d6520528db | ||
![]() |
1feb3fd143 | ||
![]() |
177dba0eb5 | ||
![]() |
b9f3d0c90c | ||
![]() |
a69830193e | ||
![]() |
9d79bbec67 | ||
![]() |
b46e238c20 | ||
![]() |
9d483b0aad | ||
![]() |
4c5cd167de | ||
![]() |
2992ad7803 | ||
![]() |
be08dcc2bf | ||
![]() |
f369197a2e | ||
![]() |
a6a451a726 | ||
![]() |
6af4550aa0 | ||
![]() |
70efb21041 | ||
![]() |
242649aa9e | ||
![]() |
285adb3674 | ||
![]() |
17bf284b30 | ||
![]() |
080c13b8af | ||
![]() |
3dd566bb68 | ||
![]() |
dbadbdf219 | ||
![]() |
d885cac70f | ||
![]() |
d69d6ee575 | ||
![]() |
1eb461f6b3 | ||
![]() |
5abe09bef6 | ||
![]() |
49cf3ffeca | ||
![]() |
41e1d91553 | ||
![]() |
297fe6e6cd | ||
![]() |
382a38da60 | ||
![]() |
fe7fd2d4b5 | ||
![]() |
7eb01fa7bd | ||
![]() |
ffe218b839 | ||
![]() |
126b4ae3bf | ||
![]() |
62dc529b7f | ||
![]() |
3b50de3715 | ||
![]() |
eebdf2cdc0 | ||
![]() |
d886edb47c | ||
![]() |
e918c6457e | ||
![]() |
8f2db60f28 | ||
![]() |
a49ec02e55 | ||
![]() |
4a773e1f1d | ||
![]() |
28647b38fd | ||
![]() |
e1091f2802 | ||
![]() |
720859064c | ||
![]() |
830ee55ddd | ||
![]() |
912b209934 | ||
![]() |
dc424ae0bc | ||
![]() |
8c6ba29718 | ||
![]() |
e0291b5d8f | ||
![]() |
0ab0d12b08 | ||
![]() |
3d466e16ea | ||
![]() |
edd704875a | ||
![]() |
4805973dd7 | ||
![]() |
323c8e066f | ||
![]() |
be2163a9cf | ||
![]() |
6f11754221 | ||
![]() |
9c6c3795cd | ||
![]() |
ed8b0fb50d | ||
![]() |
c4fa067577 | ||
![]() |
8bb6cfda37 | ||
![]() |
a0daa4052f | ||
![]() |
139a20a584 | ||
![]() |
74360aee69 | ||
![]() |
e1a76cf8b5 | ||
![]() |
91a2cc8240 | ||
![]() |
c6403abd86 | ||
![]() |
b11e16b72e | ||
![]() |
a600030e07 | ||
![]() |
17d5b118e1 | ||
![]() |
14b939fa8e | ||
![]() |
08f84c2829 | ||
![]() |
a0b96b6d95 | ||
![]() |
6453687bce | ||
![]() |
4818c9d37e | ||
![]() |
733f6ca2eb | ||
![]() |
9ecdde0957 | ||
![]() |
3eaf9fd96b | ||
![]() |
cf6095d9c6 | ||
![]() |
0c699059f5 | ||
![]() |
02da12b234 | ||
![]() |
64f47b7fe4 | ||
![]() |
b2c13ba836 | ||
![]() |
890f824c06 | ||
![]() |
6b3017177d | ||
![]() |
723f0f9201 | ||
![]() |
29c4bf743b | ||
![]() |
4cb1f92ab9 | ||
![]() |
d8bd0c26ac | ||
![]() |
8e788fc484 | ||
![]() |
2cd6780495 | ||
![]() |
427442c142 | ||
![]() |
7cc50168d6 | ||
![]() |
c14e1e7188 | ||
![]() |
df3d15aa9a | ||
![]() |
d828dd0a1e | ||
![]() |
9119906f2a | ||
![]() |
6c3e9cf4cc | ||
![]() |
cbaa87ebd9 | ||
![]() |
d11a162f97 | ||
![]() |
42f850fef0 | ||
![]() |
ee90204394 | ||
![]() |
12cc46eee8 | ||
![]() |
13c729a625 | ||
![]() |
f77ccb6929 | ||
![]() |
b80f6d04ca | ||
![]() |
d7b4206599 | ||
![]() |
0187704576 | ||
![]() |
76ab0a13c1 | ||
![]() |
1ef47fe0c4 | ||
![]() |
5fc729a263 | ||
![]() |
5b6e4e1b98 | ||
![]() |
93e54f8a72 | ||
![]() |
4cabbd2de2 | ||
![]() |
f83517c840 | ||
![]() |
a767683185 | ||
![]() |
801b6d5264 | ||
![]() |
7b5f5ea5bf | ||
![]() |
f5b95ee256 | ||
![]() |
171215bd9b | ||
![]() |
aaa742d295 | ||
![]() |
4f5055417a | ||
![]() |
71f1485fb9 | ||
![]() |
b6cd84741f | ||
![]() |
ee7a04b481 | ||
![]() |
ab61cb896e | ||
![]() |
5ddcbda1ef | ||
![]() |
7fbe01ed0c | ||
![]() |
832d4df196 | ||
![]() |
8454632764 | ||
![]() |
db44c94e02 | ||
![]() |
2a2fd0e9c6 | ||
![]() |
5ed56729e1 | ||
![]() |
03b74bca6e | ||
![]() |
081be75a49 | ||
![]() |
c2979e6907 | ||
![]() |
76e55f3056 | ||
![]() |
0721e10c33 | ||
![]() |
1f9f4551a3 | ||
![]() |
2bdb7a37ba | ||
![]() |
cfe46d19a9 | ||
![]() |
4cfdf458a8 | ||
![]() |
2c75d8dd01 | ||
![]() |
7aa1a5b187 | ||
![]() |
78a5418b33 | ||
![]() |
43da9f9a29 | ||
![]() |
63709b2d77 | ||
![]() |
512615d77a | ||
![]() |
b71486c882 | ||
![]() |
35158c08ad | ||
![]() |
5ff638a748 | ||
![]() |
efcc55db12 | ||
![]() |
aebb12c9bb | ||
![]() |
09c9d6e504 | ||
![]() |
828bf159f0 | ||
![]() |
c8e653752b | ||
![]() |
447ef86c52 | ||
![]() |
dca4d1cdcc | ||
![]() |
88edbd7cf4 | ||
![]() |
c161177407 | ||
![]() |
9c91d57aba | ||
![]() |
c7ff1ae87c | ||
![]() |
688b30de6b | ||
![]() |
869c006533 | ||
![]() |
b210b920b7 | ||
![]() |
8e30afebe4 | ||
![]() |
f03f360a1e | ||
![]() |
443c478315 | ||
![]() |
d44efc9001 | ||
![]() |
62b99e83f7 | ||
![]() |
13b0a23801 | ||
![]() |
3284412b68 | ||
![]() |
ab11e22ae1 | ||
![]() |
2a22a991e4 | ||
![]() |
b24ecce9cf | ||
![]() |
70afeb94a4 | ||
![]() |
ed6ebd4ea4 | ||
![]() |
5c5a713c8a | ||
![]() |
428be59c5e | ||
![]() |
8b30260fb9 | ||
![]() |
b04935fdbb | ||
![]() |
b1952c463b | ||
![]() |
2106c9dfa2 | ||
![]() |
079e3486e0 | ||
![]() |
5e1e8cb2a5 | ||
![]() |
0e743f6978 | ||
![]() |
32ae04766f | ||
![]() |
a54424e03d | ||
![]() |
a487d80cbd | ||
![]() |
b9ae90c9f9 | ||
![]() |
83e312d064 | ||
![]() |
567652dd10 | ||
![]() |
6187b8c1af | ||
![]() |
25463d66b1 | ||
![]() |
2417384b41 | ||
![]() |
799e90f05f | ||
![]() |
0bf0263b7d | ||
![]() |
17aa60351a | ||
![]() |
e9570ef332 | ||
![]() |
6a7bdd523e | ||
![]() |
57379ac034 | ||
![]() |
08087255eb | ||
![]() |
09416aa23f | ||
![]() |
3d483c0dcc | ||
![]() |
f1aeeba229 | ||
![]() |
909ed5ba70 | ||
![]() |
58856b8ae4 | ||
![]() |
8bd55a3156 | ||
![]() |
19044ca3f5 | ||
![]() |
479fcfc236 | ||
![]() |
497f515f51 | ||
![]() |
5acaf6a7cc | ||
![]() |
bdd02906d8 | ||
![]() |
644bfd51be | ||
![]() |
1128ce8613 | ||
![]() |
e6f466a13d | ||
![]() |
046630bb23 | ||
![]() |
2c7bae7858 | ||
![]() |
77d98233cb | ||
![]() |
5568bafa53 | ||
![]() |
2610c48c79 | ||
![]() |
fecbf7255e | ||
![]() |
a40dc79b2e | ||
![]() |
8c579e6890 | ||
![]() |
b666366a22 | ||
![]() |
bbbd857ca6 | ||
![]() |
366b3f8ad1 | ||
![]() |
22034da019 | ||
![]() |
19fd0e35d8 | ||
![]() |
b40c908bda | ||
![]() |
96ea9713db | ||
![]() |
5b26e0c8d0 | ||
![]() |
40aa7437ff | ||
![]() |
3ff57a7b03 | ||
![]() |
5c6a1080e3 | ||
![]() |
f0deeb24b6 | ||
![]() |
6420e89858 | ||
![]() |
699d4441e9 | ||
![]() |
51c5d3de64 | ||
![]() |
c3678180a0 | ||
![]() |
16124057c6 | ||
![]() |
e3a73c702d | ||
![]() |
5db35d932b | ||
![]() |
a6f5603efd | ||
![]() |
4e45e3299f | ||
![]() |
3062f0215c | ||
![]() |
1200812f10 | ||
![]() |
49bfb7a545 | ||
![]() |
ef3f827e01 | ||
![]() |
accd335366 | ||
![]() |
345a17a677 | ||
![]() |
e2d6979fa0 | ||
![]() |
748e56f00a | ||
![]() |
a358248f7e | ||
![]() |
efba211a64 | ||
![]() |
44c612696e | ||
![]() |
a94bac6cd6 | ||
![]() |
47dc4b65c7 | ||
![]() |
9a79cc6537 | ||
![]() |
07e6be91e5 | ||
![]() |
2344ec29f3 | ||
![]() |
66140be39d | ||
![]() |
bdfe5ede8f | ||
![]() |
01824dddf5 | ||
![]() |
7eddc782b9 | ||
![]() |
1c17f9f39d | ||
![]() |
ac45d0e671 | ||
![]() |
0a55af3bab | ||
![]() |
8df19d1ba4 | ||
![]() |
90dabbb31f | ||
![]() |
bc66f795e8 | ||
![]() |
4535e97f37 | ||
![]() |
94cc5512b4 | ||
![]() |
147061cd1c | ||
![]() |
947ef43347 | ||
![]() |
6800bd1837 | ||
![]() |
b55989fc07 | ||
![]() |
bf8fbb162e | ||
![]() |
0dd570278a | ||
![]() |
44ba40c7d3 | ||
![]() |
b57b4a2199 | ||
![]() |
23f717081c | ||
![]() |
c4721a090f | ||
![]() |
409672f27f | ||
![]() |
3285192712 | ||
![]() |
dd0015961c | ||
![]() |
1f1d07e7f6 | ||
![]() |
5eea167401 | ||
![]() |
20267048c9 | ||
![]() |
ac8ffcef75 | ||
![]() |
3d9cfbc86d | ||
![]() |
ab67d87073 | ||
![]() |
a8a1dabee2 | ||
![]() |
b0fd33df87 | ||
![]() |
4c30388251 | ||
![]() |
333fb1e45f | ||
![]() |
af083890df | ||
![]() |
0091e21630 | ||
![]() |
d5ce97a824 | ||
![]() |
42f91bb546 | ||
![]() |
6e3db4f4a6 | ||
![]() |
30c5525b94 | ||
![]() |
dc7037cd5b | ||
![]() |
317113f4cd | ||
![]() |
e3598384ca | ||
![]() |
b3c9d77861 | ||
![]() |
4eb361646a | ||
![]() |
81fd548876 | ||
![]() |
df34dfa71c | ||
![]() |
aad5b8b77a | ||
![]() |
eedc2e201a | ||
![]() |
4d0ea376b6 | ||
![]() |
469a6c8c43 | ||
![]() |
18dfe257fb | ||
![]() |
f3b7cebb21 | ||
![]() |
0f8b14764b | ||
![]() |
691bcb7c85 | ||
![]() |
cfc42dc1a2 | ||
![]() |
5c646346e2 | ||
![]() |
b94b1083b3 | ||
![]() |
139a7cbe43 | ||
![]() |
bc75d09a19 | ||
![]() |
16e5cc2cb1 | ||
![]() |
bd13837008 | ||
![]() |
abff1cd498 | ||
![]() |
d7ce82f90a | ||
![]() |
08e0983e66 | ||
![]() |
33b2b07e8d | ||
![]() |
7596e2e56c | ||
![]() |
ccce94089c | ||
![]() |
3b5c3abc62 | ||
![]() |
f2750e7f91 | ||
![]() |
207148a6a4 | ||
![]() |
081b67f1ef | ||
![]() |
39b5a8484e | ||
![]() |
040ace12be | ||
![]() |
3c8bcb1a2b | ||
![]() |
2d217d93fb | ||
![]() |
8ff96c332e | ||
![]() |
3a03641c34 | ||
![]() |
d78bc716f4 | ||
![]() |
b6e66da6f6 | ||
![]() |
75db2ccd8b | ||
![]() |
de4349342f | ||
![]() |
1935150e8e | ||
![]() |
eb8d4936c8 | ||
![]() |
8cbd0e2c21 | ||
![]() |
a21403a904 | ||
![]() |
7a65268a26 | ||
![]() |
e1d4285d97 | ||
![]() |
1e0a7dc4f9 | ||
![]() |
5629eb6688 | ||
![]() |
1f456aa70c | ||
![]() |
6ea35dc7b6 | ||
![]() |
8560554b5b | ||
![]() |
b582154626 | ||
![]() |
06ede145c2 | ||
![]() |
094812064b | ||
![]() |
d8e4329442 | ||
![]() |
08d3a9729c | ||
![]() |
cacaa5c452 | ||
![]() |
996b219ed6 | ||
![]() |
046847302b | ||
![]() |
21084b0bbf | ||
![]() |
fcd885d2f7 | ||
![]() |
1ebe71f883 | ||
![]() |
240889a5ef | ||
![]() |
2ee8605efb | ||
![]() |
6b2263a8c9 | ||
![]() |
5a9cd63159 | ||
![]() |
0bb29e50cd | ||
![]() |
1f0ecd1011 | ||
![]() |
d45a7829e6 | ||
![]() |
8231c20ed4 | ||
![]() |
d43c776c65 | ||
![]() |
a7f6c59818 | ||
![]() |
aac7ba0efe | ||
![]() |
5e05aa440e | ||
![]() |
e6fda7196a | ||
![]() |
543e165bc6 | ||
![]() |
0af593eec8 | ||
![]() |
f3e898fa0c | ||
![]() |
33ec3b9b21 | ||
![]() |
290227d12c | ||
![]() |
ae99d34c46 | ||
![]() |
a277ab273b | ||
![]() |
e4f66ef06f | ||
![]() |
f16c020d18 | ||
![]() |
bf4009201a | ||
![]() |
0d4df377ae | ||
![]() |
e99ce2d9ee | ||
![]() |
0a8f23bb08 | ||
![]() |
5a72c9ea8e | ||
![]() |
a210516740 | ||
![]() |
3f2fe56235 | ||
![]() |
a1619736f7 | ||
![]() |
f81b21aa38 | ||
![]() |
ae53f030c7 | ||
![]() |
458c87c143 | ||
![]() |
08ab795174 | ||
![]() |
5b3602e0e8 | ||
![]() |
c67ee40768 | ||
![]() |
f7265df12c | ||
![]() |
60c7ce8c0c | ||
![]() |
01c3961d3d | ||
![]() |
0f43ca9a7a | ||
![]() |
5cc92cf211 | ||
![]() |
8e15cdb883 | ||
![]() |
aa1c45a202 | ||
![]() |
dcb8e26596 | ||
![]() |
dee9f49346 | ||
![]() |
898be5149d | ||
![]() |
5acfeca7b0 | ||
![]() |
966677ef2a | ||
![]() |
c8cd5c2b86 | ||
![]() |
81b07e2b3e | ||
![]() |
bb9746fedb | ||
![]() |
1678fa0a49 | ||
![]() |
8112c05326 | ||
![]() |
13ee17d625 | ||
![]() |
75782e265a | ||
![]() |
64fe84a660 | ||
![]() |
6dac390f67 | ||
![]() |
3bd7dc7c6c | ||
![]() |
40868a74ce | ||
![]() |
38ada71ca7 | ||
![]() |
928fee3f0d | ||
![]() |
af32e9efa9 | ||
![]() |
aef89cc325 | ||
![]() |
e82d70fb3a | ||
![]() |
e72e6c220a | ||
![]() |
5bc633d7b9 | ||
![]() |
4a181c57c6 | ||
![]() |
1ea5c22b4d | ||
![]() |
61846f75a1 | ||
![]() |
1cf0804f81 | ||
![]() |
bc322f7084 | ||
![]() |
bd53013d4b | ||
![]() |
91bebbadc3 | ||
![]() |
d6a6875a70 | ||
![]() |
7345ae9df9 | ||
![]() |
b865f1ef35 | ||
![]() |
c164b93526 | ||
![]() |
dfaeacd718 | ||
![]() |
69a289dea7 | ||
![]() |
69169bbba9 | ||
![]() |
b6c35e379e | ||
![]() |
02214d8565 | ||
![]() |
8cb73da74c | ||
![]() |
93558a2b74 | ||
![]() |
0f89caca63 | ||
![]() |
619a3877b7 | ||
![]() |
8897c4818c | ||
![]() |
bb0945a63f | ||
![]() |
54238b30b3 | ||
![]() |
a77bc147a4 | ||
![]() |
97ee0da261 | ||
![]() |
5b20b10b90 | ||
![]() |
1030589021 | ||
![]() |
71a3ac48e1 | ||
![]() |
0b11ce9324 | ||
![]() |
bca5e2b9b1 | ||
![]() |
3d91014e34 | ||
![]() |
7d1b8e7d28 | ||
![]() |
4a502ffb15 | ||
![]() |
828d650d6d | ||
![]() |
969cd8c376 | ||
![]() |
079f18f728 | ||
![]() |
538246e795 | ||
![]() |
18a7c686c4 | ||
![]() |
9c40235dba | ||
![]() |
030d73cf77 | ||
![]() |
e4c172218a | ||
![]() |
6e18fb4513 | ||
![]() |
b77f0ad0ff | ||
![]() |
4320aa029c | ||
![]() |
f81cf44978 | ||
![]() |
cc820a7671 | ||
![]() |
6dc1bad756 | ||
![]() |
c15173af24 | ||
![]() |
3c475ddab0 | ||
![]() |
482620edfc | ||
![]() |
d6f2fd8189 | ||
![]() |
2113dc97fe | ||
![]() |
a363e3cdff | ||
![]() |
93af7e058e | ||
![]() |
13d8da81d2 | ||
![]() |
8745b85c34 | ||
![]() |
3648f319ed | ||
![]() |
b11c19d8c5 | ||
![]() |
3a6dac0c15 | ||
![]() |
443d6c8464 | ||
![]() |
da44361cad | ||
![]() |
d99d4e3623 | ||
![]() |
865ef47c2f | ||
![]() |
6f77fb20e5 | ||
![]() |
c685187a1a | ||
![]() |
727b0609c1 | ||
![]() |
542673d0bb | ||
![]() |
0a845c303c | ||
![]() |
a9277a03ef | ||
![]() |
85d8fb9504 | ||
![]() |
08a53b8898 | ||
![]() |
402bcc3d8d | ||
![]() |
67848b5a1c | ||
![]() |
31455c6f17 | ||
![]() |
94d9e8f119 | ||
![]() |
9a098bed40 | ||
![]() |
d2859aec61 | ||
![]() |
7aec86b044 | ||
![]() |
d519bc6378 | ||
![]() |
953c6c51d3 | ||
![]() |
e8399d9f3a | ||
![]() |
56be2d15cc | ||
![]() |
299f4aab8e | ||
![]() |
3008068b4e | ||
![]() |
670b3b0e14 | ||
![]() |
e87a544b3c | ||
![]() |
cd6aabd3bc | ||
![]() |
ce2b341f40 | ||
![]() |
a724a63d42 | ||
![]() |
730579b421 | ||
![]() |
ce10062ebb | ||
![]() |
e14ecde78e | ||
![]() |
6c590d3c11 | ||
![]() |
2645182d7c | ||
![]() |
8126f7397c | ||
![]() |
3f2c574c51 | ||
![]() |
1b84ad1186 | ||
![]() |
1ba6b5e00d | ||
![]() |
7f98ca6163 | ||
![]() |
12cf14d6dd | ||
![]() |
0f96d35fe5 | ||
![]() |
08b75a0e22 | ||
![]() |
023560c09d | ||
![]() |
726f151d8a | ||
![]() |
6184a6dcc3 | ||
![]() |
77f6e11350 | ||
![]() |
8db638d4f5 | ||
![]() |
8fece790aa | ||
![]() |
4cc2fbb40d | ||
![]() |
70b51841eb | ||
![]() |
2327b7d1ad | ||
![]() |
971a7b3b19 | ||
![]() |
4129a0875a | ||
![]() |
c0678b17fa | ||
![]() |
aecf11c084 | ||
![]() |
a1359933e0 | ||
![]() |
ee4587f81d | ||
![]() |
35d8bf58a5 | ||
![]() |
28a9f2392d | ||
![]() |
093ac611b7 | ||
![]() |
489ae3ee08 | ||
![]() |
d738974329 | ||
![]() |
fc6aac0f53 | ||
![]() |
33adbec9e4 | ||
![]() |
13b5e89f81 | ||
![]() |
98efa1b42c | ||
![]() |
e1d7d50a1f | ||
![]() |
f8f0460bb9 | ||
![]() |
716a9ba1f1 | ||
![]() |
0e57e4c609 | ||
![]() |
6b52300332 | ||
![]() |
67c47a9581 | ||
![]() |
bb75a16428 | ||
![]() |
4e19730e02 | ||
![]() |
6b226a289a | ||
![]() |
2b0425f8e1 | ||
![]() |
0ba23458d2 | ||
![]() |
6f48c8c545 | ||
![]() |
908d987551 | ||
![]() |
b27886a6ff | ||
![]() |
7a3f581b7b | ||
![]() |
e8ff2c3bc4 | ||
![]() |
96bc319cb7 | ||
![]() |
d1a1bfbfff | ||
![]() |
319931585a | ||
![]() |
6ed95760b5 | ||
![]() |
72e7229539 | ||
![]() |
02bfdbb1ee | ||
![]() |
e90c6dca01 | ||
![]() |
7eb9c3e624 | ||
![]() |
d25cff070d | ||
![]() |
dd3c93db37 | ||
![]() |
f50776e8b6 | ||
![]() |
472d4a32d0 | ||
![]() |
2de84d436d | ||
![]() |
c9dbd8ba09 | ||
![]() |
b59e42ccdf | ||
![]() |
3e3e0633df | ||
![]() |
663ad25541 | ||
![]() |
e79dd827f3 | ||
![]() |
411afd45b3 | ||
![]() |
a6c5017eb2 | ||
![]() |
75614c1626 | ||
![]() |
1db5629c95 | ||
![]() |
2c814fed4d | ||
![]() |
513583b6e9 | ||
![]() |
7ead05557e | ||
![]() |
5234176826 | ||
![]() |
85a330fd22 | ||
![]() |
d3684c7b3f | ||
![]() |
f61f77c0f8 | ||
![]() |
ff133b7e9d | ||
![]() |
c8e8f4671f | ||
![]() |
1b83455b7f | ||
![]() |
7353149e7a | ||
![]() |
feedf24d3f | ||
![]() |
f76130934e | ||
![]() |
f611f3d36b | ||
![]() |
43112842f8 | ||
![]() |
1099285224 | ||
![]() |
f929f007dd | ||
![]() |
68986ed943 | ||
![]() |
91cebadad1 | ||
![]() |
d2104fa2ee | ||
![]() |
78938d2de2 | ||
![]() |
553caf6fbe | ||
![]() |
8d052a4121 | ||
![]() |
7fd6dfb6f2 | ||
![]() |
e7cec4c7c5 | ||
![]() |
ac3abe3e94 | ||
![]() |
df1fbba8d5 | ||
![]() |
30a1ed80d5 | ||
![]() |
8dc9b2537b | ||
![]() |
aa48915b05 | ||
![]() |
71ba6c2946 | ||
![]() |
e68b198d74 | ||
![]() |
bae4213184 | ||
![]() |
39a4a76183 | ||
![]() |
1b4c35819e | ||
![]() |
04330ef8b0 | ||
![]() |
e2faa62f93 | ||
![]() |
d9168ba7f1 | ||
![]() |
1eb5ed038d | ||
![]() |
64785c5ab6 | ||
![]() |
52738f5fc7 | ||
![]() |
5ecae71561 | ||
![]() |
8a3138659b | ||
![]() |
c75cf6f1eb | ||
![]() |
4f75c8d511 | ||
![]() |
90f87fc12f | ||
![]() |
54ef686de6 | ||
![]() |
fc22ab52b2 | ||
![]() |
9e18e7a245 | ||
![]() |
99413b67d8 | ||
![]() |
2133e5cb54 | ||
![]() |
886db3aa45 | ||
![]() |
10d26a6b82 | ||
![]() |
a5f0f36f0d | ||
![]() |
e3d95f65eb | ||
![]() |
31c61066a7 | ||
![]() |
856d0a5a93 | ||
![]() |
9d1b7e47d3 | ||
![]() |
95ae3165ec | ||
![]() |
03db590d9f | ||
![]() |
6a7d0f4121 | ||
![]() |
188ac5ea79 | ||
![]() |
eec2ee5060 | ||
![]() |
ef3f5a7ba5 | ||
![]() |
156a873997 | ||
![]() |
d947623a29 | ||
![]() |
c79d870831 | ||
![]() |
62903c56e6 | ||
![]() |
1cbe370fc6 | ||
![]() |
d5c3d4d147 | ||
![]() |
2a878db667 | ||
![]() |
19d24acd5c | ||
![]() |
4b348e4a80 | ||
![]() |
049c3bbf5e | ||
![]() |
af6300420e | ||
![]() |
381f465ea5 | ||
![]() |
cf6de314c4 | ||
![]() |
fb79767c60 | ||
![]() |
2e1289bc0e | ||
![]() |
c811dad08d | ||
![]() |
f5a32935e3 | ||
![]() |
fa87d3c211 | ||
![]() |
8ad6de94ef | ||
![]() |
9df1486d6d | ||
![]() |
eb343fdea6 | ||
![]() |
8056a948b5 | ||
![]() |
111eb4c94f | ||
![]() |
7ef5a95c19 | ||
![]() |
bf81d265c8 | ||
![]() |
c7b57e03d3 | ||
![]() |
60a1d5f979 | ||
![]() |
a41da28d55 | ||
![]() |
6a724fc24f | ||
![]() |
44561b7885 | ||
![]() |
9150233992 | ||
![]() |
68119a8e79 | ||
![]() |
450e2b8ce7 | ||
![]() |
412577b9fa |
712 changed files with 41419 additions and 5066 deletions
57
.drone-extend.yml
Normal file
57
.drone-extend.yml
Normal file
|
@ -0,0 +1,57 @@
|
|||
---
|
||||
kind: pipeline
|
||||
name: CentOS
|
||||
steps:
|
||||
- name: run unit tests
|
||||
image: centos:latest
|
||||
commands:
|
||||
- sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
|
||||
- sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
|
||||
- yum update -y
|
||||
- dnf -yq install sudo wget
|
||||
- sudo wget -q -O - http://www.atomicorp.com/installers/atomic | sh
|
||||
|
||||
- mkdir /phyre-panel
|
||||
- cp installers/centos-stream-9/install-partial/install_base.sh /phyre-panel/install_base.sh
|
||||
- chmod +x /phyre-panel/install_base.sh
|
||||
- /phyre-panel/install_base.sh
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: Debian 12
|
||||
steps:
|
||||
- name: run unit tests
|
||||
image: debian:12
|
||||
environment:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
commands:
|
||||
- apt-get update
|
||||
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: Ubuntu 22.04
|
||||
steps:
|
||||
- name: run unit tests
|
||||
image: ubuntu:22.04
|
||||
environment:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
commands:
|
||||
- apt-get update
|
||||
- apt-get install -yq libicu-dev sudo cron apt-utils -yqq daemonize dbus-user-session fontconfig rsync
|
||||
- daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
|
||||
|
||||
- mkdir /phyre-panel
|
||||
- cp installers/ubuntu-22.04/install-partial/install_base.sh /phyre-panel/install_base.sh
|
||||
- chmod +x /phyre-panel/install_base.sh
|
||||
- /phyre-panel/install_base.sh
|
||||
- cp installers/ubuntu-22.04/install-partial/install_web.sh /phyre-panel/install_web.sh
|
||||
- chmod +x /phyre-panel/install_web.sh
|
||||
|
||||
- cp -r web /usr/local/phyre/web/
|
||||
- cd /usr/local/phyre/web/
|
||||
- wget https://getcomposer.org/download/latest-stable/composer.phar
|
||||
- COMPOSER_ALLOW_SUPERUSER=1 phyre-php composer.phar install
|
||||
- /phyre-panel/install_web.sh
|
||||
- phyre-php artisan test
|
||||
|
93
.drone.yml
Normal file
93
.drone.yml
Normal file
|
@ -0,0 +1,93 @@
|
|||
---
|
||||
kind: pipeline
|
||||
name: Docker - Quick Test
|
||||
steps:
|
||||
- name: run
|
||||
image: bobicloudvision/phyre-panel:latest
|
||||
environment:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
commands:
|
||||
- apt-get install -yq libicu-dev sudo cron apt-utils daemonize dbus-user-session fontconfig rsync
|
||||
- service mysql start
|
||||
- service phyre start
|
||||
- MAIN_REPO_DIR=$(pwd)
|
||||
- apt-get install -yq rsync
|
||||
- cp /usr/local/phyre/web/phyre-config.ini /usr/local/phyre/phyre-config.ini.bak
|
||||
- rm -rf /usr/local/phyre/web
|
||||
- cp -r $MAIN_REPO_DIR/web /usr/local/phyre/web
|
||||
- cp /usr/local/phyre/phyre-config.ini.bak /usr/local/phyre/web/phyre-config.ini
|
||||
- cd /usr/local/phyre/web/
|
||||
- ls -la
|
||||
- wget https://getcomposer.org/download/latest-stable/composer.phar
|
||||
- COMPOSER_ALLOW_SUPERUSER=1 phyre-php composer.phar install
|
||||
- phyre-php artisan phyre:set-ini-settings APP_ENV "local"
|
||||
- phyre-php artisan migrate
|
||||
- phyre-php artisan test
|
||||
---
|
||||
kind: pipeline
|
||||
name: Ubuntu 22.04 - Unit Test & Code Coverage
|
||||
steps:
|
||||
- name: run
|
||||
image: ubuntu:22.04
|
||||
platform: linux/amd64
|
||||
environment:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
CODECOV_TOKEN:
|
||||
from_secret: CODECOV_TOKEN
|
||||
commands:
|
||||
- export DEBIAN_FRONTEND=noninteractive
|
||||
- MAIN_REPO_DIR=$(pwd)
|
||||
- apt-get update
|
||||
- apt-get install -yq libicu-dev sudo cron apt-utils daemonize dbus-user-session fontconfig rsync
|
||||
- daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
|
||||
|
||||
- ls -la
|
||||
- mkdir /phyre-panel
|
||||
|
||||
- cp installers/ubuntu-22.04/install-partial/install_base.sh /phyre-panel/install_base.sh
|
||||
- chmod +x /phyre-panel/install_base.sh
|
||||
- /phyre-panel/install_base.sh
|
||||
|
||||
- cp installers/ubuntu-20.04/install-partial/install_web.sh /phyre-panel/install_web.sh
|
||||
- chmod +x /phyre-panel/install_web.sh
|
||||
|
||||
- cp -r web /usr/local/phyre/web/
|
||||
- cd /usr/local/phyre/web/
|
||||
- ls -la
|
||||
|
||||
- wget https://getcomposer.org/download/latest-stable/composer.phar
|
||||
- COMPOSER_ALLOW_SUPERUSER=1 phyre-php composer.phar install
|
||||
|
||||
- /phyre-panel/install_web.sh
|
||||
|
||||
- apt-get install autoconf build-essential -y
|
||||
- mkdir -p /usr/local/phyre/php-xdebug
|
||||
- cd /usr/local/phyre/php-xdebug
|
||||
- wget http://xdebug.org/files/xdebug-3.3.2.tgz
|
||||
- tar -xvzf xdebug-3.3.2.tgz
|
||||
- cd xdebug-3.3.2
|
||||
- /usr/local/phyre/php/bin/phpize
|
||||
- ./configure --enable-xdebug --with-php-config=/usr/local/phyre/php/bin/php-config
|
||||
- make
|
||||
|
||||
- mkdir -p /usr/local/phyre/php/zend-xdebug
|
||||
- cp modules/xdebug.so /usr/local/phyre/php/zend-xdebug/xdebug.so
|
||||
|
||||
- chmod 777 /usr/local/phyre/php/zend-xdebug/xdebug.so
|
||||
|
||||
- cp /usr/local/phyre/web/tests/xdebug-php-ini.txt /usr/local/phyre/php/bin/php.ini
|
||||
|
||||
- chmod 777 /usr/local/phyre/php/bin/php.ini
|
||||
- phyre-php -v
|
||||
|
||||
- cd /usr/local/phyre/web/
|
||||
- chmod -R 777 vendor
|
||||
- apt install composer -y
|
||||
- phyre-php artisan phyre:set-ini-settings APP_ENV "local"
|
||||
- composer test:coverage
|
||||
- mv clover.xml $MAIN_REPO_DIR/clover.xml
|
||||
- mv coverage.xml $MAIN_REPO_DIR/coverage.xml
|
||||
- cd $MAIN_REPO_DIR
|
||||
- apt install -yq pip
|
||||
- pip install codecov-cli
|
||||
- codecovcli --verbose upload-process -t $CODECOV_TOKEN
|
65
.drone.yml.orig
Normal file
65
.drone.yml.orig
Normal file
|
@ -0,0 +1,65 @@
|
|||
---
|
||||
kind: pipeline
|
||||
name: Ubuntu 22.04 - Unit Test & Code Coverage
|
||||
steps:
|
||||
- name: run
|
||||
image: ubuntu:22.04
|
||||
environment:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
CODECOV_TOKEN:
|
||||
from_secret: CODECOV_TOKEN
|
||||
commands:
|
||||
- MAIN_REPO_DIR=$(pwd)
|
||||
- apt-get update
|
||||
- apt-get install -yq libicu-dev sudo cron apt-utils -yqq daemonize dbus-user-session fontconfig rsync
|
||||
- daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
|
||||
|
||||
- ls -la
|
||||
- mkdir /phyre-panel
|
||||
|
||||
- cp installers/ubuntu-22.04/install-partial/install_base.sh /phyre-panel/install_base.sh
|
||||
- chmod +x /phyre-panel/install_base.sh
|
||||
- /phyre-panel/install_base.sh
|
||||
|
||||
- cp installers/ubuntu-22.04/install-partial/install_web.sh /phyre-panel/install_web.sh
|
||||
- chmod +x /phyre-panel/install_web.sh
|
||||
|
||||
- cp -r web /usr/local/phyre/web/
|
||||
- cd /usr/local/phyre/web/
|
||||
- ls -la
|
||||
|
||||
- wget https://getcomposer.org/download/latest-stable/composer.phar
|
||||
- COMPOSER_ALLOW_SUPERUSER=1 phyre-php composer.phar install
|
||||
|
||||
- /phyre-panel/install_web.sh
|
||||
|
||||
- apt-get install autoconf build-essential -y
|
||||
- mkdir -p /usr/local/phyre/php-xdebug
|
||||
- cd /usr/local/phyre/php-xdebug
|
||||
- wget http://xdebug.org/files/xdebug-3.3.2.tgz
|
||||
- tar -xvzf xdebug-3.3.2.tgz
|
||||
- cd xdebug-3.3.2
|
||||
- /usr/local/phyre/php/bin/phpize
|
||||
- ./configure --enable-xdebug --with-php-config=/usr/local/phyre/php/bin/php-config
|
||||
- make
|
||||
|
||||
- mkdir -p /usr/local/phyre/php/zend-xdebug
|
||||
- cp modules/xdebug.so /usr/local/phyre/php/zend-xdebug/xdebug.so
|
||||
|
||||
- chmod 777 /usr/local/phyre/php/zend-xdebug/xdebug.so
|
||||
|
||||
- cp /usr/local/phyre/web/tests/xdebug-php-ini.txt /usr/local/phyre/php/bin/php.ini
|
||||
|
||||
- chmod 777 /usr/local/phyre/php/bin/php.ini
|
||||
- phyre-php -v
|
||||
|
||||
- cd /usr/local/phyre/web/
|
||||
- chmod -R 777 vendor
|
||||
- apt install composer -y
|
||||
- composer test:coverage
|
||||
- mv clover.xml $MAIN_REPO_DIR/clover.xml
|
||||
- mv coverage.xml $MAIN_REPO_DIR/coverage.xml
|
||||
- cd $MAIN_REPO_DIR
|
||||
- apt install -yq pip
|
||||
- pip install codecov-cli
|
||||
- codecovcli --verbose upload-process -t $CODECOV_TOKEN
|
3
.github/FUNDING.yml
vendored
Normal file
3
.github/FUNDING.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
# These are supported funding model platforms
|
||||
github: [phyreapps]
|
||||
open_collective: phyreapps
|
77
.github/workflows/app-code-coverage.yml_
vendored
Normal file
77
.github/workflows/app-code-coverage.yml_
vendored
Normal file
|
@ -0,0 +1,77 @@
|
|||
name: Phyre Panel - Code Coverage
|
||||
on: [push]
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
phyre-panel-code-coverage:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-22.04]
|
||||
|
||||
runs-on: hetzner-${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: ${{ github.repository }}
|
||||
ref: ${{ github.sha }}
|
||||
|
||||
- name: Install Base
|
||||
run: |
|
||||
ls -la
|
||||
sudo mkdir /phyre-panel
|
||||
|
||||
sudo cp installers/${{ matrix.os }}/install-partial/install_base.sh /phyre-panel/install_base.sh
|
||||
sudo chmod +x /phyre-panel/install_base.sh
|
||||
sudo /phyre-panel/install_base.sh
|
||||
|
||||
sudo cp installers/${{ matrix.os }}/install-partial/install_web.sh /phyre-panel/install_web.sh
|
||||
sudo chmod +x /phyre-panel/install_web.sh
|
||||
|
||||
- name: Run Code Coverage
|
||||
run: |
|
||||
|
||||
sudo cp -r web /usr/local/phyre/web/
|
||||
cd /usr/local/phyre/web/
|
||||
ls -la
|
||||
|
||||
sudo wget https://getcomposer.org/download/latest-stable/composer.phar
|
||||
sudo COMPOSER_ALLOW_SUPERUSER=1 phyre-php composer.phar install
|
||||
|
||||
sudo /phyre-panel/install_web.sh
|
||||
|
||||
sudo apt-get install autoconf build-essential -yq
|
||||
sudo mkdir -p /usr/local/phyre/php-xdebug
|
||||
cd /usr/local/phyre/php-xdebug
|
||||
sudo wget http://xdebug.org/files/xdebug-3.3.2.tgz
|
||||
sudo tar -xvzf xdebug-3.3.2.tgz
|
||||
cd xdebug-3.3.2
|
||||
sudo /usr/local/phyre/php/bin/phpize
|
||||
sudo ./configure --enable-xdebug --with-php-config=/usr/local/phyre/php/bin/php-config
|
||||
sudo make
|
||||
|
||||
sudo mkdir -p /usr/local/phyre/php/zend-xdebug
|
||||
sudo cp modules/xdebug.so /usr/local/phyre/php/zend-xdebug/xdebug.so
|
||||
|
||||
sudo chmod 777 /usr/local/phyre/php/zend-xdebug/xdebug.so
|
||||
|
||||
sudo cp /usr/local/phyre/web/tests/xdebug-php-ini.txt /usr/local/phyre/php/bin/php.ini
|
||||
|
||||
sudo chmod 777 /usr/local/phyre/php/bin/php.ini
|
||||
phyre-php -v
|
||||
|
||||
cd /usr/local/phyre/web/
|
||||
sudo chmod -R 777 vendor
|
||||
apt install composer -y
|
||||
composer test:coverage
|
||||
|
||||
- name: Code Cov
|
||||
uses: codecov/codecov-action@v2
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
files: /usr/local/phyre/web/clover.xml
|
||||
fail_ci_if_error: true # optional (default = false)
|
||||
verbose: true # optional (default = false)
|
9
.github/workflows/app-unit-test.yml
vendored
9
.github/workflows/app-unit-test.yml
vendored
|
@ -8,8 +8,7 @@ jobs:
|
|||
phyre-panel-unit-test:
|
||||
strategy:
|
||||
matrix:
|
||||
#os: [ubuntu-24.04, ubuntu-22.04, ubuntu-20.04]
|
||||
os: [ubuntu-22.04]
|
||||
os: [ubuntu-24.04, ubuntu-22.04]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
|
@ -29,7 +28,7 @@ jobs:
|
|||
sudo chmod +x /phyre-panel/install_base.sh
|
||||
sudo /phyre-panel/install_base.sh
|
||||
|
||||
sudo cp installers/${{ matrix.os }}/install-partial/install_web.sh /phyre-panel/install_web.sh
|
||||
sudo cp installers/ubuntu-20.04/install-partial/install_web.sh /phyre-panel/install_web.sh
|
||||
sudo chmod +x /phyre-panel/install_web.sh
|
||||
|
||||
- name: Run Unit Test
|
||||
|
@ -42,8 +41,8 @@ jobs:
|
|||
sudo wget https://getcomposer.org/download/latest-stable/composer.phar
|
||||
sudo COMPOSER_ALLOW_SUPERUSER=1 phyre-php composer.phar install
|
||||
|
||||
sudo /phyre-panel/install_web.sh
|
||||
sudo phyre-php artisan test
|
||||
sudo /phyre-panel/install_web.sh --dont-ask
|
||||
sudo phyre-php artisan test --filter HostingSubscriptionsTest
|
||||
|
||||
compile-phyre-web-panel:
|
||||
runs-on: ubuntu-22.04
|
||||
|
|
65
.github/workflows/deploy-docs.yml
vendored
Normal file
65
.github/workflows/deploy-docs.yml
vendored
Normal file
|
@ -0,0 +1,65 @@
|
|||
# Sample workflow for building and deploying a VitePress site to GitHub Pages
|
||||
#
|
||||
name: Phyre Panel - Deploy Docs
|
||||
|
||||
on:
|
||||
# Runs on pushes targeting the `main` branch. Change this to `master` if you're
|
||||
# using the `master` branch as the default branch.
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
||||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
||||
concurrency:
|
||||
group: pages
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
# Build job
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Not needed if lastUpdated is not enabled
|
||||
# - uses: pnpm/action-setup@v3 # Uncomment this if you're using pnpm
|
||||
# - uses: oven-sh/setup-bun@v1 # Uncomment this if you're using Bun
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v4
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
MAIN_DIR=$(pwd)
|
||||
cd $MAIN_DIR/docs
|
||||
npm ci
|
||||
npm run docs:build
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: docs/.vitepress/dist
|
||||
|
||||
# Deployment job
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
name: Deploy
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4
|
24
.gitignore
vendored
24
.gitignore
vendored
|
@ -1,2 +1,24 @@
|
|||
web/storage/installed
|
||||
/docker/e2e-tests/node_modules/
|
||||
|
||||
web/config.php
|
||||
web/phyre-config.ini
|
||||
|
||||
|
||||
# vitepress build output
|
||||
**/.vitepress/cache/
|
||||
/docs/node_modules/
|
||||
|
||||
|
||||
./idea/*
|
||||
.idea/webServers.xml
|
||||
.idea/vcs.xml
|
||||
.idea/sshConfigs.xml
|
||||
.idea/PhyrePanel.iml
|
||||
.idea/phpunit.xml
|
||||
.idea/php.xml
|
||||
.idea/modules.xml
|
||||
.idea/deployment.xml
|
||||
/web/Modules/Microweber/vendor/
|
||||
.aider*
|
||||
/.vscode
|
||||
.env
|
||||
|
|
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
15
.idea/codeception.xml
generated
Normal file
15
.idea/codeception.xml
generated
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Codeception">
|
||||
<option name="configurations">
|
||||
<list>
|
||||
<Configuration>
|
||||
<option name="path" value="$PROJECT_DIR$/tests" />
|
||||
</Configuration>
|
||||
<Configuration>
|
||||
<option name="path" value="$PROJECT_DIR$/web/tests" />
|
||||
</Configuration>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
13
.idea/phpspec.xml
generated
Normal file
13
.idea/phpspec.xml
generated
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="PHPSpec">
|
||||
<suites>
|
||||
<PhpSpecSuiteConfiguration>
|
||||
<option name="myPath" value="$PROJECT_DIR$" />
|
||||
</PhpSpecSuiteConfiguration>
|
||||
<PhpSpecSuiteConfiguration>
|
||||
<option name="myPath" value="$PROJECT_DIR$/web" />
|
||||
</PhpSpecSuiteConfiguration>
|
||||
</suites>
|
||||
</component>
|
||||
</project>
|
674
LICENSE
Normal file
674
LICENSE
Normal file
|
@ -0,0 +1,674 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
53
README.md
53
README.md
|
@ -1,4 +1,29 @@
|
|||
# Welcome to PHYRE PANEL
|
||||
<h1 align="center">
|
||||
<a href="https://www.phyrepanel.com">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://phyrepanel.com/phyre-logo.svg"/>
|
||||
<img height="69" src="https://phyrepanel.com/phyre-logo.svg"/>
|
||||
</picture>
|
||||
</a>
|
||||
<br />
|
||||
</h1>
|
||||
<p align="center">
|
||||
Powerful Linux multi-platform hosting control panel designed to simplify the process of managing web hosting servers.
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://www.phyrepanel.com/"><img src="https://img.shields.io/badge/Website-blue?logo=googlechrome&logoColor=black"/></a>
|
||||
<a href="https://discord.gg/vsxBuMFK"><img src="https://img.shields.io/discord/1227542192189603872?logo=discord&label=discord"/></a>
|
||||
<a href="https://github.com/PhyreApps/PhyrePanel"><img src="https://img.shields.io/github/stars/PhyreApps/PhyrePanel" /></a>
|
||||
<a href="https://github.com/PhyreApps/PhyrePanel/blob/main/LICENSE"><img src="https://img.shields.io/github/license/PhyreApps/PhyrePanel"/></a>
|
||||
<a href="https://drone.phyrecloud.com/PhyreApps/PhyrePanel"><img src="https://drone.phyrecloud.com/api/badges/PhyreApps/PhyrePanel/status.svg"/></a>
|
||||
<a href="https://codecov.io/gh/PhyreApps/PhyrePanel"><img src="https://codecov.io/gh/PhyreApps/PhyrePanel/graph/badge.svg?token=BO0RTPLS4W"/></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://www.buymeacoffee.com/phyre" style="display: inline-block;margin: 15px 0px;">
|
||||
<img src="https://img.buymeacoffee.com/button-api/?text=Support Phyre Panel&emoji=&slug=phyre&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff" alt="Support Phyre Panel" style="height: 40px !important; ">
|
||||
</a>
|
||||
</p>
|
||||
|
||||

|
||||
## About PHYRE PANEL
|
||||
|
@ -12,6 +37,27 @@ wget https://raw.githubusercontent.com/PhyreApps/PhyrePanel/main/installers/inst
|
|||
```
|
||||
The admin panel can be opened on port: yourserver.com:8443
|
||||
|
||||
## Updating
|
||||
To update PhyrePanel, you need to run this commands:
|
||||
```
|
||||
rm -rf update.sh && wget https://raw.githubusercontent.com/PhyreApps/PhyrePanel/main/web/update.sh && chmod +x update.sh && ./update.sh
|
||||
```
|
||||
|
||||
## Documentation
|
||||
For more information, please refer to the [documentation](https://docs.phyrepanel.com/introduction/getting-started.html).
|
||||
|
||||
## Build Status
|
||||
|
||||
### Master branch
|
||||
[](https://drone.phyrecloud.com/PhyreApps/PhyrePanel)
|
||||
[](https://codecov.io/gh/PhyreApps/PhyrePanel)
|
||||
|
||||
All development is done on the `dev` branch. The `master` branch is used for stable releases.
|
||||
|
||||
Please note that the `dev` branch is not guaranteed to be stable at all times, and may contain bugs or other issues. Use it at your own risk.
|
||||
|
||||
Please submit all pull requests to the `dev` branch.
|
||||
|
||||
## Server Application Types Supported
|
||||
|
||||
PHYRE PANEL supports a variety of server application types, including:
|
||||
|
@ -49,6 +95,11 @@ We welcome contributions from the community to help improve PHYRE PANEL. If you
|
|||
|
||||
For support and assistance with PHYRE PANEL, please visit our [documentation](https://phyrepanel.com/docs) or reach out to our [support team](mailto:support@phyrepanel.com).
|
||||
|
||||
## Integrations
|
||||
|
||||
- WHMCS Plugin
|
||||
[https://github.com/PhyreApps/PhyrePanelWHMCSPlugin](https://github.com/PhyreApps/PhyrePanelWHMCSPlugin)
|
||||
|
||||
## Features
|
||||
|
||||
- **User-Friendly Interface:** PHYRE PANEL offers a clean and intuitive user interface, making it easy for users to manage their hosting environment.
|
||||
|
|
|
@ -1,116 +1,99 @@
|
|||
# syntax=docker/dockerfile:1
|
||||
# --------------------------------------------------
|
||||
# 1) Base Image
|
||||
# --------------------------------------------------
|
||||
FROM ubuntu:24.04
|
||||
|
||||
FROM ubuntu:22.04
|
||||
LABEL maintainer="PhyreAppsDevelopers"
|
||||
# So apt doesn't prompt us
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Install initial dependencies
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y wget dos2unix ca-certificates \
|
||||
&& apt-get install -y \
|
||||
jq \
|
||||
curl \
|
||||
wget \
|
||||
unzip \
|
||||
zip \
|
||||
tar \
|
||||
mysql-common \
|
||||
mysql-server \
|
||||
mysql-client \
|
||||
lsb-release \
|
||||
gnupg2 \
|
||||
ca-certificates \
|
||||
apt-transport-https \
|
||||
software-properties-common \
|
||||
supervisor \
|
||||
libonig-dev \
|
||||
libsodium23 \
|
||||
libpq5 \
|
||||
libzip-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
zlib1g-dev
|
||||
# --------------------------------------------------
|
||||
# 2) Install base dependencies
|
||||
# --------------------------------------------------
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
wget \
|
||||
curl \
|
||||
netcat \
|
||||
mysql-client \
|
||||
unzip \
|
||||
gnupg2 \
|
||||
lsb-release \
|
||||
apt-transport-https \
|
||||
software-properties-common \
|
||||
libpng-dev \
|
||||
libwebp-dev \
|
||||
libjpeg-turbo8 \
|
||||
libfreetype6 \
|
||||
supervisor && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Start MySQL service
|
||||
RUN service mysql start
|
||||
# --------------------------------------------------
|
||||
# 3) Install Phyre .deb packages
|
||||
# --------------------------------------------------
|
||||
# 3.1 - Add any system libs needed by Phyre (from your script):
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
openssl \
|
||||
libonig-dev \
|
||||
libzip-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libsodium23 \
|
||||
libpq5 \
|
||||
libssl-dev \
|
||||
zlib1g-dev && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Set up environment variables
|
||||
ENV INSTALL_DIR="/phyre/install" \
|
||||
MYSQL_PHYRE_ROOT_USERNAME="phyre" \
|
||||
PHYRE_PHP="/usr/local/phyre/php/bin/php"
|
||||
WORKDIR /phyre/install
|
||||
|
||||
# Create installation directory
|
||||
RUN mkdir -p $INSTALL_DIR
|
||||
# 3.2 - Install Phyre PHP
|
||||
RUN wget -q https://github.com/PhyreApps/PhyrePanelPHP/raw/main/compilators/debian/php/dist/phyre-php-8.2.0-ubuntu-22.04.deb && \
|
||||
dpkg -i phyre-php-8.2.0-ubuntu-22.04.deb || (apt-get install -f -y && dpkg -i phyre-php-8.2.0-ubuntu-22.04.deb) && \
|
||||
rm -f phyre-php-8.2.0-ubuntu-22.04.deb
|
||||
|
||||
# Change directory to installation directory
|
||||
WORKDIR $INSTALL_DIR
|
||||
# 3.3 - Install Phyre NGINX
|
||||
RUN wget -q https://github.com/PhyreApps/PhyrePanelNGINX/raw/main/compilators/debian/nginx/dist/phyre-nginx-1.24.0-ubuntu-22.04.deb && \
|
||||
dpkg -i phyre-nginx-1.24.0-ubuntu-22.04.deb || (apt-get install -f -y && dpkg -i phyre-nginx-1.24.0-ubuntu-22.04.deb) && \
|
||||
rm -f phyre-nginx-1.24.0-ubuntu-22.04.deb && \
|
||||
ln -s /usr/local/phyre/nginx/sbin/phyre-nginx /usr/local/phyre/nginx/sbin/nginx
|
||||
|
||||
# Install PHYRE PHP
|
||||
RUN wget https://github.com/PhyreApps/PhyrePanelPHPDist/raw/main/debian/php/dist/phyre-php-8.2.0.deb \
|
||||
&& dpkg -i phyre-php-8.2.0.deb
|
||||
# --------------------------------------------------
|
||||
# 4) Symlink & SSL setup
|
||||
# --------------------------------------------------
|
||||
RUN ln -s /usr/local/phyre/php/bin/php /usr/bin/phyre-php
|
||||
|
||||
# Install PHYRE NGINX
|
||||
RUN wget https://github.com/PhyreApps/PhyrePanelNginxDist/raw/main/debian/nginx/dist/phyre-nginx-1.24.0.deb \
|
||||
&& dpkg -i phyre-nginx-1.24.0.deb
|
||||
RUN mkdir -p /usr/local/phyre/ssl && \
|
||||
wget -q https://raw.githubusercontent.com/PhyreApps/PhyrePanel/refs/heads/main/web/server/ssl/phyre.crt -O /usr/local/phyre/ssl/phyre.crt && \
|
||||
wget -q https://raw.githubusercontent.com/PhyreApps/PhyrePanel/refs/heads/main/web/server/ssl/phyre.key -O /usr/local/phyre/ssl/phyre.key && \
|
||||
chmod 644 /usr/local/phyre/ssl/phyre.crt && \
|
||||
chmod 600 /usr/local/phyre/ssl/phyre.key
|
||||
|
||||
# Start PHYRE service
|
||||
RUN service phyre start
|
||||
# --------------------------------------------------
|
||||
# 5) Download Phyre Web Panel
|
||||
# --------------------------------------------------
|
||||
RUN wget -q https://github.com/PhyreApps/PhyrePanelWebCompiledVersions/raw/main/phyre-web-panel.zip && \
|
||||
unzip -qq -o phyre-web-panel.zip -d /usr/local/phyre/web && \
|
||||
rm -rf phyre-web-panel.zip
|
||||
|
||||
# Create symbolic link for PHYRE PHP
|
||||
RUN ln -s $PHYRE_PHP /usr/bin/phyre-php
|
||||
|
||||
# Set permissions
|
||||
RUN chmod 711 /home \
|
||||
&& chmod -R 750 /usr/local/phyre
|
||||
|
||||
# Change directory to web directory
|
||||
# --------------------------------------------------
|
||||
# 6) Add a custom entrypoint script
|
||||
# that will configure Phyre and run Nginx in foreground
|
||||
# --------------------------------------------------
|
||||
WORKDIR /usr/local/phyre/web
|
||||
|
||||
# Create MySQL user
|
||||
RUN mysql -uroot -proot -e "CREATE USER '$MYSQL_PHYRE_ROOT_USERNAME'@'%' IDENTIFIED BY '$MYSQL_PHYRE_ROOT_PASSWORD'; \
|
||||
GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_PHYRE_ROOT_USERNAME'@'%' WITH GRANT OPTION; \
|
||||
FLUSH PRIVILEGES;"
|
||||
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
# Create database
|
||||
RUN PANEL_DB_PASSWORD="$(tr -dc a-za-z0-9 </dev/urandom | head -c 32; echo)" \
|
||||
&& PANEL_DB_NAME="phyre$(tr -dc a-za-z0-9 </dev/urandom | head -c 13; echo)" \
|
||||
&& PANEL_DB_USER="phyre$(tr -dc a-za-z0-9 </dev/urandom | head -c 13; echo)" \
|
||||
&& mysql -uroot -proot -e "CREATE DATABASE $PANEL_DB_NAME; \
|
||||
CREATE USER '$PANEL_DB_USER'@'localhost' IDENTIFIED BY '$PANEL_DB_PASSWORD'; \
|
||||
GRANT ALL PRIVILEGES ON $PANEL_DB_NAME.* TO '$PANEL_DB_USER'@'localhost'; \
|
||||
FLUSH PRIVILEGES;"
|
||||
# Supervisord config (optional if you want to manage multiple processes)
|
||||
# (But here we can simply run Phyre Nginx in the foreground)
|
||||
#COPY supervisord.conf /etc/supervisor/conf.d/phyre-supervisor.conf
|
||||
|
||||
# Secure MySQL installation
|
||||
RUN mysql_secure_installation --use-default
|
||||
# Expose HTTP (80) and HTTPS (8443)
|
||||
EXPOSE 80 8443
|
||||
|
||||
# Change MySQL root password
|
||||
RUN MYSQL_ROOT_PASSWORD="$(tr -dc a-za-z0-9 </dev/urandom | head -c 32; echo)" \
|
||||
&& mysql -uroot -proot -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '$MYSQL_ROOT_PASSWORD'; \
|
||||
FLUSH PRIVILEGES;"
|
||||
|
||||
# Save MySQL root password
|
||||
RUN echo "$MYSQL_ROOT_PASSWORD" > /root/.phyre_mysql_root_password
|
||||
|
||||
# Configure the application
|
||||
RUN cp .env.example .env \
|
||||
&& sed -i "s/^APP_URL=.*/APP_URL=http://127.0.0.1:8443/" .env \
|
||||
&& sed -i "s/^APP_NAME=.*/APP_NAME=PHYRE_PANEL/" .env \
|
||||
&& sed -i "s/^DB_DATABASE=.*/DB_DATABASE=$PANEL_DB_NAME/" .env \
|
||||
&& sed -i "s/^DB_USERNAME=.*/DB_USERNAME=$PANEL_DB_USER/" .env \
|
||||
&& sed -i "s/^DB_PASSWORD=.*/DB_PASSWORD=$PANEL_DB_PASSWORD/" .env \
|
||||
&& sed -i "s/^DB_CONNECTION=.*/DB_CONNECTION=mysql/" .env \
|
||||
&& sed -i "s/^MYSQl_ROOT_USERNAME=.*/MYSQl_ROOT_USERNAME=$MYSQL_ROOT_USERNAME/" .env \
|
||||
&& sed -i "s/^MYSQL_ROOT_PASSWORD=.*/MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD/" .env
|
||||
|
||||
# Generate application key and migrate database
|
||||
RUN phyre-php artisan key:generate \
|
||||
&& phyre-php artisan migrate \
|
||||
&& phyre-php artisan db:seed
|
||||
|
||||
# Set permissions for storage and cache directories
|
||||
RUN chmod -R o+w /usr/local/phyre/web/storage/ \
|
||||
&& chmod -R o+w /usr/local/phyre/web/bootstrap/cache/
|
||||
|
||||
# Get current IP address
|
||||
RUN CURRENT_IP=$(curl -s ipinfo.io/ip) \
|
||||
&& echo "PhyrePanel downloaded successfully." \
|
||||
&& echo "Please visit http://$CURRENT_IP:8443 to continue installation of the panel."
|
||||
# --------------------------------------------------
|
||||
# 7) Set up final Docker config
|
||||
# --------------------------------------------------
|
||||
# We'll run our entrypoint which configures the panel, then runs Nginx
|
||||
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
|
||||
CMD ["phyre-php", "--version"]
|
||||
|
|
|
@ -7,16 +7,12 @@
|
|||
# You can add other services your application may depend on here, such as a
|
||||
# database or a cache. For examples, see the Awesome Compose repository:
|
||||
# https://github.com/docker/awesome-compose
|
||||
name: phyre
|
||||
services:
|
||||
app:
|
||||
panel:
|
||||
platform: linux/amd64
|
||||
container_name: phyrepanel
|
||||
ports:
|
||||
- 8443:8443
|
||||
build:
|
||||
context: .
|
||||
# If your application exposes a port, uncomment the following lines and change
|
||||
# the port numbers as needed. The first number is the host port and the second
|
||||
# is the port inside the container.
|
||||
ports:
|
||||
- 8080:8080
|
||||
- 8443:8443
|
||||
- 3306:3306
|
||||
target: production
|
||||
|
|
46
docker/docker-compose.yml
Normal file
46
docker/docker-compose.yml
Normal file
|
@ -0,0 +1,46 @@
|
|||
version: '3.8'
|
||||
|
||||
services:
|
||||
db:
|
||||
image: mysql:8.0
|
||||
container_name: phyre-db
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: exampleRootPass
|
||||
MYSQL_DATABASE: phyrepanel
|
||||
MYSQL_USER: phyre
|
||||
MYSQL_PASSWORD: examplePhyrePass
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
ports:
|
||||
- "3306:3306"
|
||||
networks:
|
||||
- phyre_net
|
||||
|
||||
phyre-app:
|
||||
build: .
|
||||
container_name: phyre-app
|
||||
depends_on:
|
||||
- db
|
||||
ports:
|
||||
- "8443:8443"
|
||||
- "8080:80"
|
||||
environment:
|
||||
# These environment variables are used by our entrypoint
|
||||
DB_HOST: db
|
||||
DB_PORT: 3306
|
||||
DB_DATABASE: phyrepanel
|
||||
DB_USERNAME: phyre
|
||||
DB_PASSWORD: examplePhyrePass
|
||||
# Additional app settings
|
||||
APP_ENV: local
|
||||
APP_URL: "https://localhost:8443"
|
||||
APP_NAME: PhyrePanel
|
||||
networks:
|
||||
- phyre_net
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
|
||||
networks:
|
||||
phyre_net:
|
||||
driver: bridge
|
|
@ -1,147 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
|
||||
service phyre start
|
||||
|
||||
apt-get update && apt-get install -y wget dos2unix
|
||||
|
||||
#
|
||||
#apt-get install libsodium-dev -y
|
||||
#
|
||||
#wget https://raw.githubusercontent.com/PhyreApps/PhyrePanel/main/installers/install.sh && chmod +x install.sh && ./install.sh
|
||||
#
|
||||
#ls -la
|
||||
|
||||
#curl http://localhost:8443
|
||||
|
||||
#tail -f /dev/null
|
||||
|
||||
#chmod +x /usr/local/phyre/installers/Ubuntu/22.04/install.sh
|
||||
#dos2unix /usr/local/phyre/installers/Ubuntu/22.04/install.sh
|
||||
|
||||
#bash +x /usr/local/phyre/installers/Ubuntu/22.04/install.sh
|
||||
|
||||
|
||||
|
||||
INSTALL_DIR="/phyre/install"
|
||||
|
||||
apt-get update && apt-get install ca-certificates
|
||||
|
||||
mkdir -p $INSTALL_DIR
|
||||
|
||||
cd $INSTALL_DIR
|
||||
|
||||
DEPENDENCIES_LIST=(
|
||||
"jq"
|
||||
"curl"
|
||||
"wget"
|
||||
"unzip"
|
||||
"zip"
|
||||
"tar"
|
||||
"mysql-common"
|
||||
"mysql-server"
|
||||
"mysql-client"
|
||||
"lsb-release"
|
||||
"gnupg2"
|
||||
"ca-certificates"
|
||||
"apt-transport-https"
|
||||
"software-properties-common"
|
||||
"supervisor"
|
||||
"libonig-dev"
|
||||
"libzip-dev"
|
||||
"libcurl4-openssl-dev"
|
||||
"libssl-dev"
|
||||
"zlib1g-dev"
|
||||
)
|
||||
# Check if the dependencies are installed
|
||||
for DEPENDENCY in "${DEPENDENCIES_LIST[@]}"; do
|
||||
apt install -y $DEPENDENCY
|
||||
done
|
||||
|
||||
# Start MySQL
|
||||
service mysql start
|
||||
|
||||
wget https://raw.githubusercontent.com/PhyreApps/PhyrePanel/main/installers/Ubuntu/22.04/greeting.sh
|
||||
mv greeting.sh /etc/profile.d/phyre-greeting.sh
|
||||
|
||||
# Install PHYRE PHP
|
||||
wget https://github.com/PhyreApps/PhyrePanelPHPDist/raw/main/debian/php/dist/phyre-php-8.2.0.deb
|
||||
dpkg -i phyre-php-8.2.0.deb
|
||||
|
||||
# Install PHYRE NGINX
|
||||
wget https://github.com/PhyreApps/PhyrePanelNginxDist/raw/main/debian/nginx/dist/phyre-nginx-1.24.0.deb
|
||||
dpkg -i phyre-nginx-1.24.0.deb
|
||||
|
||||
service phyre start
|
||||
|
||||
PHYRE_PHP=/usr/local/phyre/php/bin/php
|
||||
|
||||
ln -s $PHYRE_PHP /usr/bin/phyre-php
|
||||
|
||||
|
||||
chmod 711 /home
|
||||
chmod -R 750 /usr/local/phyre
|
||||
|
||||
# Go to web directory
|
||||
cd /usr/local/phyre/web
|
||||
|
||||
# Create MySQL user
|
||||
MYSQL_PHYRE_ROOT_USERNAME="phyre"
|
||||
MYSQL_PHYRE_ROOT_PASSWORD="$(tr -dc a-za-z0-9 </dev/urandom | head -c 32; echo)"
|
||||
|
||||
mysql -uroot -proot <<MYSQL_SCRIPT
|
||||
CREATE USER '$MYSQL_PHYRE_ROOT_USERNAME'@'%' IDENTIFIED BY '$MYSQL_PHYRE_ROOT_PASSWORD';
|
||||
GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_PHYRE_ROOT_USERNAME'@'%' WITH GRANT OPTION;
|
||||
FLUSH PRIVILEGES;
|
||||
MYSQL_SCRIPT
|
||||
|
||||
|
||||
# Create database
|
||||
PANEL_DB_PASSWORD="$(tr -dc a-za-z0-9 </dev/urandom | head -c 32; echo)"
|
||||
PANEL_DB_NAME="phyre$(tr -dc a-za-z0-9 </dev/urandom | head -c 13; echo)"
|
||||
PANEL_DB_USER="phyre$(tr -dc a-za-z0-9 </dev/urandom | head -c 13; echo)"
|
||||
|
||||
mysql -uroot -proot <<MYSQL_SCRIPT
|
||||
CREATE DATABASE $PANEL_DB_NAME;
|
||||
CREATE USER '$PANEL_DB_USER'@'localhost' IDENTIFIED BY '$PANEL_DB_PASSWORD';
|
||||
GRANT ALL PRIVILEGES ON $PANEL_DB_NAME.* TO '$PANEL_DB_USER'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
MYSQL_SCRIPT
|
||||
|
||||
mysql_secure_installation --use-default
|
||||
|
||||
# Change mysql root password
|
||||
MYSQL_ROOT_PASSWORD="$(tr -dc a-za-z0-9 </dev/urandom | head -c 32; echo)"
|
||||
mysql -uroot -proot <<MYSQL_SCRIPT
|
||||
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '$MYSQL_ROOT_PASSWORD';
|
||||
FLUSH PRIVILEGES;
|
||||
MYSQL_SCRIPT
|
||||
|
||||
# Save mysql root password
|
||||
echo "$MYSQL_ROOT_PASSWORD" > /root/.phyre_mysql_root_password
|
||||
|
||||
# Configure the application
|
||||
cp .env.example .env
|
||||
|
||||
sed -i "s/^APP_URL=.*/APP_URL=http://127.0.0.1:8443/" .env
|
||||
sed -i "s/^APP_NAME=.*/APP_NAME=PHYRE_PANEL/" .env
|
||||
sed -i "s/^DB_DATABASE=.*/DB_DATABASE=$PANEL_DB_NAME/" .env
|
||||
sed -i "s/^DB_USERNAME=.*/DB_USERNAME=$PANEL_DB_USER/" .env
|
||||
sed -i "s/^DB_PASSWORD=.*/DB_PASSWORD=$PANEL_DB_PASSWORD/" .env
|
||||
sed -i "s/^DB_CONNECTION=.*/DB_CONNECTION=mysql/" .env
|
||||
|
||||
sed -i "s/^MYSQl_ROOT_USERNAME=.*/MYSQl_ROOT_USERNAME=$MYSQL_ROOT_USERNAME/" .env
|
||||
sed -i "s/^MYSQL_ROOT_PASSWORD=.*/MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD/" .env
|
||||
|
||||
phyre-php artisan key:generate
|
||||
phyre-php artisan migrate
|
||||
phyre-php artisan db:seed
|
||||
|
||||
chmod -R o+w /usr/local/phyre/web/storage/
|
||||
chmod -R o+w /usr/local/phyre/web/bootstrap/cache/
|
||||
|
||||
CURRENT_IP=$(curl -s ipinfo.io/ip)
|
||||
|
||||
echo "PhyrePanel downloaded successfully."
|
||||
echo "Please visit http://$CURRENT_IP:8443 to continue installation of the panel."
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
apt-get update && apt-get install -y wget
|
||||
|
||||
#
|
||||
#apt-get install libsodium-dev -y
|
||||
#
|
||||
#wget https://raw.githubusercontent.com/PhyreApps/PhyrePanel/main/installers/install.sh && chmod +x install.sh && ./install.sh
|
||||
#
|
||||
#ls -la
|
||||
|
||||
#curl http://localhost:8443
|
||||
|
||||
#tail -f /dev/null
|
||||
|
||||
cd e2e-tests
|
||||
|
||||
|
||||
apt-get update && \
|
||||
apt-get install --no-install-recommends -y \
|
||||
libgtk2.0-0 \
|
||||
libgtk-3-0 \
|
||||
libnotify-dev \
|
||||
libgconf-2-4 \
|
||||
libgbm-dev \
|
||||
libnss3 \
|
||||
libxss1 \
|
||||
libasound2 \
|
||||
libxtst6 \
|
||||
xauth \
|
||||
xvfb \
|
||||
ttf-wqy-zenhei \
|
||||
ttf-wqy-microhei \
|
||||
xfonts-wqy \
|
||||
fonts-liberation \
|
||||
libgbm1 \
|
||||
libu2f-udev \
|
||||
libvulkan1
|
||||
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
|
||||
add-apt-repository ppa:webupd8team/y-ppa-manager
|
||||
apt-get update
|
||||
apt-get install y-ppa-manager
|
||||
|
||||
# Get Chrome
|
||||
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
|
||||
sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
|
||||
apt-get update
|
||||
apt-get install -y google-chrome-stable
|
||||
|
||||
/usr/bin/google-chrome
|
||||
|
||||
apt install -y curl
|
||||
|
||||
wget https://deb.nodesource.com/setup_20.x
|
||||
mv setup_20.x /tmp/nodesource_setup.sh
|
||||
bash /tmp/nodesource_setup.sh
|
||||
|
||||
apt --fix-broken install -y
|
||||
|
||||
apt install nodejs -y
|
||||
apt install npm -y
|
||||
|
||||
npm install -g npm@latest --force
|
||||
npm --version
|
||||
|
||||
npm install -g yarn@latest --force
|
||||
yarn --version
|
||||
|
||||
npm install
|
||||
npm run test
|
||||
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
const { defineConfig } = require("cypress");
|
||||
|
||||
module.exports = defineConfig({
|
||||
e2e: {
|
||||
setupNodeEvents(on, config) {
|
||||
// implement node event listeners here
|
||||
},
|
||||
},
|
||||
});
|
|
@ -1,7 +0,0 @@
|
|||
describe('Try to access admin panel', () => {
|
||||
|
||||
it('Go to admin panel', () => {
|
||||
cy.visit('http://localhost:8443')
|
||||
})
|
||||
|
||||
})
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"name": "Using fixtures to represent data",
|
||||
"email": "hello@cypress.io",
|
||||
"body": "Fixtures are a great way to mock data for responses to routes"
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
// ***********************************************
|
||||
// This example commands.js shows you how to
|
||||
// create various custom commands and overwrite
|
||||
// existing commands.
|
||||
//
|
||||
// For more comprehensive examples of custom
|
||||
// commands please read more here:
|
||||
// https://on.cypress.io/custom-commands
|
||||
// ***********************************************
|
||||
//
|
||||
//
|
||||
// -- This is a parent command --
|
||||
// Cypress.Commands.add('login', (email, password) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This is a child command --
|
||||
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This is a dual command --
|
||||
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This will overwrite an existing command --
|
||||
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
|
|
@ -1,20 +0,0 @@
|
|||
// ***********************************************************
|
||||
// This example support/e2e.js is processed and
|
||||
// loaded automatically before your test files.
|
||||
//
|
||||
// This is a great place to put global configuration and
|
||||
// behavior that modifies Cypress.
|
||||
//
|
||||
// You can change the location of this file or turn off
|
||||
// automatically serving support files with the
|
||||
// 'supportFile' configuration option.
|
||||
//
|
||||
// You can read more here:
|
||||
// https://on.cypress.io/configuration
|
||||
// ***********************************************************
|
||||
|
||||
// Import commands.js using ES2015 syntax:
|
||||
import './commands'
|
||||
|
||||
// Alternatively you can use CommonJS syntax:
|
||||
// require('./commands')
|
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
"name": "e2e-tests",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "cypress.config.js",
|
||||
"scripts": {
|
||||
"test": "cypress run"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"cypress": "^13.7.3"
|
||||
}
|
||||
}
|
33
docker/entrypoint.sh
Normal file
33
docker/entrypoint.sh
Normal file
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# Wait for MySQL to be ready
|
||||
echo "Waiting for database at $DB_HOST:$DB_PORT..."
|
||||
while ! nc -z $DB_HOST $DB_PORT; do
|
||||
sleep 2
|
||||
done
|
||||
echo "Database is up!"
|
||||
|
||||
# Configure environment variables
|
||||
phyre-php artisan phyre:set-ini-settings DB_DATABASE "$DB_DATABASE"
|
||||
phyre-php artisan phyre:set-ini-settings DB_USERNAME "$DB_USERNAME"
|
||||
phyre-php artisan phyre:set-ini-settings DB_PASSWORD "$DB_PASSWORD"
|
||||
phyre-php artisan phyre:set-ini-settings DB_HOST "$DB_HOST"
|
||||
phyre-php artisan phyre:set-ini-settings DB_CONNECTION "mysql"
|
||||
phyre-php artisan phyre:set-ini-settings APP_ENV "$APP_ENV"
|
||||
phyre-php artisan phyre:set-ini-settings APP_URL "$APP_URL"
|
||||
phyre-php artisan phyre:set-ini-settings APP_NAME "$APP_NAME"
|
||||
|
||||
# Generate keys, migrate, and seed
|
||||
phyre-php artisan phyre:key-generate
|
||||
phyre-php artisan migrate --force
|
||||
phyre-php artisan db:seed --force
|
||||
|
||||
# Start Nginx in foreground
|
||||
echo "Starting Nginx..."
|
||||
exec /usr/sbin/service phyre start && /usr/local/phyre/nginx/sbin/nginx -g "daemon off;"
|
||||
#exec /usr/sbin/service phyre start
|
||||
|
||||
# Start Supervisor to manage all processes
|
||||
#echo "Starting Supervisor to manage processes..."
|
||||
#exec /usr/bin/supervisord -c /etc/supervisor/conf.d/phyre-supervisor.conf
|
3
docker/publish-to-docker.sh
Normal file
3
docker/publish-to-docker.sh
Normal file
|
@ -0,0 +1,3 @@
|
|||
docker compose up --build --force-recreate
|
||||
docker tag phyre-panel:latest bobicloudvision/phyre-panel:latest
|
||||
docker push bobicloudvision/phyre-panel:latest
|
|
@ -1,26 +0,0 @@
|
|||
# stop all containers
|
||||
docker stop $(docker ps -aq)
|
||||
|
||||
# remove all containers
|
||||
docker rm -f $(docker ps -aq)
|
||||
|
||||
#remove all images
|
||||
docker image rm $(docker images -q)
|
||||
|
||||
#remove all unused containers, networks, images, and volumes
|
||||
docker system prune -f
|
||||
|
||||
#remove all unused volumes
|
||||
docker volume prune -f
|
||||
|
||||
#remove all unused networks
|
||||
docker network prune -f
|
||||
|
||||
#remove all builds
|
||||
docker builder prune -f
|
||||
|
||||
#remove all completed builds
|
||||
docker builder prune -a -f
|
||||
|
||||
# install new
|
||||
docker compose up -d
|
25
docker/supervisord.conf
Normal file
25
docker/supervisord.conf
Normal file
|
@ -0,0 +1,25 @@
|
|||
[supervisord]
|
||||
nodaemon=true
|
||||
logfile=/var/log/supervisord.log
|
||||
pidfile=/var/run/supervisord.pid
|
||||
|
||||
[program:php-fpm]
|
||||
command=/bin/bash -c 'if ! ps aux | grep "[p]hp-fpm: master process" > /dev/null; then /usr/local/phyre/php/sbin/phyre-php-fpm --nodaemonize; fi'
|
||||
autostart=true
|
||||
autorestart=true
|
||||
stdout_logfile=/var/log/php-fpm.log
|
||||
stderr_logfile=/var/log/php-fpm.err.log
|
||||
|
||||
[program:phyre]
|
||||
command=/bin/bash -c 'while ! mysqladmin ping -h "$DB_HOST" --silent; do sleep 2; done; if ! ps aux | grep "[s]ervice phyre" > /dev/null; then /usr/sbin/service phyre start; fi'
|
||||
autostart=true
|
||||
autorestart=true
|
||||
stdout_logfile=/var/log/phyre.log
|
||||
stderr_logfile=/var/log/phyre.err.log
|
||||
|
||||
[program:phyre-nginx]
|
||||
command=/bin/bash -c 'if ! ps aux | grep "[p]hyre-nginx" > /dev/null; then /usr/local/phyre/nginx/sbin/phyre-nginx -g "daemon off;"; fi'
|
||||
autostart=true
|
||||
autorestart=true
|
||||
stdout_logfile=/var/log/phyre-nginx.log
|
||||
stderr_logfile=/var/log/phyre-nginx.err.log
|
|
@ -1,3 +0,0 @@
|
|||
docker compose down
|
||||
docker compose up -d
|
||||
docker update --restart unless-stopped $(docker ps -q)
|
103
docs/.vitepress/config.mjs
Normal file
103
docs/.vitepress/config.mjs
Normal file
|
@ -0,0 +1,103 @@
|
|||
import { defineConfig } from 'vitepress'
|
||||
import { version } from '../package.json';
|
||||
|
||||
// https://vitepress.dev/reference/site-config
|
||||
export default defineConfig({
|
||||
|
||||
locales: {
|
||||
root: {
|
||||
label: 'English',
|
||||
lang: 'en'
|
||||
},
|
||||
// bg: {
|
||||
// label: 'Български',
|
||||
// lang: 'bg',
|
||||
// }
|
||||
},
|
||||
// base: 'https://docs.phyrepanel.com/',
|
||||
|
||||
sitemap: {
|
||||
// hostname: 'https://docs.phyrepanel.com/',
|
||||
lastmodDateOnly: false
|
||||
},
|
||||
|
||||
lang: 'en-US',
|
||||
title: "Phyre Panel",
|
||||
description: "Phyre Panel - Documentation",
|
||||
themeConfig: {
|
||||
|
||||
search: {
|
||||
provider: 'local'
|
||||
},
|
||||
|
||||
logo: '/phyre-logo-icon.svg',
|
||||
// https://vitepress.dev/reference/default-theme-config
|
||||
nav: [
|
||||
{ text: 'Home', link: '/' },
|
||||
{ text: 'Install', link: '/install' },
|
||||
{ text: 'Introduction', link: '/introduction/getting-started' },
|
||||
{ text: 'Team', link: '/team' },
|
||||
|
||||
{
|
||||
text: `v${version}`,
|
||||
items: [
|
||||
{
|
||||
text: 'Changelog',
|
||||
link: 'https://github.com/PhyreApps/PhyrePanel/blob/main/CHANGELOG.md',
|
||||
},
|
||||
{
|
||||
text: 'Contributing',
|
||||
link: 'https://github.com/PhyreApps/PhyrePanel/blob/main/CONTRIBUTING.md',
|
||||
},
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
sidebar: [
|
||||
{
|
||||
text: 'Introduction',
|
||||
items: [
|
||||
{ text: 'Getting Started', link: '/introduction/getting-started' },
|
||||
{ text: 'Installation', link: '/install' },
|
||||
{ text: 'Requirements', link: '/introduction/requirements' },
|
||||
{ text: 'Features', link: '/introduction/features' }
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Commands',
|
||||
items: [
|
||||
{ text: 'System Commands', link: '/commands/system-commands' },
|
||||
{ text: 'Installation Commands', link: '/commands/installation-commands' },
|
||||
{ text: 'SSL & Domain Management', link: '/commands/ssl-domain-management' },
|
||||
{ text: 'Backup Management', link: '/commands/backup-management' },
|
||||
{ text: 'User Management', link: '/commands/user-management' },
|
||||
{ text: 'System Configuration', link: '/commands/system-configuration' },
|
||||
{ text: 'System Update', link: '/commands/system-update' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Integrations',
|
||||
items: [
|
||||
{ text: 'WHMCS', link: '/integrations/whmcs' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Contributing',
|
||||
items: [
|
||||
{ text: 'Documentation', link: '/contributing/documentation' },
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
socialLinks: [
|
||||
{ icon: 'github', link: 'https://github.com/PhyreApps/PhyrePanel' }
|
||||
],
|
||||
|
||||
footer: {
|
||||
message: 'Released under the GNU License.',
|
||||
copyright: 'Copyright © 2024-present Phyre Control Panel',
|
||||
},
|
||||
|
||||
|
||||
}
|
||||
})
|
21
docs/.vitepress/dist/404.html
vendored
Normal file
21
docs/.vitepress/dist/404.html
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/.vitepress/dist/assets/app.DdB_Axbr.js
vendored
Normal file
1
docs/.vitepress/dist/assets/app.DdB_Axbr.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{R as p}from"./chunks/theme.BviEWPeY.js";import{U as o,a6 as u,a7 as c,a8 as l,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,af as y,d as P,u as v,k as w,y as C,ag as R,ah as b,ai as E,a3 as S}from"./chunks/framework.B4OOrI6A.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return w(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&R(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=j(),a=_();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function _(){return g(T)}function j(){let e=o,a;return A(t=>{let n=y(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{D as createApp};
|
1
docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.DjI-dfnl.js
vendored
Normal file
1
docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.DjI-dfnl.js
vendored
Normal file
File diff suppressed because one or more lines are too long
7
docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.BARZ34NA.js
vendored
Normal file
7
docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.BARZ34NA.js
vendored
Normal file
File diff suppressed because one or more lines are too long
17
docs/.vitepress/dist/assets/chunks/framework.B4OOrI6A.js
vendored
Normal file
17
docs/.vitepress/dist/assets/chunks/framework.B4OOrI6A.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
docs/.vitepress/dist/assets/chunks/theme.BviEWPeY.js
vendored
Normal file
2
docs/.vitepress/dist/assets/chunks/theme.BviEWPeY.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/.vitepress/dist/assets/commands_backup-management.md.y8-vq9Uc.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_backup-management.md.y8-vq9Uc.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as s,a4 as t}from"./chunks/framework.B4OOrI6A.js";const k=JSON.parse('{"title":"Backup Management","description":"","frontmatter":{},"headers":[],"relativePath":"commands/backup-management.md","filePath":"commands/backup-management.md"}'),l={name:"commands/backup-management.md"},c=t('<h1 id="backup-management" tabindex="-1">Backup Management <a class="header-anchor" href="#backup-management" aria-label="Permalink to "Backup Management""></a></h1><h2 id="available-commands" tabindex="-1">Available Commands <a class="header-anchor" href="#available-commands" aria-label="Permalink to "Available Commands""></a></h2><h3 id="phyre-create-daily-full-backup" tabindex="-1"><code>phyre:create-daily-full-backup</code> <a class="header-anchor" href="#phyre-create-daily-full-backup" aria-label="Permalink to "`phyre:create-daily-full-backup`""></a></h3><ul><li>Description: Creates a full system backup</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:create-daily-full-backup</span></span></code></pre></div><h3 id="phyre-create-daily-full-hosting-subscriptions-backup" tabindex="-1"><code>phyre:create-daily-full-hosting-subscriptions-backup</code> <a class="header-anchor" href="#phyre-create-daily-full-hosting-subscriptions-backup" aria-label="Permalink to "`phyre:create-daily-full-hosting-subscriptions-backup`""></a></h3><ul><li>Description: Creates backups for all hosting subscriptions</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:create-daily-full-hosting-subscriptions-backup</span></span></code></pre></div><h3 id="phyre-run-backup-checks" tabindex="-1"><code>phyre:run-backup-checks</code> <a class="header-anchor" href="#phyre-run-backup-checks" aria-label="Permalink to "`phyre:run-backup-checks`""></a></h3><ul><li>Description: Checks and manages backup status</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:run-backup-checks</span></span></code></pre></div><h3 id="phyre-run-upload-backups-to-remote-servers" tabindex="-1"><code>phyre:run-upload-backups-to-remote-servers</code> <a class="header-anchor" href="#phyre-run-upload-backups-to-remote-servers" aria-label="Permalink to "`phyre:run-upload-backups-to-remote-servers`""></a></h3><ul><li>Description: Uploads backups to configured remote servers</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:run-upload-backups-to-remote-servers</span></span></code></pre></div>',14),r=[c];function p(i,n,o,u,h,d){return s(),e("div",null,r)}const m=a(l,[["render",p]]);export{k as __pageData,m as default};
|
1
docs/.vitepress/dist/assets/commands_backup-management.md.y8-vq9Uc.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_backup-management.md.y8-vq9Uc.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as s,a4 as t}from"./chunks/framework.B4OOrI6A.js";const k=JSON.parse('{"title":"Backup Management","description":"","frontmatter":{},"headers":[],"relativePath":"commands/backup-management.md","filePath":"commands/backup-management.md"}'),l={name:"commands/backup-management.md"},c=t("",14),r=[c];function p(i,n,o,u,h,d){return s(),e("div",null,r)}const m=a(l,[["render",p]]);export{k as __pageData,m as default};
|
11
docs/.vitepress/dist/assets/commands_documentation.md.Dw0gpi_-.js
vendored
Normal file
11
docs/.vitepress/dist/assets/commands_documentation.md.Dw0gpi_-.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/.vitepress/dist/assets/commands_documentation.md.Dw0gpi_-.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_documentation.md.Dw0gpi_-.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as s,a4 as i}from"./chunks/framework.B4OOrI6A.js";const g=JSON.parse('{"title":"Phyre Panel Terminal Commands","description":"","frontmatter":{},"headers":[],"relativePath":"commands/documentation.md","filePath":"commands/documentation.md"}'),l={name:"commands/documentation.md"},n=i("",61),p=[n];function t(o,r,c,h,d,u){return s(),e("div",null,p)}const y=a(l,[["render",t]]);export{g as __pageData,y as default};
|
1
docs/.vitepress/dist/assets/commands_index.md.Diz8HzZM.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_index.md.Diz8HzZM.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as n,a4 as t}from"./chunks/framework.B4OOrI6A.js";const f=JSON.parse('{"title":"Phyre Panel Terminal Commands Index","description":"","frontmatter":{},"headers":[],"relativePath":"commands/index.md","filePath":"commands/index.md"}'),m={name:"commands/index.md"},i=t('<h1 id="phyre-panel-terminal-commands-index" tabindex="-1">Phyre Panel Terminal Commands Index <a class="header-anchor" href="#phyre-panel-terminal-commands-index" aria-label="Permalink to "Phyre Panel Terminal Commands Index""></a></h1><h2 id="available-categories" tabindex="-1">Available Categories <a class="header-anchor" href="#available-categories" aria-label="Permalink to "Available Categories""></a></h2><ul><li><a href="./system-commands.html">System Commands</a></li><li><a href="./installation-commands.html">Installation Commands</a></li><li><a href="./ssl-domain-management.html">SSL & Domain Management</a></li><li><a href="./backup-management.html">Backup Management</a></li><li><a href="./user-management.html">User Management</a></li><li><a href="./system-configuration.html">System Configuration</a></li><li><a href="./system-update.html">System Update</a></li></ul>',3),l=[i];function s(o,r,d,c,h,_){return n(),e("div",null,l)}const u=a(m,[["render",s]]);export{f as __pageData,u as default};
|
1
docs/.vitepress/dist/assets/commands_index.md.Diz8HzZM.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_index.md.Diz8HzZM.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as n,a4 as t}from"./chunks/framework.B4OOrI6A.js";const f=JSON.parse('{"title":"Phyre Panel Terminal Commands Index","description":"","frontmatter":{},"headers":[],"relativePath":"commands/index.md","filePath":"commands/index.md"}'),m={name:"commands/index.md"},i=t("",3),l=[i];function s(o,r,d,c,h,_){return n(),e("div",null,l)}const u=a(m,[["render",s]]);export{f as __pageData,u as default};
|
1
docs/.vitepress/dist/assets/commands_installation-commands.md.DHw08i9U.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_installation-commands.md.DHw08i9U.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as l,a4 as s}from"./chunks/framework.B4OOrI6A.js";const _=JSON.parse('{"title":"Installation Commands","description":"","frontmatter":{},"headers":[],"relativePath":"commands/installation-commands.md","filePath":"commands/installation-commands.md"}'),t={name:"commands/installation-commands.md"},n=s('<h1 id="installation-commands" tabindex="-1">Installation Commands <a class="header-anchor" href="#installation-commands" aria-label="Permalink to "Installation Commands""></a></h1><h2 id="available-commands" tabindex="-1">Available Commands <a class="header-anchor" href="#available-commands" aria-label="Permalink to "Available Commands""></a></h2><h3 id="phyre-install-apache" tabindex="-1"><code>phyre:install-apache</code> <a class="header-anchor" href="#phyre-install-apache" aria-label="Permalink to "`phyre:install-apache`""></a></h3><ul><li>Description: Installs Apache web server with latest PHP version</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:install-apache</span></span></code></pre></div><h3 id="phyre-install-module-module" tabindex="-1"><code>phyre:install-module {module}</code> <a class="header-anchor" href="#phyre-install-module-module" aria-label="Permalink to "`phyre:install-module {module}`""></a></h3><ul><li>Description: Installs a specific Phyre module</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:install-module module_name</span></span></code></pre></div>',8),i=[n];function o(d,c,r,h,p,m){return l(),e("div",null,i)}const b=a(t,[["render",o]]);export{_ as __pageData,b as default};
|
1
docs/.vitepress/dist/assets/commands_installation-commands.md.DHw08i9U.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_installation-commands.md.DHw08i9U.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as l,a4 as s}from"./chunks/framework.B4OOrI6A.js";const _=JSON.parse('{"title":"Installation Commands","description":"","frontmatter":{},"headers":[],"relativePath":"commands/installation-commands.md","filePath":"commands/installation-commands.md"}'),t={name:"commands/installation-commands.md"},n=s("",8),i=[n];function o(d,c,r,h,p,m){return l(),e("div",null,i)}const b=a(t,[["render",o]]);export{_ as __pageData,b as default};
|
1
docs/.vitepress/dist/assets/commands_ssl-domain-management.md.CEajfw44.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_ssl-domain-management.md.CEajfw44.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as s,a4 as t}from"./chunks/framework.B4OOrI6A.js";const g=JSON.parse('{"title":"SSL & Domain Management","description":"","frontmatter":{},"headers":[],"relativePath":"commands/ssl-domain-management.md","filePath":"commands/ssl-domain-management.md"}'),i={name:"commands/ssl-domain-management.md"},n=t('<h1 id="ssl-domain-management" tabindex="-1">SSL & Domain Management <a class="header-anchor" href="#ssl-domain-management" aria-label="Permalink to "SSL & Domain Management""></a></h1><h2 id="available-commands" tabindex="-1">Available Commands <a class="header-anchor" href="#available-commands" aria-label="Permalink to "Available Commands""></a></h2><h3 id="phyre-setup-master-domain-ssl" tabindex="-1"><code>phyre:setup-master-domain-ssl</code> <a class="header-anchor" href="#phyre-setup-master-domain-ssl" aria-label="Permalink to "`phyre:setup-master-domain-ssl`""></a></h3><ul><li>Description: Sets up SSL certificate for the master domain</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:setup-master-domain-ssl</span></span></code></pre></div><h3 id="phyre-apache-ping-websites-with-curl" tabindex="-1"><code>phyre:apache-ping-websites-with-curl</code> <a class="header-anchor" href="#phyre-apache-ping-websites-with-curl" aria-label="Permalink to "`phyre:apache-ping-websites-with-curl`""></a></h3><ul><li>Description: Tests HTTP response for all websites</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:apache-ping-websites-with-curl</span></span></code></pre></div>',8),l=[n];function o(r,p,c,m,h,d){return s(),e("div",null,l)}const b=a(i,[["render",o]]);export{g as __pageData,b as default};
|
1
docs/.vitepress/dist/assets/commands_ssl-domain-management.md.CEajfw44.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_ssl-domain-management.md.CEajfw44.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as s,a4 as t}from"./chunks/framework.B4OOrI6A.js";const g=JSON.parse('{"title":"SSL & Domain Management","description":"","frontmatter":{},"headers":[],"relativePath":"commands/ssl-domain-management.md","filePath":"commands/ssl-domain-management.md"}'),i={name:"commands/ssl-domain-management.md"},n=t("",8),l=[n];function o(r,p,c,m,h,d){return s(),e("div",null,l)}const b=a(i,[["render",o]]);export{g as __pageData,b as default};
|
1
docs/.vitepress/dist/assets/commands_system-commands.md.Dg-cm8pw.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_system-commands.md.Dg-cm8pw.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as s,a4 as r}from"./chunks/framework.B4OOrI6A.js";const y=JSON.parse('{"title":"System Commands","description":"","frontmatter":{},"headers":[],"relativePath":"commands/system-commands.md","filePath":"commands/system-commands.md"}'),i={name:"commands/system-commands.md"},t=r('<h1 id="system-commands" tabindex="-1">System Commands <a class="header-anchor" href="#system-commands" aria-label="Permalink to "System Commands""></a></h1><h2 id="available-commands" tabindex="-1">Available Commands <a class="header-anchor" href="#available-commands" aria-label="Permalink to "Available Commands""></a></h2><h3 id="phyre-health-check" tabindex="-1"><code>phyre:health-check</code> <a class="header-anchor" href="#phyre-health-check" aria-label="Permalink to "`phyre:health-check`""></a></h3><ul><li>Description: Checks system health including supervisor and Apache2 status</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:health-check</span></span></code></pre></div><h3 id="phyre-run-repair" tabindex="-1"><code>phyre:run-repair</code> <a class="header-anchor" href="#phyre-run-repair" aria-label="Permalink to "`phyre:run-repair`""></a></h3><ul><li>Description: Performs system repairs including database users, phpMyAdmin, and Apache configurations</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:run-repair</span></span></code></pre></div><h3 id="phyre-run-domain-repair" tabindex="-1"><code>phyre:run-domain-repair</code> <a class="header-anchor" href="#phyre-run-domain-repair" aria-label="Permalink to "`phyre:run-domain-repair`""></a></h3><ul><li>Description: Repairs domain configurations</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:run-domain-repair</span></span></code></pre></div>',11),n=[t];function o(l,h,p,c,d,m){return s(),e("div",null,n)}const b=a(i,[["render",o]]);export{y as __pageData,b as default};
|
1
docs/.vitepress/dist/assets/commands_system-commands.md.Dg-cm8pw.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_system-commands.md.Dg-cm8pw.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as s,a4 as r}from"./chunks/framework.B4OOrI6A.js";const y=JSON.parse('{"title":"System Commands","description":"","frontmatter":{},"headers":[],"relativePath":"commands/system-commands.md","filePath":"commands/system-commands.md"}'),i={name:"commands/system-commands.md"},t=r("",11),n=[t];function o(l,h,p,c,d,m){return s(),e("div",null,n)}const b=a(i,[["render",o]]);export{y as __pageData,b as default};
|
1
docs/.vitepress/dist/assets/commands_system-configuration.md.BIA3ukg0.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_system-configuration.md.BIA3ukg0.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as t,a4 as i}from"./chunks/framework.B4OOrI6A.js";const y=JSON.parse('{"title":"System Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"commands/system-configuration.md","filePath":"commands/system-configuration.md"}'),s={name:"commands/system-configuration.md"},n=i('<h1 id="system-configuration" tabindex="-1">System Configuration <a class="header-anchor" href="#system-configuration" aria-label="Permalink to "System Configuration""></a></h1><h2 id="available-commands" tabindex="-1">Available Commands <a class="header-anchor" href="#available-commands" aria-label="Permalink to "Available Commands""></a></h2><h3 id="phyre-key-generate" tabindex="-1"><code>phyre:key-generate</code> <a class="header-anchor" href="#phyre-key-generate" aria-label="Permalink to "`phyre:key-generate`""></a></h3><ul><li>Description: Generates application key in phyre-config.ini</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:key-generate</span></span></code></pre></div><h3 id="phyre-set-ini-settings-key-value" tabindex="-1"><code>phyre:set-ini-settings {key} {value}</code> <a class="header-anchor" href="#phyre-set-ini-settings-key-value" aria-label="Permalink to "`phyre:set-ini-settings {key} {value}`""></a></h3><ul><li>Description: Sets configuration values in phyre-config.ini</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:set-ini-settings key value</span></span></code></pre></div>',8),o=[n];function r(l,c,p,h,d,u){return t(),a("div",null,o)}const g=e(s,[["render",r]]);export{y as __pageData,g as default};
|
1
docs/.vitepress/dist/assets/commands_system-configuration.md.BIA3ukg0.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_system-configuration.md.BIA3ukg0.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as t,a4 as i}from"./chunks/framework.B4OOrI6A.js";const y=JSON.parse('{"title":"System Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"commands/system-configuration.md","filePath":"commands/system-configuration.md"}'),s={name:"commands/system-configuration.md"},n=i("",8),o=[n];function r(l,c,p,h,d,u){return t(),a("div",null,o)}const g=e(s,[["render",r]]);export{y as __pageData,g as default};
|
1
docs/.vitepress/dist/assets/commands_system-update.md.gmmoVXy_.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_system-update.md.gmmoVXy_.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as t,a4 as s}from"./chunks/framework.B4OOrI6A.js";const _=JSON.parse('{"title":"System Update","description":"","frontmatter":{},"headers":[],"relativePath":"commands/system-update.md","filePath":"commands/system-update.md"}'),o={name:"commands/system-update.md"},d=s('<h1 id="system-update" tabindex="-1">System Update <a class="header-anchor" href="#system-update" aria-label="Permalink to "System Update""></a></h1><h2 id="available-commands" tabindex="-1">Available Commands <a class="header-anchor" href="#available-commands" aria-label="Permalink to "Available Commands""></a></h2><h3 id="phyre-update" tabindex="-1"><code>phyre:update</code> <a class="header-anchor" href="#phyre-update" aria-label="Permalink to "`phyre:update`""></a></h3><ul><li>Description: Updates Phyre to the latest version</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:update</span></span></code></pre></div>',5),i=[d];function p(r,l,n,c,h,m){return t(),e("div",null,i)}const y=a(o,[["render",p]]);export{_ as __pageData,y as default};
|
1
docs/.vitepress/dist/assets/commands_system-update.md.gmmoVXy_.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_system-update.md.gmmoVXy_.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as t,a4 as s}from"./chunks/framework.B4OOrI6A.js";const _=JSON.parse('{"title":"System Update","description":"","frontmatter":{},"headers":[],"relativePath":"commands/system-update.md","filePath":"commands/system-update.md"}'),o={name:"commands/system-update.md"},d=s("",5),i=[d];function p(r,l,n,c,h,m){return t(),e("div",null,i)}const y=a(o,[["render",p]]);export{_ as __pageData,y as default};
|
1
docs/.vitepress/dist/assets/commands_user-management.md.CEhUoMl7.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_user-management.md.CEhUoMl7.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as s,a4 as t}from"./chunks/framework.B4OOrI6A.js";const _=JSON.parse('{"title":"User Management","description":"","frontmatter":{},"headers":[],"relativePath":"commands/user-management.md","filePath":"commands/user-management.md"}'),n={name:"commands/user-management.md"},r=t('<h1 id="user-management" tabindex="-1">User Management <a class="header-anchor" href="#user-management" aria-label="Permalink to "User Management""></a></h1><h2 id="available-commands" tabindex="-1">Available Commands <a class="header-anchor" href="#available-commands" aria-label="Permalink to "Available Commands""></a></h2><h3 id="phyre-create-admin-account" tabindex="-1"><code>phyre:create-admin-account</code> <a class="header-anchor" href="#phyre-create-admin-account" aria-label="Permalink to "`phyre:create-admin-account`""></a></h3><ul><li>Description: Creates a new admin account</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:create-admin-account</span></span></code></pre></div><h3 id="phyre-reset-admin-account-password" tabindex="-1"><code>phyre:reset-admin-account-password</code> <a class="header-anchor" href="#phyre-reset-admin-account-password" aria-label="Permalink to "`phyre:reset-admin-account-password`""></a></h3><ul><li>Description: Resets password for an existing admin account</li><li>Usage:</li></ul><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>phyre-php /usr/local/phyre/web/artisan phyre:reset-admin-account-password</span></span></code></pre></div>',8),o=[r];function c(i,d,l,p,m,h){return s(),e("div",null,o)}const g=a(n,[["render",c]]);export{_ as __pageData,g as default};
|
1
docs/.vitepress/dist/assets/commands_user-management.md.CEhUoMl7.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/commands_user-management.md.CEhUoMl7.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as e,o as s,a4 as t}from"./chunks/framework.B4OOrI6A.js";const _=JSON.parse('{"title":"User Management","description":"","frontmatter":{},"headers":[],"relativePath":"commands/user-management.md","filePath":"commands/user-management.md"}'),n={name:"commands/user-management.md"},r=t("",8),o=[r];function c(i,d,l,p,m,h){return s(),e("div",null,o)}const g=a(n,[["render",c]]);export{_ as __pageData,g as default};
|
1
docs/.vitepress/dist/assets/contributing_documentation.md.BmOFsXeC.js
vendored
Normal file
1
docs/.vitepress/dist/assets/contributing_documentation.md.BmOFsXeC.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o,a4 as n}from"./chunks/framework.B4OOrI6A.js";const _=JSON.parse('{"title":"Contributing to Phyre Panel documentation","description":"","frontmatter":{},"headers":[],"relativePath":"contributing/documentation.md","filePath":"contributing/documentation.md"}'),a={name:"contributing/documentation.md"},i=n('<h1 id="contributing-to-phyre-panel-documentation" tabindex="-1">Contributing to Phyre Panel documentation <a class="header-anchor" href="#contributing-to-phyre-panel-documentation" aria-label="Permalink to "Contributing to Phyre Panel documentation""></a></h1><p>The documentation is built using <a href="https://vitepress.vuejs.org" target="_blank" rel="noreferrer">VitePress</a>. There are a couple of requirements to contribute to it.</p><h2 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to "Requirements""></a></h2><ul><li>Node.js 16 or higher</li><li>A code editor with Vue and Markdown support. We suggest <a href="https://code.visualstudio.com" target="_blank" rel="noreferrer">Visual Studio Code</a>.</li></ul><h2 id="viewing-your-changes-locally" tabindex="-1">Viewing your changes locally <a class="header-anchor" href="#viewing-your-changes-locally" aria-label="Permalink to "Viewing your changes locally""></a></h2><ol><li>Open the project folder in your terminal.</li><li>If the dependencies are not installed yet, install them by running <code>npm install</code>.</li><li>Run <code>npm run docs:dev</code>.</li><li>Navigate to <code>http://localhost:5173</code> in your browser.</li></ol>',6),r=[i];function l(c,s,u,d,h,m){return o(),t("div",null,r)}const g=e(a,[["render",l]]);export{_ as __pageData,g as default};
|
1
docs/.vitepress/dist/assets/contributing_documentation.md.BmOFsXeC.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/contributing_documentation.md.BmOFsXeC.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o,a4 as n}from"./chunks/framework.B4OOrI6A.js";const _=JSON.parse('{"title":"Contributing to Phyre Panel documentation","description":"","frontmatter":{},"headers":[],"relativePath":"contributing/documentation.md","filePath":"contributing/documentation.md"}'),a={name:"contributing/documentation.md"},i=n("",6),r=[i];function l(c,s,u,d,h,m){return o(),t("div",null,r)}const g=e(a,[["render",l]]);export{_ as __pageData,g as default};
|
1
docs/.vitepress/dist/assets/index.md.DziDWOxR.js
vendored
Normal file
1
docs/.vitepress/dist/assets/index.md.DziDWOxR.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as i}from"./chunks/framework.B4OOrI6A.js";const h=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"PhyrePanel","text":"Open Source Web Control Panel for Linux Servers","tagline":"Don't waste time setting up your server, use Phyre Control Panel to get started quickly.","actions":[{"theme":"brand","text":"Install","link":"/introduction/installation"},{"theme":"alt","text":"Documentation","link":"/introduction/getting-started"},{"theme":"alt","text":"GitHub","link":"https://github.com/PhyreApps/PhyrePanel"}],"image":"/phyre-logo-icon.svg"},"features":[{"icon":"🔒","title":"Secure","details":"PhyrePanel is designed with security in mind, with features like linux user separation."},{"icon":"🎉","title":"Easy to Use","details":"PhyrePanel is designed to be easy to use, with a simple and clean interface."},{"icon":"🌐","title":"Open Source","details":"PhyrePanel is open source, so you can modify it to suit your needs."},{"icon":"🚀","title":"Fast","details":"PhyrePanel is designed to be fast, with a minimalistic design."},{"icon":"🎨","title":"Customizable","details":"PhyrePanel is designed to be customizable, with a plugin system."},{"icon":"📱","title":"Modern","details":"PhyrePanel is designed to be modern, with a clean and simple design."},{"icon":"💰","title":"Free","details":"PhyrePanel is free to use, with no restrictions."},{"icon":"🌍","title":"Community","details":"PhyrePanel has a community of users and developers who can help you."},{"icon":"🛠️","title":"Support","details":"PhyrePanel has a support system to help you with any issues you may have."}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}`),n={name:"index.md"};function s(a,o,r,l,d,c){return i(),t("div")}const m=e(n,[["render",s]]);export{h as __pageData,m as default};
|
1
docs/.vitepress/dist/assets/index.md.DziDWOxR.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/index.md.DziDWOxR.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as i}from"./chunks/framework.B4OOrI6A.js";const h=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"PhyrePanel","text":"Open Source Web Control Panel for Linux Servers","tagline":"Don't waste time setting up your server, use Phyre Control Panel to get started quickly.","actions":[{"theme":"brand","text":"Install","link":"/introduction/installation"},{"theme":"alt","text":"Documentation","link":"/introduction/getting-started"},{"theme":"alt","text":"GitHub","link":"https://github.com/PhyreApps/PhyrePanel"}],"image":"/phyre-logo-icon.svg"},"features":[{"icon":"🔒","title":"Secure","details":"PhyrePanel is designed with security in mind, with features like linux user separation."},{"icon":"🎉","title":"Easy to Use","details":"PhyrePanel is designed to be easy to use, with a simple and clean interface."},{"icon":"🌐","title":"Open Source","details":"PhyrePanel is open source, so you can modify it to suit your needs."},{"icon":"🚀","title":"Fast","details":"PhyrePanel is designed to be fast, with a minimalistic design."},{"icon":"🎨","title":"Customizable","details":"PhyrePanel is designed to be customizable, with a plugin system."},{"icon":"📱","title":"Modern","details":"PhyrePanel is designed to be modern, with a clean and simple design."},{"icon":"💰","title":"Free","details":"PhyrePanel is free to use, with no restrictions."},{"icon":"🌍","title":"Community","details":"PhyrePanel has a community of users and developers who can help you."},{"icon":"🛠️","title":"Support","details":"PhyrePanel has a support system to help you with any issues you may have."}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}`),n={name:"index.md"};function s(a,o,r,l,d,c){return i(),t("div")}const m=e(n,[["render",s]]);export{h as __pageData,m as default};
|
1
docs/.vitepress/dist/assets/install.md.DhDEAvmM.js
vendored
Normal file
1
docs/.vitepress/dist/assets/install.md.DhDEAvmM.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as t,o as e,a4 as s}from"./chunks/framework.B4OOrI6A.js";const _=JSON.parse('{"title":"Installation","description":"","frontmatter":{},"headers":[],"relativePath":"install.md","filePath":"install.md"}'),n={name:"install.md"},i=s('<h1 id="installation" tabindex="-1">Installation <a class="header-anchor" href="#installation" aria-label="Permalink to "Installation""></a></h1><p>To install PhyrePanel, you need to run this commands:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>wget https://raw.githubusercontent.com/PhyreApps/PhyrePanel/main/installers/install.sh && chmod +x install.sh && ./install.sh</span></span></code></pre></div><p>The admin panel can be opened on port: yourserver.com:8443</p><h1 id="updating" tabindex="-1">Updating <a class="header-anchor" href="#updating" aria-label="Permalink to "Updating""></a></h1><p>To update PhyrePanel to the latest version, run this command:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>rm -rf update.sh && wget https://raw.githubusercontent.com/PhyreApps/PhyrePanel/main/web/update.sh && chmod +x update.sh && ./update.sh</span></span></code></pre></div>',7),l=[i];function p(o,r,h,c,d,m){return e(),t("div",null,l)}const g=a(n,[["render",p]]);export{_ as __pageData,g as default};
|
1
docs/.vitepress/dist/assets/install.md.DhDEAvmM.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/install.md.DhDEAvmM.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as t,o as e,a4 as s}from"./chunks/framework.B4OOrI6A.js";const _=JSON.parse('{"title":"Installation","description":"","frontmatter":{},"headers":[],"relativePath":"install.md","filePath":"install.md"}'),n={name:"install.md"},i=s("",7),l=[i];function p(o,r,h,c,d,m){return e(),t("div",null,l)}const g=a(n,[["render",p]]);export{_ as __pageData,g as default};
|
1
docs/.vitepress/dist/assets/integrations_whmcs.md.hGsS8mql.js
vendored
Normal file
1
docs/.vitepress/dist/assets/integrations_whmcs.md.hGsS8mql.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as n,o as r,l as e,a as t}from"./chunks/framework.B4OOrI6A.js";const P=JSON.parse('{"title":"WHMS Integration","description":"","frontmatter":{},"headers":[],"relativePath":"integrations/whmcs.md","filePath":"integrations/whmcs.md"}'),s={name:"integrations/whmcs.md"},o=e("h1",{id:"whms-integration",tabindex:"-1"},[t("WHMS Integration "),e("a",{class:"header-anchor",href:"#whms-integration","aria-label":'Permalink to "WHMS Integration"'},"")],-1),i=e("ul",null,[e("li",null,[t("WHMCS Plugin "),e("a",{href:"https://github.com/PhyreApps/PhyrePanelWHMCSPlugin",target:"_blank",rel:"noreferrer"},"https://github.com/PhyreApps/PhyrePanelWHMCSPlugin")])],-1),c=[o,i];function l(h,d,m,_,p,g){return r(),n("div",null,c)}const f=a(s,[["render",l]]);export{P as __pageData,f as default};
|
1
docs/.vitepress/dist/assets/integrations_whmcs.md.hGsS8mql.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/integrations_whmcs.md.hGsS8mql.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as a,c as n,o as r,l as e,a as t}from"./chunks/framework.B4OOrI6A.js";const P=JSON.parse('{"title":"WHMS Integration","description":"","frontmatter":{},"headers":[],"relativePath":"integrations/whmcs.md","filePath":"integrations/whmcs.md"}'),s={name:"integrations/whmcs.md"},o=e("h1",{id:"whms-integration",tabindex:"-1"},[t("WHMS Integration "),e("a",{class:"header-anchor",href:"#whms-integration","aria-label":'Permalink to "WHMS Integration"'},"")],-1),i=e("ul",null,[e("li",null,[t("WHMCS Plugin "),e("a",{href:"https://github.com/PhyreApps/PhyrePanelWHMCSPlugin",target:"_blank",rel:"noreferrer"},"https://github.com/PhyreApps/PhyrePanelWHMCSPlugin")])],-1),c=[o,i];function l(h,d,m,_,p,g){return r(),n("div",null,c)}const f=a(s,[["render",l]]);export{P as __pageData,f as default};
|
BIN
docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2
vendored
Normal file
Binary file not shown.
BIN
docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2
vendored
Normal file
BIN
docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2
vendored
Normal file
Binary file not shown.
1
docs/.vitepress/dist/assets/introduction_features.md.CwA180ca.js
vendored
Normal file
1
docs/.vitepress/dist/assets/introduction_features.md.CwA180ca.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as i,a4 as t}from"./chunks/framework.B4OOrI6A.js";const g=JSON.parse('{"title":"Features","description":"","frontmatter":{},"headers":[],"relativePath":"introduction/features.md","filePath":"introduction/features.md"}'),r={name:"introduction/features.md"},l=t('<h1 id="features" tabindex="-1">Features <a class="header-anchor" href="#features" aria-label="Permalink to "Features""></a></h1><p>PHYRE PANEL supports a variety of server application types, including:</p><ul><li><strong>Apache + PHP:</strong> Versions 7.4, 8.0, 8.1, 8.3, and 8.4</li><li><strong>Apache + NodeJS:</strong> Version 14.x, 16.x, 20.x</li><li><strong>Apache + Python:</strong> Version 3.10</li><li><strong>Apache + Ruby:</strong> Version 3.4</li><li><strong>Apache + Docker:</strong> (Via Proxy Reverse)</li></ul><h2 id="hosting-management" tabindex="-1">Hosting Management <a class="header-anchor" href="#hosting-management" aria-label="Permalink to "Hosting Management""></a></h2><ul><li>Multi-server clustering support</li><li>Customer account management</li><li>Flexible hosting plans configuration</li><li>Domain management with multiple server types</li><li>Automated SSL certificate management</li><li>Custom PHP, Node.js, Python and Ruby versions per domain</li><li>Git repository integration</li><li>Docker container support</li></ul><h2 id="database-features" tabindex="-1">Database Features <a class="header-anchor" href="#database-features" aria-label="Permalink to "Database Features""></a></h2><ul><li>MySQL/MariaDB support</li><li>PostgreSQL support</li><li>MongoDB support</li><li>SQLite support</li><li>Remote database server management</li><li>Database user management</li></ul><h2 id="backup-security" tabindex="-1">Backup & Security <a class="header-anchor" href="#backup-security" aria-label="Permalink to "Backup & Security""></a></h2><ul><li>Automated backup system</li><li>Multiple backup types (full, selective)</li><li>Custom backup schedules (daily, weekly, monthly)</li><li>Configurable backup retention</li><li>Remote backup server support</li><li>IP whitelisting</li><li>API key management</li></ul><h2 id="system-administration" tabindex="-1">System Administration <a class="header-anchor" href="#system-administration" aria-label="Permalink to "System Administration""></a></h2><ul><li>Cron job management</li><li>Server resource monitoring</li><li>Multi-user administration</li><li>Server clustering capabilities</li><li>Remote server management</li><li>System updates management</li></ul><h2 id="additional-features" tabindex="-1">Additional Features <a class="header-anchor" href="#additional-features" aria-label="Permalink to "Additional Features""></a></h2><ul><li>Custom environment variables support</li><li>Multiple PHP versions per domain</li><li>Node.js package manager support (npm, yarn)</li><li>Development/Production environment switching</li><li>Custom domain configurations</li><li>Server health monitoring</li></ul>',13),n=[l];function o(s,u,m,c,p,d){return i(),a("div",null,n)}const b=e(r,[["render",o]]);export{g as __pageData,b as default};
|
1
docs/.vitepress/dist/assets/introduction_features.md.CwA180ca.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/introduction_features.md.CwA180ca.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as a,o as i,a4 as t}from"./chunks/framework.B4OOrI6A.js";const g=JSON.parse('{"title":"Features","description":"","frontmatter":{},"headers":[],"relativePath":"introduction/features.md","filePath":"introduction/features.md"}'),r={name:"introduction/features.md"},l=t("",13),n=[l];function o(s,u,m,c,p,d){return i(),a("div",null,n)}const b=e(r,[["render",o]]);export{g as __pageData,b as default};
|
1
docs/.vitepress/dist/assets/introduction_getting-started.md.Bm490ErG.js
vendored
Normal file
1
docs/.vitepress/dist/assets/introduction_getting-started.md.Bm490ErG.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a,a4 as r,a5 as o}from"./chunks/framework.B4OOrI6A.js";const g=JSON.parse('{"title":"Welcome to PHYRE PANEL","description":"","frontmatter":{},"headers":[],"relativePath":"introduction/getting-started.md","filePath":"introduction/getting-started.md"}'),n={name:"introduction/getting-started.md"},s=r('<h1 id="welcome-to-phyre-panel" tabindex="-1">Welcome to PHYRE PANEL <a class="header-anchor" href="#welcome-to-phyre-panel" aria-label="Permalink to "Welcome to PHYRE PANEL""></a></h1><p>Powerful Linux multi-platform hosting control panel designed to simplify the process of managing web hosting servers.</p><p><img src="'+o+'" alt="Phyre Panel - Dashboard"></p><h2 id="about-phyre-panel" tabindex="-1">About PHYRE PANEL <a class="header-anchor" href="#about-phyre-panel" aria-label="Permalink to "About PHYRE PANEL""></a></h2><p>PHYRE PANEL is a powerful Linux multi-platform hosting control panel designed to simplify the process of managing web hosting servers. Whether you're a seasoned sysadmin or just starting out, PHYRE PANEL provides an intuitive interface and robust features to streamline your hosting management tasks.</p><h2 id="connect-with-us" tabindex="-1">Connect with Us <a class="header-anchor" href="#connect-with-us" aria-label="Permalink to "Connect with Us""></a></h2><p>Stay up to date with the latest news and updates from PHYRE PANEL:</p><ul><li>Website: <a href="https://phyrepanel.com" target="_blank" rel="noreferrer">https://phyrepanel.com</a></li><li>Discord: <a href="https://discord.gg/yfFWfrfwTZ" target="_blank" rel="noreferrer">https://discord.gg/yfFWfrfwTZ</a></li></ul><p>We hope you enjoy using PHYRE PANEL to simplify your hosting management tasks!</p><h2 id="contributing" tabindex="-1">Contributing <a class="header-anchor" href="#contributing" aria-label="Permalink to "Contributing""></a></h2><p>We welcome contributions from the community to help improve PHYRE PANEL. If you have ideas for new features, bug fixes, or other enhancements, please feel free to <a href="https://github.com/PhyreApps/PhyrePanel/issues" target="_blank" rel="noreferrer">open an issue</a> or submit a pull request.</p><h2 id="support" tabindex="-1">Support <a class="header-anchor" href="#support" aria-label="Permalink to "Support""></a></h2><p>For support and assistance with PHYRE PANEL, please visit our <a href="https://phyrepanel.com/docs" target="_blank" rel="noreferrer">documentation</a> or reach out to our <a href="mailto:support@phyrepanel.com" target="_blank" rel="noreferrer">support team</a>.</p><h2 id="license" tabindex="-1">License <a class="header-anchor" href="#license" aria-label="Permalink to "License""></a></h2><p>PHYRE PANEL is licensed under the <a href="https://www.gnu.org/licenses/gpl-3.0.en.html" target="_blank" rel="noreferrer">GNU General Public License (GPL) version 3</a>. You are free to use, modify, and distribute PHYRE PANEL under the terms of the GPL-3.0 license.</p>',15),i=[s];function l(h,p,u,c,d,m){return a(),t("div",null,i)}const P=e(n,[["render",l]]);export{g as __pageData,P as default};
|
1
docs/.vitepress/dist/assets/introduction_getting-started.md.Bm490ErG.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/introduction_getting-started.md.Bm490ErG.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as e,c as t,o as a,a4 as r,a5 as o}from"./chunks/framework.B4OOrI6A.js";const g=JSON.parse('{"title":"Welcome to PHYRE PANEL","description":"","frontmatter":{},"headers":[],"relativePath":"introduction/getting-started.md","filePath":"introduction/getting-started.md"}'),n={name:"introduction/getting-started.md"},s=r("",15),i=[s];function l(h,p,u,c,d,m){return a(),t("div",null,i)}const P=e(n,[["render",l]]);export{g as __pageData,P as default};
|
1
docs/.vitepress/dist/assets/introduction_requirements.md._Qrr0-32.js
vendored
Normal file
1
docs/.vitepress/dist/assets/introduction_requirements.md._Qrr0-32.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as t,c as e,o,a4 as r}from"./chunks/framework.B4OOrI6A.js";const _=JSON.parse('{"title":"Requirements","description":"","frontmatter":{},"headers":[],"relativePath":"introduction/requirements.md","filePath":"introduction/requirements.md"}'),s={name:"introduction/requirements.md"},n=r('<h1 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to "Requirements""></a></h1><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Phyre must be installed on top of a fresh operating system installation to ensure proper functionality. If on a VPS/KVM, and there is already an admin account, either delete that default admin ID, or use <code>--force</code> to continue with the installation. See custom installation below for further details.</p></div><table><thead><tr><th></th><th>Minimum</th><th>Recommended</th></tr></thead><tbody><tr><td><strong>CPU</strong></td><td>1 core, 64-bit</td><td>4 cores</td></tr><tr><td><strong>Memory</strong></td><td>1 GB (without Docker)</td><td>4 GB</td></tr><tr><td><strong>Disk</strong></td><td>10 GB HDD</td><td>40 GB SSD</td></tr><tr><td><strong>Operating System</strong></td><td>Ubuntu 20.04, 22.04 LTS</td><td>Latest Ubuntu LTS</td></tr></tbody></table><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Phyre only runs on AMD64 / x86_64 and ARM64 / aarch64 processors. It also requires a 64bit operating system! We currently do not support i386 or ARM7-based processors.</p></div><h3 id="supported-operating-systems" tabindex="-1">Supported operating systems <a class="header-anchor" href="#supported-operating-systems" aria-label="Permalink to "Supported operating systems""></a></h3><ul><li>Ubuntu 20.04, 22.04 or 24.04 LTS</li></ul><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Phyre does not support non-LTS Operating systems. If you install it on, for example, Ubuntu 21.10, you will not receive support from us.</p></div>',7),a=[n];function i(d,c,u,l,p,m){return o(),e("div",null,a)}const b=t(s,[["render",i]]);export{_ as __pageData,b as default};
|
1
docs/.vitepress/dist/assets/introduction_requirements.md._Qrr0-32.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/introduction_requirements.md._Qrr0-32.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{_ as t,c as e,o,a4 as r}from"./chunks/framework.B4OOrI6A.js";const _=JSON.parse('{"title":"Requirements","description":"","frontmatter":{},"headers":[],"relativePath":"introduction/requirements.md","filePath":"introduction/requirements.md"}'),s={name:"introduction/requirements.md"},n=r("",7),a=[n];function i(d,c,u,l,p,m){return o(),e("div",null,a)}const b=t(s,[["render",i]]);export{_ as __pageData,b as default};
|
1
docs/.vitepress/dist/assets/style.B7lmjRvX.css
vendored
Normal file
1
docs/.vitepress/dist/assets/style.B7lmjRvX.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
docs/.vitepress/dist/assets/team.md.BvKyvWCV.js
vendored
Normal file
1
docs/.vitepress/dist/assets/team.md.BvKyvWCV.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{V as s,a as r,b as i}from"./chunks/theme.BviEWPeY.js";import{_ as n,c as m,l,I as a,w as e,m as t,o as c,a as o}from"./chunks/framework.B4OOrI6A.js";const h=[{avatar:"https://avatars.githubusercontent.com/u/50577633?v=4",name:"Bozhidar Slaveykov 🇧🇬",title:"Developer",org:"CloudVision",orgLink:"https://phyrepanel.com",links:[{icon:"github",link:"https://github.com/bobicloudvision"},{icon:"linkedin",link:"https://www.linkedin.com/in/bozhidar.slaveykov"}]},{avatar:"https://avatars.githubusercontent.com/u/5698247?v=4",name:"Peter Ivanov 🇧🇬",title:"Developer",org:"Microweber",orgLink:"https://microweber.com.com",links:[{icon:"github",link:"https://github.com/peter-mw"}]}],p={class:"VPTeamPage"},T=JSON.parse('{"title":"The Team","description":"","frontmatter":{"layout":"page","sidebar":false,"title":"The Team"},"headers":[],"relativePath":"team.md","filePath":"team.md"}'),d={name:"team.md"},u=Object.assign(d,{setup(b){return(v,_)=>(c(),m("div",null,[l("div",p,[a(t(s),null,{title:e(()=>[o("The Team")]),lead:e(()=>[o(" The team behind PhyrePanel is a small group of passionate developers who are dedicated to making the best open source web control panel for Linux servers. ")]),_:1}),a(t(i),null,{title:e(()=>[o("Team Members")]),members:e(()=>[a(t(r),{members:t(h)},null,8,["members"])]),_:1})])]))}}),f=n(u,[["__scopeId","data-v-50bea38a"]]);export{T as __pageData,f as default};
|
1
docs/.vitepress/dist/assets/team.md.BvKyvWCV.lean.js
vendored
Normal file
1
docs/.vitepress/dist/assets/team.md.BvKyvWCV.lean.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{V as s,a as r,b as i}from"./chunks/theme.BviEWPeY.js";import{_ as n,c as m,l,I as a,w as e,m as t,o as c,a as o}from"./chunks/framework.B4OOrI6A.js";const h=[{avatar:"https://avatars.githubusercontent.com/u/50577633?v=4",name:"Bozhidar Slaveykov 🇧🇬",title:"Developer",org:"CloudVision",orgLink:"https://phyrepanel.com",links:[{icon:"github",link:"https://github.com/bobicloudvision"},{icon:"linkedin",link:"https://www.linkedin.com/in/bozhidar.slaveykov"}]},{avatar:"https://avatars.githubusercontent.com/u/5698247?v=4",name:"Peter Ivanov 🇧🇬",title:"Developer",org:"Microweber",orgLink:"https://microweber.com.com",links:[{icon:"github",link:"https://github.com/peter-mw"}]}],p={class:"VPTeamPage"},T=JSON.parse('{"title":"The Team","description":"","frontmatter":{"layout":"page","sidebar":false,"title":"The Team"},"headers":[],"relativePath":"team.md","filePath":"team.md"}'),d={name:"team.md"},u=Object.assign(d,{setup(b){return(v,_)=>(c(),m("div",null,[l("div",p,[a(t(s),null,{title:e(()=>[o("The Team")]),lead:e(()=>[o(" The team behind PhyrePanel is a small group of passionate developers who are dedicated to making the best open source web control panel for Linux servers. ")]),_:1}),a(t(i),null,{title:e(()=>[o("Team Members")]),members:e(()=>[a(t(r),{members:t(h)},null,8,["members"])]),_:1})])]))}}),f=n(u,[["__scopeId","data-v-50bea38a"]]);export{T as __pageData,f as default};
|
24
docs/.vitepress/dist/commands/backup-management.html
vendored
Normal file
24
docs/.vitepress/dist/commands/backup-management.html
vendored
Normal file
File diff suppressed because one or more lines are too long
34
docs/.vitepress/dist/commands/documentation.html
vendored
Normal file
34
docs/.vitepress/dist/commands/documentation.html
vendored
Normal file
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/commands/index.html
vendored
Normal file
24
docs/.vitepress/dist/commands/index.html
vendored
Normal file
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/commands/installation-commands.html
vendored
Normal file
24
docs/.vitepress/dist/commands/installation-commands.html
vendored
Normal file
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/commands/ssl-domain-management.html
vendored
Normal file
24
docs/.vitepress/dist/commands/ssl-domain-management.html
vendored
Normal file
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/commands/system-commands.html
vendored
Normal file
24
docs/.vitepress/dist/commands/system-commands.html
vendored
Normal file
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/commands/system-configuration.html
vendored
Normal file
24
docs/.vitepress/dist/commands/system-configuration.html
vendored
Normal file
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/commands/system-update.html
vendored
Normal file
24
docs/.vitepress/dist/commands/system-update.html
vendored
Normal file
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/commands/user-management.html
vendored
Normal file
24
docs/.vitepress/dist/commands/user-management.html
vendored
Normal file
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/contributing/documentation.html
vendored
Normal file
24
docs/.vitepress/dist/contributing/documentation.html
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
docs/.vitepress/dist/dashboard.png
vendored
Normal file
BIN
docs/.vitepress/dist/dashboard.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 305 KiB |
1
docs/.vitepress/dist/hashmap.json
vendored
Normal file
1
docs/.vitepress/dist/hashmap.json
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"integrations_whmcs.md":"hGsS8mql","contributing_documentation.md":"BmOFsXeC","commands_ssl-domain-management.md":"CEajfw44","commands_documentation.md":"Dw0gpi_-","commands_index.md":"Diz8HzZM","commands_system-configuration.md":"BIA3ukg0","index.md":"DziDWOxR","install.md":"DhDEAvmM","team.md":"BvKyvWCV","commands_system-update.md":"gmmoVXy_","introduction_requirements.md":"_Qrr0-32","commands_backup-management.md":"y8-vq9Uc","introduction_getting-started.md":"Bm490ErG","commands_installation-commands.md":"DHw08i9U","introduction_features.md":"CwA180ca","commands_user-management.md":"CEhUoMl7","commands_system-commands.md":"Dg-cm8pw"}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue