A custom build of rclone with TelDrive v2 backend support.
TelDrive provides a file-storage layer backed by Telegram, while rclone provides the familiar command-line interface for copying, syncing, mounting, and managing files.
Status: Working / development build Architecture tested: Linux ARM64 (Raspberry Pi) Go version tested: Go 1.25 rclone base: v1.76.0-DEV
- TelDrive v2 backend
- TelDrive API-key authentication
- Telegram-backed file storage through TelDrive
- Directory listing
- File uploads/downloads
- rclone commands such as
ls,lsd,copy,sync, etc. - Configurable upload chunk size
- Configurable upload concurrency
- Optional TelDrive file encryption
- Optional BLAKE3 tree hashing
- Public link support
- Threaded upload streams
- Go 1.25 or newer
- Linux/macOS/Windows supported by Go, depending on the target platform
- A running TelDrive v2 server
- A TelDrive API key
- A TelDrive storage channel configured on the server
For Raspberry Pi, a 64-bit OS is recommended.
Clone the repository:
git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.git
cd YOUR_REPOSITORYBuild rclone:
go build -o rclone .Check the resulting binary:
./rclone versionYou should see something similar to:
rclone v1.76.0-DEV
- os/type: linux
- os/arch: arm64
- go/version: go1.25.x
On Linux:
sudo install -m 0755 rclone /usr/local/bin/rclone-teldriveThen:
rclone-teldrive versionUsing the name rclone-teldrive keeps this build separate from a normal system installation of official rclone.
Create a TelDrive remote using:
rclone-teldrive configChoose:
n) New remote
Set the backend to:
teldrive
The important settings are:
api_key
api_host
channel_id
Example configuration:
[teldrive]
type = teldrive
api_key = YOUR_TELDRIVE_API_KEY
api_host = https://your-teldrive-server.example.com
channel_id = YOUR_CHANNEL_IDNever commit your API key to Git.
The rclone configuration is normally stored at:
~/.config/rclone/rclone.conf
List directories:
rclone-teldrive lsd teldrive:List files:
rclone-teldrive ls teldrive:Get information about the backend:
rclone-teldrive help backend teldriveCopy a local file to TelDrive:
rclone-teldrive copy ./file.iso teldrive:Copy a directory:
rclone-teldrive copy ./my-folder teldrive:my-folderList a remote directory:
rclone-teldrive ls teldrive:my-folderSync a local directory:
rclone-teldrive sync ./my-folder teldrive:my-folderBe careful with
sync: files at the destination can be deleted to make the destination match the source.
The TelDrive backend supports configurable upload parameters.
Default:
512 MiB
Example:
rclone-teldrive copy ./large-file teldrive: \
--teldrive-chunk-size 512MSupported range:
64 MiB – 2000 MiB
Default:
4
Example:
rclone-teldrive copy ./large-file teldrive: \
--teldrive-upload-concurrency 4Higher values can increase upload speed but also increase memory usage and may increase API/Telegram rate limiting.
TelDrive native encryption can be enabled with:
--teldrive-encrypt-files
For example:
rclone-teldrive copy ./file.bin teldrive: \
--teldrive-encrypt-filesEncryption behavior depends on the TelDrive server configuration.
BLAKE3 tree hashing is enabled by default.
It can be disabled with:
--teldrive-hash-enabled=false
The backend uses 16 MiB blocks for the tree hash.
This project has been tested on:
Raspberry Pi
64-bit Raspberry Pi OS
Linux ARM64 / AArch64
Go 1.25
Example:
go build -o rclone .
sudo install -m 0755 rclone /usr/local/bin/rclone-teldriveThen:
/usr/local/bin/rclone-teldrive versionVerify that the API key is correct.
The TelDrive API uses the:
X-Api-Key
HTTP header.
You can test authentication directly:
curl -i \
-H "X-Api-Key: YOUR_TELDRIVE_API_KEY" \
https://your-teldrive-server.example.com/api/v1/meA successful response should return information about the authenticated TelDrive user.
Make sure the remote name matches your configuration.
For example, if your configuration contains:
[teldrive]
type = teldriveuse:
rclone-teldrive ls teldrive:If your remote is named:
[teldrive-v2]
type = teldriveuse:
rclone-teldrive ls teldrive-v2:The repository includes:
docs/data/backends/teldrive.yaml
This file provides the backend overview metadata required by this rclone build.
If you are working from an older checkout, make sure this file is present before rebuilding.
Run the TelDrive backend tests:
go test ./backend/teldriveRun the complete test suite:
go test ./...Build:
go build -o rclone .This is a custom/development build of rclone with TelDrive v2 support.
It is not an official rclone release unless explicitly stated otherwise.
Use production deployments at your own risk and test important data operations before relying on them for backups or synchronization.
This project is based on rclone.
See the repository's existing license files and upstream rclone licensing information for applicable terms.
- rclone — command-line cloud storage tool
- TelDrive — Telegram-backed storage server
If you find a problem with the TelDrive backend, please open an issue with:
- rclone version
- operating system
- architecture
- Go version
- command being executed
- relevant
-vvoutput
Never include API keys, passwords, tokens, or other credentials in an issue.