Skip to content

PowerLobster DNS Server Deployment Checklist

Architecture Decision: Separate Nameservers

Section titled “Architecture Decision: Separate Nameservers”

Decision: Keep ns1.powerlobster.com separate from ns1.ezdomains.io.

  • Reason 1 (Technical): The DNS server script is tightly coupled to the PowerLobster database. Merging them would require complex cross-database queries.
  • Reason 2 (Networking): DNS runs on Port 53. You cannot run two different DNS applications on the same IP address. You would need to buy a second Static IP for the same VPS to run both.
  • Reason 3 (Branding): It is cleaner for PowerLobster users to see ns1.powerlobster.com than ns1.ezdomains.io.
  • Provision a small Linux VPS (DigitalOcean Droplet, Hetzner, etc.).
    • OS: Ubuntu 22.04 / Debian 12
    • Specs: 1 vCPU, 512MB RAM is sufficient.
    • Networking: Ensure UDP Port 53 is open in the firewall.
  • Go to the domain registrar for powerlobster.com (e.g., GoDaddy, Cloudflare).
  • Create an A Record:
    • Host: ns1
    • Value: <Your-VPS-IP>
    • TTL: 3600 (1 hour)
  • SSH into the VPS.
  • Clone the repo:
    Terminal window
    git clone https://github.com/your-repo/powerlobster-network.git
    cd powerlobster-network
  • Install Python dependencies:
    Terminal window
    pip3 install -r requirements.txt
  • Configure .env:
    Terminal window
    # Ensure this points to your production Railway Database!
    DATABASE_URL=postgresql://user:pass@host:port/dbname
    NS_DOMAIN=ns1.powerlobster.com
    ADMIN_EMAIL=admin.powerlobster.com
  • Copy the service file:
    Terminal window
    sudo cp powerlobster-dns.service /etc/systemd/system/
  • Reload and Start:
    Terminal window
    sudo systemctl daemon-reload
    sudo systemctl enable powerlobster-dns
    sudo systemctl start powerlobster-dns
  • Verify logs:
    Terminal window
    journalctl -u powerlobster-dns -f
  • From your local machine:
    Terminal window
    # Replace 1.2.3.4 with your VPS IP
    dig @1.2.3.4 mike.boss TXT
    • Success: You should see the TXT records (btc, nostr, etc.) returned.