This has been a good weekend. This weekend I made some backend changes.

  • moved Beth’s site from sqlite to postgresql after four years of running from a single file
  • moved both of her sites from the old vps to the dedicated server (same host, TurnKey Internet in New York. This means I can finally say goodbye to wheezy (Debian 7) which has served me well.
  • moved both of her sites from cloudflare’s phoney ssl to letsencrypt
  • changed the reservations system to handle large blocks of time instead of hours at a time
  • add a number of management features to the site for her to handle this
  • reworked huge parts of the site internals to make it slightly more modular and more testable, I’ve learned a few things along the way since I wrote this the first time in more or less 48 hours of hacking away at the template application to make a site that worked a little like we wanted it to. Taking hundreds of lines at a time out of the controller and into separate classes that all do one thing each was satisfying. Web2py is a weird system but once you put your mind in the right place it will do fine.
  • used email templates (maybe I did) via jinja2
  • moved from mercurial to git and moved from bitbucket to gitlab

And I delivered it all just 36 hours late for the promised release.

On the personally satisfying parts, I was able to update the site software (a few python patch versions and a few framework point releases), move from apache to nginx (what everything else I have is running), and finally make use of a server I purchased about 2 years ago and remove the vps I purchased 5 years ago.

I believe I can also remove the ovh vps I have, but I probably will keep that as a playground and will intend someday to get a mailserver back up for my domains.

I plan to move my static sites (including this one) to the server there and just keep backups regularly when needed. I still need to update my backup script to change the “copy sqlite file from server” to do a pg_dump and copy, but it should be fine (I’ve done this already for another db so it’s just infrastructure).

I did bump into this issue when I was moving the sites over, since I was enforcing https and cloudflare was sending http requests (I don’t think it should have but it might have started when I moved the A record).

I still need to get credentials out of code and into configuration, and I still need to move more of the logic out of the controllers (and maybe simplify the routes). The only thing I know I broke now is the robots.txt file gives a 404 error (I think I am missing a route to static for this, not sure how or why the favicon is working or if the static directory is in the wrong place).