How I got my Website

My website is live. I have https; I have e-mail. It wasn’t simple, though. I started out probably almost a year ago with Tumblr. I had the domain https://ralphembree.tumblr.com which worked fine, but that isn’t a very nice name. I looked up how to get a free domain name and soon discovered http://dot.tk. I had a little trouble with that one; I accidentally registered http://ralphembree.tk without actually setting it to Tumblr’s servers. Because of this, I was forced to put a hyphen in there when I actually got it working: http://ralph-embree.tk.

I kept http://ralph-embree.tk for a little while, but I found in several places that .tk domains were not treated well by Facebook, Google, etc., and I also found many people who didn’t like Tumblr. I then looked around some more, and I found Squirrel Host. It used Wordpress. I’d never used Wordpress before, but I thought I’d try it. I set up an account and added my first site: https://ralphembree.blg.lt (blg.lt is owned by Squirrel Host). I then installed Wordpress on it and used a plugin that let me import my posts from Tumblr. This was great. It was a nice, short domain; I had https; and I had custom DNS… hm, custom. I could do something with this. I looked up how to get free e-mail on a custom domain, and I found Zoho. I got an account, went through the steps, and I had e-mail! I had admin@ralphembree.blg.lt and the aliases ralph and zondo (my Stack Overflow display name).

I kept this setup for a while. Then I thought, why am I using Wordpress? This is a site with no user interaction except comments. Can’t I use a static site? Yes, of course I can. I thought I’d try it on Github. First, I had to figure out how to move Wordpress posts to a Github-compatible format. I used Ben Balter’s wordpress-to-jekyll-exporter. I then cloned the Jekyll Now repository and added the posts. Next I added the CNAME file and changed the DNS to point to Github. Everything was working, or was it? Switching to a different hosting provider meant that I no longer had https. I needed to get a certificate and add it to Github; the problem was, Github doesn’t support custom SSL certificates.

I looked for a different solution, and I found it: Gitlab. Gitlab has more options when it comes to a website. First, it isn’t limited to Jekyll. You can use any static site generator you want (as long as you can install it from a docker image). Because of this, using Jekyll isn’t quite the same as Github. I cloned my Github repository, but it didn’t work. I then looked it up, and I found that you need to add a .gitlab-ci.yml file that specifies to use Jekyll. This is what mine looks like:

pages:
  stage: deploy
  image: ruby:2.3
  script:
    - gem install jekyll jekyll-sitemap jekyll-paginate jekyll-feed
    - gem install jekyll-redirect-from -v 0.10.0
    - jekyll build -d public/
  artifacts:
    paths:
      - public
  only:
    - master

Push again, and it works! Now for the certificate. I went to Let’s Encrypt. I followed Gitlab’s instructions, and everything went smoothly. Finally, everything was working again, and I had a much faster site. Pause; deep breath; okay, I’m ready for more.

It worked for a little while, but then I didn’t get an e-mail that I was expecting from that account. I then tried to visit my blog, and I got a timeout. What was this? I logged in to Squirrel Host, and I found the answer: my site was suspended for inactivity. This would not do. I must ditch Squirrel Host. I remembered that in my earlier search I had found usa.cc from Free Available Domains. The problem was that the DNS was rather limited. I looked for better DNS and found Free DNS. I put the two together, added the domain to Gitlab, and everything was honky-dory. Next, the Let’s Encrypt certificate. I used certbot again, did the acme challenge, and – whoop; there’s an error:

Error creating new cert :: Too many certificates already issued for: usa.cc

Hm. That makes sense; a lot of people are likely to use it. Then came the hunt for another free domain. I turned again to Free DNS. That site is great; check it out. I looked through their registry of domains and saw us.to. Eh, that looks pretty good. I took it: http://ralphembree.us.to. –Er, no; eh? There was an error that CNAME records are currently restricted on dynamic DNS domains. Hm. Whatever. I went back to the registry. I looked down the list; ah, uk.to. It makes no difference to me what country I look like I come from; sure I’ll try it. I got the same error. Well, they’re similar domains both registered by the same user. I tried something else (but I don’t remember now what it was), and that too didn’t work. Finally, I sent an e-mail to Josh Anderson, the guy behind the site. Apparently, he has a whitelist of people who can avoid the dynamic DNS restriction of CNAME and MX records. Before adding me to it, he wanted to know something about the site. He asked me a few questions about it like how much traffic I expected, what type of traffic, etc. I responded to that and gave a link to the currently https-less site. He responded and said I shouldn’t have that problem anymore.

Sure enough, I tried again and got no error. Great. Now for the Let’s Encrypt certificate. I used certbot yet again, did the acme challenge, and … I got that error about too many certificates being issued. Hm. Now I need to find in the registry a domain that’s short enough and easy enough that I’ll like it, yet not commonly used. This seemed difficult. I then though, there has to be a way to get around this. Can Let’s Encrypt really ignore all the free subdomain providers like that? I looked it up. I found that they also follow Mozilla’s public suffix list. Ah hah, this might get me somewhere. I sent an e-mail both to Free Available Domains and to the user who registered us.to and uk.to asking them to add their domains to the public suffix list. While waiting for their replies, and decided to look through the list. I found the section of private domains. For every domain that I liked, I’d visit it (or the domain mentioned in the header above it) and see how I could register it. I went through the whole list, but I didn’t find anything in English that I could get for free. I didn’t even bother with the non-English ones.

It looked like I was forced to go back to Free DNS. I went through the list (sorting by age instead of popularity), and I found it: qc.to. It isn’t a very nice domain, but it’s short and infrequently-used. I added it, tried certbot, … it worked! I then changed my settings at Zoho, and everything was – excuse me, is great. I have https and e-mail. Now let’s see how long this works out…

Written on June 4, 2017