18 pontos por hyeongjin 13 일 전 | 13 comentários | Compartilhar no WhatsApp

Estou criando o Synch, um plugin open source de sincronização para o Obsidian.

Comecei com a ideia de ver se seria possível criar em open source uma experiência semelhante ao Obsidian Sync.
O objetivo é ser uma alternativa ao Obsidian Sync com sincronização rápida, E2EE, histórico de versões e possibilidade de self-hosting.

Como funciona no formato de plugin do Obsidian, pode ser usado em ambientes desktop e mobile onde o Obsidian roda, sem precisar instalar um app separado.

Atualmente, os recursos suportados são os seguintes.

  • Criptografa localmente o conteúdo dos arquivos e os metadados de caminho antes de enviar
  • Sincroniza alterações entre vários dispositivos em poucos segundos
  • Histórico de versões
  • Recuperação de arquivos excluídos
  • Mesclagem automática em caso de conflito de arquivos

Tecnicamente, ele roda sobre Cloudflare Workers + Durable Objects + R2.

  • O cliente criptografa o conteúdo dos arquivos e os metadados de caminho antes de enviar.
  • O servidor armazena apenas blobs criptografados e metadados de sincronização.
  • Durable Objects é usado para gerenciar o estado de sincronização por vault e a ordem das mudanças.
  • O corpo dos arquivos e o histórico de versões são armazenados no R2.

Para quem quiser fazer o próprio deploy, também preparei uma opção de deploy com um clique que pode ser usada com uma conta gratuita da Cloudflare.
Para quem acha o processo de deploy trabalhoso, também é possível testar primeiro de forma simples com um hosted server.

GitHub: https://github.com/hjinco/synch

13 comentários

 
yinn27 7 일 전

Segui igualzinho o guia de self-hosting, me cadastrei no Cloudflare, ativei o R2 e tudo mais, mas a sincronização não funciona.. 😢 O que será que fiz de errado?

 
nokdu 8 일 전

Ah... eu estava me perguntando como fariam isso, mas ficou bom! Só é uma pena que esteja preso ao Cloudflare. hehe

 
rkjun 12 일 전

Eu estava usando com Google Drive/DriveSync e sentia que faltava alguma coisa (tipo os dados mais recentes sendo apagados por outro dispositivo... ou dando conflito...), então estava pensando em usar o Obsidian Sync. Acho que vou experimentar! Obrigado.

 
grollcake 13 일 전

Criei uma conta em self-hosting, mas não consigo fazer login com a mesma conta.
Provavelmente foi um erro meu e eu esqueci a senha ^^
Mas não há nenhuma forma de redefinir a senha.
Sem alternativa, apaguei o repo do GitHub, os workers, tudo, e estou configurando de novo.
Só que, desta vez, estranhamente aparece que a conta já existe quando tento me cadastrar..

 
hyeongjin 13 일 전

Ao criar workers, d1 e r2 também são criados automaticamente, então você provavelmente também precisará excluir o d1 e o r2 conectados.

 
grollcake 13 일 전

Fiz como você disse e resolveu. Obrigado.

 
kurthong 13 일 전

A auto-hospedagem também é paga?

 
hyeongjin 13 일 전

Não, basta ter uma conta da Cloudflare. Você pode consultar o guia em https://synch.run/ko/self-hosting.

 
grollcake 13 일 전

Nossa, parece ter um nível de acabamento bem bom.
Mas, quando criei um vault remoto e fiz a sincronização em 2 dispositivos, em cada um deles apareceu mais um vault na árvore de pastas e, dentro dele, a árvore de pastas original ficou duplicada. Isso é o comportamento esperado?

 
hyeongjin 13 일 전

Originalmente, não é um comportamento esperado.

Esse fenômeno não foi reproduzido nem por mim nem pelos testadores beta; se puder, envie um e-mail para contact@synch.run ou abra uma issue no GitHub. Vamos verificar com mais detalhes e ajudar você.

 
grollcake 13 일 전

Estou tentando excluir o vault, mas ocorre um erro.

Falha na exclusão - a limpeza do coordenador falhou com status 500

 
calofmijuck 13 일 전

Como isso é diferente do Obsidian LiveSync?

 
hyeongjin 13 일 전

O LiveSync é baseado em CouchDB, então permite um self-hosting mais versátil, enquanto o Synch tem uma estrutura dependente do Cloudflare.
Em compensação, o foco foi permitir que mesmo quem não sabe configurar servidor possa implantar com um clique usando apenas uma conta gratuita do Cloudflare e começar a usar na hora.