Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / Gestion de favoris / Installer la plateforme de favoris collaboratifs Scuttle sur Debian

Installer la plateforme de favoris collaboratifs Scuttle sur Debian

Par Pierre-Yves Landuré Dernière modification 22/04/2014 11:19

Scuttle est une alternative libre aux services comme del.ico.us ou Digg. Ce guide facilite l'installation de Scuttle sur Debian GNU/Linux.

Ce guide est testé sur:

  • Debian 5.0 Lenny
  • Debian 6.0 Squeeze

Pré-requis

Ce guide nécessite un serveur MySQL disposant du script mysql-tools disponible dans le guide Installer et configurer MySQL sur Debian.

Ce guide nécessite un serveur HTTP avec support du PHP disposant au choix d'un des scripts suivant :

Paramètres

Renseignez le nom de domaine ou sera disponible l'application :

DOMAIN="liens.domaine-exemple.fr"

Renseignez le nom d'hôte de votre serveur MySQL (si vous ne savez pas de quoi il s'agit, ne modifiez pas cette valeur) :

MYSQL_HOST="localhost"

Si votre serveur MySQL n'est pas local, ce guide effectuera une connexion SSH pour y créer la base de données.

Installation

Installez les locigiels nécessaires au bon fonctionnement de l'application :

command apt-get install php5-mysql mysql-client apg

Redémarrez votre serveur HTTP pour prendre en compte les modifications :

test -x /etc/init.d/apache2 && /etc/init.d/apache2 force-reload
test -x /etc/init.d/lighttpd && /etc/init.d/lighttpd force-reload

Récupérez l'URL de téléchargement des sources de l'application :

SOURCE_URL="$(command wget --quiet --output-document=- \
    'http://sourceforge.net/projects/scuttle/' \
    | command grep 'title="Download' \
    | command sed -e 's|.*href="\([^"]*\)".*|\1|')"
VERSION="$(echo "${SOURCE_URL}" \
    | command sed -e 's/.*scuttle-\(.*\).tar.gz.*/\1/g')"

Téléchargez les sources :

command wget "${SOURCE_URL}" \
    --output-document="/tmp/scuttle-${VERSION}.tar.gz"

Décompressez l'archive obtenue :

command tar --directory '/tmp' -xzf "/tmp/scuttle-${VERSION}.tar.gz"

Déplacez le dossier obtenu vers son emplacement final :

command mv /tmp/scronide-scuttle-* "/opt/${DOMAIN}"

Supprimez le fichier téléchargé :

command rm "/tmp/scuttle-${VERSION}.tar.gz"

Configuration

Créez la base de données :

if [ "${MYSQL_HOST}" = "localhost" ]; then
  MYSQL_PARAMS=$(command mysql-tools create-domain-db "${DOMAIN}")
else
  command echo "Saisissez le mot de passe de l'utilisateur root MySQL :"
  command read PASSWORD
  MYSQL_PARAMS=$(command ssh "root@${MYSQL_HOST}" "command mysql-tools create-domain-db '${DOMAIN}' '$(command cat /etc/mailname)' '${PASSWORD}'")
fi

Récupérez les paramètres de la nouvelle base de données :

MYSQL_DB="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_DB" \
    | cut --delimiter="=" --fields="2-")"
MYSQL_USER="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_USER" \
    | cut --delimiter="=" --fields="2-")"
MYSQL_PASSWORD="$(echo "${MYSQL_PARAMS}" | command grep -e "^MYSQL_PASSWORD" \
    | cut --delimiter="=" --fields="2-")"
echo "${MYSQL_PARAMS}"

Générez un préfixe de tables aléatoire afin d'augmenter la sécurité contre les attaques par injection SQL:

TABLE_PREFIX="$(command apg -q -a  0 -n 1 -M NCL)"

Appliquez ce préfixe aux script de création des tables :

command sed -i -e "s/sc_/${TABLE_PREFIX}_/g" "/opt/${DOMAIN}/tables.sql"

Initialisez le contenu de la base de données :

command mysql --user="${MYSQL_USER}" --password="${MYSQL_PASSWORD}" \
    --host="${MYSQL_HOST}" "${MYSQL_DB}" \
      < "/opt/${DOMAIN}/tables.sql"

Afin que l'installation de l'application corresponde mieux aux règle de la LSB (Linux Standard Base), déplacez les dossiers cache et templates vers les emplacements qui leur conviennent :

command mkdir --parent "/var/lib/scuttle/${DOMAIN}"
command mkdir --parent "/var/cache/scuttle"
command mv "/opt/${DOMAIN}/cache" "/var/cache/scuttle/${DOMAIN}"
command mv "/opt/${DOMAIN}/templates" "/var/lib/scuttle/${DOMAIN}/templates"
command chown -R www-data:www-data "/var/cache/scuttle/${DOMAIN}"
command chown -R www-data:www-data "/var/lib/scuttle/${DOMAIN}"

Créez le fichier de configuration de l'application :

command cp "/opt/${DOMAIN}/config.inc.php.example" "/opt/${DOMAIN}/config.inc.php"
command sed -i \
    -e "s/^\(\$dbtype[ \t]*=\).*/\1 'mysql';/" \
    -e "s/^\(\$dbhost[ \t]*=\).*/\1 '${MYSQL_HOST}';/" \
    -e "s/^\(\$dbuser[ \t]*=\).*/\1 '${MYSQL_USER}';/" \
    -e "s/^\(\$dbpass[ \t]*=\).*/\1 '${MYSQL_PASSWORD}';/" \
    -e "s/^\(\$dbname[ \t]*=\).*/\1 '${MYSQL_DB}';/" \
    -e "s/^\(\$tableprefix[ \t]*=\).*/\1 '${TABLE_PREFIX}_';/" \
    -e "s|^\(\$TEMPLATES_DIR[ \t]*=\).*|\1 '/var/lib/scuttle/${DOMAIN}/templates/';|" \
    -e "s|^\(\$dir_cache[ \t]*=\).*|\1 '/var/cache/scuttle/${DOMAIN}';|" \
    -e "s/^\(\$usecache[ \t]*=\).*/\1 true;/" \
    "/opt/${DOMAIN}/config.inc.php"

Nettoyez les fichiers inutiles :

command rm "/opt/${DOMAIN}/tables.sql"
command rm "/opt/${DOMAIN}/AUTHORS"
command rm "/opt/${DOMAIN}/"*.txt

Affinage de la configuration

Francisation de l'application

Utilisez cette ligne de commande pour que Scuttle soit traduit en français :

command sed -i \
    -e "s/^\(\$locale[ \t]*=\).*/\1 'fr_FR';/" \
    -e "s|^\(\$shortdate[ \t]*=\).*|\1 'd/m/Y';|" \
    "/opt/${DOMAIN}/config.inc.php"

Modification du nom du site

Renseignez le nom souhaité pour le site :

SITE_NAME="Liens en vrac"

Important : Ce nom ne doit pas contenir de guillemet simple (').

Appliquez la configuration :

command sed -i -e "s/^\(\$sitename[ \t]*=\).*/\1 '${SITE_NAME}';/" \
         "/opt/${DOMAIN}/config.inc.php"

Modification de l'adresse électronique de l'administrateur

Afin que l'on puisse vous contacter depuis votre installation de Scuttle, il est nécessaire de paramétrer l'adresse électronique de l'administrateur du site. Renseignez l'adresse électronique a utiliser :

ADMIN_EMAIL="contact@domaine.com"

Appliquez la configuration :

command sed -i -e "s/^\(\$adminemail[ \t]*=\).*/\1 '${ADMIN_EMAIL}';/" \
         "/opt/${DOMAIN}/config.inc.php"

Accès à l'application

Créez la configuration du serveur HTTP pour votre domaine :

if [ -x "/usr/bin/a2tools" ]; then
  command a2tools add-vhost "${DOMAIN}" "/opt/${DOMAIN}/"
fi
if [ -x "/usr/bin/lighty-tools" ]; then
  command lighty-tools add-vhost "${DOMAIN}" "/opt/${DOMAIN}/"
fi

L'application devrait maintenant être disponible sur le nom de domaine que vous avez choisi.

Il n'y a pas de compte d'administration. Il faut vous enregistrer afin de pouvoir utiliser Scuttle.

Désactivation du formulaire d'inscription

Si vous souhaitez limiter le nombre d'utilisateurs pouvant utiliser votre installation de Scuttle, il est nécessaire de désactiver manuellement le formulaire d'inscription. Pour ce faire, utilisez ces commandes :

command rm "/opt/${DOMAIN}/register.php"
command sed -i -e '/register/d' "/var/lib/scuttle/${DOMAIN}/templates/about.tpl.php"
command sed -i -e '/register/d' "/var/lib/scuttle/${DOMAIN}/templates/toolbar.inc.php"

Sauvegardes

Pour sauvegarder votre installation, je vous propose d'utiliser Backup Manager. Pour l'installer, vous pouvez suivre le guide:

Installer et configurer Backup Manager sur Debian

Une fois Backup Manager installé, configurez la sauvegarde des fichiers de l'application :

command backup-manager-tools add "/opt/${DOMAIN}"
command backup-manager-tools add "/var/lib/scuttle/${DOMAIN}"

Important: Sauvegarder les fichiers ne suffit pas ! Il faut aussi sauvegarder la base de données. La procédure pour ce faire est disponible dans l'article MySQL sur Debian.

Intrégration dans Mozilla Firefox

En plus du système de bookmarklets permettant d'ajouter des liens à votre Scuttle avec n'importe quel navigateur, il existe une extension Firefox améliorant l'intégration de Scuttle à Firefox :

Extension Scuttle pour Firefox

Remerciements

  • Merci aux développeurs de Scuttle.
  • Merci à Flexiden qui m'a involontairement fait découvrir cet outil.