Índice do diárioDockup / nota de campo
Note / self-host-picoshare

Como fazer self-hosting do PicoShare em 2026: uploads, segredos compartilhados e armazenamento

Faça self-hosting do PicoShare com portas corretas, armazenamento persistente, HTTPS, segredos, backups e verificações de upgrade. Saiba como corrigir problemas quando os uploads atingem os limites do proxy.

Fazer self-hosting do PicoShare se torna interessante no primeiro redeploy, não no primeiro docker run. Se os uploads atingirem os limites do proxy ou os arquivos desaparecerem por causa de um caminho /data efêmero, o Docker ainda poderá indicar que o processo está perfeitamente saudável. A implantação abaixo é organizada com base em comportamentos observáveis: fazer upload de um arquivo, baixá-lo em um navegador novo, testar expiração ou exclusão e repetir o processo com um arquivo próximo ao limite de tamanho escolhido.

A finalidade do PicoShare é clara: compartilhamento mínimo de arquivos que transforma uploads em links. Essa descrição indica o que precisa permanecer público, o que deve continuar privado e o que um backup precisa reconstruir.

Torne a recuperação do PicoShare mensurável

Crie um manifesto de recuperação para o PicoShare: arquivos enviados e metadados do PicoShare em /data. Monte /data antes do bootstrap, grave dados de exemplo inofensivos e substitua o container para provar que esse caminho é realmente persistente. Verifique agora as permissões e o espaço livre, porque um caminho montado, mas sem permissão de escrita, se comporta como se não houvesse persistência alguma.

Faça o backup em um domínio de falha separado do servidor em execução. Recrie o PicoShare a partir da imagem fixada e verifique se os bytes enviados e os metadados retornam e se uma amostra dos links existentes baixa arquivos com hashes correspondentes. O guia sobre volumes persistentes ajuda a transformar esse exercício em uma política de snapshots e retenção.

A estrutura de produção do PicoShare

O processo HTTP do PicoShare escuta na porta 4001; mantenha essa porta na rede da aplicação e publique apenas a rota da plataforma. O requisito do runtime local é um volume de dados durável e espaço em disco suficiente para os arquivos retidos. Documente a capacidade esperada, as permissões e o modo de falha, em vez de deixar essas definições como padrão da imagem.

Registre o limite em um contrato curto: quem é responsável pelo requisito, qual credencial é usada, qual timeout é aceitável e como a falha se manifesta. Em seguida, execute esta transação: faça upload de um arquivo, baixe-o em um navegador novo, teste expiração ou exclusão e repita o processo com um arquivo próximo ao limite de tamanho escolhido. Observe a capacidade do disco, a largura de banda dos uploads, os limites do corpo das requisições do proxy e os downloads concorrentes durante a execução, pois essa carga fornece um ponto de partida mais útil para o dimensionamento do que um container ocioso.

O release gate do PicoShare

Transforme o smoke test do PicoShare em um comando de release repetível ou em um runbook curto. A saída deve demonstrar este resultado: fazer upload de um arquivo, baixá-lo em um navegador novo, testar expiração ou exclusão e repetir o processo com um arquivo próximo ao limite de tamanho escolhido. Registre a versão da aplicação, o digest do container, o hostname da rota e o identificador dos dados de teste junto com o resultado.

Execute a mesma verificação após uma substituição rotineira do container e depois de restaurar os arquivos enviados e os metadados do PicoShare em /data em outro local. A restauração foi bem-sucedida quando os bytes enviados e os metadados retornam e uma amostra dos links existentes baixa arquivos com hashes correspondentes. Compare o tempo e o consumo relacionados à capacidade do disco, à largura de banda dos uploads, aos limites do corpo das requisições do proxy e aos downloads concorrentes; uma grande variação merece investigação mesmo quando a ação final ainda passa.

Em seguida, simule uma falha segura: envie uma entrada inofensiva próxima ao limite de recurso ou formato associado a este limite: os uploads atingem os limites do proxy ou os arquivos desaparecem por causa de um caminho /data efêmero. Confirme que o PicoShare sinaliza a falha e retorna ao estado normal sem edições manuais destrutivas. Preserve apenas o trecho de log necessário e com dados redigidos. Esse gate de quatro partes cobre inicialização, persistência, recuperação e tratamento de falhas.

Configurações do container que vale a pena revisar

Inicie o PicoShare de forma que a rota permaneça privada até a conclusão do bootstrap.

docker run -d \
  --name picoshare \
  --restart unless-stopped \
  -p 127.0.0.1:4001:4001 \
  -v picoshare-data:/data \
  -e PS_SHARED_SECRET=replace-with-a-long-random-value \
  mtlynch/picoshare:latest

Se o processo entrar em loop, compare o usuário esperado pela imagem com o proprietário de cada caminho montado. Se permanecer em execução, teste a porta 4001 localmente e passe diretamente ao fluxo de trabalho: faça upload de um arquivo, baixe-o em um navegador novo, teste expiração ou exclusão e repita o processo com um arquivo próximo ao limite de tamanho escolhido. Fixe a versão da imagem somente depois que essa verificação de ponta a ponta passar e registre a configuração exata junto ao serviço.

Reduza as permissões do PicoShare

As credenciais de bootstrap são temporárias; o modelo de confiança é permanente. No PicoShare, evite usar um segredo compartilhado fácil de adivinhar ou oferecer armazenamento anônimo ilimitado. Use um segredo compartilhado longo, aplique rate limiting aos uploads e evite transformar o serviço em um armazenamento anônimo sem limites.

Substitua imediatamente o valor de exemplo de PS_SHARED_SECRET, armazene-o fora da imagem e faça a rotação como faria com uma credencial de administrador se ele for exposto. Execute a imagem sem capabilities do Linux desnecessárias e exponha apenas a rota pública da aplicação. Mantenha a atividade administrativa visível sem registrar valores secretos.

Configure a rota do PicoShare sem mascarar o HTTPS

Evite origens públicas temporárias e permanentes para o PicoShare. Em vez disso, publique uma única origem HTTPS, dimensione o proxy para os uploads esperados, aponte o nome DNS escolhido para a rota da plataforma e faça proxy somente para a porta 4001.

Execute esta ação de fora do host: faça upload de um arquivo, baixe-o em um navegador novo, teste expiração ou exclusão e repita o processo com um arquivo próximo ao limite de tamanho escolhido. Se o ingress falhar, o guia de troubleshooting de 502 aborda erros de porta e listener. Se o PicoShare receber a requisição, mas os uploads atingirem os limites do proxy ou os arquivos desaparecerem por causa de um caminho /data efêmero, as evidências agora apontam para além do proxy.

Verificações de capacidade e upgrade

Uma verificação de health ociosa diz pouco sobre o PicoShare. Monitore a capacidade do disco, a largura de banda dos uploads, os limites do corpo das requisições do proxy e os downloads concorrentes. Em seguida, alerte com base no sintoma percebido pelos usuários: falha na ação “fazer upload de um arquivo, baixá-lo em um navegador novo, testar expiração ou exclusão e repetir o processo com um arquivo próximo ao limite de tamanho escolhido”. Mantenha o liveness local e barato; permita que o readiness informe migrações ou inicializações sem causar uma tempestade de reinicializações.

A área de risco do upgrade é que os metadados e o layout de arquivos do PicoShare devem ser verificados antes do upgrade, porque o link só é útil enquanto ambos estão de acordo. Leia as release notes, crie um snapshot do estado, faça o deploy da versão desejada sobre uma cópia restaurada e repita a ação de aceitação. Se os uploads atingirem os limites do proxy ou os arquivos desaparecerem por causa de um caminho /data efêmero, correlacione a requisição do cliente com o primeiro log relevante da aplicação, em vez de excluir o estado ou adicionar redirects às cegas.

Faça o deploy do PicoShare no Dockup sem perder esses limites

O Dockup elimina o trabalho manual de reverse proxy e do ciclo de vida ao redor do PicoShare. O serviço recebe uma rota HTTPS estável para a porta 4001, configuração injetada e armazenamento persistente durante as substituições. Um servidor do cliente conectado segue o mesmo modelo do compute hospedado no Dockup.

Após o lançamento, cumpra o contrato da aplicação: publique uma única origem HTTPS, dimensione o proxy para os uploads esperados, confirme o requisito local — um volume de dados durável e espaço em disco suficiente para os arquivos retidos — e execute esta prova: faça upload de um arquivo, baixe-o em um navegador novo, teste expiração ou exclusão e repita o processo com um arquivo próximo ao limite de tamanho escolhido. Isso mantém a experiência de um clique útil sem eliminar os detalhes que tornam o PicoShare recuperável e seguro.

Perguntas frequentes

O que o PicoShare precisa para uma implantação em produção?

Encaminhe o container do PicoShare na porta 4001 por meio de uma única origem HTTPS. O requisito do runtime local é um volume de dados durável e espaço em disco suficiente para os arquivos retidos. Não considere o PicoShare pronto até conseguir fazer upload de um arquivo, baixá-lo em um navegador novo, testar expiração ou exclusão e repetir o processo com um arquivo próximo ao limite de tamanho escolhido.

Quais dados do PicoShare devem fazer parte de um backup?

Mantenha /data persistente e inclua os arquivos enviados e os metadados do PicoShare em /data no mesmo manifesto de recuperação. Uma restauração limpa do PicoShare só será aprovada quando os bytes enviados e os metadados retornarem e uma amostra dos links existentes baixar arquivos com hashes correspondentes.

O PicoShare precisa de HTTPS atrás de um reverse proxy?

Use HTTPS para a origem pública do PicoShare e mantenha a porta 4001 na rota interna. Aplique corretamente a configuração do PicoShare: publique uma única origem HTTPS e dimensione o proxy para os uploads esperados. No PicoShare, o HTTPS protege credenciais ou conteúdo do usuário em trânsito e mantém consistente o comportamento do cliente sensível à origem.

Como testar um upgrade do PicoShare?

Restaure o estado atual do PicoShare em uma implantação isolada, aplique a versão candidata e repita sua transação de aceitação. Preste atenção especial, pois os metadados e o layout de arquivos do PicoShare devem ser verificados antes do upgrade, porque o link só é útil enquanto ambos estão de acordo. Mantenha a imagem anterior do PicoShare até entender os limites de migração de dados e rollback.