SmartDNS Manager is a web-based interface to manage your Smart DNS service using Docker, Nginx, and Flask. It allows non-technical users to easily add or remove domains for DNS resolution, reload DNSMasq, and manage settings through a simple UI.
- Add and remove domains to DNSMasq dynamically.
- Reload DNSMasq through the web interface.
- SSL support using Nginx as a reverse proxy.
- Authentication for secure access.
- Easy to deploy using Docker and Docker Compose.
- A Linux VPS
- A domain name
- Docker and Docker Compose
Provision a Linux-based VPS (Ubuntu, Debian, etc.) from any hosting provider.
Purchase a domain name and configure its DNS settings to point to your VPS IP.
On your VPS, install Docker and Docker Compose:
git clone https://github.com/a-farahani/Smart-DNS-Manager.git
Complete the .env
files in the project root:
-
.env: Set the timezone.
TimeZone='Your/TimeZone'
-
.env.nginx: Configure the domain and SSL certificate files.
DOMAIN='your-domain.com' CERTIFICATE_FILENAME='fullchain.pem' PRIVATEKEY_FILENAME='privkey.pem'
-
.env.web: Set the Flask secret key, admin username, password, and VPS IP.
FLASK_SECRET_KEY='your-secret-key' FLASK_USERNAME='admin' FLASK_PASSWORD='password' MY_VPS_IP='your-vps-ip'
Place your SSL certificates in the ssl directory, replacing fullchain.pem and privkey.pem with your own.
docker compose build
docker compose up -d
Once the services are up, the application should be accessible at https://your-domain.com. You can log in using the credentials set in the .env.web file.
Once the application is running, you can manage the DNS records through the web interface.
-
Access the Web Interface: Open your browser and navigate to
https://your-domain.com
. -
Login: Use the credentials defined in the
.env.web
file:- Username:
admin
- Password:
password
- Username:
-
Add a Domain:
- Enter the domain name in the input field.
- Click on the "Add Domain" button. This will add the domain to the
proxy.conf
file.
-
Delete a Domain:
- Click the "Delete" button next to the domain you want to remove.
- The domain will be removed from the
proxy.conf
file.
-
Reload DNSMasq:
- Click the "Reload DNSMasq" button to apply the changes. This will restart the DNSMasq container.
This project is licensed under the terms of the Apache License 2.0. See the LICENSE file for details.