# Software Install & Overview

## Introducing Hackerbot's Software

Welcome to the Hackerbot software suite! This page will guide you through installing, configuring, and understanding the key components of the Hackerbot ecosystem.

***

#### 📦 Hackerbot Installer

To install all Hackerbot software packages into the `~/hackerbot` directory, follow these steps:

```bash
cd ~
git clone https://github.com/hackerbotindustries/hackerbot-installer.git
cd ~/hackerbot-installer
bash install.sh
```

If you successfully complete the install, you should see:

```yaml
=============================================================
SETUP COMPLETE
=============================================================
Install logs saved to: /home/bobby/hackerbot/logs/setup_2025-04-14_12-58-47.log
```

Open a new terminal to activate the `hackerbot_venv` or run the following:

```shell
source ~/.bashrc
```

Later, you can update the hackerbot's software, by running:

<pre class="language-sh"><code class="lang-sh"><strong>bash software_update.sh
</strong></code></pre>

A successful update looks like this:

```yaml
[OK] Completed Software Update.
Log saved at: /home/bobby/hackerbot/logs/update_2025-04-14_13-02-49.log
```

#### ⚙️ Optional: Configure Services to Start on Boot

If you'd like to automatically launch the Flask API or Command Center on startup, run:

```sh
bash boot_configure.sh
```

You will see a configuration menu like:

```yaml
Current startup configuration:
 - Flask API: DISABLED at startup
 - Command Center: DISABLED at startup
 - hackerbot_venv: ENABLED in ~/.bashrc

Choose an option:
1) Enable Flask API at startup
2) Enable Command Center at startup
3) Disable both (remove from startup)
4) Enable Python venv sourcing in ~/.bashrc
5) Disable Python venv sourcing in ~/.bashrc
6) Exit
```

#### ⚠️ Important Notice: Single Connection Limitation

> Currently, Hackerbot only supports **one active connection** to the robot at a time.

If you choose to launch the Flask API on boot, it will occupy the serial port and prevent other tools—such as the Hackerbot Python package or direct serial access—from communicating with the robot.

**Recommendation**: If you plan to use the Python package or work directly with the robot, **do not enable** the Flask API on boot. Start it manually when needed instead.

Support for multiple simultaneous connections is planned in a future release.

***

## Components Overview

#### 🐍 Hackerbot Python Package

This is the official Python Package for Hackerbot. It allows developers to script and debug robot behavior programmatically.

More information can be found in the [Python Package documentation](/documentation-hackerbot-industries/software/python-package.md).

{% embed url="<https://github.com/hackerbotindustries/hackerbot-python-package>" %}

***

#### 🖥️ Hackerbot Command Center

A modern React-based web interface to visualize and control Hackerbot. Use it to view maps, send commands, and interact with the robot visually.

More details can be found in the [Command Center documentation](/documentation-hackerbot-industries/software/command-center.md#hackerbot-command-center).

{% embed url="<https://github.com/hackerbotindustries/hackerbot-command-center>" %}

***

#### 🌐 Hackerbot Flask API

The backend API that powers the Command Center. It provides HTTP-based interfaces (GET and POST endpoints) to control Hackerbot remotely.

Explore more in the [Flask API documentation](/documentation-hackerbot-industries/software/flask-apis.md).

{% embed url="<https://github.com/hackerbotindustries/hackerbot-flask-api>" %}

***

#### :man\_teacher: Hackerbot Tutorials

The tutorial repository provides example scripts to help hackers get started with the robot. It includes simple 'Hello World' programs and demonstrations of the robot's capabilities. \
For more information, refer to the [Tutorials](/documentation-hackerbot-industries/tutorials/hello-world.md) section.

{% embed url="<https://github.com/hackerbotindustries/hackerbot-tutorials>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hackerbot-industries.gitbook.io/documentation-hackerbot-industries/software/software-install-and-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
