Package Installation of Angie#

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

Distro

Versions

Architectures

AlmaLinux

9,   8

x86-64, arm64

Alpine

3.20,   3.19,   3.18,   3.17

x86-64, arm64

Альт

10
8

x86-64, arm64
x86-64

Astra SE

4.7
1.7

arm64
x86-64

CentOS

9   7

x86-64, arm64

Debian

12,   11,   10

x86-64, arm64

FreeBSD

14,   13

x86-64, arm64

openSUSE

15

x86-64, arm64

Oracle Linux

9,   8

x86-64, arm64

РЕД ОС

8
7

x86-64
x86-64, arm64

Rocky Linux

9,   8

x86-64, arm64

РОСА

Хром 12
Фреш 12

x86-64, arm64
x86-64

Ubuntu

24.04,   22.04,   20.04

x86-64, arm64

Alma, CentOS, Oracle, RED OS, Rocky, ROSA#

  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 the dynamic module 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 the dynamic module 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 the dynamic module 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 the dynamic module 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 the dynamic module 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 /etc/apt/trusted.gpg.d/angie-signing.gpg \
                https://angie.software/keys/angie-signing.gpg
    
  4. Update the repo indexes:

    $ sudo pkg update
    
  5. Install the Angie package:

    $ sudo pkg install -y angie
    
  6. (Optional) Install the dynamic module 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 the dynamic module 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
    

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, stream_js_module

Enable 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-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-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-dav-ext

Extends WebDAV method support, adding PROPFIND and OPTIONS.

angie-module-dynamic-limit-req

Used to dynamically lock IPs and release 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 http_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-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-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 that monitor traffic status.

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 assembling ZIP archives dynamically.

angie-module-zstd

Enables Zstandard compression.

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