diff --git a/README.md b/README.md index bc3c1b1..9fcfe26 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,129 @@ -# T.O.P. (Topology Orchestration Platform) +# TOPHAT + +## Installation + +### STEP 1 - Interconnects + +### Supported Platforms +Interconnect devices must meet the following requirements to ensure compatibility with TOPHAT: + +**Operating System (OS)** + + - Cisco IOSv + - Cisco IOS + - Cisco IOS-XE + +**Port Density** + +TOPHAT can support up to 2 Interconnect devices, each with varying port densities: + + - **1x Interconnects** + - Must be 48 ports + - **2x Interconnects** + - Interconnect 1: 48 ports + - Interconnect 2: 24-48 ports + +--- + +#### Initial Configuration + +Interconnect devices must be **remotely accessible** via **SSH** from the **out-of-band (OOB) management interface** to the TOPHAT application host. + +It is recommended to use spanning-tree mode MST, and static assign OOB IP addresses for the Interconnects. + +--- + +##### Authentication + +- **SSH Access**: Required for secure remote administration. +- **User Authentication**: Devices must support **username/password authentication**. +- **Privilege Escalation**: An **enable secret password** must be configured for administrative access. + +An example basic configuration is provided below: + +``` +hostname Interconnect +ip domain-name interconnect.lab +username admin privilege 15 secret 0 cisco +enable secret cisco +line vty 0 15 + login local + transport input ssh +crypto key generate rsa modulus 2048 +ip ssh version 2 +``` + +--- + +##### Lab Device Ports + +All device interfaces (**excluding the last four ports**) must be configured for **dot1q tunneling (QinQ)** to encapsulate Layer 2 protocol frames. These ports serve as direct connections to lab devices. + +``` +interface range GigabitEthernet1/0/1-44 + shutdown + no switchport access vlan + switchport mode dot1q-tunnel + negotiation auto + mtu 9000 + mtu 8978 + l2protocol-tunnel cdp + l2protocol-tunnel lldp + l2protocol-tunnel stp + l2protocol-tunnel vtp + l2protocol-tunnel point-to-point pagp + l2protocol-tunnel point-to-point lacp + l2protocol-tunnel point-to-point udld + no cdp enable +``` + +--- + +##### Transport Ports + +The last four interfaces (**45-48** or **21-24**, depending on the platform) are dedicated to **transporting traffic between Interconnects**. + +*If you are only using one Interconnect, shut these ports.* + +``` +port-channel load-balance src-dst-mac +! +interface GigabitEthernet1/0/45-48 + channel-protocol lacp + channel-group 1 mode active + no shutdown +! +interface Port-channel1 + switchport mode trunk + switchport trunk allowed vlan all + switchport nonegotiate + mtu 9000 + mtu 8978 + no cdp enable + no shutdown +``` + +### STEP 2 - Application + +#### Environment Setup + +Once the Interconnects are configured, proceed with the installation of the TOPHAT application. + +Navigate to the [TOPHAT GitHub](https://github.com/breyr/TOPHAT/blob/main/compose.prod.yaml) repository, and make a copy of the `compose.prod.yaml` file. + +Save the file as `docker-compose.yml` in your desired directory. + +#### Running the Application + +Run the following command to start the application: + +```sh +docker-compose -f docker-compose.yml up -d +``` + +TOPHAT will now be running at [0.0.0.0:80](0.0.0.0:80). + +To expose TOPHAT outside of your LAN, we recommend using [Cloudflare Tunnels](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) to securely expose the UI externally with ZeroTrust. ## Developing diff --git a/compose.prod.yaml b/compose.prod.yaml index 59b9aeb..133d150 100644 --- a/compose.prod.yaml +++ b/compose.prod.yaml @@ -14,7 +14,7 @@ services: - postgres_data:/var/lib/postgresql/data backend: - image: breyr/top-backend:1.0.1 + image: breyr/top-backend:1.0.2 container_name: backend environment: DATABASE_URL: postgres://demo:demo@postgres:5432/demo @@ -25,7 +25,7 @@ services: - postgres frontend: - image: breyr/top-frontend:1.0.1 + image: breyr/top-frontend:1.0.2 container_name: frontend ports: - "80:80" @@ -33,7 +33,7 @@ services: - backend interconnect-api: - image: breyr/top-interconnectapi:1.0.1 + image: breyr/top-interconnectapi:1.0.2 container_name: interconnect-api environment: SECRET_KEY: your_secret diff --git a/frontend/src/pages/Index.tsx b/frontend/src/pages/Index.tsx index 953fdb8..3b479ab 100644 --- a/frontend/src/pages/Index.tsx +++ b/frontend/src/pages/Index.tsx @@ -55,14 +55,14 @@ export default function IndexPage() {

- + - +