Si estás usando la versión anterior: 3.5.3, aquí voy a explicarte cómo actualizar a la última versión 4.0.2
Sí, hoy mismo salió Mastodon 4 y parece ser que hubo problemas y luego salieron las versiones 4.0.1 y finalmente la 4.0.2. Ojalá se quede ya en esta.
Y empecé a hacer pruebas para actualizar. Recordad que no uso docker sino la guía oficial de instalación.
Como siempre, hay cosillas que te pierdes un poco porque no te las dejan demasiado claras, aunque esta vez sí se puede entender. Pero yo os lo pondré más fácil y en poco tiempo ya estareis actualizados.
Hay un problema que os comentaré a quienes tengais un servidor con solo 2 GB de RAM sin swap.
Bueno, vamos a actualizar.
Yo no hice copia de seguridad de la base de datos porque mi VPS tiene la opción de crear snapshots o instantáneas, que si algo va mal pues puedes dar "marcha atrás" a todo y listo. Por lo que me hice una snapshot justo antes de empezar. Es una buena costumbre que tengo antes de tocar algo delicado que pueda ir mal.
Pero os recomiendo que busqueis cómo hacer una copia de seguridad de la base de datos si no teneis otra opción.
Y ahora vamos a la actualización.
Entramos desde root al usuario mastodon:
su - mastodon
cd live
git fetch && git checkout v4.0.2
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4
rbenv global 3.0.4
bundle install
yarn install
SKIP_POST_DEPLOYMENT_MIGRATIONS=true RAILS_ENV=production bundle exec rails db:migrate
¡Y atención ahora al compilar con el comando a continuación!.
Es posible que termine dandote error de compilación y no sepas por qué es. Seguramente tienes poca RAM y no usas swap en tu servidor, y claro: no puede tirar con todos los procesos y da error. Pero vamos con el comando en sí:
RAILS_ENV=production bundle exec rails assets:precompile
Si te diera error, hay que borrar la caché antes de repetirlo de nuevo. Esto se hace poniendo esto a continuación:
RAILS_ENV=production bundle exec rake tmp:cache:clear
Porque si repites el comando sin ponerle éste último, lo que va a ocurrir es que te dirá que todo ok, pero NO, no habrá hecho nada y vuestra instancia no arrancará al terminar.
Seguramente si os dio error al compilar os lo volverá a dar. Con 4GB de RAM a mi no me dio problema, pero en un servidor de pruebas que tengo con 2 GB de RAM sí.
¿Qué solución encontré?: parar la instancia para ahorrar recursos antes de ejecutar el comando.
Así que si te da ese error de compilación haz esto:
exit
(para salir a root de nuevo)systemctl stop --now mastodon-web mastodon-sidekiq mastodon-streaming
(para parar la instancia y sus procesos)su - mastodon
(para volver de nuevo al usuario mastodon)cd live
Y luego repite de nuevo el comando:
RAILS_ENV=production bundle exec rails assets:precompile
Espero que ahora sí te funcione.
Tras esto, seguimos.
exit
(para salir de nuevo a root)
systemctl daemon-reload
systemctl restart --now mastodon-web mastodon-sidekiq mastodon-streaming
su - mastodon
cd live
RAILS_ENV=production bundle exec rails db:migrate
exit
systemctl daemon-reload
systemctl restart --now mastodon-web mastodon-sidekiq mastodon-streaming
LISTO. INSTANCIA ACTUALIZADA.
Problemas: veo que la imagen de mascota de la instancia no sale al actualizar. Debes subirla de nuevo.