[sysadmin/devops] Un fichier Nginx aux petits oignons pour Kresus


#1

Salut à tou.te.s,

J’aimerais que l’on dispose d’un petit fichier de configuration Nginx dans le dépôt officiel de Kresus, que l’on pourrait ensuite lier depuis la documentation, pour faciliter l’hébergement.

Pour cela, ce qui serait cool, en plus d’avoir le vhost basique, ce serait d’ajouter les bonnes directives pour le cache, afin que tous les éléments statiques soient gardés en cache par le navigateur de manière optimale. J’avoue ne pas trop m’y connaître (côté Nginx ; pour l’aspect web app, on pourra utiliser des service workers pour ça dans le futur) mais au moins je peux donner les informations pour aider :

  • toutes les données distribuées sous l’URL /api sont dynamiques.
  • le point d’entrée /manifest est dynamique également.
  • toutes les autres données sont statiques (JS, images, fontes, HTML, CSS, etc).

Idéalement, en plus de la gestion de cache, on ajouterait des directives pour la compression du contenu côté serveur via gzib ou brotli, en prenant en compte les meilleures pratiques de sécurité (je ne sais pas si les failles gzip côté serveur sont toujours valables ou non).

Bref, il y a encore d’autres choses auxquelles je ne pense pas forcément, comme les entêtes HTTP de sécurité classique, etc.

Pour commencer, on peut montrer un fichier de démonstration ici, ou bien directement proposer une merge request sur https://framagit.org/kresusapp/kresus (je mettrais bien ça dans un répertoire support/nginx/ placé à la racine).

N’hésitez-pas à faire signe si vous avez envie de contribuer :slight_smile:

Bonne journée,
Benjamin


#2

pour YunoHost j’utilise ceci qui est très minimaliste: https://github.com/YunoHost-Apps/kresus_ynh/blob/master/conf/nginx.conf

la démarche est intéressante, j’en prendrai compte pour le paquet.

Si jamais ça intéresse, voici un exemple pour systemd: https://github.com/YunoHost-Apps/kresus_ynh/blob/master/conf/systemd.service


#3

Cela me semble pas mal pour commencer ! On pourra voir ensuite pour le reste des fonctionnalités. Est-ce que tu veux nous faire une merge request ou je fais la copie en indiquant un lien vers le nginx.conf de YNH dans le commit ? :smiley:


#4

#5

Et voilà, ta contribution a été validée et fusionnée, merci beaucoup ! Et merci à Framasky également qui a ajouté quelques directives nginx.

Si tu te sens d’attaque pour l’unité systemd, je suis sûr que ça pourrait être carrément utile à plein de monde :slight_smile:

Bonne fin de week-end !