Install Command
Install NexoralDNS with a single command. This automated installer handles all dependencies and configurations.
Command
curl -fsSL https://raw.githubusercontent.com/nexoral/NexoralDNS/main/Scripts/install.sh | bash -What It Does
The installation script automates the entire setup process for NexoralDNS. It detects your system configuration and performs the following actions:
Installation Steps:
- Verifies system compatibility (Linux Debian/Ubuntu)
- Checks for and installs Docker if not present
- Checks for and installs Docker Compose if not present
- Downloads the NexoralDNS repository
- Pulls the latest Docker images for all services
- Configures system DNS settings to use NexoralDNS
- Starts all containers (DNS server, web dashboard, cache manager)
- Verifies successful installation
- Displays access information for the web interface
System Requirements
Before running the installation command, ensure your system meets these requirements:
| Requirement | Details |
|---|---|
| Operating System | Linux (Debian/Ubuntu based distributions recommended) |
| Privileges | Root or sudo access required |
| RAM | Minimum 1GB, 2GB+ recommended |
| Storage | At least 4GB free space |
| Network | LAN connectivity (NOT for cloud/public servers) |
| Ports | 53 (DNS) and 4000 (Dashboard) must be available |
Expected Output
During installation, you'll see progress indicators for each step. A successful installation will display:
[â] System compatibility check passed
[â] Docker installed successfully
[â] Docker Compose installed successfully
[â] NexoralDNS repository cloned
[â] Docker images downloaded
[â] Services started successfully
[â] DNS configuration updated
Installation complete!
Access the web dashboard at: http://localhost:4000
Default credentials:
Username: admin
Password: admin
IMPORTANT: Change the default password after first login!Post-Installation Steps
- Access the Dashboard: Navigate to
http://localhost:4000in your browser - Login: Use username
adminand passwordadmin - Change Password: Immediately update credentials in Settings
- Configure Router: Set your router's DNS to your machine's IP address
- Reserve Static IP: Configure your router to assign a static IP to the NexoralDNS machine
Security Notice:
The default credentials are widely known. For security, you MUST change the password immediately after installation. Go to Settings â Change Password in the web dashboard.
Troubleshooting
Installation Fails with Permission Denied
Solution: Run the command with sudo or as root user:
sudo curl -fsSL https://raw.githubusercontent.com/nexoral/NexoralDNS/main/Scripts/install.sh | sudo bash -Port 53 Already in Use
Problem: Another DNS service is using port 53 (e.g., systemd-resolved).
Solution: Disable the conflicting service:
sudo systemctl disable systemd-resolved\nsudo systemctl stop systemd-resolvedPort 4000 Already in Use
Problem: Another application is using port 4000.
Solution: Either stop the conflicting service or modify the port in docker-compose.yml before installation.
Docker Installation Fails
Solution: Manually install Docker and Docker Compose, then run the installation again:
# Install Docker\ncurl -fsSL https://get.docker.com | sh\n\n# Install Docker Compose\nsudo apt-get install docker-compose-plugin\n\n# Run NexoralDNS installer again\ncurl -fsSL https://raw.githubusercontent.com/nexoral/NexoralDNS/main/Scripts/install.sh | bash -Cannot Access Web Dashboard
Check services are running:
sudo docker compose psView logs for errors:
sudo docker compose logs -fDNS Resolution Not Working
Verify DNS server is listening:
sudo netstat -tulpn | grep :53Test DNS query:
dig @localhost google.comNeed More Help?
- Check the Troubleshooting Guide for more solutions
- Review GitHub Issues for known problems
- Open a new issue if you encounter a unique problem
- Premium users: Contact support for priority assistance
Next Steps
- Start Command - Learn how to start services
- Stop Command - Learn how to stop services
- Explore Features - Discover what NexoralDNS can do
- API Documentation - Automate with the REST API