external-ip

external-ip

Docker app from xavierh's Repository

Overview

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.

Docker container that retrieves your external IP address via DIG/curl with optional pushover alert and Apprise support

Gets external IP via DIG command ( opendns , cloudflare, google ) or via curl ( ipify ) 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

Github Repo


Built-In Pushover Example

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

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, IPIFY (uses curl -s -k https://api.ipify.org)
-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

Download Statistics

15,112
Total Downloads
652
This Month
892
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Details

Repository
xavierh/external-ip
Last Updated2026-09-05
First Seen2022-07-07

Runtime arguments

Network
bridge
Shell
sh
Privileged
false

Template configuration

TZVariable

Container Variable: TZ

Default
America/Chicago
Value
America/Chicago
DELAYVariable

Container Variable: DELAY

Default
5m
Value
5m
PROVIDERVariable

Container Variable: PROVIDER

NOTIFICATION_TYPEVariable

Container Variable: NOTIFICATION_TYPE

PUSHOVER_TOKENVariable

Container Variable: PUSHOVER_TOKEN

PUSHOVER_USERVariable

Container Variable: PUSHOVER_USER

PUSHOVER_TITLEVariable

Container Variable: PUSHOVER_TITLE

RECOVERY_ALERTVariable

Container Variable: RECOVERY_ALERT