Sandstorm: O Próximo passo na aventura de Self-Hosting e Soberania Digital

Olá a todos!

Se leram o meu post anterior sobre o FreedomBox e começaram a dar os primeiros passos no self-hosting, provavelmente já estão a questionar-se: “E agora, Nuno? Já tenho o básico a funcionar, mas quero algo mais poderoso. Preciso de instalar e gerir múltiplas aplicações web de forma segura, sem me perder em Docker Compose ou passar fins de semana inteiros a configurar servidores.”

A resposta? Sandstorm.

E não, não estou a falar do produto de segurança da Sophos. Estou a falar do Sandstorm.org – uma plataforma que ajuda a transformar o self-hosting de aplicações web numa experiência tão simples como instalar apps no smartphone, mas com segurança ao nível empresarial e controlo total sobre os vossos dados.

A Ascensão, Queda e Ressurreição de Uma Ideia Brilhante

A história do Sandstorm é fascinante e merece ser contada, porque ilustra perfeitamente tanto as dificuldades quanto o potencial do software livre.
Tudo começou entre 2014 e 2016, quando o Sandstorm era uma startup promissora. Liderada por Kenton Varda, a empresa realizou uma campanha de crowdfunding bem-sucedida em 2014 e conseguiu financiamento de capital de risco em 2015. Contrataram cinco pessoas, formando uma equipa de sete. O objetivo era ambicioso mas claro: tornar o self-hosting de aplicações web tão fácil como usar um smartphone.
Mas como tantas startups tecnológicas, o modelo de negócio revelou-se insustentável. Apesar da tecnologia ser sólida e a visão estar certa, não conseguiram chegar à série A de financiamento em 2016. A empresa entrou em hibernação, a equipa dispersou-se, e parecia que o Sandstorm ia juntar-se ao cemitério de projetos open source abandonados.
Mas aqui está o plot twist: o Sandstorm não morreu. Em janeiro de 2024, Kenton Varda anunciou oficialmente a transferência da manutenção do projeto para uma comunidade de utilizadores dedicados, liderada por Jacob “ocdtrekkie” Weisz. O projeto mudou-se para sandstorm.org, deixando claro através do domínio .org que agora é um projeto comunitário, não uma empresa.
Esta transição é importante por duas razões: primeiro, demonstra a resiliência do software livre – quando uma empresa falha, a comunidade pode continuar. Segundo, liberta o Sandstorm das pressões comerciais de crescimento insustentável, permitindo-lhe focar-se no que realmente importa: servir bem os seus utilizadores.

O Que É o Sandstorm?

Tecnicamente, o Sandstorm é uma plataforma de produtividade web auto-hospedada, implementada como um gestor de pacotes de aplicações com segurança reforçada. Mas isso não nos diz grande coisa, pois não?
Deixem-me explicar de forma mais clara: imaginem que têm um servidor – seja um Raspberry Pi, um VPS na cloud, ou um servidor dedicado em casa. Instalam o Sandstorm uma única vez. A partir desse momento, podem instalar dezenas de aplicações web diferentes – editores de documentos, gestores de tarefas, wikis, chats, repositórios Git, ferramentas de gestão de projetos – com literalmente dois cliques.
Cada aplicação que instalam vem num pacote self-contained. Não têm de configurar bases de dados, não têm de editar ficheiros de configuração, não têm de lidar com dependências ou conflitos entre versões. É plug-and-play, mas para servidores.
A sua verdadeira beleza, porém, não está na facilidade de instalação – está no modelo de segurança revolucionário que o Sandstorm implementa.

O Modelo de Segurança: Grains

O Sandstorm introduz um conceito chamado “grain” (grão, em português) que modifica a forma como pensamos sobre aplicações web.

Aqui está a diferença fundamental: quando instalamos uma aplicação típica como o WordPress ou o Nextcloud, temos uma instância da aplicação que gere todos os nossos dados. Se essa aplicação tiver uma vulnerabilidade de segurança, todos os nossos dados ficam em risco.
O Sandstorm inverte isto. Quando instalamos uma aplicação no Sandstorm – digamos, o Etherpad para edição colaborativa de documentos – não obtemos uma única instância do Etherpad. Em vez disso, cada documento individual torna-se um grain separado, executando a sua própria instância isolada do Etherpad.
Criam um documento chamado “Plano de Negócios 2025”? É um grain. Criam outro documento chamado “Lista de Compras”? É outro grain completamente separado. Cada um executa num container Linux isolado, com o seu próprio filesystem, o seu próprio conjunto de processos, e – crucialmente – as suas próprias regras de controlo de acesso.

Isto significa que mesmo que o Etherpad tenha uma vulnerabilidade de segurança que normalmente permitiria a um utilizador aceder a documentos que não devia, essa vulnerabilidade fica contida ao grain individual. O atacante poderia comprometer o documento a que tem acesso, mas não conseguiria saltar para outros documentos porque esses estão em containers completamente diferentes.
Esta é a diferença entre arquitecturas de microserviços tradicionais e o que o Sandstorm chama “containerização de objectos”. Em vez de isolar serviços por função (frontend, backend, base de dados), o Sandstorm isola por dados do utilizador. É uma mudança de paradigma profunda.

Segurança em Camadas: Quanto Detalhe Consegue o Sandstorm?

O modelo de grains é apenas a primeira camada. O Sandstorm implementa várias outras técnicas de segurança inovadoras:

Hostnames Aleatórios por Sessão: Cada vez que abrem um grain, o Sandstorm atribui-lhe um hostname criptograficamente aleatório que expira pouco depois de fecharem o tab. Isto mitiga automaticamente ataques XSRF, XSS refletido, e clickjacking – porque o atacante precisaria de conhecer o endereço para atacar, e esse endereço muda constantemente.

Sandboxing Baseado em Namespaces Linux: Cada grain executa num container seguro usando as mesmas funcionalidades do kernel Linux que Docker e LXC usam, mas com controlo mais granular. O sistema de ficheiros da aplicação é montado read-only, com apenas /var disponível para escrita. A superfície de ataque do kernel é reduzida usando seccomp-bpf para bloquear system calls desnecessários.

Isolamento de Rede por Cap’n Proto: A única forma de uma aplicação comunicar com o mundo exterior é através de um socket Cap’n Proto. Não há acesso direto à rede. Isto significa que mesmo que uma aplicação seja comprometida, não pode “telefonar para casa” ou exfiltrar dados sem permissão explícita.

Controlo de Acesso ao Nível do Container: Quando partilham um documento Etherpad, não estão a dizer ao Etherpad quem tem acesso – estão a dizer ao Sandstorm. O Sandstorm é que faz o enforcement. Nenhum bug no Etherpad pode contornar isto porque o controlo de acesso acontece fora da aplicação, ao nível da plataforma.

O resultado? O Sandstorm afirma – e tem o histórico de segurança para o provar – que mitiga automaticamente 95% das vulnerabilidades de segurança em aplicações. A sua página de “Security Non-Events” documenta dezenas de CVEs críticos em aplicações como WordPress, Roundcube, e até vulnerabilidades do kernel Linux que simplesmente não funcionaram contra aplicações executando no Sandstorm.

As Aplicações: Um Ecossistema Curado mas Extensível

O Sandstorm não vem vazio. Por defeito, cada novo utilizador obtém acesso imediato a quatro aplicações essenciais:

Etherpad: Editor de documentos colaborativo em tempo real. Pensem no Google Docs, mas completamente privado e sob o vosso controlo. Múltiplos utilizadores podem editar simultaneamente, com controlo de versões integrado.

Wekan: Gestor de tarefas estilo Kanban, à semelhança do Trello. Óptimo para gestão de projectos, organização pessoal, ou acompanhamento de workflows complexos.

Rocket.Chat: Plataforma de chat moderno, uma alternativa open source ao Slack. Suporta canais públicos, mensagens directas, partilha de ficheiros, e até chamadas de voz/vídeo.

Davros: Sistema de sincronização e partilha de ficheiros. Funciona como Dropbox ou Google Drive, mas os ficheiros ficam no vosso servidor.

Mas a verdadeira força do Sandstorm está no App Market. Podem instalar dezenas de outras aplicações com a mesma facilidade: GitLab para repositórios Git, EtherCalc para folhas de cálculo colaborativas, WordPress para blogs, MediaWiki para wikis, e muito mais.
Cada aplicação vem com actualizações automáticas geridas pelo Sandstorm. Não têm de monitorizar manualmente se há novas versões ou patches de segurança – o sistema cuida disso.

Integração Entre Aplicações: O Powerbox

Outra, para mim,  das funcionalidades mais elegantes do Sandstorm é o sistema Powerbox, que permite às aplicações comunicarem entre si de forma segura sem comprometer o isolamento.

Imaginem este cenário: estão a trabalhar num documento no Etherpad e querem partilhá-lo com a vossa equipa que está numa sala de chat do Rocket.Chat. Em sistemas tradicionais, teriam de copiar um link, voltar ao chat, colar o link, e garantir que as permissões estão correctas.
No Sandstorm, clicam num botão dentro do Rocket.Chat, escolhem o documento Etherpad, e pronto. O Sandstorm gere automaticamente as permissões, garante que todos na sala têm acesso, e não há links secretos a circular que possam cair nas mãos erradas.
Este sistema de capacidades (capabilities) baseado em objectos permite que aplicações colaborem mantendo segurança forte. É o melhor dos dois mundos: a conveniência de serviços cloud integrados com a segurança de isolamento total.

Para Quem É o Sandstorm?

Enquanto o FreedomBox é perfeito para começar e para utilizadores não-técnicos que querem simplesmente “ter um servidor”, o Sandstorm é o próximo passo natural para quem quer:

Equipas Pequenas a Médias: Empresas com 5-50 pessoas que precisam de múltiplas ferramentas de produtividade mas não querem pagar subscrições mensais caras a dezenas de serviços SaaS diferentes. O Sandstorm pode substituir uma stack completa de ferramentas cloud mantendo tudo centralizado e seguro.

Utilizadores Mais Avançados: Pessoas que já têm alguma experiência com Linux e self-hosting mas estão cansadas de passar fins de semana a configurar e manter aplicações individuais. O Sandstorm reduz drasticamente o overhead de manutenção.

Ambientes Educacionais: Universidades e escolas que querem oferecer ferramentas colaborativas aos alunos sem os sujeitar a vigilância corporativa ou violações de privacidade inerentes a serviços comerciais.

Organizações com Requisitos de Compliance: Entidades que precisam de manter dados sensíveis sob controlo directo por razões regulamentares (GDPR, HIPAA, etc.) mas querem a conveniência de aplicações web modernas.

Developers e Criadores de Apps: O Sandstorm oferece um modelo de distribuição interessante para quem desenvolve aplicações web. Podem empacotar a vossa aplicação uma vez e os utilizadores podem instalá-la facilmente nos seus próprios servidores.

Os Trade-offs: O Que Precisa Saber

Seria desonesto não discutir as limitações. O Sandstorm não é perfeito, e o modelo de segurança tem custos:

Overhead de Recursos: Executar cada documento num container separado consome mais memória e CPU do que ter uma única instância partilhada. Para uso pessoal ou equipas pequenas isto raramente é problema, mas não escala infinitamente.

Limitações de Rede: O isolamento rigoroso significa que aplicações não podem fazer pedidos HTTP arbitrários ao exterior. Isto é uma feature de segurança, mas significa que algumas aplicações podem precisar de modificações para funcionar correctamente no Sandstorm.

Ecossistema de Apps: Embora o App Market tenha dezenas de aplicações, não é tão vasto como os repositórios Docker ou o universo de plugins WordPress. Se precisam de uma aplicação muito específica ou obscura, pode não estar disponível.

Maturidade da Comunidade: O Sandstorm está numa fase de transição. A comunidade é dedicada mas pequena comparada com projectos como Nextcloud ou Docker. Isto significa que o ritmo de desenvolvimento pode ser mais lento e o suporte comunitário menos imediato.

Curva de Aprendizagem Conceptual: Embora a instalação seja simples, entender o modelo de grains e como pensar sobre aplicações de forma diferente requer algum ajuste mental.

Como Começar: O Vosso Roadmap

Se o Sandstorm vos parece interessante, aqui está como dar os primeiros passos:

Passo 1 – Avaliem as Vossas Necessidades: Façam uma lista das aplicações web que usam regularmente. O Sandstorm substituí-las-ia? Quais são os vossos must-haves absolutos?

Passo 2 – Escolham a Infraestrutura: Ao contrário do FreedomBox que funciona bem em hardware modesto, o Sandstorm beneficia de ter recursos decentes. Um VPS com 2GB+ de RAM é um bom ponto de partida. Alternativamente, podem usar um mini-PC ou NUC em casa.

Passo 3 – Instalação: A instalação do Sandstorm é surpreendentemente simples. Um único comando (curl https://install.sandstorm.io | bash) inicia um wizard interactivo que vos guia através do processo. O sistema oferece até um serviço gratuito de DNS (sandcats.io) que facilita o acesso sem precisarem de configurar DNS manualmente.

Passo 4 – Experimentem as Apps Incluídas: Comecem pelas quatro aplicações que vêm pré-instaladas. Criem alguns documentos no Etherpad, montem um quadro Kanban no Wekan, testem o Rocket.Chat. Habituem-se ao conceito de grains.

Passo 5 – Explorem o App Market: Quando se sentirem confortáveis, explorem o App Market. Instalem uma ou duas aplicações adicionais que vos interessem. Vejam como é fácil o processo.

Passo 6 – Integrem no Workflow: O verdadeiro teste é usar o Sandstorm para tarefas reais do dia-a-dia. Substituam gradualmente os serviços cloud que usam pelas alternativas no Sandstorm.

Passo 7 – Configurem Backups: Isto é crucial. O Sandstorm facilita exportar todos os vossos grains como ficheiros. Configurem um processo regular de backup – pode ser tão simples como um cron job que copia tudo para outro servidor ou disco externo.

O Contexto Maior: Porque Isto Importa Agora

Vivemos num momento paradoxal. Por um lado, temos mais ferramentas digitais poderosas do que nunca. Por outro, cedemos controlo total dessas ferramentas e dos nossos dados a um punhado de corporações gigantes.
Recentemente escrevi sobre como a Anthropic mudou os termos de serviço do Claude.ai para reter dados por cinco anos. A Microsoft lê os vossos documentos no Office 365 para treinar modelos de IA. A Google analisa todos os vossos emails. O Slack tem acesso a todas as conversas internas da vossa empresa.
Isto não é paranóia – está nos termos de serviço que todos aceitamos sem ler.

O modelo económico é claro: se o serviço é gratuito, vocês são o produto. Os vossos dados, padrões de comportamento, relações sociais, ideias criativas – tudo é minerado, analisado, e monetizado.

O Sandstorm, como o FreedomBox, oferece uma alternativa. Não é uma solução completa ou perfeita para todos os problemas da internet moderna. Mas é uma afirmação de que é possível ter ferramentas digitais poderosas sem ceder soberania sobre os nossos dados.

Self-Hosting Como Acto de Desafio Político e Económico

Existe uma narrativa dominante de que os serviços cloud são simplesmente superiores – mais convenientes, mais fiáveis, mais seguros. Mas esta narrativa convenientemente ignora os custos ocultos:

Custo de Vigilância: Cada acção, cada documento, cada mensagem é registada, analisada, e potencialmente usada contra vós ou vendida a terceiros.

Custo de Lock-in: Quanto mais investem numa plataforma, mais difícil é sair. Os formatos proprietários, APIs fechadas, e dependências criadas intencionalmente tornam a migração quase impossível.

Custo de Censura: Plataformas centralizadas podem remover o vosso conteúdo, suspender a vossa conta, ou cortar o vosso acesso a qualquer momento, por qualquer razão.

Custo Financeiro Cumulativo: As subscrições mensais parecem pequenas individualmente, mas somam-se rapidamente. Uma empresa média paga milhares de euros por ano em serviços SaaS que poderiam ser self-hosted.

O Sandstorm, neste contexto, não é apenas uma ferramenta técnica – é uma declaração de independência digital. É escolher pagar uma vez por hardware e controlar permanentemente a infraestrutura, em vez de pagar para sempre por conveniência temporária.

A Evolução Continua: FreedomBox → Sandstorm → ?

Se o FreedomBox é o primeiro passo – estabelecer a vossa base, ter um servidor básico a funcionar – o Sandstorm é o segundo: construir sobre essa base uma suite completa de aplicações produtivas.

O terceiro passo? Depende de vocês. Alguns poderão querer aprender mais e mergulhar em soluções mais complexas como Kubernetes para orquestração em larga escala. Outros poderão querer contribuir para projectos como o Sandstorm, ajudando a expandir o ecossistema de aplicações.

O importante é que cada passo vos dá mais controlo, mais conhecimento, e mais opções. E num mundo onde as opções reais estão a diminuir rapidamente, isso é inestimável.

Reflexão Final: A Tecnologia Que Serve as Pessoas

O Sandstorm representa uma visão diferente de computação – uma onde a tecnologia serve as pessoas, não as corporações. Onde a segurança é default, não um extra pago. Onde o controlo dos dados está nas mãos de quem os cria. Esta visão quase foi perdida quando a startup falhou. Mas sobreviveu porque uma comunidade acreditou nela o suficiente para a manter viva. Isso diz-nos algo importante sobre o poder do software livre e da colaboração comunitária.
O Sandstorm não vai substituir os gigantes tecnológicos da noite para o dia. Não vai convencer nenhuma empresa a abandonar a conveniência do cloud. Mas para aqueles que valorizam privacidade, controlo, e soberania digital – para aqueles que estão dispostos a investir um pouco de tempo e esforço em troca de autonomia – oferece algo genuinamente raro e valioso.

Oferece escolha. Oferece controlo. Oferece dignidade digital.

A infraestrutura está pronta. O software é maduro. A comunidade existe e está activa.
A única questão que resta é: estão prontos para dar o próximo passo?

Até ao próximo post. Um abraço.

Nuno

Recursos Úteis:

  • Site oficial: https://sandstorm.org
  • Documentação: https://docs.sandstorm.io
  • Repositório GitHub: https://github.com/sandstorm-io/sandstorm
  • App Market: https://apps.sandstorm.io