Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
b964944
docs: add missing prerequisite for installation
dkleinF5 Nov 25, 2025
f033043
added info about nginx x being installed with app protect
dkleinF5 Nov 25, 2025
0afa10e
updated kubernetes
dkleinF5 Nov 26, 2025
8ad7a4c
added supported os and Kubernetes ctl/cluster
dkleinF5 Nov 26, 2025
84e94f1
temp
dkleinF5 Nov 26, 2025
0885ae5
test
dkleinF5 Nov 26, 2025
a496838
test
dkleinF5 Nov 26, 2025
31bea68
added link to my my5
dkleinF5 Nov 26, 2025
4e3d5b5
updated myf5 with link
dkleinF5 Nov 26, 2025
65996ea
added info for docker registry access
dkleinF5 Nov 26, 2025
7893594
test for jwt
dkleinF5 Nov 26, 2025
9222515
added jwt for docker
dkleinF5 Nov 26, 2025
1b0a872
last work before remove
dkleinF5 Nov 26, 2025
ea3e065
remove line since we have the line above it
dkleinF5 Nov 27, 2025
1ea0c01
updated docker for jwt
dkleinF5 Nov 27, 2025
6449bbe
update dockerfile for nap
dkleinF5 Nov 27, 2025
3ede281
updated storage
dkleinF5 Dec 1, 2025
f2a7a6b
fixed kubernetes
dkleinF5 Dec 1, 2025
4b594ab
ohad fix 1
dkleinF5 Dec 1, 2025
0582f04
chnaged title
dkleinF5 Dec 1, 2025
4b7ba84
CHANGED NAME
dkleinF5 Dec 1, 2025
b23dcff
need jwt anywasy for opensouce for docker cred
dkleinF5 Dec 1, 2025
ab3d6be
removed todo
dkleinF5 Dec 2, 2025
88191bd
Update content/waf/install/docker.md
dkleinF5 Dec 2, 2025
fded039
Update content/waf/install/docker.md
dkleinF5 Dec 2, 2025
b13d78d
Update content/includes/waf/install-build-image.md
dkleinF5 Dec 2, 2025
e6ba31b
Update content/includes/waf/install-services-registry.md
dkleinF5 Dec 2, 2025
40d78e1
made changes from suggestions
dkleinF5 Dec 2, 2025
02ee2d8
updated compiler doc
dkleinF5 Dec 2, 2025
fafabcb
changes to bare metal
dkleinF5 Dec 2, 2025
5667313
updated docker
dkleinF5 Dec 2, 2025
d90219f
updated jwt sections
dkleinF5 Dec 2, 2025
9289911
add info about logger
dkleinF5 Dec 2, 2025
1896857
alan updates
dkleinF5 Dec 2, 2025
fd4b2c3
more suggestions
dkleinF5 Dec 2, 2025
77afedb
linted
dkleinF5 Dec 2, 2025
ccc0625
updated alan changes
dkleinF5 Dec 2, 2025
ba8b219
fixed spelling
dkleinF5 Dec 3, 2025
88c37d4
fixed hyperlinks
dkleinF5 Dec 3, 2025
024b49c
updated note
dkleinF5 Dec 3, 2025
78448b3
fixed hyperlinks again
dkleinF5 Dec 3, 2025
e7135d2
fixed compiler link
dkleinF5 Dec 3, 2025
3d3d5ea
fixed compiler hyperlink again
dkleinF5 Dec 3, 2025
d69775e
updated jwt location
dkleinF5 Dec 4, 2025
ae7cd04
missing kubctl jwt copy location
dkleinF5 Dec 4, 2025
07de98d
fixed hyperlink
dkleinF5 Dec 4, 2025
ef3672d
updated shutout for jwt locations for experimental kubectl
dkleinF5 Dec 4, 2025
ef105f1
Update content/includes/waf/install-build-image.md
dkleinF5 Dec 7, 2025
ba4da23
Update content/waf/install/virtual-environment.md
dkleinF5 Dec 7, 2025
6746fb5
Update content/waf/install/kubernetes.md
dkleinF5 Dec 7, 2025
bb5f35b
Update content/waf/install/docker.md
dkleinF5 Dec 7, 2025
42677d8
Update content/includes/waf/install-build-image.md
dkleinF5 Dec 7, 2025
10f7bd7
Update content/waf/install/docker.md
dkleinF5 Dec 7, 2025
61f5465
Update content/waf/install/docker.md
dkleinF5 Dec 7, 2025
6abde5f
Update content/waf/install/docker.md
dkleinF5 Dec 7, 2025
0c62a8a
Update content/waf/install/kubernetes-plm.md
dkleinF5 Dec 7, 2025
bc72f79
removed extra the and fixed hyperlinks
dkleinF5 Dec 7, 2025
91c3ffc
temp
dkleinF5 Dec 8, 2025
4822c59
added aviv suggestions
dkleinF5 Dec 8, 2025
7d9105f
updated hyperlinks
dkleinF5 Dec 8, 2025
6c81405
updated hyperlinks
dkleinF5 Dec 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
nd-files:
- content/waf/install/docker.md
- content/waf/install/kubernetes.md
- content/waf/install/kubernetes-plm.md
- content/waf/install/virtual-environment.md
---

1. Log in to [MyF5](https://my.f5.com/manage/s/).
1. Go to **My Products & Plans > Subscriptions** to see your active subscriptions.
1. Find your NGINX subscription, and select the **Subscription ID** for details.
1. Download the **SSL Certificate**, **Private Key** and **JSON Web Token** files from the subscription page.
4 changes: 4 additions & 0 deletions content/includes/waf/dockerfiles/alpine-plus.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ RUN --mount=type=secret,id=nginx-crt,dst=/etc/apk/cert.pem,mode=0644 \
&& ln -sf /dev/stderr /var/log/nginx/error.log \
&& rm -rf /var/cache/apk/*

# Securely copy the JWT license:
RUN --mount=type=secret,id=license-jwt,dst=license.jwt \
cp license.jwt /etc/nginx/license.jwt

# Expose port
EXPOSE 80

Expand Down
4 changes: 4 additions & 0 deletions content/includes/waf/dockerfiles/amazon-plus.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ RUN --mount=type=secret,id=nginx-crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode=0644
&& ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log

# Securely copy the JWT license:
RUN --mount=type=secret,id=license-jwt,dst=license.jwt \
cp license.jwt /etc/nginx/license.jwt

# Expose port
EXPOSE 80

Expand Down
4 changes: 4 additions & 0 deletions content/includes/waf/dockerfiles/debian-plus.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ RUN --mount=type=secret,id=nginx-crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode=0644
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Securely copy the JWT license:
RUN --mount=type=secret,id=license-jwt,dst=license.jwt \
cp license.jwt /etc/nginx/license.jwt

# Expose port
EXPOSE 80

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
nd-files:
- content/waf/install/docker.md
- content/waf/install/kubernetes.md
---

```dockerfile
# syntax=docker/dockerfile:1

# Supported OS_VER's are 3.22
ARG OS_VER="3.22"

# Base image
FROM alpine:${OS_VER}

# Install NGINX Plus and F5 WAF for NGINX v5 module
RUN --mount=type=secret,id=nginx-crt,dst=/etc/apk/cert.pem,mode=0644 \
--mount=type=secret,id=nginx-key,dst=/etc/apk/cert.key,mode=0644 \
wget -O /etc/apk/keys/nginx_signing.rsa.pub https://cs.nginx.com/static/keys/nginx_signing.rsa.pub \
&& printf "https://pkgs.nginx.com/plus/alpine/v`egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release`/main\n" | \
tee -a /etc/apk/repositories \
&& printf "https://pkgs.nginx.com/app-protect-x-plus/alpine/v`egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release`/main\n" | \
tee -a /etc/apk/repositories \
&& apk update \
&& apk add app-protect-module-plus \
&& ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log \
&& rm -rf /var/cache/apk/*

# Expose port
EXPOSE 80

# Define stop signal
STOPSIGNAL SIGQUIT

# Set default command
CMD ["nginx", "-g", "daemon off;"]
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
nd-files:
- content/waf/install/docker.md
- content/waf/install/kubernetes.md
---

```dockerfile
# syntax=docker/dockerfile:1

# Base image
FROM amazonlinux:2023

# Install NGINX Plus and F5 WAF for NGINX v5 module
RUN --mount=type=secret,id=nginx-crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode=0644 \
--mount=type=secret,id=nginx-key,dst=/etc/ssl/nginx/nginx-repo.key,mode=0644 \
yum -y install wget ca-certificates shadow-utils \
&& wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/plus-amazonlinux2023.repo \
&& echo "[app-protect-x-plus]" > /etc/yum.repos.d/app-protect-plus.repo \
&& echo "name=nginx-app-protect repo" >> /etc/yum.repos.d/app-protect-plus.repo \
&& echo "baseurl=https://pkgs.nginx.com/app-protect-x-plus/amzn/2023/\$basearch/" >> /etc/yum.repos.d/app-protect-plus.repo \
&& echo "sslclientcert=/etc/ssl/nginx/nginx-repo.crt" >> /etc/yum.repos.d/app-protect-plus.repo \
&& echo "sslclientkey=/etc/ssl/nginx/nginx-repo.key" >> /etc/yum.repos.d/app-protect-plus.repo \
&& echo "gpgcheck=0" >> /etc/yum.repos.d/app-protect-plus.repo \
&& echo "enabled=1" >> /etc/yum.repos.d/app-protect-plus.repo \
&& yum -y install app-protect-module-plus \
&& yum clean all \
&& rm -rf /var/cache/yum \
&& ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log

# Expose port
EXPOSE 80

# Define stop signal
STOPSIGNAL SIGQUIT

# Set default command
CMD ["nginx", "-g", "daemon off;"]
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
nd-files:
- content/waf/install/docker.md
- content/waf/install/kubernetes.md
---

```dockerfile
# syntax=docker/dockerfile:1

# Supported OS_CODENAME's are: bullseye/bookworm
ARG OS_CODENAME=bookworm

# Base image
FROM debian:${OS_CODENAME}

# Install NGINX Plus and F5 WAF for NGINX v5 module
RUN --mount=type=secret,id=nginx-crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode=0644 \
--mount=type=secret,id=nginx-key,dst=/etc/ssl/nginx/nginx-repo.key,mode=0644 \
apt-get update \
&& apt-get install -y \
apt-transport-https \
lsb-release \
ca-certificates \
wget \
gnupg2 \
debian-archive-keyring \
&& wget -qO - https://cs.nginx.com/static/keys/nginx_signing.key | \
gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null \
&& gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg \
&& printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://pkgs.nginx.com/plus/debian `lsb_release -cs` nginx-plus\n" | \
tee /etc/apt/sources.list.d/nginx-plus.list \
&& printf "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://pkgs.nginx.com/app-protect-x-plus/debian `lsb_release -cs` nginx-plus\n" | \
tee /etc/apt/sources.list.d/nginx-app-protect.list \
&& wget -P /etc/apt/apt.conf.d https://cs.nginx.com/static/files/90pkgs-nginx \
&& apt-get update \
&& DEBIAN_FRONTEND="noninteractive" apt-get install -y app-protect-module-plus \
&& ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Expose port
EXPOSE 80

# Define stop signal
STOPSIGNAL SIGQUIT

# Set default command
CMD ["nginx", "-g", "daemon off;"]
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
nd-files:
- content/waf/install/docker.md
- content/waf/install/kubernetes.md
---

```dockerfile
# syntax=docker/dockerfile:1

# Base image
FROM oraclelinux:8

# Install NGINX Plus and F5 WAF for NGINX v5 module
RUN --mount=type=secret,id=nginx-crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode=0644 \
--mount=type=secret,id=nginx-key,dst=/etc/ssl/nginx/nginx-repo.key,mode=0644 \
dnf -y install wget ca-certificates yum-utils \
&& wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nginx-plus-8.repo \
&& echo "[app-protect-x-plus]" > /etc/yum.repos.d/app-protect-8-x-plus.repo \
&& echo "name=nginx-app-protect repo" >> /etc/yum.repos.d/app-protect-8-x-plus.repo \
&& echo "baseurl=https://pkgs.nginx.com/app-protect-x-plus/centos/8/\$basearch/" >> /etc/yum.repos.d/app-protect-8-x-plus.repo \
&& echo "sslclientcert=/etc/ssl/nginx/nginx-repo.crt" >> /etc/yum.repos.d/app-protect-8-x-plus.repo \
&& echo "sslclientkey=/etc/ssl/nginx/nginx-repo.key" >> /etc/yum.repos.d/app-protect-8-x-plus.repo \
&& echo "gpgcheck=0" >> /etc/yum.repos.d/app-protect-8-x-plus.repo \
&& echo "enabled=1" >> /etc/yum.repos.d/app-protect-8-x-plus.repo \
&& dnf clean all \
&& dnf -y install app-protect-module-plus \
&& dnf clean all \
&& rm -rf /var/cache/dnf \
&& ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log

# Expose port
EXPOSE 80

# Define stop signal
STOPSIGNAL SIGQUIT

# Set default command
CMD ["nginx", "-g", "daemon off;"]
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
nd-files:
- content/waf/install/docker.md
- content/waf/install/kubernetes.md
---

```dockerfile
# syntax=docker/dockerfile:1

# Supported UBI_VERSION's are 7/8/9
ARG UBI_VERSION=8

# Base Image
FROM registry.access.redhat.com/ubi${UBI_VERSION}/ubi

# Define the ARG again after FROM to use it in this stage
ARG UBI_VERSION

# Install NGINX Plus and F5 WAF for NGINX v5 module
RUN --mount=type=secret,id=nginx-crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode=0644 \
--mount=type=secret,id=nginx-key,dst=/etc/ssl/nginx/nginx-repo.key,mode=0644 \
PKG_MANAGER=dnf; \
if [ "${UBI_VERSION}" = "7" ]; then \
PKG_MANAGER=yum; \
NGINX_PLUS_REPO="nginx-plus-7.4.repo"; \
elif [ "${UBI_VERSION}" = "9" ]; then \
NGINX_PLUS_REPO="plus-${UBI_VERSION}.repo"; \
else \
NGINX_PLUS_REPO="nginx-plus-${UBI_VERSION}.repo"; \
fi \
&& $PKG_MANAGER -y install wget ca-certificates \
&& wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/dependencies.repo \
&& wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/${NGINX_PLUS_REPO} \
&& echo "[app-protect-x-plus]" > /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "name=nginx-app-protect repo" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "baseurl=https://pkgs.nginx.com/app-protect-x-plus/centos/${UBI_VERSION}/\$basearch/" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "sslclientcert=/etc/ssl/nginx/nginx-repo.crt" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "sslclientkey=/etc/ssl/nginx/nginx-repo.key" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "gpgcheck=0" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "enabled=1" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& $PKG_MANAGER clean all \
&& $PKG_MANAGER install -y app-protect-module-plus \
&& $PKG_MANAGER clean all \
&& rm -rf /var/cache/$PKG_MANAGER \
&& ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log

# Expose port
EXPOSE 80

# Define stop signal
STOPSIGNAL SIGQUIT

# Set default command
CMD ["nginx", "-g", "daemon off;"]
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
nd-files:
- content/waf/install/docker.md
- content/waf/install/kubernetes.md
---

```dockerfile
# syntax=docker/dockerfile:1

# Base Image
FROM rockylinux:9

# Install NGINX Plus and F5 WAF for NGINX v5 module
RUN --mount=type=secret,id=nginx-crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode=0644 \
--mount=type=secret,id=nginx-key,dst=/etc/ssl/nginx/nginx-repo.key,mode=0644 \
dnf -y install wget ca-certificates \
&& wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/dependencies.repo \
&& wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/${NGINX_PLUS_REPO} \
&& echo "[app-protect-x-plus]" > /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "name=nginx-app-protect repo" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "baseurl=https://pkgs.nginx.com/app-protect-x-plus/centos/${UBI_VERSION}/\$basearch/" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "sslclientcert=/etc/ssl/nginx/nginx-repo.crt" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "sslclientkey=/etc/ssl/nginx/nginx-repo.key" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "gpgcheck=0" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "enabled=1" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& dnf clean all \
&& dnf install -y app-protect-module-plus \
&& dnf clean all \
&& rm -rf /var/cache/dnf \
&& ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log

# Expose port
EXPOSE 80

# Define stop signal
STOPSIGNAL SIGQUIT

# Set default command
CMD ["nginx", "-g", "daemon off;"]
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
nd-files:
- content/waf/install/docker.md
- content/waf/install/kubernetes.md
---

```dockerfile
# syntax=docker/dockerfile:1

# Base Image
FROM rockylinux:9

# Install NGINX Plus and F5 WAF for NGINX v5 module
RUN --mount=type=secret,id=nginx-crt,dst=/etc/ssl/nginx/nginx-repo.crt,mode=0644 \
--mount=type=secret,id=nginx-key,dst=/etc/ssl/nginx/nginx-repo.key,mode=0644 \
dnf -y install wget ca-certificates \
&& wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/dependencies.repo \
&& wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/${NGINX_PLUS_REPO} \
&& echo "[app-protect-x-plus]" > /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "name=nginx-app-protect repo" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "baseurl=https://pkgs.nginx.com/app-protect-x-plus/centos/${UBI_VERSION}/\$basearch/" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "sslclientcert=/etc/ssl/nginx/nginx-repo.crt" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "sslclientkey=/etc/ssl/nginx/nginx-repo.key" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "gpgcheck=0" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& echo "enabled=1" >> /etc/yum.repos.d/app-protect-${UBI_VERSION}-x-plus.repo \
&& dnf clean all \
&& dnf install -y app-protect-module-plus \
&& dnf clean all \
&& rm -rf /var/cache/dnf \
&& ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log

# Expose port
EXPOSE 80

# Define stop signal
STOPSIGNAL SIGQUIT

# Set default command
CMD ["nginx", "-g", "daemon off;"]
```
Loading