Documentation
Getting started: Files backend
This guide runs Everlock as a network drive and mounts it from your desktop:
- start Everlock with one file share on
localhost - create a user and grant it access
- mount the share in Finder, Windows Explorer, or a Linux file manager
- drop a file in and see it in the store's history
The share speaks WebDAV, so the file manager you already have is the client — no app to install.
1. Start Everlock with the files backend enabled
The two parts that trip people up:
--backend-files-httpenables the backend. On its own,--backend-files-http-vhostonly names the share — without the enable flag the backend never starts and you only get the admin SSH surface.- All runtime flags go after the
servesubcommand. A bareeverlock --backend-files-http-...fails withunexpected argument.
Grab the binary for your platform from the download page, then
start Everlock with one share on localhost:
./everlock serve \ --backend-files-http \ --backend-files-http-vhost localhost \ --backend-files-http-store everlock-files-local \ --admin-user admin \ --admin-password change-me
What this does:
- starts Everlock with the HTTP frontend on its default
0.0.0.0:8080(auto-enabled because an HTTP backend is on) - serves one share named
defaultathttp://localhost:8080/dav/ - keeps its files in the
everlock-files-localEverlock store - bootstraps an admin user for the SSH admin console
2. Open the admin console
Connect over SSH:
ssh -p 2222 admin@localhost
Enter the bootstrap password (change-me) and you land in the admin REPL:
Everlock Admin >
3. Create a user and grant it the share
/users create alice change-me /users grant alice http/files/default writer
What the roles mean on a share:
reader— browse and download (PROPFIND,GET,HEAD)writer— everything a file manager does: upload, rename, delete, lockowner— the same aswriterhere, plus ownership of the access path
The share created by --backend-files-http-vhost is named default, so its
access path is http/files/default. A share is private until somebody is
granted on it — creating one opens nothing.
You can manage shares from the console too:
/files list list shares and their URLs /files create team store=team-files vhost=files.example.com /files set team mount=/share serve it under /share /files unset team vhost=old.example.com stop serving a vhost /files delete team stop serving (store kept)
4. Mount the share
The address is the vhost, the mount path, and a trailing slash:
http://localhost:8080/dav/.
macOS Finder
Go → Connect to Server (⌘K), then:
http://localhost:8080/dav/
Sign in as alice with change-me. The share appears in the sidebar and
behaves like any other volume.
Linux (GNOME Files, Dolphin)
Other Locations → Connect to Server, or from a terminal:
gio mount dav://localhost:8080/dav/
Dolphin uses the same address with webdav://.
Windows Explorer
Windows' built-in client sends Basic credentials over HTTPS only, so map the
share from an HTTPS address — This PC → Map network drive, then:
https://files.example.com/dav/
Step 6 below puts the share on such an address. For the plain-HTTP localhost
one used here, a third-party client mounts it as it stands: Cyberduck, WinSCP,
and RaiDrive all do.
From the command line
curl -u alice:change-me -T notes.txt http://localhost:8080/dav/notes.txt curl -u alice:change-me http://localhost:8080/dav/notes.txt
5. See what the share kept
Drop a file into the mounted drive. A share is a versioned store, and a store is a Git repository — so the history is there to clone:
/users grant alice ssh/git/everlock-files-local reader
git clone ssh://alice@localhost:2222/everlock-files-local.git files-history cd files-history git log --oneline
a1b2c3d write notes.txt 9f8e7dc reports is no longer empty 4d5c6ba create collection reports
Every request that changed something is one commit. Editing the file from the file manager and saving again adds another, with the previous version still readable at the earlier commit:
git show 9f8e7dc:notes.txt
6. Going further
Serve it on a real name. Point a domain at the host, open ports 80 and 443, and Everlock requests a certificate over ACME:
./everlock serve \ --frontend-http-listen-http 0.0.0.0:80 \ --frontend-http-listen-https 0.0.0.0:443 \ --backend-files-http \ --backend-files-http-vhost files.example.com \ --backend-files-http-store team-files \ --admin-user admin \ --admin-password change-me
Every client above — Windows Explorer included — mounts an HTTPS share.
Serve it on the LAN. A .local vhost is announced over mDNS as
_webdav._tcp — the service type file managers browse for when they list
network shares — so the share can be reached without anyone typing a URL.
Share it with a team. Grant a group instead of a person:
/groups create staff /groups assign staff alice /groups grant staff http/files/team writer