Welcome to BindCaptain - Take command of your DNS infrastructure with captain-grade precision.
- Quick Start Guide - Get up and running in minutes
- System Requirements - Supported distributions and manual setup
- Installation Guide - Complete setup and configuration
- Manual Setup - Setup for unsupported Linux distributions
- Configuration Management - DNS zone and record management
- Container Management - Building, running, and managing containers
- DNS Operations - Creating, updating, and managing DNS records
- Systemd Integration - Service management and automation
- Troubleshooting - Common issues and solutions
- Architecture - How BindCaptain works internally
- Security - Security best practices and hardening
- Backup & Restore - Data protection and recovery
- Performance Tuning - Optimization and monitoring
- Integration - Working with other tools and systems
- Script Reference - Complete command reference for all scripts
- Configuration Reference - All configuration options
- API Reference - Container and service APIs
- Changelog - Version history and changes
- Contributing - How to contribute to BindCaptain
- Development Setup - Setting up development environment
- Testing - Running tests and validation
- Code Style - Coding standards and guidelines
New to BindCaptain? Start here:
- System Requirements - Check compatibility and prerequisites
- Installation Guide - Complete setup and configuration
- Quick Start Guide - Get your first DNS zone running
- DNS Operations - Learn to manage DNS records
# 1. Clone BindCaptain
git clone https://github.com/yourusername/bindcaptain.git
cd bindcaptain
# 2. System setup (one-time)
sudo ./tools/system-setup.sh
# 3. Configure DNS zones
sudo ./tools/config-setup.sh wizard
# 4. Build and run container
sudo ./bindcaptain.sh build
sudo ./bindcaptain.sh run
# 5. Manage DNS records
source ./tools/bindcaptain_manager.sh
bind.create_record webserver example.com 192.168.1.100# 1. Install prerequisites manually
# See manual-setup.md for your distribution
# 2. Configure DNS zones
sudo ./tools/config-setup.sh wizard
# 3. Build and run container
sudo ./bindcaptain.sh build
sudo ./bindcaptain.sh run# Load management functions
source ./tools/bindcaptain_manager.sh
# Create DNS records
bind.create_record webserver example.com 192.168.1.100
bind.create_record mail example.com 192.168.1.101
bind.create_cname www example.com webserver.example.com
# List and manage records
bind.list_records example.com
bind.delete_record webserver example.com
# Refresh DNS
./tools/bindcaptain_manager.sh refresh| Distribution | Support | Setup Method |
|---|---|---|
| RHEL 8/9 | ✅ Full | system-setup.sh |
| CentOS 8/9 | ✅ Full | system-setup.sh |
| Rocky Linux 8/9 | ✅ Full | system-setup.sh |
| AlmaLinux 8/9 | ✅ Full | system-setup.sh |
| Fedora 35+ | ✅ Full | system-setup.sh |
| Ubuntu/Debian | See Manual Setup | |
| Arch Linux | See Manual Setup | |
| Others | See Manual Setup |
- 🎯 Container-First - Runs BIND in Podman containers for isolation
- ⚡ Quick Setup - Automated system setup for supported distributions
- 🔧 Easy Management - Interactive DNS record management
- 🛡️ Security Focused - SELinux, firewalld, and security best practices
- 📊 Monitoring Ready - Built-in logging and health checks
- 🔄 Auto-Reload - Automatic BIND configuration reload on changes
- 📝 Template Driven - Easy zone file generation from templates
bindcaptain/
├── bindcaptain.sh # Main container management script
├── tools/ # Management and setup tools
│ ├── common.sh # Shared utilities library
│ ├── system-setup.sh # System preparation (supported distros)
│ ├── config-setup.sh # DNS configuration management
│ └── bindcaptain_manager.sh # Interactive DNS management
├── config-examples/ # Configuration templates
├── docs/ # Comprehensive documentation
└── tests/ # Test suite
# Container lifecycle
sudo ./bindcaptain.sh build # Build container image
sudo ./bindcaptain.sh run # Start container
sudo ./bindcaptain.sh stop # Stop container
sudo ./bindcaptain.sh status # Check status
# DNS management
source ./tools/bindcaptain_manager.sh
bind.create_record --help # Show help
bind.list_zones # List all zones
bind.refresh # Reload BIND configuration
# System management
sudo ./tools/system-setup.sh # One-time system setup
sudo ./tools/config-setup.sh # Configure DNS zonesEssential requirements:
- Linux with Podman support
- Root access for system setup and container management
- Network access for DNS resolution
- Storage for configuration and zone files
BindCaptain uses:
- Container isolation - BIND runs in Podman containers
- Template-driven config - Easy zone file generation
- Interactive management - User-friendly DNS record operations
- Auto-reload - Configuration changes applied automatically
- Security hardening - SELinux, firewalld, and best practices
BindCaptain - Take command of your DNS infrastructure