diff --git a/config/ansible/tasks/global/utils/ipaddr b/config/ansible/tasks/global/utils/ipaddr index 3a9552b..8817a54 100755 --- a/config/ansible/tasks/global/utils/ipaddr +++ b/config/ansible/tasks/global/utils/ipaddr @@ -117,7 +117,7 @@ def get_external_ips(): tuple: A tuple containing the IPv4 and IPv6 addresses as strings. If either address cannot be fetched, it will be set to "Unavailable". """ - services = ["https://ifconfig.co", "https://ifconfig.io", "https://ifconfig.me"] + services = ["https://ifconfig.co", "https://api.ipify.org", "https://myexternalip.com/raw", "https://ifconfig.io", "https://ifconfig.me"] headers = {"User-Agent": "curl"} ipv4, ipv6 = "Unavailable", "Unavailable" diff --git a/config/ansible/tasks/servers/server.yml b/config/ansible/tasks/servers/server.yml index 4e1e018..2a1e20f 100644 --- a/config/ansible/tasks/servers/server.yml +++ b/config/ansible/tasks/servers/server.yml @@ -43,3 +43,5 @@ enabled: true - name: wireguard enabled: true + - name: echoip + enabled: true diff --git a/config/ansible/tasks/servers/services/caddy/Caddyfile.j2 b/config/ansible/tasks/servers/services/caddy/Caddyfile.j2 index e3b2fa6..86c6202 100644 --- a/config/ansible/tasks/servers/services/caddy/Caddyfile.j2 +++ b/config/ansible/tasks/servers/services/caddy/Caddyfile.j2 @@ -62,3 +62,8 @@ fladder.mvl.sh { reverse_proxy fladder:80 tls {{ caddy_email }} } + +ip.mvl.sh { + reverse_proxy echoip:8080 + tls {{ caddy_email }} +} diff --git a/config/ansible/tasks/servers/services/echoip/docker-compose.yml.j2 b/config/ansible/tasks/servers/services/echoip/docker-compose.yml.j2 new file mode 100644 index 0000000..8214f8b --- /dev/null +++ b/config/ansible/tasks/servers/services/echoip/docker-compose.yml.j2 @@ -0,0 +1,7 @@ +services: + echoip: + container_name: 'echoip' + image: 'mpolden/echoip:latest' + restart: unless-stopped + ports: + - '8585:8080' diff --git a/config/ansible/tasks/servers/services/echoip/echoip.yml b/config/ansible/tasks/servers/services/echoip/echoip.yml new file mode 100644 index 0000000..8676715 --- /dev/null +++ b/config/ansible/tasks/servers/services/echoip/echoip.yml @@ -0,0 +1,27 @@ +--- +- name: Deploy EchoIP service + block: + - name: Set EchoIP directories + ansible.builtin.set_fact: + echoip_service_dir: "{{ ansible_env.HOME }}/services/echoip" + + - name: Create EchoIP directory + ansible.builtin.file: + path: "{{ echoip_service_dir }}" + state: directory + mode: "0755" + + - name: Deploy EchoIP docker-compose.yml + ansible.builtin.template: + src: docker-compose.yml.j2 + dest: "{{ echoip_service_dir }}/docker-compose.yml" + mode: "0644" + register: echoip_compose + + - name: Stop EchoIP service + ansible.builtin.command: docker compose -f "{{ echoip_service_dir }}/docker-compose.yml" down --remove-orphans + when: echoip_compose.changed + + - name: Start EchoIP service + ansible.builtin.command: docker compose -f "{{ echoip_service_dir }}/docker-compose.yml" up -d + when: echoip_compose.changed