diff --git a/website/src/app/page.tsx b/website/src/app/page.tsx index 0888fcb..6340389 100644 --- a/website/src/app/page.tsx +++ b/website/src/app/page.tsx @@ -1,147 +1,44 @@ +import { Logo } from '@/components/header'; import { Card, CardBody, CardHeader, Code } from '@nextui-org/react'; import Link from 'next/link'; export default function Page() { return (
- - -
- - Install via Nix - - -

For the current development version:

- {`nix profile install --file https://github.com/vst/hostpatrol/archive/main.tar.gz app`} -

For a versioned release:

- {`nix profile install --file https://github.com/vst/hostpatrol/archive/v.tar.gz app`} -
- - Install Statically Build Executable (for Linux on x86_64) - - - -
-                {`curl -Lo /tmp/hostpatrol https://github.com/vst/hostpatrol/releases/latest/download/hostpatrol-static-linux-x86_64
-sudo install /tmp/hostpatrol /usr/local/bin/hostpatrol`}
-              
-
-
-
- - - Configuration Example - - - -
-                {`## List of known SSH public keys for all hosts.
-knownSshKeys:
-  - gh:some-github-user
-  - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKq9bpy0IIfDnlgaTCQk0YhKyKFqInRjoqeIPlBuiFwS test-key-admin
-
-## List of hosts to patrol
-hosts:
-  - ## Name of the host (required)
-    name: somehost
-    ## SSH configuration (optional)
-    ssh:
-      ## SSH destination (required)
-      destination: root@10.10.10.10
-      ## SSH options (optional)
-      options: ["-i", "/keys/hebele.pri"]
-    ## External identifier of the host (optional)
-    id: 20b88669-743f-4ae5-9823-5aacc2df7086
-    ## External URL for the host (optional)
-    url: https://internal.documentation/hosts/somehost
-    ## List of tags for the host (optional)
-    tags:
-      - oranges
-      - strawberries
-    ## Arbitrary JSON data for the host (optional)
-    data:
-      owner: Client-1
-      cost: 50
-    ## List of known SSH public keys for the host (optional)
-    knownSshKeys:
-      - gh:another-github-user
-      - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGmlBxUagOqtWcW6B77TUL8li85ZNYx0tphd3TSx4SEB test-key-tenant
-  - name: otherhost
-    url: https://internal.documentation/hosts/otherhost
-    tags:
-      - apples
-      - strawberries`}
-              
-
-
-
- - - Usage - - -

You can pass hosts via CLI arguments:

- - -
{`hostpatrol compile --host my-host-1 --host my-host-2 > /tmp/hostpatrol-report.json`}
-
- -

- This command connects to hosts in parallel and ignores all failed hosts by reporting errors in the output. -

- -

- If you want to change the number of maximum number of threads to use for concurrent patrol tasks, do so - with `--threads` option that defaults to `4` otherwise: -

- - -
{`hostpatrol compile --threads 10 --host my-host-1 --host my-host-2 ... > /tmp/hostpatrol-report.json`}
-
- -

- Alternatively, you can use the configuration file which has additional benefit of attaching static - information to your hosts such as external documentation URL and/or tags, and using SSH configuration - instead of plain host name. -

- - -
{`hostpatrol compile --config config.yaml > /tmp/hostpatrol-report.json`}
-
- -

..., or mix with `--host` option:

- - -
{`hostpatrol compile --config config.yaml --host a-host --host b-host > /tmp/hostpatrol-report.json`}
-
- -

- You can process/analyse the JSON output itself or use{' '} - - Web application - {' '} - to list, tabulate and visualise the information. -

-
-
-
+ + +
); } -function Points() { +function Hero() { return ( -
-
-
-

Patrol Your Hosts

+
+ -

- Host Patrol is a command-line tool for gathering information about your hosts via SSH. It also offers a Web - application for viewing this information in your browser. -

+
+
+ -
+ + +

+ Patrol Your Hosts +

+ +

+ Host Patrol is a command-line tool for gathering information about your hosts via SSH. It also offers a Web + application for viewing this information in your browser. +

+ +
+
+
+
+ App screenshot +
+
+
+
+
+ ); +} + +function LearnMore() { + return ( +
+
- {points.map((point) => ( + {POINTS.map((point) => (
{point.name}
{point.description}
@@ -179,7 +120,7 @@ function Points() { ); } -const points = [ +const POINTS = [ { name: 'Who is it for?', description: ( @@ -258,3 +199,127 @@ const points = [ ), }, ]; + +function GettingStarted() { + return ( +
+ + Install via Nix + + +

For the current development version:

+ {`nix profile install --file https://github.com/vst/hostpatrol/archive/main.tar.gz app`} +

For a versioned release:

+ {`nix profile install --file https://github.com/vst/hostpatrol/archive/v.tar.gz app`} +
+ + Install Statically Build Executable (for Linux on x86_64) + + + +
+              {`curl -Lo /tmp/hostpatrol https://github.com/vst/hostpatrol/releases/latest/download/hostpatrol-static-linux-x86_64
+sudo install /tmp/hostpatrol /usr/local/bin/hostpatrol`}
+            
+
+
+
+ + + Configuration Example + + + +
+              {`## List of known SSH public keys for all hosts.
+knownSshKeys:
+  - gh:some-github-user
+  - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKq9bpy0IIfDnlgaTCQk0YhKyKFqInRjoqeIPlBuiFwS test-key-admin
+
+## List of hosts to patrol
+hosts:
+  - ## Name of the host (required)
+    name: somehost
+    ## SSH configuration (optional)
+    ssh:
+      ## SSH destination (required)
+      destination: root@10.10.10.10
+      ## SSH options (optional)
+      options: ["-i", "/keys/hebele.pri"]
+    ## External identifier of the host (optional)
+    id: 20b88669-743f-4ae5-9823-5aacc2df7086
+    ## External URL for the host (optional)
+    url: https://internal.documentation/hosts/somehost
+    ## List of tags for the host (optional)
+    tags:
+      - oranges
+      - strawberries
+    ## Arbitrary JSON data for the host (optional)
+    data:
+      owner: Client-1
+      cost: 50
+    ## List of known SSH public keys for the host (optional)
+    knownSshKeys:
+      - gh:another-github-user
+      - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGmlBxUagOqtWcW6B77TUL8li85ZNYx0tphd3TSx4SEB test-key-tenant
+  - name: otherhost
+    url: https://internal.documentation/hosts/otherhost
+    tags:
+      - apples
+      - strawberries`}
+            
+
+
+
+ + + Usage + + +

You can pass hosts via CLI arguments:

+ + +
{`hostpatrol compile --host my-host-1 --host my-host-2 > /tmp/hostpatrol-report.json`}
+
+ +

+ This command connects to hosts in parallel and ignores all failed hosts by reporting errors in the output. +

+ +

+ If you want to change the number of maximum number of threads to use for concurrent patrol tasks, do so with + `--threads` option that defaults to `4` otherwise: +

+ + +
{`hostpatrol compile --threads 10 --host my-host-1 --host my-host-2 ... > /tmp/hostpatrol-report.json`}
+
+ +

+ Alternatively, you can use the configuration file which has additional benefit of attaching static + information to your hosts such as external documentation URL and/or tags, and using SSH configuration + instead of plain host name. +

+ + +
{`hostpatrol compile --config config.yaml > /tmp/hostpatrol-report.json`}
+
+ +

..., or mix with `--host` option:

+ + +
{`hostpatrol compile --config config.yaml --host a-host --host b-host > /tmp/hostpatrol-report.json`}
+
+ +

+ You can process/analyse the JSON output itself or use{' '} + + Web application + {' '} + to list, tabulate and visualise the information. +

+
+
+
+ ); +} diff --git a/website/src/components/header.tsx b/website/src/components/header.tsx index 5a2f836..c397504 100644 --- a/website/src/components/header.tsx +++ b/website/src/components/header.tsx @@ -12,6 +12,15 @@ import { import Link from 'next/link'; import { useState } from 'react'; +export function Logo() { + return ( +

+ HOST + PATROL +

+ ); +} + export default function Header() { const [isMenuOpen, setIsMenuOpen] = useState(false); @@ -24,10 +33,7 @@ export default function Header() { classNames={{ base: 'z-50 bg-gray-200' }} > -

- HOST - PATROL -

+