Service Audio Gonic
Gonic est un serveur de diffusion de musique léger conçu pour fournir aux utilisateurs un moyen simple et efficace de diffuser leurs collections de musique. Il est compatible avec le protocole Subsonic, permettant aux utilisateurs d’accéder à leur musique à partir de divers appareils et plates-formes qui prennent en charge Subsonic. Gonic se concentre sur la fourniture d’une expérience de streaming musical simplifiée sans fonctionnalités ou complexités inutiles, ce qui le rend idéal pour les utilisateurs qui préfèrent une approche minimaliste du streaming musical.
Serveur Audio Gonic
Caractéristiques de Gonic
- navigation par dossier
- navigation par tags (en utilisant taglib - prend en charge mp3, opus, flac, ape, m4a, wav, etc.)
- transcodage et cache audio à la volée (demande ffmpeg)
- mode jukebox subsonic (mpv), pour lecture audio côté serveur sans faille au lieu de streaming
- soutien aux podcasts
- balayage assez rapide
- plusieurs utilisateurs, chacun avec ses propres préférences de transcodage, playlists, meilleurs titres, meilleurs artistes, etc.
- [last.fm] (https://www.last.fm/)
- listenbrainz scrobbling
- les similarités artistiques et les biographies de la dernière. - Oui.
- prise en charge de tags multi-valorisés comme les albumartistes et les genres
- une interface web pour la configuration (configurer en dernier. fm, gérer les utilisateurs, lancer des scans, etc.)
- soutien au tag album-artiste, pour ne pas encombrer votre liste d’artistes avec des apparitions d’albums de compilation
- écrit en go
- sel plus récent et jeton auth
- testés sur airsonic-refix, symfonium, dsub, jamstash, subsonic.el, sublime music, soundwaves, stmp, strawberry, et [subs/subs/
Prérequis
Les outils (ajouter mpv ,si utilisé ,pour juke-box)
1
sudo apt install git ffmpeg
Installation gonic
Golang
1
2
3
4
5
# https://go.dev/dl/ # chercher dernère version linux-amd64
wget https://go.dev/dl/go1.25.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.25.5.linux-amd64.tar.gz
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc
installer / compiler gonic globalement, et vérifier la version
1
2
3
4
5
#sudo GOBIN=/usr/local/bin
go install go.senan.xyz/gonic/cmd/gonic@latest
# Copier l'exécutable "gonic" dans /usr/local/go/bin/
sudo cp $HOME/go/bin/gonic /usr/local/bin/
gonic -version
v0.19.0
ajouter un utilisateur gonic, créer un répertoire de données et installer le fichier de configuration
1
2
3
4
sudo adduser --system --no-create-home --group gonic
sudo mkdir -p /var/lib/gonic/ /etc/gonic/
sudo chown -R gonic:gonic /var/lib/gonic/
sudo wget https://raw.githubusercontent.com/sentriz/gonic/master/contrib/config -O /etc/gonic/config
mettre à jour la configuration /etc/gonic/config avec votre music-path, podcast-path, etc…
1
2
3
music-path /sharenfs/multimedia/Music/musicyan
podcast-path /sharenfs/multimedia/Music/podcasts
playlists-path /sharenfs/multimedia/Music/playlists
Service gonic
installer le service système, vérifier l’état ou les journaux
Chaque service généré par systemd est configuré par un fichier .service qui se trouve dans le répertoire /etc/systemd/system
1
2
3
4
5
6
7
sudo wget https://raw.githubusercontent.com/sentriz/gonic/master/contrib/gonic.service -O /etc/systemd/system/gonic.service
sudo systemctl daemon-reload
sudo systemctl enable --now gonic
systemctl status gonic # vérifier status, doit être actif (running)
journalctl -f -u gonic # suivre logs
journalctl -t gonic # trace
Accès web
Via SSH
- Gonic → localhost:4747
on va utiliser une redirection de port via ssh
Serveur audio gonic
Ouvrir un terminal sur le client linux qui dispose des clés ssh et lancer la commande
` ```shell ssh -L 9500:127.0.0.1:4747 yick@192.168.0.205 -p 55205 -i /home/yann/.ssh/yick-ed25519
1
2
3
4
5
6
7
8
9
10
11
12
13
Ouvrir un navigateur sur le client et saisir localhost:9500 pour afficher le serveur audio gonic

Par défaut : admin/admin
admin/TrailleHumideGermonSynapsePolysoc
#### Proxy nginx zic.rnmkcy.eu
Gonic est un serveur local http sur le port 4747 et pour un accès externe il nous faut un proxy
Proxy nginx - configuration `/etc/nginx/conf.d/zic.rnmkcy.eu.conf`
server { listen 80; listen [::]:80; server_name zic.rnmkcy.eu;
1
2
# redirect all plain HTTP requests to HTTPS
return 301 https://zic.rnmkcy.eu$request_uri; }
server { # ipv4 listening port/protocol listen 443 ssl http2; # ipv6 listening port/protocol listen [::]:443 ssl http2; server_name zic.rnmkcy.eu;
1
2
3
4
5
6
7
8
9
10
11
12
13
include /etc/nginx/conf.d/security.conf.inc;
# Proxy audio gonic server
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:4747;
proxy_read_timeout 120;
}
}
```
On vérifie et on relance le serveur nginx
1
2
sudo nginx -t
sudo systemctl reload nginx
Accès https://zic.rnmkcy.eu

