Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xavier-hernandez/docker-external-ip

Get external IP via DIG command ( opendns , cloudflare, google ) with pushover notification on change
https://github.com/xavier-hernandez/docker-external-ip

bash curl dig ip pushover pushover-notification pushover-notifications

Last synced: 3 days ago
JSON representation

Get external IP via DIG command ( opendns , cloudflare, google ) with pushover notification on change

Awesome Lists containing this project

README

        

# Docker container that retrieves your external IP address via DIG with optional pushover alert and Apprise support
Gets external IP via DIG command ( opendns , cloudflare, google ) on a scheduled basis that can be customized. Also includes the ability to alert you via pushover if the IP changes.

Example from docker logs
```
Starting...
Setting sleep delay...
IP: 00.00.00.00 [CHANGE]

Sending pushover message...
{"status":1,"request":"gfdgdf-gdfg-gdfgd-dfgd-fgdfgd"}

IP: 00.00.00.00
dig: couldn't get address for 'ns1.google.com': not found

[Error or Invalid IP address]
dig: couldn't get address for 'ns1.google.com': not found

[Error or Invalid IP address]
IP: 00.00.00.00 [RECOVERY]
IP: 00.00.00.00
IP: 00.00.00.01 [CHANGE]

Sending pushover message...
{"status":1,"request":"gfdgdf-gdfg-gdfgd-dfgd-fgdfgd"}

IP: 00.00.00.01
```
---

## **Docker**
- Image: https://hub.docker.com/r/xavierh/external-ip
- OS/ARCH
- linux/amd64
- linux/arm/v7
- linux/arm64/v8
- Tags: https://hub.docker.com/r/xavierh/external-ip/tags
- stable - xavierh/external-ip:latest

## **Github Repo**
- https://github.com/xavier-hernandez/docker-external-ip

---

**Built-In Pushover Example**
```yml
external_ip:
image: xavierh/external-ip:latest
container_name: external_ip
restart: always
environment:
- TZ=America/New_York
- RECOVERY_ALERT=True/False #optional, default is False
- DELAY=5m #optional, default is 5 minutes
- PROVIDER=CLOUDFLARE #optional, default is cloudflare
- NOTIFICATION_TYPE=PUSHOVER #optional
- PUSHOVER_TOKEN=token #optional
- PUSHOVER_USER=user #optional
- PUSHOVER_TITLE=title #optional, if using PUSHOVER
- SAVE_IP=True #optional
volume:
- /path/to/data:/stor-external-ip #optional but required if using SAVE_IP
```
**APPRISE Example**
```yml
external_ip:
image: xavierh/external-ip:latest
container_name: external_ip
restart: always
environment:
- TZ=America/New_York
- RECOVERY_ALERT=True/False #optional, default is False
- DELAY=5m #optional, default is 5 minutes
- PROVIDER=CLOUDFLARE #optional, default is cloudflare
- NOTIFICATION_TYPE=APPRISE #optional
- APPRISE_TITLE=title #optional, if using APPRISE
- APPRISE_1=pover://user@token #required if using APPRISE
- APPRISE_2=pushed://appkey/appsecret/ #optional
- APPRISE_3=discord://webhook_id/webhook_token #optional
- APPRISE_...=pover://user@token #optional, up to 10
```

| Parameter | Function |
|-----------|----------|
| `-e RECOVERY_ALERT=True/False` | (Optional) Used when NOTIFICATION_TYPE is set.

If the docker container cannot connect to the internet or retrieve an IP address a flag is set. Once the connection has been re-established or an IP address is retrieved a notification will be sent and the flag cleared. The IP address might be the same or different. If you do not wish to receive a notification when retrieving an IP fails mark it as FALSE.

Options: True, False |
| `-e DELAY=5m` | (Optional) Using standard sleep command.

Options: X (X seconds), Xm (X minutes), Xh (5 hours), and Xd (days) |
| `-e PROVIDER=CLOUDFLARE` | (Optional)

Options: CLOUDFLARE, GOOGLE, OPENDNS |
| `-e NOTIFICATION_TYPE=PUSHOVER` | (Optional)

Options: PUSHOVER,APPRISE |
| `-e PUSHOVER_TOKEN=` | (Required if NOTIFICATION_TYPE is set) |
| `-e PUSHOVER_USER=` | (Required if NOTIFICATION_TYPE is set) |
| `-e PUSHOVER_TITLE=` | (Optional) default message is "EXTERNAL IP" |
| `-e APPRISE_TITLE=` | (Optional) default message is "EXTERNAL IP" |
| `-e APPRISE_1=` | (1 is required) the app will read up to 10, i.e. APPRISE_2... APPRISE_10, use syntax from CLI syntax https://github.com/caronc/apprise |