> ## Documentation Index
> Fetch the complete documentation index at: https://anaconda.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Standard installation

This topic provides guidance on installing Anaconda Server and verifying your installation.

<Note>
  To successfully install Anaconda Server, you must have already prepared your environment according to the [Standard environment preparation](../prep/standard-prep) topic.
</Note>

* [Installing Anaconda Server](#installing-anaconda-server)
* [Manual verification of installation](#manual-verification-of-installation)
* [Next steps](#next-steps)

## Installing Anaconda Server

Ensure you are in the same directory as the installer when completing these steps.

### Installing with root access

Run the following in bash:

```sh theme={null}
# Replace "x.x.x" with the version number.
# Replace "hostname of the target host" with the hostname of the server, which you will
#  use to access Anaconda Server. This could be internal or external (accessible from the internet).
./ate-x.x.x-installer.sh --keep -- --domain <the IP or hostname of the target host> --default-user anaconda
```

During installation, credentials will be printed as a random string in the terminal for two separate roles:

* **Admin**: for administration in Keycloak
* **"default-user"**: for administration in Anaconda Server UI.

<Note>
  **You will need the user names and passwords printed on the screen later, so save them!**
</Note>

**Example output:**

```sh theme={null}
User anaconda-admin created, realm=dev, roles=admin
password: J86j193PwaH92tjIN5J78m67
User admin created, realm=master, roles=admin
password: 79g2X1Zx02iY9RKe729MP38Y
```

Within the `ate-x.x.x-installer/` folder is the `install.sh` script and `docker-compose.yml` file, which defines how the Anaconda Server services are run.

### Installing without root access

It is also possible to run the installer without root permission. However, this requires additional manual steps:

Add yourself to the docker group by running the following command:

```sh theme={null}
# Replace <USERNAME> with your Anaconda username.
sudo usermod -a -G docker <USERNAME>
```

Enable port forwarding as root or with `sudo`:

```sh theme={null}
sudo sysctl net.ipv4.conf.all.forwarding=1
sudo iptables -P FORWARD ACCEPT
```

By default, `/opt/anaconda/repo` is used as the default path for the installation folder. You can either create the folder manually by assigning write access to the current user, or use `-b` (`--base-install-dir` parameter of the installer to specify the folder for installation).

Within the `ate-x.x.x-installer/` folder is the `install.sh` script and `docker-compose.yml` file, which defines how the Anaconda Server services are run.

***

## Manual verification of installation

Services are one-to-one to containers. Therefore, verifying that all major containers are up and not restarting or failing is a good first step.

In a terminal, run:

```sh theme={null}
docker ps
```

You should see output similar to the following:

<Frame>
  <img src="https://mintcdn.com/anaconda-29683c67/GAawxvWy-HUVSCqf/images/output.png?fit=max&auto=format&n=GAawxvWy-HUVSCqf&q=85&s=25dfe1dcda65b8d659fa2357d92aab0a" alt="" width="974" height="133" data-path="images/output.png" />
</Frame>

It is important to note that each container appears in the output:

* Installer\_repo\_api
* Installer\_nginx\_proxy
* Installer\_repo\_worker
* Installer\_repo\_dispatcher
* Installer\_repo\_proxy
* Installer\_keycloak
* Installer\_postgres
* Installer\_redis

It is also important to note that the status of each container is "Up", and that it does not get stuck in a restart loop.

Finally, you should be able to use a browser to navigate to the domain that you supplied when executing the installer. If you are able to successfully authenticate and use the product, it has installed correctly.

***

## Next steps

After the installation has completed, open a browser and visit the domain you used during the product installation.

<Warning>
  Never delete the install directory containing the `docker-compose.yml` and `.env` files.
</Warning>

Further installation options can be seen by running the following command (after the basic installation is complete):

```sh theme={null}
# Replace "x.x.x" with the version number
./ate-x.x.x-installer/install.sh --help
```

This will present you with the following list of possible arguments:

| **Arguments (shorthand)** | **Arguments (longhand)**                 | **Description**                                                        |
| :------------------------ | :--------------------------------------- | :--------------------------------------------------------------------- |
| `-r DOCKER_REGISTRY`      | `--registry DOCKER_REGISTRY`             | Docker registry, url:port (default uses the system Docker daemon)      |
| `-h POSTGRES_HOST`        | `--pg-host POSTGRES_HOST`                | Postgresql host (default is on internal Postgres instance)             |
| `-p POSTGRES_PORT`        | `--pg-port POSTGRES_PORT`                | Postgresql port                                                        |
| `-u POSTGRES_USER`        | `--pg-user POSTGRES_USER`                | Postgresql user                                                        |
| `-pw POSTGRES_PASSWORD`   | `--pg-password POSTGRES_PASSWORD`        | Postgresql password (will set the internal Postgres instance password) |
| `-e REDIS_URL`            | `--redis REDIS_URL`                      | Redis URL (default is an internal Redis instance)                      |
| `-d DOMAIN`               | `--domain DOMAIN`                        | External domain (or IP) of host system                                 |
| `-c TLS_CERTIFICATE`      | `--tls-cert`                             | Path to TLS certification file for optionally configuring HTTPS        |
| `-k TLS_KEY`              | `--tls-key TLS_KEY`                      | Path to TLS key file for optionally configuring HTTPS                  |
|                           | `--default-user DEFAULT_USER`            | Default user name                                                      |
|                           | `--custom-ca-cert CA_CERTIFICATE`        | Path to custom CA certification, which should be respected             |
|                           | `--custom-cve-source CVE_DEFAULT_MIRROR` | For Air-gaped environments provide a custom source for CVE data        |
|                           | `--upgrade-from PREVIOUS_DIR`            | Previous install folder                                                |
| `-l`                      | `--no-image-load`                        | Don’t load Docker images                                               |
| `-y`                      | `--no-prompt`                            | Answer yes to all prompts                                              |
|                           | `--help`                                 | Print help text                                                        |
