Boxlet

Boxlet is a server + mobile app system that allows you to take advantage of free space on any cloud server you have ssh access to as a backup/sync for your photos.

Boxlet is also compatible with storing files on Amazon S3.

From the mobile iOS app, you can specify any server:port where the Boxlet server is running to sync and backup your photos to a remote server.

Dependencies

  • Ruby 2.0+ (Has been tested in 2.0 and 2.1.1)
  • MongoDB 2.4+
  • Linux server with free drive space and an open port
  • iOS 7.1 (iPhone app)

Installation

gem install boxlet

Usage

Run boxlet run from any folder to stat the server with default settings.

See below for config and parameters.

Config

Here’s a sample Boxlet configuration file config.yml with default values populated:

“l

config.yml

Environment

environment: development debug: true

File system parameters

path: ./ upload_dir: ./uploads tmp_dir: /tmp file_system_root: /

Capacity is either a percentage of available space on the drive or number in MB

capacity: 90%

Server type and listen parameters

port: 8077 host: localhost server_type: thin daemonize: false

use s3

s3: enabled: false access_key_id: secret_access_key: bucket: boxlet

Database config

db: development: host: localhost db: boxlet_dev production: host: localhost # port: # user: # pass: db: boxlet

Many config options are available as command-line parameters

  • Path: -f or --path
    • Default: ./
  • Port: -p or --port
    • Default: 8077
  • Host: -o or --host
    • Default: localhost
    • Public: 0.0.0.0
  • Server Type: -s or --server_type
    • Default: rack
  • Environment: -E or --environment
    • Default: development
  • Daemonize: -D or --daemonize
    • Default: false
  • Debug: -d or --debug
    • Default: true
  • Upload Directory: -U or --upload_dir
    • Default: ./uploads
  • Temp Directory: -T or --tmp_dir
    • Default: ./tmp
  • File System Root: -r or --file_system_root
    • Default: /
  • Capacity: -C or --capacity
    • Default: 90%

Contributing

  1. Fork this repo
  2. Create an issue/feature request
  3. Create, commit, and push your feature branch (my-new-feature)
  4. Create new Pull Request