bin
ldap
look
.applyTemplate-completion.bash
.commonFunctions.sh
.container-completion.bash
.dns-completion.bash
.foreign-domain-completion.bash
.gestContainers-completion.bash
.kazDockerNet-completion.bash
.kazList-completion.bash
.mvOrga2Nas-completion.bash
.orga-gen-completion.bash
.scriptBorg-completion.bash
.updateLook-completion.bash
applyTemplate.sh
checkEnvFiles.sh
checkEnvPassword.sh
cleanDepot.sh
configKaz.sh
configKaz.sh.templates
container.sh
createEmptyPasswd.sh
createSrcDocker.sh
createUser.sh
cron-cloud.sh
dns.sh
dns_alwaysdata.sh
dns_gandi.sh
dynDNS.sh
envoiMails.sh
foreign-domain.sh
gestContainers.sh
gestContainers_v2.sh
gestUsers.sh
getX509Certificates.sh
indicateurs.sh
init.sh
install.sh
installDepollueur.sh
interoPaheko.sh
iptables.sh
kazDockerNet.sh
kazList.sh
manageAgora.sh
manageCastopod.sh
manageCloud.sh
manageWiki.sh
manageWp.sh
migVersProdX.sh
migration.sh
mvOrga2Nas.sh
nettoie
nettoyer_acme_json_certifs.sh
nextcloud_maintenance.sh
postfix-superviz.sh
runAlertings.sh
sauve_memory.sh
sauve_serveur.sh
scriptBorg.sh
secretGen.sh
setOwner.sh
updateAllOrga.sh
updateDockerPassword.sh
updateGit.sh
updateLook.sh
upgradeDockerCompose.sh
verifExistenceMails.sh
vide_poubelle
config
dockers
secret.tmpl
.dummy
.gitignore
LICENSE
README.md
124 lines
5.0 KiB
Bash
Executable File
124 lines
5.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
KAZ_ROOT=$(cd $(dirname $0)/..; pwd)
|
|
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
|
|
setKazVars
|
|
|
|
# pour mise au point
|
|
# SIMU=echo
|
|
|
|
# Améliorations à prévoir
|
|
# - donner en paramètre les services concernés (pour limité les modifications)
|
|
# - pour les DB si on déclare un nouveau login, alors les privilèges sont créé mais les anciens pas révoqués
|
|
|
|
. "${DOCKERS_ENV}"
|
|
. "${KAZ_KEY_DIR}/SetAllPass.sh"
|
|
|
|
updateEnvDB(){
|
|
# $1 = prefix
|
|
# $2 = envName
|
|
# $3 = containerName of DB
|
|
rootPass="$1_MYSQL_ROOT_PASSWORD"
|
|
dbName="$1_MYSQL_DATABASE"
|
|
userName="$1_MYSQL_USER"
|
|
userPass="$1_MYSQL_PASSWORD"
|
|
|
|
${SIMU} sed -i \
|
|
-e "s/MYSQL_ROOT_PASSWORD=.*/MYSQL_ROOT_PASSWORD=${!rootPass}/g" \
|
|
-e "s/MYSQL_DATABASE=.*/MYSQL_DATABASE=${!dbName}/g" \
|
|
-e "s/MYSQL_USER=.*/MYSQL_USER=${!userName}/g" \
|
|
-e "s/MYSQL_PASSWORD=.*/MYSQL_PASSWORD=${!userPass}/g" \
|
|
"$2"
|
|
|
|
# seulement si pas de mdp pour root
|
|
# pb oeuf et poule (il faudrait les anciennes valeurs) :
|
|
# * si rootPass change, faire à la main
|
|
# * si dbName change, faire à la main
|
|
checkDockerRunning "$3" "$3" || return
|
|
echo "change DB pass on docker $3"
|
|
echo "grant all privileges on ${!dbName}.* to '${!userName}' identified by '${!userPass}';" | \
|
|
docker exec -i $3 bash -c "mysql --user=root --password=${!rootPass}"
|
|
}
|
|
|
|
updateEnv(){
|
|
# $1 = prefix
|
|
# $2 = envName
|
|
|
|
for varName in $(grep "^[a-zA-Z_]*=" $2 | sed "s/^\([^=]*\)=.*/\1/g")
|
|
do
|
|
srcName="$1_${varName}"
|
|
srcVal=$(echo "${!srcName}" | sed -e "s/[&]/\\\&/g")
|
|
${SIMU} sed -i \
|
|
-e "s%^[ ]*${varName}=.*\$%${varName}=${srcVal}%" \
|
|
"$2"
|
|
done
|
|
}
|
|
|
|
framadateUpdate(){
|
|
[[ "${COMP_ENABLE}" =~ " framadate " ]] || return
|
|
if [ ! -f "${DOCK_LIB}/volumes/framadate_dateConfig/_data/config.php" ]; then
|
|
return 0
|
|
fi
|
|
checkDockerRunning "${framadateServName}" "Framadate" &&
|
|
${SIMU} docker exec -ti "${framadateServName}" bash -c -i "htpasswd -bc /var/framadate/admin/.htpasswd ${framadate_HTTPD_USER} ${framadate_HTTPD_PASSWORD}"
|
|
${SIMU} sed -i \
|
|
-e "s/^#*const DB_USER[ ]*=.*$/const DB_USER= '${framadate_MYSQL_USER}';/g" \
|
|
-e "s/^#*const DB_PASSWORD[ ]*=.*$/const DB_PASSWORD= '${framadate_MYSQL_PASSWORD}';/g" \
|
|
"${DOCK_LIB}/volumes/framadate_dateConfig/_data/config.php"
|
|
}
|
|
|
|
jirafeauUpdate(){
|
|
[[ "${COMP_ENABLE}" =~ " jirafeau " ]] || return
|
|
if [ ! -f "${DOCK_LIB}/volumes/jirafeau_fileConfig/_data/config.local.php" ]; then
|
|
return 0
|
|
fi
|
|
SHA=$(echo -n "${jirafeau_HTTPD_PASSWORD}" | sha256sum | cut -d \ -f 1)
|
|
${SIMU} sed -i \
|
|
-e "s/'admin_password'[ ]*=>[ ]*'[^']*'/'admin_password' => '${SHA}'/g" \
|
|
"${DOCK_LIB}/volumes/jirafeau_fileConfig/_data/config.local.php"
|
|
}
|
|
|
|
####################
|
|
# main
|
|
|
|
updateEnvDB "etherpad" "${KAZ_KEY_DIR}/env-${etherpadDBName}" "${etherpadDBName}"
|
|
updateEnvDB "framadate" "${KAZ_KEY_DIR}/env-${framadateDBName}" "${framadateDBName}"
|
|
updateEnvDB "gitea" "${KAZ_KEY_DIR}/env-${gitDBName}" "${gitDBName}"
|
|
updateEnvDB "mattermost" "${KAZ_KEY_DIR}/env-${mattermostDBName}" "${mattermostDBName}"
|
|
updateEnvDB "nextcloud" "${KAZ_KEY_DIR}/env-${nextcloudDBName}" "${nextcloudDBName}"
|
|
updateEnvDB "roundcube" "${KAZ_KEY_DIR}/env-${roundcubeDBName}" "${roundcubeDBName}"
|
|
updateEnvDB "sympa" "${KAZ_KEY_DIR}/env-${sympaDBName}" "${sympaDBName}"
|
|
updateEnvDB "vigilo" "${KAZ_KEY_DIR}/env-${vigiloDBName}" "${vigiloDBName}"
|
|
updateEnvDB "wp" "${KAZ_KEY_DIR}/env-${wordpressDBName}" "${wordpressDBName}"
|
|
updateEnvDB "vaultwarden" "${KAZ_KEY_DIR}/env-${vaultwardenDBName}" "${vaultwardenDBName}"
|
|
updateEnvDB "castopod" "${KAZ_KEY_DIR}/env-${castopodDBName}" "${castopodDBName}"
|
|
|
|
updateEnv "apikaz" "${KAZ_KEY_DIR}/env-${apikazServName}"
|
|
updateEnv "ethercalc" "${KAZ_KEY_DIR}/env-${ethercalcServName}"
|
|
updateEnv "etherpad" "${KAZ_KEY_DIR}/env-${etherpadServName}"
|
|
updateEnv "framadate" "${KAZ_KEY_DIR}/env-${framadateServName}"
|
|
updateEnv "gandi" "${KAZ_KEY_DIR}/env-gandi"
|
|
updateEnv "gitea" "${KAZ_KEY_DIR}/env-${gitServName}"
|
|
updateEnv "jirafeau" "${KAZ_KEY_DIR}/env-${jirafeauServName}"
|
|
updateEnv "mattermost" "${KAZ_KEY_DIR}/env-${mattermostServName}"
|
|
updateEnv "nextcloud" "${KAZ_KEY_DIR}/env-${nextcloudServName}"
|
|
updateEnv "office" "${KAZ_KEY_DIR}/env-${officeServName}"
|
|
updateEnv "roundcube" "${KAZ_KEY_DIR}/env-${roundcubeServName}"
|
|
updateEnv "vigilo" "${KAZ_KEY_DIR}/env-${vigiloServName}"
|
|
updateEnv "wp" "${KAZ_KEY_DIR}/env-${wordpressServName}"
|
|
updateEnv "ldap" "${KAZ_KEY_DIR}/env-${ldapServName}"
|
|
updateEnv "sympa" "${KAZ_KEY_DIR}/env-${sympaServName}"
|
|
updateEnv "mail" "${KAZ_KEY_DIR}/env-${smtpServName}"
|
|
updateEnv "mobilizon" "${KAZ_KEY_DIR}/env-${mobilizonServName}"
|
|
updateEnv "mobilizon" "${KAZ_KEY_DIR}/env-${mobilizonDBName}"
|
|
updateEnv "vaultwarden" "${KAZ_KEY_DIR}/env-${vaultwardenServName}"
|
|
updateEnv "castopod" "${KAZ_KEY_DIR}/env-${castopodServName}"
|
|
updateEnv "ldap" "${KAZ_KEY_DIR}/env-${ldapUIName}"
|
|
updateEnv "peertube" "${KAZ_KEY_DIR}/env-${peertubeServName}"
|
|
updateEnv "peertube" "${KAZ_KEY_DIR}/env-${peertubeDBName}" "${peertubeDBName}"
|
|
|
|
|
|
framadateUpdate
|
|
jirafeauUpdate
|
|
exit 0
|