Herramientas de usuario

Herramientas del sitio


informatica:software:aplicaciones_web:copyparty

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:software:aplicaciones_web:copyparty [2025/07/29 16:24] – [Linux / Android / macos / Windows] tempwininformatica:software:aplicaciones_web:copyparty [2025/08/25 15:30] (actual) – [Usuarios] tempwin
Línea 1: Línea 1:
 ====== copyparty ====== ====== 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 [[informatica:programacion:python|Python]].+[[..:aplicaciones_web|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 [[informatica:programacion:python|Python]].
  
   * [[https://github.com/9001/copyparty|Repositorio de código]]   * [[https://github.com/9001/copyparty|Repositorio de código]]
Línea 24: Línea 24:
   * Subidas de ficheros muy rápidas (en trozos y en paralelo) con comprobación de integridad (prevención de corrupción).   * 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.   * **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 ===== ===== Casos de uso =====
Línea 36: Línea 37:
   * Migración de datos masivos: Transfiere terabytes entre servidores con subidas reanudables y deduplicación para evitar redundancias.   * 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.   * 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]]:
 +
 +<code bash>
 +cloudflared tunnel --url http://localhost:3923
 +</code>
 +
 +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.
 +
 +<WRAP center round info 60%>
 +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%%''.
 +</WRAP>
 +
 ===== Instalación ===== ===== Instalación =====
  
Línea 84: Línea 100:
 </WRAP> </WRAP>
  
 +Ejemplo de fichero de configuración:
 +
 +<code yaml>
 +# 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
 +</code>
 +
 +===== Gestión de permisos =====
 +
 +
 +==== Usuarios ====
 +
 +En el archivo de configuración:
 +
 +<code yaml>
 +[accounts]
 +  pepito: grillo   # usuario:contraseña
 +  fulanito: secreto
 +</code>
 +
 +
 +<WRAP center round important 60%>
 +Aunque se indique usuario y contraseña, a la hora de identificarse, **copyparty** solo preguntará la contraseña y no el usuario.
 +
 +Esto se ha discutido [[https://github.com/9001/copyparty/issues/511|en esta incidencia de GitHub]].
 +</WRAP>
 +
 +==== Permisos ====
 +
 +^ Permiso  ^ Descripción  ^
 +| ''r''    | (//read//): ver ficheros, descargarlos...  |
 +| ''w''    | (//write//): subir ficheros y mover / copiar ficheros a este directorio   |
 +| ''m''    | (//move//): mueve ficheros / directorios desde este directorio   |
 +| ''d''    | (//delete//): elimina ficheros / directorios  |
 +| ''.''    | (//dots//): posibilidad de mostrar los archivos que empiezan por punto  |
 +| ''g''    | (//get//): solo descarga de ficheros, no puede ver el contenido de los directorios  |
 +| ''G''    | (//upget//): igual que ''g'' pero los que suben ficheros pueden ver sus propias //filekeys//   |
 +| ''h''    | (//html//): igual que ''g'', pero los directorios devuelven su ''index.html'', y las //filekeys// no son necesarias para ''index.html''  |
 +| ''a''    | (//admin//): puede ver la hora de las subidas, las direcciones IP de los usuarios que suben, etc.  |
 +| ''A''    | (//all//): igual que ''rwmda'' (lectura / escritura / mover / borrar / admin / dotfiles)  |
 +
 +==== Volúmenes ====
 +
 +En el fichero de configuración:
 +
 +<code yaml>
 +[/]     # Esta URL será "mapeada" a this URL will be mapped to...
 +  /srv  # este directorio en el sistema de ficheros del servidor
 +  accs:
 +    r: *  # acceso de lectura para todo el mundo (no se necesita cuenta de usuario)
 +
 +[/music]       # create another volume at this URL,
 +  /mnt/music   # which is mapped to this folder
 +  accs:
 +    r: u1, u2  # solo las cuentas "u1" y "u2" pueden leer
 +    r: @g1     # solo las cuentas pertenecientes al grupo "g1" pueden leer
 +    rw: u3     # solo la cuenta "u3" puede leer y escribir.
 +
 +[/uploads]
 +  /mnt/uploads
 +  accs:
 +    w: u1   # la cuenta "u1" puede subir ficheros, pero no puede ver / descargar ningún fichero.
 +    rm: u2  # la cuenta "u2" navegar y mover los archivos de este volumen
 +
 +[/i]
 +  /mnt/ss
 +  accs:
 +    g: *    # todo el que conozca la URL puede acceder a sus ficheros
 +</code>
 ===== Ejecutable para Windows ===== ===== Ejecutable para Windows =====
  
Línea 99: Línea 251:
   e2dsa, e2ts, z    # sets 3 flags; see explanation   e2dsa, e2ts, z    # sets 3 flags; see explanation
   p: 80, 443  # listen on ports 80 and 443, not 3923   p: 80, 443  # listen on ports 80 and 443, not 3923
-  theme:    # default theme: protonmail-monokai+  theme:    # default theme: protonmail-monokai
   lang: eng   # other options: nor, chi   lang: eng   # other options: nor, chi
  
informatica/software/aplicaciones_web/copyparty.1753799063.txt.gz · Última modificación: por tempwin