This is an open source web application for organising a distributed library.
This repository has not been updated, maintained, or run in production for a large number of years so this repository is now archived. You are of course welcome to fork it, the license is AGPL as seen in COPYING
.
Here are some basic installation instructions.
-
Make sure you have Ruby 2.0 or higher as well as Bundler (one way would be to use RVM).
- for production: you may want to use Apache + mod_passenger.
-
Install dependencies.
sudo apt-get install libxslt1-dev libsqlite3-dev libmysqlclient-dev
bundle install
-
rake secret
--- copy this and place it as your session key secret inconfig/initializers/secret_token.rb
-
Setup the database
- for production: in config/database.yml edit the database name, username and password.
rake db:setup
(when upgrading userake db:migrate
)
API tokens are set in config/application.yml. You can get an ISBNdb api token here. There is no guarantee that the API tokens stored in config/application.yml will work for you.
There are other things you can change in config/application.yml (like a tags blacklist if you have problems with swearing or pro-capitalists)
If you have questions about the license please email medwards@walledcity.ca
- Members can
- signup and create an account;
- add their books and videos;
- search items by name, author or description;
- loan items after confirmation from the owner (with return date);
- leave comments about other members as some form of user feedback.
- Book information by ISBN (from ISBNdb and Google Books).
- Book covers from Google Books.
- Send SMS on loan request (optional).
- Tagging.
- Librarians may edit all books and tags (optional).
In some communities it can be useful to have librarians who help to complete missing
information, correct mistakes and help with tagging. To enable this, you need to make
one user a librarian by running the following command (replacing admin@example.com
with the email address of the librarian):
echo "User.where(email: 'admin@example.com').update_all(librarian_since: Time.now)" | rails console
If you'd like to allow librarians to make other members a librarian, set use_librarian
to delegate
in config/application.yml. Librarians will then see a button on other users'
profile page.
- Distributed Library on Rabblepedia and Wikipedia
- GNU Distributed Library Project