Unraid

The GetPublicIP plugin forwards ports on your public IP address to the apps on your Unraid server, and to other devices on your network. It adds a settings page where you choose each app and port from a list, and runs GetPublicIP as a container next to your other apps.

The plugin is in beta. If something doesn't work, contact us and tell us what happened.

Before you start

  • Unraid 7.0 or later.
  • Your IP address's API key. See Create an API Key.
  • Docker turned on, in Settings › Docker.
  • The key not in use anywhere else. One key runs one tunnel: if another computer or Docker host uses it, stop GetPublicIP there first.

Install the plugin

  1. In Unraid, open the Plugins tab and choose Install Plugin.
  2. Paste this address and click Install:
    https://repo.getpublicip.com/unraid/getpublicip.plg
    

    The Install Plugin tab, with the GetPublicIP plugin's address in the URL field and the Install button next to Force Install
  3. When the window says GetPublicIP is installed, click Done.
    The finished Install Plugin window, saying GetPublicIP 2026.11.07 is installed and to open Settings › Network Services › GetPublicIP, with the Done button

Set it up

Open Settings › Network Services › GetPublicIP.

The Network Services section of Unraid's Settings tab, with the GetPublicIP icon between FTP Server and Outgoing Proxy Manager

  1. Paste your API key under API key.
  2. Click Add mapping and fill in the row, as in the table below. Add a row for each port you want to forward.
    The Port mappings table with two rows, Jellyfin on public port 8096 and a new row for Jellyfin on public port 8920, each with its Goes to address filled in
  3. Leave Autostart on, so GetPublicIP starts again after a reboot.
  4. Click Apply.
ColumnWhat to enter
AppThe app and port the mapping goes to. The list shows the apps on your server and their ports. Choose Other destination for anything else.
Public portThe port visitors connect to on your public IP address. A range, such as 60000-60099, forwards each port to the same port.
ProtocolTCP, UDP or both.
IP versionIPv4. See IPv6.
Goes toFilled in for you from the app you chose.

The page creates the GetPublicIP container, which then appears on the Docker tab. Once the tunnel is up, usually within a few seconds, Status says Connected and shows your public address.

The GetPublicIP page while connected: Status with the address it's connected to, its public addresses and the agent version, the saved API key, a mapping to Jellyfin with a green tick in the Check column, and the Apply and Reset buttons

Which apps are listed

The appIn the listNotes
On the host networkYes
On a bridge network, with its port published on your serverYes, as the port it publishesMost Unraid apps are set up like this.
On a bridge network, with its port not publishedGreyed outPublish the port in the app's settings on the Docker tab, or put the app on the host network.
With its own address on br0YesNeeds host access to custom networks, below.
A VM, or another device on your networkChoose Other destinationEnter its IPv4 address and port.

A second mapping with Other destination chosen, sending public port 8080 to port 8080 at 192.168.1.50

Unraid keeps apps with their own address on br0 apart from the server itself, and GetPublicIP reaches them through the server. Until you turn on host access to custom networks, their mappings fail with no route to host, and the page warns you next to the app. To turn it on:

  1. Go to Settings › Docker, set Enable Docker to No, and click Apply.
  2. Switch on Advanced View, set Host access to custom networks to Enabled, and click Apply.
  3. Set Enable Docker back to Yes and click Apply.

The Check column

After you apply, the page asks GetPublicIP whether each mapping reaches its app:

  • A green tick: the app answered.
  • A red cross: it didn't, and the reason is under the row. nothing listens means the app is stopped, or listens on a different port. An app inside a container must listen on 0.0.0.0, not 127.0.0.1.

Click Check under Status to check again, for example after starting an app.

Changing your mappings

Change the table and click Apply. Reset discards changes you haven't applied. Applying re-creates the GetPublicIP container, so your public address stops answering for a few seconds.

If you apply again within a minute or two of a change, Status can say Restarting for about a minute. Your address is still applying the earlier change, and GetPublicIP starts again on its own once it has. Click Log to see what it's doing.

Updates

The plugin updates from the Plugins tab, like your other plugins.

GetPublicIP itself runs from a container image, which has updates of its own. Status shows its version and whether a newer one is out, from the same check the Docker tab makes. Check for updates checks now, and Update downloads the new version and restarts GetPublicIP with your settings. Updating from the Docker tab does the same.

Tunnel MTU

Leave this empty unless the tunnel is up but nothing gets through it. That happens when your connection carries smaller packets than the tunnel needs: the log shows TLS handshake timeout, and your mappings never take effect. When the page sees this, it suggests a value.

  1. Open Advanced, under the table.
  2. Set Tunnel MTU to 1280 and click Apply.
    The Advanced section open, with 1280 entered under Tunnel MTU, the tunnel's current MTU of 1396 below it, and the Apply button

After the next check, the page shows the tunnel's MTU. If GetPublicIP is too old for this setting, the page says so: click Update under Status.

IPv6

GetPublicIP reaches the apps on your server and the devices on your network by their IPv4 addresses. So mappings to them are IPv4 only: visitors reach them on your public IPv4 address, and the page doesn't offer IPv6 for them.

Remove GetPublicIP

  1. On the Plugins tab, remove the GetPublicIP plugin. The GetPublicIP container stays and keeps running.
  2. To stop using GetPublicIP, remove the GetPublicIP container from the Docker tab as well.

Troubleshooting

  • Status says Not connected or Restarting. Click Log: the log says what went wrong. Right after a change, give it a minute or two.
  • A mapping's check is red. Read the reason under its row. Most often the app is stopped, listens on 127.0.0.1 only, or is on br0 without host access.
  • The tunnel is up, but the log shows TLS handshake timeout. Set Tunnel MTU.
  • Both this server and another computer keep reconnecting. They're using the same API key. Use one key per server.

If you're still stuck, contact us with the log.