Package Installation of Angie#

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

Tip

We test and build code from our repository daily, and these nightly builds 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/*.

Distros#

Name

Versions

Architectures

AlmaLinux

9,   8

x86-64, arm64

Alpine

3.21,   3.20,   3.19,   3.18

x86-64, arm64

Alt

10
8

x86-64, arm64
x86-64

Astra SE

4.7
1.8, 1.7

arm64
x86-64

CentOS

9

x86-64, arm64

Debian

12,   11

x86-64, arm64

FreeBSD

14,   13

x86-64, arm64

MSVSphere

9

x86-64

openSUSE

15

x86-64, arm64

Oracle Linux

9,   8

x86-64, arm64

RED OS

8
7

x86-64
x86-64, arm64

Rocky Linux

9,   8

x86-64, arm64

ROSA

Chrome 12
Fresh 12

x86-64, arm64
x86-64

SberLinux

9

x86-64

Ubuntu

24.04,   22.04,   20.04

x86-64, arm64

Alma, CentOS, 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:

    [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
    
  2. Install the Angie package:

    $ sudo yum install -y angie
    
  3. (Optional) Install any extra packages you need:

    $ sudo yum install -y <PACKAGE NAME>
    
  4. Start the service:

    $ sudo systemctl start angie
    
  5. To autostart Angie after server reboot:

    $ sudo systemctl enable angie
    

Alpine#

  1. Install the prerequisites for adding the Angie repo:

    $ sudo apk update
    $ sudo apk add curl ca-certificates
    
  2. Download the public key of the Angie repo for package verification:

    $ sudo curl -o /etc/apk/keys/angie-signing.rsa \
                https://angie.software/keys/angie-signing.rsa
    
  3. Add the Angie repo:

    $ 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:

    $ sudo apk update
    
  5. Install the Angie package:

    $ sudo apk add angie
    
  6. (Optional) Install any extra packages you need:

    $ sudo apk add <PACKAGE NAME>
    
  7. Start the service:

    $ sudo service angie start
    
  8. To autostart Angie on server reboot:

    $ sudo rc-update add angie
    

ALT Linux#

  1. Create the /etc/ssl/angie directory:

    $ sudo mkdir -p /etc/ssl/angie/
    
  2. Install the prerequisites for adding the Angie repo:

    $ sudo apt-get update
    $ sudo apt-get install -y curl apt-https
    
  3. Download the public key of the Angie repo for package verification:

    $ 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:

    $ 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:

    $ 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:

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

    $ sudo apt-get update
    
  8. Install the Angie package:

    $ sudo apt-get install -y angie
    
  9. (Optional) Install any extra packages you need:

    $ sudo apt-get install -y <PACKAGE NAME>
    
  10. Start the service:

    $ sudo systemctl start angie
    
  11. To autostart Angie on server reboot:

    $ sudo systemctl enable angie
    

Astra SE#

  1. Install the prerequisites for adding the Angie repo:

    $ 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:

    $ sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
                https://angie.software/keys/angie-signing.gpg
    
  3. Add the Angie repo:

    $ 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:

    $ sudo apt-get update
    
  5. (Optional) When running a Closed Software Environment (CSE), install the key package for Angie binary verification:

    $ sudo apt-get install -y angie-digsig-key
    

    Update the CSE:

    $ sudo update-initramfs -uk all
    

    Then restart the server:

    $ sudo shutdown -r now
    
  6. Install the Angie package:

    $ sudo apt-get install -y angie
    
  7. (Optional) Install any extra packages you need:

    $ sudo apt-get install -y <PACKAGE NAME>
    

Debian, Ubuntu#

  1. Install the prerequisites for adding the Angie repo:

    $ sudo apt-get update
    $ sudo apt-get install -y ca-certificates curl
    
  2. Download the public key of the Angie repo for package verification:

    $ sudo curl -o /etc/apt/trusted.gpg.d/angie-signing.gpg \
                https://angie.software/keys/angie-signing.gpg
    
  3. Add the Angie repo:

    $ 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:

    $ sudo apt-get update
    
  5. Install the Angie package:

    $ sudo apt-get install -y angie
    
  6. (Optional) Install any extra packages you need:

    $ sudo apt-get install -y <PACKAGE NAME>
    

FreeBSD#

  1. To add the Angie repo, create these directories:

    $ 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:

    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:

    $ sudo curl -o /usr/local/etc/pkg/angie/angie-signing.rsa \
                https://angie.software/keys/angie-signing.rsa
    
  4. Update the repo indexes:

    $ sudo pkg update
    
  5. Install the Angie package:

    $ sudo pkg install -y angie
    
  6. (Optional) Install any extra packages you need:

    $ sudo pkg install -y <PACKAGE NAME>
    
  7. Start the service:

    $ sudo service angie start
    
  8. To autostart Angie on server reboot:

    $ sudo sysrc angie_enable=YES
    

openSUSE#

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

    [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:

    $ sudo zypper refresh
    
  3. Install the Angie package:

    $ sudo zypper install -y angie
    
  4. (Optional) Install any extra packages you need:

    $ sudo zypper install -y <PACKAGE NAME>
    
  5. Start the service:

    $ sudo systemctl start angie
    
  6. To autostart Angie after server reboot:

    $ sudo systemctl enable angie
    

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.

Console Light#

Console Light is a lightweight monitoring interface for Angie, published as angie-console-light in our repositories. 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.

Dynamic Modules#

To extend the basic functionality of Angie, you can add various dynamic modules. Modules can be built from source against a corresponding version of Angie, but it is easier to get them as ready-made packages from our repository:

angie-module-image-filter

Adds a filter to transform JPEG, GIF, PNG, and WebP images.

angie-module-njs: HTTP JS module, streaming JS module

Enables using njs (a JavaScript subset) in Angie configuration in the http and stream contexts, respectively.

angie-module-perl

Enables writing location and variable handlers in Perl, and also invoking Perl from SSI.

angie-module-wamr

Enables integration with WebAssembly Micro Runtime for executing WASM code.

angie-module-wasm

Adds core WASM support.

angie-module-wasmtime

Enables integration with the Wasmtime runtime for executing WASM code.

angie-module-xslt

Adds a filter to transform XML responses with XSLT stylesheets.

We also build and publish in our repository the following third-party module packages:

angie-module-auth-jwt

Adds client JWT authentication.

angie-module-auth-ldap

Adds support for authentication against multiple LDAP servers.

angie-module-auth-pam

Adds PAM authentication.

angie-module-auth-spnego

Adds SPNEGO, GSSAPI support.

angie-module-brotli

Enables Brotli for dynamic and static response compression.

angie-module-cache-purge

Enables purging FastCGI, proxy, SCGI, and uWSGI cache contents.

angie-module-cgi

Enables CGI.

angie-module-dav-ext

Extends WebDAV method support, adding PROPFIND and OPTIONS.

angie-module-dynamic-limit-req

Enables dynamically locking IPs and releasing them periodically.

angie-module-echo

Enables echo, sleep, time, exec, and other shell-style commands in the configuration file.

angie-module-enhanced-memcached

Enhances the capabilities of the built-in Memcached module.

angie-module-eval

Enables capturing subrequest response bodies in variables.

angie-module-geoip2: http_geoip2, stream_geoip2

Enables geodata lookup in the MaxMind GeoIP2 database.

angie-module-headers-more

Enables setting and clearing input and output headers.

angie-module-http-auth-radius

Enables Radius support.

angie-module-keyval

Enables variables created from key-value pairs.

angie-module-lua: http_lua_module, stream_lua_module

Enable using Lua in Angie configuration in the http and stream contexts, respectively.

angie-module-modsecurity

Adds a connector that enables ModSecurity rules.

Note

The package needs extra setup.

angie-module-ndk

Adds Nginx Development Kit (NDK) for module development.

angie-module-otel

Enables sending telemetry data to an OpenTelemetry collector.

angie-module-opentracing

Adds distributed tracing of Angie requests via OpenTracing; includes data export plugins for Zipkin and DataDog.

angie-module-postgres

Enables direct communication with PostgreSQL databases.

angie-module-redis2

Enables Redis 2.0 for HTTP upstreams.

angie-module-rtmp

Enables RTMP for live streaming and video on demand.

angie-module-set-misc

Adds various set_xxx directives to the Rewrite module.

angie-module-subs

Enables regex string substitutions in the HTTP response body.

angie-module-testcookie

Enables robot mitigation using a cookie-based challenge-response mechanism.

angie-module-unbrotli

Decompresses responses with Content-Encoding: br for clients that do not support the Brotli encoding method.

angie-module-upload

Adds the multipart/form-data encoding (RFC 1867) for file upload, enabling resumable uploads.

angie-module-vod

Enables repackaging MP4 files for HLS, HDS, MSS, and DASH streaming.

angie-module-vts: module-vts, module-sts, module-stream-sts

Packs the three listed modules for traffic monitoring.

Note

Their respective template files are installed as follows:

/usr/share/angie-module-vts/status.compress.html
/usr/share/angie-module-vts/status.template.html
/usr/share/angie-module-vts/stream/status.compress.html
/usr/share/angie-module-vts/stream/status.template.html

angie-module-zip

Enables packaging ZIP archives dynamically.

angie-module-zstd

Enables Zstandard compression.

To use an installed module in the configuration, load it with the load_module directive.