Installer Tiny Tiny RSS sur Debian
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 :
- a2tools, l'outil d'administration simplifiée d'Apache 2.
- un serveur HTTP avec support du PHP, comme décrit par Installer PHP-FPM sur Debian.
- un serveur MySQL, comme décrit par Installer et configurer MySQL sur Debian.
- mysql-tools, l'outil d'administration simplifiée de MySQL sur l'hôte local (et l'hôte du serveur MySQL, si différent).
Ce guide recommande :
- le cache d'OpCode PHP APC, comme décrit par Installer l'extention PHP APC sur Debian.
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.