This commit is contained in:
Stefan Pejcic 2024-02-10 19:10:51 +01:00
parent 6a109d65d3
commit 664848c0dc
24 changed files with 549 additions and 42 deletions

View File

@ -0,0 +1,28 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgAccountCog = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0" />
<path d="M6 21v-2a4 4 0 0 1 4 -4h2.5" />
<path d="M19.001 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M19.001 15.5v1.5" />
<path d="M19.001 21v1.5" />
<path d="M22.032 17.25l-1.299 .75" />
<path d="M17.27 20l-1.3 .75" />
<path d="M15.97 17.25l1.3 .75" />
<path d="M20.733 20l1.3 .75" />
</svg>
);
export default SvgAccountCog;

View File

@ -0,0 +1,20 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgActivity = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M3 12h4l3 8l4 -16l3 8h4" />
</svg>
);
export default SvgActivity;

View File

@ -0,0 +1,24 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgAPI = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M4 13h5" />
<path d="M12 16v-8h3a2 2 0 0 1 2 2v1a2 2 0 0 1 -2 2h-3" />
<path d="M20 8v8" />
<path d="M9 16v-5.5a2.5 2.5 0 0 0 -5 0v5.5" />
</svg>
);
export default SvgAPI;

View File

@ -0,0 +1,20 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgBolt = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11" />
</svg>
);
export default SvgBolt;

View File

@ -0,0 +1,21 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgCache = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M13 18.004h-6.343c-2.572 -.004 -4.657 -2.011 -4.657 -4.487c0 -2.475 2.085 -4.482 4.657 -4.482c.393 -1.762 1.794 -3.2 3.675 -3.773c1.88 -.572 3.956 -.193 5.444 1c1.488 1.19 2.162 3.007 1.77 4.769h.99c1.396 0 2.6 .831 3.148 2.03" />
<path d="M19 16l-2 3h4l-2 3" />
</svg>
);
export default SvgCache;

View File

@ -0,0 +1,21 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgConfiguration = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M19.875 6.27a2.225 2.225 0 0 1 1.125 1.948v7.284c0 .809 -.443 1.555 -1.158 1.948l-6.75 4.27a2.269 2.269 0 0 1 -2.184 0l-6.75 -4.27a2.225 2.225 0 0 1 -1.158 -1.948v-7.285c0 -.809 .443 -1.554 1.158 -1.947l6.75 -3.98a2.33 2.33 0 0 1 2.25 0l6.75 3.98h-.033z" />
<path d="M12 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" />
</svg>
);
export default SvgConfiguration;

View File

@ -0,0 +1,24 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgCron = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M4 5m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z" />
<path d="M16 3l0 4" />
<path d="M8 3l0 4" />
<path d="M4 11l16 0" />
<path d="M8 15h2v2h-2z" />
</svg>
);
export default SvgCron;

View File

@ -0,0 +1,23 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgDNS = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M14 3v4a1 1 0 0 0 1 1h4" />
<path d="M9 12m0 1a1 1 0 0 1 1 -1h1a1 1 0 0 1 1 1v3a1 1 0 0 1 -1 1h-1a1 1 0 0 1 -1 -1z" />
<path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z" />
<path d="M15 12v5" />
</svg>
);
export default SvgDNS;

View File

@ -0,0 +1,28 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgDomain = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M19.5 7a9 9 0 0 0 -7.5 -4a8.991 8.991 0 0 0 -7.484 4" />
<path d="M11.5 3a16.989 16.989 0 0 0 -1.826 4" />
<path d="M12.5 3a16.989 16.989 0 0 1 1.828 4" />
<path d="M19.5 17a9 9 0 0 1 -7.5 4a8.991 8.991 0 0 1 -7.484 -4" />
<path d="M11.5 21a16.989 16.989 0 0 1 -1.826 -4" />
<path d="M12.5 21a16.989 16.989 0 0 0 1.828 -4" />
<path d="M2 10l1 4l1.5 -4l1.5 4l1 -4" />
<path d="M17 10l1 4l1.5 -4l1.5 4l1 -4" />
<path d="M9.5 10l1 4l1.5 -4l1.5 4l1 -4" />
</svg>
);
export default SvgDomain;

View File

@ -0,0 +1,22 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgDownload = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2" />
<path d="M7 11l5 5l5 -5" />
<path d="M12 4l0 12" />
</svg>
);
export default SvgDownload;

View File

@ -0,0 +1,20 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgFolder = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M5 4h4l3 3h7a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-11a2 2 0 0 1 2 -2" />
</svg>
);
export default SvgFolder;

View File

@ -21,6 +21,29 @@ export { default as Terminal } from "./terminal";
export { default as AdminOff } from "./adminoff";
export { default as Separate } from "./separate";
export { default as Ports } from "./ports";
export { default as WHMCS } from "./whmcs";
export { default as API } from "./api";
export { default as Notifications } from "./notifications";
export { default as Services } from "./services";
export { default as Usage } from "./usage";
export { default as Bolt } from "./bolt";
export { default as Download } from "./download";
export { default as Configuration } from "./configuration";
export { default as Domain } from "./domain";
export { default as Folder } from "./folder";
export { default as PHP } from "./php";
export { default as Python } from "./python";
export { default as WP } from "./wp";
export { default as MySQL } from "./mysql";
export { default as ServerCog } from "./servercog";
export { default as CronJobs } from "./cron";
export { default as DNS } from "./dns";
export { default as Visitors } from "./visitors";
export { default as Activity } from "./activity";
export { default as AccountCog } from "./accountcog";
export { default as Cache } from "./cache";
export { default as Ably } from "./ably";
export { default as Airtable } from "./airtable";
export { default as Antd } from "./antd";

View File

@ -1,27 +1,21 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const MySQL = (props: SVGProps<SVGSVGElement>) => (
const SvgMySQL = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
className={clsx("dark:text-gray-0 text-[#00758F]", props.className)}
>
<g fill="currentColor" clipPath="url(#mysql-a)">
<path d="M22.099 18.437c-1.305-.033-2.317.098-3.165.457-.244.097-.636.098-.669.407.13.13.147.343.261.522.196.326.539.767.849.995.342.261.685.522 1.043.75.637.392 1.354.62 1.974 1.012.36.228.718.522 1.077.766.179.13.293.343.522.424v-.048c-.115-.147-.147-.36-.261-.522-.163-.163-.327-.31-.49-.473a7.736 7.736 0 0 0-1.696-1.648c-.522-.359-1.664-.848-1.876-1.451l-.032-.033c.358-.033.782-.163 1.125-.261.555-.147 1.06-.114 1.631-.261.261-.065.522-.147.783-.228v-.147c-.294-.294-.506-.685-.816-.962a21.738 21.738 0 0 0-2.69-2.007c-.506-.326-1.159-.538-1.697-.815-.196-.098-.522-.147-.636-.31-.294-.359-.457-.832-.669-1.256a41.208 41.208 0 0 1-1.338-2.838c-.293-.636-.472-1.272-.831-1.86-1.68-2.772-3.507-4.452-6.312-6.1-.604-.342-1.322-.489-2.088-.668-.408-.017-.816-.05-1.224-.066-.26-.114-.522-.424-.75-.57C3.194.657.797-.615.112 1.065c-.44 1.06.652 2.104 1.027 2.642.278.376.636.8.832 1.224.114.277.147.57.261.864.261.718.506 1.517.848 2.186.18.342.375.701.604 1.011.13.18.359.261.408.555-.229.326-.245.815-.376 1.223-.587 1.843-.358 4.127.473 5.48.261.408.881 1.305 1.713.963.734-.294.57-1.224.783-2.04.049-.195.016-.325.114-.456v.033c.228.456.457.897.669 1.354.505.799 1.386 1.63 2.12 2.185.392.294.702.8 1.19.979v-.05h-.032c-.098-.146-.245-.211-.375-.326a7.904 7.904 0 0 1-.848-.978C8.838 17 8.234 15.99 7.696 14.946c-.26-.505-.49-1.06-.701-1.565-.098-.196-.098-.49-.261-.588-.245.36-.604.67-.783 1.11-.31.7-.343 1.565-.457 2.462-.065.017-.032 0-.065.033-.522-.13-.701-.669-.897-1.125-.49-1.158-.571-3.018-.147-4.355.114-.343.604-1.42.408-1.746-.098-.31-.424-.489-.604-.733a6.572 6.572 0 0 1-.587-1.044c-.391-.914-.587-1.925-1.011-2.838-.196-.425-.538-.865-.816-1.256-.31-.44-.652-.75-.897-1.273C.797 1.85.683 1.555.813 1.36c.033-.13.098-.18.228-.212.212-.18.816.049 1.028.146.603.245 1.11.473 1.615.816.228.163.473.473.766.555h.343c.522.114 1.109.032 1.598.179.865.277 1.648.685 2.35 1.125a14.47 14.47 0 0 1 5.088 5.579c.196.375.277.717.457 1.109.342.799.766 1.614 1.109 2.397.342.767.668 1.55 1.158 2.186.244.342 1.223.522 1.663.701.327.147.832.278 1.126.457.555.342 1.109.734 1.631 1.11.261.195 1.076.603 1.126.929Z" />
<path d="M5.454 4.097c-.277 0-.472.034-.668.083v.033h.033c.13.266.358.448.521.68.13.265.245.53.375.795l.033-.033c.228-.166.342-.43.342-.829-.098-.115-.114-.231-.196-.347-.097-.166-.31-.25-.44-.382Z" />
</g>
<defs>
<clipPath id="mysql-a">
<path fill="currentColor" d="M0 0h24v24H0z" />
</clipPath>
</defs>
</svg>
<path d="M13 21c-1.427 -1.026 -3.59 -3.854 -4 -6c-.486 .77 -1.501 2 -2 2c-1.499 -.888 -.574 -3.973 0 -6c-1.596 -1.433 -2.468 -2.458 -2.5 -4c-3.35 -3.44 -.444 -5.27 2.5 -3h1c8.482 .5 6.421 8.07 9 11.5c2.295 .522 3.665 2.254 5 3.5c-2.086 -.2 -2.784 -.344 -3.5 0c.478 1.64 2.123 2.2 3.5 3" />
<path d="M9 7h.01" />
</svg>
);
export default MySQL;
export default SvgMySQL;

View File

@ -0,0 +1,21 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgNotifications = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M10 5a2 2 0 1 1 4 0a7 7 0 0 1 4 6v3a4 4 0 0 0 2 3h-16a4 4 0 0 0 2 -3v-3a7 7 0 0 1 4 -6" />
<path d="M9 17v1a3 3 0 0 0 6 0v-1" />
</svg>
);
export default SvgNotifications;

View File

@ -0,0 +1,24 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgPHP = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M12 12m-10 0a10 9 0 1 0 20 0a10 9 0 1 0 -20 0" />
<path d="M5.5 15l.395 -1.974l.605 -3.026h1.32a1 1 0 0 1 .986 1.164l-.167 1a1 1 0 0 1 -.986 .836h-1.653" />
<path d="M15.5 15l.395 -1.974l.605 -3.026h1.32a1 1 0 0 1 .986 1.164l-.167 1a1 1 0 0 1 -.986 .836h-1.653" />
<path d="M12 7.5l-1 5.5" />
<path d="M11.6 10h2.4l-.5 3" />
</svg>
);
export default SvgPHP;

View File

@ -0,0 +1,24 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgPython = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M12 9h-7a2 2 0 0 0 -2 2v4a2 2 0 0 0 2 2h3" />
<path d="M12 15h7a2 2 0 0 0 2 -2v-4a2 2 0 0 0 -2 -2h-3" />
<path d="M8 9v-4a2 2 0 0 1 2 -2h4a2 2 0 0 1 2 2v5a2 2 0 0 1 -2 2h-4a2 2 0 0 0 -2 2v5a2 2 0 0 0 2 2h4a2 2 0 0 0 2 -2v-4" />
<path d="M11 6l0 .01" />
<path d="M13 18l0 .01" />
</svg>
);
export default SvgPython;

View File

@ -13,8 +13,9 @@ const SvgSeparate = (props: SVGProps<SVGSVGElement>) => (
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M4 4h16" />
<path d="M4 20h16" />
<path d="M6 16m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" />
<path d="M16 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M14.5 7.5m-4.5 0a4.5 4.5 0 1 0 9 0a4.5 4.5 0 1 0 -9 0" />
</svg>
);

View File

@ -0,0 +1,30 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgServerCog = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M3 4m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v2a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z" />
<path d="M12 20h-6a3 3 0 0 1 -3 -3v-2a3 3 0 0 1 3 -3h10.5" />
<path d="M18 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M18 14.5v1.5" />
<path d="M18 20v1.5" />
<path d="M21.032 16.25l-1.299 .75" />
<path d="M16.27 19l-1.3 .75" />
<path d="M14.97 16.25l1.3 .75" />
<path d="M19.733 19l1.3 .75" />
<path d="M7 8v.01" />
<path d="M7 16v.01" />
</svg>
);
export default SvgServerCog;

View File

@ -0,0 +1,20 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgServices = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M18 3a3 3 0 0 1 2.995 2.824l.005 .176v12a3 3 0 0 1 -2.824 2.995l-.176 .005h-12a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-12a3 3 0 0 1 2.824 -2.995l.176 -.005h12zm-4 13a1 1 0 0 0 -.993 .883l-.007 .117l.007 .127a1 1 0 0 0 1.986 0l.007 -.117l-.007 -.127a1 1 0 0 0 -.993 -.883zm3 0a1 1 0 0 0 -.993 .883l-.007 .117l.007 .127a1 1 0 0 0 1.986 0l.007 -.117l-.007 -.127a1 1 0 0 0 -.993 -.883zm-6 -6.764l-.106 .211a1 1 0 0 1 -.77 .545l-.124 .008l-5 -.001v3.001h14v-3.001l-4.382 .001l-.724 1.447a1 1 0 0 1 -1.725 .11l-.063 -.11l-1.106 -2.211zm7 -4.236h-12a1 1 0 0 0 -.993 .883l-.007 .117v1.999l4.381 .001l.725 -1.447a1 1 0 0 1 1.725 -.11l.063 .11l1.106 2.21l.106 -.21a1 1 0 0 1 .77 -.545l.124 -.008l5 -.001v-1.999a1 1 0 0 0 -.883 -.993l-.117 -.007z" stroke-width="0" fill="currentColor" />
</svg>
);
export default SvgServices;

View File

@ -0,0 +1,21 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgUsage = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M10 3.2a9 9 0 1 0 10.8 10.8a1 1 0 0 0 -1 -1h-6.8a2 2 0 0 1 -2 -2v-7a.9 .9 0 0 0 -1 -.8" />
<path d="M15 3.5a9 9 0 0 1 5.5 5.5h-4.5a1 1 0 0 1 -1 -1v-4.5" />
</svg>
);
export default SvgUsage;

View File

@ -0,0 +1,23 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgVisitors = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M3 12m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
<path d="M9 8m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
<path d="M15 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" />
<path d="M4 20l14 0" />
</svg>
);
export default SvgVisitors;

View File

@ -0,0 +1,28 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgWHMCS = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M12.003 21c-.732 .001 -1.465 -.438 -1.678 -1.317a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c.886 .215 1.325 .957 1.318 1.694" />
<path d="M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0" />
<path d="M19.001 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" />
<path d="M19.001 15.5v1.5" />
<path d="M19.001 21v1.5" />
<path d="M22.032 17.25l-1.299 .75" />
<path d="M17.27 20l-1.3 .75" />
<path d="M15.97 17.25l1.3 .75" />
<path d="M20.733 20l1.3 .75" />
</svg>
);
export default SvgWHMCS;

View File

@ -0,0 +1,25 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgWP = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
stroke="currentColor"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path d="M9.5 9h3" />
<path d="M4 9h2.5" />
<path d="M11 9l3 11l4 -9" />
<path d="M5.5 9l3.5 11l3 -7" />
<path d="M18 11c.177 -.528 1 -1.364 1 -2.5c0 -1.78 -.776 -2.5 -1.875 -2.5c-.898 0 -1.125 .812 -1.125 1.429c0 1.83 2 2.058 2 3.571z" />
<path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" />
</svg>
);
export default SvgWP;

View File

@ -23,6 +23,28 @@ import {
AdminOff,
Ports,
Separate,
WHMCS,
API,
Notifications,
Services,
Usage,
Bolt,
Configuration,
Download,
Domain,
Folder,
PHP,
Python,
WP,
MySQL,
SSL,
ServerCog,
CronJobs,
Cache,
DNS,
Visitors,
Activity,
AccountCog,
Airtable,
Antd,
Ably,
@ -79,7 +101,7 @@ export const integrations: IntegrationsType = {
"data-provider-packages": [
{
name: "Domain Names",
icon: Rest,
icon: Domain,
description:
"Add domain names with automatic SSL renewals, include aliases and subdomains (Internationalized domains are supported), create redirects, enforce HTTPS, and edit vhost files.",
url: "/docs/panel/domains/",
@ -87,7 +109,7 @@ export const integrations: IntegrationsType = {
},
{
name: "File Manager",
icon: Rest,
icon: Folder,
description:
"Effortlessly upload multiple files simultaneously without any upload limits. Edit files, adjust permissions, copy or move files, add new files, and perform various file management tasks.",
url: "/docs/panel/files/",
@ -95,7 +117,7 @@ export const integrations: IntegrationsType = {
},
{
name: "PHP versions",
icon: Rest,
icon: PHP,
description:
"Users can use different PHP versions for each domain, install new versions, set a default version for new domains, change limits by editing php.ini files.",
url: "/docs/panel/advanced/server_settings/#php-settings",
@ -103,7 +125,7 @@ export const integrations: IntegrationsType = {
},
{
name: "NodeJS and Python",
icon: Rest,
icon: Python,
description:
"Effortlessly create and manage NodeJS and Python applications. Proxy websites to display content from these applications seamlessly.",
url: "/docs/panel/applications/pm2/",
@ -111,14 +133,14 @@ export const integrations: IntegrationsType = {
},
{
name: "WP Manager",
icon: Graphql,
icon: WP,
description: "Automatic WordPress installer with features like auto-login to wp-admin, option editing, on-demand backup, debugging, and a variety of additional functionalities.",
url: "/docs/panel/applications/wordpress/",
status: "stable",
},
{
name: "MySQL and phpMyAdmin",
icon: Nest,
icon: MySQL,
description:
"Create and manage MySQL databases and users easily. Automatically log in to phpMyAdmin, enable remote MySQL access, and adjust configuration settings with desired limits.",
url: "/docs/panel/databases/",
@ -126,7 +148,7 @@ export const integrations: IntegrationsType = {
},
{
name: "SSL certificates",
icon: Strapi,
icon: SSL,
description:
"Automatic SSL generation and renewal ensures that your website's security is effortlessly managed, providing continuous protection with up-to-date SSL certificates.",
url: "/docs/panel/domains/SSL/",
@ -134,7 +156,7 @@ export const integrations: IntegrationsType = {
},
{
name: "Object Caching",
icon: Strapi,
icon: Cache,
description:
"Implement object caching using dedicated REDIS and Memcached instances. Set memory limits, start/stop services, and view logs efficiently.",
url: "/docs/panel/caching/",
@ -150,7 +172,7 @@ export const integrations: IntegrationsType = {
},
{
name: "Server settings",
icon: Strapi,
icon: Configuration,
description:
"Each user has complete control over their server configuration, enabling them to install or restart services, edit system configurations, and perform various other administrative tasks.",
url: "/docs/panel/advanced/server_settings/",
@ -158,7 +180,7 @@ export const integrations: IntegrationsType = {
},
{
name: "Cron Jobs",
icon: Strapi,
icon: CronJobs,
description:
"Schedule and edit cronjobs directly from the OpenPanel interface to efficiently plan and manage scheduled actions.",
url: "/docs/panel/advanced/cronjobs/",
@ -166,7 +188,7 @@ export const integrations: IntegrationsType = {
},
{
name: "DNS Zone Editor",
icon: Strapi,
icon: DNS,
description:
"Easily edit DNS zone files for your domains and add various records such as A, AAAA, CNAME, MX, TXT, etc., through the OpenPanel interface.",
url: "/docs/panel/domains/dns/",
@ -174,7 +196,7 @@ export const integrations: IntegrationsType = {
},
{
name: "Resource usage",
icon: Supabase,
icon: Usage,
description:
"Monitor real-time CPU and memory usage, check historical trends, and adjust server configuration as needed to optimize performance.",
url: "/docs/panel/analytics/resource_usage/",
@ -182,7 +204,7 @@ export const integrations: IntegrationsType = {
},
{
name: "Visitor reports",
icon: Hasura,
icon: Visitors,
description:
"Access automatically generated, visually appealing visitor reports from your website's access logs. Explore visitor locations, accessed pages, IPs, error pages, and more with ease.",
url: "/docs/panel/analytics/domain_visitors/",
@ -190,7 +212,7 @@ export const integrations: IntegrationsType = {
},
{
name: "Activity logs",
icon: Hasura,
icon: Activity,
description:
"Every action in the OpenPanel interface is recorded, allowing users to easily track who did what and when, eliminating the need to sift through server logs.",
url: "/docs/panel/analytics/account_activity/",
@ -198,7 +220,7 @@ export const integrations: IntegrationsType = {
},
{
name: "Account settings",
icon: Hasura,
icon: AccountCog,
description:
"Users can change their email address and password, enable 2FA, adjust language preferences, and activate dark mode for a personalized experience.",
url: "/docs/panel/account/",
@ -208,7 +230,7 @@ export const integrations: IntegrationsType = {
"community-data-provider-packages": [
{
name: "Simple server deployment",
icon: Directus,
icon: Download,
description:
"Install OpenPanel in minutes. Provision new servers to your cluster with a single command.",
url: "/docs/admin/intro/#installation",
@ -216,14 +238,14 @@ export const integrations: IntegrationsType = {
},
{
name: "Resource usage management",
icon: Firebase,
icon: CPU,
description: "Limit the CPU, I/O bandwidth, IOPS, nproc and memory on a per-user basis to ensure consistent performance for all your hosted websites.",
url: "/",
status: "stable",
},
{
name: "Switch web servers",
icon: Hygraph,
icon: Bolt,
description:
"Currently, only Nginx is supported as the webserver, but upcoming support for LiteSpeed will provide administrators the option to choose their preferred webserver.",
url: "/",
@ -231,7 +253,7 @@ export const integrations: IntegrationsType = {
},
{
name: "Edit configuration",
icon: Sanity,
icon: Configuration,
description:
"Administrators have the capability to designate domains for panel access, modify ports, and edit settings for both the OpenPanel and OpenAdmin interfaces, providing flexibility in configuring the system to suit specific requirements.",
url: "/docs/category/settings/",
@ -239,7 +261,7 @@ export const integrations: IntegrationsType = {
},
{
name: "Resource usage statistics",
icon: Elide,
icon: Usage,
description:
"Monitor CPU and Memory usage, Network and load with real time monitoring.",
url: "/docs/admin/dashboard/#cpu",
@ -247,7 +269,7 @@ export const integrations: IntegrationsType = {
},
{
name: "Service management",
icon: ElideGraphql,
icon: Services,
description:
"Monitor services, initiate restarts, view logs, and perform additional management tasks efficiently from the admin interface.",
url: "/docs/admin/dashboard/#services-status",
@ -255,7 +277,7 @@ export const integrations: IntegrationsType = {
},
{
name: "Smart Notifications",
icon: EntRefine,
icon: Notifications,
description:
"Receive notifications for events such as reboots, high resource usage, website attacks, failed services, and other critical occurrences to stay informed about the status of your server.",
url: "/docs/admin/notifications/",
@ -263,7 +285,7 @@ export const integrations: IntegrationsType = {
},
{
name: "Terminal Commands",
icon: EntRefine,
icon: Terminal,
description:
"OpenCLI serves as the terminal interface for Administrators, allowing automation of diverse OpenPanel settings with access to over 100 available commands.",
url: "/docs/category/openpanel-cli/",
@ -461,14 +483,14 @@ export const integrations: IntegrationsType = {
"community-packages": [
{
name: "WHMCS Module",
icon: Dp,
icon: WHMCS,
description: "Integrate with the leading web hosting management and billing software.",
url: "https://community.openpanel.co/",
status: "stable",
},
{
name: "REST API",
icon: Kinde,
icon: API,
description:
"Our powerful RESTful API allows you to integrate with 3rd party systems you already use.",
url: "/docs/admin/customize/api/",