portovi
This commit is contained in:
parent
9da3a9fe77
commit
6a109d65d3
25
documentation/src/assets/integration-icons/adminoff.tsx
Normal file
25
documentation/src/assets/integration-icons/adminoff.tsx
Normal file
|
@ -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
documentation/src/assets/integration-icons/box.tsx
Normal file
23
documentation/src/assets/integration-icons/box.tsx
Normal file
|
@ -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
documentation/src/assets/integration-icons/cpu.tsx
Normal file
29
documentation/src/assets/integration-icons/cpu.tsx
Normal file
|
@ -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
documentation/src/assets/integration-icons/factor.tsx
Normal file
24
documentation/src/assets/integration-icons/factor.tsx
Normal file
|
@ -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
documentation/src/assets/integration-icons/firewall.tsx
Normal file
28
documentation/src/assets/integration-icons/firewall.tsx
Normal file
|
@ -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;
|
|
@ -10,6 +10,17 @@ export { default as UserIP } from "./userip";
|
|||
export { default as UserLogin } from "./userlogin";
|
||||
export { default as Upgrade } from "./upgrade";
|
||||
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 Airtable } from "./airtable";
|
||||
export { default as Antd } from "./antd";
|
||||
|
|
21
documentation/src/assets/integration-icons/ipblock.tsx
Normal file
21
documentation/src/assets/integration-icons/ipblock.tsx
Normal file
|
@ -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;
|
|
@ -13,10 +13,14 @@ const SvgKeyboard = (props: SVGProps<SVGSVGElement>) => (
|
|||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...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>
|
||||
);
|
||||
|
||||
|
|
22
documentation/src/assets/integration-icons/modsec.tsx
Normal file
22
documentation/src/assets/integration-icons/modsec.tsx
Normal file
|
@ -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
documentation/src/assets/integration-icons/ports.tsx
Normal file
23
documentation/src/assets/integration-icons/ports.tsx
Normal file
|
@ -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
documentation/src/assets/integration-icons/separate.tsx
Normal file
21
documentation/src/assets/integration-icons/separate.tsx
Normal file
|
@ -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
documentation/src/assets/integration-icons/ssl.tsx
Normal file
22
documentation/src/assets/integration-icons/ssl.tsx
Normal file
|
@ -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
documentation/src/assets/integration-icons/terminal.tsx
Normal file
22
documentation/src/assets/integration-icons/terminal.tsx
Normal file
|
@ -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;
|
|
@ -12,6 +12,17 @@ import {
|
|||
UserServer,
|
||||
UserIP,
|
||||
UserLogin,
|
||||
Firewall,
|
||||
SSL,
|
||||
ModSec,
|
||||
Factor,
|
||||
CPU,
|
||||
Box,
|
||||
IPblock,
|
||||
Terminal,
|
||||
AdminOff,
|
||||
Ports,
|
||||
Separate,
|
||||
Airtable,
|
||||
Antd,
|
||||
Ably,
|
||||
|
@ -131,7 +142,7 @@ export const integrations: IntegrationsType = {
|
|||
},
|
||||
{
|
||||
name: "SSH and Web Terminal",
|
||||
icon: Strapi,
|
||||
icon: Terminal,
|
||||
description:
|
||||
"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/",
|
||||
|
@ -360,7 +371,7 @@ export const integrations: IntegrationsType = {
|
|||
"live-providers": [
|
||||
{
|
||||
name: "User containerisation",
|
||||
icon: Ably,
|
||||
icon: Box,
|
||||
description:
|
||||
"Every user account is containerised. Containers have no access to other users or server files.",
|
||||
url: "/docs/panel/intro/",
|
||||
|
@ -368,7 +379,7 @@ export const integrations: IntegrationsType = {
|
|||
},
|
||||
{
|
||||
name: "Resource limiting",
|
||||
icon: Ably,
|
||||
icon: CPU,
|
||||
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.",
|
||||
url: "/docs/admin/plans/hosting_plans/#create-a-plan",
|
||||
|
@ -376,7 +387,7 @@ export const integrations: IntegrationsType = {
|
|||
},
|
||||
{
|
||||
name: "SSL / TLS",
|
||||
icon: Ably,
|
||||
icon: SSL,
|
||||
description:
|
||||
"Automatically provision Let's Encrypt certificates. Users can generate new certificates and seamlessly redirect all website traffic to HTTPS.",
|
||||
url: "/docs/panel/domains/SSL/",
|
||||
|
@ -384,7 +395,7 @@ export const integrations: IntegrationsType = {
|
|||
},
|
||||
{
|
||||
name: "ModSecurity",
|
||||
icon: Ably,
|
||||
icon: ModSec,
|
||||
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.",
|
||||
url: "/docs/admin/settings/waf/",
|
||||
|
@ -392,7 +403,7 @@ export const integrations: IntegrationsType = {
|
|||
},
|
||||
{
|
||||
name: "Firewall",
|
||||
icon: Ably,
|
||||
icon: Firewall,
|
||||
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.",
|
||||
url: "/docs/admin/settings/firewall/",
|
||||
|
@ -400,7 +411,7 @@ export const integrations: IntegrationsType = {
|
|||
},
|
||||
{
|
||||
name: "Two-Factor Authentication",
|
||||
icon: Ably,
|
||||
icon: Factor,
|
||||
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.",
|
||||
url: "/docs/panel/account/2fa/",
|
||||
|
@ -408,7 +419,7 @@ export const integrations: IntegrationsType = {
|
|||
},
|
||||
{
|
||||
name: "Limited shell access",
|
||||
icon: Ably,
|
||||
icon: Terminal,
|
||||
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.",
|
||||
url: "/docs/panel/advanced/ssh/",
|
||||
|
@ -416,7 +427,7 @@ export const integrations: IntegrationsType = {
|
|||
},
|
||||
{
|
||||
name: "IP blocking",
|
||||
icon: Ably,
|
||||
icon: IPblock,
|
||||
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.",
|
||||
url: "",
|
||||
|
@ -424,7 +435,7 @@ export const integrations: IntegrationsType = {
|
|||
},
|
||||
{
|
||||
name: "Disable admin panel",
|
||||
icon: Ably,
|
||||
icon: AdminOff,
|
||||
description:
|
||||
"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",
|
||||
|
@ -432,7 +443,7 @@ export const integrations: IntegrationsType = {
|
|||
},
|
||||
{
|
||||
name: "Separate services",
|
||||
icon: Ably,
|
||||
icon: Separate,
|
||||
description:
|
||||
"Both OpenAdmin and OpenPanel employ separate databases and webservers, maintaining full independence from user websites.",
|
||||
url: "",
|
||||
|
@ -440,7 +451,7 @@ export const integrations: IntegrationsType = {
|
|||
},
|
||||
{
|
||||
name: "Custom ports",
|
||||
icon: Ably,
|
||||
icon: Ports,
|
||||
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.",
|
||||
url: "/docs/admin/settings/openpanel/",
|
||||
|
|
Loading…
Reference in a new issue