Gem Version Dependency Status Build Status Coverage Status

Boxafe mounts EncFS filesystems or "boxes" that you define in a configuration file with a friendly DSL. It can also mount them on startup. EncFS must be installed separately.

Note: Currently supports OS X. Partial Linux support.


  • Ruby 2.2+


gem install boxafe


Location: ~/.boxafe.rb

# mount a box (this will prompt for your password)
box do
  name 'A box'
  root '/secure/abox'
  mount '/Volumes/abox'
# this command is run:
# encfs "/secure/abox" "/Volumes/abox" -- -ovolname="A box"

# get the password from a file
box do
  name 'Password file box'
  root '/secure/password-file-box'
  mount '/Volumes/password-file-box'
  password_file '/secret/password'

# get the password from the OS X keychain
box do
  name 'Keychain box'
  root '/secure/keychain-box'
  mount '/Volumes/keychain-box'
  keychain 'keychain-box-password'
# adds an extpass to the command:
# --extpass="security 2>&1 >/dev/null find-generic-password -gl 'keychain-box-password'

# specify a custom path to the encfs XML configuration file
box do
  name 'Custom box'
  root '/secure/custom-box'
  mount '/Volumes/custom-box'
  encfs_config '/secure/.custom-box.encfs6.xml'
# adds an environment variable:
# ENCFS6_CONFIG="/secure/.custom-box.encfs6.xml"

# use a volume name different than the name
box do
  name 'Volume box'
  root '/secure/volume-box'
  mount '/Volumes/volume-box'
  volume 'Secure Volume'
# changes the ovolname option

# use a hash configuration
config = {
  name: 'Hash box',
  root: '/secure/hash-box',
  mount: '/Volumes/hash-box'
box config

# load configuration from environment variables
box env(:box_name, :box_root, :box_mount) # Reads $BOX_NAME, $BOX_ROOT, $BOX_MOUNT

# customize path to binaries
encfs '/opt/local/bin/encfs'
umount '/usr/local/bin/umount'


# mount/unmount all defined boxes
boxafe mount
boxafe unmount

# mount/unmount one box
boxafe mount 'A box'
boxafe unmount 'A box'

# check what boxes are mounted
boxafe status

# mount all boxes on startup (currently only on OS X)
boxafe start

# stop boxes from mounting on startup
boxafe stop


Boxafe is currently geared towards OS X with partial Linux support.

Cron scheduling is partially implemented with whenever, and other extpass methods like a password file would be helpful.


  • Fork
  • Create a topic branch - git checkout -b my_branch
  • Push to your branch - git push origin my_branch
  • Create a pull request from your branch

Please add a changelog entry for new features and bug fixes.

Writing specs will get your code pulled faster.


This is the list of planned features/changes:

  • Complete test suite.
  • Growl/OS X notifications.
  • "Repair" feature to un-quarantine files on OS X.
  • Cron scheduling with whenever.


  • Author: Simon Oulevay (Alpha Hydrae)
  • License: MIT (see LICENSE.txt)