Nouveau service spip !
This commit is contained in:
@ -85,6 +85,7 @@ done
|
||||
-e "s|__VIGILO_HOST__|${vigiloHost}|g"\
|
||||
-e "s|__WEBMAIL_HOST__|${webmailHost}|g"\
|
||||
-e "s|__CASTOPOD_HOST__|${castopodHost}|g"\
|
||||
-e "s|__SPIP_HOST__|${spipHost}|g"\
|
||||
-e "s|__IMAPSYNC_HOST__|${imapsyncHost}|g"\
|
||||
-e "s|__YAKFORMS_HOST__|${yakformsHost}|g"\
|
||||
-e "s|__WORDPRESS_HOST__|${wordpressHost}|g"\
|
||||
|
@ -23,7 +23,7 @@ PRG=$(basename $0)
|
||||
# TEMPO_ACTION_STOP=2 # Lors de redémarrage avec tempo, on attend après le stop
|
||||
# TEMPO_ACTION_START=60 # Lors de redémarrage avec tempo, avant de reload le proxy
|
||||
|
||||
# DEFAULTCONTAINERS="cloud agora wp wiki office paheko castopod"
|
||||
# DEFAULTCONTAINERS="cloud agora wp wiki office paheko castopod spip"
|
||||
|
||||
# APPLIS_PAR_DEFAUT="tasks calendar contacts bookmarks mail richdocuments external drawio snappymail ransomware_protection" #rainloop richdocumentscode
|
||||
|
||||
@ -42,16 +42,16 @@ 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}" )
|
||||
DockerServNames=( [cloud]="${nextcloudServName}" [agora]="${mattermostServName}" [wiki]="${dokuwikiServName}" [wp]="${wordpressServName}" [office]="${officeServName}" [paheko]="${pahekoServName}" [castopod]="${castopodServName}" [spip]="${spipServName}" )
|
||||
|
||||
declare -A FilterLsVolume # Pour trouver quel volume appartient à quel container
|
||||
FilterLsVolume=( [cloud]="cloudMain" [agora]="matterConfig" [wiki]="wikiConf" [wp]="wordpress" [castopod]="castopodMedia" )
|
||||
FilterLsVolume=( [cloud]="cloudMain" [agora]="matterConfig" [wiki]="wikiConf" [wp]="wordpress" [castopod]="castopodMedia" [spip]="spip")
|
||||
|
||||
declare -A composeDirs # Le nom du repertoire compose pour le commun
|
||||
composeDirs=( [cloud]="cloud" [agora]="mattermost" [wiki]="dokuwiki" [office]="collabora" [paheko]="paheko" [castopod]="castopod" )
|
||||
composeDirs=( [cloud]="cloud" [agora]="mattermost" [wiki]="dokuwiki" [office]="collabora" [paheko]="paheko" [castopod]="castopod" [spip]="spip")
|
||||
|
||||
declare -A serviceNames # Le nom du du service dans le dockerfile d'orga
|
||||
serviceNames=( [cloud]="cloud" [agora]="agora" [wiki]="dokuwiki" [wp]="wordpress" [office]="collabora" [castopod]="castopod")
|
||||
serviceNames=( [cloud]="cloud" [agora]="agora" [wiki]="dokuwiki" [wp]="wordpress" [office]="collabora" [castopod]="castopod" [spip]="spip")
|
||||
|
||||
declare -A subScripts
|
||||
subScripts=( [cloud]="manageCloud.sh" [agora]="manageAgora.sh" [wiki]="manageWiki.sh" [wp]="manageWp.sh" [castopod]="manageCastopod.sh" )
|
||||
@ -93,6 +93,7 @@ CONTAINERS_TYPES
|
||||
-office Les collabora
|
||||
-paheko Le paheko
|
||||
-castopod Les castopod
|
||||
-spip Les spip
|
||||
|
||||
COMMANDES (on peut en mettre plusieurs dans l'ordre souhaité)
|
||||
-I|--install L'initialisation du container
|
||||
@ -551,6 +552,8 @@ for ARG in "$@"; do
|
||||
CONTAINERS_TYPES="${CONTAINERS_TYPES} paheko" ;;
|
||||
'-pod'|'--pod'|'-castopod'|'--castopod')
|
||||
CONTAINERS_TYPES="${CONTAINERS_TYPES} castopod" ;;
|
||||
'-spip')
|
||||
CONTAINERS_TYPES="${CONTAINERS_TYPES} spip" ;;
|
||||
'-t' )
|
||||
COMMANDS="${COMMANDS} RESTART-COMPOSE" ;;
|
||||
'-r' )
|
||||
|
@ -92,6 +92,7 @@ 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}"
|
||||
updateEnvDB "spip" "${KAZ_KEY_DIR}/env-${spipDBName}" "${spipDBName}"
|
||||
updateEnvDB "mastodon" "${KAZ_KEY_DIR}/env-${mastodonDBName}" "${mastodonDBName}"
|
||||
|
||||
updateEnv "apikaz" "${KAZ_KEY_DIR}/env-${apikazServName}"
|
||||
@ -114,6 +115,7 @@ 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 "spip" "${KAZ_KEY_DIR}/env-${spipServName}"
|
||||
updateEnv "ldap" "${KAZ_KEY_DIR}/env-${ldapUIName}"
|
||||
updateEnv "peertube" "${KAZ_KEY_DIR}/env-${peertubeServName}"
|
||||
updateEnv "peertube" "${KAZ_KEY_DIR}/env-${peertubeDBName}" "${peertubeDBName}"
|
||||
|
@ -4,3 +4,4 @@ collabora
|
||||
etherpad
|
||||
web
|
||||
imapsync
|
||||
spip
|
||||
|
@ -93,6 +93,7 @@ vaultwardenHost=koffre
|
||||
traefikHost=dashboard
|
||||
imapsyncHost=imapsync
|
||||
castopodHost=pod
|
||||
spipHost=spip
|
||||
mastodonHost=masto
|
||||
apikazHost=apikaz
|
||||
snappymailHost=snappymail
|
||||
@ -149,6 +150,8 @@ imapsyncServName=imapsyncServ
|
||||
castopodDBName=castopodDB
|
||||
castopodServName=castopodServ
|
||||
mastodonServName=mastodonServ
|
||||
spipDBName=spipDB
|
||||
spipServName=spipServ
|
||||
mastodonDBName=mastodonDB
|
||||
apikazServName=apikazServ
|
||||
|
||||
|
@ -216,6 +216,31 @@ services:
|
||||
- ../../secret/env-${castopodServName}
|
||||
command: --requirepass ${castopodRedisPassword}
|
||||
#}}
|
||||
#{{spip
|
||||
spip:
|
||||
image: ipeos/spip:4.4
|
||||
restart: ${restartPolicy}
|
||||
depends_on:
|
||||
- db
|
||||
links:
|
||||
- db
|
||||
env_file:
|
||||
- ../../secret/env-${spipServName}
|
||||
environment:
|
||||
- SPIP_AUTO_INSTALL=1
|
||||
- SPIP_DB_HOST=db
|
||||
- SPIP_SITE_ADDRESS=https://${orga}${spipHost}.${domain}
|
||||
expose:
|
||||
- 80
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.${orga}${spipServName}.rule=Host(`${orga}${spipHost}.${domain}`){{FOREIGN_SPIP}}"
|
||||
networks:
|
||||
- orgaNet
|
||||
volumes:
|
||||
- spip:/usr/src/spip
|
||||
#}}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -298,8 +323,13 @@ volumes:
|
||||
castopodCache:
|
||||
external: true
|
||||
name: orga_${orga}castopodCache
|
||||
|
||||
#}}
|
||||
#{{spip
|
||||
spip:
|
||||
external: true
|
||||
name: orga_${orga}spip
|
||||
#}}
|
||||
|
||||
|
||||
|
||||
networks:
|
||||
|
@ -68,6 +68,18 @@ GRANT ALL ON ${castopod_MYSQL_DATABASE}.* TO '${castopod_MYSQL_USER}'@'%' IDENTI
|
||||
|
||||
FLUSH PRIVILEGES;"
|
||||
;;
|
||||
'spip' )
|
||||
SQL="$SQL
|
||||
CREATE DATABASE IF NOT EXISTS ${spip_MYSQL_DATABASE};
|
||||
|
||||
DROP USER IF EXISTS '${spip_MYSQL_USER}';
|
||||
CREATE USER '${spip_MYSQL_USER}'@'%';
|
||||
|
||||
GRANT ALL ON ${spip_MYSQL_DATABASE}.* TO '${spip_MYSQL_USER}'@'%' IDENTIFIED BY '${spip_MYSQL_PASSWORD}';
|
||||
|
||||
FLUSH PRIVILEGES;"
|
||||
;;
|
||||
|
||||
|
||||
esac
|
||||
done
|
||||
|
@ -37,3 +37,7 @@ docker volume create --name=orga_${orga}wordpress
|
||||
docker volume create --name=orga_${orga}castopodCache
|
||||
docker volume create --name=orga_${orga}castopodMedia
|
||||
#}}
|
||||
#{{spip
|
||||
docker volume create --name=orga_${orga}spip
|
||||
#}}
|
||||
|
||||
|
@ -20,7 +20,7 @@ STAGE_CREATE=
|
||||
STAGE_INIT=
|
||||
|
||||
usage(){
|
||||
echo "Usage: $0 [-h] [-l] [+/-paheko] [-/+cloud [-/+collabora}]] [+/-agora] [+/-wiki] [+/-wp] [+/-pod] [x{G/M/k}] OrgaName"
|
||||
echo "Usage: $0 [-h] [-l] [+/-paheko] [-/+cloud [-/+collabora}]] [+/-agora] [+/-wiki] [+/-wp] [+/-pod] [+/-spip] [x{G/M/k}] OrgaName"
|
||||
echo " -h|--help : this help"
|
||||
echo " -l|--list : list service"
|
||||
|
||||
@ -34,6 +34,7 @@ usage(){
|
||||
echo " +/- wiki : on/off wiki"
|
||||
echo " +/- wp|word* : on/off wp"
|
||||
echo " +/- casto*|pod : on/off castopod"
|
||||
echo " +/- spip : on/off spip"
|
||||
echo " x[GMk] : set quota"
|
||||
echo " OrgaName : name must contain a-z0-9_\-"
|
||||
}
|
||||
@ -141,6 +142,7 @@ 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 castopod=$(flagInCompose docker-compose.yml castopod: off)
|
||||
export spip=$(flagInCompose docker-compose.yml spip: off)
|
||||
export db="off"
|
||||
export services="off"
|
||||
export paheko=$([[ -f usePaheko ]] && echo "on" || echo "off")
|
||||
@ -159,7 +161,7 @@ INITCMD2="--install"
|
||||
for ARG in "$@"; do
|
||||
case "${ARG}" in
|
||||
'-show' )
|
||||
for i in cloud collabora agora wiki wp castopod db; do
|
||||
for i in cloud collabora agora wiki wp castopod spip db; do
|
||||
echo "${i}=${!i}"
|
||||
done
|
||||
exit;;
|
||||
@ -225,6 +227,11 @@ for ARG in "$@"; do
|
||||
DBaInitialiser="$DBaInitialiser castopod"
|
||||
INITCMD2="$INITCMD2 -pod"
|
||||
;;
|
||||
'+spip' )
|
||||
spip="on"
|
||||
DBaInitialiser="$DBaInitialiser spip"
|
||||
;;
|
||||
|
||||
[.0-9]*[GMk] )
|
||||
quota="${ARG}"
|
||||
;;
|
||||
@ -304,6 +311,13 @@ if [[ "${castopod}" = "on" ]]; then
|
||||
else
|
||||
DEL_DOMAIN+="${ORGA}-${castopodHost} "
|
||||
fi
|
||||
if [[ "${spip}" = "on" ]]; then
|
||||
DOMAIN_AREA+=" - ${ORGA}-\${spipServName}:${ORGA}-\${spipHost}.\${domain}\n"
|
||||
ADD_DOMAIN+="${ORGA}-${spipHost} "
|
||||
else
|
||||
DEL_DOMAIN+="${ORGA}-${spipHost} "
|
||||
fi
|
||||
|
||||
DOMAIN_AREA+="}}\n"
|
||||
|
||||
if [[ -n "${STAGE_DEFAULT}${STAGE_CREATE}" ]]; then
|
||||
@ -358,6 +372,9 @@ update() {
|
||||
sed "s/\([^ ]*\) ${ORGA};/ \|\| Host(\`\1\`)/" | tr -d "\r\n")
|
||||
FOREIGN_POD=$(grep " ${ORGA};" "${KAZ_CONF_PROXY_DIR}/pod_kaz_map" 2>/dev/null | \
|
||||
sed "s/\([^ ]*\) ${ORGA};/ \|\| Host(\`\1\`)/" | tr -d "\r\n")
|
||||
FOREIGN_SPIP=$(grep " ${ORGA};" "${KAZ_CONF_PROXY_DIR}/spip_kaz_map" 2>/dev/null | \
|
||||
sed "s/\([^ ]*\) ${ORGA};/ \|\| Host(\`\1\`)/" | tr -d "\r\n")
|
||||
|
||||
awk '
|
||||
BEGIN {cp=1}
|
||||
/#}}/ {cp=1 ; next};
|
||||
@ -371,6 +388,7 @@ update() {
|
||||
-e "s/{{FOREIGN_NC}}/${FOREIGN_NC}/"\
|
||||
-e "s/{{FOREIGN_DW}}/${FOREIGN_DW}/"\
|
||||
-e "s/{{FOREIGN_POD}}/${FOREIGN_POD}/"\
|
||||
-e "s/{{FOREIGN_SPIP}}/${FOREIGN_SPIP}/"\
|
||||
-e "s|\${orga}|${ORGA}-|g"
|
||||
) > "$2"
|
||||
sed "s/storage_opt:.*/storage_opt: ${quota}/g" -i "$2"
|
||||
|
42
dockers/spip/docker-compose.yml
Normal file
42
dockers/spip/docker-compose.yml
Normal file
@ -0,0 +1,42 @@
|
||||
services:
|
||||
db:
|
||||
image: mariadb:11.4
|
||||
container_name: ${spipDBName}
|
||||
restart: ${restartPolicy}
|
||||
env_file:
|
||||
- ../../secret/env-${spipDBName}
|
||||
volumes:
|
||||
- spipDB:/var/lib/mysql
|
||||
networks:
|
||||
- spipNet
|
||||
|
||||
spip:
|
||||
image: ipeos/spip:4.4
|
||||
restart: ${restartPolicy}
|
||||
container_name: ${spipServName}
|
||||
env_file:
|
||||
- ../../secret/env-${spipServName}
|
||||
links:
|
||||
- db:mysql
|
||||
environment:
|
||||
- SPIP_AUTO_INSTALL=1
|
||||
- SPIP_DB_HOST=${spipDBName}
|
||||
- SPIP_SITE_ADDRESS=https://${spipHost}.${domain}
|
||||
expose:
|
||||
- 80
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.${spipServName}.rule=Host(`${spipHost}.${domain}`)"
|
||||
networks:
|
||||
- spipNet
|
||||
volumes:
|
||||
- spipData:/usr/src/spip
|
||||
|
||||
volumes:
|
||||
spipDB:
|
||||
spipData:
|
||||
|
||||
networks:
|
||||
spipNet:
|
||||
external: true
|
||||
name: spipNet
|
@ -113,6 +113,9 @@ services:
|
||||
{{peertube
|
||||
- peertubeNet
|
||||
}}
|
||||
{{spip
|
||||
- spipNet
|
||||
}}
|
||||
|
||||
#### BEGIN ORGA USE_NET
|
||||
#### END ORGA USE_NET
|
||||
@ -226,6 +229,11 @@ networks:
|
||||
external:true
|
||||
name:peertubeNet
|
||||
}}
|
||||
{{spip
|
||||
spipNet:
|
||||
external:true
|
||||
name:spipNet
|
||||
}}
|
||||
|
||||
|
||||
#### BEGIN ORGA DEF_NET
|
||||
|
@ -303,6 +303,24 @@ castopod_CP_EMAIL_SMTP_PASSWORD=
|
||||
castopod_CP_EMAIL_FROM=noreply@${domain}
|
||||
castopod_CP_EMAIL_SMTP_CRYPTO=tls
|
||||
|
||||
|
||||
#####################
|
||||
# Spip
|
||||
spip_MYSQL_ROOT_PASSWORD="--clean_val--"
|
||||
spip_MYSQL_DATABASE="--clean_val--"
|
||||
spip_MYSQL_USER="--clean_val--"
|
||||
spip_MYSQL_PASSWORD="--clean_val--"
|
||||
spip_SPIP_AUTO_INSTALL=1
|
||||
spip_SPIP_DB_SERVER=mysql
|
||||
spip_SPIP_DB_LOGIN="${spip_MYSQL_USER}"
|
||||
spip_SPIP_DB_PASS="${spip_MYSQL_PASSWORD}"
|
||||
spip_SPIP_DB_NAME="${spip_MYSQL_DATABASE}"
|
||||
spip_SPIP_ADMIN_NAME=admin
|
||||
spip_SPIP_ADMIN_LOGIN=admin
|
||||
spip_SPIP_ADMIN_EMAIL=admin@${domain}
|
||||
spip_SPIP_ADMIN_PASS="--clean_val--"
|
||||
spip_PHP_TIMEZONE="Europe/Paris"
|
||||
|
||||
#####################
|
||||
# Peertube
|
||||
peertube_POSTGRES_USER="--clean_val--"
|
||||
|
4
secret.tmpl/env-spipDB
Normal file
4
secret.tmpl/env-spipDB
Normal file
@ -0,0 +1,4 @@
|
||||
MYSQL_ROOT_PASSWORD=
|
||||
MYSQL_DATABASE=
|
||||
MYSQL_USER=
|
||||
MYSQL_PASSWORD=
|
10
secret.tmpl/env-spipServ
Normal file
10
secret.tmpl/env-spipServ
Normal file
@ -0,0 +1,10 @@
|
||||
SPIP_AUTO_INSTALL=1
|
||||
SPIP_DB_SERVER=mysql
|
||||
SPIP_DB_LOGIN=
|
||||
SPIP_DB_PASS=
|
||||
SPIP_DB_NAME=
|
||||
SPIP_ADMIN_NAME=
|
||||
SPIP_ADMIN_LOGIN=
|
||||
SPIP_ADMIN_EMAIL=
|
||||
SPIP_ADMIN_PASS=
|
||||
PHP_TIMEZONE=
|
Reference in New Issue
Block a user