En estos mundillos de Mastodon es bueno ir actualizando cada x tiempo pero quizas no tan bueno ir a la última. En mastodon.madrid somos algo más conservadores y esperamos unos meses hasta que las versiones quedan algo maś consolidadas. La 3.1.x va por la 3.1.4 y el motivo de inicialmente pasar a la 3.1.1 es simplemente porque requiere de cambio de versión de node y por no irnos a la última de golpe inmediatamente ya que la release es de apenas hace un mes.
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
Comprobar que los servicios están activos, a la escucha. Por ejemplo con netstat se puede ver así:
# netstat -pluton | egrep «puma|redis|nginx|node|postgres»
O así:
# systemctl is-active mastodon-sidekiq mastodon-streaming mastodon-web
Es importante saber que para pasar de la versión 3.0.1 a la 3.1.1 se ha de subir de versión de node.
La versión 3.0.1 se puede tener con node.js de la versión 8 a la 10. La versión 3.1.1 de mastodon requiere mínimo la 10 de modo que si no andas en esa versión es algo que tienes que actualizar.
Eso se puede hacer así:
curl -sL deb.nodesource.com/setup_10.x | bash – and then apt install nodejs
Y luego instalar las dependencias con bundle install and yarn install
Si ya cuentas con la versión 10.x de node puedes seguir adelante.
Actualizar mastodon puede hacerse cambiando de cuenta a la del user mastodon.
# su - mastodon
# cd /home/mastodon/live
# git fetch --tags
# git checkout v3.1.1
# git checkout v3.1.1 --force
$ mv Gemfile.lock /tmp/
# bundle install
# bundle install --no-deployment
$ RAILS_ENV=production bundle exec rails db:migrate
$ RAILS_ENV=production bundle exec rails assets:precompile
$ yarn upgrade
$ exit
Luego dependiendo ya de si los scripts para arrancar están ok pues se pueden reiniciar los servicios o se puede hacer a manopla desde una screen.
Por ejemplo así:
$ screen -S mastodon-sidekiq
# su – mastodon
$ cd live
$ RAILS_ENV=production bundle exec sidekiq -c 25
De la screen se sale (quedándose el servicio allí corriendo) con «control» luego «a» y luego «d».
$ screen -S mastodon-web
# su – mastodon
$ cd live
$ RAILS_ENV=production bundle exec puma -C config/puma.rb
De la screen se sale (quedándose el servicio allí corriendo) con «control» luego «a» y luego «d».
$ screen -S mastodon-web
# su – mastodon
$ cd live
$ RAILS_ENV=production
$ /usr/bin/node ./streaming
De la screen se sale (quedándose el servicio allí corriendo) con «control» luego «a» y luego «d».
Y más o menos eso es todo amigo/a/e.
Saludos cordiales.