# Share your "hooks" to apply custom configurations- Partagez vos "hooks" pour appliquer des configurations personnelles

**URL:** https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235
**Category:** Tutorials
**Tags:** french, english
**Created:** [September 20, 2021, 9:36pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235 "2021-09-20T21:36:03Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![rodinux](https://forum.yunohost.org/user_avatar/forum.yunohost.org/rodinux/32/7029_2.png) [@rodinux](https://forum.yunohost.org/u/rodinux)
#### Post date: [February 7, 2023, 10:00pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/21 "2023-02-07T22:00:50Z")

</div>

Ok, par contre c’est toujours avec slow à la fin, c’est bien ça ? Par exemple

```auto
# Wanadoo / Orange
wanadoo.com slow:
wanadoo.fr slow:
wanadoo.es slow:
orange.com slow:
orange.fr slow:
free.fr slow:

```

---

<div class="post-metadata">

### Author: ![Poine](https://forum.yunohost.org/user_avatar/forum.yunohost.org/poine/32/3128_2.png) [@Poine](https://forum.yunohost.org/u/Poine)
#### Post date: [February 8, 2023, 9:02am UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/22 "2023-02-08T09:02:03Z")

</div>

Oui si tu veux mettre la même règle pour tout le monde.  
Sinon tu peux créer plusieurs règles comme ceci:

Dans `/etc/postfix/transport`

```auto
wanadoo.com slow:
wanadoo.fr slow:
orange.fr slow:
free.fr regle2:
yahoo.com regle2:

```

Dans `/etc/postfix/master.cf`

```auto
slow unix - - n - 5 smtp
   -o syslog_name=postfix-slow
   -o smtp_destination_concurrency_limit=1
   -o slow_destination_rate_delay=5'
regle2 unix - - n - 5 smtp
   -o syslog_name=postfix-slow
   -o smtp_destination_concurrency_limit=4`
   -o slow_destination_rate_delay=1'

```

Dans `/etc/postfix/main.cf`

```auto
slow_destination_recipient_limit = 20
slow_destination_concurrency_limit = 1
slow_destination_rate_delay = 5s

regle2_destination_recipient_limit = 2
regle2_destination_concurrency_limit = 4
regle2_destination_rate_delay = 1s

```

Les chiffres ci-dessus sont un exemple, tu mets ce que tu veux !

---

<div class="post-metadata">

### Author: ![rodinux](https://forum.yunohost.org/user_avatar/forum.yunohost.org/rodinux/32/7029_2.png) [@rodinux](https://forum.yunohost.org/u/rodinux)
#### Post date: [February 8, 2023, 1:34pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/23 "2023-02-08T13:34:18Z")

</div>

Super…  
Après c’est difficile de savoir quelles règles pour ne pas être considérer comme spam et par quelle FAI… Ils nous facilite pas la tâche…

---

<div class="post-metadata">

### Author: ![rodinux](https://forum.yunohost.org/user_avatar/forum.yunohost.org/rodinux/32/7029_2.png) [@rodinux](https://forum.yunohost.org/u/rodinux)
#### Post date: [March 2, 2023, 6:08pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/24 "2023-03-02T18:08:25Z")

</div>

J’ai une galère, un utilisateur essaye d’envoyer plusieurs mails et les mails en .orange ne reçoit pas leurs mails…  
La règle que j’ai mis

```auto
17 echo '
18 transport_maps = hash:/etc/postfix/transport
19 slow_initial_destination_concurrency=1
20 slow_destination_concurrency_limit=1
21 slow_destination_rate_delay=5' >> $postfix_main_conf
22
23 echo '
24 slow unix - - n - 5 smtp
25 -o syslog_name=postfix-slow
26 -o smtp_destination_concurrency_limit=1
27 -o slow_destination_rate_delay=5' >> $postfix_master_conf

```

Et je retrouve une erreur comme celle-ci

```auto
Mar 2 18:18:23 domain postfix/trivial-rewrite[2819055]: warning: database /etc/postfix/transport.db is older than source file /etc/postfix/transport
Mar 2 18:18:23 domain postfix/qmgr[2619125]: warning: connect to transport private/orange: Connection refused
Mar 2 18:18:23 domain postfix/qmgr[2619125]: 5765F28E10B: from=<userdomain@domain.fr>, size=64395, nrcpt=1 (queue active)
Mar 2 18:18:23 domain postfix/error[2819056]: 3E0AA28E3ED: to=<personne@orange.fr>, relay=none, delay=21313, delays=21313/0.02/0/0.05, dsn=4.3.0, status=deferred (mail transport unavailable)
Mar 2 18:18:28 domain postfix/error[2819056]: 5765F28E10B: to=<personne2@orange.fr>, relay=none, delay=2153, delays=2148/5.1/0/0.06, dsn=4.3.0, status=deferred (mail transport unavailable)

```

Du coup je tente d’enlever ce hook et de repartir avec une configuration de départ…

---

<div class="post-metadata">

### Author: ![rodinux](https://forum.yunohost.org/user_avatar/forum.yunohost.org/rodinux/32/7029_2.png) [@rodinux](https://forum.yunohost.org/u/rodinux)
#### Post date: [March 2, 2023, 6:26pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/25 "2023-03-02T18:26:57Z")

</div>

Je confirme, en supprimant le hook et en lançant un regen\_conf pour supprimer les règles ajoutées, les mails orange ont fonctionné…

---

<div class="post-metadata">

### Author: ![ljf](https://forum.yunohost.org/user_avatar/forum.yunohost.org/ljf/32/58_2.png) [@ljf](https://forum.yunohost.org/u/ljf)
#### Post date: [March 2, 2023, 8:55pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/26 "2023-03-02T20:55:09Z")

</div>

> [@oberger](#):
>
> Is there some documentation outside this forum, to help users understand better ?

Yes [Hooks | Yunohost Documentation](https://yunohost.org/en/packaging_apps_hooks)

---

<div class="post-metadata">

### Author: ![ljf](https://forum.yunohost.org/user_avatar/forum.yunohost.org/ljf/32/58_2.png) [@ljf](https://forum.yunohost.org/u/ljf)
#### Post date: [March 2, 2023, 8:55pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/27 "2023-03-02T20:55:49Z")

</div>

> [@Poine](#):
>
> Bonjour, j’ai tenté de créer un hook pour modifier les fichiers /etc/postfix/main.cf et /etc/postfix/master.cf afin de ralentir les envois vers certains serveurs comme [orange.fr](http://orange.fr)  
> Est-ce que ça vous semble correct?

Feel free to suggest a PR on Yunohost for this …

---

<div class="post-metadata">

### Author: ![rodinux](https://forum.yunohost.org/user_avatar/forum.yunohost.org/rodinux/32/7029_2.png) [@rodinux](https://forum.yunohost.org/u/rodinux)
#### Post date: [March 2, 2023, 9:13pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/28 "2023-03-02T21:13:51Z")

</div>

après il faut trouver les bonnes configurations pour que ça marche…  
que penser de ce bug dans mes logs ?  
` warning: database /etc/postfix/transport.db is older than source file /etc/postfix/transport`

---

<div class="post-metadata">

### Author: ![ljf](https://forum.yunohost.org/user_avatar/forum.yunohost.org/ljf/32/58_2.png) [@ljf](https://forum.yunohost.org/u/ljf)
#### Post date: [March 2, 2023, 9:17pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/29 "2023-03-02T21:17:21Z")

</div>

Il faut faire

```auto
postmap /etc/postfix/transport

```

---

<div class="post-metadata">

### Author: ![Poine](https://forum.yunohost.org/user_avatar/forum.yunohost.org/poine/32/3128_2.png) [@Poine](https://forum.yunohost.org/u/Poine)
#### Post date: [March 2, 2023, 9:23pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/30 "2023-03-02T21:23:33Z")

</div>

Je n’ai pas de souci particulier avec ce hook, pour l’instant.  
Par contre je vois dans ton log:

> [@rodinux](#):
>
> warning: database /etc/postfix/transport.db is older than source file /etc/postfix/transport

Du coup je te conseille de faire:

> postmap /etc/postfix/transport

puis

> /etc/init.d/postfix restart

---

<div class="post-metadata">

### Author: ![rodinux](https://forum.yunohost.org/user_avatar/forum.yunohost.org/rodinux/32/7029_2.png) [@rodinux](https://forum.yunohost.org/u/rodinux)
#### Post date: [March 2, 2023, 9:26pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/31 "2023-03-02T21:26:20Z")

</div>

Si on a bien les règles ajoutées avec le hook, c’est bien cela ? du coup j’hésite à le remettre en place, je me rends compte que cette base de données a été crée à la suite…  
Est-ce que je ne risque pas d’avoir de nouveaux des mails refusés ? Cela veut dire qu’il faut relancer de temps à autres cette commande ? Bon je regarde le manuel et j’avais aussi vu cette commande: [Postfix manual - transport(5)](https://www.postfix.org/transport.5.html)

---

<div class="post-metadata">

### Author: ![Poine](https://forum.yunohost.org/user_avatar/forum.yunohost.org/poine/32/3128_2.png) [@Poine](https://forum.yunohost.org/u/Poine)
#### Post date: [March 2, 2023, 9:34pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/32 "2023-03-02T21:34:15Z")

</div>

Cette commande postmap est à faire chaque fois que tu modifies une base de donnée, ici c’est le fichier /etc/postfix/transport.  
Normalement ce fichier tu ne le modifies pas tous les jours donc il n’y a pas lieu de relancer la commande régulièrement.

---

<div class="post-metadata">

### Author: ![rodinux](https://forum.yunohost.org/user_avatar/forum.yunohost.org/rodinux/32/7029_2.png) [@rodinux](https://forum.yunohost.org/u/rodinux)
#### Post date: [March 2, 2023, 9:35pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/33 "2023-03-02T21:35:47Z")

</div>

Ok merci, du coup j’ai remis en place le hook et je vais tester…

---

<div class="post-metadata">

### Author: ![Poine](https://forum.yunohost.org/user_avatar/forum.yunohost.org/poine/32/3128_2.png) [@Poine](https://forum.yunohost.org/u/Poine)
#### Post date: [March 2, 2023, 9:47pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/34 "2023-03-02T21:47:22Z")

</div>

Tiens comme je suis là je partage un autre hook que je trouve intéressant et qui fonctionne bien.  
C’est pour modifier les adresses qui peuvent se connecter en root (PermitRootLogin).

```auto
#!/bin/bash

my_local_address=192.168.0.1
my_home_address=77.XX.XX.XX
my_vpn=88.XX.XX.XX

action=$1
pending_dir=$4
ssh_conf=$pending_dir/../ssh/etc/ssh/sshd_config

[["$action" == "pre"]] || exit 0
[[-e $ssh_conf]] || exit 0

sed -e "s/Match Address.*/Match Address $my_local_address,$my_home_address,$my_vpn/" \
    -i $ssh_conf

```

Par contre j’ai eu un bug quand je mettais plus de trois adresses, à creuser…

---

<div class="post-metadata">

### Author: ![rodinux](https://forum.yunohost.org/user_avatar/forum.yunohost.org/rodinux/32/7029_2.png) [@rodinux](https://forum.yunohost.org/u/rodinux)
#### Post date: [March 2, 2023, 10:05pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/35 "2023-03-02T22:05:19Z")

</div>

Il existe un settings déjà non ? peut-être que pour la webadmin en fait, c’est différent…

---

<div class="post-metadata">

### Author: ![rodinux](https://forum.yunohost.org/user_avatar/forum.yunohost.org/rodinux/32/7029_2.png) [@rodinux](https://forum.yunohost.org/u/rodinux)
#### Post date: [March 2, 2023, 10:07pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/36 "2023-03-02T22:07:28Z")

</div>

Ok, ça a l’air de fonctionner… my bad, j’avais peut-être touché au fichier transport sans mettre à jour l’index…

---

<div class="post-metadata">

### Author: ![Poine](https://forum.yunohost.org/user_avatar/forum.yunohost.org/poine/32/3128_2.png) [@Poine](https://forum.yunohost.org/u/Poine)
#### Post date: [March 3, 2023, 7:43am UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/37 "2023-03-03T07:43:52Z")

</div>

Oui je n’ai pas précisé, c’est pour la connexion ssh.

---

<div class="post-metadata">

### Author: ![rodinux](https://forum.yunohost.org/user_avatar/forum.yunohost.org/rodinux/32/7029_2.png) [@rodinux](https://forum.yunohost.org/u/rodinux)
#### Post date: [March 7, 2023, 9:28am UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/38 "2023-03-07T09:28:14Z")

</div>

Je vous partage des hooks pour ce cas particulier: un serveur avec plusieurs noms de domaines, `domaineA` `domaineB` `domaineC`. La particularité est que l’on veut utiliser les MX du registar de Gandi pour le `domaineC`.

Pour cela on exclus le `domaineC` dans `/etc/postfix/ldap-domains.cf`

**/etc/yunohost/hooks.d/conf\_regen/70-postfix\_customhook**

```auto
#!/bin/bash

action=$1
pending_dir=$4
postfix_ldap_domains_conf=$pending_dir/../postfix/etc/postfix/ldap-domains.cf

source /usr/share/yunohost/helpers
ynh_write_var_in_file --file=$postfix_ldap_domains_conf --key=query_filter --value='(&(&(objectClass=mailDomain)(virtualdomain=%s))(!(virtualdomain=domaineC.tld)))'

```

et pour dnsmasq de domaineC on change les valeurs MX

**/etc/yunohost/conf\_regen/80-dnsmasq\_customhook**

```auto
#!/bin/bash

action=$1
pending_dir=$4
domaineC_tld_conf=$pending_dir/../dnsmasq/etc/dnsmasq.d/domaineC.tld

[["$action" == "pre"]] || exit 0
[[-e $domaineC_tld_conf]] || exit 0

sed -e 's/mx-host=domaineC.tld,domaineC.tld,5/mx-host=spool.mail.gandi.net,5/' \
    -i $domaineC_tld_conf

```

---

<div class="post-metadata">

### Author: ![Kit](https://forum.yunohost.org/user_avatar/forum.yunohost.org/kit/32/1208_2.png) [@Kit](https://forum.yunohost.org/u/Kit)
#### Post date: [March 13, 2023, 3:04pm UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/39 "2023-03-13T15:04:43Z")

</div>

Hi there,

Two hooks for login in a dokuwiki page the upgrades of apps and yunohost packages (I don’t want to connect throught ssh and watch the logs everytime I want to know _when_ some app or package has been upgrade, and I am too lazy to do it manually after each upgrade).

=\> [kit/Yunohost\_public: Fichiers à destination de la communauté Yunohost - Yunohost\_public - Gitea](https://chaton.noho.st/gitea/kit/Yunohost_public)

Apps :

**/etc/yunohost/hooks.d/post\_app\_upgrade/01-log-app-upgrade**

```auto
#!/bin/bash

source /usr/share/yunohost/helpers
logfile="/var/www/dokuwiki/data/pages/update.txt" #Fichier de log
current_date=$(date +"%Y/%m/%d") #Date au format YYY/MM/DD

id=$YNH_APP_ID
current_version=$YNH_APP_CURRENT_VERSION
updated_version=$YNH_APP_MANIFEST_VERSION
newline=" **$current_date** : **App** : $id $current_version -> $updated_version"

sed -i "3i\\$newline\n" $logfile #Ajout de la nouvelle entrée ligne 3.

```

The second one is not really a hook, it is a bash programm launched after each `apt upgrade`.

Create this file : **/etc/apt/apt.conf.d/80upgradehook**

```auto
DPkg::Post-Invoke {bash "/home/yuno_package_update_log.bash";};

```

(replace the path/name of the .bash by yours.

and, of course, the bash programm itself :

**yuno\_package\_update\_log.bash**

```auto
#!/bin/bash

# Fichier loggant automatiquement les paquets voulus (ici ceux liés à yuno) dans un fichier du wiki
# Lançable automatiquement après un apt upgrade en créant le fichier /etc/apt/apt.conf.d/80upgradehook

WIKIFILE="/var/www/dokuwiki/data/pages/update.txt"
LOGFILE="/var/log/dpkg.log"
PACKAGES_WANTED=("yunohost" "yunohost-admin" "moulinette" "ssowat") # Liste des paquet à inscrire dans le fichier de log

function read_logfile { #On parcourt le fichier LOGFILE ligne par ligne en partant de la fin
	while IFS= read -r log_line; do
		if [["$PACKAGE_LOGGED" == "FALSE"]];then
			search_package
		else
			return 0
		fi
	done < <(tac $LOGFILE | grep "status installed")
}

function search_package { #On vérifie si la ligne de log contient le paquet recherché
	if [[$(echo "$log_line" | grep "$package":) != ""]]; then #ajout des ":" après le package pour isoler yunohost de yunohost-admin
		if [["$PACKAGE_LOGGED" == "FALSE"]];then
			PACKAGE_VERSION=$(echo $log_line | awk '{print $NF}') #Extraction de la version du paquet
			write_wiki
		fi
	else
		return 0
	fi
}

function write_wiki { #On écrit dans le fichier WIKIFILE
	check_wiki

	if [["$PACKAGE_LOGGED" == "FALSE"]]; then
		DATE=$(echo $log_line | awk '{print $1}') #Date d'installation du paquet (1ere colonne)
		NEW_LINE=" **$DATE** : **Sys** : $package -> $PACKAGE_VERSION" #Ligne à inscrire
		sed -i "3i\\$NEW_LINE\n" $WIKIFILE #Ajout de la nouvelle entrée ligne 3.
		PACKAGE_LOGGED=TRUE
	fi
}

function check_wiki { #On boucle sur les lignes de WIKIFILE pour trouver le package et la versions idoines
	while IFS= read -r wiki_line; do
			if [[$(echo "$wiki_line" | grep "$package" | grep "$PACKAGE_VERSION") != ""]]; then # Si ligne non présente dans WIKIFILE 
				PACKAGE_LOGGED=TRUE
				return 0
			fi
		done < <(cat $WIKIFILE | grep "$package")
}

for package in "${PACKAGES_WANTED[@]}"
do
	PACKAGE_LOGGED=FALSE
	read_logfile
done
exit 0

```

This lastprogramm will probably be updated, but as far as I know it works with manual upgrade (`yunohost tools upgrade system`) and automatic upgrade from **unattended-upgrades**.

---

<div class="post-metadata">

### Author: ![Nico1](https://forum.yunohost.org/letter_avatar_proxy/v4/letter/n/f6c823/32.png) [@Nico1](https://forum.yunohost.org/u/Nico1)
#### Post date: [November 11, 2023, 10:35am UTC](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235/40 "2023-11-11T10:35:02Z")

</div>

Bonjour je suis à la recherche d’un hook pour Jellyfin.  
J’ai ajouté à la main les ips qui pouvaient se connecter au Jellyfin mais à chaque MAJ le fichier NGYNX est reset  
Voici comment j’ai fais

```auto
	allow X.X.X.X/8;
	allow X.X.X.X.X;
	deny all;

```

Je souhaiterai que se bloc ne disparaissent pas à chaque MAJ.  
Je précise que les personnes se connectent via l’app et non via yuno.  
Je ne sais pas si c’est la meilleur méthode pour filtrer mais en tout cas ça fonctionne.

Merci.

[Previous page](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235.md?page=1)

[Next page](https://forum.yunohost.org/t/share-your-hooks-to-apply-custom-configurations-partagez-vos-hooks-pour-appliquer-des-configurations-personnelles/17235.md?page=3)
