This week I pulled my first all-day-all-night-all-dayer for Charitocracy, and probably the first of my entire career! In the past I've always gone home and slept after an all-nighter. Have I mentioned how much I love working on this stuff?
What was I working on that's so engrossing I just couldn't stop? I was migrating Charitocracy's staging server off my laptop onto a virtual private server (VPS) "droplet" at one of DigitalOcean's NYC data centers.
Here's a brief rundown of my long, long day:
- Signed up using $10 off discount code I saw on Facebook, effectively giving me a nice long free trial. You can support Charitocracy by using our referral URL to sign yourself up. You get $10 off (e.g. 2 months of their cheapest config) and Charitocracy gets $25 off our future bills!
- After researching Linux distribution options, chose Ubuntu 16.04, the new long-term support (LTS) version.
- Ran through the checklists for setting up and securing the system, installing Apache, MySQL, and PHP. This gave me a LAMP environment very similar to the MAMP environment I've been using, just on Linux instead of Mac.
- Installed Let's Encrypt (remember?) along with a cronjob to automatically renew the TLS certificate as needed.
- Dumped the MySQL database from my MacBook to a file, copied it over to the new server, and imported it to the new database.
- Moved my git origin repository from iCloud to DropBox so it could be easily accessed not only from my Macs but also from Linux. Cloned the repository into the new server's Apache tree and took it for a spin!
- Blinked a lot for a good hour or so.
- Configured postfix email server like I had it on my Mac, using Gmail SMTP servers to send out emails from Charitocracy.
- Discovered that I was hitting the RAM ceiling on the cheapest ($5/mo 512 MB) DigitalOcean config, leading to some MySQL queries failing, so resized my droplet to the $10/mo 1 GB config. I'm sure I'll quickly outgrow this one, too, but so far so good!
I can still easily sync the latest code and database back onto my Mac and fly it via PageKite if I have a need, but I don't foresee any. I've effectively obsoleted the local environment I set up 6 weeks ago, but really I've leveraged almost all of it, simply on a remote Linux server that's closer to the final production environment.
Progress! And finally, sleep!