Domain Transfer and How it Went

Originally Posted 6/8/25

image of namecheaps logo. An orange N and next to it it says namecheap

Previous Setup

Originally I had my website domain (tanzi-media.com) purchased and hosted through Wordpress. When I made the Reverse Proxy post, I had purchased another domain to use as a Dynamic DNS domain through No-IP. Once I decided to move away from Wordpress, I moved this domain (tanzi-media) also into no-ip, so that all my domains were in one place. I had chosen no-ip because my router at the time only supoprted using No-ip or dyn.com for DDNS, and so I just sort of chose no-ip.

The Issue with the Setup

The setup was fine and it worked. However, as I started wanting to do more with domain (like setup CNAME records to be able to have, for example, freshrss.website.com), or email forwarding, it became clear to me no-ip was really nickel and diming everything. To add additional CNAME records you needed to purchase more domains basically (or like, it was treated as if they were all separate domains). So if you could have a total of 5 domains, each CNAME record used one of those slots (I will add the caveat this is my understanding, and I may have been wrong on this and just confused). For email forwarding, that was also an extra charge. These things alone weren't deal breakers - I could get around using cname records by using a wildcard domain / ssl certificate, and obviously for email I could just create a free gmail account. But they were things that bothered me that I couldn't do them. However, given my router only accepted one of two options for DDNS, there wasn't much else to do.

This past Christmas however, my dad bought me a Ubiquiti Cloud Gateway Ultra. I was very excited for this as I've been trying to do more with networking and Ubiqutii makes some prosumer stuff that I have loved getting to play around with. This router lets you choose from a much larger variety of DDNS providers.

Transferring to Namecheap

What kicked this off largely was I wanted to purchase another domain for a side project and wanted to see what else was out there. One of my friends and coworker uses Namecheap, and it seemed good enough for me! They had slightly cheaper rates than noip, but more importantly they included more with the price. Free email forwarding. Free cname records with the domain. I could do what I've wanted to do for a while for a cheaper price! I made sure I could access these features when I bought the new domain before transferring the old ones over, and once I saw I was able to get all of the settings I wanted, I got to work transferring things.

Transferring this domain was relatively straightforward - unlock the site so it can transfer, get a code from noip, put it into namecheap, bada bing bada boom it moved over. Updated some records using the info Neocities provides, and just like that the site was running again. Honestly I'd be surprised if anyone noticed any down time, but the switchover on this end took a matter of minutes once the domain was in namecheap.

Transferring the DDNS Domain

This... was a lot more of a pain. It starts with the fact I did not actually transfer the original domain. The original domain I was using for ddns was a Noip specific domain. So I instead just bought a new domain through Namecheap to use. With that, I had to make changes in the following places:

The Pain that is NGINX

picture of a flag that says we do this not because it is easy, but because we thought it would be easy

Bringing back that image because, just like the first time I messed with it, it started with "Surely this will be a quick fix". My face shortly after:

2 panel comic showing a house on fire with a cartoon dog saying 'this is fine' while sitting at a table with a cup of coffee

Now, I want to clarify, most of this pain is because I don't have a strong understanding of NGINX. But I went into it thinking "I'll just update the domains to the correct domains". How wrong I was. I also want to just mention I'm writing this a few hours after it happened, so my memory may not be 100% on the order of operations.

After getting the new certs, I updated the config to reference the new certs, changed the domain names to the new, correct domain, and renamed the file to match the new domain name. Tested NGINX and... failed. There was no link to the correct config file for the domain. My understanding here is there's two folders for nginx (in ubuntu at least). One that is something along the lines of "sites available" and "sites-enabled". A link is created between files there when you have a config for a site, and given I had just renamed one of the files, I ruined the linkage. Not quite sure how to fix that, I decided to just blow away NGINX and reinstall it. I had the config I used for my NGINX configuration saved elsewhere anyways, so I should be able to just uninstall and reinstall.

picture of a flag that says we do this not because it is easy, but because we thought it would be easy

It did not work. The config files were still there. So I tried to remove it again, using the following command:

That did the trick. Reinstalled NGINX following the instructions here, copy pasted my config and... nothing. Getting an error about it being unable to bind on ports 80 and 443 (http and https ports).

Okay, maybe a firewall issue? Remove NGINX from UFW ( using the numbered method listed here), added NGINX back to UFW (similar to how its done here.) Still nothing

Commands here in case the previous links get removed (for Ubuntu)
  1. Removing Nginx from UFW
    1. Display UFW firewall rules
    2. Remove a ufw firewall rule (replace # with the number of the rule you want to remove)
  2. Adding Nginx to UFW
    1. Get a list of apps for UFW
    2. Allow Nginx (I chose full since I use both HTTP and HTTPS)

At this point I was still getting a binding issue, and I had no clue why - Nginx was the only thing listening on 80 and 443 according to netstat (link here about this), so no clue why it's not working

Relevant Command just in case

Googling around, I eventually found a post of someone having a similar issue, and someone mentioned a command to basically fully kill NGINX running, and then starting nginx again, to see if it could then bind correctly. The idea (as far as I understand it), being that Nginx was getting stuck on something basically. The error message they were getting was slightly different than mine, as mine basically just said failure to bind with no further info, while there's mentioned it was specifically because the address was in use already. The command is:

Followed by the command to start Nginx:

And it worked! I was honestly shocked when it started. Now that it was working, I went into my configuration and un-commented out a fallback I had created if someone tried reaching my server but didn't use the correct address. I had it enabled for both port 80 and port 443, however when I'd run the

command, it would give me an error saying there was already a default port 80 option within the config. I had commented it out during this ordeal to see if that was possibly it, but now that it was working again I figured I should re-enable it, since it seems like that kill command is really what fixed the issue. And then... it stopped working again.

2 panel comic showing a house on fire with a cartoon dog saying 'this is fine' while sitting at a table with a cup of coffee

Same error. Can't bind. What I really don't understand, is before all of this, that bit of the config was working fine. But now for some reason Nginx was just not having it. After using some Chatgpt, I eventually changed the code so it was not the "default", but according to Chatgpt it will still fall back to using that if Nginx can't assign the traffic elsewhere based on the rest of the config. It basically just tells Nginx to drop the traffic if it doesn't match one of the other options. Weirder still to me is it has no issue with the https version. I've triple checked my config, and don't see port 80 as the default anywhere else, but seemingly after making it not the default, Nginx is working fine now.

Wrap Up

Hopefully someone else can glean some usefulness from my ordeal. I know I at least will be referencing this for myself in the future. Ultimately though everything is moved over to Namecheap, everything appears to be working, and you can now email me at contact@tanzi-media.com. Overall, worth the few hours it took.