How to Migrate Your Static IP's Off Heroku

We routinely receive questions about how to migrate your Static IP service off Heroku, yet maintain the same static IP’s and migrate with no downtime.

Moving to AWS instead of direct billing? This page covers the direct-billing path. If you are moving your Heroku app to AWS and want to bill through AWS Marketplace, follow our Heroku-to-AWS migration guide instead. The backend swap works the same way, only the billing setup differs.

Fortunately, it’s a very simple process, as our IP’s work with all cloud providers or with stand alone applications.

You can keep the same IP’s, same user/pass configuration, etc. We just need to do a little magic on the QuotaGuard side to make this work for each of your Heroku subscriptions.

As a preliminary step, go ahead and reach out to us to let us know that you’re planning on migrating, so we can start to do our magic in the background.

How long will this take you? About 15 to 20 minutes of active work on your end, and you can spread it over a day or two if you want to monitor traffic in between steps. The backend swap on our side runs whenever you tell us you’re ready, and from that go-ahead it takes about 2 minutes.

Below are the steps to make this work for your current Heroku Static IP’s.

Prepare to Migrate Heroku Static IP’s

Step 1. Sign up with QuotaGuard directly at our site.

Choose the same subscription plan and service (QG Static vs. QG Shield).

If you have multiple apps using different IP’s on Heroku, you’ll need multiple subscriptions on QuotaGuard too.

Please follow our article on how to add additional subscriptions.

When you sign up directly, you’ll receive a brand-new connection URL with temporary credentials. Don’t worry about those, your app will continue using the URL it already has on Heroku. We’ll explain what happens to those credentials below.

Step 2. Send an email to our Support team and let us know that you’ve signed up with QuotaGuard.com and that you’re going to migrate off Heroku.

We will exchange the subscriptions that you just signed for on QuotaGuard with the subscriptions that you have in Heroku.

  • This will allow you to keep your current IPs, configuration, and connection information.
  • If you are already on a Dedicated Proxy on Heroku, the process is the same. You will maintain your IPs, configuration, and connection information.
  • This is effectively a ‘hot swap’. Your current Heroku data will not be affected, there will be no downtime, and no interruptions will occur with your current or future requests processing through your Static IP’s.

What Happens During the Swap Window

The swap is entirely backend on our side. It runs whenever you tell us you’re ready, and from that go-ahead it takes about 2 minutes, has no downtime, and requires no action from your team during the window. Your existing Heroku QUOTAGUARDSTATIC_URL environment variable keeps routing the same traffic to the same IPs throughout, so the swap itself cannot cause a production issue.

Under the hood, the swap moves the ownership of your original subscription (with your real IPs and connection URL) onto your new direct QuotaGuard account. The temporary credentials from your direct sign-up move the other way and end up on the Heroku side of our backend, where they sit unused until you remove the add-on.

The only steps with any visible impact on your side (removing the Heroku add-on, restoring the env var) happen later, on your schedule, potentially days or weeks after we complete the swap.

Step 3. We will email you back on Support once the swap is completed on our side.

Step 4. Backup the Connection URL

(You can skip this step if you are only using our Inbound Proxy. Not sure? Go ahead and confirm it with us on your Support ticket).

Copy and save the contents of the QUOTAGUARDSTATIC_URL or QUOTAGUARDSHIELD_URL. You’ll use it in Step 7.

Via the Heroku CLI:

QG_URL=`heroku config:get -a APPNAME QUOTAGUARDSTATIC_URL`
# or
QG_URL=`heroku config:get -a APPNAME QUOTAGUARDSHIELD_URL`

echo $QG_URL

This is a precaution, not strictly required. The same URL is also visible in your direct QuotaGuard dashboard at quotaguard.com after the swap, so you can retrieve it from there if needed. Heroku will delete this environment variable when you eventually remove the add-on, so having it pre-saved keeps Step 7 quick and easy.

Step 5. Verify the Swap

After the swap completes, log into your direct QuotaGuard dashboard at quotaguard.com. You’ll see your subscription listed there, with the same connection URL your Heroku app has been using all along. That confirms the swap is done and your original credentials are now under your direct account.

If you instead open QuotaGuard from the Heroku Resources tab after the swap, you’ll see a different URL. That’s expected. The Heroku side of our backend now holds the temporary credentials from your direct sign-up. They’re not in use by your app, and they’ll be cleaned up automatically when you remove the Heroku add-on. You can safely ignore them.

Take Your Time Before Removing the Add-On

There is no rush to remove the Heroku add-on after the swap. We recommend confirming that normal traffic continues flowing through your same IPs, and watching that hold for an hour or two before you remove the add-on.

When you remove it, Heroku will delete the QUOTAGUARDSTATIC_URL environment variable, so you’ll need to set it back manually in Step 7. Use the value you backed up in Step 4, or copy it from your direct QuotaGuard dashboard (which is where your subscription now lives).

Step 6. Remove the Add-On on Heroku

When you are ready to formalize the changeover from Heroku to QuotaGuard, go ahead and remove the Add-On in Heroku.

Via the Heroku CLI:

heroku addons:destroy -a APPNAME quotaguardstatic
# or
heroku addons:destroy -a APPNAME quotaguardshield

Step 7. Reset the Configuration Variable (If you are only using the inbound proxy service, you can skip this step).

If you are using the outbound proxy, add the Configuration Variable back using the URL you saved from Step 4 (or copied from your direct dashboard).

Via the Heroku CLI:

heroku config:set -a APPNAME QUOTAGUARDSTATIC_URL=$QG_URL
# or
heroku config:set -a APPNAME QUOTAGUARDSHIELD_URL=$QG_URL

If you want us to be online when you make the change, reach out to Support so we can set up a time/date to be in contact with you.

If You Need to Roll Back

For the super cautious, or for when your manager wants a backup plan in writing, even though these migrations are routine and reliable.

Rollback is straightforward and depends on where you are in the process:

  • Before you’ve removed the Heroku add-on: Email Support and we’ll swap back. No change required on your side.
  • After you’ve removed the Heroku add-on: Re-provision the add-on in Heroku (Heroku will issue a new URL). Email Support and we swap back. Then restore your QUOTAGUARDSTATIC_URL env var to the original URL so your app stays on the original IPs.

In either case, the same IPs you started with remain assigned to your account throughout, so there is no risk of losing the addresses your downstream partners have whitelisted.

More questions we didn’t cover? Write us any time at Support.


Ready to Get Started?

Get in touch or create a free trial account

Back to top ↑

Copyright © 2009 - 2026 QuotaGuard. All rights reserved.