Ao atualizar para uma nova imagem Docker, todas as migrações que ainda não foram executadas serão executadas automaticamente; isso pode levar algum tempo, dependendo do tamanho do seu conjunto de dados, e acompanhar os logs mostrará o progresso. Para mais informações, consulte nossa documentação de Logging.
Armazenamento de dados
O Overleaf Community Edition e o Server Pro armazenam seus dados em três locais separados:- Banco de dados MongoDB: é onde ficam os dados de usuários e projetos.
- Redis: funciona como um cache de alto desempenho para dados em trânsito, armazenando principalmente informações relacionadas às edições dos projetos e à colaboração.
- Sistema de arquivos do Overleaf: armazena arquivos de projeto não editáveis (incluindo imagens) e também atua como cache temporário em disco durante as compilações dos projetos.
Pode ser
~/sharelatex_data ou ~/overleaf_data, dependendo de quando sua instância foi configurada.Para os arquivos de projeto e os dados do histórico completo dos projetos, também suportamos backends de armazenamento compatíveis com S3.
Realizando um backup consistente
Há três armazenamentos que precisam ser incluídos ao fazer um backup consistente:- MongoDB
- Redis
- Dados do sistema de arquivos do Overleaf
3.5.0, o processo de desligamento automatiza o fechamento do site e a desconexão dos usuários.
Para desligar sua instância, execute bin/docker-compose stop sharelatex se estiver usando uma implantação com o Toolkit, ou docker compose stop sharelatex se estiver usando o Docker Compose.
Depois que o contêiner sharelatex for parado, você poderá iniciar o processo de backup.
Depois que o processo de backup for concluído com sucesso, você precisará iniciar o contêiner sharelatex. Para isso, execute bin/docker-compose start sharelatex se estiver usando uma implantação com o Toolkit, ou docker compose start sharelatex se estiver usando o Docker Compose.
- Os backups devem ser armazenados em um servidor separado daquele em que sua instância do Overleaf está sendo executada, de preferência em um local totalmente diferente.
- Replicar bancos de dados em várias instâncias do MongoDB pode oferecer alguma redundância, mas não protege contra corrupção.
- Testar seus backups é a melhor forma de garantir que estejam completos e funcionais.
MongoDB
O MongoDB inclui uma ferramenta de linha de comando chamada mongodump, que pode ser usada para criar um backup dos dados de usuários e projetos armazenados no banco de dados.Dados do sistema de arquivos do Overleaf
Em implantações com o Toolkit, o caminho onde seus arquivos não editáveis são armazenados é especificado emconfig/overleaf.rc usando a variável de ambiente OVERLEAF_DATA_PATH, mas, dependendo de quando sua instância foi criada, pode ser data/sharelatex.
É necessário usar uma ferramenta como o rsync para copiar esse diretório recursivamente, a fim de garantir que um backup completo seja criado.
Redis
O Redis armazena as sessões dos usuários e as atualizações pendentes de documentos antes de serem gravadas no MongoDB. A persistência Append Only File (AOF) é a configuração recomendada para a persistência do Redis. Usuários do Toolkit têm a persistência AOF habilitada por padrão em instalações novas; usuários existentes podem encontrar mais informações sobre como habilitar o AOF aqui. Se você decidir continuar usando snapshots RDB junto com a persistência AOF, pode copiar o arquivo RDB para um local seguro como backup.Migrando dados entre servidores
O ideal é que você ainda não tenha nenhum dado valioso na nova instância. Não temos um processo para mesclar os dados de instâncias. Supondo que a nova instância ainda não tenha dados, aqui estão algumas etapas que você pode seguir. Em linhas gerais, produzimos um tar-ball dos volumesmongo, redis e overleaf, o copiamos para o novo servidor e o extraímos lá novamente.
Toolkit
Docker Compose
mongo, redis e overleaf.
Ao executar como usuário root (ou com sudo), o tar preservará o proprietário/grupo e as permissões dos arquivos, o que é crucial ao restaurar o backup.
Pastas em detalhe
As pastas a seguir têm indicações adicionais:
- (b) incluir nos backups, de preferência com a instância parada para garantir a consistência
- (d) pode ser excluída
- (e) arquivos efêmeros, podem ser excluídos quando a instância estiver parada
~/mongo_data(b)- diretório de dados do mongodb
~/redis_data(b)- diretório de dados do banco redis
~/overleaf_data- bin
- synctex (d)
- não utilizado na versão mais recente; anteriormente era usado um binário synctex personalizado (o synctex é usado para o mapeamento de código-fonte entre os arquivos .tex e o pdf)
- synctex (d)
- data
- cache (e)
- cache de arquivos binários para compilações
- compiles (e)
- a compilação LaTeX acontece aqui
- db.sqlite (d)
- não utilizado na versão mais recente; anteriormente armazenava detalhes do cache do clsi (agora movidos para mapas simples em memória ou obtidos por varredura do disco)
- db.sqlite-wal (d)
- não utilizado na versão mais recente; veja db.sqlite
- output (e)
- armazenamento da saída da compilação LaTeX para ser servida ao cliente
- template_files (b)
- pré-visualizações em imagem do sistema de templates (somente Server Pro)
- user_files (b)
- arquivos binários dos projetos
- history (b)
- arquivos do histórico completo dos projetos
- cache (e)
- tmp
- dumpFolder (e)
- arquivos temporários do processamento de arquivos zip
- uploads (e)
- buffer de envios de arquivos (envio de arquivo binário/novo projeto a partir de zip)
- projectHistories (e)
- arquivos temporários para migrações do histórico completo dos projetos
- dumpFolder (e)
- bin

