dcfs Config Generator

Generate your dcfs configuration file with this interactive form
Discord
Bot Credentials

Right-click server → Copy ID

Private File Channels & Metadata

Configure one or more private channels to store files. Each channel needs a channel ID and metadata configuration to maintain the directory structure. Right-click a channel → Copy ID.

Valid directory name for metadata

Metadata Type:

The metadata will be maintained in a JSON file pinned in the file channel. Every directory operation reuploads and updates the pinned file.


dcfs
Users
JWT
Server
Upload Retry

Number of retry attempts

Seconds between retries

Exponential backoff base (s)

WebDAV server will be at http://0.0.0.0:1900/webdav

dcfs server will be at http://0.0.0.0:1900

Protocols
FTP
SFTP
SMB

Encryption (Optional)

At-rest encryption with AES-256-GCM. When enabled, every file is encrypted client-side before being uploaded; the Discord channel only ever sees ciphertext plus a public per-file salt.

Generated Configuration
discord:
  bot_token: ''
  private_file_channel: []
  delete_messages_on_remove: false
dcfs:
  users:
    user:
      password: password
  download:
    chunk_size_kb: 1024
    upload_max_retries: 10
    upload_retry_interval: 5
    upload_base_retry_delay: 2
  jwt:
    secret: ''
    algorithm: HS256
    life: 604800
  metadata: {}
  server:
    host: 0.0.0.0
    port: 1900
  ftp:
    enabled: false
    host: 127.0.0.1
    port: 2121
  sftp:
    enabled: false
    host: 127.0.0.1
    port: 2022
  smb:
    enabled: false
    host: 127.0.0.1
    port: 4445
  encryption:
    enabled: false
    master_salt_file: master.salt
    chunk_size: 65536
Docker Run Options

Path Style:

Local path to your config.yaml directory

Docker Run Command
docker run --pull=always -it -p 1900:1900 -v "$(pwd):/home/dcfs/.dcfs" ghcr.io/vulcanosoftware/dcfs:latest