Discourse releases new versions quite regularly, and we tend to keep up to get the latest features and security patches. The process currently goes like this
- I get an email that there’s a new version
cd /var/discourse/ && ./launcher rebuild app && ./launcher cleanup
- the site is down for a few minutes
- we’re up to date
This isn’t the worst process and I’m fine with continuing this way, but if someone would like to look at improving it that would be really great.
Apparently the downtime can be reduced by “splitting the discourse docker container into two containers”. I don’t know the fine details of this, but google with those terms and you should find some links.
Discourse also supports updating through the admin UI, but I stopped using that because the box we’re running on would run out of memory halfway, and I had to restart the process from a terminal anyway. But that’s a while ago. Maybe the box we’re currently on can handle it, or maybe it’s time to move to something bigger (we’re on Digital Ocean, there’s a post somewhere in the staff-only category with more details about the setup).
Currently while upgrading the site is just down, it would be great if it could show a friendly message.
Finally perhaps there’s a way to automate this so the site upgrades automatically. I’d be all for it, less manual work and less chance of getting pwnd.
If you want to support your friendly Clojure community then this is great way to do it, and you might pick up some devops-foo along the way. If that sounds like fun then please get in touch!