version: '3' services: #== SERVICES OUTILS ======================================================================================================================= # Nineapache # Reverse proxy de l'ensemble des services # Seul port ouvert sur l'exterieur nineapache: image: reg.cadoles.com/envole/nineapache:8.1 container_name: nine-nineapache restart: unless-stopped healthcheck: test: curl --fail http://localhost || exit 1 interval: 1s timeout: 60s env_file: ./tmp/.env.nineapache networks: - nine-network ports: - "80:80" volumes: - ./volume/nineapache/nine/apache.conf:/etc/apache2/conf.d/zapp.conf # Mariadb # Base de données des services # Port interne 3306 mariadb: image: docker.io/library/mariadb container_name: nine-mariadb restart: unless-stopped healthcheck: test: /nine/check.sh interval: 1s timeout: 60s env_file: ./tmp/.env.mariadb networks: - nine-network volumes: - ./volume/mariadb/mysql:/var/lib/mysql - ./volume/mariadb/nine:/nine # Redis # Base de données redis pour les services qui souhaitent stocker leur session en bdd # Port interne 6379 redis: image: redis:4.0 container_name: nine-redis environment: - TZ=Europe/Paris # Minio # Stocakge S3 # Port interne 9000 pour le stockage / Port interne 9001 pour l'interface web minio: image: minio/minio container_name: nine-minio restart: unless-stopped env_file: ./tmp/.env.minio networks: - nine-network volumes: - './volume/minio/data:/data' command: server /data --console-address ":9001" # Openldap # Annuaire # Port interne 1389 & 1636 openldap: image: docker.io/bitnami/openldap:2 container_name: nine-openldap restart: unless-stopped healthcheck: test: /nine/check.sh interval: 1s timeout: 60s env_file: ./tmp/.env.openldap networks: - nine-network volumes: - './volume/openldap/data:/bitnami/openldap' - './volume/openldap/nine:/nine' # Keycloak # serveur SSO # Port interne 8999 & 8443 keycloak: image: reg.cadoles.com/envole/keycloak:24.0.5 container_name: nine-keycloak restart: unless-stopped healthcheck: test: curl --fail http://127.0.0.1:9990 || exit 1 interval: 1s timeout: 60s env_file: ./tmp/.env.keycloak networks: - nine-network ports: - 8999:8999 - 8443:8443 volumes: - './volume/keycloak/nine:/nine' command: - start-dev - --import-realm #== SERVICES APPLICATIF ======================================================================================================================= # Nextcloud # Hébergement de fichiers et une plateforme de collaboration # Port interne 80 nextcloud: image: reg.cadoles.com/envole/nextcloud container_name: nine-nextcloud restart: unless-stopped healthcheck: test: curl --fail http://localhost || exit 1 interval: 1s timeout: 60s env_file: ./tmp/.env.nextcloud networks: - nine-network volumes: - ./volume/nextcloud/html:/var/www/html - ./volume/nextcloud/app:/var/www/html/custom_apps - ./volume/nextcloud/data:/var/www/html/data - ./volume/nextcloud/nine:/nine - ./volume/nextcloud/prestart:/docker-entrypoint-hooks.d/before-starting # Nineboard # Tableaux de bord collaboratif # Port interne 80 nineboard: image: reg.cadoles.com/envole/nineboard container_name: nine-nineboard restart: unless-stopped healthcheck: test: curl --fail http://localhost/nineboard || exit 1 interval: 1s timeout: 60s env_file: ./tmp/.env.nineboard networks: - nine-network volumes: - ./volume/nineboard/data/private:/app/uploads - ./volume/nineboard/data/public:/app/public/uploads # Ninegate # Portail collaboratif # Port interne 80 ninegate: image: reg.cadoles.com/envole/ninegate container_name: nine-ninegate restart: unless-stopped healthcheck: test: curl --fail http://localhost/ninegate || exit 1 interval: 1s timeout: 60s env_file: ./tmp/.env.ninegate networks: - nine-network volumes: - ./volume/ninegate/data/private:/app/uploads - ./volume/ninegate/data/public:/app/public/uploads # Wiki.js # Wiki # Port interne 3000 wiki: image: linuxserver/dokuwiki container_name: nine-wiki env_file: ./tmp/.env.wiki networks: - nine-network ports: - 9000:80 # Wordpress # Reseau de blog # Port interne 80 wordpress: image: reg.cadoles.com/envole/wordpress container_name: nine-wordpress restart: unless-stopped healthcheck: test: curl --fail http://localhost/wordpress || exit 1 interval: 1s timeout: 60s env_file: ./tmp/.env.wordpress networks: nine-network: aliases: - blog volumes: - ./volume/wordpress/data:/app/public/wp-content #== SERVIVES DEVELOPPEUR ================================================================================================================== # Adminer # Gestionnaire BDD # Port interne 8080 adminer: image: docker.io/library/adminer container_name: nine-adminer restart: unless-stopped env_file: ./tmp/.env.adminer networks: - nine-network ports: - 9100:8080 # Phpldapadmin # Gestionnaire Annuaire # Port interne 80 phpldapadmin: image: docker.io/osixia/phpldapadmin:latest container_name: nine-phpldapadmin restart: unless-stopped env_file: ./tmp/.env.phpldapadmin networks: - nine-network ports: - "9101:80" #== NETWORKS ============================================================================================================================== networks: nine-network: name: nine-network