1 pontos por GN⁺ 1 일 전 | 2 comentários | Compartilhar no WhatsApp

Repository: https://github.com/localsend/localsend

  • Aplicativo gratuito e open source que permite trocar arquivos e mensagens com segurança entre dispositivos próximos na rede local, sem conexão com a internet
  • Sem depender de servidores externos ou de terceiros, a comunicação entre dispositivos é feita com REST API e criptografia HTTPS, oferecendo comunicação local rápida e confiável
  • Todos os dados transferidos são protegidos por HTTPS, e os certificados TLS/SSL são gerados instantaneamente em cada dispositivo para reforçar a segurança
  • Disponível para Windows, macOS, Linux, Android, iOS e Fire OS, com recomendação prioritária de instalação via loja de aplicativos ou gerenciador de pacotes
  • O app não tem atualização automática, por isso o README recomenda usar os caminhos via loja de aplicativos ou gerenciador de pacotes
  • Os canais de distribuição incluem Winget, Scoop, Chocolatey, EXE e Portable ZIP no Windows; App Store e Homebrew no macOS; Flathub, Nixpkgs, Snap, AUR, DEB, AppImage e TAR no Linux; Play Store, F-Droid e APK no Android; e Amazon no Fire OS
  • As versões mínimas suportadas são Android 5.0, iOS 12.0, macOS 11 Big Sur e Windows 10, e a última versão com suporte ao Windows 7 é a v1.15.4
  • No Linux, dependendo do ambiente desktop, são necessárias dependências da família xdg-desktop-portal: no Gnome, xdg-desktop-portal e xdg-desktop-portal-gtk; no KDE, xdg-desktop-portal e xdg-desktop-portal-kde
  • Na maioria dos casos funciona sem configuração extra, mas se houver problemas de envio ou recebimento, é preciso permitir entrada em TCP/UDP 53317 no firewall e também liberar saída em TCP/UDP
  • Se o AP isolation do roteador estiver ativado, a conexão entre dispositivos pode ser bloqueada; se houver problema na descoberta de dispositivos, isso deve ser desativado
  • O modo portátil é ativado ao colocar um arquivo settings.json, mesmo vazio, no mesmo diretório do executável, passando a salvar as configurações nesse arquivo em vez do caminho padrão
  • Para iniciar oculto apenas na bandeja do sistema, é possível usar a flag --hidden
  • Quando a velocidade estiver baixa, a orientação é usar 5 Ghz e desativar a criptografia em ambos os dispositivos; a lentidão no recebimento no Android continua sendo um problema conhecido
  • Para compilar a partir do código-fonte, são necessários Flutter e Rust; como o projeto usa uma versão antiga do Flutter definida em .fvmrc, recomenda-se usar fvm flutter

2 comentários

 
xguru 1 일 전

Eu costumava usar bastante para compartilhar time-lapses que tirava em encontros de jogos de tabuleiro.
Recentemente, como Galaxy e Pixel passaram a compartilhar via AirDrop, o uso dele ficou um pouco ambíguo.
Claro, para enviar para o desktop, ainda é muito bom.

 
GN⁺ 1 일 전
Comentários do Hacker News
  • O problema é que todas essas alternativas exigem que tudo esteja na mesma rede local
    Pelo que entendo, o legal do Airdrop é justamente que ele cria e gerencia essa rede local automaticamente nos bastidores
    Por isso eu conseguia enviar coisas na hora mesmo durante trilhas com amigos
    Depois que troquei para Android, tenho usado o Localsend criando uma LAN via tethering no aparelho de um amigo, mas a experiência é bem menos fluida

    • https://mbarlow.github.io/thinair/
      É uma ferramenta de transferência de dispositivo para dispositivo que funciona só com uma página estática no GitHub
      repo no GitHub: https://github.com/mbarlow/thinair
      Cada aparelho gera um QR code para ser escaneado e estabelece uma conexão WebRTC
      Entre Androids, ele também usa um chirp de áudio para dizer a cada aparelho para alternar do modo QR para o modo de escanear com a câmera
      Também testei Android↔Apple e funciona, mas a Apple não capta esse chirp de áudio
      Nesses casos, é só esperar um pouco e o QR code some, passando para a etapa de escaneamento
      Foi algo feito às pressas, e originalmente eu estava experimentando handshakes de áudio entre smartphones com chirps tipo canto de pássaro ou estilo modem antigo
      Encostar os telefones e trocar frames de áudio para confirmar o início da transferência era divertido, mas o handshake era lento e pouco confiável
      Quero refinar melhor o fluxo, e hoje já uso isso para enviar arquivos entre iPhone/Android/PC sem app, e-mail ou conta
    • O mais próximo de um P2P multiplataforma de verdade que já vi foi o FlyingCarpet
      Só que não é exatamente muito estável nem amigável
      https://github.com/spieglt/FlyingCarpet
    • Também vale tentar isto: https://github.com/nuwainfo/ffl
      É um app para Android e diz que não precisa de LAN para compartilhar
      https://play.google.com/store/apps/details?id=com.fastfilelink.wrapper
    • Até o Airdrop às vezes funciona de forma estranha
      Tem horas em que ele não encontra o outro telefone, e acho que isso acontece quando uma transferência anterior falhou silenciosamente em segundo plano
      Sem conexão móvel/Wi‑Fi, eu também já tive problema com descoberta de contatos, quando tentei mandar fotos para outro telefone na montanha
      Às vezes ele simplesmente trava e não funciona, então essa magia da Apple ajuda pouco
    • O Localsend na prática só faz a última etapa do que o Airdrop faz
      Para usar o Localsend, você precisa criar um Wi‑Fi ad-hoc em um aparelho, conectar os outros nele e só então abrir o Localsend
      Essas duas etapas anteriores são bem incômodas, e o Airdrop parece muito mais sem atrito porque resolve isso sozinho
  • Comecei a usar recentemente e funciona muito bem, sendo bem mais confiável que o Airdrop
    Mas ainda dá para melhorar a UX
    Mesmo assim, eu queria que a Apple consertasse um pouco o Airdrop
    A confiança nele é muito baixa toda vez que uso; às vezes ele não vê os aparelhos, ou quando há vários usuários de Mac ele mostra o mesmo Mac duas vezes sem dizer qual usuário é qual, o que confunde

    • Fico curioso sobre onde as pessoas usam isso
      Não entendo muito bem que tipo de arquivos grandes elas estão criando e movendo para precisar tanto de um app assim
      No meu caso, os arquivos que surgem no celular são só fotos e vídeos, faço backup no Immich e compartilho por link
      Imagino que a maioria das pessoas faça algo parecido com iCloud ou Google Photos
      Para sincronizar outros arquivos, como documentos, uso ownCloud OCIS, e para a maioria dos casos DropBox, iCloud, ou até e-mail e WhatsApp já devem bastar
      Para mover algo como ISO na rede local, dá para copiar por SMB, funciona praticamente em qualquer lugar e nem precisa de app separado
      Se for backup, também dá para simplesmente conectar um HD externo
      Então ainda não consigo ver muito bem por que eu usaria isso
    • Queria saber se você já tentou fazer troubleshooting desses problemas
      Antigamente eu também tinha problemas de visibilidade, mas hoje em dia quase sempre funciona
    • No meu caso os aparelhos até aparecem, mas quando começo a transferência, em mais ou menos metade das vezes nada aparece no dispositivo de destino
      Ainda não achei um jeito definitivo de corrigir isso; desligar e ligar o Airdrop nos dois lados é o que mais ajuda, mas mesmo assim só funciona em uns 70% dos casos
  • Vale olhar o Sendme https://github.com/n0-computer/sendme e o AltSendme https://github.com/tonyantony300/alt-sendme
    Ambos usam o Iroh https://github.com/n0-computer/iroh, um serviço relay P2P criptografado open source para enviar dados sem servidor central, então na prática não há limite relevante para o tamanho dos arquivos enviados ou recebidos
    Eu também já tinha recomendado isso quando surgiu papo sobre apps de compartilhamento de arquivos em um tópico parecido
    https://news.ycombinator.com/item?id=47906587

    • Serviços desse tipo, que exigem compartilhar um seed/código, sempre parecem meio estranhos
      O código não é curto nem simples o suficiente para passar falando, e se você já consegue mandar esse código, normalmente também conseguiria mandar o próprio arquivo
  • https://github.com/schlagmichdoch/pairdrop
    É um projeto parecido, mas este roda todo no navegador e pode usar uma sala "public" para se conectar com clientes fora da rede local

    • Esse eu preciso testar
      Tenho o Localsend instalado para transferir entre iPhone e desktop Linux, mas ele nem sempre funciona bem
      Mesmo abrindo a porta do Localsend no Firewalld, às vezes leva mais de 10 minutos para os aparelhos se enxergarem
      Sendo baseado em navegador, imagino que pelo menos a descoberta seja mais rápida
    • O Pairdrop é muito bom
      A documentação está meio escondida, mas o FAQ fica em https://github.com/schlagmichdoch/pairdrop/blob/master/docs/faq.md, e
      a integração com o menu de compartilhamento no Android, iOS e Windows está em https://github.com/schlagmichdoch/PairDrop/blob/master/docs/how-to.md
      Ele é um fork do sharedrop e do snapdrop, que ficaram arruinados depois de serem adquiridos pela LimeWire
    • O nome deveria ser PearDrop
  • Para essas coisas que se dizem substitutas do Airdrop, sinto que precisava existir algo como spamsolutions.txt
    Isto falha no critério de que os dois peers não deveriam precisar estar conectados a uma rede Wi‑Fi já existente
    https://craphound.com/spamsolutions.txt

  • Já publiquei algo parecido usando Tauri
    O instalador ficava em cerca de 27 MB no Mac, 45 MB no Linux .deb e 53 MB no Windows, enquanto o piso do Electron era por volta de 150 MB
    A única exceção era o .AppImage, com cerca de 110 MB, porque ele empacota o runtime
    Essa redução de tamanho vem de reutilizar o webview do sistema operacional, mas isso também tem seu custo
    O WebKitGTK no Linux se comporta bem diferente do WebKit no Mac ou do Edge WebView no Windows, então você perde muito do que o Chromium costuma resolver e acaba gastando tempo com debug multiplataforma
    Surpreendentemente, o mais chocante nem foi o framework, e sim o empacotamento no Linux
    O AppImage roda em qualquer lugar, mas para a maioria dos usuários ainda parece algo de segunda classe, e o .deb cobre as distros principais, só que você precisa acompanhar as mudanças contínuas da versão do glibc
    Snap/Flatpak parecem a resposta oficial cross-distro, mas por causa de sandbox e permissões é fácil um desenvolvedor indie perder semanas nisso
    No fim, publiquei .deb e .AppImage, e em poucas horas já começaram a chegar e-mails perguntando "por que não está no AUR?"

  • Também funciona no navegador
    https://web.localsend.org/
    Dá para transferir do Windows para Android e iOS

    • Aqui isso não funcionou
      Testei envio e recebimento com Firefox, Chrome, celular e notebook
      No console apareceu WebRTC: ICE failed, add a TURN server and see about:webrtc for more details., e não ficou claro para mim como um usuário comum deveria resolver isso
      Quando fui pesquisar, quase tudo era orientação voltada para desenvolvedor
      No fim descobri que, se desligar o Tailscale, funciona
    • Fico curioso sobre como ele faz descoberta de LAN no navegador
    • Legal
      Mas a v1.18.0 ainda não chegou ao F-droid
  • Eu também estava construindo algo nessa área no ano passado
    Basicamente fiz o keibidrop, um filesystem peer-to-peer: https://keibidrop.com/
    Lancei na semana passada, e além do que o local send faz, ele também funciona por WAN
    O app mobile ainda não foi lançado
    O passo além é que ele também tem um filesystem virtual sincronizado nos dois sentidos
    O repositório está aqui: https://github.com/KeibiSoft/KeibiDrop
    O código, tirando a UI, é open source, e eu também fiz benchmark com o localsend em loopback; o local send foi mais rápido
    https://keibisoft.com/blog/keibidrop-benchmarks-vs-competition.html
    Ontem eu também tentei abrir um tópico de comentários no /r/golang
    Internamente, ele usa PQC, gRPC e FUSE

  • Foi um dos primeiros apps que instalei depois de migrar para Linux
    Isso realmente me fez perceber como um app open source pode ser bom

  • Parece que o Localsend atualmente não funciona de forma estável quando o Tailscale está ativado
    É uma pena
    Seria ótimo se ele também suportasse transferência de arquivos entre clientes da mesma tailnet