Atualização do Nextcloud

  • Confira se tem o bash_alias no ambiente para o occ:

    Crie um alias para o comando occ editando o arquivo ~/.bash_alias e colocando o seguinte conteúdo:

    alias occ='docker compose exec -u www-data app php occ'
    
  • Confira se tem algum PR pendente para ser aceito e mergeado na branch main do repo https://github.com/LibreCodeCoop/nextcloud-docker/pulls

  • Notificar usuários sobre a janela de manutenção

Aviso

Encerre as conexões dos usuários com o Onlyoffice gentilmente para não haver perda de dados (lembre-se de reativá-lo após a atualização)

docker exec CONTAINER-ONLYOFFICE documentserver-prepare4shutdown.sh
  • Faça uma lista dos apps ativos e salve em um arquivo:

    occ app:list > app_list.old
    

    Aviso

    NUNCA pule versão major ao atualizar o Nextcloud. Sempre vá de uma em uma, exemplo: 24 para 25, 25 para 25 e 26 para 27 repetindo todas as etapas deste passo a passo a cada atualização.

  • Alterar a versão do Nextcloud no arquivo .docker/app/Dockerfile. Exemplo: nextcloud:31-fpm

  • Fazer build do Nextcloud:

    docker compose build --pull
    
  • Se tiver problemas com o cache, pode especificar a versão a ser buildada:

    docker compose build --build-arg NEXTCLOUD_VERSION=31-fpm --pull --no-cache
    
  • Entrar no modo de manutenção:

    occ maintenance:mode --on
    
  • Confira a versão atual do Nextcloud:

    occ --version
    
  • Verificar versão do docker compose, pois pode estar diferente do que está sendo executado

  • Levantar o Nextcloud e acompanhar o log até o fim da atualização:

    docker compose up -d
    docker compose logs -f --tail=100 app
    

    Você deverá ver ao final:

    Initializing finished
    
  • É preciso rodar mais algumas rotinas de atualização:

    occ db:add-missing-columns; \
    occ db:add-missing-indices; \
    occ db:add-missing-primary-keys; \
    occ maintenance:repair --include-expensive
    
  • Atualize os apps:

    occ app:update --all
    
  • Faça uma lista dos apps ativos e compare para saber se tem algum app que precisa ativar manualmente na versão mais nova:

    occ app:list > app_list.new
    diff app_list.old app_list.new
    
  • Se update entre versões MINOR (31.0.6 para 31.0.7 por exemplo), rodar comando upgrade sairá do modo de manutenção:

    occ upgrade
    
  • Se atualização MAJOR (30 para 31): Rodar o upgrade e tirar do modo de manutenção.

    occ upgrade
    occ maintenance:mode --off
    
  • Acessar o Nextcloud para ver se está tudo funcionando bem:

    • Vá em Administration > Overview e veja se tem alguma ação a ser executada, precisa deixar tudo verde.

    • Se tiver o Onlyofice na instância, vá em Administration > Onlyoffice e clique em nos três botões de salvar para se certificar que está correto.

    • Se tiver o LibreSign na instância, vá em Administration > LibreSign e confira se está tudo verde.

  • Limpar o ambiente:

    docker system prune
    
  • Notificar fim da manutenção aos usuários caso necessário

Possíveis problemas após a atualização