Skip to main content

copyparty

The main copyparty server command starts the file sharing server with HTTP, WebDAV, and optional protocol support.

Synopsis

Description

copyparty is an HTTP file sharing server with features including:
  • File upload/download via web UI
  • WebDAV support
  • Optional SFTP, FTP, TFTP, SMB protocols
  • Audio/video streaming and transcoding
  • Full-text search and tagging
  • mDNS/SSDP service discovery
  • Upload deduplication
  • Event hooks and handlers

General Options

path
Config file path (repeatable). Allows loading configuration from file instead of command-line arguments.Example: -c /etc/copyparty/config.txt
integer
default:"512"
Maximum number of concurrent client connections.
string
Add user account (repeatable). Format: USERNAME:PASSWORDExample: -a alice:secretpass -a bob:hunter2
string
Add volume/share (repeatable). Format: SRC:DST:PERMISSIONS[:FLAGS]Where:
  • SRC is the local filesystem path
  • DST is the URL path to mount it at
  • PERMISSIONS define user access (see Permissions section)
  • FLAGS are optional volume configuration flags
Examples:
  • -v .::r - Share current directory as read-only for everyone
  • -v /data/music:/music:r:rw,alice - Share /data/music at /music, read-only for everyone, read-write for alice
  • -v /tmp/uploads:/up:w:c,nodupe - Write-only upload folder with duplicate detection
string
Define user group (repeatable). Format: GROUPNAME:USER1,USER2,...Example: --grp admins:alice,bob,charlie
boolean
Require both username and password for login (default is password-only).
path
Change working directory before mapping volumes.
boolean
Enable the ?dots URL parameter which allows clients to see dotfiles/hidden files.
string
Server name displayed in the browser UI and mDNS announcements.Default: Hostname or random identifier
string
Public URL to assume when creating links.Example: --site https://files.example.com/

Binding Options

string
default:"::"
IP addresses or unix sockets to listen on (comma-separated).Examples:
  • -i :: - All IPv4 and IPv6 (default)
  • -i 0.0.0.0 - All IPv4 only
  • -i 127.0.0.1 - Localhost only
  • -i unix:770:www:/dev/shm/party.sock - Unix socket with permissions
string
default:"3923"
TCP ports to listen on (comma-separated or range).Examples:
  • -p 3923 - Single port
  • -p 80,443,3923 - Multiple ports
  • -p 8000-8010 - Port range

Upload Options

boolean
Prefix incomplete uploads with a dot, hiding them from clients unless -ed is set.
boolean
Enable symlink-based upload deduplication (volflag=dedup).
Enable hardlink-based deduplication; falls back to symlinks when hardlinking is impossible (volflag=hardlink).
boolean
Reject duplicate files during upload (volflag=nodupe).
string
default:"c"
How to timestamp uploaded files:
  • c - Client’s last-modified time
  • u - Upload time
  • fc - Force client time
  • fu - Force upload time
(volflag=u2ts)
string
Unix file permissions (octal) for new files.Examples:
  • 644 - Owner RW, all read
  • 600 - Owner RW only
  • 666 - All RW
(volflag=chmod_f)
string
default:"755"
Unix directory permissions (octal) for new directories.Examples:
  • 755 - Owner RWX, all RX
  • 2750 - Setgid + owner RWX + group RX
  • 700 - Owner only
(volflag=chmod_d)

Database Options

string
Database durability profile (per-volume with volflag):
  • acid - Extremely safe but slow (never lose data)
  • swal - 2.4x faster, 99.9% as safe
  • wal - 21x faster on HDD, 90% as safe
  • yolo - Fastest, risk of losing entire database on power loss
Example: --dbd=swal or as volflag: -v ~/music:music:r:c,dbd=acid

TLS/SSL Options

path
Path to TLS certificate file (concatenation of key and certificate chain).
boolean
Disable SSL/TLS, force plaintext HTTP only.
boolean
Disable plaintext HTTP, force TLS only.
string
Set allowed SSL/TLS versions. Use help to list available versions.
string
Set allowed SSL/TLS ciphers. Use help to list available ciphers.

Protocol Options

integer
Enable SFTP server on specified port.Example: --sftp 3922
integer
Enable FTP server on specified port.Example: --ftp 3921
integer
Enable FTPS (FTP over TLS) server on specified port.Example: --ftps 3990
integer
Enable TFTP server on specified port.Example: --tftp 69
boolean
Enable SMB/CIFS server (read-only by default).Warning: Requires root on Linux/macOS unless using --smb-port above 1024.

Zeroconf/mDNS Options

boolean
Enable all zeroconf backends (mDNS, SSDP).
boolean
Announce services over mDNS (multicast DNS-SD) for auto-discovery.
boolean
Announce services over SSDP for Windows discovery.

Event Hooks

See Event Hooks for detailed information.
string
Execute command after file upload finishes (repeatable).Example: --xau /scripts/notify-upload.py
string
Execute command on message (repeatable).Example: --xm notify-send,message,--

QR Code Options

boolean
Show QR code on startup for easy mobile access.
boolean
Use HTTPS URL in QR code.
string
Location/path to include in QR code URL.Example: --qrl "music/?pw=hunter2"

Permissions

Permissions in volume definitions:
  • r (read) - List folders, download files
  • w (write) - Upload files (requires r to see uploads)
  • m (move) - Move files/folders (requires w at destination)
  • d (delete) - Delete files/folders
  • g (get) - Download files without listing folders
  • a (admin) - View uploader IPs, config reload
  • A (all) - Same as rwmda.

Examples

Basic read-only server

Shares current directory as read-write for everyone on port 3923.

Read-only music server with authentication

Shares /data/music as read-only for everyone, read-write for alice.

Upload server with multiple users

Uploaders group can write, alice has full access.

HTTPS server with mDNS

HTTPS-only server with mDNS announcement.

Multi-protocol server

HTTP, HTTPS, SFTP, and FTP on standard ports.

See Also