Installation de clipperz sur Debian 7

Clipperz est un gestionnaire de mot de passe  open source sous licence AGPL v3.
La force de clipperz est la possibilité de l’héberger soi-même et d'en modifier le code source.
Adapté pour l'usage personnel et familiale, il  propose des fonctionnalités intéressantes!
Cet article se base sur le Gitbut de Clipperz, et sera installé sur une distribution Debian 7.

 Pré-requis : Installation et compilation

Installation d'un serveur "LAMP" classique :

apt-get install apache2 mysql-server php5-mysql php5

Installation de git et de python  :

apt-get install git-core python-git python-dulwich php-services-json

Télécharger le projet "password-manager" dans le Github de clipperz :

git clone git://github.com/clipperz/password-manager.git

Se rendre dans le dossier :

cd password-manager

Exécuter la compilation:

./scripts/build install --backends php --frontends beta
cleaning up …
MODULE: beta
MODULE: php
PHP builder - RUN
frontend [beta]: compressing JS code
frontend [beta]: compressing JS code
frontend [beta]: compressing CSS
frontend [beta]: compressing JS code
[PHP builder - beta] index.html checksum: 43ec93f292a1275928a6d657da2dc2d8 (md5)
[PHP builder - beta] index.html checksum: 38ee8108a1caed357ad76092a46d6b211dd79d11 (sha1)
[PHP builder - beta] index.html checksum: cdbef767238dec531ddc1da9d803b98681c6fbb6d6adac99266385c13b8f3211 (sha256)

Le checksum de l'index apparait, conservez-le car il permet de savoir si vous êtes corrompu ou non !

Installation de clipperz

Le chemin d'installation de clipperz sera défini dans le dossier :

mkdir /var/www/clipperz/
cd /var/www/clipperz/

Copier l'ensemble de la compilation précédente à l’intérieur  :

cp -R target/php/* /var/www/clipperz/

Le dossier appartiendra au serveur web :

chown -R www-data:www-data /var/www/clipperz/

Lancer mysql en ligne de commande :

mysql -p
=>Enter password: 
=>Welcome to the MySQL monitor.  Commands end with ; or \g.
=>Your MySQL connection id is 100
=>Server version: 5.5.33-0+Wheezy1 (Debian)

Les requêtes SQL à ajouter seront les suivantes :

mysql> create database clipperz;
Query OK, 1 row affected (0.02 sec)

mysql> grant all privileges on clipperz.* to 'clipperz'@'localhost' identified by "clipperz";
Query OK, 0 rows affected (0.14 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

mysql> exit
Bye

Le fichier de configuration de clipperz devra contenir les informations de la base de donnée :

nano /var/www/clipperz/configuration.php

Retrouver cette partie dans la configuration du fichier et remplacer "password" :

[...]
$configuration['db_encoding'] = 0;

// edit the information below to match your database settings

$configuration['db']	= 'clipperz'; 		//	database name
$configuration['host']	= 'localhost';	//	database host
$configuration['user']	= 'root';		//	database user
$configuration['pass']	= 'password';		//	database password
$configuration['port'] 	= '3306';		//	database port
[...]

Interface web avec "POG"*

Installation de la base de donnée avec "php object generator"
Lancez avec votre navigateur : http://votre_domaine/setup/index.php

Laissez par défaut les options "Tables" et "Tests", puis cliquez sur "POG me up!"
La suite vous informe que tout s'est bien passé :

Initializing POG Setup....OK!
File Structure....OK!
Configuration Info....OK!

Storage Status
	Aligning [record] with table 'record'....OK!
	Aligning [user] with table 'user'....OK!
	Aligning [onetimepassword] with table 'onetimepassword'....OK!
	Aligning [onetimepasswordstatus] with table 'onetimepasswordstatus'....OK!
	Aligning [recordversion] with table 'recordversion'....OK!

POG Essentials
	[record]
	Save()....OK!
	SaveNew()....OK!
	Delete()....OK!
	GetList()
		Limit....OK!
		Sorting....OK!
	DeleteList()....OK!
	Optimizing....OK!
	***
	[user]
	Save()....OK!
	SaveNew()....OK!
	Delete()....OK!
	GetList()
		Limit....OK!
		Sorting....OK!
	DeleteList()....OK!
	Optimizing....OK!
	***
	[onetimepassword]
	Save()....OK!
	SaveNew()....OK!
	Delete()....OK!
	GetList()
		Limit....OK!
		Sorting....OK!
	DeleteList()....OK!
	Optimizing....OK!
	***
	[onetimepasswordstatus]
	Save()....OK!
	SaveNew()....OK!
	Delete()....OK!
	GetList()
		Limit....OK!
		Sorting....OK!
	DeleteList()....OK!
	Optimizing....OK!
	***
	[recordversion]
	Save()....OK!
	SaveNew()....OK!
	Delete()....OK!
	GetList()
		Limit....OK!
		Sorting....OK!
	DeleteList()....OK!
	Optimizing....OK!

POG Relations PreRequisites
	[record]
	Is properly connected (OK)
	***
	[user]
	Is properly connected (OK)
	***
	[onetimepassword]
	Is properly connected (OK)
	***
	[onetimepasswordstatus]
	Is properly connected (OK)
	***
	[recordversion]
	Is properly connected (OK)

POG Relations
	[record]
	Addrecordversion()....OK!
	GetrecordversionList()....OK!
	Delete(recordversion)....OK!
	Save(recordversion)....OK!
	Set(recordversion)List....OK!
	Setuser()....OK!
	Getuser()....OK!
	***
	[user]
	Addrecord()....OK!
	Addonetimepassword()....OK!
	GetrecordList()....OK!
	GetonetimepasswordList()....OK!
	Delete(record)....OK!
	Delete(onetimepassword)....OK!
	Save(record)....OK!
	Save(onetimepassword)....OK!
	Set(record)List....OK!
	Set(onetimepassword)List....OK!
	***
	[onetimepassword]
	Setuser()....OK!
	Setonetimepasswordstatus()....OK!
	Getuser()....OK!
	Getonetimepasswordstatus()....OK!
	***
	[onetimepasswordstatus]
	Addonetimepassword()....OK!
	GetonetimepasswordList()....OK!
	Delete(onetimepassword)....OK!
	Save(onetimepassword)....OK!
	Set(onetimepassword)List....OK!
	***
	[recordversion]
	Setrecord()....OK!
	Getrecord()....OK!

CHECKED 5 OBJECT(S). FOUND 0 ERROR(S). HURRAY!
---------------------------------------------------

Vous pouvez cliquer sur le bouton "Proceed", et c'est terminé !

Le plugin Base 64 peut être activé via "manage plugin" et "install".
Éditez le fichier de configuration :

[...]
$configuration['db_encoding'] = 1;

Le résultat dans "POG" :

BASE64 Status

    Checking MySQL function....OK!

    Checking db_encoding status....OK!

BASE64 Status...OK!

---------------------------------------------------

Copier l'ensemble du répertoire "beta" à la racine du site web :

cp -R beta/* /var/www/clipperz/

Quelques conseils pour la fin de l'installation :

  • Vous pouvez maintenant déplacer ou supprimer votre fichier "setup" afin de le rendre inaccessible.
  • La création d'un fichier robots.txt qui interdit l'indexation de votre clipperz exemple :
User-agent: *
Disallow: /
  • Désactiver les inscriptions dans le fichier "index.php" :
    Remplacer case "registration" par case "disabled_registration"

Une fois terminé votre interface web clipperz est prête !

De nouveaux articles sur Clipperz arriveront prochainement...

Commentaires