{"id":28225749,"url":"https://github.com/aryanvbw/archon-dns","last_synced_at":"2025-06-13T00:31:47.708Z","repository":{"id":286274984,"uuid":"960920202","full_name":"AryanVBW/Archon-DNS","owner":"AryanVBW","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-06T03:14:00.000Z","size":12902,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-18T11:09:35.994Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"EJS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AryanVBW.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-05T11:02:36.000Z","updated_at":"2025-04-06T03:14:07.000Z","dependencies_parsed_at":"2025-04-05T12:36:05.904Z","dependency_job_id":null,"html_url":"https://github.com/AryanVBW/Archon-DNS","commit_stats":null,"previous_names":["aryanvbw/archon-dns"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AryanVBW/Archon-DNS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AryanVBW%2FArchon-DNS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AryanVBW%2FArchon-DNS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AryanVBW%2FArchon-DNS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AryanVBW%2FArchon-DNS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AryanVBW","download_url":"https://codeload.github.com/AryanVBW/Archon-DNS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AryanVBW%2FArchon-DNS/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259554969,"owners_count":22875909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-18T11:09:35.857Z","updated_at":"2025-06-13T00:31:47.694Z","avatar_url":"https://github.com/AryanVBW.png","language":"EJS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Archon DNS Production Deployment Guide\n\nThis guide provides step-by-step instructions for deploying Archon DNS on an Ubuntu EC2 instance with auto-start capabilities.\n\n## Prerequisites\n\n- Ubuntu EC2 instance (Ubuntu 20.04 LTS or newer recommended)\n- Root or sudo access\n- Open ports:\n  - 53 TCP/UDP (DNS service)\n  - 3000 TCP (Web interface)\n  - 22 TCP (SSH access)\n\n## Automatic Installation\n\nFor a quick setup, use the provided installation script:\n\n1. SSH into your EC2 instance:\n   ```\n   ssh -i your-key.pem ubuntu@your-ec2-ip\n   ```\n\n2. Clone the repository:\n   ```\n   git clone https://github.com/AryanVBW/Archon-DNS.git\n   cd Archon-DNS\n   ```\n\n3. Make the installation script executable:\n   ```\n   chmod +x deployment/install.sh\n   ```\n\n4. Run the installation script:\n   ```\n   sudo ./deployment/install.sh\n   ```\n\n5. Follow the prompts to configure your admin credentials.\n\n## Manual Installation\n\nIf you prefer to install manually, follow these steps:\n\n### 1. Update your system\n```\nsudo apt update\nsudo apt upgrade -y\n```\n\n### 2. Install Node.js and MongoDB\n```\ncurl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -\nsudo apt-get install -y nodejs\nsudo apt-get install -y mongodb\nsudo systemctl start mongodb\nsudo systemctl enable mongodb\n```\n\n### 3. Clone and set up the application\n```\nsudo mkdir -p /opt/archon-dns\nsudo chown ubuntu:ubuntu /opt/archon-dns\ngit clone https://github.com/AryanVBW/Archon-DNS.git /opt/archon-dns\ncd /opt/archon-dns\nnpm install --production\n```\n\n### 4. Configure environment variables\n```\ncp deployment/.env.production .env\n```\n\nEdit the `.env` file to set your custom settings:\n```\nnano .env\n```\n\n### 5. Set up the systemd service\n```\nsudo cp deployment/archon-dns.service /etc/systemd/system/\nsudo sed -i 's|/home/ubuntu/Archon-DNS|/opt/archon-dns|g' /etc/systemd/system/archon-dns.service\nsudo systemctl daemon-reload\nsudo systemctl enable archon-dns\nsudo systemctl start archon-dns\n```\n\n### 6. Configure firewall\n```\nsudo ufw allow 53/tcp\nsudo ufw allow 53/udp\nsudo ufw allow 3000/tcp\n```\n\n## EC2 Configuration Requirements\n\nFor Archon DNS to function properly on your EC2 instance, make the following adjustments:\n\n1. **Security Group Configuration**:\n   - Allow inbound traffic on port 53 (TCP/UDP) for DNS service\n   - Allow inbound traffic on port 3000 (TCP) for the web interface\n   - Allow inbound traffic on port 22 (TCP) for SSH access\n\n2. **Elastic IP (Recommended)**:\n   - Assign an Elastic IP to your instance for a static public IP address\n   - This ensures your DNS server has a consistent address\n\n3. **IAM Role (Optional)**:\n   - If you plan to use AWS services like S3 for backups, attach an appropriate IAM role\n\n## Testing Your Installation\n\n1. **Check if the service is running**:\n   ```\n   sudo systemctl status archon-dns\n   ```\n\n2. **View logs**:\n   ```\n   sudo journalctl -u archon-dns\n   ```\n\n3. **Test DNS resolution**:\n   ```\n   dig @localhost example.com\n   ```\n\n4. **Access the web interface**:\n   Open a browser and navigate to `http://your-ec2-ip:3000`\n\n## Troubleshooting\n\n### Service fails to start\n- Check logs: `sudo journalctl -u archon-dns`\n- Verify MongoDB is running: `sudo systemctl status mongodb`\n- Check permissions: `ls -la /opt/archon-dns`\n\n### DNS resolution not working\n- Verify port 53 is open: `sudo lsof -i :53`\n- Check if another service is using port 53: `sudo netstat -tulpn | grep 53`\n- If systemd-resolved is using port 53, you may need to disable it:\n  ```\n  sudo systemctl disable systemd-resolved\n  sudo systemctl stop systemd-resolved\n  ```\n\n### Web interface not accessible\n- Check if the service is running: `sudo systemctl status archon-dns`\n- Verify port 3000 is open in your security group\n- Check the application logs for errors\n\n## Maintenance\n\n### Updating the application\n```\ncd /opt/archon-dns\ngit pull\nnpm install --production\nsudo systemctl restart archon-dns\n```\n\n### Backing up your data\nTo backup your MongoDB database:\n```\nmongodump --db archon-dns --out /backup/path\n```\n\n### Monitoring\nConsider setting up monitoring using tools like:\n- AWS CloudWatch\n- Prometheus and Grafana\n- Simple monitoring with cron jobs and email alerts\n\n## Security Recommendations\n\n1. **Change default credentials**:\n   - Update the admin password immediately after installation\n   - Use a strong, unique password\n\n2. **Secure MongoDB**:\n   - Enable authentication for MongoDB\n   - Restrict network access to the MongoDB port\n\n3. **Use HTTPS for the web interface**:\n   - Set up Nginx as a reverse proxy with Let's Encrypt SSL\n\n4. **Regular updates**:\n   - Keep your system and the application updated\n   - Subscribe to security announcements for Ubuntu and Node.js\n\n## Support and Maintenance\n\nFor issues or questions, please open an issue on the GitHub repository or contact the maintainer.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faryanvbw%2Farchon-dns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faryanvbw%2Farchon-dns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faryanvbw%2Farchon-dns/lists"}