SimpleID
========

SimpleID is a simple, personal OpenID provider written in PHP.

Latest Version
--------------

Version 1.0 is the final version of the original series of SimpleID.
SimpleID 2.0 is almost a complete rewrite of SimpleID and is not
backwards compatible this version.

The latest version of SimpleID can be found in the SimpleID web page at
<http://simpleid.org/>

Upgrading
---------

General upgrade instructions can be found in UPGRADE.txt.

IMPORTANT: SimpleID version 0.9 introduced numerous changes and additional
system requirements.  A manual upgrading process is required.  If you are
upgrading from an earlier version of SimpleID, please read UPGRADE.txt for
upgrade instructions.

IMPORTANT: SimpleID version 0.7 introduced numerous changes.  A manual
upgrading process is required.  If you are upgrading from an earlier version of
SimpleID, please read UPGRADE.txt for upgrade instructions.

IMPORTANT: SimpleID version 0.6 introduced a new log in mechanism.  If you
are upgrading from an earlier version of SimpleID, please read
UPGRADE.txt for upgrade instructions.


Installation
------------

For installation instructions, please see the SimpleID Getting Started Guide at
<http://simpleid.org/docs/1/#getting-started>.

Documentation
-------------

Documentation for SimpleID can be found at
<http://simpleid.org/docs/1/>.

Licensing
---------

Licensing information for SimpleID can be found in the file COPYING.txt.

Donate
------

If you enjoy using SimpleID, please consider making a donation to support the
ongoing development work.  To find out more on how to donate, visit
<http://simpleid.org/donate>.

Your donation is very much appreciated.

Acknowledgements
----------------

SimpleID includes code from the Drupal OpenID module
<http://drupal.org/project/openid>, written by Rowan Kerr
<rowan@standardinteractive.com> and James Walker <james@bryght.com>.

SimpleID includes code from php-gettext <https://launchpad.net/php-gettext>,
written by Danilo Segan <danilo@kvota.net> and Nico Kaiser <nico@siriux.net>.

SimpleID uses the XTemplate PHP templating engine
<http://www.phpxtemplate.org>, written by Barnabas Debreceni and Jeremy Coates.
Licensing information for this library can be found in COPYING-xtemplate.txt.

SimpleID uses the famfamfam Silk icon set
<http://www.famfamfam.com/lab/icons/silk/>, designed by Mark James.  The icon
set is licensed is licensed under a Creative Commons Attribution 2.5 License
<http://creativecommons.org/licenses/by/2.5/>.

SimpleID uses the jQuery JavaScript library <http://jquery.com>, by John
Resig and the jQuery team.  Licensing information for this library can be found
at <http://docs.jquery.com/Licensing>.

SimpleID uses the jQuery QR code library
<http://jeromeetienne.github.io/jquery-qrcode/>, by Jerome Etienne.  Licensing
information for this library can be found at
<https://github.com/jeromeetienne/jquery-qrcode/blob/master/MIT-LICENSE.txt>.

SimpleID uses normalize.css style sheet
<http://necolas.github.io/normalize.css/>, by Nicolas Gallagher and Jonathan
Neal.  Licensing information for this library can be found at
<https://github.com/necolas/normalize.css/blob/master/LICENSE.md>.
