e0f561de0915922f63a69e4f1032c9a60780e552
OVH DNS Manager
A modern, multi-account DNS manager for OVH with automatic IP updates. Built with Next.js, React, and Tailwind CSS.
✨ Features
- 🌐 Multi-Account Support: Manage DNS records across multiple OVH accounts
- 🔄 Bulk Updates: Update multiple DNS records simultaneously (IPv4/IPv6)
- 📊 Real-time Monitoring: Track your public IP addresses from multiple providers
- 🤖 Automatic Updates: Automatically update DNS records when your IP changes
- 🎨 Modern UI: Beautiful, responsive interface built with Tailwind CSS
- ⚡ Fast: Built with Next.js for optimal performance
- 🔒 Secure: Local configuration storage, credentials never leave your server
🚀 Getting Started
Prerequisites
- Node.js 18.x or higher
- npm or yarn
- OVH API credentials (Get them here)
Installation
- Clone the repository:
git clone <repository-url>
cd ovh-dns
- Install dependencies:
npm install
- Create your configuration file:
cp config.example.json config.json
- Edit `config.json` with your OVH API credentials:
{
"ovhAccounts": [
{
"id": "account1",
"name": "My Account",
"appKey": "YOUR_APP_KEY",
"appSecret": "YOUR_APP_SECRET",
"consumerKey": "YOUR_CONSUMER_KEY",
"endpoint": "ovh-eu",
"domains": ["example.com"]
}
]
}
- Run the development server:
npm run dev
- Open http://localhost:3000 in your browser
Production Build
npm run build
npm start
📖 Usage
Managing DNS Records
- Select a Domain: Choose a domain from the dropdown
- View Records: See all DNS records for the selected domain
- Add Record: Click "Add Record" to create a new DNS entry
- Edit Record: Click the edit icon on any record to modify it
- Delete Record: Click the trash icon to remove a record
- Bulk Update: Select multiple records and update their IPs in one action
Bulk IP Updates
- Select multiple records using checkboxes
- Click "Update X selected record(s)"
- Choose record type (A for IPv4 or AAAA for IPv6)
- Enter the new IP address
- Click "Update" to apply changes
Automatic IP Updates
- Go to Settings
- Enable IP providers (e.g., ipify.org, icanhazip.com)
- Configure automatic updates:
- Enable automatic updates
- Set check interval (in seconds)
- Specify target domains
- The system will periodically check your public IP and update DNS records
Multi-Account Configuration
Add multiple OVH accounts in Settings to manage DNS across different accounts:
- Click "Add Account"
- Enter account details (App Key, App Secret, Consumer Key)
- Select the OVH endpoint (EU, CA, US)
- Add domains associated with this account
🔧 Configuration
OVH API Credentials
You need to create an OVH API application:
- Go to https://eu.api.ovh.com/createToken/
- Fill in the application details
- Grant the following permissions:
- GET /domain/zone/*
- POST /domain/zone/*
- PUT /domain/zone/*
- DELETE /domain/zone/*
- Save your credentials in `config.json`
IP Providers
The application supports multiple IP providers for fetching your public IP:
- ipify.org (default)
- icanhazip.com
- Custom providers (add your own URLs)
You can enable/disable providers and configure custom endpoints in Settings.
🛠️ Technology Stack
- Framework: Next.js 16.0
- UI Library: React 19
- Styling: Tailwind CSS 3.4
- Icons: Lucide React
- HTTP Client: Native Fetch API
- OVH API: ovh package
📁 Project Structure
ovh-dns/
├── app/
│ ├── api/ # API routes
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Main page
│ └── globals.css # Global styles
├── components/
│ ├── DNSManager.js # DNS management interface
│ └── Settings.js # Settings interface
├── lib/
│ ├── ovh-service.js # OVH API service
│ └── ip-monitor-service.js # IP monitoring service
├── public/ # Static assets
├── config.json # Configuration (not in git)
└── config.example.json # Configuration template
🐛 Troubleshooting
DNS Records Not Loading
- Check your OVH API credentials
- Verify the domain exists in your OVH account
- Check the browser console for errors
IP Detection Not Working
- Ensure at least one IP provider is enabled
- Check your internet connection
- Try a different IP provider
Configuration Not Saving
- Verify file permissions for `config.json`
- Check server logs for errors
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- OVH for their excellent API
- Next.js team for the amazing framework
- All contributors and users of this project
📞 Support
If you encounter any issues or have questions, please open an issue on GitHub.
Made with ❤️ for the DNS management community
Languages
JavaScript
94.3%
TypeScript
3.9%
CSS
1.8%