Official package repository
Install pfBlockerNG.
Self-hosted FreeBSD pkg repository for pfSense CE & pfSense Plus. Pick a channel and run its command on your firewall as root.
Channels
Stable
Latest 3.3.8
Final tagged releases (X.Y.Z) from a maintained release line. Production use.
Install, upgrade, or switch to this channel (any starting state):
fetch -qo - https://pkg.pfblockerng.com/install.sh | sh -s -- --channel stable
Manual conf (advanced)
The bootstrap auto-detects this; in a hand-written conf, replace <varver> (the edition-version: ce-2.8, plus-26.03, …) with your box's value.
# Generated at boot by pfblockerng_repo_generate (ADR-39) — do not edit; re-run install.sh --channel stable to change.
# pfBlockerNG (stable channel) — self-hosted pkg repository (ADR-17).
# Signed catalogue (issue #2675): the trust anchor is our own ECDSA key, whose
# fingerprint the boot rc.d hook installs; the fetch is plain HTTP because pkg's
# CA store is Netgate-pinned on pfSense Plus and unreachable from the GUI.
# The URL is fully resolved for this box's edition/version (ADR-39; arch-less/NO_ARCH,
# issue #1806); the boot rc.d hook updates it on a pfSense OS upgrade.
# priority 100 sits above the base Netgate `pfSense` repo so cross-repo
# resolution (pkg install/upgrade, GUI Install) selects the pfBlockerNG build.
pfblockerng-stable: {
url: "https://pkg.pfblockerng.com/stable/<varver>",
mirror_type: none,
signature_type: fingerprints,
fingerprints: "/usr/local/etc/pkg/fingerprints/pfblockerng",
priority: 100,
enabled: yes
}Testing
Latest 3.3.8
Nonzero-patch prereleases (X.Y.Z.aN/bN/rN, Z ≠ 0) validating the next Stable of the current line. For users verifying an upcoming fix.
Install, upgrade, or switch to this channel (any starting state):
fetch -qo - https://pkg.pfblockerng.com/install.sh | sh -s -- --channel testing
Manual conf (advanced)
The bootstrap auto-detects this; in a hand-written conf, replace <varver> (the edition-version: ce-2.8, plus-26.03, …) with your box's value.
# Generated at boot by pfblockerng_repo_generate (ADR-39) — do not edit; re-run install.sh --channel testing to change.
# pfBlockerNG (testing channel) — self-hosted pkg repository (ADR-17).
# Signed catalogue (issue #2675): the trust anchor is our own ECDSA key, whose
# fingerprint the boot rc.d hook installs; the fetch is plain HTTP because pkg's
# CA store is Netgate-pinned on pfSense Plus and unreachable from the GUI.
# The URL is fully resolved for this box's edition/version (ADR-39; arch-less/NO_ARCH,
# issue #1806); the boot rc.d hook updates it on a pfSense OS upgrade.
# priority 100 sits above the base Netgate `pfSense` repo so cross-repo
# resolution (pkg install/upgrade, GUI Install) selects the pfBlockerNG build.
pfblockerng-testing: {
url: "https://pkg.pfblockerng.com/testing/<varver>",
mirror_type: none,
signature_type: fingerprints,
fingerprints: "/usr/local/etc/pkg/fingerprints/pfblockerng",
priority: 100,
enabled: yes
}Edge
Latest 3.3.8
Patch-zero prereleases (X.Y.0.aN/bN/rN) opening the next release family. Earliest adopters.
Install, upgrade, or switch to this channel (any starting state):
fetch -qo - https://pkg.pfblockerng.com/install.sh | sh -s -- --channel edge
Manual conf (advanced)
The bootstrap auto-detects this; in a hand-written conf, replace <varver> (the edition-version: ce-2.8, plus-26.03, …) with your box's value.
# Generated at boot by pfblockerng_repo_generate (ADR-39) — do not edit; re-run install.sh --channel edge to change.
# pfBlockerNG (edge channel) — self-hosted pkg repository (ADR-17).
# Signed catalogue (issue #2675): the trust anchor is our own ECDSA key, whose
# fingerprint the boot rc.d hook installs; the fetch is plain HTTP because pkg's
# CA store is Netgate-pinned on pfSense Plus and unreachable from the GUI.
# The URL is fully resolved for this box's edition/version (ADR-39; arch-less/NO_ARCH,
# issue #1806); the boot rc.d hook updates it on a pfSense OS upgrade.
# priority 100 sits above the base Netgate `pfSense` repo so cross-repo
# resolution (pkg install/upgrade, GUI Install) selects the pfBlockerNG build.
pfblockerng-edge: {
url: "https://pkg.pfblockerng.com/edge/<varver>",
mirror_type: none,
signature_type: fingerprints,
fingerprints: "/usr/local/etc/pkg/fingerprints/pfblockerng",
priority: 100,
enabled: yes
}Nightly not for daily use
Latest 20260907145518.e7b41e9
Untagged snapshot builds (YYYYMMDDHHMMSS.<7-character source SHA>) from a pinned source SHA. Every invocation builds. Bleeding edge — the only guarantee is that CI passed. Nightly versions intentionally sort above semantic versions: moving off Nightly is an explicit repository-qualified downgrade.
Install, upgrade, or switch to this channel (any starting state):
fetch -qo - https://pkg.pfblockerng.com/install.sh | sh -s -- --channel nightly
Manual conf (advanced)
The bootstrap auto-detects this; in a hand-written conf, replace <varver> (the edition-version: ce-2.8, plus-26.03, …) with your box's value.
# Generated at boot by pfblockerng_repo_generate (ADR-39) — do not edit; re-run install.sh --channel nightly to change.
# pfBlockerNG (nightly channel) — self-hosted pkg repository (ADR-17).
# Signed catalogue (issue #2675): the trust anchor is our own ECDSA key, whose
# fingerprint the boot rc.d hook installs; the fetch is plain HTTP because pkg's
# CA store is Netgate-pinned on pfSense Plus and unreachable from the GUI.
# The URL is fully resolved for this box's edition/version (ADR-39; arch-less/NO_ARCH,
# issue #1806); the boot rc.d hook updates it on a pfSense OS upgrade.
# priority 100 sits above the base Netgate `pfSense` repo so cross-repo
# resolution (pkg install/upgrade, GUI Install) selects the pfBlockerNG build.
pfblockerng-nightly: {
url: "https://pkg.pfblockerng.com/nightly/<varver>",
mirror_type: none,
signature_type: fingerprints,
fingerprints: "/usr/local/etc/pkg/fingerprints/pfblockerng",
priority: 100,
enabled: yes
}Published packages
Stable
pfSense CE
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 2.9 | 3.3.8 | FreeBSD:16:* | 8.5 | 3.11 | 498690e | 1.7 MiB | |
| 2.8 | 3.3.8 | FreeBSD:15:* | 8.3 | 3.11 | 498690e | 1.7 MiB |
Older releases (8)
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 2.9 | 3.3.7 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 2.8 | 3.3.7 | FreeBSD:15:* | 8.3 | 3.11 | f540a73 | 1.7 MiB | |
| 2.9 | 3.3.4 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 2.8 | 3.3.4 | FreeBSD:15:* | 8.3 | 3.11 | f540a73 | 1.7 MiB | |
| 2.9 | 3.3.3 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 2.8 | 3.3.3 | FreeBSD:15:* | 8.3 | 3.11 | 16fd562 | 1.7 MiB | |
| 2.9 | 3.3.2 | FreeBSD:16:* | 8.5 | 3.11 | f2c5650 | 1.7 MiB | |
| 2.8 | 3.3.2 | FreeBSD:15:* | 8.3 | 3.11 | f2c5650 | 1.7 MiB |
pfSense Plus
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 26.07 | 3.3.8 | FreeBSD:16:* | 8.5 | 3.11 | 498690e | 1.7 MiB | |
| 26.03 | 3.3.8 | FreeBSD:16:* | 8.5 | 3.11 | 498690e | 1.7 MiB | |
| 25.11 | 3.3.8 | FreeBSD:16:* | 8.4 | 3.11 | 498690e | 1.7 MiB |
Older releases (9)
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 26.07 | 3.3.7 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 26.03 | 3.3.7 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 25.11 | 3.3.7 | FreeBSD:16:* | 8.4 | 3.11 | f540a73 | 1.7 MiB | |
| 26.07 | 3.3.4 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 26.03 | 3.3.4 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 26.07 | 3.3.3 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 26.03 | 3.3.3 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 26.07 | 3.3.2 | FreeBSD:16:* | 8.5 | 3.11 | f2c5650 | 1.7 MiB | |
| 26.03 | 3.3.2 | FreeBSD:16:* | 8.5 | 3.11 | f2c5650 | 1.7 MiB |
Testing
pfSense CE
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 2.9 | 3.3.8 | FreeBSD:16:* | 8.5 | 3.11 | 498690e | 1.7 MiB | |
| 2.8 | 3.3.8 | FreeBSD:15:* | 8.3 | 3.11 | 498690e | 1.7 MiB |
Older releases (10)
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 2.9 | 3.3.7 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 2.8 | 3.3.7 | FreeBSD:15:* | 8.3 | 3.11 | f540a73 | 1.7 MiB | |
| 2.9 | 3.3.4 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 2.8 | 3.3.4 | FreeBSD:15:* | 8.3 | 3.11 | f540a73 | 1.7 MiB | |
| 2.9 | 3.3.3 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 2.8 | 3.3.3 | FreeBSD:15:* | 8.3 | 3.11 | 16fd562 | 1.7 MiB | |
| 2.9 | 3.3.3.a1 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 2.8 | 3.3.3.a1 | FreeBSD:15:* | 8.3 | 3.11 | 16fd562 | 1.7 MiB | |
| 2.9 | 3.3.2 | FreeBSD:16:* | 8.5 | 3.11 | f2c5650 | 1.7 MiB | |
| 2.8 | 3.3.2 | FreeBSD:15:* | 8.3 | 3.11 | f2c5650 | 1.7 MiB |
pfSense Plus
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 26.07 | 3.3.8 | FreeBSD:16:* | 8.5 | 3.11 | 498690e | 1.7 MiB | |
| 26.03 | 3.3.8 | FreeBSD:16:* | 8.5 | 3.11 | 498690e | 1.7 MiB | |
| 25.11 | 3.3.8 | FreeBSD:16:* | 8.4 | 3.11 | 498690e | 1.7 MiB |
Older releases (11)
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 26.07 | 3.3.7 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 26.03 | 3.3.7 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 25.11 | 3.3.7 | FreeBSD:16:* | 8.4 | 3.11 | f540a73 | 1.7 MiB | |
| 26.07 | 3.3.4 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 26.03 | 3.3.4 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 26.07 | 3.3.3 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 26.03 | 3.3.3 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 26.07 | 3.3.3.a1 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 26.03 | 3.3.3.a1 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 26.07 | 3.3.2 | FreeBSD:16:* | 8.5 | 3.11 | f2c5650 | 1.7 MiB | |
| 26.03 | 3.3.2 | FreeBSD:16:* | 8.5 | 3.11 | f2c5650 | 1.7 MiB |
Edge
pfSense CE
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 2.9 | 3.3.8 | FreeBSD:16:* | 8.5 | 3.11 | 498690e | 1.7 MiB | |
| 2.8 | 3.3.8 | FreeBSD:15:* | 8.3 | 3.11 | 498690e | 1.7 MiB |
Older releases (10)
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 2.9 | 3.3.7 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 2.8 | 3.3.7 | FreeBSD:15:* | 8.3 | 3.11 | f540a73 | 1.7 MiB | |
| 2.9 | 3.3.4 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 2.8 | 3.3.4 | FreeBSD:15:* | 8.3 | 3.11 | f540a73 | 1.7 MiB | |
| 2.9 | 3.3.3 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 2.8 | 3.3.3 | FreeBSD:15:* | 8.3 | 3.11 | 16fd562 | 1.7 MiB | |
| 2.9 | 3.3.3.a1 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 2.8 | 3.3.3.a1 | FreeBSD:15:* | 8.3 | 3.11 | 16fd562 | 1.7 MiB | |
| 2.9 | 3.3.2 | FreeBSD:16:* | 8.5 | 3.11 | f2c5650 | 1.7 MiB | |
| 2.8 | 3.3.2 | FreeBSD:15:* | 8.3 | 3.11 | f2c5650 | 1.7 MiB |
pfSense Plus
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 26.07 | 3.3.8 | FreeBSD:16:* | 8.5 | 3.11 | 498690e | 1.7 MiB | |
| 26.03 | 3.3.8 | FreeBSD:16:* | 8.5 | 3.11 | 498690e | 1.7 MiB | |
| 25.11 | 3.3.8 | FreeBSD:16:* | 8.4 | 3.11 | 498690e | 1.7 MiB |
Older releases (11)
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 26.07 | 3.3.7 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 26.03 | 3.3.7 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 25.11 | 3.3.7 | FreeBSD:16:* | 8.4 | 3.11 | f540a73 | 1.7 MiB | |
| 26.07 | 3.3.4 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 26.03 | 3.3.4 | FreeBSD:16:* | 8.5 | 3.11 | f540a73 | 1.7 MiB | |
| 26.07 | 3.3.3 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 26.03 | 3.3.3 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 26.07 | 3.3.3.a1 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 26.03 | 3.3.3.a1 | FreeBSD:16:* | 8.5 | 3.11 | 16fd562 | 1.7 MiB | |
| 26.07 | 3.3.2 | FreeBSD:16:* | 8.5 | 3.11 | f2c5650 | 1.7 MiB | |
| 26.03 | 3.3.2 | FreeBSD:16:* | 8.5 | 3.11 | f2c5650 | 1.7 MiB |
Nightly
pfSense CE
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 2.9 | 20260907145518.e7b41e9 | FreeBSD:16:* | 8.5 | 3.11 | e7b41e9 | 2.1 MiB | |
| 2.8 | 20260907145518.e7b41e9 | FreeBSD:15:* | 8.3 | 3.11 | e7b41e9 | 2.1 MiB |
Older nightlies (8)
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 2.9 | 20260906124313.caa1014 | FreeBSD:16:* | 8.5 | 3.11 | caa1014 | 2.1 MiB | |
| 2.8 | 20260906124313.caa1014 | FreeBSD:15:* | 8.3 | 3.11 | caa1014 | 2.1 MiB | |
| 2.9 | 20260905123014.713025f | FreeBSD:16:* | 8.5 | 3.11 | 713025f | 2.1 MiB | |
| 2.8 | 20260905123014.713025f | FreeBSD:15:* | 8.3 | 3.11 | 713025f | 2.1 MiB | |
| 2.9 | 20260904131824.58f7b57 | FreeBSD:16:* | 8.5 | 3.11 | 58f7b57 | 2.1 MiB | |
| 2.8 | 20260904131824.58f7b57 | FreeBSD:15:* | 8.3 | 3.11 | 58f7b57 | 2.1 MiB | |
| 2.9 | 20260903132308.2c012d8 | FreeBSD:16:* | 8.5 | 3.11 | 2c012d8 | 2.1 MiB | |
| 2.8 | 20260903132308.2c012d8 | FreeBSD:15:* | 8.3 | 3.11 | 2c012d8 | 2.1 MiB |
pfSense Plus
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 26.07 | 20260907145518.e7b41e9 | FreeBSD:16:* | 8.5 | 3.11 | e7b41e9 | 2.1 MiB | |
| 26.03 | 20260907145518.e7b41e9 | FreeBSD:16:* | 8.5 | 3.11 | e7b41e9 | 2.1 MiB | |
| 25.11 | 20260907145518.e7b41e9 | FreeBSD:16:* | 8.4 | 3.11 | e7b41e9 | 2.1 MiB |
Older nightlies (12)
| pfSense | Version | ABI | PHP | Python | Published | Commit | Size |
|---|---|---|---|---|---|---|---|
| 26.07 | 20260906124313.caa1014 | FreeBSD:16:* | 8.5 | 3.11 | caa1014 | 2.1 MiB | |
| 26.03 | 20260906124313.caa1014 | FreeBSD:16:* | 8.5 | 3.11 | caa1014 | 2.1 MiB | |
| 25.11 | 20260906124313.caa1014 | FreeBSD:16:* | 8.4 | 3.11 | caa1014 | 2.1 MiB | |
| 26.07 | 20260905123014.713025f | FreeBSD:16:* | 8.5 | 3.11 | 713025f | 2.1 MiB | |
| 26.03 | 20260905123014.713025f | FreeBSD:16:* | 8.5 | 3.11 | 713025f | 2.1 MiB | |
| 25.11 | 20260905123014.713025f | FreeBSD:16:* | 8.4 | 3.11 | 713025f | 2.1 MiB | |
| 26.07 | 20260904131824.58f7b57 | FreeBSD:16:* | 8.5 | 3.11 | 58f7b57 | 2.1 MiB | |
| 26.03 | 20260904131824.58f7b57 | FreeBSD:16:* | 8.5 | 3.11 | 58f7b57 | 2.1 MiB | |
| 25.11 | 20260904131824.58f7b57 | FreeBSD:16:* | 8.4 | 3.11 | 58f7b57 | 2.1 MiB | |
| 26.07 | 20260903132308.2c012d8 | FreeBSD:16:* | 8.5 | 3.11 | 2c012d8 | 2.1 MiB | |
| 26.03 | 20260903132308.2c012d8 | FreeBSD:16:* | 8.5 | 3.11 | 2c012d8 | 2.1 MiB | |
| 25.11 | 20260903132308.2c012d8 | FreeBSD:16:* | 8.4 | 3.11 | 2c012d8 | 2.1 MiB |
Repository files
Browse every channel, version and ABI — and the raw pkg(8) catalogs your firewall fetches — in a directory-style listing.