Skip to content

Platform Overview

NextDNS Blocker runs on macOS, Linux, Windows, and Docker with platform-specific optimizations.

PlatformSchedulerStatus
macOSlaunchdFull support
LinuxcronFull support
WindowsTask SchedulerFull support
WSLcronFull support
DockerBuilt-in cronFull support

NextDNS Blocker automatically detects your platform and uses the appropriate scheduler:

Terminal window
nextdns-blocker watchdog status

Shows:

Platform: macOS (launchd)
# or
Platform: Linux (cron)
# or
Platform: Windows (Task Scheduler)
ComponentmacOS/LinuxWindows
Config~/.config/nextdns-blocker/%APPDATA%\nextdns-blocker\
Data~/.local/share/nextdns-blocker/%LOCALAPPDATA%\nextdns-blocker\
Logs~/.local/share/nextdns-blocker/logs/%LOCALAPPDATA%\nextdns-blocker\logs\
AspectmacOSLinuxWindows
ServicelaunchdcronTask Scheduler
Interval2 minutes2 minutes2 minutes
User scopePer-userPer-userPer-user
Boot startAutomaticRequires configAutomatic
PlatformSensitive Files
macOS/Linuxchmod 600 (owner only)
WindowsUser ACL (default)
  • launchd configuration
  • Homebrew installation
  • System permissions
  • Troubleshooting
  • cron setup
  • Distribution specifics
  • systemd integration
  • WSL considerations
  • Task Scheduler setup
  • PowerShell installer
  • Path considerations
  • Troubleshooting
  • Container setup
  • docker-compose configuration
  • Environment variables
  • Persistent storage
Terminal window
brew tap aristeoibarra/tap
brew install nextdns-blocker
nextdns-blocker init
nextdns-blocker watchdog install
Terminal window
pip install nextdns-blocker
nextdns-blocker init
nextdns-blocker watchdog install
Terminal window
pip install nextdns-blocker
nextdns-blocker init
nextdns-blocker watchdog install

Or use the PowerShell installer:

Terminal window
irm https://raw.githubusercontent.com/aristeoibarra/nextdns-blocker/main/install.ps1 | iex
Terminal window
git clone https://github.com/aristeoibarra/nextdns-blocker.git
cd nextdns-blocker
cp .env.example .env
cp config.json.example config.json
docker compose up -d

config.json is portable across platforms:

  • Same format everywhere
  • Copy between machines
  • Version control friendly

.env may need adjustment:

  • Timezone detection differs
  • Path formats vary
PlatformAuto-Detection
macOS/etc/localtime symlink
Linux/etc/localtime symlink
Windowstzutil /g command
DockerTZ environment variable

Commands are identical across platforms. Only internal behavior differs:

  • Path separators handled automatically
  • File permissions adapted to platform
  • Scheduler commands platform-specific