Secure
PhyrePanel is designed with security in mind, with features like linux user separation.
diff --git a/.gitignore b/.gitignore index 2343cf9..2be7dd1 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ web/phyre-config.ini # vitepress build output -**/.vitepress/dist/ **/.vitepress/cache/ /docs/node_modules/ diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs index 18f55dd..e551ef5 100644 --- a/docs/.vitepress/config.mjs +++ b/docs/.vitepress/config.mjs @@ -14,10 +14,10 @@ export default defineConfig({ // lang: 'bg', // } }, - base: 'https://phyreapps.github.io/PhyrePanel/', - + base: 'https://docs.phyrepanel.com/', + sitemap: { - hostname: 'https://phyreapps.github.io/PhyrePanel/', + hostname: 'https://docs.phyrepanel.com/', lastmodDateOnly: false }, diff --git a/docs/.vitepress/dist/404.html b/docs/.vitepress/dist/404.html new file mode 100644 index 0000000..4c67556 --- /dev/null +++ b/docs/.vitepress/dist/404.html @@ -0,0 +1,21 @@ + + +
+ + +404
But if you don't change your direction, and if you keep looking, you may end up where you are heading.
=0)c=r.activeElement;else{var f=i.tabbableGroups[0],p=f&&f.firstTabbableNode;c=p||h("fallbackFocus")}if(!c)throw new Error("Your focus-trap needs to have at least one focusable element");return c},v=function(){if(i.containerGroups=i.containers.map(function(c){var f=br(c,a.tabbableOptions),p=wr(c,a.tabbableOptions),C=f.length>0?f[0]:void 0,I=f.length>0?f[f.length-1]:void 0,M=p.find(function(m){return le(m)}),P=p.slice().reverse().find(function(m){return le(m)}),z=!!f.find(function(m){return se(m)>0});return{container:c,tabbableNodes:f,focusableNodes:p,posTabIndexesFound:z,firstTabbableNode:C,lastTabbableNode:I,firstDomTabbableNode:M,lastDomTabbableNode:P,nextTabbableNode:function(x){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,K=f.indexOf(x);return K<0?$?p.slice(p.indexOf(x)+1).find(function(q){return le(q)}):p.slice(0,p.indexOf(x)).reverse().find(function(q){return le(q)}):f[K+($?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(c){return c.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!h("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(c){return c.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},y=function w(c){var f=c.activeElement;if(f)return f.shadowRoot&&f.shadowRoot.activeElement!==null?w(f.shadowRoot):f},b=function w(c){if(c!==!1&&c!==y(document)){if(!c||!c.focus){w(d());return}c.focus({preventScroll:!!a.preventScroll}),i.mostRecentlyFocusedNode=c,Ar(c)&&c.select()}},E=function(c){var f=h("setReturnFocus",c);return f||(f===!1?!1:c)},g=function(c){var f=c.target,p=c.event,C=c.isBackward,I=C===void 0?!1:C;f=f||Ae(p),v();var M=null;if(i.tabbableGroups.length>0){var P=l(f,p),z=P>=0?i.containerGroups[P]:void 0;if(P<0)I?M=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:M=i.tabbableGroups[0].firstTabbableNode;else if(I){var m=ft(i.tabbableGroups,function(B){var U=B.firstTabbableNode;return f===U});if(m<0&&(z.container===f||_e(f,a.tabbableOptions)&&!le(f,a.tabbableOptions)&&!z.nextTabbableNode(f,!1))&&(m=P),m>=0){var x=m===0?i.tabbableGroups.length-1:m-1,$=i.tabbableGroups[x];M=se(f)>=0?$.lastTabbableNode:$.lastDomTabbableNode}else ge(p)||(M=z.nextTabbableNode(f,!1))}else{var K=ft(i.tabbableGroups,function(B){var U=B.lastTabbableNode;return f===U});if(K<0&&(z.container===f||_e(f,a.tabbableOptions)&&!le(f,a.tabbableOptions)&&!z.nextTabbableNode(f))&&(K=P),K>=0){var q=K===i.tabbableGroups.length-1?0:K+1,Q=i.tabbableGroups[q];M=se(f)>=0?Q.firstTabbableNode:Q.firstDomTabbableNode}else ge(p)||(M=z.nextTabbableNode(f))}}else M=h("fallbackFocus");return M},S=function(c){var f=Ae(c);if(!(l(f,c)>=0)){if(ye(a.clickOutsideDeactivates,c)){s.deactivate({returnFocus:a.returnFocusOnDeactivate});return}ye(a.allowOutsideClick,c)||c.preventDefault()}},T=function(c){var f=Ae(c),p=l(f,c)>=0;if(p||f instanceof Document)p&&(i.mostRecentlyFocusedNode=f);else{c.stopImmediatePropagation();var C,I=!0;if(i.mostRecentlyFocusedNode)if(se(i.mostRecentlyFocusedNode)>0){var M=l(i.mostRecentlyFocusedNode),P=i.containerGroups[M].tabbableNodes;if(P.length>0){var z=P.findIndex(function(m){return m===i.mostRecentlyFocusedNode});z>=0&&(a.isKeyForward(i.recentNavEvent)?z+1
H)for(;E<=B;)Le(u[E],b,S,!0),E++;else{const W=E,z=E,Q=new Map;for(E=z;E<=H;E++){const be=d[E]=R?Ge(d[E]):Ae(d[E]);be.key!=null&&Q.set(be.key,E)}let te,ae=0;const Te=H-z+1;let pt=!1,zr=0;const St=new Array(Te);for(E=0;E {const{el:S,type:L,transition:x,children:R,shapeFlag:E}=u;if(E&6){tt(u.component.subTree,d,g,_);return}if(E&128){u.suspense.move(d,g,_);return}if(E&64){L.move(u,d,g,ht);return}if(L===ye){r(S,d,g);for(let B=0;B The documentation is built using VitePress. There are a couple of requirements to contribute to it. To install PhyrePanel, you need to run this commands: The admin panel can be opened on port: yourserver.com:8443 PHYRE PANEL supports a variety of server application types, including: Powerful Linux multi-platform hosting control panel designed to simplify the process of managing web hosting servers. 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. Stay up to date with the latest news and updates from PHYRE PANEL: We hope you enjoy using PHYRE PANEL to simplify your hosting management tasks! 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 open an issue or submit a pull request. For support and assistance with PHYRE PANEL, please visit our documentation or reach out to our support team. PHYRE PANEL is licensed under the GNU General Public License (GPL) version 3. You are free to use, modify, and distribute PHYRE PANEL under the terms of the GPL-3.0 license. WARNING 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 WARNING 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. WARNING 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. Open Source Web Control Panel for Linux Servers Don't waste time setting up your server, use Phyre Control Panel to get started quickly. 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. Contributing to Phyre Panel documentation
Requirements
Viewing your changes locally
',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};
diff --git a/docs/.vitepress/dist/assets/contributing_documentation.md.D6vwZvvc.lean.js b/docs/.vitepress/dist/assets/contributing_documentation.md.D6vwZvvc.lean.js
new file mode 100644
index 0000000..6cd8f9b
--- /dev/null
+++ b/docs/.vitepress/dist/assets/contributing_documentation.md.D6vwZvvc.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o,a4 as n}from"./chunks/framework.zZ9LU0kK.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};
diff --git a/docs/.vitepress/dist/assets/index.md.CrWFkusN.js b/docs/.vitepress/dist/assets/index.md.CrWFkusN.js
new file mode 100644
index 0000000..8c7f3c8
--- /dev/null
+++ b/docs/.vitepress/dist/assets/index.md.CrWFkusN.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as i}from"./chunks/framework.zZ9LU0kK.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};
diff --git a/docs/.vitepress/dist/assets/index.md.CrWFkusN.lean.js b/docs/.vitepress/dist/assets/index.md.CrWFkusN.lean.js
new file mode 100644
index 0000000..8c7f3c8
--- /dev/null
+++ b/docs/.vitepress/dist/assets/index.md.CrWFkusN.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as i}from"./chunks/framework.zZ9LU0kK.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};
diff --git a/docs/.vitepress/dist/assets/install.md.C7vJsQIa.js b/docs/.vitepress/dist/assets/install.md.C7vJsQIa.js
new file mode 100644
index 0000000..ccc9efc
--- /dev/null
+++ b/docs/.vitepress/dist/assets/install.md.C7vJsQIa.js
@@ -0,0 +1 @@
+import{_ as a,c as t,o as e,a4 as s}from"./chunks/framework.zZ9LU0kK.js";const u=JSON.parse('{"title":"Installation","description":"","frontmatter":{},"headers":[],"relativePath":"install.md","filePath":"install.md"}'),n={name:"install.md"},l=s('npm install
.npm run docs:dev
.http://localhost:5173
in your browser.Installation
wget https://raw.githubusercontent.com/PhyreApps/PhyrePanel/main/installers/install.sh && chmod +x install.sh && ./install.sh
Features
',3),n=[s];function i(c,l,_,u,p,d){return a(),t("div",null,n)}const g=e(o,[["render",i]]);export{f as __pageData,g as default};
diff --git a/docs/.vitepress/dist/assets/introduction_features.md.qhTXCljs.lean.js b/docs/.vitepress/dist/assets/introduction_features.md.qhTXCljs.lean.js
new file mode 100644
index 0000000..a3b3e18
--- /dev/null
+++ b/docs/.vitepress/dist/assets/introduction_features.md.qhTXCljs.lean.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as a,a4 as r}from"./chunks/framework.zZ9LU0kK.js";const f=JSON.parse('{"title":"Features","description":"","frontmatter":{},"headers":[],"relativePath":"introduction/features.md","filePath":"introduction/features.md"}'),o={name:"introduction/features.md"},s=r("",3),n=[s];function i(c,l,_,u,p,d){return a(),t("div",null,n)}const g=e(o,[["render",i]]);export{f as __pageData,g as default};
diff --git a/docs/.vitepress/dist/assets/introduction_getting-started.md.DGDKcBMu.js b/docs/.vitepress/dist/assets/introduction_getting-started.md.DGDKcBMu.js
new file mode 100644
index 0000000..9e47548
--- /dev/null
+++ b/docs/.vitepress/dist/assets/introduction_getting-started.md.DGDKcBMu.js
@@ -0,0 +1 @@
+import{_ as e,c as t,o as a,a4 as r,a5 as o}from"./chunks/framework.zZ9LU0kK.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('Welcome to PHYRE PANEL
About PHYRE PANEL
Connect with Us
Contributing
Support
License
Requirements
--force
to continue with the installation. See custom installation below for further details.Minimum Recommended CPU 1 core, 64-bit 4 cores Memory 1 GB (without Docker) 4 GB Disk 10 GB HDD 40 GB SSD Operating System Ubuntu 20.04, 22.04 LTS Latest Ubuntu LTS Supported operating systems
PhyrePanel
The Team
Team Members