Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/michaelpalacce/goip
Automatically updates IP address in various dns providers.
https://github.com/michaelpalacce/goip
Last synced: about 1 month ago
JSON representation
Automatically updates IP address in various dns providers.
- Host: GitHub
- URL: https://github.com/michaelpalacce/goip
- Owner: Michaelpalacce
- Created: 2023-11-12T10:53:24.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-07-15T16:57:32.000Z (7 months ago)
- Last Synced: 2024-11-06T15:59:53.382Z (3 months ago)
- Language: Go
- Size: 43.9 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# goip
A multi provider dns ip address updater.
## Inspiration
My ISP has a fee for static IPs. I don't want to pay that fee
## What Is It?
This tool will query `https://icanhazip.com` and listen for changes. If any changes are detected, it will set the IP in the chosen provider.
The configuration file for the providers must be stored either in `/app/config.json`, or project root `./config.json`## Roadmap
- [ ] More providers?
- [x] Container Image
- [x] More details how to run this
- [x] Notifications
- [x] Fallback to `https://ifconfig.me/ip`## Getting Started
### Docker
```bash
docker run -e CLOUDFLARE_API_TOKEN={{TOKEN}} -v ./config.json:/app/config.json stefangenov/goip
```### From Source
```bash
go run main.go
```
> This will start `goip` with the default provider `cloudflare` and check for updates every 15 minutes.## Notifications
### Webhook
Currently only webhook notifications are supported.
| Name | Value | Description |
|---|---|---|
| WEBHOOK_URL | - | The webhook to which to post when an update happens |## Providers
Providers are what tells goip how to handle the change in IP address.
### Cloudflare
Cloudflare provider gives you the ability to work with multiple zones at the same time as well as multiple records in each zone.
The provider also gives you the ability to partially configure parameters of the created record.#### Environment
The following env variables must be present:
- `CLOUDFLARE_API_TOKEN`: This must be a token that has `Zone.DNS` permissions
#### Configuration
```json
{
"cloudflare": {
"zones": [
{
"name": "mywebsite.com",
"records": [
{
"name": "mywebsite.com",
"proxied": true
},
{
"name": "subdomain.mywebsite.com",
"proxied": true
}
]
}
]
}
}```