<!-- review: finished -->

<a id="oss-packages"></a>

# Package Installation of Angie

To install and update Angie
using your distribution's package manager,
add and configure the appropriate repository.

<a id="distributions"></a>

## Distributions

| Name                              | Versions                       | Architectures                 |
|-----------------------------------|--------------------------------|-------------------------------|
| [AlmaLinux](#install-yum-oss)     | 10,  9,  8                     | x86-64, arm64                 |
| [Alpine](#install-alpine-oss)     | 3.23,  3.22,  3.21,  3.20      | x86-64, arm64                 |
| [Alt](#install-alt-oss)           | 11,  10  8                     | x86-64, arm64  x86-64         |
| [Astra SE](#install-astrase-oss)  | 4.7  1.8, 1.7                  | arm64  x86-64                 |
| [CentOS](#install-yum-oss)        | 10,  9                         | x86-64, arm64                 |
| [Debian](#install-deb-oss)        | 13,  12,  11                   | x86-64, arm64                 |
| [Fedora](#install-yum-oss)        | 44,  43                        | x86-64, arm64                 |
| [FreeBSD](#install-freebsd-oss)   | 15,  14,  13                   | x86-64, arm64                 |
| [MSVSphere](#install-yum-oss)     | 10,  9  8                      | x86-64, arm64  x86-64         |
| [openSUSE](#install-opensuse-oss) | 16,  15                        | x86-64, arm64                 |
| [Oracle Linux](#install-yum-oss)  | 10,  9,  8                     | x86-64, arm64                 |
| [OSNova](#install-osnova-oss)     | 3.3.0,  2.13                   | x86-64                        |
| [RED OS](#install-yum-oss)        | 8,  7                          | x86-64, arm64                 |
| [Rocky Linux](#install-yum-oss)   | 10,  9,  8                     | x86-64, arm64                 |
| [ROSA](#install-yum-oss)          | Chrome 13  Chrome 12  Fresh 12 | x86-64  x86-64, arm64  x86-64 |
| [SberLinux](#install-yum-oss)     | 9                              | x86-64                        |
| [Ubuntu](#install-deb-oss)        | 26.04,  24.04,  22.04          | x86-64, arm64                 |

<a id="test-builds"></a>

### Test Builds

We test and build code from our repository daily,
and these
[nightly builds](https://download.angie.software/angie-nightly/)
are suitable for exploring new features ahead of official releases.

The version of the nightly builds always corresponds to the upcoming release.
The naming and installation process is generally similar to what's shown below,
but instead of the path prefix `https://download.angie.software/angie/*`
use `https://download.angie.software/angie-nightly/*`.

<a id="install-yum-oss"></a>

### Alma, CentOS, Fedora, MSVSphere, Oracle, RED OS, Rocky, ROSA, SberLinux

1. To add the repo, create a file named
   `/etc/yum.repos.d/angie.repo`
   with the following contents:

   Alma
   ```ini
   [angie]
   name=Angie repo
   baseurl=https://download.angie.software/angie/almalinux/$releasever/
   gpgcheck=1
   enabled=1
   gpgkey=https://angie.software/keys/angie-signing.gpg.asc
   ```

   CentOS
   ```ini
   [angie]
   name=Angie repo
   baseurl=https://download.angie.software/angie/centos/$releasever/
   gpgcheck=1
   enabled=1
   gpgkey=https://angie.software/keys/angie-signing.gpg.asc
   ```

   Fedora
   ```ini
   [angie]
   name=Angie repo
   baseurl=https://download.angie.software/angie/fedora/$releasever/
   gpgcheck=1
   enabled=1
   gpgkey=https://angie.software/keys/angie-signing.gpg.asc
   ```

   MSVSphere
   ```ini
   [angie]
   name=Angie repo
   baseurl=https://download.angie.software/angie/msvsphere/$releasever/
   gpgcheck=1
   enabled=1
   gpgkey=https://angie.software/keys/angie-signing.gpg.asc
   ```

   Oracle
   ```ini
   [angie]
   name=Angie repo
   baseurl=https://download.angie.software/angie/oracle/$releasever/
   gpgcheck=1
   enabled=1
   gpgkey=https://angie.software/keys/angie-signing.gpg.asc
   ```

   RED OS
   ```ini
   [angie]
   name=Angie repo
   baseurl=https://download.angie.software/angie/redos/$releasever/
   gpgcheck=1
   enabled=1
   gpgkey=https://angie.software/keys/angie-signing.gpg.asc
   ```

   Rocky
   ```ini
   [angie]
   name=Angie repo
   baseurl=https://download.angie.software/angie/rocky/$releasever/
   gpgcheck=1
   enabled=1
   gpgkey=https://angie.software/keys/angie-signing.gpg.asc
   ```

   ROSA Chrome
   ```ini
   [angie]
   name=Angie repo
   baseurl=https://download.angie.software/angie/rosa-chrome/$releasever/
   gpgcheck=1
   enabled=1
   gpgkey=https://angie.software/keys/angie-signing.gpg.asc
   priority=9
   ```

   ROSA Fresh
   ```ini
   [angie]
   name=Angie repo
   baseurl=https://download.angie.software/angie/rosa/$releasever/
   gpgcheck=1
   enabled=1
   gpgkey=https://angie.software/keys/angie-signing.gpg.asc
   priority=9
   ```

   SberLinux
   ```ini
   [angie]
   name=Angie repo
   baseurl=https://download.angie.software/angie/sberlinux/$releasever/
   gpgcheck=1
   enabled=1
   gpgkey=https://angie.software/keys/angie-signing.gpg.asc
   priority=9
   ```
2. Install the Angie package:
   ```console
   $ sudo yum install -y angie
   $ # -- OR --
   $ sudo dnf install -y angie
   ```
3. (*Optional*) Install any [extra](#install-extras-oss)
   packages you need:
   ```console
   $ sudo yum install -y <PACKAGE NAME>
   $ # -- OR --
   $ sudo dnf install -y <PACKAGE NAME>
   ```
4. Start the service:
   ```console
   $ sudo systemctl start angie
   ```
5. To autostart Angie after server reboot:
   ```console
   $ sudo systemctl enable angie
   ```

<a id="install-alpine-oss"></a>

### Alpine

1. Install the prerequisites
   for adding the Angie repo:
   ```console
   $ sudo apk update
   $ sudo apk add curl ca-certificates
   ```
2. Download the public key of the Angie repo
   for package verification:
   ```console
   $ sudo curl -o /etc/apk/keys/angie-signing.rsa \
               https://angie.software/keys/angie-signing.rsa
   ```
3. Add the Angie repo:
   ```console
   $ echo "https://download.angie.software/angie/alpine/v$(egrep -o \
          '[0-9]+\.[0-9]+' /etc/alpine-release)/main" \
          | sudo tee -a /etc/apk/repositories > /dev/null
   ```
4. Update the repo indexes:
   ```console
   $ sudo apk update
   ```
5. Install the Angie package:
   ```console
   $ sudo apk add angie
   ```
6. (*Optional*) Install any [extra](#install-extras-oss)
   packages you need:
   ```console
   $ sudo apk add <PACKAGE NAME>
   ```
7. Start the service:
   ```console
   $ sudo service angie start
   ```
8. To autostart Angie after server reboot:
   ```console
   $ sudo rc-update add angie
   ```

<a id="install-alt-oss"></a>

### Alt

1. Create the `/etc/ssl/angie/` directory:
   ```console
   $ sudo mkdir -p /etc/ssl/angie/
   ```
2. Install the prerequisites
   for adding the Angie repo:
   ```console
   $ sudo apt-get update
   $ sudo apt-get install -y curl apt-https
   ```
3. Download the public key of the Angie repo
   for package verification:
   ```console
   $ sudo curl -o /etc/ssl/angie/angie-signing.gpg \
         https://angie.software/keys/angie-signing.gpg
   ```
4. Import the downloaded key into the trusted key ring:
   ```console
   $ sudo gpg --no-default-keyring \
         --keyring /usr/lib/alt-gpgkeys/pubring.gpg --import /etc/ssl/angie/angie-signing.gpg
   ```
5. Save the key's signature:
   ```sh
   $ echo 'simple-key "angie" {
             Fingerprint "EB8EAF3D4EF1B1ECF34865A2617AB978CB849A76";
             Name "Angie (Signing Key) <devops@tech.wbsrv.ru>";
     }' | sudo tee /etc/apt/vendors.list.d/angie.list > /dev/null
   ```
6. Add the Angie repo:

   Alt 11
   ```console
   $ echo "rpm [angie] https://download.angie.software/angie/altlinux/11/ $(uname -m) main" \
       | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
   ```

   Alt 10
   ```console
   $ echo "rpm [angie] https://download.angie.software/angie/altlinux/10/ $(uname -m) main" \
       | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
   ```

   Alt SP 10
   ```console
   $ echo "rpm [angie] https://download.angie.software/angie/altlinux-sp/10/ $(uname -m) main" \
       | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
   ```

   Alt SP 8
   ```console
   $ echo "rpm [angie] https://download.angie.software/angie/altlinux-sp/8/ $(uname -m) main" \
       | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
   ```
7. Update the repo indexes:
   ```console
   $ sudo apt-get update
   ```
8. Install the Angie package:
   ```console
   $ sudo apt-get install -y angie
   ```
9. (*Optional*) Install any [extra](#install-extras-oss)
   packages you need:
   ```console
   $ sudo apt-get install -y <PACKAGE NAME>
   ```
10. Start the service:
    ```console
    $ sudo systemctl start angie
    ```
11. To autostart Angie after server reboot:
    ```console
    $ sudo systemctl enable angie
    ```

<a id="install-astrase-oss"></a>

### Astra SE

1. Install the prerequisites
   for adding the Angie repo:
   ```console
   $ sudo apt-get update
   $ sudo apt-get install -y ca-certificates curl lsb-release
   ```
2. Download the public key of the Angie repo
   for package verification:
   ```console
   $ sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
               https://angie.software/keys/angie-signing.gpg
   ```
3. Add the Angie repo:
   ```console
   $ echo "deb https://download.angie.software/angie/astra-se/$(egrep -o \
          '[0-9]+.[0-9]+' /etc/astra_version) unstable main" \
          | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
   ```
4. Update the repo indexes:
   ```console
   $ sudo apt-get update
   ```
5. (*Optional*) When running a Closed Software Environment
   ([CSE](https://wiki.astralinux.ru/pages/viewpage.action?pageId=41190634)),
   install the key package
   for Angie binary verification:
   ```console
   $ sudo apt-get install -y angie-digsig-key
   ```

   Update the CSE:
   ```console
   $ sudo update-initramfs -uk all
   ```

   Then **restart the server**:
   ```console
   $ sudo shutdown -r now
   ```
6. Install the Angie package:
   ```console
   $ sudo apt-get install -y angie
   ```
7. (*Optional*) Install any [extra](#install-extras-oss)
   packages you need:
   ```console
   $ sudo apt-get install -y <PACKAGE NAME>
   ```

<a id="install-deb-oss"></a>

### Debian, Ubuntu

1. Install the prerequisites
   for adding the Angie repo:
   ```console
   $ sudo apt-get update
   $ sudo apt-get install -y ca-certificates curl
   ```
2. Download the public key of the Angie repo
   for package verification:
   ```console
   $ sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
               https://angie.software/keys/angie-signing.gpg
   ```
3. Add the Angie repo:
   ```console
   $ echo "deb https://download.angie.software/angie/$(. /etc/os-release && echo "$ID/$VERSION_ID $VERSION_CODENAME") main" \
       | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
   ```
4. Update the repo indexes:
   ```console
   $ sudo apt-get update
   ```
5. Install the Angie package:
   ```console
   $ sudo apt-get install -y angie
   ```
6. (*Optional*) Install any [extra](#install-extras-oss)
   packages you need:
   ```console
   $ sudo apt-get install -y <PACKAGE NAME>
   ```

<a id="install-osnova-oss"></a>

### OSNova

1. Install the prerequisites
   for adding the Angie repo:
   ```console
   $ sudo apt-get update
   $ sudo apt-get install -y ca-certificates curl
   ```
2. Download the public key of the Angie repo
   for package verification:
   ```console
   $ sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
               https://angie.software/keys/angie-signing.gpg
   ```
3. Add the Angie repo:
   ```console
   $ echo "deb https://download.angie.software/angie/osnova/$(egrep -o \
          '[0-9]*' /etc/osnova_version | head -1) \
          $(. /etc/os-release && echo "$VERSION_CODENAME") main" \
          | sudo tee /etc/apt/sources.list.d/angie.list > /dev/null
   ```
4. Update the repo indexes:
   ```console
   $ sudo apt-get update
   ```
5. Install the Angie package:
   ```console
   $ sudo apt-get install -y angie
   ```
6. (*Optional*) Install any [extra](#install-extras-oss)
   packages you need:
   ```console
   $ sudo apt-get install -y <PACKAGE NAME>
   ```

<a id="install-freebsd-oss"></a>

### FreeBSD

1. To add the Angie repo, create the directories:
   ```console
   $ sudo mkdir -p /usr/local/etc/pkg/angie/ /usr/local/etc/pkg/repos/
   ```
2. To configure the repo, create a file named
   `/usr/local/etc/pkg/repos/angie.conf`
   with the following contents:
   ```console
   angie: {
      url: "https://download.angie.software/angie/freebsd/${VERSION_MAJOR}/${ARCH}",
      signature_type: "pubkey",
      pubkey: "/usr/local/etc/pkg/angie/angie-signing.rsa",
      enabled: yes
   }
   ```
3. Download the public key of the Angie repo
   for package verification:
   ```console
   $ sudo curl -o /usr/local/etc/pkg/angie/angie-signing.rsa \
               https://angie.software/keys/angie-signing.rsa
   ```
4. Update the repo indexes:
   ```console
   $ sudo pkg update
   ```
5. Install the Angie package:
   ```console
   $ sudo pkg install -r angie -y angie
   ```
6. (*Optional*) Install any [extra](#install-extras-oss)
   packages you need:
   ```console
   $ sudo pkg install -r angie -y <PACKAGE NAME>
   ```
7. Start the service:
   ```console
   $ sudo service angie start
   ```
8. To autostart Angie after server reboot:
   ```console
   $ sudo sysrc angie_enable=YES
   ```

#### NOTE
Since the FreeBSD package manager may incorrectly determine the latest version,
use the following approach to update already installed packages:

```console
$ sudo pkg upgrade `pkg search -r angie angie-[0-9] | sort -Vr | head -1 | awk {'print $1'}`
```

<a id="install-opensuse-oss"></a>

### openSUSE

1. To add the repo, create a file named
   `/etc/zypp/repos.d/angie.repo`
   with the following contents:
   ```ini
   [angie]
   name=Angie repo
   baseurl=https://download.angie.software/angie/opensuse/$releasever_major/
   gpgcheck=1
   enabled=1
   gpgkey=https://angie.software/keys/angie-signing.gpg.asc
   ```
2. Update the repo indexes:
   ```console
   $ sudo zypper refresh
   ```
3. Install the Angie package:
   ```console
   $ sudo zypper install -y angie
   ```
4. (*Optional*) Install any [extra](#install-extras-oss)
   packages you need:
   ```console
   $ sudo zypper install -y <PACKAGE NAME>
   ```
5. Start the service:
   ```console
   $ sudo systemctl start angie
   ```
6. To autostart Angie after server reboot:
   ```console
   $ sudo systemctl enable angie
   ```

<a id="install-extras-oss"></a>

## Extras

Besides the packages that provide the basic functionality,
we also publish a few extra packages,
both our own and built from curated third-party sources.

<a id="install-console-light-oss"></a>

### Console Light Web Panel

Console Light is a lightweight web monitoring panel for Angie,
published as `angie-console-light` in our repos.
It is installed in the same way as the `angie` package in the steps above;
see the configuration steps in [Console Light Web Monitoring Panel](https://en.angie.software//angie/docs/configuration/monitoring.md#monitoring).

<a id="install-dynamicmodules-oss"></a>

### Dynamic Modules

To extend the basic functionality of Angie,
you can add various dynamic modules.
Modules can be [built from source](https://en.angie.software//angie/docs/installation/sourcebuild.md#sourcebuild)
against a corresponding version of Angie,
but it is easier to get them as ready-made packages from our repository:

| [angie-module-image-filter](https://en.angie.software//angie/docs/configuration/modules/http/http_image_filter.md#http-image-filter)                                                                                                     | Adds transformations for JPEG, GIF, PNG, and WebP images.                                                                                 |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| angie-module-njs:<br/>[JS](https://en.angie.software//angie/docs/installation/external-modules/http_js.md#http-js) (HTTP),<br/>[JS](https://en.angie.software//angie/docs/installation/external-modules/stream_js.md#stream-js) (stream) | Enables using njs (a JavaScript subset) in Angie configuration<br/>in the `http` and `stream` contexts, respectively.                     |
| [angie-module-perl](https://en.angie.software//angie/docs/configuration/modules/http/http_perl.md#http-perl)                                                                                                                             | Enables writing `location` and variable handlers in Perl,<br/>and also invoking Perl from SSI.                                            |
| [angie-module-wamr](https://en.angie.software//angie/docs/configuration/modules/wasm/wasm_wamr.md#wasm-wamr)                                                                                                                             | Enables integration with [WebAssembly Micro Runtime](https://github.com/bytecodealliance/wasm-micro-runtime)<br/>for executing WASM code. |
| [angie-module-wasm](https://en.angie.software//angie/docs/configuration/modules/wasm/index.md#wasm-core)                                                                                                                                 | Adds core WASM support.                                                                                                                   |
| [angie-module-wasmtime](https://en.angie.software//angie/docs/configuration/modules/wasm/wasm_wasmtime.md#wasm-wasmtime)                                                                                                                 | Enables integration with the [Wasmtime](https://wasmtime.dev/)<br/>runtime for executing WASM code.                                       |
| [angie-module-xslt](https://en.angie.software//angie/docs/configuration/modules/http/http_xslt.md#http-xslt)                                                                                                                             | Adds a filter to transform XML responses with XSLT stylesheets.                                                                           |

To use an installed module in a [configuration](https://en.angie.software//angie/docs/configuration/configfile.md#configfile),
load it using the [load_module](https://en.angie.software//angie/docs/configuration/modules/core.md#load-module) directive in the `main` context:

```nginx
load_module modules/<module name>.so;
```

A wide range of [third-party modules](https://en.angie.software//angie/docs/installation/external-modules/index.md#install-thirdpartymodules)
is also available.
