desync(1)
π NAME π
desync-chunk-server β Server for chunks over HTTP(S)
Hiii bestie, welcome to the desync(1) manual page β this is the chunk-server command, and it's lowkey iconic if you need a remote store that serves chunks over HTTP(S).
β¨ SYNOPSIS β¨
desync chunk-server [flags]
π¦ DESCRIPTION π¦
It starts an HTTP chunk server that you can use as a remote store. It supports reading from multiple local or remote stores, plus a local cache. If you provide --cert and --key, the server serves over HTTPS. The -w option enables writing to this store, but this is only allowed when just one upstream chunk store is provided β so don't try to be cute with multiple upstreams here.
β οΈ Writing with -w is only allowed when just one upstream chunk store is provided. That's the rule, bestie.
The option --skip-verify-write disables hash validation of chunks written to this server. That avoids the decompression step needed to calculate checksums, so it improves performance. Faster? Yes. Still skipping verification? Also yes β know what you're doing.
If -u is used, only uncompressed chunks are served (and accepted). If the upstream store serves compressed chunks, everything will have to be decompressed server-side, so it's better to also read from uncompressed upstream stores.
With --encryption, chunks are served (and accepted) encrypted, regardless of how they are stored in the upstream store. The key is read from the DESYNC_ENCRYPTION_KEY environment variable unless --encryption-key is used. Important: the environment variable on its own does not enable encryption β one of the encryption flags is required.
π«Ά Env var alone = no encryption. One of the encryption flags is required. Periodt.
While --concurrency does not limit the number of clients that can be served concurrently, it does influence connection pools to remote upstream stores. It needs to be chosen carefully if the server is under high load β this is a "think before you set it" situation.
This command supports the --store-file option, which can be used to define the stores and caches in a JSON file. The config can then be reloaded by sending a SIGHUP without needing to restart the server. This can be done under load as well. Slay.
π OPTIONS π
--authorization=""β expected value of the authorization header in requests--ca-cert=""β trust authorities in this file, instead of OS trust store-c,--cache=""β store to be used as cache-r,--cache-repair[=true]β replace invalid chunks in the cache from source--cert=""β cert file in PEM format, requires--key--client-ca=""β acceptable client certificate or CA--client-cert=""β path to client certificate for TLS authentication--client-key=""β path to client key for TLS authentication-n,--concurrency=10β number of concurrent goroutines,-1to let desync choose: the number of CPUs for chunking and hashing, adapting to each store up to128for transfers--encryption[=false]β serve chunks encrypted, expects the key in$DESYNC_ENCRYPTION_KEYunless--encryption-keyis given--encryption-algorithm=""β encryption algorithm,xchacha20-poly1305(default) oraes-256-gcm, implies--encryption--encryption-key=""β serve chunks encrypted with this hex-encoded 256-bit key, implies--encryption-e,--error-retry=3β number of times to retry in case of network error-b,--error-retry-base-interval=500msβ initial retry delay, increases linearly with each subsequent attempt-h,--help[=false]β help for chunk-server--key=""β key file in PEM format, requires--cert-l,--listen=[:http]β listen address(es), can be repeated--log=""β request log file or-for STDOUT--mutual-tls[=false]β require valid client certificate--skip-verify-read[=true]β don't verify chunk data read from upstream stores (faster)--skip-verify-write[=true]β don't verify chunk data written to this server (faster)-s,--store=[]β upstream source store(s)--store-file=""β read store arguments from a file, supports reload onSIGHUP-t,--trust-insecure[=false]β trust invalid certificates-u,--uncompressed[=false]β serve uncompressed chunks-w,--writable[=false]β support writing
π OPTIONS INHERITED FROM PARENT COMMANDS π
--config=""β config file (default$HOME/.config/desync/config.json)--digest="sha512-256"β digest algorithm,sha512-256orsha256--verbose[=false]β verbose mode
π EXAMPLE π
desync chunk-server -s sftp://192.168.1.1/store -c /path/to/cache -l :8080
desync chunk-server -s /path/to/store -w -l :8080
desync chunk-server -s /path/to/store --cert cert.pem --key key.pem -l :8443
π₯ SEE ALSO π₯
desync(1)β the parent page, bestie π«Ά
πΈ HISTORY πΈ
20-Oct-2026 Auto generated by spf13/cobra
Sign-off from the footer, bestie: source/version desync / desync(1), date Oct 2026 β bye! πβ¨
π¦ where this page comes from
- arch rolling: desync 1.1.5-1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms