Connect
Linux mount
Mount every space as an ordinary folder on a render node, server or CI machine with no desktop, through FUSE, with a token and a systemd service.
On Linux machines without a desktop (render nodes, servers, CI runners), one command mounts all your spaces as an ordinary folder that any program can read and write:
sidespace login [email protected] # or use a token, see "Unattended" below
sidespace mount --at ~/SideSpace # Ctrl-C or umount ~/SideSpace to stop
ls ~/SideSpace # one folder per spaceHow it works
- It mounts through FUSE, with the same logic as the Mac's mount.
- Reading a large file fetches only the part you use: a player that jumps to minute 40 downloads only the chunks around it, not the whole file first.
- Writes stay on the machine first. Once a file has been quiet for 2 seconds it is saved as a new version;
fsyncsaves at once. - Programs that save through a temporary file and a rename keep the file's history: the result is a new version of the original.
mvandmkdirreach the space.rmmoves a file to the trash for 30 days.rmdirremoves only empty folders.- Changes others save show up within about a second: new files appear, and reopening a file reads the new content.
- When it stops (Ctrl-C,
SIGTERM,umount) it saves pending writes first, then unmounts. A mount point left behind by a crash is cleared on the next start. - Running as root needs nothing else. Other users need
fusermount3from thefuse3package:apt install fuse3. - Only the user who mounted can see the files. Add
--allow-otherto let other users on the machine in; without root, also enableuser_allow_otherin/etc/fuse.conf.
How fast it feels, measured, is on the performance page.
Unattended: a token and a mount at boot
To avoid signing in to an account on the machine, give it a token of its own, limited to the spaces and permissions it needs:
# on your own computer
sidespace token create render-01 --scope files:read --scope files:write --space "Film A"Put the token in ~/.config/sidespace/mount.env on the machine:
SIDESPACE_TOKEN=ssp_…The package includes a systemd user service that keeps the spaces mounted at ~/SideSpace, restarts it after a crash and saves before it stops:
systemctl --user enable --now sidespace-mount
loginctl enable-linger $USER # mount at boot, even with nobody logged in
journalctl --user -u sidespace-mount # logsThe token sees only the spaces it was given. Revoke it with sidespace token revoke and the machine loses access at once.
Packages
scripts/package-linux.sh builds a static sidespace in a rust:alpine container, so it doesn't depend on the glibc version and runs on any distribution. It makes two files:
sidespace-<version>-linux-<arch>.tar.gz: the binary, the service file and these instructions.sidespace_<version>_<arch>.deb: installs/usr/bin/sidespaceand the user service in/usr/lib/systemd/user/, and recommendsfuse3.
They are not on a public download page yet; build them from the repository, or ask us for the current build.
Or NFS
Where FUSE isn't available (a container without /dev/fuse, for example), sidespace mount --nfs serves the spaces over NFS and prints the matching sudo mount -t nfs … line. It needs nfs-common.