Cómo alojar y compartir archivos grandes en línea con PicoShare en Linux

Una fotografía de una persona frente a una laptop con un teléfono en la mano.

Picoshare es una aplicación web ligera y altamente accesible para compartir archivos en Linux. Proporciona una interfaz fácil de usar donde puedes subir y compartir archivos desde tu propio servidor. Este artículo te mostrará cómo instalar Picoshare y compartir archivos en línea usando Docker en Ubuntu Linux.

Tabla de Contenidos

  • Por qué usar Picoshare para compartir archivos en línea
  • Instalando los requisitos previos para PicoShare
  • Instalando y ejecutando PicoShare
  • Asegurando PicoShare con un proxy inverso SSL
  • Probando PicoShare y subiendo tu primer archivo

Por qué usar Picoshare para compartir archivos en línea

Uno de los mayores puntos de venta de PicoShare es que es muy fácil de implementar en cualquier plataforma basada en Linux. Con la ayuda de Docker, puedes compartir archivos en línea con PicoShare sin preocuparte por las dependencias de Linux y la compatibilidad del programa.

Otro punto de venta de PicoShare es que no manipula los archivos que subes a su plataforma. Esto lo hace útil para compartir imágenes y videos, ya que puedes estar seguro de que el servidor no volverá a codificar tus medios mientras los subes.

Una captura de pantalla de PicoShare funcionando en un servidor.

Por último, PicoShare viene con la capacidad de duplicar su almacenamiento de archivos a soluciones de almacenamiento de objetos externas. Por ejemplo, puedes vincular tu bucket compatible con Amazon S3 a tu servidor PicoShare y crear una copia de seguridad 1:1 del contenido de tu servidor. Esto facilita la restauración de datos al migrar de un sistema a otro.

Instalando los requisitos previos para PicoShare

Suposición: Este tutorial se realiza en una máquina Ubuntu 24.04 con al menos 2 GB de RAM y 50 GB de espacio en disco. Necesitarás tener un nombre de dominio para el cual puedas crear registros “A”. Por último, este artículo usará DigitalOcean Spaces como su backend de almacenamiento de objetos compatible con S3.

Nota: Aunque las instrucciones aquí son para Ubuntu, también deberían funcionar para la mayoría de las distribuciones de Linux.

El primer paso para instalar PicoShare es obtener tanto Docker como Nginx para tu sistema anfitrión (para otras distribuciones de Linux, aquí está cómo instalar Docker en tus sistemas Linux). Para comenzar, recupera la clave de firma para el repositorio del proyecto 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 nuevo archivo de repositorio apt usando tu editor de texto favorito:

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

Pega la siguiente línea de código dentro de tu nuevo archivo de repositorio:

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

Guarda tu archivo de repositorio, luego actualiza tanto las listas de repositorios del sistema como sus paquetes actuales:

sudo apt update &&sudo apt upgrade

Instala Docker, Docker Compose y Nginx usando apt en Ubuntu:

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

Creando una copia de seguridad de almacenamiento en la nube para PicoShare

Ve a tu proveedor de almacenamiento en la nube compatible con S3, luego crea un nuevo bucket de almacenamiento. En este caso, estoy usando DigitalOcean Spaces, así que haré clic en Crear -> Almacenamiento de Objetos Spaces en mi pantalla de panel de control.

Una captura de pantalla que muestra la ubicación del elemento de menú

Selecciona una ubicación de centro de datos para tu almacenamiento compatible con S3, luego marca la casilla Habilitar CDN.

Una captura de pantalla que muestra los botones para configurar la ubicación del bucket de Spaces y si el bucket utilizará el CDN de DigitalOcean.

Proporciona un nombre para tu nuevo bucket de Spaces, luego haz clic en Crear un Bucket de Spaces para inicializarlo.

Una captura de pantalla que muestra el cuadro de texto para el nombre de Spaces y la ubicación del botón

Haz clic en el Icono de Copia en el cuadro de texto del Endpoint de Origen y pégalo en un archivo de texto separado.

Una captura de pantalla que resalta la ubicación del icono de Copia en el panel de Spaces.

Desplázate por la barra lateral izquierda de tu panel de control de DigitalOcean, luego haz clic en la categoría API.

Haz clic en la pestaña Claves de Spaces, luego selecciona Generar Nueva Clave.

Proporciona un nombre para tu nueva clave, luego haz clic en Crear Clave de Acceso.

Copia tanto la “Clave de Acceso” como la “Clave Secreta” de la página y pégala en tu archivo de texto.

Una captura de pantalla que muestra la ubicación de la Clave de Acceso y la Clave Secreta para el bucket de Spaces.

Instalando y ejecutando PicoShare

Crea una nueva carpeta para PicoShare dentro del directorio de inicio de tu usuario, luego entra en ella:

mkdir ~/picoshare &&cd ~/picoshare

Usa tu editor de texto favorito para crear el archivo Compose para PicoShare:

nano ./docker-compose.yml

Pega el siguiente bloque de código dentro de tu nuevo archivo .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:/data

Reemplaza el valor de la variable “PS_SHARED_SECRET” con una contraseña suficientemente larga y aleatoria. Esta servirá como la contraseña para la interfaz web de PicoShare.

Una terminal que muestra la contraseña compartida generada aleatoriamente para la instancia de PicoShare.

Nota: puedes generar tu propia contraseña aleatoria ejecutando: cat /dev/urandom | tr -dc 'A-Za-z0-9' | fold -w 32 | head -n 1 en una sesión de terminal separada.

Cambia el valor de la variable “LITESTREAM_BUCKET” con el nombre de tu bucket de Spaces.

Una terminal que muestra el valor apropiado para el bucket compatible con S3.

Copia la región y la parte del nombre de dominio de tu endpoint, luego pégala como el valor de tu variable “LITESTREAM_ENDPOINT”.

Una captura de pantalla que muestra el formato adecuado para la variable de endpoint compatible con S3.

Reemplaza los valores de las variables “LITESTREAM_ACCESS_KEY_ID” y “LITESTREAM_SECRET_ACCESS_KEY_ID” con la Clave de Acceso y la Clave Secreta del bucket de DigitalOcean Spaces.

Una captura de pantalla que muestra la Clave de Acceso y la Clave Secreta de Spaces para la instancia de PicoShare.

Guarda tu archivo docker-compose.yml, luego ejecuta el siguiente comando para construir y ejecutar la instancia de PicoShare:

sudodocker compose up -d

Por otro lado: también puedes usar Docker y Docker Compose para alojar rápidamente un servidor de Minecraft en tu máquina Linux.

Asegurando PicoShare con un proxy inverso SSL

En este punto, ahora tienes PicoShare ejecutándose en el puerto 4001 en tu máquina local. Para acceder a él de manera segura en Internet, necesitas asegurarte de que todas las conexiones a él estén cifradas a través de SSL.

Comienza creando un nuevo registro “A” para tu nombre de dominio apuntando a la dirección IPv4 de tu servidor PicoShare. En mi caso, crearé un registro “A” con el valor “picoshare.”

Instala el paquete snap “core” en tu sistema Ubuntu:

sudo snap install core

Obtén el paquete snap certbot de la Electronic Frontier Foundation (EFF):

sudo snap install certbot --classic

Crea un nuevo archivo de configuración del sitio Nginx usando tu editor de texto favorito:

sudonano/etc/nginx/sites-available/picoshare

Pega el siguiente bloque de código dentro de tu archivo de configuración del sitio:

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

Guarda tu archivo de configuración del sitio, luego crea un enlace simbólico desde tu directorio “/etc/nginx/sites-available/“ a tu carpeta “/etc/nginx/sites-enabled/“:

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

Verifica tu archivo de configuración de Nginx en busca de errores, luego inicia el daemon del servidor web Nginx usando systemctl:

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

Una terminal que muestra la verificación de la configuración y el comando systemctl para iniciar el servidor web Nginx.

Registra tu servidor PicoShare usando la utilidad certbot de EFF:

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

Genera un nuevo certificado SSL apuntando al nombre de dominio de tu servidor:

sudo certbot --nginx-d SUBDOMAIN.YOUR-ROOT.DOMAIN

Bueno saber: aprende cómo HTTPS protege tus datos en línea generando tu propio certificado SSL con OpenSSL.

Probando PicoShare y subiendo tu primer archivo

Abre un navegador web, luego navega a tu subdominio para cargar la página de inicio de PicoShare.

Una captura de pantalla que muestra la página de inicio de PicoShare que se ejecuta en un VPS.

Haz clic en el botón Iniciar sesión en la esquina superior derecha de la página.

Proporciona el valor de “PS_SHARED_SECRET” en el cuadro de texto Frase de contraseña, luego haz clic en Autenticar para iniciar sesión.

Una captura de pantalla que muestra el aviso de inicio de sesión para PicoShare.

Verifica si puedes guardar datos en tu servidor PicoShare haciendo clic en el botón Subir, luego selecciona un archivo de muestra a través del menú de selección.

Una captura de pantalla que resalta la ubicación del botón Subir en el panel interno.

Copia el primer enlace que el servidor devuelve al usuario al que deseas compartir tu archivo.

Una captura de pantalla que resalta la ubicación del primer enlace compartible en la instancia de PicoShare.

Habilitar cargas temporales de invitados en PicoShare

Además de las cargas enviadas por los usuarios, también puedes crear enlaces temporales que permitan a los usuarios anónimos subir archivos individuales en tu servidor. Esto puede ser útil si tienes a alguien que necesita compartir archivos contigo pero no puede subir archivos a un servicio de nube regular.

Comienza haciendo clic en la categoría Enlaces de Invitados en la página de inicio de PicoShare.

Una captura de pantalla que muestra la ubicación de la categoría

Haz clic en el botón Crear Nuevo justo encima de la tabla de resumen de enlaces vacía.

Proporciona los detalles básicos para tu enlace de carga de invitados. En mi caso, lo etiquetaré como “MakeTechEasier” y estableceré la expiración en Nunca con un límite de tamaño de archivo de 100 MB y un límite total de 10 cargas.

Una captura de pantalla que muestra un formulario de Enlace de Invitado completado.

Haz clic en Crear para generar el enlace temporal de invitado para tu instancia de PicoShare.

Haz clic en el Icono de Copia en el lado derecho del enlace de invitado, luego envía el contenido de tu portapapeles al destinatario previsto.

Una captura de pantalla que muestra la ubicación del Icono de Copia en la pantalla de Enlaces de Invitados.

Desplegar y asegurar PicoShare para compartir archivos en línea usando Linux es solo el primer paso para recuperar tu privacidad digital en línea. Aprende cómo puedes protegerte aún más al alojar tu propio servidor de alias de correo electrónico usando SimpleLogin.

Crédito de la imagen: Alejandro Escamilla a través de Unsplash y PicoShare Github. Todas las alteraciones y capturas de pantalla por Ramces Red.