Cómo instalar Copyparty: Servidor de archivos portable con subidas resumibles y deduplicación

Copyparty | File Server | Python

Copyparty: Servidor de archivos portable con subidas resumibles y deduplicación

Convierte casi cualquier dispositivo en un servidor de archivos completo con HTTP, WebDAV, SFTP, FTP, TFTP y SMB. Todo en un solo archivo Python.

¿Qué es Copyparty?


Copyparty es un servidor de archivos portable y completo que funciona con solo Python (2 o 3), sin dependencias obligatorias. Soporta subidas y descargas resumibles usando cualquier navegador web, desde IE6 hasta los más modernos.

A diferencia de otros servidores de archivos que requieren configuraciones complejas o múltiples servicios, Copyparty lo integra todo en un único archivo ejecutable. Puedes compartir archivos mediante HTTP(S), WebDAV, SFTP, FTP(S), TFTP o incluso SMB/CIFS, todo desde la misma aplicación.

Filosofía del proyecto: Copyparty sigue una filosofía inversa a Unix: hacer todas las cosas, y hacerlas lo suficientemente bien. Es la solución definitiva para obtener muchas características en un apuro, ejecutándose en cualquier lugar.

Demo en vivo

Prueba Copyparty sin instalar nada en el servidor demo de solo-lectura (corriendo en un NUC en el sótano del desarrollador).

También hay un video showcase de características disponible.

Protocolos soportados

HTTP(S)
WebDAV
SFTP
FTP(S)
TFTP
SMB/CIFS

Características principales

Backend

Multi-protocolo

HTTP, WebDAV, SFTP, FTP, TFTP y SMB desde una sola aplicación.

Multiprocesamiento real

Multithreading real en Python para aprovechar múltiples cores.

Volúmenes y cuentas

Permisos por usuario y por carpeta con control granular.

Zeroconf

Auto-descubrimiento en LAN con mDNS y SSDP.

Event hooks

Ejecuta scripts personalizados en subidas, renombrados, etc.

Cross-platform

Windows, Linux, macOS, Android, iOS, FreeBSD, ARM, PowerPC, RISC-V.

Subidas

up2k: Subidas avanzadas

Resumibles, multihilo, con checksums de cada chunk. Sin límite de tamaño de archivo.

Unpost

Deshacer/eliminar subidas accidentales durante un período configurable.

Auto-destrucción

Archivos con tiempo de vida limitado que se eliminan automáticamente.

Deduplicación

Detección de duplicados por contenido, con enlaces simbólicos automáticos.

Race the beam

Descarga archivos mientras todavía se están subiendo (casi peer-to-peer).

Carpetas write-only

Los usuarios pueden subir pero no ver el contenido.

Navegador web

Navegador de archivos

Cortar/pegar, renombrar, eliminar con árbol de directorios lateral.

Reproductor de audio

Con controles del sistema operativo, transcodificación opus/mp3 y EQ.

Galería de imágenes

Con reproductor WebM y lector de cómics CBZ.

Visor de textos

Con resaltado de sintaxis y streaming en tiempo real de logs.

Miniaturas

De imágenes (Pillow/FFmpeg), vídeos y audio (espectrogramas).

UI multilingüe

Inglés, noruego, chino y fácilmente traducible.

Indexación y búsqueda

Búsqueda por contenido

Localiza archivos por hash SHA512, evita duplicados.

Búsqueda por metadatos

Por nombre, ruta, fecha, tamaño, tags ID3, EXIF, etc.

Tags de audio

Indexación de metadatos MP3, FLAC, Opus con FFprobe o Mutagen.

Markdown y docs

Visor y editor de Markdown con variables dinámicas.

Instalación

Método recomendado: SFX (Self-Extractor)

Descarga y ejecuta copyparty-sfx.py — eso es todo.

wget https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py python3 copyparty-sfx.py

Alternativa: PyPI

python3 -m pip install --user -U copyparty copyparty

Alternativa: Zipapp

wget https://github.com/9001/copyparty/releases/latest/download/copyparty.pyz python3 copyparty.pyz

Windows: Ejecutable

Descarga copyparty.exe (Windows 8+) o copyparty32.exe (Windows 7+).

Instalación con Docker

Docker Compose

services: copyparty: image: copyparty/ac:latest container_name: copyparty restart: unless-stopped ports: - "3923:3923" volumes: - ./data:/data - ./config:/config environment: - TZ=Europe/Madrid command: -v /data:data:r,e2d

Docker Run

docker run -d \ --name copyparty \ -p 3923:3923 \ -v $(pwd)/data:/data \ -v $(pwd)/config:/config \ -e TZ=Europe/Madrid \ copyparty/ac:latest \ -v /data:data:r,e2d

Dependencias opcionales

Habilita miniaturas, indexación de medios y transcodificación de audio instalando:

Alpine Linux

apk add py3-pillow ffmpeg

Debian / Ubuntu

apt install --no-install-recommends python3-pil ffmpeg

Fedora

dnf install python3-pillow ffmpeg --allowerasing

macOS (Homebrew)

brew install pillow ffmpeg

Windows

python -m pip install --user -U Pillow

Instala FFmpeg manualmente desde ffmpeg.org.

Inicio rápido

Compartir carpeta actual (lectura/escritura para todos)

copyparty

Compartir carpeta específica (solo lectura para todos)

copyparty -v /mnt/music:/music:r

Con usuario y contraseña

copyparty -v /mnt/music:/music:r:rw,ed -a ed:hunter2

Carpeta /mnt/music accesible en /music, lectura para todos, lectura-escritura para usuario ed con contraseña hunter2.

Con indexación completa

copyparty -e2dsa -e2ts -v /mnt/music:/music:r

Habilita indexación de archivos (-e2dsa) y metadatos de audio (-e2ts).

Archivo de configuración

Para configuraciones complejas, usa un archivo de configuración:

Paso 1: Crear copyparty.conf

[global] e2dsa # Habilitar indexación de archivos e2ts # Indexar metadatos de audio [accounts] ed: hunter2 alice: wonderland [/] /srv/files accs: r: * # Lectura para todos [/music] /mnt/music accs: r: ed, alice # Solo ed y alice pueden leer rw: ed # Solo ed puede escribir [/uploads] /mnt/incoming accs: w: * # Todos pueden subir (write-only) rwmd: ed # ed puede leer/escribir/mover/eliminar

Paso 2: Usar el archivo de configuración

copyparty -c copyparty.conf

Recargar configuración sin reiniciar

# Linux/macOS kill -s USR1 $(pidof python3) # Con systemd systemctl reload copyparty

O haz clic en el botón [reload cfg] en el panel de control si tu usuario tiene permisos de admin.

Sistema de permisos

Copyparty usa un sistema de permisos granular por volumen y por usuario:

  • r (read): Navegar carpetas, descargar archivos, descargar como zip/tar
  • w (write): Subir archivos, mover/copiar archivos hacia esta carpeta
  • m (move): Mover archivos/carpetas desde esta carpeta
  • d (delete): Eliminar archivos/carpetas
  • . (dots): Ver archivos ocultos (dotfiles)
  • g (get): Solo descargar, no ver listados de carpetas
  • G (upget): Como g pero el uploader ve sus propias claves de archivo
  • a (admin): Ver tiempo de subida, IPs, recargar configuración
  • A (all): Equivalente a rwmda.

Protocolos adicionales

WebDAV

copyparty --dav

Acceso WebDAV en el puerto 3923. Monta como unidad de red en Windows, macOS o Linux.

FTP

copyparty --ftp 3921

Servidor FTP en puerto 3921. Soporta FTPS con --ftps 3990.

SFTP

copyparty --sftp 3922

Servidor SFTP en puerto 3922. Requiere generar claves SSH primero.

TFTP

copyparty --tftp 3969

Servidor TFTP en puerto 3969 (lectura/escritura).

SMB/CIFS

copyparty --smb 3945

Servidor SMB en puerto 3945. Inseguro, lento, no recomendado para WAN.

Características avanzadas

Zeroconf (mDNS + SSDP)

copyparty -z

Auto-descubrimiento en LAN. Copyparty aparecerá en Windows Explorer y gestores de archivos.

Código QR

copyparty --qr

Imprime un código QR en la terminal para acceso rápido desde móviles.

Deduplicación de archivos

copyparty -e2d --dedup

Detecta y elimina duplicados usando enlaces simbólicos.

Compresión automática

copyparty -v /uploads::w:c,xz=3:c,gz=4

Archivos se comprimen automáticamente al subirlos.

Event hooks

copyparty --xbu /usr/local/bin/on-upload.sh

Ejecuta scripts personalizados en eventos de subida, borrado, renombrado.

Gestión y mantenimiento

Recargar configuración

systemctl reload copyparty

Ver logs

journalctl -u copyparty -f

Actualizar (PyPI)

python3 -m pip install --user -U copyparty

Actualizar (Docker)

docker compose pull docker compose up -d

Reverse proxy con Nginx

server { listen 443 ssl http2; server_name files.tudominio.com; ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; location / { proxy_pass http://localhost:3923; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Para archivos grandes client_max_body_size 0; proxy_request_buffering off; } }

En Copyparty, añade --xff-src 127.0.0.1 para detectar IPs correctamente.

Casos de uso

  • Servidor de archivos doméstico: Comparte archivos en tu red local con toda la familia
  • Dropbox autohospedado: Sube archivos desde cualquier dispositivo, accede desde cualquier lugar
  • Servidor multimedia: Streaming de música, vídeos e imágenes con reproductor integrado
  • Zona de subida temporal: Carpetas write-only para recibir archivos sin exponer contenido
  • Backup remoto: Sincronización unidireccional de carpetas locales al servidor
  • Servidor de archivos portátil: Ejecuta desde USB en cualquier ordenador sin instalación
  • Servidor de desarrollo: Comparte builds, logs y documentación con el equipo
  • Archive/NAS personal: Gestiona colecciones grandes con deduplicación e indexación

Comentarios

Entradas populares de este blog

NAS SYNOLOGY DSM 7.1 en VMware ESXI - Guía instalación y configuración Synology DSM 7.1 en VMWARE

Solución al error: «user is not in the sudoers file» en Debian

Comando "NET USE", uso, parámetros y algunos ejemplos de uso