Project

boxafe

0.0
No commit activity in last 3 years
No release in over 3 years
Boxafe encrypts and auto-mounts a folder with encfs and whenever.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies

Development

~> 0.8.16
~> 0.10.0
~> 2.0
~> 11.3
~> 3.1
~> 0.12.0

Runtime

~> 4.2
~> 2.1
~> 0.2.0
~> 0.1.0
~> 1.0
 Project Readme

boxafe

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.

Requirements

  • Ruby 2.2+

Installation

gem install boxafe

Configuration

Location: ~/.boxafe.rb

# mount a box (this will prompt for your password)
box do
  name 'A box'
  root '/secure/abox'
  mount '/Volumes/abox'
end
# 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'
end

# 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'
end
# 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'
end
# 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'
end
# 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'

Usage

# 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

Compatibility

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.

Contributing

  • 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.

Roadmap

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.

Meta

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