Come ospitare e condividere file di grandi dimensioni online con PicoShare in Linux

Una fotografia di una persona davanti a un laptop con un telefono in mano.

Picoshare è un’app web leggera e altamente accessibile per la condivisione di file su Linux. Fornisce un’interfaccia facile da usare dove puoi caricare e condividere file dal tuo server. Questo articolo ti mostrerà come installare Picoshare e condividere file online utilizzando Docker in Ubuntu Linux.

Indice dei contenuti

  • Perché usare Picoshare per condividere file online
  • Installazione dei prerequisiti per PicoShare
  • Installazione e esecuzione di PicoShare
  • Sicurezza di PicoShare con un proxy inverso SSL
  • Testare PicoShare e caricare il tuo primo file

Perché usare Picoshare per condividere file online

Uno dei principali punti di forza di PicoShare è che è estremamente facile da implementare su qualsiasi piattaforma basata su Linux. Con l’aiuto di Docker, puoi condividere file online con PicoShare senza preoccuparti delle dipendenze di Linux e della compatibilità dei programmi.

Un altro punto di forza di PicoShare è che non manipola i file che carichi sulla sua piattaforma. Questo lo rende utile per condividere immagini e video, poiché puoi essere certo che il server non ricodificherà i tuoi media mentre li carichi.

Uno screenshot di PicoShare in funzione su un server.

Infine, PicoShare offre la possibilità di duplicare il suo storage di file su soluzioni di storage oggetti esterne. Ad esempio, puoi collegare il tuo bucket compatibile con Amazon S3 al tuo server PicoShare e creare un backup 1:1 dei contenuti del tuo server. Questo rende facile ripristinare i dati quando si migra da un sistema all’altro.

Installazione dei prerequisiti per PicoShare

Assunzione: Questo tutorial è eseguito su una macchina Ubuntu 24.04 con almeno 2 GB di RAM e 50 GB di spazio su disco. Dovrai avere un nome di dominio per il quale puoi creare record “A”. Infine, questo articolo utilizzerà DigitalOcean Spaces per il suo backend di storage oggetti compatibile con S3.

Nota: Sebbene le istruzioni qui siano per Ubuntu, dovrebbero funzionare anche per la maggior parte delle distribuzioni Linux.

Il primo passo per installare PicoShare è ottenere sia Docker che Nginx per il tuo sistema host (per altre distribuzioni Linux, ecco come installare Docker sui tuoi sistemi Linux). Per iniziare, recupera la chiave di firma per il repository del progetto 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.gpg

Crea un nuovo file di repository apt utilizzando il tuo editor di testo preferito:

sudonano/etc/apt/sources.list.d/docker.list

Incolla la seguente riga di codice all’interno del tuo nuovo file di repository:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable

Salva il tuo file di repository, quindi aggiorna sia l’elenco dei repository del sistema che i suoi pacchetti attuali:

sudo apt update &&sudo apt upgrade

Installa Docker, Docker Compose e Nginx utilizzando apt in Ubuntu:

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx

Creazione di un backup di storage cloud per PicoShare

Vai al tuo fornitore di storage cloud compatibile con S3, quindi crea un nuovo bucket di storage. In questo caso, sto usando DigitalOcean Spaces, quindi cliccherò su Crea -> Spazi Storage Oggetti nella mia schermata del dashboard.

Uno screenshot che mostra la posizione dell'elemento di menu

Seleziona una posizione del datacenter per il tuo storage compatibile con S3, quindi seleziona la casella Abilita CDN.

Uno screenshot che mostra i pulsanti per configurare la posizione del bucket Spaces e se il bucket utilizzerà il CDN di DigitalOcean.

Fornisci un nome per il tuo nuovo bucket Spaces, quindi clicca su Crea un bucket Spaces per inizializzarlo.

Uno screenshot che mostra il prompt della casella di testo per il nome degli Spazi e la posizione del pulsante

Clicca sull’Icona Copia nella casella di testo dell’Endpoint di Origine e incollala in un file di testo separato.

Uno screenshot che evidenzia la posizione dell'icona Copia nel dashboard degli Spazi.

Scorri attraverso la barra laterale sinistra del tuo Dashboard di DigitalOcean, quindi clicca sulla categoria API.

Clicca sulla scheda Chiavi Spaces, quindi seleziona Genera Nuova Chiave.

Fornisci un nome per la tua nuova chiave, quindi clicca su Crea Chiave di Accesso.

Copia sia la “Chiave di Accesso” che la “Chiave Segreta” dalla pagina e incollale nel tuo file di testo.

Uno screenshot che mostra la posizione della Chiave di Accesso e della Chiave Segreta per il bucket Spaces.

Installazione e esecuzione di PicoShare

Crea una nuova cartella per PicoShare all’interno della directory home del tuo utente, quindi entra in essa:

mkdir ~/picoshare &&cd ~/picoshare

Usa il tuo editor di testo preferito per creare il file Compose per PicoShare:

nano ./docker-compose.yml

Incolla il seguente blocco di codice all’interno del tuo nuovo file .yml:

version: "3.2"  
services:  
  picoshare:  
    image: mtlynch/picoshare  
    environment:  
      - PORT=4001  
      - PS_SHARED_SECRET=PASSWORD RANDOM QUI  
      - LITESTREAM_BUCKET="IL TUO NOME DEL BUCKET"  
      - LITESTREAM_ENDPOINT="IL TUO ENDPOINT DI ORIGINE QUI"  
      - LITESTREAM_ACCESS_KEY_ID="IL TUO ID ACCESSO DEL BUCKET QUI"  
      - LITESTREAM_SECRET_ACCESS_KEY="LA TUA CHIAVE SEGRETA DEL BUCKET QUI"  
    ports:  
      - 4001:4001  
    command: -db /data/store.db  
    volumes:  
      - ./data:/data

Sostituisci il valore della variabile “PS_SHARED_SECRET” con una password sufficientemente lunga e casuale. Questa servirà come password per l’interfaccia web di PicoShare.

Un terminale che mostra la password condivisa generata casualmente per l'istanza PicoShare.

Nota: puoi generare la tua password casuale eseguendo: cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1 in una sessione di terminale separata.

Cambia il valore della variabile “LITESTREAM_BUCKET” con il nome del tuo bucket Spaces.

Un terminale che mostra il valore appropriato per il bucket compatibile con S3.

Copia la regione e la parte del nome di dominio del tuo endpoint, quindi incollala come valore della tua variabile “LITESTREAM_ENDPOINT”.

Uno screenshot che mostra il formato corretto per la variabile dell'endpoint compatibile con S3.

Sostituisci i valori delle variabili “LITESTREAM_ACCESS_KEY_ID” e “LITESTREAM_SECRET_ACCESS_KEY_ID” con la Chiave di Accesso e la Chiave Segreta del bucket di DigitalOcean Spaces.

Uno screenshot che mostra la Chiave di Accesso e la Chiave Segreta per l'istanza PicoShare.

Salva il tuo file docker-compose.yml, quindi esegui il seguente comando per costruire ed eseguire l’istanza PicoShare:

sudodocker compose up -d

Nota a margine: puoi anche usare Docker e Docker Compose per ospitare rapidamente un server Minecraft sulla tua macchina Linux.

Sicurezza di PicoShare con un proxy inverso SSL

A questo punto, hai PicoShare in esecuzione sulla porta 4001 sulla tua macchina locale. Per accedervi in modo sicuro su Internet, devi assicurarti che tutte le connessioni siano crittografate tramite SSL.

Inizia creando un nuovo record “A” per il tuo nome di dominio che punta all’indirizzo IPv4 del tuo server PicoShare. Nel mio caso, creerò un record “A” con il valore “picoshare.”

Installa il pacchetto snap “core” sul tuo sistema Ubuntu:

sudo snap install core

Recupera il pacchetto snap certbot dalla Electronic Frontier Foundation (EFF):

sudo snap install certbot --classic

Crea un nuovo file di configurazione del sito Nginx utilizzando il tuo editor di testo preferito:

sudonano/etc/nginx/sites-available/picoshare

Incolla il seguente blocco di codice all’interno del tuo file di configurazione del sito:

server{  

server_name SOTTODOMINIO.TUO-DOMINIO-ROOT;  

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;  
}  
}

Salva il tuo file di configurazione del sito, quindi crea un collegamento simbolico dalla tua directory “/etc/nginx/sites-available/“ alla tua cartella “/etc/nginx/sites-enabled/“:

sudoln-s/etc/nginx/sites-available/picoshare /etc/nginx/sites-enabled/

Controlla il tuo file di configurazione Nginx per eventuali errori, quindi avvia il demone del server web Nginx utilizzando systemctl:

ginx -t  
sudo systemctl enable--now nginx.service

Un terminale che mostra la verifica della configurazione e il comando systemctl per avviare il server web Nginx.

Registra il tuo server PicoShare utilizzando l’utilità certbot dell’EFF:

sudo certbot register --agree-tos-m [email protected]

Genera un nuovo certificato SSL che punta al nome di dominio del tuo server:

sudo certbot --nginx-d SOTTODOMINIO.TUO-DOMINIO-ROOT

Buono a sapersi: scopri come HTTPS protegge i tuoi dati online generando il tuo certificato SSL con OpenSSL.

Testare PicoShare e caricare il tuo primo file

Apri un browser web, quindi naviga verso il tuo sottodominio per caricare la pagina di atterraggio di PicoShare.

Uno screenshot che mostra la pagina di atterraggio di PicoShare in esecuzione su un VPS.

Clicca sul pulsante Accedi nell’angolo in alto a destra della pagina.

Fornisci il valore di “PS_SHARED_SECRET” nella casella di testo Frase Segreta, quindi clicca su Autenticati per accedere.

Uno screenshot che mostra il prompt di accesso per PicoShare.

Controlla se puoi salvare dati sul tuo server PicoShare cliccando sul pulsante Carica, quindi seleziona un file di esempio tramite il menu di selezione.

Uno screenshot che evidenzia la posizione del pulsante Carica nel dashboard interno.

Copia il primo link che il server restituisce all’utente a cui desideri condividere il tuo file.

Uno screenshot che evidenzia la posizione del primo link condivisibile nell'istanza PicoShare.

Abilitare caricamenti temporanei per ospiti su PicoShare

Oltre ai caricamenti inviati dagli utenti, puoi anche creare link temporanei che consentono agli utenti anonimi di caricare file singoli sul tuo server. Questo può essere utile se hai qualcuno che deve condividere file con te ma non può caricare file su un servizio cloud regolare.

Inizia cliccando sulla categoria Link per Ospiti nella homepage di PicoShare.

Uno screenshot che mostra la posizione della categoria

Clicca sul pulsante Crea Nuovo appena sopra la tabella di panoramica dei link vuota.

Fornisci i dettagli di base per il tuo link di caricamento per ospiti. Nel mio caso, lo etichetterò come “MakeTechEasier” e imposterò la scadenza su Mai con un limite di dimensione del file di 100 MB e un limite complessivo di 10 caricamenti.

Uno screenshot che mostra un modulo di Link per Ospiti completato.

Clicca su Crea per generare il link temporaneo per ospiti per la tua istanza PicoShare.

Clicca sull’Icona Copia sul lato destro del link per ospiti, quindi invia il contenuto degli appunti al destinatario previsto.

Uno screenshot che mostra la posizione dell'Icona Copia nella schermata dei Link per Ospiti.

Implementare e proteggere PicoShare per condividere file online utilizzando Linux è solo il primo passo per riappropriarsi della propria privacy digitale online. Scopri come puoi proteggerti ulteriormente ospitando il tuo server di alias email utilizzando SimpleLogin.

Crediti immagine: Alejandro Escamilla tramite Unsplash e PicoShare Github. Tutte le modifiche e gli screenshot di Ramces Red.