📸 View all screenshots and application interface examples →
A Qt6 desktop application for managing DNS zones and records using the deSEC DNS API.
- Multi-Profile Support - Manage multiple deSEC accounts or environments with isolated tokens, cache, and settings per profile
- Enhanced Import/Export - Backup, migrate, and manage DNS configurations with multiple formats (JSON, YAML, BIND, djbdns), real-time progress tracking, and flexible import modes
- Comprehensive DNS Management - Full support for all standard DNS record types with intuitive zone and record management
- Real-time Synchronization - Automatic sync with deSEC API and offline mode with cached data access
- Modern Interface - Clean two-pane layout with light, dark, and system-based themes
- Smart Navigation - Full keyboard shortcuts, sortable tables, and double-click editing
- Visual Feedback - Real-time progress tracking, offline indicators, and elapsed time since last sync
- Record Insights - Hover tooltips showing creation and last modification timestamps for all DNS records
- Robust Error Handling - Clear error messages and graceful failure handling
- Performance Optimized - Smart caching system with indexed lookups for improved performance
- Flexible Configuration - Built-in configuration editor for API settings and rate limiting
- Comprehensive Logging - Integrated log console within the main window
- Advanced Record Support - Support for all deSEC-compatible record types: A, AAAA, AFSDB, APL, CAA, CDNSKEY, CDS, CERT, CNAME, DHCID, DNAME, DNSKEY, DLV, DS, EUI48, EUI64, HINFO, HTTPS, KX, L32, L64, LOC, LP, MX, NAPTR, NID, NS, OPENPGPKEY, PTR, RP, SMIMEA, SPF, SRV, SSHFP, SVCB, TLSA, TXT, URI
- Advanced Features - Reverse DNS zone support, record-specific TTL management, and multiline record display
- TTL values are limited to a range of 3600-86400 seconds (1-24 hours) by the deSEC API
- For values outside this range, contact deSEC directly for account-specific adjustments
- Automatically managed resource records are not exposed via deSEC API, namingly:
DNSKEY, DS, CDNSKEY, CDS, NSEC3PARAM, RRSIG - Additional resource records of the following types can be added e.g. to add extra public keys for DNSSEC:
DNSKEY, DS, CDNSKEY - See DNSSEC Caveat for more details.
# Create a virtual environment
python -m venv venv
# Activate the virtual environment
# On Linux/macOS:
source venv/bin/activate
# On Windows:
venv\Scripts\activatepip install -r requirements.txtpython src/main.pyWhen you're done using the application, you can deactivate the virtual environment:
deactivateAlternatively, just close the terminal.
The application supports multiple user profiles, allowing you to manage different deSEC accounts or environments with complete data isolation. Each profile maintains its own API tokens, cache, and configuration settings.
- Access Profile Management: Go to Profile → Manage Profiles... in the menu
- Create New Profile: Click "Create New..." and enter a name (e.g., "work", "personal")
- Switch Profiles: Select a profile and click "Switch To" (application will restart)
- Configure Each Profile: Set up API tokens and settings independently for each profile
- Multiple deSEC Accounts: Separate work and personal DNS management
- Environment Separation: Different profiles for production, staging, and development
- Team Collaboration: Individual profiles for different team members or access levels
For detailed information about multi-profile features, see doc/PROFILES.md.
The application supports importing and exporting DNS zones and records in multiple formats with advanced features for backup, migration, and Infrastructure-as-Code workflows.
- JSON (API-compatible) - Direct deSEC API format, perfect for backups and programmatic processing
- YAML (Infrastructure-as-Code) - Human-readable format ideal for version control and DevOps workflows
- BIND Zone Files - Industry standard format for DNS server configurations
- djbdns/tinydns - Compact format for djbdns/tinydns server setups
- Enhanced Import Modes: Clear terminology with Append, Merge, and Replace modes
- Real-time Progress Tracking: Visual progress bar with percentage and status updates
- Target Zone Selection: Import to existing zones or auto-create new ones
- API Rate Limiting: Configurable rate limiting (0-10 req/sec) to prevent timeouts
- Auto-generated Filenames: Timestamp-based export filenames for better organization
- Post-import Sync: Automatic UI refresh after successful imports
-
Export a Zone:
File → Import/Export...→ Export tab- Select zone to export
- Choose format (JSON, YAML, BIND, djbdns)
- Configure options (include/exclude metadata)
- Auto-generated filename with timestamp
- Save to file
-
Import a Zone:
File → Import/Export...→ Import tab- Select file to import
- Choose matching format and target zone
- Select import mode (Append/Merge/Replace)
- Preview import data (recommended)
- Watch real-time progress during import
- Automatic UI sync after completion
- Backup & Recovery: Regular exports for disaster recovery
- DNS Migration: Move configurations between DNS providers
- Infrastructure-as-Code: Version control DNS configurations with Git
- Environment Sync: Keep staging and production DNS in sync
- Multi-Provider Setup: Export from one provider, import to another
For comprehensive documentation, see doc/IMPORT_EXPORT.md and doc/RATE-LIMIT.md.
The application stores configuration in:
~/.config/desecqt/config.json
You can edit the API URL and authentication token through the application's configuration editor.
Detailed documentation is available in the doc/ directory:
- Multi-Profile Support - Complete guide to managing multiple deSEC accounts and environments
- Import/Export Functionality - Comprehensive documentation for backup, migration, and Infrastructure-as-Code workflows
- API Rate Limiting - Guide to configurable API rate limiting for bulk operations
- Release Process - Step-by-step guide for creating new releases and maintaining version consistency
- Architecture - Details on the application's structure and design patterns
- Caching System - Information about the multi-layered caching implementation with optimized indexing
- Configuration - Guide to configuration options and settings
- Logs and Notifications - Logging and notification system information
This project is open source software licensed under the MIT License.
