# Rasa X Update Instructions

Rasa X version 0.33.0 or higher is only compatible with Rasa Open Source 2.x. If you are on Rasa Open Source 1.x, please check the [compatibility matrix](https://legacy-docs-rasa-x.rasa.com/docs/rasa-x/changelog/compatibility-matrix) for a compatible version.

## Check Current Version

To see which version of Rasa X you are currently running, hit the `/version` endpoint:

```bash
curl https://example.com/api/version
```

## Local Mode

To upgrade to the latest version of Rasa X Local mode, use these commands:

```bash
pip install -U pip
pip install -U rasa-x --extra-index-url https://pypi.rasa.com/simple
```

You can also specify a version to install, like so:

```bash
pip install -U pip
pip install rasa-x==0.42.6 --extra-index-url https://pypi.rasa.com/simple
```

## Server Quick-Install

If you installed Rasa X using the [quick-install script](https://legacy-docs-rasa-x.rasa.com/docs/rasa-x/0.42.x/installation-and-setup/install/quick-install-script), you can update your Rasa X installation to the latest version by re-running the command that you used for the installation.

```bash
curl -s get-rasa-x.rasa.com | sudobash
```

To update or downgrade to a specific version of Rasa X, use the `RASA_X_VERSION` environment variable described in the [Server Quick-Install](https://legacy-docs-rasa-x.rasa.com/docs/rasa-x/0.42.x/installation-and-setup/customize#server-quick-install) section.

## Helm Chart

To upgrade the Rasa X chart to a newer version you can use this command:

```bash
helm dependency update
helm upgrade --values <path to your override file> 0.42.6 <Rasa X chart>
```

Alternatively, you can update the Rasa X and Rasa Open Source version in your `values.yml` file and follow the [instructions for making changes to a deployment](https://legacy-docs-rasa-x.rasa.com/docs/rasa-x/0.42.x/installation-and-setup/customize#making-changes-to-the-deployment).

```yaml
rasax:
  # ...
  tag: "0.42.6"
rasa:
  # ...
  tag: "<Rasa OS version>-full"
```

You can get the latest Rasa Open Source version from the bottom left corner in the [Rasa Open Source Docs](/content/docs/rasa/index.html).

## Docker Compose Install Script

Be aware that while updating, the following files will be overwritten:
- `/etc/rasa/docker-compose.yml`
- `/etc/rasa/.env`
- `/nginx-config-files/*`

Make sure there are no changes in these files that you still need. This means that instead of directly modifying `docker-compose.yml` to e.g. add a custom channel volume or custom action server image, you should rather create a new file called `docker-compose.override.yml`. Docker will automatically take that file into account and override any attributes in `docker-compose.yml` with changes from the override file.

1. To install an update, fetch the `install.sh` for the latest version, and run it:
   ```bash
   curl -sSL -o install.sh https://storage.googleapis.com/rasa-x-releases/0.42.6/install.sh
   sudobash ./install.sh
   ```

2. Make sure that the Docker environment file is updated with the newly installed versions by running:
   ```bash
   cd /etc/rasa
   cat .env
   ```

3. After the installation is complete, pull the images:
   ```bash
   cd /etc/rasa
   sudo docker-compose pull
   ```

4. Bring down your running Rasa X instance and start the updated version:
   ```bash
   sudo docker-compose down
   sudo docker-compose up -d
   ```

## Docker Compose Manual Install

Be aware that while updating, the following files will be overwritten:
- `/etc/rasa/docker-compose.yml`
- `/etc/rasa/.env`
- `/nginx-config-files/*`

1. Download the Rasa X files (`docker-compose.ce.yml` and `rasa_x_commands.py`) for the latest version:
   **Rasa X:**
   ```bash
   cd /etc/rasa
   wget -qO docker-compose.yml https://storage.googleapis.com/rasa-x-releases/0.42.6/docker-compose.ce.yml
   wget -qO rasa_x_commands.py https://storage.googleapis.com/rasa-x-releases/0.42.6/rasa_x_commands.py
   wget -qO nginx-config-files/nginx.conf https://storage.googleapis.com/rasa-x-releases/0.42.6/nginx-config-files/nginx.conf
   wget -qO nginx-config-files/ssl.conf.template https://storage.googleapis.com/rasa-x-releases/0.42.6/nginx-config-files/ssl.conf.template
   wget -qO nginx-config-files/rasax.nginx.template https://storage.googleapis.com/rasa-x-releases/0.42.6/nginx-config-files/rasax.nginx.template
   ```

**Rasa Enterprise:**
   ```bash
   cd /etc/rasa
   wget -qO docker-compose.yml https://storage.googleapis.com/rasa-x-releases/0.42.6/docker-compose.ee.yml
   wget -qO rasa_x_commands.py https://storage.googleapis.com/rasa-x-releases/0.42.6/rasa_x_commands.py
   wget -qO nginx-config-files/nginx.conf https://storage.googleapis.com/rasa-x-releases/0.42.6/nginx-config-files/nginx.conf
   wget -qO nginx-config-files/ssl.conf.template https://storage.googleapis.com/rasa-x-releases/0.42.6/nginx-config-files/ssl.conf.template
   wget -qO nginx-config-files/rasax.nginx.template https://storage.googleapis.com/rasa-x-releases/0.42.6/nginx-config-files/rasax.nginx.template
   ```

2. Update your `.env` with the relevant values:
   ```bash
   RASA_X_VERSION=0.42.6
   RASA_VERSION=2.8.14
   ```

3. Pull the new images:
   ```bash
   # If you are using Rasa Enterprise, log in to the private Docker registry
   sudo docker login -u _json_key -p "$(cat /etc/rasa/gcr-auth.json)" https://gcr.io
   # Pull the new images
   sudo docker-compose pull
   ```

4. Bring down your running Rasa X instance and start the updated version:
   ```bash
   sudo docker-compose down
   sudo docker-compose up -d
   ```
