# Install Akamas dependencies

This page will guide you through the installation of software components that are required to get the Akamas Server installed on a machine. Please read the [Akamas dependencies](https://docs.akamas.io/akamas-docs/3.1.2/installing-akamas/prerequisites/software-requirements) for a detailed list of these software components for each specific OS.

While some links to official documentation and installation resources are provided here, please make sure to refer to your internal system engineering department to ensure that your company deployment processes and best practices are correctly matched.

## Dependencies Setup <a href="#dependenciessetup-setup" id="dependenciessetup-setup"></a>

As a preliminary step before installing any dependency, it is strongly suggested to create a user named *akamas* on your machine hosting Akamas Server.

### Ubuntu <a href="#dependenciessetup-setup" id="dependenciessetup-setup"></a>

References:

* Docker installation guide: <https://docs.docker.com/engine/install/ubuntu/>
* Docker-Compose installation guide: <https://docs.docker.com/compose/install/>
* AWS CLI v2: <https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html#cliv2-linux-install>

It is recommended to add the *`akamas`* user to the docker group and to configure docker to start on boot: <https://docs.docker.com/engine/install/linux-postinstall/>

### CentOS or RHEL 7 <a href="#dependenciessetup-centos-rhel7" id="dependenciessetup-centos-rhel7"></a>

References:

* Docker installation guide: [https://docs.docker.com/engine/install/centos](https://docs.docker.com/engine/install/centos/)/

Notice: this distro features a known issue since Docker default execution group is named `dockerroot` instead of `docker` . To make docker work edit (or create) `/etc/docker/daemon.json` to include the following fragment:

```
{
  "group": "dockerroot"
}
```

After editing or creating the file, please restart Docker and then check the group permission of the Docker socket (`/var/run/docker.sock`), which should show `dockerroot` as group:

```
srw-rw----. 1 root dockerroot 0 Jul  4 09:57 /var/run/docker.sock
```

Then, add the newly created *`akamas`* user to the `dockerroot` group so that it can run docker containers:

```
sudo usermod -aG dockerroot <user_name>
```

and check the `akamas` user has been correctly added to `dockerroot` group by running:

```
lid -g dockerroot
```

References:

* Docker-compose installation guide: <https://docs.docker.com/compose/install/>
* AWS CLI v2: <https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html#cliv2-linux-install>
* for further post-installation operations: <https://docs.docker.com/engine/install/linux-postinstall/>

## Verify dependencies <a href="#dependenciessetup-verifydependencies" id="dependenciessetup-verifydependencies"></a>

As a quick check to verify that all dependencies have been correctly installed, please issue the following commands:

* Docker:

  ```
  docker run hello-world
  ```
* Docker-compose:

  ```
  docker-compose --version
  ```
* AWS CLI:

  ```
  aws --version
  ```
