KazV2/config/orgaTmpl/docker-compose.yml
2024-10-08 16:43:01 +02:00

309 lines
7.9 KiB
YAML

#{{services
services:
#}}
#{{db
db:
image: mariadb:11.4
container_name: ${orga}DB
#disk_quota: 10G
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: ${restartPolicy}
volumes:
- ./initdb.d:/docker-entrypoint-initdb.d:ro
- orgaDB:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
env_file:
- ../../secret/env-${nextcloudDBName}
# - ../../secret/env-${mattermostDBName}
- ../../secret/env-${wordpressDBName}
networks:
- orgaNet
healthcheck: # utilisé par init-db.sh pour la créa d'orga
#maridb10.5
#test: ["CMD", 'mysqladmin', 'ping', '-h', 'localhost', '-u', 'root', '-p$$MYSQL_ROOT_PASSWORD' ]
#maridb11.4
test: ["CMD", 'healthcheck.sh', '--su-mysql', '--connect', '--innodb_initialized']
interval: 30s
timeout: 30s
retries: 5
#}}
#{{cloud
cloud:
image: nextcloud
container_name: ${orga}${nextcloudServName}
#disk_quota: 10G
restart: ${restartPolicy}
networks:
- orgaNet
# - postfixNet
depends_on:
- db
#db:
# condition: service_healthy # on peut mais ca va ralentir le process
links:
- db
external_links:
- ${smtpServName}:${smtpHost}
labels:
- "traefik.enable=true"
- "traefik.http.routers.${orga}${nextcloudServName}.rule=Host(`${orga}${cloudHost}.${domain}`){{FOREIGN_NC}}"
- "traefik.http.routers.${orga}${nextcloudServName}.middlewares=nextcloud-redirectregex1@file,nextcloud-redirectregex2@file"
volumes:
- cloudMain:/var/www/html
- cloudData:/var/www/html/data
- cloudConfig:/var/www/html/config
- cloudApps:/var/www/html/apps
- cloudCustomApps:/var/www/html/custom_apps
- cloudThemes:/var/www/html/themes/
- cloudPhp:/usr/local/etc/php/conf.d/
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
env_file:
- ../../secret/env-${nextcloudServName}
- ../../secret/env-${nextcloudDBName}
environment:
- NEXTCLOUD_TRUSTED_DOMAINS=${orga}${cloudHost}.${domain}
- SMTP_HOST=${smtpHost}
- SMTP_PORT=25
- MAIL_DOMAIN=${domain}
#}}
#{{agora
agora:
build:
context: app
# uncomment following lines for team edition or change UID/GID
args:
- edition=team
- PUID=1000
- PGID=1000
container_name: ${orga}${mattermostServName}
#disk_quota: 10G
restart: ${restartPolicy}
# memory: 1G
networks:
- orgaNet
# - postfixNet
expose:
- ${matterPort}
depends_on:
- db
#db:
# condition: service_healthy # on peut mais ca va ralentir le process
links:
- db
external_links:
- ${smtpServName}:${smtpHost}.${domain}
volumes:
- matterConfig:/mattermost/config:rw
- matterData:/mattermost/data:rw
- matterLogs:/mattermost/logs:rw
- matterPlugins:/mattermost/plugins:rw
- matterClientPlugins:/mattermost/client/plugins:rw
- matterIcons:/mattermost/client/images:ro
- /etc/ssl:/etc/ssl:ro
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /etc/environment:/etc/environment:ro
env_file:
- ../../secret/env-${mattermostServName}
environment:
- VIRTUAL_HOST=${orga}${matterHost}.${domain}
# in case your config is not in default location
#- MM_CONFIG=/mattermost/config/config.json
labels:
- "traefik.enable=true"
- "traefik.http.routers.${orga}${mattermostServName}.rule=Host(`${orga}${matterHost}.${domain}`)"
#}}
#{{wp
wordpress:
image: wordpress
container_name: ${orga}${wordpressServName}
restart: ${restartPolicy}
networks:
- orgaNet
# - postfixNet
depends_on:
- db
#db:
# condition: service_healthy # on peut mais ca va ralentir le process
links:
- db
external_links:
- ${smtpServName}:${smtpHost}.${domain}
env_file:
- ../../secret/env-${wordpressServName}
environment:
- WORDPRESS_SMTP_HOST=${smtpHost}.${domain}
- WORDPRESS_SMTP_PORT=25
# - WORDPRESS_SMTP_USERNAME
# - WORDPRESS_SMTP_PASSWORD
# - WORDPRESS_SMTP_FROM=${orga}
- WORDPRESS_SMTP_FROM_NAME=${orga}
labels:
- "traefik.enable=true"
- "traefik.http.routers.${orga}${wordpressServName}.rule=Host(`${orga}${wordpressHost}.${domain}`){{FOREIGN_WP}}"
volumes:
- wordpress:/var/www/html
# - ../../config/orgaTmpl/wp:/usr/local/bin/wp:ro
#}}
#{{wiki
dokuwiki:
image: mprasil/dokuwiki
container_name: ${orga}${dokuwikiServName}
#disk_quota: 10G
restart: ${restartPolicy}
labels:
- "traefik.enable=true"
- "traefik.http.routers.${orga}${dokuwikiServName}.rule=Host(`${orga}${dokuwikiHost}.${domain}`){{FOREIGN_DW}}"
volumes:
- wikiData:/dokuwiki/data
- wikiConf:/dokuwiki/conf
- wikiPlugins:/dokuwiki/lib/plugins
- wikiLibtpl:/dokuwiki/lib/tpl
- wikiLogs:/var/log
networks:
- orgaNet
# - postfixNet
external_links:
- ${smtpServName}:${smtpHost}.${domain}
#}}
#{{castopod
castopod:
image: castopod/castopod:latest
container_name: ${orga}${castopodServName}
#disk_quota: 10G
restart: ${restartPolicy}
# memory: 1G
networks:
- orgaNet
# - postfixNet
expose:
- 8000
depends_on:
- db
links:
- db
external_links:
- ${smtpServName}:${smtpHost}.${domain}
volumes:
- castopodMedia:/var/www/castopod/public/media
environment:
CP_BASEURL: "https://${orga}${castopodHost}.${domain}"
CP_ANALYTICS_SALT: qldsgfliuzrbhgmkjbdbmkvb
VIRTUAL_PORT: 8000
CP_CACHE_HANDLER: redis
CP_REDIS_HOST: redis
CP_DATABASE_HOSTNAME: db
env_file:
- ../../secret/env-${castopodServName}
- ../../secret/env-${castopodDBName}
labels:
- "traefik.enable=true"
- "traefik.http.routers.${orga}${castopodServName}.rule=Host(`${orga}${castopodHost}.${domain}`){{FOREIGN_POD}}"
redis:
image: redis:7.0-alpine
container_name: ${orga}castopodCache
volumes:
- castopodCache:/data
networks:
- orgaNet
env_file:
- ../../secret/env-${castopodServName}
command: --requirepass ${castopodRedisPassword}
#}}
#{{services
volumes:
#}}
#{{db
orgaDB:
external: true
name: orga_${orga}orgaDB
#}}
#{{agora
matterConfig:
external: true
name: orga_${orga}matterConfig
matterData:
external: true
name: orga_${orga}matterData
matterLogs:
external: true
name: orga_${orga}matterLogs
matterPlugins:
external: true
name: orga_${orga}matterPlugins
matterClientPlugins:
external: true
name: orga_${orga}matterClientPlugins
matterIcons:
external: true
name: matterIcons
#{{cloud
cloudMain:
external: true
name: orga_${orga}cloudMain
cloudData:
external: true
name: orga_${orga}cloudData
cloudConfig:
external: true
name: orga_${orga}cloudConfig
cloudApps:
external: true
name: orga_${orga}cloudApps
cloudCustomApps:
external: true
name: orga_${orga}cloudCustomApps
cloudThemes:
external: true
name: orga_${orga}cloudThemes
cloudPhp:
external: true
name: orga_${orga}cloudPhp
#}}
#{{wiki
wikiData:
external: true
name: orga_${orga}wikiData
wikiConf:
external: true
name: orga_${orga}wikiConf
wikiPlugins:
external: true
name: orga_${orga}wikiPlugins
wikiLibtpl:
external: true
name: orga_${orga}wikiLibtpl
wikiLogs:
external: true
name: orga_${orga}wikiLogs
#}}
#{{wp
wordpress:
external: true
name: orga_${orga}wordpress
#}}
#{{castopod
castopodMedia:
external: true
name: orga_${orga}castopodMedia
castopodCache:
external: true
name: orga_${orga}castopodCache
#}}
networks:
orgaNet:
external: true
name: ${orga}orgaNet
# postfixNet:
# external:
# name: postfixNet