Upspin part 5: Advanced tips and tricks [WIP]
Jul 2018    |    upspin     fuse     cacheserver     upspinfs     advanced     tips&tricks    

Please note: this is a work in progress and some items below may change without notice

FUSE daemon, upspinfs and cacheserver

The bread and butter of Upspin is being able to bring your remote data into the local namespace, so those items look and feel as if they are part of the local file tree.

Before we proceed we need tools:

brew install autoconf automake libtool gettext
brew link --force gettext

I’ll be grabbing the latest release from In this example I’m downloading and installing osxfuse-3.8.0.dmg with the defaults.

If you don’t have FUSE, or it’s installed incorrectly you’ll get an error:

FUSE for macOS is not installed. See

Next we update our Upspin config file to include a cache server (makes everything faster). By default the config file is located in $HOME/upspin/config

echo -e "cache: yes" >> $HOME/upspin/config

The cacheserver is started automatically when you run either the upspin or upspinfs command. We can override the default behaviour with config file and flags (if supplied, flags take precedent).

The default cache is located $HOME/upspin/[email protected]/fscache/tmp

As a personal preference I prefer the cacheserver to be in writethrough mode instead of writeback. So I add the following to my $HOME/upspin/config

echo -e "cmdflags:\n  cacheserver:\n    writethrough\n" >> $HOME/upspin/config
cat $HOME/upspin/config
# would look something like this
username: [email protected]
packing: ee

My Upspin mountpoint is a directory located at $HOME/u

mkdir $HOME/u
upspinfs $HOME/u &
# good
[1] 33387

cd ~/u/[email protected]/Public
$ tree
├── Access
├── augie.png
├── gopherfest2017.webm
├── mikes_fav_book.txt
├── this_is_fine.jpg
└── this_is_fine_gopher.png

0 directories, 6 files

# once you're finished cd home, kill the process and unmount
cd && killall -9 upspinfs && umount $HOME/u

# if you forget to kill the process you'll get an error next time
# fuse.Mount failed: mount_osxfusefs: exit status 64

I lost my Domain keys

Well, if you have your “secret seed” string you’re in luck

upspin keygen -curve p256 -secretseed $HOME/upspin/deploy/

How expose a /Public folder[email protected]/Public

How to run a separate directory and store servers