Stefan Pejcic 1 year ago
parent
commit
6a109d65d3

+ 25 - 0
documentation/src/assets/integration-icons/adminoff.tsx

@@ -0,0 +1,25 @@
+import * as React from "react";
+import { SVGProps } from "react";
+
+const SvgAdminOff = (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 5h10a2 2 0 0 1 2 2v10m-2 2h-14a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2" />
+  <path d="M7 15v-4a2 2 0 0 1 2 -2m2 2v4" />
+  <path d="M7 13h4" />
+  <path d="M17 9v4" />
+  <path d="M16.115 12.131c.33 .149 .595 .412 .747 .74" />
+  <path d="M3 3l18 18" />
+</svg>
+);
+
+export default SvgAdminOff;

+ 23 - 0
documentation/src/assets/integration-icons/box.tsx

@@ -0,0 +1,23 @@
+import * as React from "react";
+import { SVGProps } from "react";
+
+const SvgBox = (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 3l8 4.5l0 9l-8 4.5l-8 -4.5l0 -9l8 -4.5" />
+  <path d="M12 12l8 -4.5" />
+  <path d="M12 12l0 9" />
+  <path d="M12 12l-8 -4.5" />
+</svg>
+);
+
+export default SvgBox;

+ 29 - 0
documentation/src/assets/integration-icons/cpu.tsx

@@ -0,0 +1,29 @@
+import * as React from "react";
+import { SVGProps } from "react";
+
+const SvgCPU = (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 5m0 1a1 1 0 0 1 1 -1h12a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-12a1 1 0 0 1 -1 -1z" />
+  <path d="M9 9h6v6h-6z" />
+  <path d="M3 10h2" />
+  <path d="M3 14h2" />
+  <path d="M10 3v2" />
+  <path d="M14 3v2" />
+  <path d="M21 10h-2" />
+  <path d="M21 14h-2" />
+  <path d="M14 21v-2" />
+  <path d="M10 21v-2" />
+</svg>
+);
+
+export default SvgCPU;

+ 24 - 0
documentation/src/assets/integration-icons/factor.tsx

@@ -0,0 +1,24 @@
+import * as React from "react";
+import { SVGProps } from "react";
+
+const SvgFactor = (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.9 7a8 8 0 0 1 1.1 5v1a6 6 0 0 0 .8 3" />
+  <path d="M8 11a4 4 0 0 1 8 0v1a10 10 0 0 0 2 6" />
+  <path d="M12 11v2a14 14 0 0 0 2.5 8" />
+  <path d="M8 15a18 18 0 0 0 1.8 6" />
+  <path d="M4.9 19a22 22 0 0 1 -.9 -7v-1a8 8 0 0 1 12 -6.95" />
+</svg>
+);
+
+export default SvgFactor;

+ 28 - 0
documentation/src/assets/integration-icons/firewall.tsx

@@ -0,0 +1,28 @@
+import * as React from "react";
+import { SVGProps } from "react";
+
+const SvgFirewall = (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 4m0 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="M4 8h16" />
+  <path d="M20 12h-16" />
+  <path d="M4 16h16" />
+  <path d="M9 4v4" />
+  <path d="M14 8v4" />
+  <path d="M8 12v4" />
+  <path d="M16 12v4" />
+  <path d="M11 16v4" />
+</svg>
+);
+
+export default SvgFirewall;

+ 11 - 0
documentation/src/assets/integration-icons/index.ts

@@ -10,6 +10,17 @@ export { default as UserIP } from "./userip";
 export { default as UserLogin } from "./userlogin";
 export { default as UserLogin } from "./userlogin";
 export { default as Upgrade } from "./upgrade";
 export { default as Upgrade } from "./upgrade";
 export { default as Search } from "./search";
 export { default as Search } from "./search";
+export { default as Firewall } from "./firewall";
+export { default as SSL } from "./ssl";
+export { default as Factor } from "./factor";
+export { default as ModSec } from "./modsec";
+export { default as CPU } from "./cpu";
+export { default as Box } from "./box";
+export { default as IPblock } from "./ipblock";
+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 Ably } from "./ably";
 export { default as Ably } from "./ably";
 export { default as Airtable } from "./airtable";
 export { default as Airtable } from "./airtable";
 export { default as Antd } from "./antd";
 export { default as Antd } from "./antd";

+ 21 - 0
documentation/src/assets/integration-icons/ipblock.tsx

@@ -0,0 +1,21 @@
+import * as React from "react";
+import { SVGProps } from "react";
+
+const SvgIPblock = (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 3l18 18" />
+  <path d="M8 13.5v-5.5m.44 -3.562a1.5 1.5 0 0 1 2.56 1.062v1.5m0 4.008v.992m0 -6.5v-2a1.5 1.5 0 1 1 3 0v6.5m0 -4.5a1.5 1.5 0 0 1 3 0v6.5m0 -4.5a1.5 1.5 0 0 1 3 0v8.5a6 6 0 0 1 -6 6h-2c-2.114 -.292 -3.956 -1.397 -5 -3l-2.7 -5.25a1.7 1.7 0 0 1 2.75 -2l.9 1.75" />
+</svg>
+);
+
+export default SvgIPblock;

+ 8 - 4
documentation/src/assets/integration-icons/keyboard.tsx

@@ -13,10 +13,14 @@ const SvgKeyboard = (props: SVGProps<SVGSVGElement>) => (
         xmlns="http://www.w3.org/2000/svg"
         xmlns="http://www.w3.org/2000/svg"
         {...props}
         {...props}
     >
     >
-  <path stroke="none" d="M0 0h24v24H0z" fill="none" />
-  <path d="M20 11v-2a2 2 0 0 0 -2 -2h-12a2 2 0 0 0 -2 2v5a2 2 0 0 0 2 2h5" />
-  <path d="M18 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" />
-  <path d="M20.2 20.2l1.8 1.8" />
+  <path d="M2 6m0 2a2 2 0 0 1 2 -2h16a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-16a2 2 0 0 1 -2 -2z" />
+  <path d="M6 10l0 .01" />
+  <path d="M10 10l0 .01" />
+  <path d="M14 10l0 .01" />
+  <path d="M18 10l0 .01" />
+  <path d="M6 14l0 .01" />
+  <path d="M18 14l0 .01" />
+  <path d="M10 14l4 .01" />
 </svg>
 </svg>
 );
 );
 
 

+ 22 - 0
documentation/src/assets/integration-icons/modsec.tsx

@@ -0,0 +1,22 @@
+import * as React from "react";
+import { SVGProps } from "react";
+
+const SvgModSec = (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 3a12 12 0 0 0 8.5 3a12 12 0 0 1 -8.5 15a12 12 0 0 1 -8.5 -15a12 12 0 0 0 8.5 -3" />
+  <path d="M12 11m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" />
+  <path d="M12 12l0 2.5" />
+</svg>
+);
+
+export default SvgModSec;

+ 23 - 0
documentation/src/assets/integration-icons/ports.tsx

@@ -0,0 +1,23 @@
+import * as React from "react";
+import { SVGProps } from "react";
+
+const SvgPorts = (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 10v-7l-2 2" />
+  <path d="M6 16a2 2 0 1 1 4 0c0 .591 -.601 1.46 -1 2l-3 3h4" />
+  <path d="M15 14a2 2 0 1 0 2 -2a2 2 0 1 0 -2 -2" />
+  <path d="M6.5 10h3" />
+</svg>
+);
+
+export default SvgPorts;

+ 21 - 0
documentation/src/assets/integration-icons/separate.tsx

@@ -0,0 +1,21 @@
+import * as React from "react";
+import { SVGProps } from "react";
+
+const SvgSeparate = (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 4h16" />
+  <path d="M4 20h16" />
+</svg>
+);
+
+export default SvgSeparate;

+ 22 - 0
documentation/src/assets/integration-icons/ssl.tsx

@@ -0,0 +1,22 @@
+import * as React from "react";
+import { SVGProps } from "react";
+
+const SvgSSL = (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 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6z" />
+  <path d="M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" />
+  <path d="M8 11v-4a4 4 0 1 1 8 0v4" />
+</svg>
+);
+
+export default SvgSSL;

+ 22 - 0
documentation/src/assets/integration-icons/terminal.tsx

@@ -0,0 +1,22 @@
+import * as React from "react";
+import { SVGProps } from "react";
+
+const SvgTerminal = (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 9l3 3l-3 3" />
+  <path d="M13 15l3 0" />
+  <path d="M3 4m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z" />
+</svg>
+);
+
+export default SvgTerminal;

+ 23 - 12
documentation/src/assets/integrations.ts

@@ -12,6 +12,17 @@ import {
     UserServer,
     UserServer,
     UserIP,
     UserIP,
     UserLogin,
     UserLogin,
+    Firewall,
+    SSL,
+    ModSec,
+    Factor,
+    CPU,
+    Box,
+    IPblock,
+    Terminal,
+    AdminOff,
+    Ports,
+    Separate,
     Airtable,
     Airtable,
     Antd,
     Antd,
     Ably,
     Ably,
@@ -131,7 +142,7 @@ export const integrations: IntegrationsType = {
         },
         },
         {
         {
             name: "SSH and Web Terminal",
             name: "SSH and Web Terminal",
-            icon: Strapi,
+            icon: Terminal,
             description:
             description:
                 "Access the terminal remotely through SSH or log in automatically to the Web Terminal. Comes with preinstalled WPCLI and NPM for added convenience!",
                 "Access the terminal remotely through SSH or log in automatically to the Web Terminal. Comes with preinstalled WPCLI and NPM for added convenience!",
             url: "/docs/panel/advanced/ssh/",
             url: "/docs/panel/advanced/ssh/",
@@ -360,7 +371,7 @@ export const integrations: IntegrationsType = {
     "live-providers": [
     "live-providers": [
         {
         {
             name: "User containerisation",
             name: "User containerisation",
-            icon: Ably,
+            icon: Box,
             description:
             description:
                 "Every user account is containerised. Containers have no access to other users or server files.",
                 "Every user account is containerised. Containers have no access to other users or server files.",
             url: "/docs/panel/intro/",
             url: "/docs/panel/intro/",
@@ -368,7 +379,7 @@ export const integrations: IntegrationsType = {
         },
         },
         {
         {
             name: "Resource limiting",
             name: "Resource limiting",
-            icon: Ably,
+            icon: CPU,
             description:
             description:
                 "Administrators have the ability to set specific limits per plan, including port speed, disk usage, inodes, the number of websites, MySQL databases, and domains.",
                 "Administrators have the ability to set specific limits per plan, including port speed, disk usage, inodes, the number of websites, MySQL databases, and domains.",
             url: "/docs/admin/plans/hosting_plans/#create-a-plan",
             url: "/docs/admin/plans/hosting_plans/#create-a-plan",
@@ -376,7 +387,7 @@ export const integrations: IntegrationsType = {
         },
         },
         {
         {
             name: "SSL / TLS",
             name: "SSL / TLS",
-            icon: Ably,
+            icon: SSL,
             description:
             description:
                 "Automatically provision Let's Encrypt certificates. Users can generate new certificates and seamlessly redirect all website traffic to HTTPS.",
                 "Automatically provision Let's Encrypt certificates. Users can generate new certificates and seamlessly redirect all website traffic to HTTPS.",
             url: "/docs/panel/domains/SSL/",
             url: "/docs/panel/domains/SSL/",
@@ -384,7 +395,7 @@ export const integrations: IntegrationsType = {
         },
         },
         {
         {
             name: "ModSecurity",
             name: "ModSecurity",
-            icon: Ably,
+            icon: ModSec,
             description:
             description:
                 "Administrators can activate ModSecurity with a single click and configure the OWASP ruleset. Additionally, individual users have the flexibility to enable or disable ModSecurity per domain.",
                 "Administrators can activate ModSecurity with a single click and configure the OWASP ruleset. Additionally, individual users have the flexibility to enable or disable ModSecurity per domain.",
             url: "/docs/admin/settings/waf/",
             url: "/docs/admin/settings/waf/",
@@ -392,7 +403,7 @@ export const integrations: IntegrationsType = {
         },
         },
         {
         {
             name: "Firewall",
             name: "Firewall",
-            icon: Ably,
+            icon: Firewall,
             description:
             description:
                 "Administrators can manage (UFW) firewall rules directly from the admin interface. Only needed ports are open for users, and administrators have full control over them.",
                 "Administrators can manage (UFW) firewall rules directly from the admin interface. Only needed ports are open for users, and administrators have full control over them.",
             url: "/docs/admin/settings/firewall/",
             url: "/docs/admin/settings/firewall/",
@@ -400,7 +411,7 @@ export const integrations: IntegrationsType = {
         },
         },
         {
         {
             name: "Two-Factor Authentication",
             name: "Two-Factor Authentication",
-            icon: Ably,
+            icon: Factor,
             description:
             description:
                 "Users can enhance security by enabling Two-Factor Authentication for their OpenPanel account. Administrators have the flexibility to enforce or disable 2FA for any user.",
                 "Users can enhance security by enabling Two-Factor Authentication for their OpenPanel account. Administrators have the flexibility to enforce or disable 2FA for any user.",
             url: "/docs/panel/account/2fa/",
             url: "/docs/panel/account/2fa/",
@@ -408,7 +419,7 @@ export const integrations: IntegrationsType = {
         },
         },
         {
         {
             name: "Limited shell access",
             name: "Limited shell access",
-            icon: Ably,
+            icon: Terminal,
             description:
             description:
                 "End users are restricted from root-level access to their container. Additionally, to increase security, all services within a user's container operate under distinct user accounts.",
                 "End users are restricted from root-level access to their container. Additionally, to increase security, all services within a user's container operate under distinct user accounts.",
             url: "/docs/panel/advanced/ssh/",
             url: "/docs/panel/advanced/ssh/",
@@ -416,7 +427,7 @@ export const integrations: IntegrationsType = {
         }, 
         }, 
         {
         {
             name: "IP blocking",
             name: "IP blocking",
-            icon: Ably,
+            icon: IPblock,
             description:
             description:
                 "Each user has the capability to configure a domain-specific IP block list, providing a personalized means to restrict access to websites by blocking specific IP addresses.",
                 "Each user has the capability to configure a domain-specific IP block list, providing a personalized means to restrict access to websites by blocking specific IP addresses.",
             url: "",
             url: "",
@@ -424,7 +435,7 @@ export const integrations: IntegrationsType = {
         },
         },
         {
         {
             name: "Disable admin panel",
             name: "Disable admin panel",
-            icon: Ably,
+            icon: AdminOff,
             description:
             description:
                 "Administrators can effortlessly disable the OpenAdmin interface with a single click, while preserving the core functionality of OpenPanel.",
                 "Administrators can effortlessly disable the OpenAdmin interface with a single click, while preserving the core functionality of OpenPanel.",
             url: "/docs/admin/settings/adminpanel/#enable-features",
             url: "/docs/admin/settings/adminpanel/#enable-features",
@@ -432,7 +443,7 @@ export const integrations: IntegrationsType = {
         },
         },
         {
         {
             name: "Separate services",
             name: "Separate services",
-            icon: Ably,
+            icon: Separate,
             description:
             description:
                 "Both OpenAdmin and OpenPanel employ separate databases and webservers, maintaining full independence from user websites.",
                 "Both OpenAdmin and OpenPanel employ separate databases and webservers, maintaining full independence from user websites.",
             url: "",
             url: "",
@@ -440,7 +451,7 @@ export const integrations: IntegrationsType = {
         },
         },
         {
         {
             name: "Custom ports",
             name: "Custom ports",
-            icon: Ably,
+            icon: Ports,
             description:
             description:
                 "Administrators have the flexibility to customize the default port (e.g., change from 2083) and alter the directory path (e.g., from /openpanel) to cater to specific preferences.",
                 "Administrators have the flexibility to customize the default port (e.g., change from 2083) and alter the directory path (e.g., from /openpanel) to cater to specific preferences.",
             url: "/docs/admin/settings/openpanel/",
             url: "/docs/admin/settings/openpanel/",