Skip to content

Config file reference

Run deaddrop config example for a commented template, deaddrop config path to see where the file is read from, and deaddrop config check to validate it. See the Config file guide for precedence and file locations.

Every setting is optional. Unknown keys are errors.

Key Type Default Meaning
log string "off" (release), "warn" (debug) Log filter, same syntax as RUST_LOG. RUST_LOG overrides it.
Key Type Default Flag / env Meaning
multi_use bool false --multi-use Keep serving to any number of clients until Ctrl-C.
data_dir path temp dir --data-dir Where torrent data and the blob store go. Relative to the config file.
peers array of "IP:PORT" [] --peer Extra BitTorrent peers.
reset_token string unset --reset-token, DEADDROP_RESET_TOKEN Enables resets. At least 16 characters.
wait_for_reset bool false --wait-for-reset Single use: delete the data and wait for a reset instead of exiting.

An array of tables, one per notifier. Any --notify flag or DEADDROP_NOTIFY replaces this whole list.

Key Type Default Meaning
type "discord" | "webhook" required Notifier type
url string required Webhook URL. A secret: chmod 600 the file.
include_key bool false Also send the decryption key
Key Type Default Flag Meaning
out path . -o, --out Where deaddrop fetch writes files. Relative to the config file.
Key Type Default Flag / env Meaning
token string unset --token, DEADDROP_RESET_TOKEN The server’s reset token, used by deaddrop reset.
# deaddrop config file.
#
# Default location: ~/.config/deaddrop/config.toml (Linux), or pass --config <file>
# (or set DEADDROP_CONFIG). Every setting is optional.
#
# Precedence: command-line flag > environment variable > this file > default.
# Relative paths are resolved against this file's directory.
#
# This file may hold webhook URLs, which are secrets: chmod 600 it.
# Log filter, same syntax as RUST_LOG. RUST_LOG overrides it.
# "off" disables logging entirely. Default: "off" in release builds,
# "warn" in debug builds.
# log = "warn"
[serve]
# false (default): shut down after one client has downloaded the data.
# true: keep serving to any number of clients until Ctrl-C.
multi_use = false
# Where the torrent data and blob store go. If unset, a temp dir is used and
# deleted on exit.
# data_dir = "/var/lib/deaddrop"
# Extra BitTorrent peers to connect to.
# peers = ["192.168.1.10:6881"]
# Let `deaddrop reset` replace the torrent being served with a new magnet or
# .torrent. Anyone with the ticket AND this token can do it. At least 16
# characters; `openssl rand -hex 32` makes a good one. Unset (the default)
# turns resets off. DEADDROP_RESET_TOKEN overrides it.
# reset_token = "<long random string>"
# Single use only, needs reset_token: instead of exiting after the one
# download, delete the data and wait for a reset to bring the next torrent.
# wait_for_reset = false
# Notifiers, sent when the ticket is ready. Add as many as you like.
# Any --notify flag or DEADDROP_NOTIFY replaces this whole list.
# include_key = true also sends the decryption key (default: ticket only).
[[serve.notify]]
type = "discord"
url = "https://discord.com/api/webhooks/<id>/<token>"
[[serve.notify]]
type = "webhook"
url = "https://example.com/hooks/deaddrop"
include_key = true
[fetch]
# Where `deaddrop fetch` writes files. Default: the current directory.
# out = "/home/me/Downloads"
[reset]
# The server's reset token, used by `deaddrop reset`. --token and
# DEADDROP_RESET_TOKEN override it.
# token = "<long random string>"