Insoshi is written in Ruby on Rails, so installing Insoshi means downloading the source code and running it on your local computer. There are several methods to do this, which we list in order of increasing involvement in the Insoshi project. Option #1: Source only (easy to download but no updates and hard to contribute)
If all you want is the source code, you can download the most recent release of Insoshi here. Keep in mind that Insoshi is still evolving rapidly, though, so if you want to get easy updates or contribute you should read on about using Git.
Option #2: Cloning with Git (fairly easy to download, hard to contribute)
The source code to Insoshi is managed via Git, a version control system developed by Linus Torvalds to host the Linux kernel development. What this means is that you can easily download the Insoshi source, get updates, contribute and manage your own local work. (For information on installing Git, check out our guide for Installing Git.)
If you're already familiar with Git, you can clone our public Git repository on GitHub via the command
git clone git://github.com/insoshi/insoshi.git You should also create a local development branch in your Git repository:
git checkout -b <firstname_lastname> where you should replace <firstname_lastname> with the your name (without the angle brackets!).
For more information on configuring your local clone of our repository, check out our Git Guides which also includes a scripted Quick Local Repository Setup (see next).
Option #3 (recommended): Forking at GitHub (still easy to download, easy to contribute)The best way to get started with Insoshi if you want updates and might want to contribute is to follow the steps on our Quick Local Repository Setup. This involves going to GitHub and forking our repository, to which you can then make changes. By issuing a pull request at GitHub, you can let us know about your changes and start the process of incorporating them into Insoshi. See our extensive Git Guides for more information.
Completing the installation
[This document includes and expands upon the README.rdoc included with the Insoshi code. Check the README for any changes, especially if you're using the edge branch.]
Once you've gotten the source code using one of the above methods, you should install the libraries and gems needed by Insoshi.
RailsIf you don't already have Rails on your computer, you should download and install Rails now.
Required Libraries
Insoshi recommends using FreeImage and ImageScience for image manipulation:
- FreeImage - an open source library project that supports standard graphics image formats (PNG, JPEG, etc.)
(If you're installing FreeImage on Windows, take a look at this blog post to avoid some possible headaches and issues.)
Insoshi will also work with ImageMagick/RMagick (more powerful but harder to install):- ImageMagick
- RMagick - installed as a gem but site has details for getting ImageMagick installed/built
You also need one of following databases
SQLite - a self-contained, serverless, zero-configuration, transactional SQL database engine (see note for Sphinx below!)
- MySQL - the popular open source database
- PostgreSQL - another good choice for an open source database
Insoshi uses Sphinx/Ultrasphinx for search
- Sphinx
- Ultrasphinx - Ruby on Rails Sphinx client (included with the Insoshi source under vendor/plugins)
Search using Sphinx is not supported with SQLite. You'll have to use either MySQL or PostreSQL as your database or disable the search functionality.
When running Insoshi in a production environment, you should also set up a cron job to rotate the search index as described in the Ultrasphinx deployment notes.
Installation instructions can be found on their sites or via a Google search.
Required Gems
Insoshi requires the following gems
- rails
- mysql - if you're using MySQL as your database engine
- chronic - required for Ultrasphinx
- image_science - if you're using FreeImage
- rmagick - if you're using RMagick
You can install these gems via
gem install <gem>
Optional GemsIf you want Markdown formatting support you can install one of the following gems
- rdiscount - fast but platform-dependent
- BlueCloth - slower but pure Ruby
Configuring Your Insoshi Installation
You will need to set up your database configuration. If you're using MySQL, you can just copy the example file:
cp config/database.example config/database.yml Then open up database.yml and set up the passwords to match your system.
Run the following custom install script
script/install
The install script will run the database migration and performs some additional setup tasks (generate an encryption keypair for password management, creating an admin account, etc.)
If the install step fails, you may not have properly set up your database configuration.
Then prepare the test database and run the tests (which are actually RSpec examples in the spec/ directory):
rake db:test:prepare rake spec If the tests fail in the Photos controller test, double check that FreeImage/image_science or ImageMagick/rmagick are installed.
At this point, you'll need to configure and start the Ultrasphinx daemon for the test runtime
rake ultrasphinx:configure RAILS_ENV=test rake ultrasphinx:index RAILS_ENV=test rake ultrasphinx:daemon:start RAILS_ENV=test
and re-run the tests
rake spec The search specs detect whether the search daemon is running and weren't performed during the first test run. An initial test run is needed in order to populate the test database for indexing (search specs would fail on an empty database).
To shut down stop the Ultrasphinx daemon for test
rake ultrasphinx:daemon:stop RAILS_ENV=test
Loading Sample Data and Starting the Server
You can load sample data to make development easier:
rake db:sample_data:reload configure and start the Ultrasphinx daemon for the development runtime
rake ultrasphinx:configure rake ultrasphinx:index rake ultrasphinx:daemon:start
and start the server
script/server
Go to http://localhost:3000
All the sample users have the email logins <name>@example.com with the password foobar
So, to log in as michael, use the following
email: michael@example.com
password: foobar
Admin UserTo sign in as the pre-configured admin user, use
email: admin@example.com password: admin
You should update the email address and password. Insoshi will display warning messages to remind you to do that.
Start HackingNow you can open up your favorite editor and start hacking away at the Insoshi source code.
Check out our Git Guides for information on how to manage your local development and how you can contribute your updates back to us.
Stat TrackerNote that there is a minimalist stat tracker in Insoshi that lets us keep track of how many different installs of Insoshi are out there. We don't collect any personal information, but if you don't want to be tracked, just open application.html.erb and comment out the line after this one
<%# A tracker to tell us about the activity of Insoshi installs %>
|