/ddrv

Discord as infinite cloud storage

Primary LanguageGoGNU Affero General Public License v3.0AGPL-3.0

DDRV - discord as infinite cloud storage.
=========================================
ddrv is not-so-conventional tool to exploit Discord's unlimited file attachment feature for an endless cloud storage solution. You're welcome.


HIGHLIGHTS
----------
- Supports multiple protocols, HTTP and FTP(Yes you can mount as fuse using rclone).
- The frontend is robust. Works with web browsers (HTTP), Filezilla, RClone, Windows Explorer, Ubuntu (Nautilus), and many more.
- For storing file metadata, PostgreSQL and Bolt (key/value store in pure Go) data providers are supported.
- HTTP supports partial downloads, so you can use multi-threaded download managers and stream video directly to video players.


NEW IN VERSION 2
----------------
- Ditched webhooks for bot tokens. Bot tokens were necessary to renew attachment url signature.
- Discord attachment URL signature? Pfft. Found a workaround.
- Zerolog logging library now. The standard one was just meh.
- Configuration's now in "config.yaml" instead of ".env". Because consistency is overrated.
- Added a new disk-based dataprovider using boltdb. For those who can't handle a full setup.
- Webdav is out. It was a slow, broken mess and complete waste of time


REQUIREMENTS
-------------
- Discord bot token. Make sure "message content intent" is on.
- PostgreSQL - Optional (Data provider)


USAGE
-----
- Get latest binary and config from 'https://github.com/forscht/ddrv/releases' for your os/platform.
- Copy config_example.yaml -> config.yaml and update config.yaml according to your use case
- Start Linux / Macos - './ddrv --config=config.yaml'
- Start Windows - 'ddrv --config=config.yaml'


USAGE DOCKER
------------
- Prepare config.yaml, find a sample config at 'https://github.com/forscht/ddrv/blob/main/config/config_example.yaml'
- Command - 'docker run --network=host -v="./config.yaml:/app/config.yaml" --rm --name=ddrv forscht/ddrv'


CONFIGURATION FILE
------------------
The ddrv utilizes a configuration file in the YAML format, find a sample config at 'https://github.com/forscht/ddrv/blob/main/config/config_example.yaml'.
ddrv automatically searches for a file named 'config.yaml' in the current directory and in the $HOME/.config/ddrv directory.
Alternatively, you can specify a different configuration file by using 'ddrv --config=/path-to-config/config.yaml'.


BUILD FROM SOURCE
-----------------
- Install latest GO - 'https://go.dev/doc/install'
- Clone this repo - 'https://github.com/forscht/ddrv'
- Command to build - 'go build -ldflags="-s -w" -o ddrv ./cmd/ddrv'


SUPPORT
-------
- Create GitHub issue at - 'https://github.com/forscht/ddrv/issues'
- Discord Server - 'https://discord.gg/bdxkPSEKzG'