Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / Syndication de contenus / Installer Tiny Tiny RSS sur Debian

Installer Tiny Tiny RSS sur Debian

Par Pierre-Yves Landuré Dernière modification 16/08/2017 15:16

Tiny Tiny RSS est un agrégateur de flux de syndication écrit en PHP et tirant parti des technologies AJAX. C'est une solution adéquate si vous souhaitez lire vos flux RSS depuis plusieurs ordinateurs.

Ce guide est testé sur

  • Debian 8.0 Jessie

Ce guide est testé avec ces versions de Tiny Tiny RSS:

  • 1.7.8

Prérequis

Ce guide nécessite :

Ce guide recommande :

Paramètres

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

DOMAIN="rss.domain.com"

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

Renseignez l'adresse mél utilisée pour l'envoi des messages par l'application:

FROM_EMAIL="no-reply@domain.com"

Renseignez l'adresse mél notifiée de l'inscription de nouveaux utilisateurs:

NOTIFY_EMAIL="firstname.lastname@domain.com"

Installation

Déterminez le chemin d'installation:

INSTALL_PATH="/opt/tt-rss/${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/tt-rss/${DOMAIN}"

Déterminez le chemin des fichiers PID:

PID_PATH="/var/run/tt-rss-${DOMAIN}"

Déterminez le chemin des données:

DATA_PATH="/var/lib/tt-rss/${DOMAIN}"

Assurez-vous que le dossier existe:

command mkdir --parent "${INSTALL_PATH}"

Préparation de l'environnement

Installez les logiciels nécessaires:

command apt-get install php5-mysql php5-xmlrpc mysql-client \
  php5-curl php5-cli patch git

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

Récupérez les sources de l'application:

command git clone 'https://tt-rss.org/git/tt-rss.git' "${INSTALL_PATH}"

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="tt-rss" --create "${DOMAIN}")"

Récupérez les paramètres de connexion à la base de données créée:

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

Initialisez le contenu de la base de données:

command mysql --user="${MYSQL_USER}" --password="${MYSQL_PASSWORD}" \
    --host="${MYSQL_HOST}" "${MYSQL_DB}" \
      < "${INSTALL_PATH}/schema/ttrss_schema_mysql.sql"

Créez le fichier de configuration à partir du modèle:

command cp "${INSTALL_PATH}/config.php-dist" "${INSTALL_PATH}/config.php"

Mettez à jour le fichier de configuration:

command sed -i \
    -e "s/\(define('DB_TYPE', \).*/\1'mysql');/" \
    -e "s/\(define('DB_HOST', \).*/\1'${MYSQL_HOST}');/" \
    -e "s/\(define('DB_NAME', \).*/\1'${MYSQL_DB}');/" \
    -e "s/\(define('DB_USER', \).*/\1'${MYSQL_USER}');/" \
    -e "s/\(define('DB_PASS', \).*/\1'${MYSQL_PASSWORD}');/" \
    "${INSTALL_PATH}/config.php"

Mise en conformité avec la LSB

Déplacez les dossiers cache, feed-icons et lock vers un emplacement en accord avec la LSB:

command mkdir --parent "${CACHE_PATH}"
command mv "${INSTALL_PATH}/cache" "${CACHE_PATH}/cache"
command ln -s "${CACHE_PATH}/cache" "${INSTALL_PATH}/cache"
command chown -R www-data:www-data "${CACHE_PATH}"
command mv "${INSTALL_PATH}/lock" "${CACHE_PATH}"
command chown -R www-data:www-data "${CACHE_PATH}/lock"
command ln -s "${CACHE_PATH}/lock" "${INSTALL_PATH}/lock"
command mkdir --parent "${DATA_PATH}"
command mv "${INSTALL_PATH}/feed-icons" "${DATA_PATH}/feed-icons"
command chown -R www-data:www-data "${DATA_PATH}/feed-icons"
command ln -s "${DATA_PATH}/feed-icons" "${INSTALL_PATH}/feed-icons"

Mise à jour régulière des flux

Mettez en place le script system.d pour le service:

${cmdProxy} tee "/etc/systemd/system/tt-rss-${DOMAIN//./-}.service" <<< "[Unit]
Description=Tiny Tiny RSS update daemon for ${DOMAIN}
Requires=network.target local-fs.target
After=mysql.service postgresql.service

[Service]
User=www-data
Type=forking
KillMode=none
ExecStart=/usr/bin/screen -fn -dmS 'ttrss-${DOMAIN//./-}' nice -n 19 ${INSTALL_PATH}/update_daemon2.php
ExecStop=/usr/bin/screen -S 'ttrss-${DOMAIN//./-}' -X quit
SuccessExitStatus=1
TimeoutSec=5
Restart=always

[Install]
WantedBy=default.target"

${cmdProxy} chmod +x "/etc/systemd/system/tt-rss-${DOMAIN//./-}.service"
${cmdProxy} insserv "tt-rss-${DOMAIN//./-}"
${cmdProxy} systemctl enable "tt-rss-${DOMAIN//./-}"

Démarrez le démon:

${cmdProxy} service "tt-rss-${DOMAIN//./-}" start

Fin de la configuration

Activez l'utilisation de SimplePie et activez le mode multi-utilisateurs:

command sed -i \
-e "s|\(define('SELF_URL_PATH', \).*|\1'${PROTOCOL}://${DOMAIN}/');|" \
-e "s/\(define('SINGLE_USER_MODE', \).*/\1false);/" \
-e "s/\(define('REG_NOTIFY_ADDRESS', \).*/\1'${NOTIFY_EMAIL}');/" \
-e "s/\(define('SMTP_FROM_ADDRESS', \).*/\1'${FROM_EMAIL}');/" \
"${INSTALL_PATH}/config.php"

Démarrez le démon:

/etc/init.d/tt-rss-${DOMAIN} start

Mise en place de l'hôte virtuel

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}" "${DOMAIN}" "${INSTALL_PATH}"
command a2tools --template="redirect" "${DOMAIN}" "https://${DOMAIN}"
else
command a2tools "${DOMAIN}" "${INSTALL_PATH}"
fi

L'installation devrait maintenant être disponible sur le domaine.

Utilisez les informations suivantes pour vous connecter à l'outil:

  • Identifiant : admin
  • Mot de passe : password

Interface mobile

Ce guide recommande la mise en place de l'interface mobile ttrss-mobile, comme décrit par:

Installer ttrss-mobile sur Debian.

    Utilisation quotidienne

    Paramétrage du compte utilisateur

    Voici un exemple d'ajustement de la configuration par défaut du compte utilisateur:

    • Purger les articles plus vieux que le nombre de jours donné (0 pour ne jamais purger) : 0 (désactive la suppression des articles anciens)
    • Demander confirmation pour marquer un flux comme lu : Non (désactive la confirmation avant de marquer l'ensemble d'un flux comme lu)
    • Autoriser les clients à accéder à ce compte via l'API : Oui (permet l'utilisation de Liferea (client bureautique) ou ttrss-mobile (interface Web mobile) avec Tiny Tiny RSS).

    Intégration dans Mozilla Firefox

    Tiny Tiny RSS peut être configuré comme gestionnaire de flux dans Mozilla Firefox, à partir des préférences de flux de l'outil.

      Mise à jour automatique

      Mettez en place un script de mise à jour automatique quotidienne du code de l'outil:

      echo "#"'!'"/bin/bash
      # Update ${DOMAIN} source code from Git.
      test -x '/usr/bin/git' -a -d '${INSTALL_PATH}' && {
      pushd '${INSTALL_PATH}' > '/dev/null'
      /usr/bin/git pull --quiet origin master > '/dev/null'
      popd > '/dev/null'
      }" \
        > "/etc/cron.daily/tt-rss-${DOMAIN//./-}-update"
      command chmod +x "/etc/cron.daily/tt-rss-${DOMAIN//./-}-update"

      Sauvegarde

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

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

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

      Remerciements

      • Merci aux développeurs de Tiny Tiny RSS (en).
      • Merci à Mdrolo qui a inscrit le flux de ce site dans son Tiny Tiny RSS et me l'a ainsi fait découvrir.

      Pièces jointes