exporter | ||
scripts | ||
web | ||
.gitignore | ||
.gitmodules | ||
design.penpot | ||
docker-compose.yml | ||
README.md |
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
- Install Docker.
- Download docker-compose.yml into an empty folder.
- Download config.example.json into the same folder, and rename it to
config.json
. - Configure
config.json
. See jsonconfiguration. - Run
docker compose up -d
.
Configuration
tokens.name
: Your name for the Discord token, just put something simpletokens.token
: Your Discord token. Instructions on obtaining Discord tokens.guilds.tokenName
: Your name for the discord token defined intokens.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 savedguilds.enabled
: If true, the guild will be backed up; set to false to disable itguilds.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