From Habari Project

Jump to: navigation, search


Project Questions

What does "habari" mean?

"Habari" is a Swahili word that means "what's the news?" It's similar to the English "What's up?" or the Spanish "¿Qué pasa?" The typical response is "nzuri sana", which means "very good."

How is this different from the eleventy billion other blog packages?

It's true that there are tons of blogging software solutions from which to choose. Each has their place, and their legion of ardent followers.

Habari is being written with a firm understanding of the current state of blogging. Most other blogging packages have been around long enough that their responses to things like comment spam and Digg site overloads are bolted on after the fact; whereas Habari is being written from the beginning to take these things -- and more -- into account.

Habari strongly favors open, standard, and documented protocols. Atom, being both open and documented, is the prefered syndication format, and the Atom Publishing Protocol is the prefered means of remote communication with your site. This is a core feature, and not a plugin.

Habari is being written specifically for modern web hosting environments, and uses modern object-oriented programming techniques. Using these recent but well-established additions to the PHP language allows Habari to make use of PDO, enabling prepared statements for all interactions with the database. This greatly reduces the system's vulnerability to SQL injection attacks. This is just one of many benefits of modern object-oriented techniques.

Those are just a few of the technical differences, but a major component of what makes Habari different is its community participation model. Users who demonstrate a consistent level of quality contributions to the project are granted more privileges within the project.

Why not fork an existing project?

None of the packages we've tried have really satisfied us, so in the fine tradition of open source software we're trying to scratch our own itch.

To be sure, there's a lot that many blog packages do right, and we'd be foolish to re-invent the wheel simply to be different. But many existing blog packages have made fundamental decisions that limit what can be done, or how, with the system. Rather than try to work around those limitations, or try to remove what's broken, we'd prefer to start fresh and import those ideas that are good.

How is Habari licensed?

Habari uses the Apache License (http://www.apache.org/licenses/LICENSE-2.0). For those unfamiliar with this license, the Apache License FAQ page should answer most of your questions.

Developers contributing to the Habari project itself should note that, unless explicitly stated otherwise, any contribution intentionally submitted for inclusion shall be under the terms and conditions of the license used by Habari, without any additional terms or conditions. However, plugins and themes designed to work with Habari are not required to have the same license as Habari itself.

You can find our license included in the source, and http://svn.habariproject.org/habari/trunk/LICENSE in our code repository.


A consensus amongst project members concluded a thorough discussion as to the merits of the two DOC types, and what would be appropriate for the Admin pages of Habari. The conclusion was that HTML was the "proper" way, however, end users are welcome to serve their pages in any way they prefer by declaring the DOC type in their theme. A more comprehensive outline of the discussion, culled from the information in the original discussion is provided.

What sites are powered by Habari?

A list of sites powered by Habari can be found on the Habari Powered Sites wiki page. Please feel free to add your site to this list once you're up and running on Habari.

What does it mean that Habari's version is below 1.0?

A 0.x version number means nothing more than with every new release a lot of things change. We might implement a bunch of features at once or remove some. We also might change the way things work. Though Habari will never be "finished", there is a state we desire for a first major release. As long as we did not build all the functionality and awesomeness that should be in 1.0, we will not update the version to a 1.x number. There will be release notes whenever we changed something that could affect you when upgrading.

0.x version numbers do not mean Habari is unstable or unfunctional. We only release a new version when it is considered stable and all the functionality included works fine.

Running Habari

Will Habari work with my web host?

Habari should work with any web host that supports the below requirements. A list of web hosts where Habari has been tested and run successfully on can be found at Supported Hosts.

What are the system requirements?

Habari is a modern solution for blogging, and requires modern software. To successfully use Habari, you will need:

Does Habari work with PostgreSQL?

Support for PostgreSQL was introduced in version 0.5 of Habari and fixes and improvements continue to be added.

Does using SQLite as my database have any special requirements?

  • SQLite is a single file database that creates temporary files in the directory which contains your database. As a result, your web server must have write access to the directory in which your database exists. If you do not designate a specific directory in your Habari configuration, the default directory in which your database file is created is the directory in which you installed Habari.

Why can't I log in after I upgraded?

  • If you are using a theme other than one of the system themes, it may be out of date. If you see a message like "You are logged in as Anonymous" instead of the login box, you need to either update the theme (if a new version is available) or modify it yourself. If you do need to modify your theme, look for a line (often in sidebar or loginform) like
if ( $user ) {
if ( User::identify() ) {

Replace those with

if ( User::identify()->loggedin ) {

I get a 403 error (Forbidden) when I try to run Habari for the first time, why?

Habari, from a development point of view, has two parts: habari/habari and habari/system. "habari/system" is all of the parts of Habari that make it work and shouldn't be altered after it is installed. "habari/habari" is a container for the system and your own site content that makes it easy to deploy your site.

To build a new site, you need a copy of habari/habari that contains a copy of habari/system. Normally, the distributed downloadable zip file contains both of these pieces. Under specific circumstances, you are able to download these parts of Habari separately, usually for development purposes. If you installed only the "habari/system" part, then trying to access the Habari installer in the usual way will result in this 403 error.

To fix this, delete the habari/system component that you've deployed to your server, and replace it with the contents of the complete zip file from the download page.

If you use git to clone the habari/habari repository, be sure to add the "--recursive" option so that all of the required parts are included in the correct places. Do not clone the habari/system repository alone, because this is not the full package.

Contributing Questions

How can I help?

  • Open new issues on our issue tracker describing problems you experience, or to request new features.
  • Join the Google Group(s) in which you have the most interest, and start sharing!
    • The habari-users group is for end user support, and general discussion.
    • The habari-dev group is for nitty-gritty implementation discussions of the code, database schemas, and the like.
    • The habari-svn group is a way to track the development activity of the source code. You can review the commit logs, and monitor changes as they occur.

How do I add my code changes to the project?

If you would like to work on a feature or bug fix, there is a best practice for getting your changes into the process.

Regardless of the type of fix/change, first create an issue in the issue tracker describing your proposed change. Allowing the group to review your proposal could save you the time of implementing something that is being done as part of a larger task, and could gain you the insight or help of other people who are interested in what you're doing.

As you write your code, review Habari's coding standards to get acquainted to how your code should be formatted. As you prepare your changes, ask for review on the development mailing list as often as you need it.

When your changes are complete, file code changes as a diff in the issue that you're tracking, and attach any associated files. Be sure to mention how the files are to be applied if there are any special considerations. Your issue will be reviewed, and if suitable, will be applied in the code repository.

Using Habari

Can Habari import data from other blog engines?

Habari ships with an importer for WordPress. There are also plugins available to import from Blogger, Movable Type, Serendipity, and Drupal.

Importing times out before it is done! What's up with that?

Deactivate any plugins that contact outside sites, such as the Pingback and Autopinger plugins. Also disable any spamchecking plugins that you may be using.

How can I upload larger files through the Habari silo?

Shared hosts often allow you to change PHP's upload_max_filesize parameter in your .htaccess file. Add something like

php_value upload_max_filesize xxM

where xx is the number of megabytes you want to use, to your .htaccess file.


I found a security problem with Habari. How do I report it?

Thankfully, this is not a frequently asked question, but we do take security seriously. See Reporting a Security Vulnerability for how to report a vulnerability.

Personal tools