diff --git a/docs/docs/configuration.mdx b/docs/docs/configuration.mdx index 471279e..e7a65c2 100644 --- a/docs/docs/configuration.mdx +++ b/docs/docs/configuration.mdx @@ -7,6 +7,7 @@ description: Configuring hyperglass --- import Admonition from "react-admonitions"; +import R from "../src/components/required"; hyperglass is meant to be _extremely_ customizable, but with reasonable defaults that most operators won't need to override. Even though there are a _lot_ of configuration options, all of them can be left untouched and hyperglass will work (although, it's recommended to at least set the organization name). @@ -70,3 +71,14 @@ There are a lot more options, but this is enough to get started. . + +## All Device Parameters + +| Parameter | Type | Description | +| ------------------- | ------- | ------------------------------------------------------------------------------------------------------- | +| `name` | String | Device hostname. This is not user-facing. | +| `address` | String | Device management hostname or IP address. | +| `network` | String | Primary network this device is a member of. Used for device grouping. Usually something like 'AS65000'. | +| `display_name` | String | Device's user-facing name. | +| `port` | Integer | TCP port used to connect to the device. | +| `nos` | String | Network Operating System. Must be a [supported platform](/docs/platforms) | diff --git a/docs/docs/introduction.mdx b/docs/docs/introduction.mdx index c38ed8f..2c11de8 100644 --- a/docs/docs/introduction.mdx +++ b/docs/docs/introduction.mdx @@ -15,6 +15,28 @@ import styles from "../src/pages/styles.module.css"; hyperglass was created with the lofty goal of benefiting the internet community at-large by providing a faster, easier, and more secure way for operators to provide looking glass services to their customers, peers, and other network operators. +# Features + +- BGP Route, BGP Community, BGP AS Path, Ping, & Traceroute +- Full IPv6 support +- Customizable everything: features, theme, UI/API text, error messages, commands +- Built in support for: + - Cisco IOS/IOS-XE + - Cisco IOS-XR + - Juniper JunOS + - Arista EOS + - Huawei + - FRRouting + - BIRD +- Configurable support for any other [supported platform](/docs/platforms) +- Optionally access devices via an SSH proxy/jump server +- VRF support +- Access List/prefix-list style query control to whitelist or blacklist query targets on a per-VRF basis +- REST API with automatic, configurable OpenAPI documentation +- Modern, responsive UI built on [ReactJS](https://reactjs.org/), with [NextJS](https://nextjs.org/) & [Chakra UI](https://chakra-ui.com/) +- Query multiple devices simultaneously + + diff --git a/docs/docs/platforms.mdx b/docs/docs/platforms.mdx new file mode 100644 index 0000000..f057462 --- /dev/null +++ b/docs/docs/platforms.mdx @@ -0,0 +1,96 @@ +--- +id: platforms +title: Supported Platforms +sidebar_label: Supported Platforms +description: Platforms supported by hyperglass +--- + +## HTTP + +The following platforms use [`hyperglass-agent`](https://github.com/checktheroads/hyperglass-agent) for connection handling. When configuring the `nos` property of a device, use the value in the **Key** column. + +| Name | Key | +| --------- | ------ | +| BIRD | `bird` | +| FRRouting | `frr` | + +## SSH + +The following platforms use [Netmiko](https://github.com/ktbyers/netmiko) for connection handling. When configuring the `nos` property of a device, use the value in the **Key** column. + +| Name | Key | +| ------------------------- | --------------------- | +| A10 | `a10` | +| Accedian | `accedian` | +| Alcatel AOS | `alcatel_aos` | +| Alcatel SROS | `alcatel_sros` | +| Apresia Systems AEOS | `apresia_aeos` | +| Arista vEOS | `arista_eos` | +| Aruba | `aruba_os` | +| Avaya ERS | `avaya_ers` | +| Avaya VSP | `avaya_vsp` | +| Calix B6 | `calix_b6` | +| Check Point GAiA | `checkpoint_gaia` | +| Ciena SAOS | `ciena_saos` | +| Cisco ASA | `cisco_asa` | +| Cisco IOS | `cisco_ios` | +| Cisco NX-OS | `cisco_nxos` | +| Cisco SG-300 | `cisco_s300` | +| Cisco IOS-XE | `cisco_xe` | +| Cisco IOS-XR | `cisco_xr` | +| Citrix Netscaler | `netscaler` | +| CloudGenix ION | `cloudgenix_ion` | +| Coriant | `coriant` | +| Dell OS6 | `dell_os6` | +| Dell OS9 | `dell_os9` | +| Dell OS10 | `dell_os10` | +| Dell PowerConnect | `dell_powerconnect` | +| Endace | `endace` | +| Eltex | `eltex` | +| Eltex ESR | `eltex_esr` | +| Enterasys | `enterasys` | +| Extreme | `extreme` | +| Extreme ERS | `extreme_ers` | +| Extreme EXOS | `extreme_exos` | +| Extreme/Brocade NetIron | `extreme_netiron` | +| Extreme NOS | `extreme_nos` | +| Extreme/Brocade SLX | `extreme_slx` | +| Extreme/Brocade VDX | `extreme_vdx` | +| Extreme VSP | `extreme_vsp` | +| Extreme Wing | `extreme_wing` | +| F5 LTM | `f5_ltm` | +| F5 TMSH | `f5_tmsh` | +| F5 Linux | `f5_linux` | +| Flex VNF | `flexvnf` | +| Fortinet | `fortinet` | +| Generic Terminal Server | `generic_termserver` | +| HPE/3COM Comware | `hp_comware` | +| HPE ProCurve | `hp_procurve` | +| Huawei | `huawei` | +| Huawei VRPv8 | `huawei_vrpv8` | +| IPInfusion OcNOS | `ipinfusion_ocnos` | +| Juniper | `juniper` | +| Juniper JunOS | `juniper_junos` | +| Juniper ScreenOS | `juniper_screenos` | +| Keymile | `keymile` | +| Keymile NOS | `keymile_nos` | +| Linux | `linux` | +| Mikrotik RouterOS | `mikrotik_routeros` | +| Mikrotik SwitchOS | `mikrotik_switchos` | +| Mellanox | `mellanox` | +| Mellanox MLNX-OS | `mellanox_mlnxos` | +| MRV LX | `mrv_lx` | +| MRV Optiswitch | `mrv_optiswitch` | +| Nokia SROS | `nokia_sros` | +| OneAccess OneOS | `oneaccess_oneos` | +| OVS Linux | `ovs_linux` | +| Palo Alto Networks PAN-OS | `paloalto_panos` | +| Pluribus | `pluribus` | +| Quanta Mesh | `quanta_mesh` | +| RAD ETX | `rad_etx` | +| Ruckus/Brocade FastIron | `ruckus_fastiron` | +| Ruijie OS | `ruijie_os` | +| Ubuiquiti EdgeRouter | `ubiquiti_edge` | +| Ubuiquiti EdgeSwitch | `ubiquiti_edgeswitch` | +| Vyatta VyOS | `vyatta_vyos` | +| VyOS | `vyos` | diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index a91f375..029aa5f 100755 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -37,8 +37,16 @@ module.exports = { title: "Docs", items: [ { - label: "Style Guide", + label: "Introduction", + to: "docs/introduction" + }, + { + label: "Getting Started", to: "docs/getting-started" + }, + { + label: "Configuration", + to: "docs/configuration" } ] }, diff --git a/docs/sidebars.js b/docs/sidebars.js index 5b4c053..47a91c2 100755 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -1,6 +1,11 @@ module.exports = { - someSidebar: { - Installation: ["introduction", "getting-started", "configuration"], - Features: ["mdx"] - } + someSidebar: [ + { + type: "category", + label: "Installation", + items: ["introduction", "getting-started", "configuration"] + }, + { type: "category", label: "Features", items: ["mdx"] }, + { type: "doc", label: "Supported Platforms", href: "/docs/platforms" } + ] }; diff --git a/docs/src/components/required.js b/docs/src/components/required.js new file mode 100644 index 0000000..f615549 --- /dev/null +++ b/docs/src/components/required.js @@ -0,0 +1,5 @@ +import React from "react"; + +export default () => ( + * +); diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css index 013e507..0732fcd 100755 --- a/docs/src/css/custom.css +++ b/docs/src/css/custom.css @@ -6,20 +6,13 @@ /* You can override the default Infima variables here. */ :root { - /* --ifm-color-primary: #25c2a0; - --ifm-color-primary-dark: rgb(33, 175, 144); - --ifm-color-primary-darker: rgb(31, 165, 136); - --ifm-color-primary-darkest: rgb(26, 136, 112); - --ifm-color-primary-light: rgb(70, 203, 174); - --ifm-color-primary-lighter: rgb(102, 212, 189); - --ifm-color-primary-lightest: rgb(146, 224, 208); */ - --ifm-color-secondary: #330036; - --ifm-color-secondary-dark: #2e0031; - --ifm-color-secondary-darker: #2b002e; - --ifm-color-secondary-darkest: #240026; - --ifm-color-secondary-light: #38003b; - --ifm-color-secondary-lighter: #3b003e; - --ifm-color-secondary-lightest: #420046; + --ifm-color-secondary: #314cb6; + --ifm-color-secondary-dark: #2c44a4; + --ifm-color-secondary-darker: #2a419b; + --ifm-color-secondary-darkest: #22357f; + --ifm-color-secondary-light: #3654c8; + --ifm-color-secondary-lighter: #3e5bcb; + --ifm-color-secondary-lightest: #5a72d3; --ifm-color-primary: #ff5e5b; --ifm-color-primary-dark: #ff3c38; --ifm-color-primary-darker: #ff2b27; @@ -36,3 +29,7 @@ margin: 0 calc(-1 * var(--ifm-pre-padding)); padding: 0 var(--ifm-pre-padding); } + +table td:nth-child(1) { + white-space: nowrap; +}