Platform Overview
NextDNS Blocker runs on macOS, Linux, Windows, and Docker with platform-specific optimizations.
Supported Platforms
Section titled “Supported Platforms”| Platform | Scheduler | Status |
|---|---|---|
| macOS | launchd | Full support |
| Linux | cron | Full support |
| Windows | Task Scheduler | Full support |
| WSL | cron | Full support |
| Docker | Built-in cron | Full support |
Platform Detection
Section titled “Platform Detection”NextDNS Blocker automatically detects your platform and uses the appropriate scheduler:
nextdns-blocker watchdog statusShows:
Platform: macOS (launchd)# orPlatform: Linux (cron)# orPlatform: Windows (Task Scheduler)Key Differences
Section titled “Key Differences”File Locations
Section titled “File Locations”| Component | macOS/Linux | Windows |
|---|---|---|
| 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\ |
Scheduler Behavior
Section titled “Scheduler Behavior”| Aspect | macOS | Linux | Windows |
|---|---|---|---|
| Service | launchd | cron | Task Scheduler |
| Interval | 2 minutes | 2 minutes | 2 minutes |
| User scope | Per-user | Per-user | Per-user |
| Boot start | Automatic | Requires config | Automatic |
File Permissions
Section titled “File Permissions”| Platform | Sensitive Files |
|---|---|
| macOS/Linux | chmod 600 (owner only) |
| Windows | User ACL (default) |
Platform Guides
Section titled “Platform Guides”- 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
Installation Quick Reference
Section titled “Installation Quick Reference”brew tap aristeoibarra/tapbrew install nextdns-blockernextdns-blocker initnextdns-blocker watchdog installpip install nextdns-blockernextdns-blocker initnextdns-blocker watchdog installWindows
Section titled “Windows”pip install nextdns-blockernextdns-blocker initnextdns-blocker watchdog installOr use the PowerShell installer:
irm https://raw.githubusercontent.com/aristeoibarra/nextdns-blocker/main/install.ps1 | iexDocker
Section titled “Docker”git clone https://github.com/aristeoibarra/nextdns-blocker.gitcd nextdns-blockercp .env.example .envcp config.json.example config.jsondocker compose up -dCross-Platform Considerations
Section titled “Cross-Platform Considerations”Configuration Portability
Section titled “Configuration Portability”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
Timezone Handling
Section titled “Timezone Handling”| Platform | Auto-Detection |
|---|---|
| macOS | /etc/localtime symlink |
| Linux | /etc/localtime symlink |
| Windows | tzutil /g command |
| Docker | TZ environment variable |
Command Differences
Section titled “Command Differences”Commands are identical across platforms. Only internal behavior differs:
- Path separators handled automatically
- File permissions adapted to platform
- Scheduler commands platform-specific