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;
+}