En este post se relata una forma de actualizar desde la versión 3.4.8 a la 3.5.0 de Mastodon. Es una forma puesto que existen muchas formas de instalar un nodo mastodon. Si tienes mastodon en docker esto no será de ayuda para ti posiblemente.
La idea es ir subiendo poco a poco de versión y no de golpe. Posiblemente subir del tirón a alguna versión no tenga impacto pero … mejor ir poco a poco.
Vamos a pasar de la versión 3.4.8 a la 3.5.0
* Nota: La fecha de la versión 3.5.0 es más vieja que la de la 3.4.8 porque es una rama diferente. Quienes estaban en la versión 3.4.x pueden subir al día de hoy hasta la 3.4.8 máximo. La idea de subir a la versión 3.5.0. De modo que subiremos a la 3.5.0 y luego ya subiremos tranquilamente a nuevas versiones de esa rama.
Versión 3.4.8 – 26 Mayo 2022 – github.com/mastodon/mastodon/releases/tag/v3.4.8
Versión 3.5.0 – 30 Marzo 2022 – github.com/mastodon/mastodon/releases/tag/v3.5.0
Lo primero hacer copias de seguridad
Lo primero es realizar una copia del contenedor, máquina virtual si es que tienes la instancia de mastodon virtualizada o paravirtualizada. O realizar un snapshot si es posible por lo que pudiera pasar.
Realizar una copia de seguridad de las bases de datos. Se puede dejar temporalmente en /tmp si disponemos de espacio y luego ya copiarla a otro lado fuera de la máquina:
# su – postgres
$ time pg_dumpall > /tmp/pg_backup-mastodon.bak
$ du -ha /tmp/pg_backup-mastodon.bak
Realizar una copia del directorio /home/mastodon/live puede llevar más tiempo pero si no tienes una es buena cosa hacerla antes de actualizar.
Actualizamos el sistema y repositorios si lo consideramos oportuno. Si andamos en una Debian puede hacerse así:
# apt clean # apt autoclean
# apt update # apt upgrade -y
Comprobar que los servicios están activos
systemctl is-active mastodon-sidekiq mastodon-streaming mastodon-web
Y eso es un poco lo que se tendría que comprobar antes de ponerse a migrar a esta nueva versión.
Actualizar mastodon puede hacerse cambiando de cuenta a la del user mastodon.
# npm install -g npm
# curl -fsSL https://deb.nodesource.com/setup_14.x | bash -
# apt-get install -y nodejs
# curl -sSL https://get.rvm.io | bash
# /usr/local/rvm/bin/rvm install 3.0.3
# mv /usr/local/bin/ruby /usr/local/bin/ruby266
# ln -s /usr/local/rvm/rubies/ruby-3.0.3/bin/ruby /usr/local/bin/ruby
# ruby -v
# su - mastodon
$ cd /home/mastodon/live
$ rm -rf /home/mastodon/.rbenv/shims/.rbenv-shim
$ gem install --user-install executable-hooks
$ echo "3.0.3" > .ruby-version
$ ruby -v
$ cd ~/.rbenv/plugins/ruby-build
$ git pull
$ cd ~/.rbenv
$ rbenv install 3.0.3
$ cd /home/mastodon/live
$ bundle install --deployment --without development test
$ yarn install --pure-lockfile
$ git fetch --tags
$ git checkout v3.5.0 --force
$ bundle install
$ yarn install
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=true RAILS_ENV=production bundle exec rails db:migrate
$ RAILS_ENV=production bundle exec rails assets:precompile
$ npx browserslist@latest --update-db
$ RAILS_ENV=production bin/tootctl cache clear
$ yarn upgrade
$ bundle install
$ RAILS_ENV=production bundle exec rails db:migrate
$ exit
# reboot
# systemctl is-active mastodon-sidekiq mastodon-streaming mastodon-web
# cd /home/mastodon/live
# rm -rf /home/mastodon/.rbenv/shims/.rbenv-shim
# /home/mastodon/.rbenv/shims/gem install --user-install executable-hooks
# systemctl stop mastodon-sidekiq mastodon-streaming mastodon-web
# systemctl start mastodon-sidekiq mastodon-streaming mastodon-web
# systemctl status mastodon-sidekiq mastodon-streaming mastodon-web
# reboot
En realidad no es necesario hacer un reboot. Pero si puedes hazlo para ver que el sistema arranca bien los servicios al arrancar.
No olvides reiniciar los servicios.
Saludos cordiales.