KEIBIDROP serving peer: open your NAS folders from any computer over the internet, encrypted
96
Turn your NAS or home server into an always-on KEIBIDROP peer. Your computer opens the box's folders over the internet as if they were on your own disk, with Teleport: each file streams when an application opens it, so you do not wait for a full upload or download. Every connection is end-to-end encrypted with a post-quantum key exchange (X25519 and ML-KEM-1024).
The container holds the serving side only. It needs no FUSE, no /dev/fuse
and no extra capabilities. The machine that reads the files runs the desktop
app or kd with its own driver (macFUSE, fuse3 or WinFsp).
Full guide: https://keibidrop.com/docs/how-to/run-on-a-nas.html
On your computer, install KeibiDrop and the Teleport driver: macFUSE on a Mac, WinFsp on Windows, fuse3 on Linux. Open the app, keep Local mode off and press Copy my code. That is your computer's code.
On the box, save this as docker-compose.yml. Set the folder to share and
paste your computer's code into KD_PEER:
services:
keibidrop:
image: keibisoft/keibidrop:latest
container_name: keibidrop
restart: unless-stopped
network_mode: host
environment:
KD_PEER: "" # your computer's code, from Copy my code
KD_PEER_NAME: laptop
KD_SHARE_READ_ONLY: "false"
volumes:
- /path/to/your/files:/shares
- keibidrop-config:/config
volumes:
keibidrop-config:
Start it and read the log. The log prints the box's code.
docker compose up -d
docker compose logs -f
On your computer, turn on Teleport, paste the box's code and press Connect.
When it connects, press Save contact and turn on Auto on the contact's row. From then on both sides reconnect by themselves after a drop.
The box's files now show in your Teleport Folder, ~/KeibiDrop/Mount
unless you changed it. Settings shows the path. Open the files from there in any
app.
If the box started with KD_PEER empty, give it your computer's code while it
runs:
docker exec keibidrop kd add-contact laptop <your computer's code>
Point the app at the Teleport Folder. For DaVinci Resolve: Preferences, System, Media Storage; keep a local disk as the first entry, add the Teleport Folder, and leave Direct I/O off. Step by step: https://keibidrop.com/docs/how-to/edit-from-a-nas-in-davinci-resolve.html
When your computer connects, the box's log prints Peer connected and the
path: direct, bridge (through the relay, which forwards encrypted bytes it
cannot read) or lan. docker exec keibidrop kd status prints the session as
JSON.
| Variable | Default | Meaning |
|---|---|---|
KD_PEER | empty | The other machine's code. Saved as a contact on first start. |
KD_PEER_NAME | laptop | Contact name for KD_PEER. |
KD_SHARE_READ_ONLY | false | true refuses every change the peer sends. Add :ro to the /shares mount as well. |
KD_INBOUND_PORT | 26431 | TCP port peers dial. Range 26000 to 27000. |
KD_OUTBOUND_PORT | 26432 | TCP port this box dials from. |
KD_STRICT | false | true never falls back to the bridge. |
KD_RESCAN_SHARED_SECONDS | 30 | How often the box re-walks the shared folder and announces files that landed since the last pass. 0 turns it off; new files then wait for the next connect. |
KD_RELAY, KD_BRIDGE | production | A self-hosted relay and bridge. |
KD_LOG_FILE | /tmp/keibidrop.log | Engine log. Capped at KD_LOG_MAX_MB (64). |
Every other key from the configuration reference works through
/config/config.toml. Environment variables win over the file.
docker exec keibidrop kd status prints the session as JSON. The full kd
surface is documented at https://keibidrop.com/docs/reference/kd-cli.html.
Host networking gives the peer the box's real ports and its IPv6 address, which is what a direct connection needs. In bridge networking every connection goes through the KeibiDrop bridge instead. Direct connections cost nothing; bridged traffic rides the free tier until you add relay credit.
/config holds this box's private identity and its contacts. The key file is
mode 0600 and the container refuses to start when the folder is readable by
other users. Anyone who can read the folder can act as this box: keep it out
of shared backups, or encrypt those backups. Passphrase protection of the
identity needs a terminal at every start, so it is not offered in the
container; run the desktop app where that trade is wanted.
From the repository root:
docker build -f docker/Dockerfile -t keibidrop:dev .
Images for linux/amd64 and linux/arm64 are on Docker Hub (keibisoft/keibidrop)
and on GHCR (ghcr.io/keibisoft/keibidrop).
Content type
Image
Digest
sha256:10c500f76…
Size
36.5 MB
Last updated
about 10 hours ago
docker pull keibisoft/keibidrop