LimeBerry is an advanced WebDAV server written in the Ruby on Rails framework. LimeBerry currently implements the WebDAV and Access Control RFCs, as well as the BIND draft. Support for the DeltaV and Quota & Size RFCs is currently incomplete.
Installation
- Install the following software:
- Install required gems: gem install mysql rake shared-mime-info uuidtools mongrel
- We use our own modified httpauth library. Make sure the httpauth gem is not installed: gem uninstall httpauth
- You will need two to three databases - one development, one test, and a production database if desired. For each database, you will need to set four environment variables:
- LIMEBERRY_DEV_DB, LIMEBERRY_TEST_DB, or LIMEBERRY_PROD_DB: database name
- LIMEBERRY_DEV_USER, LIMEBERRY_TEST_USER, or LIMEBERRY_PROD_USER: database user
- LIMEBERRY_DEV_PASS, LIMEBERRY_TEST_PASS, or LIMEBERRY_PROD_PASS: password for the database user
- LIMEBERRY_DEV_HOST, LIMEBERRY_TEST_HOST, or LIMEBERRY_PROD_HOST: hostname of the database server
- Check out the LimeBerry code: svn co http://svn.limedav.com/svn/limedav/limeberry/trunk limeberry
- Change to the limeberry directory: cd limeberry
- Drop and recreate the database tables: rake db:reset
- Run the tests: rake
- Start mongrel (defaults to port 3000): mongrel_rails start
Adding Users
tolsen@neurofunk:~/svn/limedav/limeberry/trunk$ ./script/console Loading development environment. >> User.make :name => 'tim', :password => 'swordfish' => #<User id: 17, uuid: "720f0069ea314cddb913b72b74c653fb", created_at: "2007-10-05 20:53:38", displayname: "", comment: "", type: "User", owner_id: 17, creator_id: 1, lock_version: 1> >> exit tolsen@neurofunk:~/svn/limedav/limeberry/trunk$
Sample Session with Cadaver
tolsen@neurofunk:~$ cadaver http://localhost:3000/home/tim
Authentication required for users@limedav.com on server `localhost':
Username: tim
Password:
dav:/home/tim/> ls
Listing collection `/home/tim/': collection is empty.
dav:/home/tim/> put timmay.gif
Uploading timmay.gif to `/home/tim/timmay.gif':
Progress: [=============================>] 100.0% of 1 bytes succeeded.
dav:/home/tim/> ls
Listing collection `/home/tim/': succeeded.
timmay.gif 5794 Oct 5 16:55
dav:/home/tim/> exit
Connection to `localhost' closed.
tolsen@neurofunk:~$
