Catapulse

user_icon admin | icon2 Catalyst | icon4 31/8/2008 16h29| Type doc: article| Type File: xml| icon3 No Comment

Catapulse


1. Présentation

Catapulse est un moteur de blog (voir un CMS), basé sur le framework Perl Catalyst . Le principe est un peu différent des autres blogs en ce sens que les articles sont écrits en local sous divers formats, transmit à Catapulse qui les traduits en XHTML.

Pour débuter ce projet je me suis inspiré d'Angerwhale pour la traduction des différents type fichiers en XHTML, le reste à été bricolé par mes soins. Encore en développement Catapulse semble cependant utilisable bien qu'il lui manque encore l'édition d'article au travers une interface web, et surement un tas d'autres améliorations :)

2. Fonctionnalités

  • Multi base de données ( Sqlite (testé), Mysql (testé), Postgres (non testé), Oracle (non testé) ...

  • Multi langues ( via I18N )

  • Conforme XHTML 1.1

  • Cache (via FastMmap)

  • Support fichiers ( Texte, Pod, Html, Docbook, MarkDown, Textile ), Gestion des pages,catégories et liens

  • Moteur de recherche (Kinosearch)

  • Colorisation du code

  • Flux Atom / RSS

  • Anti Spam ... merci à Ulhume ;)

3. Installation

3.2. Installation des dépendances

perl Makefile.PL
make installdeps
make
make test
 ( 'make install' is NOT Necessary )

3.3. Initialisation automatique de la base de donnée

1 - Adapter dans le fichier catapulse.yml le schema de la base. ci-dessous deux exemples de configuration ( SQLite et Mysql )

# Database Model
Model::DB:
  connect_info:
     - dbi:SQLite:__HOME__/db/catapulse.db

Model::DB:
  connect_info:
     - dbi:mysql:dbname=Catapulse;host=localhost;user=catapulse;password=pw

2 - Exécuter le script:

./script/catapulse_spawn_db.pl

Et c'est tout :)

3.4. Initialisation détaillée de la base de donnée (Non nécessaire)

SQLITE:

sqlite3 db/catapulse.db < db/catapulse.sql

MYSQL & Postgres

1 - Créer la base Catapulse, par exemple pour Mysql:

# Modifier le mot de passe de l'adminstrateur root
mysqladmin -u root password 'nouveaumotdepasse' 

# Se loguer a mysql
mysql -u root -p

mysql> create database Catapulse;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON Catapulse.* to myuser@localhost IDENTIFIED BY 'passwd';
mysql> FLUSH PRIVILEGES;

2 - Générer les fichiers fichiers permettant la création du schéma de la base

./script/catapulse_spawn_db.pl --create_ddl_dir

Les fichiers de créations des tables de chaque base sont générés dans le répertoire db

ls db/
catapulse.db   DB-Schema-0.1-MySQL.sql       DB-Schema-0.1-SQLite.sql
catapulse.sql  DB-Schema-0.1-PostgreSQL.sql  README

3 - Générer la base :

mysql -u root -p Catapulse < db/DB-Schema-0.1-MySQL.sql

4 - Adapter le schema de la base dans le fichier catapulse.yml

4. Catapulse et Lighttpd

Il est possible d'utiliser divers frontaux HTTP (Apache, lighttpd, Nginx...) ci-dessous une config avec lighttpd en fastcgi :

$HTTP["host"] =~ "^(www.)?catapulse.org" {
    fastcgi.server = (
        "" => (
            "Catapulse" => (
                "check-local" => "disable",
                "host" => "127.0.0.1", "port" => 1030,
                "bin-path" => "/var/www/Catapulse/script/catapulse_fastcgi.pl",
                "min-procs"    => 2,
                "max-procs"    => 5,
                "idle-timeout" => 20
            )
        )
    )
}

5. Paramétrage

Tout se fait au travers du fichier catapulse.yml . Il me semble qu'il est assez parlant pour ne pas avoir à le détailler


Add_a_comment

Validator_logo
Catapulse v0.06
( 0.081016 s)