All-in-one Discord export solution using Docker
Find a file
2025-09-06 22:22:30 +08:00
exporter wip: back to go we go 2025-09-06 22:22:30 +08:00
scripts wip2 2025-08-30 12:30:23 +08:00
web wip: back to go we go 2025-09-06 22:22:30 +08:00
.gitignore wip 2025-09-02 11:44:50 +08:00
.gitmodules wip: fuck submodules 2 2025-09-02 11:52:14 +08:00
design.penpot wip 2025-09-02 11:44:50 +08:00
docker-compose.yml wip: back to go we go 2025-09-06 22:22:30 +08:00
README.md wip 2025-09-02 11:44:50 +08:00

Discord Chat Exporter (DCE) Box

Background

There's several linked projects that export chat logs from Discord, but using them all together takes effort to set up all the dependencies. There's one that does the actual exporting (Discord Chat Exporter) , one that exports in increments (DiscordChatExporter-incrementalBackup), one that renders the exports (DiscordChatExporter-frontend), and one that exports in intervals (DiscordChatExporter-incrementalBackup-docker). DCE Box aims to consolidate all these projects to give you a single Docker Compose file that provides...

  • Incremental exports from Discord
  • Running in the background, automatically once per day, using the Docker daemon
  • A web interface for viewing your exported data
  • A web interface for guidance and configuration

... out of the box! In other words, DCE Box focuses on improving the UX of Discord Chat Exporter.

Warning

It is possible to use DCE Box with user account tokens. However, this is against the Discord Terms of Service and may lead to your account being banned. If you are using a user account token, please know that you're doing this at your own risk!

Make sure your friends have a way to know if you get banned and need to change to another account. Use a secret passphrase or something, idk. Also, don't buy Nitro, and use alternative platforms like Matrix that actually respect your right to delegate.

Usage

  1. Install Docker.
  2. Download docker-compose.yml into an empty folder.
  3. Download config.example.json into the same folder, and rename it to config.json.
  4. Configure config.json. See jsonconfiguration.
  5. Run docker compose up -d.

Configuration

  • tokens.name: Your name for the Discord token, just put something simple
  • tokens.token : Your Discord token. Instructions on obtaining Discord tokens.
  • guilds.tokenName: Your name for the discord token defined in tokens.name
  • guilds.guildId: The id of the guild you want to backup. Instructions on obtaining Discord guild IDs.
  • guilds.guildName: Name of the folder where the guild will be saved
  • guilds.enabled: If true, the guild will be backed up; set to false to disable it
  • guilds.throttleHours: Minimum time between backups in hours. Set to 0 to backup every time the script is run.

Design

If you have any design suggestions, please modify the (Penpot document)[./design.penpot]! Pull requests welcome.

Architecture

DCE Box runs on Docker Compose, with the following Docker containers of the following responsibilities:

  • dcebox-web: Configuration and Guidance Web Server
  • dcebox-exporter: Backend Server, DCE Incremental Backup, and DCE
  • dcebox-frontend: DCE Frontend Server
flowchart TD
    D(Configuration and Guidance Web Server using NextJS @ :21012)
    E(DCE Frontend Server @ :21011)
    D --- G
    G(Backend Server using Go) --- H(DCE Incremental Backup)
    H --- J(DCE)
    J --- K(./exports)
    E --- K