LibrePortal
Sponsor
Install

LibrePortal IP

What's My IP Service

LibrePortal IP answers one question, "what address am I coming from?", as a single line of plain text. It's for servers and scripts that need to know their own public address, so they can ask a server you run instead of a lookup service run by someone else.

On this page
  1. At a glance
  2. What it's good for
  3. Asking it
  4. Good to know
  5. Addresses and ports
  6. Settings
  7. In its config file
  8. Works with
  9. Privacy and security
  10. What leaves this server
  11. What LibrePortal turns off
  12. Sources
  13. Under the hood

Good to know before you install

Behind a proxy or relay other than this server's own Traefik, it answers with that proxy's address rather than the caller's.

At a glance#

What it is
What's My IP Service Networking · made by the LibrePortal project
Where it opens
Your IP Address On its own port at http://your-server:port, or ip.your-domain once you have a domain
Updates
Automatic A backup is taken first, and it rolls back if the update fails
Backups
Left out Not in the scheduled backups unless you switch it on
Copies
One per server

What it's good for#

A machine at home behind a router doesn't know its own internet address. Only the router has it. The usual answer is to ask one of the many "what's my IP" websites, which means telling a stranger every time you look. LibrePortal IP is the same service, run by you: it looks at who's asking and sends their address back, and that's all it does.

LibrePortal itself needs this answer now and then, for example to check whether a domain points at your server or to offer to add the address you're browsing from to your trusted places. By default it asks the one the LibrePortal project runs at ip.libreportal.org. Nothing else is asked, on purpose. The Public Address Lookup setting in LibrePortal's network settings is where that address lives, and emptying it means LibrePortal never asks anyone.

It answers with the address it sees

The service can only report the address a request arrives from. Ask your own copy from a laptop on your home network and you'll get your laptop's home address, like 192.168.1.20, because the request never left the house. It becomes useful when the asker is somewhere else: a server at a friend's house, a VPS asking about itself, or your home server asking a copy on a VPS. So the natural place for it is a server with its own public address, and the natural customers are your other servers.

Asking it#

There's nothing to sign in to and nothing to set up. Press the Your IP Address button on its page to see it in a browser, or ask from a terminal:

curl http://192.168.1.50:5170/

Use your server's address and the port shown on the app's Config tab. The answer is the address and a new line, nothing more, so a script can use it as it is:

MY_IP=$(curl -fsS https://ip.example.com/)

With a domain and Traefik, it's served at ip.<your domain> over HTTPS. Its own port stays on plain http:// whatever your server's HTTPS setting, because scripts ask it with a bare curl, and a redirect to a certificate they don't trust would break every one of them.

To point LibrePortal on another server at your copy, put its address (for example https://ip.example.com/) in that server's Public Address Lookup setting.

Good to know#

  • It keeps nothing. There's no access log, and even refused or rate-limited requests leave no address behind. There's nothing to back up, so it's left out of backups.
  • It stays public. Other people's servers are the ones asking, so "new apps start private" leaves it alone. It only ever says a caller's own address back to them.
  • One caller, ten questions a second. Each address can ask ten times a second, with a little leeway for a script that asks a few times in a row. Beyond that it answers 429 until the caller slows down.
  • Only this server's Traefik is believed. When a request comes through Traefik, the real caller's address is taken from the header Traefik adds, and from no one else, so nobody can choose their own answer. If Traefik is installed or removed later, LibrePortal IP notices the next time it starts. Behind any other proxy or relay, it answers with that proxy's address instead, as the note at the top says.
  • Web pages can ask it too. It allows requests from any site, so a page in someone's browser can fetch the answer directly. Only GET and HEAD are accepted.
  • One per server, updated automatically. It's nginx's own unprivileged image with a small configuration file from LibrePortal, which is rewritten on every install and start, so edits to it don't last.

Addresses and ports#

LibrePortal IP has one port. LibrePortal picks a free port number for each when you install, so yours will differ from anyone else's. The Config tab's Network section shows them, and the app's Open button uses the right one. "Anyone" means it's reachable from wherever your server is reachable; you can make it private later.

What it isWho can reach itWith a domain
Your IP Address Anyone ip.your-domain

Settings#

In its config file#

LibrePortal IP's own settings aren't on the Config tab yet. They live in the app's config file, described here so you know they exist. How to change them.

SettingWhat it doesStarts as
Name
CFG_LIBREPORTAL_IP_DISPLAY_NAME
What this app is called on your dashboards. Leave empty to use its usual name Empty
Show on the LibrePortal Dashboard
CFG_LIBREPORTAL_IP_SHOW_ON_DASHBOARD
Whether this app gets a shortcut on the front page of the LibrePortal WebUI, separate from any Dashy dashboard
Choices: true, false
false

Works with#

These are the other apps LibrePortal IP knows how to work with. Once it's installed, its page shows the same list with whether each one is connected. How this works.

  • Grafana: Shows dashboards for the apps that have one. works with every app
  • Prometheus: Collects metrics from the apps that can export them. works with every app
  • Uptime Kuma: Watches your apps and shows when one goes down. works with every app

Privacy and security#

All clear LibrePortal IP tells a caller its own public address as plain text, from your server. It keeps no log and contacts nothing outside.

What leaves this server#

Nothing leaves this server on its own.

What LibrePortal turns off#

Nothing needed switching off.

Licence: AGPL-3.0-or-later. Audited: 21 October 2026. See the privacy of every app and the Promise.

Sources#

Under the hood#

  • It runs this image: nginxinc/nginx-unprivileged:1.30.6-alpine@sha256:f5116ed4606f3eb015dd4a8e28cb9b351476dc0ad4bc6e9f93b19cec130cdf03.
  • It can sit behind Authelia's sign-in once Authelia is installed.

Ports, settings, tools and connections on this page are read from LibrePortal v0.10.97's app catalogue each time the guide is built.

Next steps