PHP Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Kottu 2012

Code by Janith Leanage

This is the 2012 update of Kottu, which gets rid of ugly URLs, loads of bugs and large spaghetti code files :P


This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <>. 

(see license.txt for full AGPL license)

(For those who don't get the legal lingo: Basically what we're saying is feel free to copy our code, but please share back any changes or improvements that you make, in the spirit of free software)

External Libraries

This software uses the following external libraries and CSS files:


  • ./lib is the most important folder, and contains the Kottu API, the Kottu back-end, the database connection class, templates class, as well as the SimplePie, Simple HTML DOM and Facebook libraries.

  • ./static has the static files such as javascripts and CSS files.

  • ./img is the images folder, and has the Timthumb file at ./img/index.php. This folder contains the image resources used by Kottu, the icon files, and the Timthumb cache.

  • ./templates contains all the web, admin panel, rss and mobile templates, which are filled with data and rendered.

  • ./webcache contains cached web pages (Kottu cache).

  • All traffic is directed by .htaccess to the ./index.php file. Routing and stuff is handled inside that.

  • ./config.php contains all the configuration details for Kottu.

How to set up Kottu 2012

  • Run kottu2012.sql in a mySQL server.

  • Copy the files into the server's webroot, and set up all the values in config.php correctly.

  • Create a Facebook app (to get Facebook share/like information for posts) and copy the app ID and secret into config.php

  • You can log in to the admin panel at http://basepath/admin using the default username indi and password indi.

Important! Please change these values in the users table to ensure security.


For our setup at, we use the following setup. Your needs may vary.

  • http://basepath/admin/clearcache/secretkey should run every hour or so.

  • http://basepath/admin/spicecalc/secretkey should run every 15 minutes or so.

  • http://basepath/admin/feedget/secretkey should run every 5 minutes or so.