---
id: getting-started
title: Getting Started
sidebar_label: Getting Started
keywords: [install, configuration]
description: Getting started with hyperglass
---

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

## Automatic installation

If your system runs on:

- Ubuntu Linux
- ~~CentOS/Red Had Linux~~
- macOS (requires [homebrew](https://brew.sh))

You should be able to proceed with the automatic installation:

```shell-session
$ curl https://install.hyperglass.io | sudo bash
```

:::caution Piping to bash
You should be <i>very</i> worried when someone asks you to do what I just did. Downloading a bash script from the internet and piping it to `bash` with root privileges is a terrible idea, unless you fully trust the source. Please don't trust me - go [look at the code](https://github.com/checktheroads/hyperglass/blob/v1.0.0/install.sh) and determine for your self if it's safe to execute. If you feel it's not, please proceed with the manual installation (and [tell me why](https://github.com/checktheroads/hyperglass/issues), so I can fix it).
:::

## Manual Installation

### System Dependencies

#### Python

hyperglass is written in Python 3 and requires Python version 3.6 as a minimum dependency.

If you're confident upgrading your system's version of Python won't break your system (many Linux operating systems rely heavily on Python for package management and other system functions), you can install Python 3.6:

<Tabs
  defaultValue="debian"
  values={[
    { label: 'Debian/Ubuntu', value: 'debian' },
    { label: 'RHEL/CentOS', value: 'rhel' }]}>

<TabItem value="debian">

```shell-session
$ sudo apt install -y python3.6-dev python3-pip
```

</TabItem>

<TabItem value="rhel">

You can install python from the CentOS 7 repository:

```shell-session
$ sudo yum install python3-devel python3-pip
```

But you can also use the [SCL repository](https://www.softwarecollections.org/en/scls/rhscl/rh-python36/)

```shell-session
$ sudo yum install centos-release-scl
$ sudo yum install rh-python36
```

</TabItem>

</Tabs>

You can then verify your Python 3 version:

```shell-session
$ python3 --version
Python 3.6.9
```

#### Other Dependencies

The hyperglass UI is written in [ReactJS](https://reactjs.org/). As such, some Javascript dependencies are required. hyperglass also relies on [Redis](https://redis.io/) for caching purposes.

<Tabs
  defaultValue="debian"
  values={[
    { label: 'Debian/Ubuntu', value: 'debian' },
    { label: 'RHEL/CentOS', value: 'rhel' }]}>

<TabItem value="debian">

```shell-session
$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

$ sudo apt update
$ sudo apt install -y nodejs yarn redis-server
```

</TabItem>

<TabItem value="rhel">

```shell-session
$ curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -

$ curl -sL https://dl.yarnpkg.com/rpm/yarn.repo -o /etc/yum.repos.d/yarn.repo

$ sudo yum -y install gcc-c++ make nodejs yarn redis
```

</TabItem>

</Tabs>

:::note From the Developer
I've attempted to abstract away most of the Javascript-related configuration and operational steps, because I think I might be the only network engineer on the planet who actually doesn't mind JS 😂. If you run into any issues with the NodeJS/Yarn installation processes, don't hesitate to [raise an issue](https://github.com/checktheroads/hyperglass/issues) on Github, and I'll do my best to help out.
:::

### Application

```shell-session
$ pip3 install hyperglass
```
