Own your storage
Every file lives on hardware you control. There is no dependency on an external provider, no opaque retention policies, and no background data mining.
RemoteCabinet is a lightweight, local-first file sync and backup tool. Run a tiny server on your machine or home lab, connect with the CLI, and keep your files in sync across devices – without handing them to a third-party cloud.
$ rc server start
Listening on localhost:4000
$ rc connect --host 192.168.1.10
Connected ✓
$ rc sync ~/Projects
Sync complete: 24 files updated
Most file sync tools assume you are fine with a remote cloud owning your storage. RemoteCabinet flips that model. It treats your own machine as the cabinet, and gives you a simple protocol and CLI to open that cabinet from your other devices.
Every file lives on hardware you control. There is no dependency on an external provider, no opaque retention policies, and no background data mining.
RemoteCabinet is small and focused. You get a straightforward server and a CLI client, designed for LANs and home labs, without heavyweight dashboards or background daemons you do not understand.
Because it is implemented in Python and lives on GitHub, you can read the code, extend the protocol, and integrate it into your own tooling and automations.
At its core, RemoteCabinet is a personal sync and backup service. One machine runs the server; other machines connect as clients, push and pull files, and stay in sync.
Keep a chosen directory mirrored between your local machine and your RemoteCabinet server. Use it as a simple backup destination or a shared project workspace.
A focused client–server protocol handles listing, uploading, downloading, and updating files, without the complexity of a full distributed filesystem.
RemoteCabinet is controlled via the command line, making it ideal for terminals, SSH sessions, scripts, cron jobs, and automated backups.
Because the server runs in your own environment, you can integrate system-level security: firewalls, VPNs, SSH tunnels, and OS permissions.
The codebase is structured for experimentation. Extend request types, add metadata, or plug in your own authentication and sync policies.
RemoteCabinet is also a teaching tool: it demonstrates how to design a custom protocol, build a networked application, and reason about sync semantics.
The architecture is intentionally small: a single server process, multiple CLI clients, and a clear separation between local folders and the remote cabinet.
One server, multiple clients. Your cabinet lives where your storage and trust are.
Once you have cloned the repository, starting a RemoteCabinet instance is a straightforward Python workflow.
git clone https://github.com/soumildatta/RemoteCabinet.git
cd RemoteCabinet
# Example: run the server on port 4000
python RCServer.py --host 0.0.0.0 --port 4000 \
--root /path/to/your/cabinet
# From another machine on the same network
python RCClient.py --host 192.168.1.10 --port 4000
# Upload or download files and folders
# (Exact commands may vary based on the CLI in the repo)
The GitHub repository contains full instructions and examples. Use this website as a conceptual overview; consult the README for up-to-date installation details and command-line options.
Run RemoteCabinet on a small home server or NAS. Use your laptop and desktop as clients to sync project folders and important documents.
Mirror experiments, code, or notes between a workstation and a laptop without involving third-party sync services.
Use RemoteCabinet as a concrete example when teaching networking, protocols, or local-first application design.
Not directly. RemoteCabinet is more like a personal lab tool: it is small, understandable, and focused on local-first workflows. You can use it alongside cloud providers or instead of them, depending on your needs.
No. RemoteCabinet works perfectly inside a local network or VPN. If you want to reach it from outside, you can expose the server yourself (for example via SSH tunneling, port forwarding, or a reverse proxy), keeping full control.
The security model is intentionally transparent: the server runs on your hardware and inside your network. You can combine it with TLS, firewalls, and OS-level permissions. As with any self-hosted service, you should review the code and deployment setup for your environment.
Yes. The project is on GitHub, and the code is structured to be hackable. You can add new commands, enhance the protocol, or adapt the client for your own custom workflows.