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
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?
Ah... eu estava me perguntando como fariam isso, mas ficou bom! Só é uma pena que esteja preso ao Cloudflare. hehe
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.
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..
Ao criar
workers,d1er2também são criados automaticamente, então você provavelmente também precisará excluir od1e or2conectados.Fiz como você disse e resolveu. Obrigado.
A auto-hospedagem também é paga?
Não, basta ter uma conta da Cloudflare. Você pode consultar o guia em https://synch.run/ko/self-hosting.
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?
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ê.
Estou tentando excluir o vault, mas ocorre um erro.
Falha na exclusão - a limpeza do coordenador falhou com status 500
Como isso é diferente do Obsidian LiveSync?
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.