mirror of
https://github.com/PhyreApps/PhyrePanel.git
synced 2025-04-21 11:53:39 +00:00
Compare commits
No commits in common. "main" and "0.0.9" have entirely different histories.
548 changed files with 4843 additions and 33234 deletions
|
@ -48,7 +48,7 @@ steps:
|
|||
- 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
|
||||
- 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/
|
||||
|
|
6
.github/workflows/app-unit-test.yml
vendored
6
.github/workflows/app-unit-test.yml
vendored
|
@ -8,7 +8,7 @@ jobs:
|
|||
phyre-panel-unit-test:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-24.04, ubuntu-22.04]
|
||||
os: [ubuntu-22.04, ubuntu-20.04]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
|
@ -28,7 +28,7 @@ jobs:
|
|||
sudo chmod +x /phyre-panel/install_base.sh
|
||||
sudo /phyre-panel/install_base.sh
|
||||
|
||||
sudo cp installers/ubuntu-20.04/install-partial/install_web.sh /phyre-panel/install_web.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 Unit Test
|
||||
|
@ -41,7 +41,7 @@ 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 --dont-ask
|
||||
sudo /phyre-panel/install_web.sh
|
||||
sudo phyre-php artisan test --filter HostingSubscriptionsTest
|
||||
|
||||
compile-phyre-web-panel:
|
||||
|
|
65
.github/workflows/deploy-docs.yml
vendored
65
.github/workflows/deploy-docs.yml
vendored
|
@ -1,65 +0,0 @@
|
|||
# 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
|
22
.gitignore
vendored
22
.gitignore
vendored
|
@ -1,24 +1,4 @@
|
|||
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
8
.idea/.gitignore
generated
vendored
|
@ -1,8 +0,0 @@
|
|||
# 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
15
.idea/codeception.xml
generated
|
@ -1,15 +0,0 @@
|
|||
<?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
13
.idea/phpspec.xml
generated
|
@ -1,13 +0,0 @@
|
|||
<?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>
|
14
README.md
14
README.md
|
@ -19,12 +19,6 @@
|
|||
<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
|
||||
|
||||
|
@ -37,14 +31,6 @@ 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
|
||||
|
||||
|
|
|
@ -1,99 +1,13 @@
|
|||
# --------------------------------------------------
|
||||
# 1) Base Image
|
||||
# --------------------------------------------------
|
||||
FROM ubuntu:24.04
|
||||
# syntax=docker/dockerfile:1
|
||||
|
||||
# So apt doesn't prompt us
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
FROM ubuntu:22.04 AS production
|
||||
|
||||
# --------------------------------------------------
|
||||
# 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/*
|
||||
RUN apt-get update && apt-get install -yq wget
|
||||
RUN ls -la
|
||||
RUN wget https://raw.githubusercontent.com/PhyreApps/PhyrePanel/main/installers/install.sh -O phyre-install.sh
|
||||
RUN chmod +x phyre-install.sh
|
||||
RUN ./phyre-install.sh
|
||||
|
||||
# --------------------------------------------------
|
||||
# 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/*
|
||||
COPY entrypoint.sh /usr/local/phyre/entrypoint.sh
|
||||
|
||||
WORKDIR /phyre/install
|
||||
|
||||
# 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
|
||||
|
||||
# 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
|
||||
|
||||
# --------------------------------------------------
|
||||
# 4) Symlink & SSL setup
|
||||
# --------------------------------------------------
|
||||
RUN ln -s /usr/local/phyre/php/bin/php /usr/bin/phyre-php
|
||||
|
||||
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
|
||||
|
||||
# --------------------------------------------------
|
||||
# 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
|
||||
|
||||
# --------------------------------------------------
|
||||
# 6) Add a custom entrypoint script
|
||||
# that will configure Phyre and run Nginx in foreground
|
||||
# --------------------------------------------------
|
||||
WORKDIR /usr/local/phyre/web
|
||||
|
||||
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
# 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
|
||||
|
||||
# Expose HTTP (80) and HTTPS (8443)
|
||||
EXPOSE 80 8443
|
||||
|
||||
# --------------------------------------------------
|
||||
# 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"]
|
||||
ENTRYPOINT ["sh","/usr/local/phyre/entrypoint.sh"]
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
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,33 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
service mysql start
|
||||
service phyre start
|
||||
|
||||
# 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
|
||||
tail -f /dev/null
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
[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,103 +0,0 @@
|
|||
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
21
docs/.vitepress/dist/404.html
vendored
File diff suppressed because one or more lines are too long
1
docs/.vitepress/dist/assets/app.DdB_Axbr.js
vendored
1
docs/.vitepress/dist/assets/app.DdB_Axbr.js
vendored
|
@ -1 +0,0 @@
|
|||
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};
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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};
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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};
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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};
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
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 +0,0 @@
|
|||
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};
|
File diff suppressed because one or more lines are too long
34
docs/.vitepress/dist/commands/documentation.html
vendored
34
docs/.vitepress/dist/commands/documentation.html
vendored
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/commands/index.html
vendored
24
docs/.vitepress/dist/commands/index.html
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/commands/system-update.html
vendored
24
docs/.vitepress/dist/commands/system-update.html
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
BIN
docs/.vitepress/dist/dashboard.png
vendored
BIN
docs/.vitepress/dist/dashboard.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 305 KiB |
1
docs/.vitepress/dist/hashmap.json
vendored
1
docs/.vitepress/dist/hashmap.json
vendored
|
@ -1 +0,0 @@
|
|||
{"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"}
|
24
docs/.vitepress/dist/index.html
vendored
24
docs/.vitepress/dist/index.html
vendored
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/install.html
vendored
24
docs/.vitepress/dist/install.html
vendored
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/integrations/whmcs.html
vendored
24
docs/.vitepress/dist/integrations/whmcs.html
vendored
File diff suppressed because one or more lines are too long
24
docs/.vitepress/dist/introduction/features.html
vendored
24
docs/.vitepress/dist/introduction/features.html
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
14
docs/.vitepress/dist/phyre-logo-icon.svg
vendored
14
docs/.vitepress/dist/phyre-logo-icon.svg
vendored
|
@ -1,14 +0,0 @@
|
|||
<svg width="1576" viewBox="0 0 76 95" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M74.1873 67.6092C70.9043 78.4409 56.8095 89.353 50.1726 93.4108C59.7785 85.5603 56.7082 72.9091 53.9724 67.6092C55.9179 67.6092 58.4308 70.756 59.4441 72.3294C70.5395 68.8513 59.5961 36.8035 59.4441 37.7972C59.2921 38.7909 50.4766 52.9516 52.4525 47.2377C54.4283 41.5237 39.2292 20.9038 34.5174 20.9038C30.748 20.9038 23.9287 32.1661 20.9902 37.7972L25.0939 44.8776C15.0017 43.5857 8.83083 30.1786 7.00693 23.6366C14.0492 15.3969 29.4105 -0.858919 34.5174 0.0354392C40.9011 1.15339 61.42 25.8725 61.42 25.624C61.42 25.3756 67.3476 20.9038 67.3476 20.9038C67.3476 20.9038 72.262 33.4082 74.1873 38.791C75.5552 43.8838 77.4703 56.7775 74.1873 67.6092Z" fill="url(#paint0_linear_1_3)"/>
|
||||
<path d="M26.0626 93.5872C33.7117 96.225 45.3382 94.5744 50.1726 93.4108C41.9973 94.3748 35.5851 88.5613 33.4236 85.5427C32.7152 86.3169 33.675 88.4628 34.2435 89.439C28.131 92.5879 13.0214 76.5632 13.6688 76.8646C14.3162 77.166 25.9634 78.8142 21.8395 77.5199C17.7155 76.2255 10.9645 62.6686 12.6802 60.7936C14.0528 59.2935 23.2461 60.6808 27.6713 61.5619L30.3955 65.7732C33.3007 61.2866 27.5597 53.9489 24.326 50.8409C16.8523 50.643 1.5733 50.8367 0.246561 53.1947C-1.41187 56.1421 5.8444 73.3087 5.69638 73.2182C5.54836 73.1278 0.725538 73.8583 0.725538 73.8583C0.725538 73.8583 6.38634 80.3673 8.89238 83.0935C11.4287 85.4924 18.4135 90.9495 26.0626 93.5872Z" fill="url(#paint1_linear_1_3)"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_1_3" x1="14.4057" y1="53.8303" x2="50.4373" y2="101.29" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#F2A231"/>
|
||||
<stop offset="1" stop-color="#F95320"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_1_3" x1="14.4057" y1="53.8303" x2="50.4373" y2="101.29" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#F2A231"/>
|
||||
<stop offset="1" stop-color="#F95320"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.9 KiB |
143
docs/.vitepress/dist/phyre-logo.svg
vendored
143
docs/.vitepress/dist/phyre-logo.svg
vendored
|
@ -1,143 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 808.52 192.65">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: url(#linear-gradient-12);
|
||||
}
|
||||
|
||||
.cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8, .cls-9, .cls-10, .cls-11, .cls-12, .cls-13 {
|
||||
stroke-width: 0px;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
fill: url(#linear-gradient);
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
fill: url(#linear-gradient-6);
|
||||
}
|
||||
|
||||
.cls-4 {
|
||||
fill: url(#linear-gradient-11);
|
||||
}
|
||||
|
||||
.cls-5 {
|
||||
fill: url(#linear-gradient-5);
|
||||
}
|
||||
|
||||
.cls-6 {
|
||||
fill: #f9be22;
|
||||
}
|
||||
|
||||
.cls-7 {
|
||||
fill: url(#linear-gradient-2);
|
||||
}
|
||||
|
||||
.cls-8 {
|
||||
fill: url(#linear-gradient-7);
|
||||
}
|
||||
|
||||
.cls-9 {
|
||||
fill: url(#linear-gradient-3);
|
||||
}
|
||||
|
||||
.cls-10 {
|
||||
fill: url(#linear-gradient-9);
|
||||
}
|
||||
|
||||
.cls-11 {
|
||||
fill: url(#linear-gradient-8);
|
||||
}
|
||||
|
||||
.cls-12 {
|
||||
fill: url(#linear-gradient-10);
|
||||
}
|
||||
|
||||
.cls-13 {
|
||||
fill: url(#linear-gradient-4);
|
||||
}
|
||||
</style>
|
||||
<linearGradient id="linear-gradient" x1="5.89" y1="67.83" x2="786.82" y2="71" gradientUnits="userSpaceOnUse">
|
||||
<stop offset=".25" stop-color="#f8bd20"/>
|
||||
<stop offset=".41" stop-color="#f9c628"/>
|
||||
<stop offset=".69" stop-color="#fbd131"/>
|
||||
<stop offset="1" stop-color="#fcd535"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-2" x1="694.68" y1="13.95" x2="808.52" y2="13.95" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#f8bd20"/>
|
||||
<stop offset=".63" stop-color="#fcd535"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-3" x1="642.49" y1="69.62" x2="785.47" y2="69.62" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#f8bd20" stop-opacity=".9"/>
|
||||
<stop offset=".15" stop-color="rgba(249, 197, 39, .94)" stop-opacity=".94"/>
|
||||
<stop offset=".37" stop-color="rgba(250, 206, 47, .97)" stop-opacity=".97"/>
|
||||
<stop offset=".63" stop-color="rgba(251, 211, 51, .99)" stop-opacity=".99"/>
|
||||
<stop offset="1" stop-color="#fcd535"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-4" x1="647.99" y1="69.56" x2="785.96" y2="69.56" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#f8bd20"/>
|
||||
<stop offset=".63" stop-color="#fcd535"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-5" x1="161.7" y1="69.56" x2="212.2" y2="69.56" gradientUnits="userSpaceOnUse">
|
||||
<stop offset=".45" stop-color="#f8bd20"/>
|
||||
<stop offset=".54" stop-color="#f9c326"/>
|
||||
<stop offset=".78" stop-color="#fbd031"/>
|
||||
<stop offset="1" stop-color="#fcd535"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-6" x1="-14.8" y1="68.54" x2="812.93" y2="71.9" gradientUnits="userSpaceOnUse">
|
||||
<stop offset=".23" stop-color="#f8bd20"/>
|
||||
<stop offset=".23" stop-color="#f8bd20"/>
|
||||
<stop offset=".4" stop-color="#faca2c"/>
|
||||
<stop offset=".6" stop-color="#fbd232"/>
|
||||
<stop offset="1" stop-color="#fcd535"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-7" x1="19.43" y1="68.42" x2="756.99" y2="71.42" xlink:href="#linear-gradient-6"/>
|
||||
<linearGradient id="linear-gradient-8" x1="-12.06" y1="69.99" x2="808.02" y2="73.32" xlink:href="#linear-gradient-6"/>
|
||||
<linearGradient id="linear-gradient-9" x1="0" y1="69.56" x2="54.12" y2="69.56" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#f8bd20"/>
|
||||
<stop offset=".21" stop-color="#f9c628"/>
|
||||
<stop offset=".58" stop-color="#fbd131"/>
|
||||
<stop offset="1" stop-color="#fcd535"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-10" x1="-24.07" y1="41.56" x2="837.97" y2="45.06" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#f8bd20"/>
|
||||
<stop offset=".07" stop-color="#f9c628"/>
|
||||
<stop offset=".2" stop-color="#fbd131"/>
|
||||
<stop offset=".34" stop-color="#fcd535"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-11" x1="485.03" y1="69.56" x2="538.44" y2="69.56" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#f8bd20"/>
|
||||
<stop offset=".21" stop-color="#f9c628"/>
|
||||
<stop offset=".58" stop-color="#fbd131"/>
|
||||
<stop offset="1" stop-color="#fcd535"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-12" x1="521.21" y1="69.56" x2="642.79" y2="69.56" xlink:href="#linear-gradient-11"/>
|
||||
</defs>
|
||||
<g>
|
||||
<path class="cls-6" d="M383.66,189.79l.87-4.15c.31-1.47-.81-2.86-2.32-2.86h-10.04c-1.12,0-2.08.78-2.32,1.87l-1.31,6.12c-.23,1.09-1.2,1.87-2.32,1.87h0c-1.51,0-2.63-1.39-2.32-2.86l4.22-19.87c.23-1.09,1.2-1.88,2.32-1.88h0c1.51,0,2.63,1.39,2.32,2.86l-.88,4.17c-.31,1.47.81,2.86,2.32,2.86h10.04c1.12,0,2.08-.78,2.32-1.87l1.32-6.14c.23-1.09,1.2-1.87,2.32-1.87h0c1.51,0,2.63,1.39,2.32,2.86l-4.22,19.87c-.23,1.09-1.2,1.88-2.32,1.88h0c-1.51,0-2.63-1.39-2.32-2.86Z"/>
|
||||
<path class="cls-6" d="M416.74,192.65h-11c-1.72,0-3.35-.79-4.41-2.14h0c-1.03-1.31-1.42-3-1.08-4.62l2.37-11.23c.33-1.56,1.18-2.96,2.41-3.97l.86-.7c1.53-1.25,3.45-1.94,5.43-1.94h10.39c1.72,0,3.35.79,4.41,2.14h0c1.03,1.31,1.42,3,1.08,4.62l-2.37,11.19c-.34,1.59-1.2,3.01-2.45,4.04l-1.27,1.04c-1.23,1.01-2.78,1.57-4.38,1.57ZM419.35,172.9h-8.48c-1.77,0-3.3,1.24-3.66,2.97l-1.7,7.97c-.43,2.03,1.12,3.95,3.2,3.95h7.89c1.76,0,3.28-1.23,3.64-2.95l1.83-8.58c.37-1.73-.95-3.35-2.72-3.35Z"/>
|
||||
<path class="cls-6" d="M450.21,192.65h-13.09c-1.44,0-2.52-1.33-2.22-2.74l.07-.32c.22-1.05,1.15-1.8,2.22-1.8h14.24c1.27,0,2.51-.44,3.49-1.25h0c.35-.29.59-.68.69-1.12h0c.14-.6,0-1.22-.38-1.71l-.04-.05c-.43-.55-1.09-.88-1.79-.88h-10.13c-1.67,0-2.95-.63-3.99-1.94h0c-1.07-1.36-1.12-3.12-1.09-4.97l.07-1.88c0-.68.15-1.66.56-2.43.48-.92.95-1.56,2.87-2.8h0c1.32-.83,3.78-.72,6.91-.72h12.75c1.44,0,2.52,1.33,2.22,2.74l-.07.32c-.22,1.05-1.15,1.8-2.22,1.8h-14.3c-1.25,0-2.46.43-3.43,1.22h0c-.36.3-.61.7-.7,1.16h0c-.12.59.02,1.2.39,1.67h0c.48.61,1.21.97,1.99.97h10.37c1.41,0,2.74.64,3.61,1.75h0c1.23,1.56,1.71,3.59,1.29,5.53l-.25,1.19c-.28,1.33-1.01,2.52-2.05,3.38h0c-2.26,1.86-5.09,2.87-8.01,2.87Z"/>
|
||||
<path class="cls-6" d="M488.37,174.78l-3.4,16c-.23,1.09-1.2,1.88-2.32,1.88h0c-1.51,0-2.63-1.39-2.32-2.86l2.98-14.03c.31-1.47-.81-2.86-2.32-2.86h-4.04c-1.51,0-2.63-1.39-2.32-2.86l.03-.12c.23-1.1,1.2-1.88,2.32-1.88h19.77c1.51,0,2.63,1.39,2.32,2.86l-.03.12c-.23,1.1-1.2,1.88-2.32,1.88h-6.04c-1.12,0-2.08.78-2.32,1.88Z"/>
|
||||
<path class="cls-6" d="M505.5,189.68l4.2-19.69c.24-1.14,1.25-1.95,2.41-1.95h0c1.57,0,2.73,1.44,2.41,2.97l-4.2,19.69c-.24,1.14-1.25,1.95-2.41,1.95h0c-1.57,0-2.73-1.44-2.41-2.97Z"/>
|
||||
<path class="cls-6" d="M539.69,191.61l-9.6-14.15c-.48-.7-1.56-.49-1.74.34l-2.76,12.97c-.23,1.09-1.2,1.88-2.32,1.88h0c-1.51,0-2.63-1.39-2.32-2.86l4.13-19.43c.29-1.35,1.48-2.31,2.86-2.31h.53c1.06,0,2.06.53,2.65,1.41l9.51,14.05c.41.6,1.34.42,1.49-.29l2.83-13.29c.23-1.09,1.2-1.88,2.32-1.88h0c1.51,0,2.63,1.39,2.32,2.86l-4.22,19.87c-.23,1.09-1.2,1.88-2.32,1.88h-1.4c-.79,0-1.52-.39-1.96-1.04Z"/>
|
||||
<path class="cls-6" d="M573.43,192.64l-10.43.02c-1.83,0-3.56-.83-4.7-2.27l-.04-.05c-.95-1.2-1.31-2.74-.99-4.22l2.41-11.39c.34-1.6,1.21-3.04,2.48-4.08l1.22-1c1.26-1.04,2.85-1.6,4.48-1.6h10.94c1.72,0,3.34.79,4.4,2.14h0c1.02,1.3,1.42,2.99,1.08,4.62-.05.26-.11.51-.16.74-.16.75-.82,1.29-1.6,1.29h-1.49c-1.03,0-1.8-.96-1.59-1.97h0c.21-1.01-.55-1.96-1.59-1.96-3.11,0-9,0-11.62,0-.77,0-1.43.54-1.59,1.29l-2.46,11.65c-.21,1.01.56,1.97,1.6,1.97h11.59c.77,0,1.44-.54,1.6-1.29l.37-1.76c.21-1.01-.56-1.97-1.6-1.97h-5.86c-1.04,0-1.81-.96-1.59-1.97l.34-1.6c.16-.75.83-1.29,1.59-1.29h6.15c1.9,0,3.7.87,4.88,2.36l.15.19c.84,1.05,1.16,2.43.88,3.74l-.55,2.61c-.22,1.05-.8,1.99-1.63,2.67l-1.62,1.33c-1.42,1.17-3.21,1.81-5.05,1.81Z"/>
|
||||
<path class="cls-6" d="M629.48,182.79h-10.75c-1.12,0-2.08.78-2.32,1.87l-1.31,6.12c-.23,1.09-1.2,1.87-2.32,1.87h0c-1.51,0-2.63-1.39-2.32-2.86l4.22-19.87c.23-1.09,1.2-1.88,2.32-1.88h15.74c1.73,0,3.37.8,4.44,2.16h0c1.02,1.3,1.41,2.98,1.07,4.59l-.43,2.02c-.24,1.13-.85,2.15-1.75,2.89l-1.51,1.25c-1.43,1.19-3.23,1.83-5.09,1.83ZM631.75,172.9h-11.58c-.73,0-1.35.51-1.51,1.22l-.4,1.88c-.21.99.55,1.92,1.56,1.92h11.52c.82,0,1.54-.58,1.71-1.38l.34-1.6c.23-1.05-.57-2.04-1.65-2.04Z"/>
|
||||
<path class="cls-6" d="M665.75,189.79l.89-4.18c.31-1.47-.81-2.86-2.32-2.86h-10.07c-1.12,0-2.08.78-2.32,1.87l-1.32,6.15c-.23,1.1-1.21,1.88-2.33,1.87h-.02c-1.5,0-2.62-1.39-2.31-2.86l3.11-14.63c.4-1.88,1.43-3.57,2.92-4.79l.53-.43c1.5-1.22,3.37-1.89,5.3-1.89h10.74c1.55,0,3.01.71,3.97,1.93h0c1.13,1.45,1.57,3.32,1.19,5.11l-3.33,15.69c-.23,1.09-1.2,1.88-2.32,1.88h0c-1.51,0-2.63-1.39-2.32-2.86ZM667.11,172.9h-11.14c-.9,0-1.67.63-1.86,1.5l-.32,1.52c-.22,1.03.57,2,1.62,2h11.64c.71,0,1.33-.5,1.48-1.19l.35-1.64c.24-1.13-.61-2.19-1.77-2.19Z"/>
|
||||
<path class="cls-6" d="M700.08,191.39l-9.28-13.69c-.54-.79-1.76-.55-1.96.38l-2.7,12.69c-.23,1.09-1.2,1.88-2.32,1.88h0c-1.51,0-2.63-1.39-2.32-2.86l4.16-19.56c.27-1.28,1.4-2.19,2.71-2.19h.51c1.15,0,2.23.57,2.88,1.53l9.3,13.74c.45.67,1.49.47,1.66-.32l2.78-13.07c.23-1.09,1.2-1.88,2.32-1.88h0c1.51,0,2.63,1.39,2.32,2.86l-4.12,19.37c-.29,1.39-1.52,2.38-2.94,2.38h-.62c-.95,0-1.84-.47-2.37-1.26Z"/>
|
||||
<path class="cls-6" d="M717.03,189.71l4.2-19.75c.24-1.12,1.23-1.92,2.38-1.92h19.64c1.54,0,2.7,1.42,2.38,2.93h0c-.24,1.12-1.23,1.93-2.38,1.93h-15.81c-1.15,0-2.14.8-2.38,1.92l-.03.16c-.32,1.51.83,2.94,2.38,2.94h9.8c1.54,0,2.7,1.42,2.38,2.93h0c-.24,1.12-1.23,1.93-2.38,1.93h-11.87c-1.14,0-2.13.8-2.37,1.92l-.03.14c-.33,1.51.83,2.95,2.37,2.95h13.75c1.54,0,2.7,1.42,2.38,2.93h0c-.24,1.12-1.23,1.93-2.38,1.93h-19.64c-1.55,0-2.7-1.42-2.38-2.94Z"/>
|
||||
<path class="cls-6" d="M752.53,189.67l4.22-19.85c.23-1.1,1.2-1.88,2.33-1.88h0c1.51,0,2.64,1.39,2.33,2.87l-2.99,14c-.32,1.48.81,2.87,2.33,2.87h13.78c1.57,0,2.74,1.44,2.41,2.97h0c-.09.41-.14.86-.42,1.18-.76.87-1.78.71-3.38.71h-12.75c-2.1,0-2.93.07-5.76.01-1.58-.03-2.19-.74-2.09-2.89Z"/>
|
||||
</g>
|
||||
<path class="cls-2" d="M428.17,83.3h-2.67c-6.07,0-11.32,4.24-12.59,10.18l-7.54,35.19c-1.27,5.94-6.52,10.18-12.59,10.18h-.87c-8.18,0-14.28-7.52-12.6-15.52l4.96-23.63c1.77-8.45-4.67-16.4-13.31-16.4h0c-9.55,0-18.57-4.38-24.47-11.89l-.06-.08c-5.89-7.49-8.16-17.22-6.17-26.54l7.29-34.33c1.26-5.95,6.52-10.2,12.6-10.2h.87c8.18,0,14.28,7.52,12.6,15.52l-5.17,24.62c-.77,3.69.11,7.53,2.41,10.51h0c2.44,3.16,6.21,5.01,10.2,5.01h50.24c5.4,0,10.62-1.9,14.76-5.38h0c3.4-2.85,5.74-6.76,6.66-11.1l6.16-28.99c1.26-5.95,6.52-10.2,12.6-10.2h.95c8.19,0,14.3,7.54,12.6,15.55l-5.43,25.56c-2.5,11.74-8.89,22.3-18.14,29.95h0c-9.36,7.74-21.12,11.98-33.26,11.98Z"/>
|
||||
<path class="cls-7" d="M808.22,16.77h0c1.79-8.51-4.7-16.51-13.39-16.51h-94.61s-5.53,27.37-5.53,27.37h100.15c6.47,0,12.06-4.53,13.39-10.86Z"/>
|
||||
<path class="cls-9" d="M774.88,72.44h0c1.79-8.51-4.7-16.51-13.39-16.51h-72.87l-5.77,27.37h78.64c6.47,0,12.06-4.53,13.39-10.86Z"/>
|
||||
<path class="cls-13" d="M677.87,111.48l6.11-28.18h0l6.01-28.49h.05s5.78-27.18,5.78-27.18l5.79-27.03c.04-.18-.1-.34-.27-.34h-5.32c-12.69,0-23.65,8.88-26.29,21.29l-21.42,100.78c-1.81,8.51,4.68,16.53,13.39,16.53h110.59c6.47,0,12.06-4.53,13.39-10.86h0c1.79-8.51-4.7-16.51-13.39-16.51h-94.4Z"/>
|
||||
<path class="cls-5" d="M203.58,55.93l8.32-39.57c1.75-8.3-4.59-16.1-13.06-16.1h0c-6.3,0-11.75,4.41-13.06,10.58l-23.78,111.89c-1.77,8.31,4.57,16.13,13.06,16.13h0c6.29,0,11.73-4.4,13.05-10.55l9.66-45.01h0l5.82-27.37h0Z"/>
|
||||
<polygon class="cls-3" points="203.58 55.87 197.77 83.24 282.37 83.3 288.17 55.93 203.58 55.87"/>
|
||||
<path class="cls-8" d="M311.44.26c-6.29,0-11.73,4.4-13.05,10.55l-9.59,44.73h0l-6.55,30.92h-.03s-7.64,36.29-7.64,36.29c-1.75,8.3,4.58,16.1,13.06,16.1h.01c6.3,0,11.75-4.41,13.06-10.57l23.78-111.9c1.77-8.3-4.57-16.12-13.06-16.12h0Z"/>
|
||||
<polygon class="cls-11" points="288.73 55.94 288.7 55.93 288.7 55.93 288.17 55.93 282.37 83.3 282.88 83.3 282.22 86.46 282.25 86.47 288.73 55.94"/>
|
||||
<path class="cls-10" d="M21.82,21.46L.3,122.73c-1.77,8.31,4.57,16.13,13.06,16.13h0c6.29,0,11.73-4.4,13.05-10.55l9.66-45.01-.02.12,5.84-27.49,6.01-28.3h0L54.12.26h-6.12c-12.64,0-23.55,8.84-26.18,21.2Z"/>
|
||||
<path class="cls-12" d="M111.53,0l-57.79.26-5.95,27.37h66.44c9.04,0,15.77,8.34,13.87,17.18h0c-1.4,6.5-7.12,11.16-13.77,11.2l-72.69.53-5.73,27.37,69.83-.49c11.47-.08,24.22-2.55,33.06-9.86h0c6.97-5.77,14.29-13.29,16.46-31.62h0c-.56-20.89-7.73-28.5-7.73-28.5h0S140.06,1,111.53,0Z"/>
|
||||
<path class="cls-4" d="M506.81,21.58l-21.48,101.08c-1.77,8.34,4.59,16.2,13.12,16.2h0c6.32,0,11.78-4.41,13.11-10.59l9.65-44.96h.02l5.71-27.37h0l5.96-28.17,5.55-27.42s-.02-.08-.07-.08h-5.23c-12.71,0-23.69,8.89-26.33,21.32Z"/>
|
||||
<path class="cls-1" d="M636.82,13.71l-2.27-2.89c-5.24-6.67-13.25-10.57-21.73-10.57h-74.36l-5.55,27.37h78.11c3.05,0,5.35,2.78,4.77,5.78h0c-.21,1.11-.81,2.11-1.68,2.82l-16.44,13.56c-4.81,3.96-10.84,6.13-17.07,6.13h-53.68l-5.72,27.37h51.65c7.31,0,14.23,3.35,18.76,9.09l1.28,1.62c4.97,6.29,6.86,14.46,5.18,22.29l-1.48,6.87c-1.74,8.07,4.41,15.68,12.66,15.68h0c6.55,0,12.2-4.58,13.56-10.99l5.11-24.08c1.74-8.21-.24-16.77-5.42-23.38l-5.33-6.81c-1.76-2.25-1.41-5.48.79-7.3l14.59-12.04c4.67-3.85,7.88-9.18,9.12-15.1l.52-2.49c1.68-8.07-.28-16.47-5.38-22.95Z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 13 KiB |
BIN
docs/.vitepress/dist/screenshots/dashboard.png
vendored
BIN
docs/.vitepress/dist/screenshots/dashboard.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 305 KiB |
BIN
docs/.vitepress/dist/screenshots/install-screen.png
vendored
BIN
docs/.vitepress/dist/screenshots/install-screen.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 300 KiB |
24
docs/.vitepress/dist/team.html
vendored
24
docs/.vitepress/dist/team.html
vendored
File diff suppressed because one or more lines are too long
|
@ -1,17 +0,0 @@
|
|||
// https://vitepress.dev/guide/custom-theme
|
||||
import { h } from 'vue'
|
||||
import DefaultTheme from 'vitepress/theme'
|
||||
import './style.css'
|
||||
|
||||
/** @type {import('vitepress').Theme} */
|
||||
export default {
|
||||
extends: DefaultTheme,
|
||||
Layout: () => {
|
||||
return h(DefaultTheme.Layout, null, {
|
||||
// https://vitepress.dev/guide/extending-default-theme#layout-slots
|
||||
})
|
||||
},
|
||||
enhanceApp({ app, router, siteData }) {
|
||||
|
||||
}
|
||||
}
|
|
@ -1,153 +0,0 @@
|
|||
/**
|
||||
* Customize default theme styling by overriding CSS variables:
|
||||
* https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css
|
||||
*/
|
||||
|
||||
/**
|
||||
* Colors
|
||||
*
|
||||
* Each colors have exact same color scale system with 3 levels of solid
|
||||
* colors with different brightness, and 1 soft color.
|
||||
*
|
||||
* - `XXX-1`: The most solid color used mainly for colored text. It must
|
||||
* satisfy the contrast ratio against when used on top of `XXX-soft`.
|
||||
*
|
||||
* - `XXX-2`: The color used mainly for hover state of the button.
|
||||
*
|
||||
* - `XXX-3`: The color for solid background, such as bg color of the button.
|
||||
* It must satisfy the contrast ratio with pure white (#ffffff) text on
|
||||
* top of it.
|
||||
*
|
||||
* - `XXX-soft`: The color used for subtle background such as custom container
|
||||
* or badges. It must satisfy the contrast ratio when putting `XXX-1` colors
|
||||
* on top of it.
|
||||
*
|
||||
* The soft color must be semi transparent alpha channel. This is crucial
|
||||
* because it allows adding multiple "soft" colors on top of each other
|
||||
* to create a accent, such as when having inline code block inside
|
||||
* custom containers.
|
||||
*
|
||||
* - `default`: The color used purely for subtle indication without any
|
||||
* special meanings attched to it such as bg color for menu hover state.
|
||||
*
|
||||
* - `brand`: Used for primary brand colors, such as link text, button with
|
||||
* brand theme, etc.
|
||||
*
|
||||
* - `tip`: Used to indicate useful information. The default theme uses the
|
||||
* brand color for this by default.
|
||||
*
|
||||
* - `warning`: Used to indicate warning to the users. Used in custom
|
||||
* container, badges, etc.
|
||||
*
|
||||
* - `danger`: Used to show error, or dangerous message to the users. Used
|
||||
* in custom container, badges, etc.
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
|
||||
--vp-c-yellow-1: #deb81c;
|
||||
--vp-c-yellow-2: #deb81c;
|
||||
--vp-c-yellow-3: #deb81c;
|
||||
--vp-c-yellow-soft: #deb81c;
|
||||
|
||||
--vp-c-default-1: var(--vp-c-gray-1);
|
||||
--vp-c-default-2: var(--vp-c-gray-2);
|
||||
--vp-c-default-3: var(--vp-c-gray-3);
|
||||
--vp-c-default-soft: var(--vp-c-gray-soft);
|
||||
|
||||
--vp-c-brand-1: var(--vp-c-yellow-1);
|
||||
--vp-c-brand-2: var(--vp-c-yellow-2);
|
||||
--vp-c-brand-3: var(--vp-c-yellow-3);
|
||||
--vp-c-brand-soft: var(--vp-c-yellow-soft);
|
||||
|
||||
--vp-c-tip-1: var(--vp-c-brand-1);
|
||||
--vp-c-tip-2: var(--vp-c-brand-2);
|
||||
--vp-c-tip-3: var(--vp-c-brand-3);
|
||||
--vp-c-tip-soft: var(--vp-c-brand-soft);
|
||||
|
||||
--vp-c-warning-1: var(--vp-c-yellow-1);
|
||||
--vp-c-warning-2: var(--vp-c-yellow-2);
|
||||
--vp-c-warning-3: var(--vp-c-yellow-3);
|
||||
--vp-c-warning-soft: var(--vp-c-yellow-soft);
|
||||
|
||||
--vp-c-danger-1: var(--vp-c-red-1);
|
||||
--vp-c-danger-2: var(--vp-c-red-2);
|
||||
--vp-c-danger-3: var(--vp-c-red-3);
|
||||
--vp-c-danger-soft: var(--vp-c-red-soft);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Button
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-button-brand-border: transparent;
|
||||
--vp-button-brand-text: var(--vp-c-white);
|
||||
--vp-button-brand-bg: var(--vp-c-brand-3);
|
||||
--vp-button-brand-hover-border: transparent;
|
||||
--vp-button-brand-hover-text: var(--vp-c-white);
|
||||
--vp-button-brand-hover-bg: var(--vp-c-brand-2);
|
||||
--vp-button-brand-active-border: transparent;
|
||||
--vp-button-brand-active-text: var(--vp-c-white);
|
||||
--vp-button-brand-active-bg: var(--vp-c-brand-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Home
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-home-hero-name-color: transparent;
|
||||
--vp-home-hero-name-background: -webkit-linear-gradient(
|
||||
120deg,
|
||||
#f8bd20 30%,
|
||||
#f8bd20
|
||||
);
|
||||
|
||||
--vp-home-hero-image-background-image: linear-gradient(
|
||||
-45deg,
|
||||
rgba(248, 189, 32, 0.12) 50%,
|
||||
rgba(248, 189, 32, 0.12) 50%
|
||||
);
|
||||
--vp-home-hero-image-filter: blur(44px);
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
:root {
|
||||
--vp-home-hero-image-filter: blur(56px);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
:root {
|
||||
--vp-home-hero-image-filter: blur(68px);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Custom Block
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-custom-block-tip-border: transparent;
|
||||
--vp-custom-block-tip-text: var(--vp-c-text-1);
|
||||
--vp-custom-block-tip-bg: var(--vp-c-brand-soft);
|
||||
--vp-custom-block-tip-code-bg: var(--vp-c-brand-soft);
|
||||
}
|
||||
|
||||
.custom-block.warning {
|
||||
--vp-custom-block-warning-bg: none;
|
||||
--vp-custom-block-warning-border: 1px solid var(--vp-c-warning-1);
|
||||
--vp-custom-block-warning-text: var(--vp-c-warning-1);
|
||||
}
|
||||
.custom-block.warning code {
|
||||
--vp-custom-block-warning-code-bg: var(--vp-c-gray-2);
|
||||
}
|
||||
/**
|
||||
* Component: Algolia
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
.DocSearch {
|
||||
--docsearch-primary-color: var(--vp-c-brand-1) !important;
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
/** @type {import("vitepress").DefaultTheme.TeamMember[]} */
|
||||
|
||||
const globeIcon = {
|
||||
svg: '<svg role="img" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><title>Website</title><path stroke-linecap="round" stroke-linejoin="round" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" /></svg>',
|
||||
};
|
||||
|
||||
/** @type {import("vitepress").DefaultTheme.TeamMember[]} */
|
||||
export const teamMembers = [
|
||||
{
|
||||
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' },
|
||||
]
|
||||
}
|
||||
];
|
|
@ -1,31 +0,0 @@
|
|||
# Backup Management
|
||||
|
||||
## Available Commands
|
||||
|
||||
### `phyre:create-daily-full-backup`
|
||||
- Description: Creates a full system backup
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:create-daily-full-backup
|
||||
```
|
||||
|
||||
### `phyre:create-daily-full-hosting-subscriptions-backup`
|
||||
- Description: Creates backups for all hosting subscriptions
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:create-daily-full-hosting-subscriptions-backup
|
||||
```
|
||||
|
||||
### `phyre:run-backup-checks`
|
||||
- Description: Checks and manages backup status
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:run-backup-checks
|
||||
```
|
||||
|
||||
### `phyre:run-upload-backups-to-remote-servers`
|
||||
- Description: Uploads backups to configured remote servers
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:run-upload-backups-to-remote-servers
|
||||
```
|
|
@ -1,153 +0,0 @@
|
|||
# Phyre Panel Terminal Commands
|
||||
|
||||
## Available Commands
|
||||
|
||||
### System Commands
|
||||
|
||||
`phyre:health-check`
|
||||
- Description: Checks system health including supervisor and Apache2 status
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:health-check
|
||||
```
|
||||
|
||||
`phyre:run-repair`
|
||||
- Description: Performs system repairs including database users, phpMyAdmin, and Apache configurations
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:run-repair
|
||||
```
|
||||
|
||||
`phyre:run-domain-repair`
|
||||
- Description: Repairs domain configurations
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:run-domain-repair
|
||||
```
|
||||
|
||||
### Installation Commands
|
||||
|
||||
`phyre:install-apache`
|
||||
- Description: Installs Apache web server with latest PHP version
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:install-apache
|
||||
```
|
||||
|
||||
`phyre:install-module {module}`
|
||||
- Description: Installs a specific Phyre module
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:install-module module_name
|
||||
```
|
||||
|
||||
### SSL & Domain Management
|
||||
|
||||
`phyre:setup-master-domain-ssl`
|
||||
- Description: Sets up SSL certificate for the master domain
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:setup-master-domain-ssl
|
||||
```
|
||||
|
||||
`phyre:apache-ping-websites-with-curl`
|
||||
- Description: Tests HTTP response for all websites
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:apache-ping-websites-with-curl
|
||||
```
|
||||
|
||||
### Backup Management
|
||||
|
||||
`phyre:create-daily-full-backup`
|
||||
- Description: Creates a full system backup
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:create-daily-full-backup
|
||||
```
|
||||
|
||||
`phyre:create-daily-full-hosting-subscriptions-backup`
|
||||
- Description: Creates backups for all hosting subscriptions
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:create-daily-full-hosting-subscriptions-backup
|
||||
```
|
||||
|
||||
`phyre:run-backup-checks`
|
||||
- Description: Checks and manages backup status
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:run-backup-checks
|
||||
```
|
||||
|
||||
`phyre:run-upload-backups-to-remote-servers`
|
||||
- Description: Uploads backups to configured remote servers
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:run-upload-backups-to-remote-servers
|
||||
```
|
||||
|
||||
### User Management
|
||||
|
||||
`phyre:create-admin-account`
|
||||
- Description: Creates a new admin account
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:create-admin-account
|
||||
```
|
||||
|
||||
`phyre:reset-admin-account-password`
|
||||
- Description: Resets password for an existing admin account
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:reset-admin-account-password
|
||||
```
|
||||
|
||||
### System Configuration
|
||||
|
||||
`phyre:key-generate`
|
||||
- Description: Generates application key in phyre-config.ini
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:key-generate
|
||||
```
|
||||
|
||||
`phyre:set-ini-settings {key} {value}`
|
||||
- Description: Sets configuration values in phyre-config.ini
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:set-ini-settings key value
|
||||
```
|
||||
|
||||
### System Update
|
||||
|
||||
`phyre:update`
|
||||
- Description: Updates Phyre to the latest version
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:update
|
||||
```
|
||||
|
||||
## Usage Examples
|
||||
|
||||
```bash
|
||||
# Create a new admin account
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:create-admin-account
|
||||
|
||||
# Check system health
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:health-check
|
||||
|
||||
# Create daily backup
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:create-daily-full-backup
|
||||
|
||||
# Install a module
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:install-module blog
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- All commands should be run from the project root directory
|
||||
- Some commands may require sudo/root privileges
|
||||
- Backup commands run automatically via cron but can be executed manually
|
||||
- Always ensure proper permissions before running system-level commands
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
# Phyre Panel Terminal Commands Index
|
||||
|
||||
## Available Categories
|
||||
|
||||
- [System Commands](system-commands.md)
|
||||
- [Installation Commands](installation-commands.md)
|
||||
- [SSL & Domain Management](ssl-domain-management.md)
|
||||
- [Backup Management](backup-management.md)
|
||||
- [User Management](user-management.md)
|
||||
- [System Configuration](system-configuration.md)
|
||||
- [System Update](system-update.md)
|
|
@ -1,17 +0,0 @@
|
|||
# Installation Commands
|
||||
|
||||
## Available Commands
|
||||
|
||||
### `phyre:install-apache`
|
||||
- Description: Installs Apache web server with latest PHP version
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:install-apache
|
||||
```
|
||||
|
||||
### `phyre:install-module {module}`
|
||||
- Description: Installs a specific Phyre module
|
||||
- Usage:
|
||||
```
|
||||
phyre-php /usr/local/phyre/web/artisan phyre:install-module module_name
|
||||
```
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue