Compare commits
22 Commits
34eb2cc36b
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
08667a15fb | ||
| da1ec7b5f4 | |||
| 48f4589169 | |||
|
|
16a71f6a98 | ||
|
|
666977785c | ||
|
|
61532b7964 | ||
| d1011a8e95 | |||
| 3f9e643984 | |||
| c1696bbc6b | |||
| 7e54950a14 | |||
|
|
8aeb1d785b | ||
| d62e6627b6 | |||
| 66941fb10c | |||
| f4b1731246 | |||
| b0f57d04c3 | |||
|
|
19b9b916c2 | ||
|
|
398388a9b2 | ||
| 4feff8984c | |||
| bc5ec41980 | |||
| 2439494f98 | |||
| 6d0f15c74b | |||
| 955abb1108 |
@@ -33,6 +33,7 @@ setKazVars () {
|
|||||||
export KAZ_CONF_PROXY_DIR="${KAZ_CONF_DIR}/proxy"
|
export KAZ_CONF_PROXY_DIR="${KAZ_CONF_DIR}/proxy"
|
||||||
export KAZ_COMP_DIR="${KAZ_ROOT}/dockers"
|
export KAZ_COMP_DIR="${KAZ_ROOT}/dockers"
|
||||||
export KAZ_STATE_DIR="${KAZ_ROOT}/state"
|
export KAZ_STATE_DIR="${KAZ_ROOT}/state"
|
||||||
|
export KAZ_TEMP_DIR="${KAZ_ROOT}/tmp"
|
||||||
|
|
||||||
export KAZ_GIT_DIR="${KAZ_ROOT}/git"
|
export KAZ_GIT_DIR="${KAZ_ROOT}/git"
|
||||||
export KAZ_DNLD_DIR="${KAZ_ROOT}/download"
|
export KAZ_DNLD_DIR="${KAZ_ROOT}/download"
|
||||||
@@ -379,4 +380,3 @@ get_Serveurs_Kaz () {
|
|||||||
echo ${liste}
|
echo ${liste}
|
||||||
}
|
}
|
||||||
########################################
|
########################################
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# Ki : did pour créer le fichier createusers.txt
|
||||||
KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
|
# kan : le 20 janvier 2026
|
||||||
|
#KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
|
||||||
|
KAZ_ROOT=/kaz
|
||||||
. $KAZ_ROOT/bin/.commonFunctions.sh
|
. $KAZ_ROOT/bin/.commonFunctions.sh
|
||||||
setKazVars
|
setKazVars
|
||||||
|
|
||||||
. $DOCKERS_ENV
|
. $DOCKERS_ENV
|
||||||
|
|
||||||
. $KAZ_KEY_DIR/env-paheko
|
. $KAZ_KEY_DIR/env-paheko
|
||||||
. $KAZ_KEY_DIR/env-kaz
|
. $KAZ_KEY_DIR/env-kaz
|
||||||
|
|
||||||
@@ -18,12 +18,11 @@ RACINE=$(echo $PRG | awk '{print $1}')
|
|||||||
TFILE_INT_PAHEKO_ACTION=$(mktemp /tmp/XXXXXXXX_INT_PAHEKO_ACTION.json)
|
TFILE_INT_PAHEKO_ACTION=$(mktemp /tmp/XXXXXXXX_INT_PAHEKO_ACTION.json)
|
||||||
TFILE_INT_PAHEKO_IDFILE=$(mktemp /tmp/XXXXXXXX_TFILE_INT_PAHEKO_IDFILE.json)
|
TFILE_INT_PAHEKO_IDFILE=$(mktemp /tmp/XXXXXXXX_TFILE_INT_PAHEKO_IDFILE.json)
|
||||||
FILE_CREATEUSER="$KAZ_ROOT/tmp/createUser.txt"
|
FILE_CREATEUSER="$KAZ_ROOT/tmp/createUser.txt"
|
||||||
|
FILE_NOTIFICATION="${KAZ_TEMP_DIR}/${PRG}.txt"
|
||||||
sep=' '
|
sep=' '
|
||||||
|
ERRMSG=""
|
||||||
#trap "rm -f ${TFILE_INT_PAHEKO_IDFILE} ${TFILE_INT_PAHEKO_ACTION} " 0 1 2 3 15
|
|
||||||
|
|
||||||
############################################ Fonctions #######################################################
|
############################################ Fonctions #######################################################
|
||||||
|
|
||||||
TEXTE="
|
TEXTE="
|
||||||
# -- fichier de création des comptes KAZ
|
# -- fichier de création des comptes KAZ
|
||||||
# --
|
# --
|
||||||
@@ -52,129 +51,144 @@ TEXTE="
|
|||||||
# exemple pour un compte asso de l'orga gogol avec le service dédié NC uniquement + une équipe dans l'agora
|
# exemple pour un compte asso de l'orga gogol avec le service dédié NC uniquement + une équipe dans l'agora
|
||||||
# dupont ; jean-louis; jean-louis.dupont@kaz.bzh ; gregomondo@kaz.bzh; gogol ; O; O; N; N; N; N;N;;gogol_team; 10
|
# dupont ; jean-louis; jean-louis.dupont@kaz.bzh ; gregomondo@kaz.bzh; gogol ; O; O; N; N; N; N;N;;gogol_team; 10
|
||||||
"
|
"
|
||||||
|
PostMattermost() {
|
||||||
|
PostM=$1
|
||||||
|
CHANNEL="kaz:Creation-Comptes"
|
||||||
|
. $KAZ_KEY_DIR/env-mattermostAdmin
|
||||||
|
docker exec -ti ${mattermostServName} bin/mmctl --suppress-warnings auth login $httpProto://$URL_AGORA --name local-server --username $mattermost_user --password $mattermost_pass >/dev/null 2>&1
|
||||||
|
docker exec -ti mattermostServ bin/mmctl post create ${CHANNEL} --message ${PostM} >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
ExpMail() {
|
ExpMail() {
|
||||||
MAIL_DEST=$1
|
MAIL_DEST=$1
|
||||||
MAIL_SUJET=$2
|
MAIL_SUJET=$2
|
||||||
MAIL_TEXTE=$3
|
MAIL_TEXTE=$3
|
||||||
printf "Subject:${MAIL_SUJET}\n${MAIL_TEXTE}" | msmtp ${MAIL_DEST}
|
echo "$MAIL_TEXTE" | mail -s ${MAIL_SUJET} ${MAIL_DEST}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Int_paheko_Action() {
|
Int_paheko_Action() {
|
||||||
# $1 est une action;
|
# $1 est une action;
|
||||||
ACTION=$1
|
ACTION=$1
|
||||||
OPTION=$2
|
OPTION=$2
|
||||||
# on envoie la requête sur le serveur paheko avec la clause à créer
|
# on envoie la requête sur le serveur paheko avec la clause à créer
|
||||||
curl -s ${URL_PAHEKO}/api/sql -d "SELECT * from users where action_auto='${ACTION}';" >>${TFILE_INT_PAHEKO_ACTION}
|
curl -s ${URL_PAHEKO}/api/sql -d "SELECT * from users where action_auto='${ACTION}';" >>${TFILE_INT_PAHEKO_ACTION}
|
||||||
[ ! -z ${TFILE_INT_PAHEKO_ACTION} ] || { echo "probleme de fichier ${TFILE_INT_PAHEKO_ACTION}" ; exit 1;}
|
[ ! -z ${TFILE_INT_PAHEKO_ACTION} ] || { echo "probleme de fichier ${TFILE_INT_PAHEKO_ACTION}" ; exit 1;}
|
||||||
REP_ID=$(jq -c '.results[].id ' ${TFILE_INT_PAHEKO_ACTION} 2>/dev/null)
|
REP_ID=$(jq -c '.results[].id ' ${TFILE_INT_PAHEKO_ACTION} 2>/dev/null)
|
||||||
if [ ! -z "${REP_ID}" ]
|
if [ ! -z "${REP_ID}" ]
|
||||||
then
|
|
||||||
[ "$OPTION" = "silence" ] || echo -e "${RED}Nombre de compte ${ACTION} ${NC}= ${GREEN} $(echo ${REP_ID} | wc -w) ${NC}"
|
|
||||||
if [ -f "$FILE_CREATEUSER" ]
|
|
||||||
then
|
|
||||||
mv $FILE_CREATEUSER $FILE_CREATEUSER.$(date +%d-%m-%Y-%H:%M:%S)
|
|
||||||
fi
|
|
||||||
echo "# -------- Fichier généré le $(date +%d-%m-%Y-%H:%M:%S) ----------">${FILE_CREATEUSER}
|
|
||||||
echo "${TEXTE}" >>${FILE_CREATEUSER}
|
|
||||||
for VAL_ID in ${REP_ID}
|
|
||||||
do
|
|
||||||
jq -c --argjson val "${VAL_ID}" '.results[] | select (.id == $val)' ${TFILE_INT_PAHEKO_ACTION} > ${TFILE_INT_PAHEKO_IDFILE}
|
|
||||||
for VAL_GAR in id_category action_auto nom email email_secours quota_disque admin_orga nom_orga responsable_organisation responsable_email agora cloud wordpress garradin docuwiki id_service
|
|
||||||
do
|
|
||||||
eval $VAL_GAR=$(jq .$VAL_GAR ${TFILE_INT_PAHEKO_IDFILE})
|
|
||||||
done
|
|
||||||
################################
|
|
||||||
# test du mail valide en $domain
|
|
||||||
echo ${email} | grep -i "${domain}" || { echo "Erreur : le mail ${email} n'est pas en ${domain}"; exit ;}
|
|
||||||
################################
|
|
||||||
#comme tout va bien on continue
|
|
||||||
#on compte le nom de champs dans la zone nom pour gérer les noms et prénoms composés
|
|
||||||
# si il y a 3 champs, on associe les 2 premieres valeurs avec un - et on laisse le 3ème identique
|
|
||||||
# si il y a 4 champs on associe les 1 et le 2 avec un tiret et le 3 et 4 avec un tiret
|
|
||||||
# on met les champs nom_ok et prenom_ok à blanc
|
|
||||||
nom_ok=""
|
|
||||||
prenom_ok=""
|
|
||||||
# on regarde si le nom de l' orga est renseigné ou si le nom de l' orga est null et l' activité de membre est 7 (membre rattaché)
|
|
||||||
# si c' est le cas alors le nom est le nom de l' orga et le prénom est forcé à la valeur Organisation
|
|
||||||
if [[ "$nom_orga" = null ]] || [[ "$nom_orga" != null && "$id_service" = "7" ]]
|
|
||||||
then
|
|
||||||
[ "$OPTION" = "silence" ] || echo -e "${NC}Abonné ${GREEN}${nom}${NC}"
|
|
||||||
#si lactivité est membre rattaché on affiche a quelle orga il est rattaché
|
|
||||||
if [ "$id_service" = "7" ] && [ "$OPTION" != "silence" ] && [ "$nom_orga" != null ]
|
|
||||||
then
|
then
|
||||||
echo -e "${NC}Orga Rattachée : ${GREEN}${nom_orga}${NC}"
|
[ "$OPTION" = "silence" ] || echo -e "${RED}Nombre de compte ${ACTION} ${NC}= ${GREEN} $(echo ${REP_ID} | wc -w) ${NC}"
|
||||||
fi
|
if [ -f "$FILE_CREATEUSER" ]
|
||||||
COMPTE_NOM=$(echo $nom | awk -F' ' '{for (i=1; i != NF; i++); print i;}')
|
then
|
||||||
case "${COMPTE_NOM}" in
|
mv $FILE_CREATEUSER $FILE_CREATEUSER.$(date +%d-%m-%Y-%H:%M:%S)
|
||||||
0|1)
|
|
||||||
echo "Il faut corriger le champ nom (il manque un nom ou prénom) de paheko"
|
|
||||||
echo "je quitte et supprime le fichier ${FILE_CREATEUSER}"
|
|
||||||
rm -f $FILE_CREATEUSER
|
|
||||||
exit 2
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
nom_ok=$(echo $nom | awk -F' ' '{print $1}')
|
|
||||||
prenom_ok=$(echo $nom | awk -F' ' '{print $2}')
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
nom_ok=
|
|
||||||
prenom_ok=
|
|
||||||
for i in ${nom}; do grep -q '^[A-Z]*$' <<<"${i}" && nom_ok="${nom_ok}${sep}${i}" || prenom_ok="${prenom_ok}${sep}${i}"; done
|
|
||||||
nom_ok="${nom_ok#${sep}}"
|
|
||||||
prenom_ok="${prenom_ok#${sep}}"
|
|
||||||
if [ -z "${nom_ok}" ] || [ -z "${prenom_ok}" ]; then
|
|
||||||
ERRMSG="Erreur : Il faut corriger le champ nom qui contient plus de 2 infos dans paheko"
|
|
||||||
[ "${IP_MAIL}" = "true" ] && ExpMail ${IP_MAILDEST} "Erreur dans la fiche paheko" "${ERRMSG}" || echo ${ERRMSG}
|
|
||||||
rm -f $FILE_CREATEUSER
|
|
||||||
exit
|
|
||||||
fi
|
fi
|
||||||
esac
|
echo "# -------- Fichier généré le $(date +%d-%m-%Y-%H:%M:%S) ----------">${FILE_CREATEUSER}
|
||||||
# comme l' orga est à null nom orga est a vide, pas d' admin orga, on met dans l' agora générale
|
echo "${TEXTE}" >>${FILE_CREATEUSER}
|
||||||
# pas d' équipe agora et de groupe nextcloud spécifique
|
for VAL_ID in ${REP_ID}
|
||||||
|
do
|
||||||
nom_orga=" "
|
jq -c --argjson val "${VAL_ID}" '.results[] | select (.id == $val)' ${TFILE_INT_PAHEKO_ACTION} > ${TFILE_INT_PAHEKO_IDFILE}
|
||||||
admin_orga="N"
|
for VAL_GAR in id_category action_auto nom email email_secours quota_disque admin_orga nom_orga responsable_organisation responsable_email agora cloud wordpress garradin docuwiki id_service
|
||||||
nc_base="O"
|
do
|
||||||
equipe_agora=" "
|
eval $VAL_GAR=$(jq .$VAL_GAR ${TFILE_INT_PAHEKO_IDFILE})
|
||||||
groupe_nc_base=" "
|
done
|
||||||
else
|
################################
|
||||||
# L' orga est renseigné dans paheko donc les nom et prenoms sont forcé a nom_orga et Organisation
|
# test du mail valide en $domain : si oui on remplie la variable ERRMSG et on créé le fichier de notification"
|
||||||
# un équipe agora portera le nom de l' orga, le compte ne sera pas créé dans le nextcloud général
|
echo ${email} | grep -i "${domain}" >/dev/null || { ERRMSG="- Le mail ${email} n'est pas en ${domain}";touch ${FILE_NOTIFICATION} 2>/dev/null;}
|
||||||
# et le compte est admin de son orga
|
################################
|
||||||
nom_orga=$(echo $nom_orga | tr [:upper:] [:lower:])
|
#on compte le nom de champs dans la zone nom pour gérer les noms et prénoms composés
|
||||||
[ "$OPTION" = "silence" ] || echo -e "${NC}Orga : ${GREEN}${nom_orga}${NC}"
|
# si il y a 3 champs, on associe les 2 premieres valeurs avec un - et on laisse le 3ème identique
|
||||||
nom_ok=$nom_orga
|
# si il y a 4 champs on associe les 1 et le 2 avec un tiret et le 3 et 4 avec un tiret
|
||||||
# test des caractères autorisés dans le nom d' orga: lettres, chiffres et/ou le tiret
|
# on met les champs nom_ok et prenom_ok à blanc
|
||||||
if ! [[ "${nom_ok}" =~ ^[[:alnum:]-]+$ ]]; then
|
nom_ok=""
|
||||||
ERRMSG="Erreur : l' orga doit être avec des lettres et/ou des chiffres. Le séparateur doit être le tiret"
|
prenom_ok=""
|
||||||
[ "${IP_MAIL}" = "true" ] && ExpMail ${IP_MAILDEST} "Erreur dans la fiche Paheko" "${ERRMSG}" || echo ${ERRMSG}
|
# on regarde si le nom de l' orga est renseigné ou si le nom de l' orga est null et l' activité de membre est 7 (membre rattaché)
|
||||||
rm -f $FILE_CREATEUSER
|
# si c' est le cas alors le nom est le nom de l' orga et le prénom est forcé à la valeur Organisation
|
||||||
exit 2
|
if [[ "$nom_orga" = null ]] || [[ "$nom_orga" != null && "$id_service" = "7" ]]
|
||||||
fi
|
then
|
||||||
prenom_ok=organisation
|
[ "$OPTION" = "silence" ] || echo -e "${NC}Abonné ${GREEN}${nom}${NC}"
|
||||||
equipe_agora=$nom_orga
|
COMPTE_NOM=$(echo $nom | awk -F' ' '{for (i=1; i != NF; i++); print i;}')
|
||||||
groupe_nc_base=" "
|
case "${COMPTE_NOM}" in
|
||||||
nc_base="N"
|
0|1)
|
||||||
admin_orga="O"
|
ERRMSG="${ERRMSG} - Il faut corriger le champ nom (il manque un nom ou prénom)"
|
||||||
fi
|
;;
|
||||||
#On met le mail et le mail de secours en minuscules
|
2)
|
||||||
email=$(echo $email | tr [:upper:] [:lower:])
|
nom_ok=$(echo $nom | awk -F' ' '{print $1}')
|
||||||
email_secours=$(echo $email_secours | tr [:upper:] [:lower:])
|
prenom_ok=$(echo $nom | awk -F' ' '{print $2}')
|
||||||
# Pour le reste on renomme les null en N ( non ) et les valeurs 1 en O ( Oui)
|
;;
|
||||||
cloud=$(echo $cloud | sed -e 's/0/N/g' | sed -e 's/1/O/g')
|
*)
|
||||||
paheko=$(echo $garradin | sed -e 's/0/N/g' | sed -e 's/1/O/g')
|
nom_ok=
|
||||||
wordpress=$(echo $wordpress | sed -e 's/0/N/g' | sed -e 's/1/O/g')
|
prenom_ok=
|
||||||
agora=$(echo $agora | sed -e 's/0/N/g' | sed -e 's/1/O/g')
|
for i in ${nom}; do grep -q '^[A-Z]*$' <<<"${i}" && nom_ok="${nom_ok}${sep}${i}" || prenom_ok="${prenom_ok}${sep}${i}"; done
|
||||||
docuwiki=$(echo $docuwiki | sed -e 's/0/N/g' | sed -e 's/1/O/g')
|
nom_ok="${nom_ok#${sep}}"
|
||||||
# et enfin on écrit dans le fichier
|
prenom_ok="${prenom_ok#${sep}}"
|
||||||
echo "$nom_ok;$prenom_ok;$email;$email_secours;$nom_orga;$admin_orga;$cloud;$paheko;$wordpress;$agora;$docuwiki;$nc_base;$groupe_nc_base;$equipe_agora;$quota_disque">>${FILE_CREATEUSER}
|
if [ -z "${nom_ok}" ] || [ -z "${prenom_ok}" ]
|
||||||
done
|
then
|
||||||
else
|
ERRMSG="${ERRMSG} - Il faut corriger le champ nom qui contient plus de 2 infos"
|
||||||
[ "$OPTION" = "silence" ] || echo "Rien à créer"
|
fi
|
||||||
exit 2
|
esac
|
||||||
fi
|
# comme l' orga est à null nom orga est a vide, pas d' admin orga, on met dans l' agora générale
|
||||||
|
# pas d' équipe agora et de groupe nextcloud spécifique
|
||||||
|
nom_orga=" "
|
||||||
|
admin_orga="N"
|
||||||
|
nc_base="O"
|
||||||
|
equipe_agora=" "
|
||||||
|
groupe_nc_base=" "
|
||||||
|
else
|
||||||
|
# L' orga est renseignée dans paheko donc les nom et prenoms sont forcé a nom_orga et Organisation
|
||||||
|
# un équipe agora portera le nom de l' orga, le compte ne sera pas créé dans le nextcloud général
|
||||||
|
# et le compte est admin de son orga
|
||||||
|
nom_orga=$(echo $nom_orga | tr [:upper:] [:lower:])
|
||||||
|
[ "$OPTION" = "silence" ] || echo -e "${NC}Orga : ${GREEN}${nom_orga}${NC}"
|
||||||
|
nom_ok=$nom_orga
|
||||||
|
# test des caractères autorisés dans le nom d' orga: lettres, chiffres et/ou le tiret
|
||||||
|
if ! [[ "${nom_ok}" =~ ^[[:alnum:]-]+$ ]]
|
||||||
|
then
|
||||||
|
ERRMSG="${ERRMSG} - L' orga doit être avec des lettres et/ou des chiffres. Le séparateur doit être le tiret"
|
||||||
|
fi
|
||||||
|
prenom_ok=organisation
|
||||||
|
equipe_agora=$nom_orga
|
||||||
|
groupe_nc_base=" "
|
||||||
|
nc_base="N"
|
||||||
|
admin_orga="O"
|
||||||
|
fi
|
||||||
|
#On met le mail et le mail de secours en minuscules
|
||||||
|
email=$(echo $email | tr [:upper:] [:lower:])
|
||||||
|
email_secours=$(echo $email_secours | tr [:upper:] [:lower:])
|
||||||
|
# Pour le reste on renomme les null en N ( non ) et les valeurs 1 en O ( Oui)
|
||||||
|
cloud=$(echo $cloud | sed -e 's/0/N/g' | sed -e 's/1/O/g')
|
||||||
|
paheko=$(echo $garradin | sed -e 's/0/N/g' | sed -e 's/1/O/g')
|
||||||
|
wordpress=$(echo $wordpress | sed -e 's/0/N/g' | sed -e 's/1/O/g')
|
||||||
|
agora=$(echo $agora | sed -e 's/0/N/g' | sed -e 's/1/O/g')
|
||||||
|
docuwiki=$(echo $docuwiki | sed -e 's/0/N/g' | sed -e 's/1/O/g')
|
||||||
|
# et enfin on écrit dans le fichier si pas d'erreurs
|
||||||
|
if ! [[ -z ${ERRMSG} ]]
|
||||||
|
then
|
||||||
|
OLDIFS=${IFS}
|
||||||
|
IFS=''
|
||||||
|
# si l'envoi de mail est ok et qu'on a pas déjà écrit alors on envoi un mail
|
||||||
|
if [[ "${IP_MAIL}" = "true" && "$(cat ${FILE_NOTIFICATION})" -ne "1" ]]
|
||||||
|
then
|
||||||
|
ExpMail ${IP_MAILDEST} "Erreur dans la fiche paheko" "${ERRMSG}"
|
||||||
|
PostMattermost "Erreur dans la fiche paheko ${email}"
|
||||||
|
# on ecrit 1 dans le fichier pour ne pas envoyer pleins de mails et notif agora
|
||||||
|
echo 1 >${FILE_NOTIFICATION}
|
||||||
|
fi
|
||||||
|
IFS=${OLDIFS}
|
||||||
|
[ "$OPTION" = "silence" ] || echo ${ERRMSG}
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
# on créé le fichier et on met 0 le fichier de notification
|
||||||
|
echo "$nom_ok;$prenom_ok;$email;$email_secours;$nom_orga;$admin_orga;$cloud;$paheko;$wordpress;$agora;$docuwiki;$nc_base;$groupe_nc_base;$equipe_agora;$quota_disque">>${FILE_CREATEUSER}
|
||||||
|
#on met 0 dans le fichier de notifiction
|
||||||
|
echo 0 >${FILE_NOTIFICATION}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
[ "$OPTION" = "silence" ] || echo "Rien à créer"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
# Main
|
# Main
|
||||||
|
# on créé le fichier de notif au cas ou il serait éffacé
|
||||||
|
touch ${FILE_NOTIFICATION} >/dev/null 2>&1
|
||||||
Int_paheko_Action "A créer" "silence"
|
Int_paheko_Action "A créer" "silence"
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
@@ -13,18 +13,17 @@ services:
|
|||||||
env_file:
|
env_file:
|
||||||
- ../../secret/env-${officeServName}
|
- ../../secret/env-${officeServName}
|
||||||
environment:
|
environment:
|
||||||
|
# see compose.override.yaml
|
||||||
- dictionaries=fr_FR en_GB es_ES
|
- dictionaries=fr_FR en_GB es_ES
|
||||||
- aliasgroup1=https://.*${cloudHost}.${domain}:443
|
|
||||||
# test did sur un cloud distant
|
|
||||||
- aliasgroup2=https://cloud.bodam.fr:443
|
|
||||||
# si on veut ajouter d'autres domaines autorisés pour certaines orgas:
|
|
||||||
# - aliasgroup2=https://autre-domaine1:443
|
|
||||||
# - aliasgroup3=https://autre-domaine2:443
|
|
||||||
- server_name=${site}-${officeHost}.${domain}
|
- server_name=${site}-${officeHost}.${domain}
|
||||||
- VIRTUAL_HOST=${site}-${officeHost}.${domain}
|
- VIRTUAL_HOST=${site}-${officeHost}.${domain}
|
||||||
- VIRTUAL_PORT=9980
|
- VIRTUAL_PORT=9980
|
||||||
- VIRTUAL_PROTO=https
|
- VIRTUAL_PROTO=https
|
||||||
- extra_params=--o:ssl.enable=false --o:ssl.termination=true
|
- extra_params=--o:ssl.enable=false --o:ssl.termination=true
|
||||||
|
- aliasgroup1=https://.*${cloudHost}.${domain}:443
|
||||||
|
# si on veut ajouter d'autres domaines autorisés pour certaines orgas:
|
||||||
|
# - aliasgroupX=https://autre-domaine:443
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ olcAccess: {1}to dn.subtree="$LDAPROOT"
|
|||||||
by dn="cn=mattermost,ou=applications,$LDAPROOT" read
|
by dn="cn=mattermost,ou=applications,$LDAPROOT" read
|
||||||
by dn="cn=cloud,ou=applications,$LDAPROOT" read
|
by dn="cn=cloud,ou=applications,$LDAPROOT" read
|
||||||
by dn="cn=mobilizon,ou=applications,$LDAPROOT" read
|
by dn="cn=mobilizon,ou=applications,$LDAPROOT" read
|
||||||
|
by dn="cn=mastodon,ou=applications,$LDAPROOT" read
|
||||||
by dn="$BINDDN" write
|
by dn="$BINDDN" write
|
||||||
by * none
|
by * none
|
||||||
olcAccess: {2}to *
|
olcAccess: {2}to *
|
||||||
|
|||||||
@@ -45,13 +45,18 @@ olcAttributeTypes: {8}( 1.3.6.1.4.1.5656.1.1.9 NAME 'adressesServices'
|
|||||||
EQUALITY caseIgnoreMatch
|
EQUALITY caseIgnoreMatch
|
||||||
SUBSTR caseIgnoreSubstringsMatch
|
SUBSTR caseIgnoreSubstringsMatch
|
||||||
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
|
||||||
|
olcAttributeTypes: {9}( 1.3.6.1.4.1.5656.1.1.10 NAME 'mastodonEnabled'
|
||||||
|
DESC 'acces a mastodon'
|
||||||
|
EQUALITY caseIgnoreMatch
|
||||||
|
SUBSTR caseIgnoreSubstringsMatch
|
||||||
|
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE)
|
||||||
-
|
-
|
||||||
replace: olcObjectClasses
|
replace: olcObjectClasses
|
||||||
olcObjectClasses: {0}( 1.3.6.1.4.1.5656.1.2.1 NAME 'kaznaute'
|
olcObjectClasses: {0}( 1.3.6.1.4.1.5656.1.2.1 NAME 'kaznaute'
|
||||||
DESC 'Un kaznaute'
|
DESC 'Un kaznaute'
|
||||||
SUP top AUXILIARY
|
SUP top AUXILIARY
|
||||||
MUST ( cn $ quota $ mailDeSecours $ identifiantKaz )
|
MUST ( cn $ quota $ mailDeSecours $ identifiantKaz )
|
||||||
MAY ( agoraEnabled $ mobilizonEnabled $ numeroMembre )
|
MAY ( agoraEnabled $ mobilizonEnabled $ mastodonEnabled $ numeroMembre )
|
||||||
)
|
)
|
||||||
olcObjectClasses: {1}( 1.3.6.1.4.1.5656.1.2.2 NAME 'kazorga'
|
olcObjectClasses: {1}( 1.3.6.1.4.1.5656.1.2.2 NAME 'kazorga'
|
||||||
DESC 'Une orga kaz'
|
DESC 'Une orga kaz'
|
||||||
|
|||||||
@@ -38,3 +38,8 @@ dn: cn=mobilizon,ou=applications,$LDAPROOT
|
|||||||
objectClass: person
|
objectClass: person
|
||||||
sn: mobilizon
|
sn: mobilizon
|
||||||
userPassword: $MOBILIZON_PASSWORD
|
userPassword: $MOBILIZON_PASSWORD
|
||||||
|
|
||||||
|
dn: cn=mastodon,ou=applications,$LDAPROOT
|
||||||
|
objectClass: person
|
||||||
|
sn: mastodon
|
||||||
|
userPassword: $MASTODON_PASSWORD
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ sed -i -e "s%\$LDAPUI_PASSWORD%\{CRYPT\}`mkpasswd -m sha512crypt ${LDAP_LDAPUI_P
|
|||||||
sed -i -e "s%\$MATTERMOST_PASSWORD%\{CRYPT\}`mkpasswd -m sha512crypt ${LDAP_MATTERMOST_PASSWORD}`%g" /tmp/skeleton.ldif
|
sed -i -e "s%\$MATTERMOST_PASSWORD%\{CRYPT\}`mkpasswd -m sha512crypt ${LDAP_MATTERMOST_PASSWORD}`%g" /tmp/skeleton.ldif
|
||||||
sed -i -e "s%\$CLOUD_PASSWORD%\{CRYPT\}`mkpasswd -m sha512crypt ${LDAP_CLOUD_PASSWORD}`%g" /tmp/skeleton.ldif
|
sed -i -e "s%\$CLOUD_PASSWORD%\{CRYPT\}`mkpasswd -m sha512crypt ${LDAP_CLOUD_PASSWORD}`%g" /tmp/skeleton.ldif
|
||||||
sed -i -e "s%\$MOBILIZON_PASSWORD%\{CRYPT\}`mkpasswd -m sha512crypt ${LDAP_MOBILIZON_PASSWORD}`%g" /tmp/skeleton.ldif
|
sed -i -e "s%\$MOBILIZON_PASSWORD%\{CRYPT\}`mkpasswd -m sha512crypt ${LDAP_MOBILIZON_PASSWORD}`%g" /tmp/skeleton.ldif
|
||||||
|
sed -i -e "s%\$MASTODON_PASSWORD%\{CRYPT\}`mkpasswd -m sha512crypt ${LDAP_MASTODON_PASSWORD}`%g" /tmp/skeleton.ldif
|
||||||
|
|
||||||
cp base/kaz-schema.ldif.tmpl /tmp/kaz-schema.ldif
|
cp base/kaz-schema.ldif.tmpl /tmp/kaz-schema.ldif
|
||||||
KAZNUMBER=$(ldapsearch -H ldap://$LDAP_IP -D "cn=${LDAP_CONFIG_ADMIN_USERNAME},cn=config" -w ${LDAP_CONFIG_ADMIN_PASSWORD} -b cn=schema,cn=config | grep "kaz,cn=schema" | head -n1 | cut -d',' -f1 | cut -d'{' -f2 | cut -d'}' -f1)
|
KAZNUMBER=$(ldapsearch -H ldap://$LDAP_IP -D "cn=${LDAP_CONFIG_ADMIN_USERNAME},cn=config" -w ${LDAP_CONFIG_ADMIN_PASSWORD} -b cn=schema,cn=config | grep "kaz,cn=schema" | head -n1 | cut -d',' -f1 | cut -d'{' -f2 | cut -d'}' -f1)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
services:
|
services:
|
||||||
|
|
||||||
app:
|
app:
|
||||||
image: mattermost/mattermost-team-edition:11.1
|
image: mattermost/mattermost-team-edition:11.2
|
||||||
container_name: ${mattermostServName}
|
container_name: ${mattermostServName}
|
||||||
restart: ${restartPolicy}
|
restart: ${restartPolicy}
|
||||||
volumes:
|
volumes:
|
||||||
@@ -16,7 +16,7 @@ services:
|
|||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
- /etc/environment:/etc/environment:ro
|
- /etc/environment:/etc/environment:ro
|
||||||
- ./mostlymatter-amd64-v11.1.0:/mattermost/bin/mattermost
|
- ./mostlymatter-amd64-v11.2.0:/mattermost/bin/mattermost
|
||||||
env_file:
|
env_file:
|
||||||
- ../../secret/env-${mattermostServName}
|
- ../../secret/env-${mattermostServName}
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
@@ -27,9 +27,10 @@ WORKDIR /
|
|||||||
#install cron pour factory_cron.sh
|
#install cron pour factory_cron.sh
|
||||||
RUN apt-get install cron joe rsyslog -y
|
RUN apt-get install cron joe rsyslog -y
|
||||||
RUN sed -i '/imklog/s/^/#/' /etc/rsyslog.conf
|
RUN sed -i '/imklog/s/^/#/' /etc/rsyslog.conf
|
||||||
RUN echo "0 1 * * * cd ${PAHEKO_DIR} && ${PAHEKO_DIR}/factory_cron.sh 1> /dev/null 2> /dev/null" >> /var/spool/cron/crontabs/root
|
RUN echo "0 1 * * * cd ${PAHEKO_DIR} && ${PAHEKO_DIR}/factory_cron.sh 1> /dev/null 2> /dev/null" >> /var/spool/cron/crontabs/www-data
|
||||||
RUN echo "* * * * * cd ${PAHEKO_DIR} && ${PAHEKO_DIR}/factory_cron_emails.sh 1> /dev/null 2> /dev/null" >> /var/spool/cron/crontabs/root
|
RUN echo "* * * * * cd ${PAHEKO_DIR} && ${PAHEKO_DIR}/factory_cron_emails.sh 1> /dev/null 2> /dev/null" >> /var/spool/cron/crontabs/www-data
|
||||||
RUN chmod 600 /var/spool/cron/crontabs/root
|
RUN chmod 600 /var/spool/cron/crontabs/www-data
|
||||||
|
RUN chown www-data:www-data /var/spool/cron/crontabs/www-data
|
||||||
RUN sed -i "/exec/i\service cron start\n" /usr/local/bin/docker-php-entrypoint
|
RUN sed -i "/exec/i\service cron start\n" /usr/local/bin/docker-php-entrypoint
|
||||||
RUN ln -sf /usr/local/bin/php /usr/bin/
|
RUN ln -sf /usr/local/bin/php /usr/bin/
|
||||||
|
|
||||||
|
|||||||
@@ -103,6 +103,8 @@ const API_PASSWORD = "__PAHEKO_API_PASSWORD__";
|
|||||||
const SMTP_PASSWORD = null;
|
const SMTP_PASSWORD = null;
|
||||||
const SMTP_PORT = 25;
|
const SMTP_PORT = 25;
|
||||||
const SMTP_SECURITY = 'NONE';
|
const SMTP_SECURITY = 'NONE';
|
||||||
|
const SMTP_HELO_HOSTNAME = 'paheko.kaz.bzh';
|
||||||
|
const SMTP_MAX_MESSAGES_PER_SESSION = 50;
|
||||||
const ROOT = __DIR__;
|
const ROOT = __DIR__;
|
||||||
|
|
||||||
const DB_FILE = DATA_ROOT . '/association.sqlite';
|
const DB_FILE = DATA_ROOT . '/association.sqlite';
|
||||||
|
|||||||
Binary file not shown.
BIN
dockers/paheko/config/facturation.zip.old
Normal file
BIN
dockers/paheko/config/facturation.zip.old
Normal file
Binary file not shown.
@@ -21,7 +21,7 @@ services:
|
|||||||
- "traefik.docker.network=peertubeNet"
|
- "traefik.docker.network=peertubeNet"
|
||||||
|
|
||||||
peertube:
|
peertube:
|
||||||
image: chocobozzz/peertube:production-bookworm
|
image: chocobozzz/peertube:production
|
||||||
container_name: ${peertubeServName}
|
container_name: ${peertubeServName}
|
||||||
restart: ${restartPolicy}
|
restart: ${restartPolicy}
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ services:
|
|||||||
- ../../secret/env-${pollarisServName}
|
- ../../secret/env-${pollarisServName}
|
||||||
environment:
|
environment:
|
||||||
APP_ENV: prod
|
APP_ENV: prod
|
||||||
|
APP_BASE_URL: https://${pollarisHost}.${domain}
|
||||||
networks:
|
networks:
|
||||||
- pollarisNet
|
- pollarisNet
|
||||||
- postfixNet
|
- postfixNet
|
||||||
@@ -30,6 +31,28 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
|
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
|
||||||
|
|
||||||
|
messenger:
|
||||||
|
build: .
|
||||||
|
container_name: pollarisMessenger
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- app
|
||||||
|
- db
|
||||||
|
env_file:
|
||||||
|
- ../../secret/env-${pollarisServName}
|
||||||
|
environment:
|
||||||
|
APP_ENV: prod
|
||||||
|
APP_BASE_URL: https://${pollarisHost}.${domain}
|
||||||
|
networks:
|
||||||
|
- pollarisNet
|
||||||
|
command: >
|
||||||
|
sh -c "
|
||||||
|
php /var/www/pollaris/bin/console messenger:consume async
|
||||||
|
--sleep=1
|
||||||
|
-vv
|
||||||
|
"
|
||||||
|
# --time-limit=3600
|
||||||
|
# --memory-limit=256M
|
||||||
volumes:
|
volumes:
|
||||||
pollaris_db_data:
|
pollaris_db_data:
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
reverse-proxy:
|
reverse-proxy:
|
||||||
image: traefik:v3.6.2
|
image: traefik:v3.6.7
|
||||||
container_name: ${traefikServName}
|
container_name: ${traefikServName}
|
||||||
restart: ${restartPolicy}
|
restart: ${restartPolicy}
|
||||||
# Enables the web UI and tells Traefik to listen to docker
|
# Enables the web UI and tells Traefik to listen to docker
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ services:
|
|||||||
vaultwarden:
|
vaultwarden:
|
||||||
image: vaultwarden/server
|
image: vaultwarden/server
|
||||||
container_name: ${vaultwardenServName}
|
container_name: ${vaultwardenServName}
|
||||||
|
hostname: ${vaultwardenHost}.${domain}
|
||||||
restart: ${restartPolicy}
|
restart: ${restartPolicy}
|
||||||
depends_on:
|
depends_on:
|
||||||
db:
|
db:
|
||||||
|
|||||||
@@ -7,3 +7,4 @@ LDAP_LDAPUI_PASSWORD=@@pass@@ldapui@@p@@
|
|||||||
LDAP_MATTERMOST_PASSWORD=@@pass@@ldapmm@@p@@
|
LDAP_MATTERMOST_PASSWORD=@@pass@@ldapmm@@p@@
|
||||||
LDAP_CLOUD_PASSWORD=@@pass@@ldapcloud@@p@@
|
LDAP_CLOUD_PASSWORD=@@pass@@ldapcloud@@p@@
|
||||||
LDAP_MOBILIZON_PASSWORD=@@pass@@ldapmobilizon@@p@@
|
LDAP_MOBILIZON_PASSWORD=@@pass@@ldapmobilizon@@p@@
|
||||||
|
LDAP_MASTODON_PASSWORD=@@pass@@ldapmastodon@@p@@
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
# POSTGRES_DB=
|
|
||||||
# POSTGRES_USER=
|
|
||||||
# POSTGRES_PASSWORD=
|
|
||||||
DATABASE_URL=
|
DATABASE_URL=
|
||||||
APP_SECRET=
|
APP_SECRET=
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user