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

Installer la plateforme de favoris collaboratifs Semantic Scuttle sur Debian

Par Pierre-Yves Landuré Dernière modification 08/11/2017 14:53

Semantic Scuttle est une alternative à Scuttle intégrant des fonctions sémantiques. C'est la plate-forme que j'ai préféré parmi toutes celles que j'ai testé. Ce guide vous aide à l'installer sur Debian.

Ce guide est testé sur:

  • Debian 6.0 Squeeze
  • Debian 7.0 Wheezy

Ce guide est testé avec ces versions de Semantic Scuttle:

  • 0.98.4

Prérequis

Ce guide nécessite :

Paramètres

Renseignez le nom de domaine où sera disponible l'application:

DOMAIN="liens.domaine-exemple.fr"

Renseignez l'adresse mél du compte d'administration:

ADMIN_EMAIL="webmestre@domaine-exemple.fr"

Renseignez le nom d'hôte du serveur MySQL:

MYSQL_HOST="localhost"

Si le serveur MySQL n'est pas local, l'outil mysql-tools essaiera de s'y connecter avec le client MySQL, ou, en cas d'échec de connexion, via une connexion SSH.

Renseignez le nom du certificat SSL à utiliser pour chiffrer l'application avec HTTPS (créé via la procédure Créer un certificat SSL / TLS sur Debian) (optionnel, recommandé):

SSL_KEY_NAME="${DOMAIN}"

Installation

Déterminez le chemin d'installation:

INSTALL_PATH="/opt/semantic-scuttle/${DOMAIN}"

Détectez le protocole utilisé:

PROTOCOL="http"
command test -n "${SSL_KEY_NAME}" -a -e "/etc/ssl/private/${SSL_KEY_NAME}.key" && PROTOCOL="https"

Déterminez le chemin du cache:

CACHE_PATH="/var/cache/semantic-scuttle/${DOMAIN}"

Assurez-vous que les dossiers existent:

command mkdir --parent "${INSTALL_PATH}"
command mkdir --parent "${CACHE_PATH}"

Préparation de l'environnement

Installez les logiciels nécessaires:

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

Rechargez la configuration de PHP:

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

Mise en place de l'application

Téléchargez les sources de la dernière version à l'aide du script sf-downloader:

command mkdir --parent '/opt/bin'
command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
--quiet --no-check-certificate --output-document='/opt/bin/sf-downloader'
command chmod +x '/opt/bin/sf-downloader'
/opt/bin/sf-downloader --zip --strip-components=1 --output-directory="${INSTALL_PATH}" \
"semanticscuttle" "SemanticScuttle-VERSION.zip"

Création de la base de données

Créez la base de données avec mysql-tools:

MYSQL_PARAMS="$(command mysql-tools --server="${MYSQL_HOST}" --with-ssh \
--auto-hosts --db-prefix="semantic-scuttle" --create "${DOMAIN}")"

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)"

Initialisez le contenu de la base de données:

command cat "${INSTALL_PATH}/data/tables.sql" \
| command sed -e "s/sc_/${TABLE_PREFIX}_/g" \
| command mysql --user="${MYSQL_USER}" --password="${MYSQL_PASSWORD}" \ --host="${MYSQL_HOST}" "${MYSQL_DB}"

Mise en conformité avec la LSB

Configurez le dossier cache en accord avec la LSB:

command chown -R www-data:www-data "${CACHE_PATH}"

Configuration

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

echo "<?php
\$dbtype = 'mysqli';
\$dbuser = '${MYSQL_USER}';
\$dbpass = '${MYSQL_PASSWORD}';
\$dbname = '${MYSQL_DB}';
\$dbhost = '${MYSQL_HOST}';
\$tableprefix = '${TABLE_PREFIX}_';

\$cleanurls = true;
\$locale = 'fr_FR';
\$shortdate = 'd/m/Y';
\$use_cache = true;
\$dir_cache = '/var/cache/semantic-scuttle/${DOMAIN}';

\$root = '${PROTOCOL}://${DOMAIN}/';
\$admin_users = array('admin');
\$adminemail = '${ADMIN_EMAIL}';

\$antispamQuestion = '29 + 13 ?';
\$antispamAnswer = '42';
" > "${INSTALL_PATH}/data/config.php"

Activez le module expires d'Apache 2:

command a2enmod expires

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

if [ -n "${SSL_KEY_NAME}" -a -e "/etc/ssl/private/${SSL_KEY_NAME}.key" ]; then
  command a2tools --ssl="${SSL_KEY_NAME}" --overrides="All" --without-multiviews "${DOMAIN}" "${INSTALL_PATH}/www"
command a2tools --template="redirect" "${DOMAIN}" "https://${DOMAIN}/"
else
command a2tools --overrides="All" --without-multiviews "${DOMAIN}" "${INSTALL_PATH}/www"
fi

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

Important : Créez le compte d'administration en enregistrant un utilisateur ayant pour identifiant "admin".

Configuration avancée

Désactiver le formulaire d'inscription

Si vous ne souhaitez pas que les internautes puissent créer un compte sur votre application, utilisez la commande suivante (après avoir créé le compte "admin"):

command echo '$enableRegistration = false;
' >> "${INSTALL_PATH}/data/config.php"

Modifier le titre et la description

Renseignez le titre que vous souhaitez utiliser:

TITLE="Mes liens"

Renseignez la description, affichée en page d'accueil:

DESC="Liens en vrac"

Appliquez ces réglages:

echo "\$sitename = \"${TITLE}\";
\$welcomeMessage = \"${DESC}\";" >> "${INSTALL_PATH}/data/config.php"

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

Sauvegarde

Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):

command backup-manager-tools add "${INSTALL_PATH}"

N'oubliez pas de sauvegarder la base de données (voir Installer et configurer MySQL sur Debian).

Mise à jour de l'outil

Renseignez le domaine de l'application:

DOMAIN="liens.domaine-exemple.fr"

Déterminez le chemin d'installation:

INSTALL_PATH="/opt/semantic-scuttle/${DOMAIN}"

Téléchargez les sources de la dernière version à l'aide du script sf-downloader:

command mkdir --parent '/opt/bin'
command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
--quiet --no-check-certificate --output-document='/opt/bin/sf-downloader'
command chmod +x '/opt/bin/sf-downloader'
SOURCE="$(/opt/bin/sf-downloader --zip semanticscuttle SemanticScuttle-VERSION.zip)"

Créez une copie de sauvegarde:

if [ -e "${INSTALL_PATH}.old" ]; then
command rm -r "${INSTALL_PATH}.old"
fi
command mv "${INSTALL_PATH}" "${INSTALL_PATH}.old"

Mettez en place la nouvelle version:

command mv "${SOURCE}" "${INSTALL_PATH}"
command cp -a "${INSTALL_PATH}.old/data/config.php" "${INSTALL_PATH}/data/config.php"

L'installation est maintenant à jour. Vérifiez que tout fonctionne correctement.

Supprimez la sauvergarde:

command rm -r "${INSTALL_PATH}.old"

Remerciements