From 366c019c0e918807b7e1971fc270c1f59df794b3 Mon Sep 17 00:00:00 2001 From: nom Date: Tue, 16 Jun 2026 19:54:34 +0200 Subject: [PATCH] =?UTF-8?q?pouvoir=20cr=C3=A9er=20le=20service=20webdav=20?= =?UTF-8?q?(sur=20un=20volume=20wp)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/gestContainers.sh | 2 +- bin2/gestContainers.sh | 2 +- config/dockers.tmpl.env | 3 +++ config/orgaTmpl/docker-compose.yml | 22 ++++++++++++++++++++++ config/orgaTmpl/orga-gen.sh | 22 +++++++++++++++++++++- 5 files changed, 48 insertions(+), 3 deletions(-) diff --git a/bin/gestContainers.sh b/bin/gestContainers.sh index 2599c86..cc0f399 100755 --- a/bin/gestContainers.sh +++ b/bin/gestContainers.sh @@ -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") diff --git a/bin2/gestContainers.sh b/bin2/gestContainers.sh index 2599c86..acd456b 100755 --- a/bin2/gestContainers.sh +++ b/bin2/gestContainers.sh @@ -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") diff --git a/config/dockers.tmpl.env b/config/dockers.tmpl.env index 71386b0..6d8a667 100644 --- a/config/dockers.tmpl.env +++ b/config/dockers.tmpl.env @@ -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 diff --git a/config/orgaTmpl/docker-compose.yml b/config/orgaTmpl/docker-compose.yml index f3f25e4..4c85fa5 100644 --- a/config/orgaTmpl/docker-compose.yml +++ b/config/orgaTmpl/docker-compose.yml @@ -229,6 +229,28 @@ 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}`)" +volumes: + +#}} diff --git a/config/orgaTmpl/orga-gen.sh b/config/orgaTmpl/orga-gen.sh index a54d1b7..30a05fd 100755 --- a/config/orgaTmpl/orga-gen.sh +++ b/config/orgaTmpl/orga-gen.sh @@ -5,6 +5,7 @@ #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 # 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}"