Compare commits
24 Commits
fd1e6ff8a3
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| a2ca914b62 | |||
| f3fa9a33e5 | |||
| 6dd19e07a3 | |||
| c7c8d5be3c | |||
| d99bf81014 | |||
| 71ae93752a | |||
| 95d468913d | |||
| b1817e2c16 | |||
| 573c087b4d | |||
| 0dbe6115ca | |||
| eafa62ffb9 | |||
| 33f49eb78a | |||
| 421276dc83 | |||
| f219b2d339 | |||
| 1d822f66c9 | |||
| ff07c8aee7 | |||
| 598e215ed1 | |||
| ea9febcde0 | |||
| 51d57223c9 | |||
| bb4fefcdda | |||
| 47f708045e | |||
| fdd94bc9a1 | |||
| 366c019c0e | |||
| 7e0de9ee8b |
@@ -41,7 +41,7 @@ CONTAINERS_TYPES=
|
||||
|
||||
|
||||
declare -A DockerServNames # le nom des containers correspondant
|
||||
DockerServNames=( [cloud]="${nextcloudServName}" [agora]="${mattermostServName}" [wiki]="${dokuwikiServName}" [wp]="${wordpressServName}" [office]="${officeServName}" [paheko]="${pahekoServName}" [castopod]="${castopodServName}" [spip]="${spipServName}" )
|
||||
DockerServNames=( [cloud]="${nextcloudServName}" [agora]="${mattermostServName}" [wiki]="${dokuwikiServName}" [wp]="${wordpressServName}" [office]="${officeServName}" [paheko]="${pahekoServName}" [castopod]="${castopodServName}" [spip]="${spipServName}" [webdav]="${webdavServName}" )
|
||||
|
||||
declare -A FilterLsVolume # Pour trouver quel volume appartient à quel container
|
||||
FilterLsVolume=( [cloud]="cloudMain" [agora]="matterConfig" [wiki]="wikiConf" [wp]="wordpress" [castopod]="castopodMedia" [spip]="spip")
|
||||
|
||||
@@ -41,7 +41,7 @@ CONTAINERS_TYPES=
|
||||
|
||||
|
||||
declare -A DockerServNames # le nom des containers correspondant
|
||||
DockerServNames=( [cloud]="${nextcloudServName}" [agora]="${mattermostServName}" [wiki]="${dokuwikiServName}" [wp]="${wordpressServName}" [office]="${officeServName}" [paheko]="${pahekoServName}" [castopod]="${castopodServName}" [spip]="${spipServName}" )
|
||||
DockerServNames=( [cloud]="${nextcloudServName}" [agora]="${mattermostServName}" [wiki]="${dokuwikiServName}" [wp]="${wordpressServName}" [office]="${officeServName}" [paheko]="${pahekoServName}" [castopod]="${castopodServName}" [spip]="${spipServName}" [webdav]="${webdavServName}")
|
||||
|
||||
declare -A FilterLsVolume # Pour trouver quel volume appartient à quel container
|
||||
FilterLsVolume=( [cloud]="cloudMain" [agora]="matterConfig" [wiki]="wikiConf" [wp]="wordpress" [castopod]="castopodMedia" [spip]="spip")
|
||||
|
||||
@@ -94,9 +94,11 @@ traefikHost=dashboard
|
||||
vaultwardenHost=koffre
|
||||
vigiloHost=vigilo
|
||||
webHost=
|
||||
webdavHost=webdav
|
||||
webmailHost=webmail
|
||||
wordpressHost=wp
|
||||
|
||||
|
||||
########################################
|
||||
# ports internes
|
||||
|
||||
@@ -152,6 +154,7 @@ vaultwardenServName=vaultwardenServ
|
||||
vaultwardenDBName=vaultwardenDB
|
||||
vigiloServName=vigiloServ
|
||||
vigiloDBName=vigiloDB
|
||||
webdavServName=webdavServ
|
||||
webServName=webServ
|
||||
wordpressServName=wpServ
|
||||
wordpressDBName=wpDB
|
||||
|
||||
@@ -229,8 +229,26 @@ services:
|
||||
volumes:
|
||||
- spip:/usr/src/spip
|
||||
#}}
|
||||
|
||||
|
||||
#{{webdav
|
||||
webdav:
|
||||
image: httpd:2.4
|
||||
container_name: ${orga}-${webdavServName}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- orgaNet
|
||||
environment:
|
||||
#surcharge dans compose.override.yml
|
||||
- LDAP_USERS=
|
||||
- DOMAIN=${domain}
|
||||
- LDAP_ROOT=${ldap_root}
|
||||
volumes:
|
||||
- wordpress:/var/www/webdav
|
||||
- ./webdav-conf/httpd.conf:/usr/local/apache2/conf/httpd.conf:ro
|
||||
- ./webdav-conf/httpd-webdav.conf:/usr/local/apache2/conf/extra/httpd-webdav.conf:ro
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.${orga}-${webdavServName}.rule=Host(`${orga}-${webdavHost}.${domain}`)"
|
||||
#}}
|
||||
|
||||
|
||||
#{{services
|
||||
|
||||
+109
-2
@@ -5,7 +5,8 @@
|
||||
#KAN: ???
|
||||
|
||||
#MAJ le 04/06/2026 by fab: créer une entrée orga dans le dns pour simplifier les url (avec utilisation de compose-override.yml)
|
||||
|
||||
#MAJ le 16/06/2026 by fab: ajouter le menu +/-webdav
|
||||
#MAJ le 20/06/2026 by fab: générer le contenu du mail qui est à envoyer à l'orga après une création de service
|
||||
|
||||
# XXX pb arret des services retiré
|
||||
|
||||
@@ -40,8 +41,9 @@ usage(){
|
||||
echo " +/- matter*|agora : on/off agora"
|
||||
echo " +/- wiki : on/off wiki"
|
||||
echo " +/- wp|word* : on/off wp"
|
||||
echo " +/- webdav : on/off webdav"
|
||||
echo " +/- casto*|pod : on/off castopod"
|
||||
echo " +/- spip : on/off spip"
|
||||
echo " +/- spip : on/off spip"
|
||||
echo " x[GMk] : set quota"
|
||||
echo " OrgaName : name must contain a-z0-9_\-"
|
||||
}
|
||||
@@ -149,6 +151,7 @@ export collabora=$(flagInCompose docker-compose.yml collabora: off)
|
||||
export agora=$(flagInCompose docker-compose.yml agora: off)
|
||||
export wiki=$(flagInCompose docker-compose.yml dokuwiki: off)
|
||||
export wp=$(flagInCompose docker-compose.yml wordpress: off)
|
||||
export webdav=$(flagInCompose docker-compose.yml webdav: off)
|
||||
export castopod=$(flagInCompose docker-compose.yml castopod: off)
|
||||
export spip=$(flagInCompose docker-compose.yml spip: off)
|
||||
export db="off"
|
||||
@@ -202,6 +205,9 @@ for ARG in "$@"; do
|
||||
'-wp' | '-word'* )
|
||||
wp="off"
|
||||
;;
|
||||
'-webdav' )
|
||||
webdav="off"
|
||||
;;
|
||||
'-pod' | '-casto'* )
|
||||
castopod="off"
|
||||
;;
|
||||
@@ -233,6 +239,9 @@ for ARG in "$@"; do
|
||||
DBaInitialiser="$DBaInitialiser wp"
|
||||
INITCMD2="$INITCMD2 -wp"
|
||||
;;
|
||||
'+webdav' )
|
||||
webdav="on"
|
||||
;;
|
||||
'+pod' | '+casto'* )
|
||||
castopod="on"
|
||||
DBaInitialiser="$DBaInitialiser castopod"
|
||||
@@ -316,6 +325,12 @@ if [[ "${wp}" = "on" ]]; then
|
||||
else
|
||||
DEL_DOMAIN+="${ORGA}-${wordpressHost} "
|
||||
fi
|
||||
if [[ "${webdav}" = "on" ]]; then
|
||||
DOMAIN_AREA+=" - ${ORGA}-\${webdavServName}:${ORGA}-\${webdavHost}.\${domain}\n"
|
||||
ADD_DOMAIN+="${ORGA}-${webdavHost} "
|
||||
else
|
||||
DEL_DOMAIN+="${ORGA}-${webdavHost} "
|
||||
fi
|
||||
if [[ "${castopod}" = "on" ]]; then
|
||||
DOMAIN_AREA+=" - ${ORGA}-\${castopodServName}:${ORGA}-\${castopodHost}.\${domain}\n"
|
||||
ADD_DOMAIN+="${ORGA}-${castopodHost} "
|
||||
@@ -431,6 +446,8 @@ if [[ -n "${STAGE_DEFAULT}${STAGE_CREATE}" ]]; then
|
||||
ln -sf ../../config/orgaTmpl/wiki-conf/
|
||||
ln -sf ../../config/orgaTmpl/reload.sh
|
||||
ln -sf ../../config/orgaTmpl/init-db.sh
|
||||
ln -sf ../../config/orgaTmpl/webdav-conf/
|
||||
|
||||
fi
|
||||
|
||||
if [ ! -d "${KAZ_KEY_DIR}/orgas/$ORGA/" ]; then
|
||||
@@ -494,6 +511,9 @@ if [[ -n "${STAGE_DEFAULT}" ]]; then
|
||||
wp)
|
||||
DockerServName="${ORGA}-${wordpressServName}"
|
||||
;;
|
||||
webdav)
|
||||
DockerServName="${ORGA}-${webdavServName}"
|
||||
;;
|
||||
esac
|
||||
if checkDockerRunning "${DockerServName}" "${service}"; then
|
||||
printKazMsg " - stop ${service}"
|
||||
@@ -524,3 +544,90 @@ if [[ -n "${STAGE_DEFAULT}" ]]; then
|
||||
# ########## update status web page
|
||||
${KAZ_COMP_DIR}/web/web-gen.sh
|
||||
fi
|
||||
|
||||
##### DEBUT MAIL
|
||||
#construction du mail qui peut être envoyé à l'orga en cas de création de services
|
||||
|
||||
if [[ -n "${STAGE_DEFAULT}${STAGE_CREATE}" ]]; then
|
||||
|
||||
GREEN='\e[32m'
|
||||
RESET='\e[0m'
|
||||
|
||||
MAIL="Bonjour,
|
||||
|
||||
et hop ! voici les accès au(x) service(s) demandé(s):
|
||||
"
|
||||
|
||||
if [[ "${wp}" = "on" ]]; then
|
||||
MAIL_ADMIN=`grep WORDPRESS_ADMIN_USER /kaz/secret/orgas/${ORGA}/env-wpServ | cut -f2 -d=`
|
||||
MAIL_ADMIN_PASS=`grep WORDPRESS_ADMIN_PASSWORD /kaz/secret/orgas/${ORGA}/env-wpServ | cut -f2 -d=`
|
||||
|
||||
MAIL="$MAIL
|
||||
Site Web:
|
||||
adresse: https://${ORGA}-wp.kaz.bzh
|
||||
identifiant: ${MAIL_ADMIN}
|
||||
mot de passe: ${MAIL_ADMIN_PASS}
|
||||
|
||||
doc: https://wiki.kaz.bzh/wordpress/start
|
||||
La première chose à faire est de paramétrer ton site pour qu'il puisse envoyer des mails: https://wiki.kaz.bzh/wordpress/premiere_connexion
|
||||
|
||||
Si tu as envie d'avoir comme adresse de site , https://${ORGA}.kaz.bzh au lieu de https://${ORGA}-wp.kaz.bzh, fais nous signe !
|
||||
"
|
||||
fi
|
||||
|
||||
if [[ "${cloud}" = "on" ]]; then
|
||||
MAIL_ADMIN=`grep NEXTCLOUD_ADMIN_USER /kaz/secret/orgas/${ORGA}/env-nextcloudServ | cut -f2 -d=`
|
||||
MAIL_ADMIN_PASS=`grep NEXTCLOUD_ADMIN_PASSWORD /kaz/secret/orgas/${ORGA}/env-nextcloudServ | cut -f2 -d=`
|
||||
|
||||
MAIL="$MAIL
|
||||
Cloud:
|
||||
adresse: https://${ORGA}-cloud.kaz.bzh
|
||||
identifiant: ${MAIL_ADMIN}
|
||||
mot de passe: ${MAIL_ADMIN_PASS}
|
||||
|
||||
doc: https://wiki.kaz.bzh/nextcloud/start
|
||||
La première chose à faire est de paramétrer ton cloud pour qu'il puisse envoyer des mails: https://wiki.kaz.bzh/nextcloud/administration/start#pour_parametrer_l_envoi_des_mails_de_notification_depuis_votre_cloud
|
||||
"
|
||||
fi
|
||||
|
||||
if [[ "${paheko}" = "on" ]]; then
|
||||
MAIL_ADMIN_PASS=$(apg -n 1 -m 16 -M NCL)
|
||||
|
||||
MAIL="$MAIL
|
||||
Paheko:
|
||||
adresse: https://${ORGA}-paheko.kaz.bzh/admin/
|
||||
identifiant: ${GREEN}--mettre ici le mail de l'orga--${RESET}
|
||||
mot de passe: ${MAIL_ADMIN_PASS}
|
||||
|
||||
doc: https://wiki.kaz.bzh/paheko/start
|
||||
"
|
||||
fi
|
||||
|
||||
MAIL="$MAIL
|
||||
Pour tes prochaines questions, nous t'invitons à les poser sur notre agora, dans le canal \"Un soucis, une question\" sur
|
||||
https://agora.kaz.bzh/kaz/channels/une-question--un-soucis
|
||||
Il faut te connecter avec ton compte kaz.
|
||||
|
||||
Ainsi, tout le monde pourra répondre mais aussi bénéficier des réponses apportées. On la joue collectif.
|
||||
|
||||
Bonne journée 😉
|
||||
|
||||
L'équipe Sysadmin, pour la collégiale de Kaz."
|
||||
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}"
|
||||
echo "*****************************************************"
|
||||
echo "Voici le mail à copier/coller et à envoyer à l'orga :"
|
||||
echo "*****************************************************"
|
||||
echo -e "${RESET}"
|
||||
echo -e "$MAIL"
|
||||
echo -e "${GREEN}"
|
||||
echo "MAIS AVANT D'ENVOYER CE MAIL, IL FAUT :
|
||||
* completer la fiche paheko de l'orga en cochant les services crees"
|
||||
|
||||
if [[ "${paheko}" = "on" ]]; then
|
||||
echo " * lancer /kaz/dockers/paheko/docker-compose-gen.sh, restart le docker puis finir d'installer paheko en allant sur https://${ORGA}-paheko.kaz.bzh/admin/"
|
||||
fi
|
||||
echo -e ${RESET}
|
||||
##### FIN MAIL
|
||||
|
||||
@@ -54,6 +54,7 @@ OVERRIDE_FILE="compose.override.yml"
|
||||
# sauvegarde si le fichier existe déjà
|
||||
if [ -f "$OVERRIDE_FILE" ]; then
|
||||
cp "$OVERRIDE_FILE" "${OVERRIDE_FILE}.$(date +%Y%m%d-%H%M%S).bak"
|
||||
echo "'tention, un $OVERRIDE_FILE existe déjà, il vient d'être sauvegardé !"
|
||||
fi
|
||||
|
||||
#on récupère toutes les variables utiles
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
services:
|
||||
reverse-proxy:
|
||||
image: traefik:v3.7.1
|
||||
image: traefik:v3.7.5
|
||||
container_name: ${traefikServName}
|
||||
restart: ${restartPolicy}
|
||||
# Enables the web UI and tells Traefik to listen to docker
|
||||
|
||||
Reference in New Issue
Block a user