Download and run
One binary. Build it yourself in two commands, or take a prebuilt one.
The server is the product. The apps are just windows onto it.
Everything lives in the server: your files, the accounts, the permissions, the versions, the sharing. Every rule is decided there and enforced there, on every request. This is the piece you install, the piece you back up, and the piece that is actually yours.
The phone, desktop and browser apps hold nothing of their own. They ask the server what exists and show it. Uninstall every one of them and you have lost nothing, because none of them were ever where your files were. Point a fresh one at the same address and everything is there again.
So if you only run one thing, run the server. You can reach it from a browser without installing any app at all.
Get the binary
No prebuilt binaries yet
Local Drive has not cut a tagged release, so there is nothing signed to hand you. Build it from source below. It takes two commands and needs only Go.
Tagging a version builds and attaches everything automatically, so download buttons appear here on their own the moment the first release exists.
Watch the releases pageOr build it yourself
Two commands and about thirty seconds. You need Go 1.25 and nothing else. There is no C compiler in the way, because the SQLite driver is pure Go.
- 1
Get the code
$ git clone https://github.com/MultiX0/LocalDrive.git$ cd LocalDrive\server - 2
Build it
$ go build -o localdrive.exe ./cmd/localdriveThat produces
localdrive.exein the current folder. Move it wherever you like; it has no install directory and no registry keys. - 3
Check it runs
$ .\localdrive.exe version
Start the server
- 1
Run it with no arguments
$ .\localdrive.exe# double clicking the file does the same thingWith no arguments it runs setup. It asks five questions: where to keep things, whether to use Docker, which port, whether you have a domain, and an admin username and password.
- 2
Let it generate its own secrets
You do not write a config file. It creates every secret on first start, mixing fresh randomness with an identifier unique to this machine, and saves them so a restart reuses the same ones. Anything you set in the environment always wins over what it generated.
- 3
Open it
https://localhost:7443# it also prints a QR code to scan from a phoneYour browser warns once that the connection is not private. That is expected with no domain: the server made its own certificate, because no authority on the internet can vouch for a computer in your house.
- 4
Keep it running
$ .\localdrive.exe status$ .\localdrive.exe logs
The commands
The same binary in every mode. It is identical on Windows and Linux; only the way you invoke it differs.
| Command | Does |
|---|---|
| (none) | Set up and start a server. What you run the first time. |
| init | Write a working configuration without asking anything. |
| serve | Run the server in the foreground, with no Docker. |
| start | Start an already configured server. |
| stop | Stop a running server. |
| restart | Restart a running server. |
| status | Show whether the server is up, and where to reach it. |
| logs | Follow the server log. |
| backup | Write a backup of the database and the library. |
| reset-admin | Reset the admin password on an existing install. |
| version | Print the version. |
Every command takes --dir to point at a different install, and reads LOCALDRIVE_HOME for the same purpose. Full detail in the quick start.