Herramientas de usuario

Herramientas del sitio


informatica:software:aplicaciones_web:copyparty

¡Esta es una revisión vieja del documento!


copyparty

Aplicación web para convertir cualquier dispositivo en un servidor de ficheros con capacidad de reanudar subidas y descargas (y muchas más cosas). Todo en un único fichero (script). Hecho con Python.

Características

  • Cuentas de usuario y gestión de permisos
  • Servidor HTTP/HTTPS
  • Servidor FTP/FTPS
  • Servidor Webdav
  • Servidor SMB/CIFS
  • Soporte de mDNS y SSDP
  • Gestión de ficheros (copiar, pegar, eliminar, renombrar, comprimir…)
  • Galería de imágenes
  • Reproducción de audio
  • Visor de texto con resaltado de sintaxis
  • Buscador de ficheros
  • Editor Markdown.
  • Subidas de ficheros muy rápidas (en trozos y en paralelo) con comprobación de integridad (prevención de corrupción).
  • Portabilidad extrema: Un solo archivo Python (menos de 800 KB) o ejecutable para Windows (copyparty.exe) s Sin dependencias obligatorias; funciona en Python 2.7/3.3+ y sistemas como Linux, Windows, macOS, Android, Raspberry Pi, FreeBSD y Docker 115.

Casos de uso

  • Compartir archivos en redes locales: Ideal para LAN parties o entornos sin internet: Usa SMB/mDNS para acceder desde consolas retro (PSP, Nintendo 3DS) o navegadores antiguos (IE6).
  • Backup personal automatizado: Sube carpetas locales via FTP/WebDAV con reglas de retención (p. ej., borrar archivos tras 30 días).
  • Mediacenter doméstico: Organiza bibliotecas de música/vídeo con búsqueda por etiquetas y streaming desde navegadores o apps móviles.
  • Colaboración en equipos:
    • Repositorios temporales: Comparte enlaces con contraseña o autodestrucción para proyectos.
    • Sincronización vía RSS: Monitorea cambios en carpetas para integrar con podcasters.
  • Administración remota de dispositivos: Usa Copyparty en Raspberry Pi para gestionar backups de IoT o extraer logs en tiempo real.
  • Migración de datos masivos: Transfiere terabytes entre servidores con subidas reanudables y deduplicación para evitar redundancias.
  • Desarrollo y debugging: Visualiza logs en tiempo real o comparte builds de software mediante WebDAV montado como unidad local.

Instalación

Copyparty no necesita instalación, se trata de un script de Python que puede usarse en cualquier sistema que tenga Python instalado. A mayores, existe una versión compilada para Windows útil en los casos donde no tengamos o no podamos instalar Python.

Linux / Android / macos / Windows (con Python)

Solo es necesario tener instalado Python (versión 2 o 3) y ejecutar el fichero copyparty-sfx.py.

Docker

---
services:
  app:
    image: copyparty/ac
    container_name: copyparty
    user: 1000:1000
    volumes:
      - ./data:/w
      - ./config:/cfg
    ports:
      - 3923:3923
    restart: unless-stopped

    healthcheck:
      # hide it from logs with "/._" so it matches the default --lf-url filter 
      test: ["CMD-SHELL", "wget --spider -q 127.0.0.1:3923/?reset=/._"]
      interval: 1m
      timeout: 2s
      retries: 5
      start_period: 15s
  • /w es la ruta dentro de contenedor que se comparte por defecto.
  • /conf: ruta que contendrá ficheros .conf para configurar copyparty.

Las ediciones de las imágenes de Docker disponibles:

  • copyparty/min: solamente copyparty
  • copyparty/im: con capacidad para generar miniaturas de imágenes
  • copyparty/ac: im con el añadido de FFmpeg (recomendada).
  • copyparty/iv: ac más generación de miniaturas de HEIF / AVIC / JXL.
  • copyparty/dj: iv más aplicaciones para detectar el BPM de las canciones.

Configuración

Completar este apartado. Podemos coger información de https://ocv.me/copyparty/helptext.html

Ejemplo de fichero de configuración:

# not actually YAML but lets pretend:
# -*- mode: yaml -*-
# vim: ft=yaml:
 
# append some arguments to the commandline;
# accepts anything listed in --help (leading dashes are optional)
# and inline comments are OK if there is 2 spaces before the '#'
[global]
  p: 8086, 3939  # listen on ports 8086 and 3939
  e2dsa  # enable file indexing and filesystem scanning
  e2ts   # and enable multimedia indexing
  z, qr  # and zeroconf and qrcode (you can comma-separate arguments)
 
# create users:
[accounts]
  ed: 123   # username: password
  k: k
 
# create volumes:
[/]         # create a volume at "/" (the webroot), which will
  .         # share the contents of "." (the current directory)
  accs:
    r: *    # everyone gets read-access, but
    rw: ed  # the user "ed" gets read-write
 
# let's specify different permissions for the "priv" subfolder
# by creating another volume at that location:
[/priv]
  ./priv
  accs:
    r: k    # the user "k" can see the contents,
    rw: ed  # while "ed" gets read-write
 
# share /home/ed/Music/ as /music and let anyone read it
# (this will replace any folder called "music" in the webroot)
[/music]
  /home/ed/Music
  accs:
    r: *
 
# and a folder where anyone can upload, but nobody can see the contents
[/dump]
  /home/ed/inc
  accs:
    w: *
  flags:
    e2d     # the e2d volflag enables the uploads database
    nodupe  # the nodupe volflag rejects duplicate uploads
    # (see --help-flags for all available volflags to use)
 
# and a folder where anyone can upload
# and anyone can access their own uploads, but nothing else
[/sharex]
  /home/ed/inc/sharex
  accs:
    wG: *        # wG = write-upget = see your own uploads only
    rwmd: ed, k  # read-write-modify-delete for users "ed" and "k"
  flags:
    e2d, d2t, fk: 4
    # volflag "e2d" enables the uploads database,
    # "d2t" disables multimedia parsers (in case the uploads are malicious),
    # "dthumb" disables thumbnails (same reason),
    # "fk" enables filekeys (necessary for upget permission) (4 chars long)
    # -- note that its fine to combine all the volflags on
    #    one line because only the last volflag has an argument
 
# this entire config file can be replaced with these arguments:
# -u ed:123 -u k:k -v .::r:a,ed -v priv:priv:r,k:rw,ed -v /home/ed/Music:music:r -v /home/ed/inc:dump:w:c,e2d,nodupe -v /home/ed/inc/sharex:sharex:wG:c,e2d,d2t,fk=4
# but note that the config file always wins in case of conflicts

Ejecutable para Windows

Si queremos usar Copyparty en un equipo Windows y no podemos instalar Python, existe una versión ejecutable llamada copyparty.exe. Se puede descargar desde los ficheros (assets) de las publicaciones.

Configuración

Ejemplo de fichero de configuración copyparty.conf:

# Configuración global
# --------------------
[global]
  lo: ~/logs/cpp-%Y-%m%d.xz  # log to c:\users\you\logs\
  e2dsa, e2ts, z    # sets 3 flags; see explanation
  p: 80, 443  # listen on ports 80 and 443, not 3923
  theme: 2    # default theme: protonmail-monokai
  lang: eng   # other options: nor, chi
 
# Cuentas de usuario
# ------------------
[accounts]                  # usernames and passwords
  pepito: grillo            # usuario y contraseña
 
 
# Volúmenes
# ---------
[/]               # create a volume available at /
  c:\pub          # sharing this filesystem location
  accs:           # and set permissions:
    r: *          # everyone can read/download files,
    rwmd: kevin   # kevin can read/write/move/delete
 
[/inc]            # create another volume at /inc
  c:\pub\inc      # sharing this filesystem location
  accs:           # permissions:
    w: *          # everyone can upload, but not browse
    rwmd: kevin   # kevin is admin here too
 
[/music]          # and a third volume at /music
  ~/music         # which shares c:\users\you\music
  accs:
    r: *
    rwmd: kevin
  • lo: indica dónde escribir los logs del programa y de forma comprimida.
  • p: indica los puertos en los que escuchará Copyparty (por si no queremos usar por defecto el 3923)
  • lang: especifica el idioma de la interfaz
  • theme: indica la plantilla / tema a usar (del 0 al 7).
  • z: habilita Zeroconf (mDNS y SSDP)
  • e2dsa: escanea todos los directorios en el arranque para permitir búsquedas.
  • e2ts: habilita el escaneo de los metadatos de archivos musicales para poder buscar por ellos también.

Para lanzar Copyparty cargando esa configuración:

copyparty.exe -c copyparty.conf

Recursos

informatica/software/aplicaciones_web/copyparty.1753801551.txt.gz · Última modificación: por tempwin