Update Mastodon server instance
While typically updating Mastodon is quite straightforward, this time I needed to iterate Ruby version on the server as well.
That was visible from error thrown:
rbenv: version `2.6.1' is not installed (set by live/.ruby-version)
So the full upgrade sequence is following:
Retrieve Mastodon source updates
Switch or login to user which is running Mastodon:
su - mastodon
And execute following:
cd ~/live git fetch --tags git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
You might get error here:
error: Your local changes to the following files would be overwritten by checkout: .ruby-version Please commit your changes or stash them before you switch branches. Aborting
In that case reset git:
git reset --hard
And try checkout again.
cd ~/.rbenv/plugins/ruby-build git pull cd ~/.rbenv rbenv install 2.6.3
This was also documented in issue 638.
Update Ruby dependencies
bundle install --deployment --without development test
Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
Fix it by running:
cd ~/.rbenv gem install bundler
And go back to previous folder:
Update node.js dependencies
yarn install --pure-lockfile
Database schema updates
RAILS_ENV=production bundle exec rails db:migrate
Pre-compiling updated assets
RAILS_ENV=production bundle exec rails assets:precompile
Mastodon runs in memory so you will need to restart it for any of the previous updates to take effect.
Switch to root or run in sudo:
systemctl restart mastodon-*.service
Or restart services separately:
systemctl restart mastodon-web systemctl restart mastodon-sidekiq systemctl restart mastodon-streaming
RAILS_ENV=production bin/tootctl cache clear
There we go – Mastodon 2.8.0 with polls functionality running fine 😊 Try out my poll about Go code retrieval 👍
Updated 2019-05-17: added possible error when updating to version 2.8.2. Updated 2019-06-21: added clear cache command after updating to version 2.9.0. Updated 2019-07-08: upgrading to version 2.9.2: changed ruby version from 2.6.1 to 2.6.3:
mastodon@server:~/.rbenv$ rbenv install 2.6.3 Downloading ruby-2.6.3.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.3.tar.bz2 Installing ruby-2.6.3... Installed ruby-2.6.3 to /home/mastodon/.rbenv/versions/2.6.3