A dynamic DNS management tool that automatically updates your Cloudflare DNS records with your machine's current IP address. Perfect for home servers and dynamic IP environments.
- 🌐 Automatic IP detection and DNS synchronization
- ⚡ Real-time DNS record management (Create, Update, Delete)
- 🔄 Configurable sync interval (1-1440 minutes)
- 🛡️ Cloudflare proxy toggle (Orange Cloud/Proxied vs Direct)
- 📊 Visual status monitoring with sync history
- 🔐 Secure credential storage (local browser storage)
- Clone the repository
git clone https://github.com/swarfte/cloudflare-ip-monitor.git- Navigate to the project directory
cd cloudflare-ip-monitor- Build the Docker image
docker build -t cloudflare-ip-monitor .- run the Docker container
docker run -d \
--name cloudflare-ip-monitor \
-p 8123:8123 \
-e PORT=8123 \
cloudflare-ip-monitor- Clone the repository
git clone https://github.com/swarfte/cloudflare-ip-monitor.git- Navigate to the project directory
cd cloudflare-ip-monitor- Install dependencies
npm install- Create .env file to set the port
PORT=8123- Run the application
npm run build
npm run preview- Get your Zone ID from Cloudflare dashboard
- Create API token with:
- Permissions: Zone -> DNS -> Edit
- Zone Resources: Include -> All zones
- Create API token guide
-
Initial Setup
- Click the gear icon ⚙️ to configure Cloudflare credentials
- Set your preferred sync interval (default: 5 minutes)
-
Manage DNS Records
- Click "+ Add Record" to create new A records
- Toggle proxy status with the cloud icon
- Delete records using the trash can icon 🗑️
-
Automatic Syncing
- Click "Start Sync Task" to begin automatic updates
- Current IP and next sync time shown in header
-
Manual Operations
- Force immediate sync using the "Start Sync Task" button
- Monitor sync status through color-coded indicators:
- 🟢 Success | 🔴 Failed | ⚪ Not synced
- Frontend: Vue.js 3 + Nuxt.js
- UI Framework: Tailwind CSS
- Cloudflare API Integration
- IP Detection Service: icanhazip.com
Contributions welcome! Please follow these steps:
- Fork the repository
- Create feature branch (git checkout -b feature/your-feature)
- Commit changes (git commit -m 'Add some feature')
- Push to branch (git push origin feature/your-feature)
- Open a pull request
This project is licensed under the MIT License. See the LICENSE file for details.
This project is for educational purposes only. Use at your own risk. The author is not responsible for any data loss or damage caused by the use of this software. This project is not affiliated with Cloudflare, Inc. Use at your own responsibility.
