FUSE interface
Motivation¶
You'll see all of Varasto's content like it was your local filesystem, and it doesn't use storage space as the files will be streamed on-demand.
OS support¶
Component | Linux | Windows | macOS | Android, iOS |
---|---|---|---|---|
Varasto FUSE projector | ☑ | ☐ | ☐ | ☐ |
Architecture¶
Varasto uses Linux-specific technology called FUSE to project content in Varasto as a local directory hierarchy.
Varasto architecture drawing
From above drawing, you'll see that the FUSE interface is built on top of the Varasto client library, which talks to the Varasto server over HTTP. That means that if you want, you can run the FUSE projector on a different computer than where the Varasto server runs. This means that Varasto is great for corporate users where there's one central server (or server cluster) that lets employees use files like if they were stored locally.
Here's how it looks if you run Varasto server and Varasto FUSE projector on:
Setting up FUSE projector on the same computer as Varasto server¶
Varasto can manage starting FUSE projector as a subsystem for you. Go to settings, and make sure the FUSE projector subsystem is started.
Warning
This feature is not yet completely ready - FUSE projector will crash if the client config file is not present. Read the "different computer than Varasto server" section for details, and you should read it anyway to gain more understanding.
Info
If you're starting FUSE projector as a Varasto subsystem, you'll see the projector's logs
from Varasto's Settings > Logs
.
Tip
If you're running Varasto in a Docker container, you need to bind mount the Varasto FUSE mountpoint from host to your container so the Samba process can benefit from the FUSE mount.
Setting up FUSE projector on a different computer than Varasto server¶
This section and process needs cleaning up to make it easier for all users.
Currently I only have a few short pointers for more technical users:
You need to decide where you want the Varasto filesystem mountpoint be placed. In the above
drawing it's /mnt/varasto
but you can use anything you want. Run $ mkdir /mnt/varasto
.
Since Varasto FUSE projector is a client, we need to configure how to connect to the server. Your config would look about like this:
$ sto config-print
path: /home/joonas/varastoclient-config.json
{
"server_addr": "https://localhost",
"auth_token": "qZKcP...",
"fuse_mount_path": "/mnt/varasto"
}
Note: $ sto ...
commands unless prefixed with $ sto server
are Varasto client
commands since you'll use the client more often.
You can run $ sto config-init
to generate the config file.
For auth_token
you need to create an API token in Settings > Users
.
You need to run the projector manually by running $ sto fuse serve
. TODO: systemd unit
file for automatically running it.
Testing that FUSE projector is working¶
Once you've started the FUSE projector, we should test that it works.
FUSE projector works like this: if you have a collection with ID bmnpli5QXgc
, it can be
accessed over fuse at /mnt/varasto/id/bmnpli5QXgc
.
Find a collection from Varasto's web UI to test with, and $ cd
into that. FUSE projector
dynamically fetches the latest revision of that collection. You should see its files now.
If the above works, it's time to set up Samba.