Como Hospedar e Compartilhar Grandes Arquivos Online com PicoShare no Linux

Picoshare é um aplicativo web leve e altamente acessível para compartilhamento de arquivos no Linux. Ele fornece uma interface fácil de usar onde você pode fazer upload e compartilhar arquivos do seu próprio servidor. Este artigo mostrará como instalar o Picoshare e compartilhar arquivos online usando Docker no Ubuntu Linux.
Índice
- Por que usar o Picoshare para compartilhar arquivos online
- Instalando os pré-requisitos para o Picoshare
- Instalando e executando o Picoshare
- Protegendo o Picoshare com um proxy reverso SSL
- Testando o Picoshare e fazendo upload do seu primeiro arquivo
Por que usar o Picoshare para compartilhar arquivos online
Um dos maiores pontos de venda do Picoshare é que é fácil de implantar em qualquer plataforma baseada em Linux. Com a ajuda do Docker, você pode compartilhar arquivos online com o Picoshare sem se preocupar com dependências do Linux e compatibilidade de programas.
Outro ponto de venda do Picoshare é que ele não manipula os arquivos que você faz upload para sua plataforma. Isso o torna útil para compartilhar fotos e vídeos, já que você pode ter certeza de que o servidor não irá re-encodar sua mídia enquanto você a faz upload.

Por fim, o Picoshare vem com a capacidade de duplicar seu armazenamento de arquivos para soluções de armazenamento de objetos externas. Por exemplo, você pode vincular seu bucket compatível com Amazon S3 ao seu servidor Picoshare e criar um backup 1:1 do conteúdo do seu servidor. Isso facilita a restauração de dados ao migrar de um sistema para outro.
Instalando os pré-requisitos para o Picoshare
Suposição: Este tutorial é feito em uma máquina Ubuntu 24.04 com pelo menos 2 GB de RAM e 50 GB de espaço em disco. Você precisará ter um nome de domínio para o qual pode criar registros “A”. Por fim, este artigo usará o DigitalOcean Spaces como seu backend de armazenamento de objetos compatível com S3.
Nota: Embora as instruções aqui sejam para Ubuntu, elas também devem funcionar para a maioria das distribuições Linux.
O primeiro passo para instalar o Picoshare é obter tanto o Docker quanto o Nginx para seu sistema host (para outras distribuições Linux, aqui está como instalar o Docker em seus sistemas Linux). Para começar, recupere a chave de assinatura para o repositório do projeto Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |sudo gpg --dearmor-o/etc/apt/keyrings/docker.gpg
sudochmod a+r /etc/apt/keyrings/docker.gpgCrie um novo arquivo de repositório apt usando seu editor de texto favorito:
sudonano/etc/apt/sources.list.d/docker.listCole a seguinte linha de código dentro do seu novo arquivo de repositório:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stableSalve seu arquivo de repositório, depois atualize tanto as listagens de repositório do sistema quanto seus pacotes atuais:
sudo apt update &&sudo apt upgradeInstale o Docker, Docker Compose e Nginx usando apt no Ubuntu:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginxCriando um Backup de Armazenamento em Nuvem para o Picoshare
Vá para seu provedor de armazenamento em nuvem compatível com S3 e crie um novo bucket de armazenamento. Neste caso, estou usando o DigitalOcean Spaces, então clicarei em Criar -> Armazenamento de Objetos Spaces na tela do meu painel.

Selecione uma localização de Data Center para seu armazenamento compatível com S3 e marque a caixa Habilitar CDN.

Forneça um nome para seu novo bucket Spaces e clique em Criar um Bucket Spaces para inicializá-lo.

Clique no Ícone de Copiar na caixa de texto do Endpoint de Origem e cole-o em um arquivo de texto separado.

Role pela barra lateral esquerda do seu Painel DigitalOcean e clique na categoria API.
Clique na aba Chaves do Spaces e selecione Gerar Nova Chave.
Forneça um nome para sua nova chave e clique em Criar Chave de Acesso.
Copie tanto a “Chave de Acesso” quanto a “Chave Secreta” da página e cole-as em seu arquivo de texto.

Instalando e Executando o Picoshare
Crie uma nova pasta para o Picoshare dentro do diretório home do seu usuário e entre nela:
mkdir ~/picoshare &&cd ~/picoshareUse seu editor de texto favorito para criar o arquivo Compose para o Picoshare:
nano ./docker-compose.ymlCole o seguinte bloco de código dentro do seu novo arquivo .yml:
version: "3.2"
services:
picoshare:
image: mtlynch/picoshare
environment:
- PORT=4001
- PS_SHARED_SECRET=RANDOM PASSWORD HERE
- LITESTREAM_BUCKET="YOUR BUCKET NAME"
- LITESTREAM_ENDPOINT="YOUR ORIGIN ENDPOINT HERE"
- LITESTREAM_ACCESS_KEY_ID="YOUR BUCKET ACCESS ID HERE"
- LITESTREAM_SECRET_ACCESS_KEY="YOUR BUCKET SECRET HERE"
ports:
- 4001:4001
command: -db /data/store.db
volumes:
- ./data:/dataSubstitua o valor da variável “PS_SHARED_SECRET” por uma senha suficientemente longa e aleatória. Esta será a senha para a interface web do Picoshare.

Nota: você pode gerar sua própria senha aleatória executando: cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1 em uma sessão de terminal separada.
Altere o valor da variável “LITESTREAM_BUCKET” para o nome do seu bucket Spaces.

Copie a região e a parte do nome do domínio do seu endpoint e cole como o valor da sua variável “LITESTREAM_ENDPOINT”.

Substitua os valores das variáveis “LITESTREAM_ACCESS_KEY_ID” e “LITESTREAM_SECRET_ACCESS_KEY” pelas Chaves de Acesso e Secreta do bucket do DigitalOcean Spaces.

Salve seu arquivo docker-compose.yml e, em seguida, execute o seguinte comando para construir e executar a instância do Picoshare:
sudodocker compose up -dA título de curiosidade: você também pode usar Docker e Docker Compose para hospedar rapidamente um servidor Minecraft em sua máquina Linux.
Protegendo o Picoshare com um Proxy Reverso SSL
Neste ponto, você já tem o Picoshare rodando na porta 4001 em sua máquina local. Para acessá-lo de forma segura na internet, você precisa garantir que todas as conexões com ele sejam criptografadas via SSL.
Comece criando um novo registro “A” para seu nome de domínio apontando para o endereço IPv4 do seu servidor Picoshare. No meu caso, criarei um registro “A” com o valor “picoshare.”
Instale o pacote snap “core” em seu sistema Ubuntu:
sudo snap install coreBusque o pacote snap certbot da Electronic Frontier Foundation (EFF):
sudo snap install certbot --classicCrie um novo arquivo de configuração de site Nginx usando seu editor de texto favorito:
sudonano/etc/nginx/sites-available/picoshareCole o seguinte bloco de código dentro do seu arquivo de configuração do site:
server{
server_name SUBDOMAIN.YOUR-ROOT.DOMAIN;
location / {
proxy_passhttp://127.0.0.1:4001;
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
client_max_body_size 0m;
}
}Salve seu arquivo de configuração do site e, em seguida, crie um link simbólico do seu diretório “/etc/nginx/sites-available/“ para sua pasta “/etc/nginx/sites-enabled/“:
sudoln-s/etc/nginx/sites-available/picoshare /etc/nginx/sites-enabled/Verifique seu arquivo de configuração do Nginx em busca de erros e, em seguida, inicie o daemon do servidor web Nginx usando systemctl:
nginx -t
sudo systemctl enable--now nginx.service
Registre seu servidor Picoshare usando a ferramenta certbot da EFF:
sudo certbot register --agree-tos-m [email protected]Gere um novo certificado SSL apontando para o nome de domínio do seu servidor:
sudo certbot --nginx-d SUBDOMAIN.YOUR-ROOT.DOMAINBom saber: aprenda como o HTTPS protege seus dados online gerando seu próprio certificado SSL com OpenSSL.
Testando o Picoshare e Fazendo Upload do Seu Primeiro Arquivo
Abra um navegador web e navegue até seu subdomínio para carregar a página inicial do Picoshare.

Clique no botão Entrar no canto superior direito da página.
Forneça o valor da “PS_SHARED_SECRET” na caixa de texto Senha, e clique em Autenticar para fazer login.

Verifique se você pode salvar dados em seu servidor Picoshare clicando no botão Upload e, em seguida, selecione um arquivo de exemplo através do menu de seleção.

Copie o primeiro link que o servidor retorna para o usuário com quem você deseja compartilhar seu arquivo.

Habilitar Uploads Temporários de Convidados no Picoshare
Além dos uploads enviados por usuários, você também pode criar links temporários que permitem que usuários anônimos façam upload de arquivos únicos em seu servidor. Isso pode ser útil se você tiver alguém que precisa compartilhar arquivos com você, mas não consegue fazer upload de arquivos para um serviço de nuvem regular.
Comece clicando na categoria Links de Convidados na página inicial do Picoshare.

Clique no botão Criar Novo logo acima da tabela de visão geral de links vazia.
Forneça os detalhes básicos para seu link de upload de convidado. No meu caso, vou rotulá-lo como “MakeTechEasier” e definir a expiração para Nunca, com um limite de tamanho de arquivo de 100MB e um limite total de 10 uploads.

Clique em Criar para gerar o link temporário de convidado para sua instância do Picoshare.
Clique no Ícone de Copiar no lado direito do link de convidado e envie o conteúdo da sua área de transferência para o destinatário pretendido.

Implantar e proteger o Picoshare para compartilhar arquivos online usando Linux é apenas o primeiro passo para recuperar sua privacidade digital online. Aprenda como você pode se proteger ainda mais hospedando seu próprio servidor de aliases de e-mail usando o SimpleLogin.
Crédito da imagem: Alejandro Escamilla via Unsplash e PicoShare Github. Todas as alterações e capturas de tela por Ramces Red.