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.
  • Traducido a más de 10 idiomas (incluido el español).

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.

Exponer temporalmente a Internet

Si queremos compartir una instancia local (en nuestro equipo, en nuestra LAN) en Internet de manera temporal, podemos hacer uso de los quick tunnels de cloudflared:

cloudflared tunnel --url http://localhost:3923

El comando anterior creará un túnel (y generará una URL) para que cualquier pueda conectarse a nuestra instancia local de copyparty para acceder a nuestros archivos o subirnos archivos.

Como la gente se conectará a través de Cloudflare, si queremos detectar las IPs de los clientes correctamente necesitaremos ejecutar copyparty con --xff-hdr cf-connecting-ip.

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

Gestión de permisos

Usuarios

En el archivo de configuración:

[accounts]
  pepito: grillo   # usuario:contraseña
  fulanito: secreto

Permisos

Permiso Descripción
r (read): browse folder contents, download files, download as zip/tar, see filekeys/dirkeys
w (write): upload files, move/copy files into this folder
m (move): move files/folders from this folder
d (delete): delete files/folders
.
g (get): only download files, cannot see folder contents or zip/tar
G (upget): same as g except uploaders get to see their own filekeys (see fk in examples below)
h (html): same as g except folders return their index.html, and filekeys are not necessary for index.html
a (admin): can see upload time, uploader IPs, config-reload
A (all): same as rwmda. (read/write/move/delete/admin/dotfiles)

Volúmenes

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: 6    # 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.1755456533.txt.gz · Última modificación: por tempwin