¡Esta es una revisión vieja del documento!
Tabla de Contenidos
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.
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
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
/wes la ruta dentro de contenedor que se comparte por defecto./conf: ruta que contendrá ficheros.confpara configurar copyparty.
Las ediciones de las imágenes de Docker disponibles:
copyparty/min: solamente copypartycopyparty/im: con capacidad para generar miniaturas de imágenescopyparty/ac:imcon el añadido de FFmpeg (recomendada).copyparty/iv:acmás generación de miniaturas de HEIF / AVIC / JXL.copyparty/dj:ivmá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 el3923)lang: especifica el idioma de la interfaztheme: 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
- Publicación del autor en Reddit (después de más de 5 años de desarrollo).

