quick start - GamerDuck123/copyparty GitHub Wiki

just run copyparty-sfx.py -- that's it! 🎉

enable thumbnails (images/audio/video), media indexing, and audio transcoding by installing some recommended deps:

  • Alpine: apk add py3-pillow ffmpeg
  • Debian: apt install --no-install-recommends python3-pil ffmpeg
  • Fedora: rpmfusion + dnf install python3-pillow ffmpeg --allowerasing
  • FreeBSD: pkg install py39-sqlite3 py39-pillow ffmpeg
  • MacOS: port install py-Pillow ffmpeg
  • MacOS (alternative): brew install pillow ffmpeg
  • Windows: python -m pip install --user -U Pillow
    • install python and ffmpeg manually; do not use winget or Microsoft Store (it breaks $PATH)
    • copyparty.exe comes with Pillow and only needs ffmpeg for mediatags/videothumbs
  • see optional dependencies to enable even more features

running copyparty without arguments (for example doubleclicking it on Windows) will give everyone read/write access to the current folder; you may want accounts and volumes

or see some usage examples for inspiration, or the complete windows example

some recommended options:

  • -e2dsa enables general file indexing
  • -e2ts enables audio metadata indexing (needs either FFprobe or Mutagen)
  • -v /mnt/music:/music:r:rw,foo -a foo:bar shares /mnt/music as /music, readable by anyone, and read-write for user foo, password bar
    • replace :r:rw,foo with :r,foo to only make the folder readable by foo and nobody else
    • see accounts and volumes (or --help-accounts) for the syntax and other permissions

at home

make it accessible over the internet by starting a cloudflare quicktunnel like so:

first download cloudflared and then start the tunnel with cloudflared tunnel --url http://127.0.0.1:3923

as the tunnel starts, it will show a URL which you can share to let anyone browse your stash or upload files to you

but if you have a domain, then you probably want to skip the random autogenerated URL and instead make a permanent cloudflare tunnel

since people will be connecting through cloudflare, run copyparty with --xff-hdr cf-connecting-ip to detect client IPs correctly

on servers

you may also want these, especially on servers:

and remember to open the ports you want; here's a complete example including every feature copyparty has to offer:

firewall-cmd --permanent --add-port={80,443,3921,3923,3945,3990}/tcp  # --zone=libvirt
firewall-cmd --permanent --add-port=12000-12099/tcp  # --zone=libvirt
firewall-cmd --permanent --add-port={69,1900,3969,5353}/udp  # --zone=libvirt
firewall-cmd --reload

(69:tftp, 1900:ssdp, 3921:ftp, 3923:http/https, 3945:smb, 3969:tftp, 3990:ftps, 5353:mdns, 12000:passive-ftp)