Skip to content
Local Drive
Install

Download and run

One binary. Build it yourself in two commands, or take a prebuilt one.

Paste this

$ Invoke-WebRequest https://github.com/MultiX0/LocalDrive/releases/latest/download/server.exe -OutFile server.exe
$ .\server.exe
 
# PowerShell. double clicking the file does the same thing

Always the newest release. Setup then offers to put it on your PATH, and after that it is localdrive from any directory. On a Raspberry Pi or an ARM server, use server-arm64 in place of server. On a Mac, build it from source below.

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

Version 0.0.2.

The server

Start here. One file, nothing to install. This is the piece that holds your files.

Linux

serverx86-64, single file

Download16.3 MB

Linux (ARM)

server-arm64arm64, for a Pi or an ARM VPS

Download15.4 MB

Windows

server.exex86-64, single file

Download16.8 MB

The apps

Optional. Any browser reaches the server without installing anything, so take these only if you want a native app.

Android

localdrive-client.apkinstall directly

Download122.8 MB

Windows

localdrive-client-setup.exeinstaller, recommended

Download29.8 MB

Windows (portable)

localdrive-client-windows.zipunzip and run, no install

Download40.0 MB

Linux

localdrive-client-linux.tar.gzextract and run

Download17.7 MB

Verify what you downloaded against SHA256SUMS.

Or 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. 1

    Get the code

    $ git clone https://github.com/MultiX0/LocalDrive.git
    $ cd LocalDrive\server
  2. 2

    Build it

    $ go build -o localdrive.exe ./cmd/localdrive

    That produces localdrive.exe in the current folder. Move it wherever you like; it has no install directory and no registry keys.

  3. 3

    Check it runs

    $ .\localdrive.exe version

Start the server

  1. 1

    Run it with no arguments

    $ .\server.exe
     
    # double clicking the file does the same thing

    The downloaded file is called server.exe. Rename it to localdrive.exe if you prefer, or let setup put it on your PATH, and every later command becomes just localdrive.

    With 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. 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. 3

    Open it

    http://localhost:7443
     
    # it also prints a QR code to scan from a phone

    Plain HTTP, and no certificate warning, because there is no self signed certificate involved. No authority issues certificates for an address on your own network, so the server does not pretend otherwise. Set a domain and it gets a real one automatically. See HTTP and HTTPS.

  4. 4

    Keep it running

    $ .\server.exe service
     
    # registers it with Task Scheduler and starts it
    $ .\server.exe status
    $ .\server.exe logs

The commands

The same binary in every mode. It is identical on Windows and Linux; only the way you invoke it differs.

CommandDoes
(none)Set up and start a server. What you run the first time.
initWrite a working configuration without asking anything.
install-pathMake localdrive a command you can type anywhere.
serviceRun in the background and start again after a reboot.
serveRun the server in the foreground, with no Docker.
startStart an already configured server.
stopStop a running server.
restartRestart a running server.
statusShow whether the server is up, and where to reach it.
logsFollow the server log.
backupWrite a backup of the database and the library.
reset-adminReset the admin password on an existing install.
updateCheck for a newer release and install it.
rollbackGo back to the previous version.
versionPrint 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.