Installer Sonerezh sur Debian
Sonerezh est un serveur de streaming musique écrit en PHP.
Ce guide est testé sur:
- Debian 9.0 Stretch
Ce guide est testé avec ces versions de Sonerezh:
- 1.1.3
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.
- php-tools, l'outil de configuration simplifiée de PHP.
- 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).
Paramètres
Renseignez le nom de domaine où sera disponible l'application:
domain="music.domain.com"
Renseignez le nom d'hôte du serveur MySQL:
mysqlHost="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 ou via Let's Encrypt) (optionnel, recommandé):
sslKeyName="auto"
Renseignez le chemin du dossier des musiques, pour configurer proprement le module X-SendFile:
musicPath="/var/lib/music"
Installation
Détectez le proxy de commande (command ou sudo):
cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo'
Déterminez le chemin d'installation:
installPath="/var/lib/sonerezh/${domain}"
Déterminez l'utilisateur pour l'installation du logiciel:
projectUser='root'
Détectez le nom des paquets PHP disponibles:
phpVersion='5'
if [ -n "$(command apt-cache pkgnames php-cli)" ]; then
phpVersion=''
fi
Assurez-vous que le dossier parent existe:
${cmdProxy} mkdir -p "${installPath}"
${cmdProxy} chown "${projectUser}" "${installPath}"
Préparation de l'environnement
Installez les logiciels nécessaires:
${cmdProxy} apt-get install php${phpVersion}-mysql php${phpVersion}-gd \
libav-tools sudo apg
Rechargez la configuration de PHP:
${cmdProxy} php-tools --reload
Rechargez Apache:
${cmdProxy} service apache2 force-reload
Mise en place de l'application
Téléchargez la dernière version de l'application:
command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
--quiet --no-check-certificate --output-document='/tmp/sf-downloader'
command chmod +x '/tmp/sf-downloader'
source="$(sudo -u "${projectUser}" /tmp/sf-downloader \
--output-directory="${installPath}" \
--generic='https://github.com/Sonerezh/sonerezh/releases' \
--strip-components=1 --tgz 'sonerezh' '[0-9].VERSION.tar.gz')"
Autorisez la modification par le serveur des caches et emplacements de données:
while read writeablePath; do
${cmdProxy} chown -R "${projectUser}:www-data" "${installPath}/${writeablePath}"
${cmdProxy} chmod -R g+rw "${installPath}/${writeablePath}"
done <<< "app/tmp
app/Config
app/webroot/img"
Configurez logrotate pour gérer la rotation des journaux:
${cmdProxy} tee '/etc/logrotate.d/sonerezh' <<< \
"# Logrotate configuration file for sonerezh \"$(command dirname "${installPath}")/*/app/tmp/logs/*.log\" { weekly missingok rotate 12 copytruncate compress delaycompress create 664 ${projectUser} www-data
su ${projectUser} www-data
}"
Création de la base de données
Créez la base de données:
command mysql-tools --server="${mysqlHost}" --with-ssh \
--auto-hosts --db-prefix="sonerezh" --create "${domain}"
Notez les paramètres de connexion affichés.
Générez un préfixe de tables aléatoire:
command apg -q -a 0 -n 1 -M NCL
Mise en place de l'hôte virtuel
Créez la configuration du serveur HTTP pour le domaine:
if [[ -n "${sslKeyName}" && ( -e "/etc/ssl/private/${sslKeyName}.key" || "${sslKeyName}" = 'auto' ) ]]; then
${cmdProxy} a2tools --ssl="${sslKeyName}" --overrides='All' "${domain}" "${installPath}/app/webroot"
else
${cmdProxy} a2tools --overrides='All' "${domain}" "${installPath}/app/webroot"
fi
Connectez-vous à l'application et paramétrez l'installation via l'URL fournie par:
command echo "http://${domain}/install"
Importation de la bibliothèque musicale
Une fois l'installation du logiciel terminée dans le navigateur, importez la bibliothèque musicale:
pushd "${installPath}"
sudo -u www-data 'app/Console/cake' sonerezh import --recursive "${musicPath}"
popd
Sauvegardes
Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):
${cmdProxy= backup-manager-tools add "${installPath}"
N'oubliez pas de sauvegarder la base de données (voir Installer et configurer MySQL sur Debian).
Remerciements
- Merci aux développeurs de Sonerezh (en).