Índice del diarioDockup / nota de campo
Note / self-host-picoshare

Cómo autoalojar PicoShare en 2026: cargas, secretos compartidos y almacenamiento

Autoaloja PicoShare con los puertos correctos, almacenamiento persistente, HTTPS, secretos, copias de seguridad y comprobaciones de actualización. Aprende a solucionar los casos en los que las cargas alcanzan los límites del proxy.

Autoalojar PicoShare resulta interesante con el primer redeploy, no con el primer docker run. Si las cargas alcanzan los límites del proxy o los archivos desaparecen porque /data es una ruta efímera, Docker puede seguir mostrando un proceso perfectamente saludable. El despliegue siguiente se organiza en torno a un comportamiento observable: subir un archivo, descargarlo desde un navegador nuevo, probar su caducidad o eliminación y volver a intentarlo con un archivo cercano al límite de tamaño elegido.

El propósito de PicoShare es claro: compartir archivos de forma minimalista convirtiendo las cargas en enlaces. Esa descripción indica qué debe permanecer público, qué debería seguir siendo privado y qué debe poder reconstruir una copia de seguridad.

Haz medible la recuperación de PicoShare

Crea un manifiesto de recuperación para PicoShare: archivos subidos y metadatos de PicoShare en /data. Monta /data antes del bootstrap, escribe datos de ejemplo inocuos y sustituye el contenedor para demostrar que esa ruta es realmente persistente. Comprueba ahora el propietario y el espacio disponible, porque una ruta montada pero sin permisos de escritura se comporta como si no hubiera persistencia.

Haz las copias de seguridad en un dominio de fallo separado del servidor en ejecución. Recrea PicoShare a partir de su imagen fijada y verifica que los bytes subidos y los metadatos regresan, y que una muestra de los enlaces existentes descarga archivos con hashes coincidentes. La guía sobre volúmenes persistentes ayuda a convertir este ejercicio en una política de snapshots y retención.

La arquitectura de producción de PicoShare

El proceso HTTP de PicoShare escucha en el puerto 4001; mantén ese puerto en la red de la aplicación y publica únicamente la ruta de la plataforma. El requisito del runtime local es un volumen de datos duradero y suficiente espacio en disco para los archivos retenidos. Documenta la capacidad prevista, el propietario y el modo de fallo en lugar de dejarlo en manos de los valores predeterminados de la imagen.

Deja por escrito el límite como un contrato breve: quién es responsable del requisito, qué credencial se utiliza, qué timeout es aceptable y cómo se manifiesta un fallo. Después, ejecuta esta transacción: sube un archivo, descárgalo desde un navegador nuevo, prueba su caducidad o eliminación y vuelve a intentarlo con un archivo cercano al límite de tamaño elegido. Observa la capacidad del disco, el ancho de banda de carga, los límites de tamaño del cuerpo del proxy y las descargas simultáneas durante la ejecución, porque esa carga proporciona un punto de partida más útil para dimensionar que un contenedor inactivo.

El release gate de PicoShare

Convierte el smoke test de PicoShare en un comando de release repetible o en un runbook breve. Su salida debe demostrar este resultado: subir un archivo, descargarlo desde un navegador nuevo, probar su caducidad o eliminación y volver a intentarlo con un archivo cercano al límite de tamaño elegido. Registra con el resultado la versión de la aplicación, el digest del contenedor, el hostname de la ruta y el identificador de los datos de prueba.

Ejecuta la misma comprobación después de sustituir el contenedor de forma rutinaria y después de restaurar en otro lugar los archivos subidos y los metadatos de PicoShare en /data. La restauración se ha realizado correctamente cuando regresan los bytes subidos y los metadatos, y una muestra de los enlaces existentes descarga archivos con hashes coincidentes. Compara los tiempos y el consumo relacionados con la capacidad del disco, el ancho de banda de carga, los límites de tamaño del cuerpo del proxy y las descargas simultáneas; un cambio importante merece investigación aunque la acción final siga siendo correcta.

Después, simula un fallo seguro: envía una entrada inocua cercana al límite de recursos o formato asociado a este límite: las cargas alcanzan los límites del proxy o los archivos desaparecen porque /data es una ruta efímera. Confirma que PicoShare muestra el fallo y vuelve a la normalidad sin ediciones manuales destructivas. Conserva únicamente el fragmento de log necesario y con los datos sensibles redactados. Este gate de cuatro partes cubre el arranque, la persistencia, la recuperación y la gestión de fallos.

Configuración del contenedor que conviene revisar

Inicia PicoShare de forma que la ruta permanezca privada hasta completar el 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

Si el proceso entra en un bucle, compara el usuario esperado por la imagen con el propietario de cada ruta montada. Si permanece activo, prueba localmente el puerto 4001 y pasa directamente al flujo de trabajo: sube un archivo, descárgalo desde un navegador nuevo, prueba su caducidad o eliminación y vuelve a intentarlo con un archivo cercano al límite de tamaño elegido. Fija la versión de la imagen solo después de que esta comprobación de extremo a extremo se complete correctamente y registra la configuración exacta junto al servicio.

Reduce la autoridad de PicoShare

Las credenciales de bootstrap son temporales; el modelo de confianza es permanente. En PicoShare, presta atención a no utilizar un secreto compartido fácil de adivinar ni ofrecer almacenamiento anónimo ilimitado, y usa un secreto compartido largo, aplica rate limiting a las cargas y evita convertir el servicio en almacenamiento anónimo sin límites.

Sustituye inmediatamente el valor de ejemplo de PS_SHARED_SECRET, almacénalo fuera de la imagen y rótalo como una credencial de administrador si queda expuesto. Ejecuta la imagen sin capacidades de Linux innecesarias y expón únicamente la ruta pública de la aplicación. Mantén visible la actividad administrativa sin registrar los valores secretos.

Enruta PicoShare sin falsear el HTTPS

Evita los orígenes públicos temporales y permanentes para PicoShare. En su lugar, publica un único origen HTTPS y dimensiona el proxy para las cargas previstas, apunta el nombre DNS elegido a la ruta de la plataforma y configura el proxy únicamente hacia el puerto 4001.

Ejecuta esta acción desde fuera del host: sube un archivo, descárgalo desde un navegador nuevo, prueba su caducidad o eliminación y vuelve a intentarlo con un archivo cercano al límite de tamaño elegido. Si falla el ingress, la guía de troubleshooting de errores 502 cubre los errores de puerto y listener. Si PicoShare recibe la solicitud, pero las cargas alcanzan los límites del proxy o los archivos desaparecen porque /data es una ruta efímera, las evidencias ya apuntan más allá del proxy.

Comprobaciones de capacidad y actualización

Un health check en reposo dice muy poco sobre PicoShare. Supervisa la capacidad del disco, el ancho de banda de carga, los límites de tamaño del cuerpo del proxy y las descargas simultáneas, y genera alertas sobre el síntoma que experimentan los usuarios: el fallo de la acción “subir un archivo, descargarlo desde un navegador nuevo, probar su caducidad o eliminación y volver a intentarlo con un archivo cercano al límite de tamaño elegido”. Mantén el liveness local y económico; deja que el readiness informe de las migraciones o la inicialización sin provocar un restart storm.

El área de riesgo de una actualización es que los metadatos y la estructura de archivos de PicoShare deben comprobarse antes de actualizar, porque el enlace solo es útil mientras ambos coincidan. Lee las notas de la release, crea un snapshot del estado, despliega la versión objetivo sobre una copia restaurada y repite la acción de aceptación. Si las cargas alcanzan los límites del proxy o los archivos desaparecen porque /data es una ruta efímera, correlaciona la solicitud del cliente con el primer log relevante de la aplicación en lugar de eliminar el estado o añadir redirecciones a ciegas.

Despliega PicoShare en Dockup sin perder sus límites

Dockup elimina el trabajo manual de reverse proxy y gestión del ciclo de vida alrededor de PicoShare. El servicio recibe una ruta HTTPS estable hacia el puerto 4001, configuración inyectada y almacenamiento persistente durante las sustituciones. Un servidor de cliente conectado sigue el mismo modelo que el cómputo alojado en Dockup.

Después del lanzamiento, cumple el contrato de la aplicación: publica un único origen HTTPS y dimensiona el proxy para las cargas previstas, confirma el requisito local —un volumen de datos duradero y suficiente espacio en disco para los archivos retenidos— y ejecuta esta prueba: sube un archivo, descárgalo desde un navegador nuevo, prueba su caducidad o eliminación y vuelve a intentarlo con un archivo cercano al límite de tamaño elegido. Así, la experiencia de un clic sigue siendo útil sin ocultar los detalles que hacen que PicoShare sea recuperable y seguro.

Preguntas frecuentes

¿Qué necesita PicoShare para un despliegue de producción?

Enruta el contenedor de PicoShare a través del puerto 4001 mediante un único origen HTTPS. El requisito del runtime local es un volumen de datos duradero y suficiente espacio en disco para los archivos retenidos. No consideres que PicoShare está listo hasta que puedas subir un archivo, descargarlo desde un navegador nuevo, probar su caducidad o eliminación y volver a intentarlo con un archivo cercano al límite de tamaño elegido.

¿Qué datos de PicoShare deben incluirse en una copia de seguridad?

Conserva /data e incluye en el mismo manifiesto de recuperación los archivos subidos y los metadatos de PicoShare en /data. Una restauración limpia de PicoShare solo es válida cuando regresan los bytes subidos y los metadatos, y una muestra de los enlaces existentes descarga archivos con hashes coincidentes.

¿PicoShare necesita HTTPS detrás de un reverse proxy?

Usa HTTPS para el origen público de PicoShare y mantén el puerto 4001 en la ruta interna. Aplica correctamente la configuración de PicoShare: publica un único origen HTTPS y dimensiona el proxy para las cargas previstas. En PicoShare, HTTPS protege las credenciales o el contenido del usuario durante el tránsito y mantiene coherente el comportamiento del cliente sensible al origen.

¿Cómo debe probarse una actualización de PicoShare?

Restaura el estado actual de PicoShare en un despliegue aislado, aplica la versión candidata y repite su transacción de aceptación. Presta especial atención, porque los metadatos y la estructura de archivos de PicoShare deben comprobarse antes de actualizar, ya que el enlace solo es útil mientras ambos coincidan. Conserva la imagen anterior de PicoShare hasta comprender sus límites de migración de datos y rollback.