
= Instiki

Instiki is a wiki clone so pretty and easy to set up, you'll wonder if it’s really a wiki. Runs on Rails and focuses on portability and stability. Supports file uploads, PDF export, RSS, multiple users and password protection. Some use Instiki as a CMS (Content Management System) because of it's ability to export static pages.

Instiki lowers the barriers of interest for when you might consider using a wiki. It's so simple to get running that you'll find yourself using it for anything -- taking notes, brainstorming, organizing a gathering.


== Supported Platforms

Instiki only relies on Ruby - the sole external dependency (it includes all other dependencies). Any OS that can run Ruby can run Instiki - that includes Windows, Linux, Mac OS X and most known Unix flavors.

Instiki on BeOS, Amiga OS, OS2, Zeta OS and support for various exotic Platforms is planned. Mostly it already works, if Ruby runs there (download the linux version in this case). Please contact parasew if you want to help out for your OS that is not listed. Please also get in touch if you are able to create an instiki package for your favorite unix or linux distribution.


== 3 easy Steps to get the Instiki experience

  Step 1. Get Ruby, Download Instiki
  Step 2. Run "instiki"
  Step 3. Chuckle... "There's no step three!" (TM)
 

== Details

You need at least Ruby Version 1.8.4 installed on your System. The second dependency is a Database System, but don't worry, maybe you are already served.


=== If you are on Windows

- Get the *Ruby One-Click Installer - Windows* http://rubyforge.org/projects/rubyinstaller
- double-click instiki.bat or instiki.cmd and there you go!

if you are running Windows 95, 98 or ME and cannot get instiki to run, try Version 0.11.pl1 which is the last instiki Version to support that old-style OS's. Please update to some Unix-OS or complain to the Ruby on Rails List at http://www.ruby-forum.com/forum/3 (Rails does not support your old Windows.)


=== If you are on Mac OSX

Since the Apple guys really screwed it up, having an old Ruby Version (1.8.2) and a broken Readline Library with MacOSX Tiger, you have to

- use the Ruby One-Click-Installer for OSX ( http://rubyosx.com ) if you don't already have macports' Ruby
- make sure you read http://instiki.5uper.net/instiki/show/SQLite+issues+on+OSX
- run "ruby instiki.rb" via command-line in the directory 


=== If you are on Linux


=== Any other System

- get Ruby for your System, compile if nessesary: http://ruby-lang.org
- get SQLite or compile from http://sqlite.org (you can also use mysql or any other supported database system if you want)
- run instiki

You're now running a perfectly suitable wiki on port 2500 that'll present you with one-step setup, followed by a textarea for the home page on http://localhost:2500


== Features

* Regular expression search: Find deep stuff really fast
* Revisions: Follow the changes on every page from birth. Rollback to an earlier rev
* Export to HTML or markup in a zip: Take the entire wiki with you home or for reference
* RSS feeds to track recently revised pages
* Multiple webs: Create separate wikis with their own namespace
* Password-protected webs: Keep it private
* Authors: Each revision is associated with an author, so you can see who changed what
* Reference tracker: Which other pages are pointing to the current?
* Three markup choices: Textile http://www.textism.com/tools/textile
  (default / RedCloth http://www.whytheluckystiff.net/ruby/redcloth ), 
  Markdown (BlueCloth[http://bluecloth.rubyforge.org]), and RDoc[http://rdoc.sourceforge.net/doc]
* Embedded webserver: Through WEBrick[http://www.webrick.org], also runs on Mongel if you want to.
* Internationalization: Wiki words in any latin, greek, cyrillian, or armenian characters
* Color diffs: Track changes through revisions
* Runs on SQLite per default, can be configured to run on PostgreSQL, MySQL, DB2, Firebird, Openbase, Oracle, SQL Server or Sybase


== Command-line options:

* Run "ruby instiki --help"


== History:

 * See CHANGELOG


== Migrating Instiki 0.10.2 storage to Instiki 0.11.0 database

1. Install Instiki 0.11 and check that it works (you should be able to create a web, edit and save a HomePage)
2. Execute 
      ruby script\import_storage \
          -t /full/path/to/instiki0.10/storage \
          -i /full/path/to/instiki0.10/installation \
          -d sqlite (or mysql, or postgres, depending on what you use) \
          -o instiki_import.sql
   for example (Windows):
   ruby script\import_storage -t c:\instiki-0.10.2\storage\2500 -i c:\instiki-0.10.2 -d sqlite -o instiki_import.sql
3. This will produce instiki_import.sql file in the current working directory. 
   Open it in a text editor and inspect carefully.
4. Connect to your production database (e.g., 'sqlite3 db\prod.db'), 
   and have it execute instiki_import.sql (e.g., '.read instiki_import.sql')
5. Execute ruby script\reset_references 
   (this script parses all pages for crosslinks between them, so it may take a few minutes)
6. Restart Instiki
7. Go over some pages, especially those with a lot of complex markup, and see if anything is broken.

The most common migration problem is this: if you open All Pages and see a lot of orphaned pages, 
you forgot to run ruby script\reset_references after importing the data.


===Upgrading from Instiki-AR Beta 1

In Beta 2, we switch to ActiveRecord:Migrations. Therefore:
1. Back up your production database.
2. Open command-line session to your database and execute: 
  create table schema_info (version integer(11)); 
  insert into schema_info (version) values (1);
3. Go back to the shell, change directory to the new Instiki and execute "rake migrate".

Step 2 creates a table that tells to ActiveRecord:Migrations that the current version 
of this database is 1 (corresponding to Beta 1), and step 3 makes it up-to-date with
the current version of Instiki.


== Download the latest release from:

* http://rubyforge.org/project/showfiles.php?group_id=186


== Visit the "official" Instiki wiki:

* http://instiki.org


== License:

* same as Ruby's


---

Authors::

Versions 0.0 to 0.9.1:: David Heinemeier Hansson
Email::  david[AT]loudthinking.com
Weblog:: http://www.loudthinking.com[http://www.loudthinking.com]

From 0.9.2 onwards:: Alexey Verkhovsky
Email:: alex[AT]verk.info

From 0.11 onwards:: Matthias Tarasiewicz and 5uper.net
Email:: parasew[AT]gmail.com
Website:: http://5uper.net[http://5uper.net]
