Installation
Pharos Advanced Blocking (pab) is a lightweight, compiled binary designed to integrate safely with your existing Technitium host.
Installing Pharos Advanced Blocking (pab) is designed to be straightforward across different Linux environments.
Quick Install Script
The fastest way to get started is by using our installation script:
curl -sSL https://iamrichardd.com/pharos-advanced-blocking/install.sh | bash
Debian/Ubuntu (.deb)
If you prefer to manage the installation via apt or dpkg, download the .deb package matching your architecture from the latest GitHub release. Release assets follow the pattern pharos-advanced-blocking_<version>_linux_<amd64|arm64>.deb.
With the GitHub CLI installed:
gh release download --repo iamrichardD/pharos-advanced-blocking --pattern '*_linux_amd64.deb'
sudo dpkg -i pharos-advanced-blocking_*_linux_amd64.deb
sudo apt-get install -f # To resolve any missing dependencies
No gh CLI? Download the matching .deb file directly from the Releases page and run dpkg -i on it.
Post-Installation
After installation, the pab command will be available in your path. Verify the installation by running:
pab --version
Why Pharos Instead of Technitium’s Web UI?
Technitium’s web interface is excellent for interactive browsing and manual configuration. Pharos complements it with:
- Automation: Map hundreds of clients at once with
pab mapcommands or scripting - CI/CD Integration: Deploy changes from your pipeline without browser interaction
- Bulk Operations: Update client groups or mappings for entire network segments
- Terminal Native: Work directly from your shell or scripts; no web UI context switching
- Infrastructure as Code: Store your DNS blocking config in version control and deploy reproducibly
Use Technitium’s web UI for one-off changes and exploration. Use Pharos when you need repeatability, automation, and integration with your deployment pipeline.
Getting Started
Now that you have Pharos Advanced Blocking installed, point it at your running Technitium server — no copy-paste, no blank JSON file.
Your First Command
Start by exploring what pab can do:
pab --help
This shows you all available commands and options.
Bootstrap Your Configuration
If you don’t already have a local dnsApp.config, run:
pab init
pab init resolves your Technitium credentials (environment variables for a single node, or secrets.json for two or more — prompting you for them interactively if neither is set up yet), fetches the live Advanced Blocking configuration from your server, previews what it found, and asks you to confirm before writing anything to disk. If your server has no Advanced Blocking configuration yet, pab init falls back to a minimal starter template instead of leaving you with nothing.
Interactive Walkthrough
The fastest way to see pab in action is to open the interactive TUI:
-
Launch the TUI — Open your terminal in the directory containing your Technitium
dnsApp.configfile and run:pab -
Explore with Slash Commands — Once the TUI is open, type
/helpto see available commands, then try:/view groups— See all your blocking groups- Search for an IP address to view its group mapping
/exitto close the TUI
-
Next, Read the Full Guide — Head over to the User Guide for detailed walkthroughs of the TUI, slash commands, and how to map client IPs to blocking groups.
Common Next Steps
Once you’re comfortable with the basics, here’s the natural progression to more advanced usage:
Setting Up Client Mapping
Map client IPs to blocking groups using the command line:
pab map --ip 192.0.2.50 --group Kids
This assigns all DNS queries from 192.0.2.50 to the “Kids” blocking group. Learn more in the User Guide.
Configuring Groups and Policies
Work with your Technitium blocking groups to:
- Add or modify blocklists
- Create group-specific policies
- View detailed group information
Refer to the CLI Reference for command syntax and examples.
Automating Deployments
Once your configuration is working, consider automating client mapping or deployments through scripts or CI/CD pipelines. The pab command-line interface integrates easily into shell scripts and automation workflows. Chain pab verify --domain <domain> after pab deploy to confirm blocking actually took effect before your pipeline moves on.
Learn More
- Full User Guide: User Guide — Interactive mode, slash commands, and practical workflows
- Command Reference: CLI Reference — All commands, flags, and examples
- Release Notes: Release Notes — What’s new and recent improvements