BindCaptain

Containerized BIND DNS Server with Smart Management

View the Project on GitHub randyoyarzabal/bindcaptain

BindCaptain

Welcome to BindCaptain - Take command of your DNS infrastructure with captain-grade precision.

Table of Contents

Getting Started

User Guides

Advanced Topics

Reference

Development

Quick Start

New to BindCaptain? Start here:

  1. System Requirements - Check compatibility and prerequisites
  2. Installation Guide - Complete setup and configuration
  3. Quick Start Guide - Get your first DNS zone running
  4. DNS Operations - Learn to manage DNS records

Quick Examples

Complete Setup (Supported Distributions)

# 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

Manual Setup (Unsupported Distributions)

# 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

DNS Management

# 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

Supported Distributions

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 ⚠️ Manual See Manual Setup
Arch Linux ⚠️ Manual See Manual Setup
Others ⚠️ Manual See Manual Setup

Core Features

Project Structure

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

Common Operations

# 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 zones

Prerequisites

Essential requirements:

Complete Prerequisites Guide

How It Works

BindCaptain uses:


BindCaptain - Take command of your DNS infrastructure

GitHub: https://github.com/yourusername/bindcaptain