diff --git a/.gitignore b/.gitignore
index 2899076..77e75e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,14 +1,31 @@
**/.env.local
**/.env.merge
+/services/10-nineapache/volume/apache
+
/services/15-mariadb/volume/mysql
/services/30-minio/volume/data
/services/30-openldap/volume/data
-/services/50-ninegate/env/*.local
-/services/50-ninegate/env/*.merge
+/services/50-nextcloud/volume/data
+/services/50-nextcloud/volume/html
+/services/50-nextcloud/volume/app
+
+/services/50-nineboard/volume/data/private/*
+!/services/50-nineboard/volume/data/private/.gitkeep
+/services/50-nineboard/volume/data/public/*
+!/services/50-nineboard/volume/data/public/avatar
+/services/50-nineboard/volume/data/public/avatar/*
+!/services/50-nineboard/volume/data/public/avatar/admin.jpg
+!/services/50-nineboard/volume/data/public/avatar/noavatar.png
+!/services/50-nineboard/volume/data/public/avatar/system.jpg
+!/services/50-nineboard/volume/data/public/logo
+/services/50-nineboard/volume/data/public/logo/*
+!/services/50-nineboard/volume/data/public/logo/logo.png
+
+
/services/50-ninegate/volume/data/private/*
!/services/50-ninegate/volume/data/private/.gitkeep
/services/50-ninegate/volume/data/public/*
@@ -32,23 +49,9 @@
!/services/50-nineskeletor/volume/data/private/.gitkeep
/services/50-nineskeletor/volume/data/public/*
!/services/50-nineskeletor/volume/data/public/.gitkeep
+/services/50-nineskeletor/volume/apache
/services/50-wordpress/volume/data
-/volume/nextcloud/data
-/volume/nextcloud/html
-/volume/nextcloud/app
-
-/volume/nineboard/data/private/*
-!/volume/nineboard/data/private/.gitkeep
-/volume/nineboard/data/public/*
-!/volume/nineboard/data/public/avatar
-/volume/nineboard/data/public/avatar/*
-!/volume/nineboard/data/public/avatar/admin.jpg
-!/volume/nineboard/data/public/avatar/noavatar.png
-!/volume/nineboard/data/public/avatar/system.jpg
-!/volume/nineboard/data/public/logo
-/volume/nineboard/data/public/logo/*
-!/volume/nineboard/data/public/logo/logo.png
diff --git a/docker-compose.svg b/docker-compose.svg
deleted file mode 100644
index 1c2663a..0000000
--- a/docker-compose.svg
+++ /dev/null
@@ -1,248 +0,0 @@
-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
-
- # Nineskeletor
- # Portail collaboratif V2
- # Port interne 80
- nineskeletor:
- image: reg.cadoles.com/envole/nineskeletor
- container_name: nine-nineskeletor
- restart: unless-stopped
- healthcheck:
- test: curl --fail http://localhost/nineskeletor || exit 1
- interval: 1s
- timeout: 60s
- env_file: ./tmp/.env.nineskeletor
- networks:
- - nine-network
- volumes:
- - ./volume/nineskeletor/data/private:/app/uploads
- - ./volume/nineskeletor/data/public:/app/public/uploads
-
- # Wiki.js
- # Wiki
- # Port interne 3000
- wiki:
- image: linuxserver/dokuwiki
- container_name: nine-dokuwiki
- env_file: ./tmp/.env.dokuwiki
- 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
-
-
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index dc0bcc5..6740794 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -17,7 +17,7 @@ services:
ports:
- "80:80"
volumes:
- - ./services/10-nineapache/volume/nine/apache.conf:/etc/apache2/conf.d/zapp.conf
+ - ./services/10-nineapache/volume/apache:/etc/apache2/conf.d/nine
# Mariadb
# Base de données des services
@@ -81,6 +81,80 @@ services:
environment:
- TZ=Europe/Paris
+ # 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: ./services/40-keycloak/env/.env.merge
+ networks:
+ - nine-network
+ ports:
+ - 8999:8999
+ - 8443:8443
+ volumes:
+ - './volume/keycloak/nine:/nine'
+ command:
+ - start-dev
+ - --import-realm
+
+ # Dokuwiki
+ # Wiki
+ # Port interne 80
+ wiki:
+ image: linuxserver/dokuwiki
+ container_name: nine-dokuwiki
+ env_file: ./services/50-dokuwiki/env/.env.merge
+ networks:
+ - nine-network
+ ports:
+ - 9000:80
+
+ # 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: ./services/50-nextcloud/env/.env.merge
+ networks:
+ - nine-network
+ volumes:
+ - ./services/50-nextcloud/volume/html:/var/www/html
+ - ./services/50-nextcloud/volume/app:/var/www/html/custom_apps
+ - ./services/50-nextcloud/volume/data:/var/www/html/data
+ - ./services/50-nextcloud/volume/nine:/nine
+ - ./services/50-nextcloud/volume/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: ./services/50-nineboard/env/.env.merge
+ networks:
+ - nine-network
+ volumes:
+ - ./volume/nineboard/data/private:/app/uploads
+ - ./volume/nineboard/data/public:/app/public/uploads
+
# Ninegate
# Portail collaboratif
# Port interne 80
@@ -106,6 +180,7 @@ services:
networks:
- nine-network
volumes:
+ - ./services/50-nineskeletor/volume/apache:/etc/apache2/conf.d/nine
- ./services/50-nineskeletor/volume/data/private:/app/uploads
- ./services/50-nineskeletor/volume/data/public:/app/public/uploads
diff --git a/env/.env b/env/.env
index d165063..7d9ab77 100644
--- a/env/.env
+++ b/env/.env
@@ -60,11 +60,13 @@ MINIO_PORT=9000
MINIO_URL=${PROTOCOLE}://${WEB_URL}:9001
-# LDAP
+# OPENLDAP
# LDAP_SYNC Si MASTERIDENTITY = SQL permet la synchronisation des utilisateurs SQL vers LDAP
OPENLDAP_SERVICE_NAME=openldap
OPENLDAP_ACTIVATE=1
OPENLDAP_LOCAL=1
+
+# LDAP
LDAP_TYPE=LDAP
LDAP_HOST=${OPENLDAP_SERVICE_NAME}
LDAP_PORT=1389
@@ -95,10 +97,13 @@ OPENLDAPREQNIVEAU01="(&(uid=*)(objectclass=inetOrgPerson)(!(description=Computer
OPENLDAPSYNCHROGROUP=0
OPENLDAPREQGROUP=
-# CAS
+# KEYCLOAK
KEYCLOAK_SERVICE_NAME=keycloak
-CAS_ACTIVATE=1
-CAS_LOCAL=1
+KEYCLOAK_ACTIVATE=1
+KEYCLOAK_LOCAL=1
+
+# CAS
+CAS_ACTIVATE=${KEYCLOAK_ACTIVATE}
CAS_USER=${ADMIN_USER}-keycloak
CAS_PASSWORD=${ADMIN_PASSWORD}-keycloak
CAS_HOST=${WEB_URL}
diff --git a/misc/images/nineapache8/containers/nineapache/Dockerfile b/misc/images/nineapache8/containers/nineapache/Dockerfile
index 9ff3948..672b24a 100755
--- a/misc/images/nineapache8/containers/nineapache/Dockerfile
+++ b/misc/images/nineapache8/containers/nineapache/Dockerfile
@@ -61,7 +61,8 @@ RUN npm install -g yarn
COPY apache2.sh /etc/apache2/apache2.sh
RUN chmod +x /etc/apache2/apache2.sh
COPY php.local.ini /etc/php81/conf.d/
-COPY apache.conf /etc/apache2/conf.d/zapp.conf
+COPY httpd.conf /etc/apache2/httpd.conf
+COPY site.conf /etc/apache2/conf.d/nine/site.conf
COPY ssl.conf /etc/apache2/conf.d/ssl.conf
COPY index.php /app/public/index.php
diff --git a/misc/images/nineapache8/containers/nineapache/httpd.conf b/misc/images/nineapache8/containers/nineapache/httpd.conf
new file mode 100644
index 0000000..141b66f
--- /dev/null
+++ b/misc/images/nineapache8/containers/nineapache/httpd.conf
@@ -0,0 +1,483 @@
+#
+# This is the main Apache HTTP server configuration file. It contains the
+# configuration directives that give the server its instructions.
+# See for detailed information.
+# In particular, see
+#
+# for a discussion of each configuration directive.
+#
+# Do NOT simply read the instructions in here without understanding
+# what they do. They're here only as hints or reminders. If you are unsure
+# consult the online docs. You have been warned.
+#
+# Configuration and logfile names: If the filenames you specify for many
+# of the server's control files begin with "/" (or "drive:/" for Win32), the
+# server will use that explicit path. If the filenames do *not* begin
+# with "/", the value of ServerRoot is prepended -- so "logs/access_log"
+# with ServerRoot set to "/usr/local/apache2" will be interpreted by the
+# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log"
+# will be interpreted as '/logs/access_log'.
+
+#
+# ServerTokens
+# This directive configures what you return as the Server HTTP response
+# Header. The default is 'Full' which sends information about the OS-Type
+# and compiled in modules.
+# Set to one of: Full | OS | Minor | Minimal | Major | Prod
+# where Full conveys the most information, and Prod the least.
+#
+ServerTokens OS
+
+#
+# ServerRoot: The top of the directory tree under which the server's
+# configuration, error, and log files are kept.
+#
+# Do not add a slash at the end of the directory path. If you point
+# ServerRoot at a non-local disk, be sure to specify a local disk on the
+# Mutex directive, if file-based mutexes are used. If you wish to share the
+# same ServerRoot for multiple httpd daemons, you will need to change at
+# least PidFile.
+#
+ServerRoot /var/www
+
+#
+# Mutex: Allows you to set the mutex mechanism and mutex file directory
+# for individual mutexes, or change the global defaults
+#
+# Uncomment and change the directory if mutexes are file-based and the default
+# mutex file directory is not on a local disk or is not appropriate for some
+# other reason.
+#
+# Mutex default:/run/apache2
+
+#
+# Listen: Allows you to bind Apache to specific IP addresses and/or
+# ports, instead of the default. See also the
+# directive.
+#
+# Change this to Listen on specific IP addresses as shown below to
+# prevent Apache from glomming onto all bound IP addresses.
+#
+#Listen 12.34.56.78:80
+Listen 80
+
+#
+# Dynamic Shared Object (DSO) Support
+#
+# To be able to use the functionality of a module which was built as a DSO you
+# have to place corresponding `LoadModule' lines at this location so the
+# directives contained in it are actually available _before_ they are used.
+# Statically compiled modules (those listed by `httpd -l') do not need
+# to be loaded here.
+#
+# Example:
+# LoadModule foo_module modules/mod_foo.so
+#
+#LoadModule mpm_event_module modules/mod_mpm_event.so
+LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
+#LoadModule mpm_worker_module modules/mod_mpm_worker.so
+LoadModule authn_file_module modules/mod_authn_file.so
+#LoadModule authn_dbm_module modules/mod_authn_dbm.so
+#LoadModule authn_anon_module modules/mod_authn_anon.so
+#LoadModule authn_dbd_module modules/mod_authn_dbd.so
+#LoadModule authn_socache_module modules/mod_authn_socache.so
+LoadModule authn_core_module modules/mod_authn_core.so
+LoadModule authz_host_module modules/mod_authz_host.so
+LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
+LoadModule authz_user_module modules/mod_authz_user.so
+#LoadModule authz_dbm_module modules/mod_authz_dbm.so
+#LoadModule authz_owner_module modules/mod_authz_owner.so
+#LoadModule authz_dbd_module modules/mod_authz_dbd.so
+LoadModule authz_core_module modules/mod_authz_core.so
+LoadModule access_compat_module modules/mod_access_compat.so
+LoadModule auth_basic_module modules/mod_auth_basic.so
+#LoadModule auth_form_module modules/mod_auth_form.so
+#LoadModule auth_digest_module modules/mod_auth_digest.so
+#LoadModule allowmethods_module modules/mod_allowmethods.so
+#LoadModule file_cache_module modules/mod_file_cache.so
+#LoadModule cache_module modules/mod_cache.so
+#LoadModule cache_disk_module modules/mod_cache_disk.so
+#LoadModule cache_socache_module modules/mod_cache_socache.so
+#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
+#LoadModule socache_dbm_module modules/mod_socache_dbm.so
+#LoadModule socache_memcache_module modules/mod_socache_memcache.so
+#LoadModule socache_redis_module modules/mod_socache_redis.so
+#LoadModule watchdog_module modules/mod_watchdog.so
+#LoadModule macro_module modules/mod_macro.so
+#LoadModule dbd_module modules/mod_dbd.so
+#LoadModule dumpio_module modules/mod_dumpio.so
+#LoadModule echo_module modules/mod_echo.so
+#LoadModule buffer_module modules/mod_buffer.so
+#LoadModule data_module modules/mod_data.so
+#LoadModule ratelimit_module modules/mod_ratelimit.so
+LoadModule reqtimeout_module modules/mod_reqtimeout.so
+#LoadModule ext_filter_module modules/mod_ext_filter.so
+#LoadModule request_module modules/mod_request.so
+#LoadModule include_module modules/mod_include.so
+LoadModule filter_module modules/mod_filter.so
+#LoadModule reflector_module modules/mod_reflector.so
+#LoadModule substitute_module modules/mod_substitute.so
+#LoadModule sed_module modules/mod_sed.so
+#LoadModule charset_lite_module modules/mod_charset_lite.so
+#LoadModule deflate_module modules/mod_deflate.so
+#LoadModule brotli_module modules/mod_brotli.so
+LoadModule mime_module modules/mod_mime.so
+LoadModule log_config_module modules/mod_log_config.so
+#LoadModule log_debug_module modules/mod_log_debug.so
+#LoadModule log_forensic_module modules/mod_log_forensic.so
+#LoadModule logio_module modules/mod_logio.so
+LoadModule env_module modules/mod_env.so
+#LoadModule mime_magic_module modules/mod_mime_magic.so
+#LoadModule expires_module modules/mod_expires.so
+LoadModule headers_module modules/mod_headers.so
+#LoadModule usertrack_module modules/mod_usertrack.so
+#LoadModule unique_id_module modules/mod_unique_id.so
+LoadModule setenvif_module modules/mod_setenvif.so
+LoadModule version_module modules/mod_version.so
+#LoadModule remoteip_module modules/mod_remoteip.so
+#LoadModule session_module modules/mod_session.so
+#LoadModule session_cookie_module modules/mod_session_cookie.so
+#LoadModule session_crypto_module modules/mod_session_crypto.so
+#LoadModule session_dbd_module modules/mod_session_dbd.so
+#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
+#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so
+#LoadModule dialup_module modules/mod_dialup.so
+#LoadModule http2_module modules/mod_http2.so
+LoadModule unixd_module modules/mod_unixd.so
+#LoadModule heartbeat_module modules/mod_heartbeat.so
+#LoadModule heartmonitor_module modules/mod_heartmonitor.so
+LoadModule status_module modules/mod_status.so
+LoadModule autoindex_module modules/mod_autoindex.so
+#LoadModule asis_module modules/mod_asis.so
+#LoadModule info_module modules/mod_info.so
+#LoadModule suexec_module modules/mod_suexec.so
+
+ #LoadModule cgid_module modules/mod_cgid.so
+
+
+ #LoadModule cgi_module modules/mod_cgi.so
+
+#LoadModule vhost_alias_module modules/mod_vhost_alias.so
+#LoadModule negotiation_module modules/mod_negotiation.so
+LoadModule dir_module modules/mod_dir.so
+#LoadModule actions_module modules/mod_actions.so
+#LoadModule speling_module modules/mod_speling.so
+#LoadModule userdir_module modules/mod_userdir.so
+LoadModule alias_module modules/mod_alias.so
+#LoadModule rewrite_module modules/mod_rewrite.so
+
+LoadModule negotiation_module modules/mod_negotiation.so
+
+
+#
+# If you wish httpd to run as a different user or group, you must run
+# httpd as root initially and it will switch.
+#
+# User/Group: The name (or #number) of the user/group to run httpd as.
+# It is usually good practice to create a dedicated user and group for
+# running httpd, as with most system services.
+#
+User apache
+Group apache
+
+
+
+# 'Main' server configuration
+#
+# The directives in this section set up the values used by the 'main'
+# server, which responds to any requests that aren't handled by a
+# definition. These values also provide defaults for
+# any containers you may define later in the file.
+#
+# All of these directives may appear inside containers,
+# in which case these default settings will be overridden for the
+# virtual host being defined.
+#
+
+#
+# ServerAdmin: Your address, where problems with the server should be
+# e-mailed. This address appears on some server-generated pages, such
+# as error documents. e.g. admin@your-domain.com
+#
+ServerAdmin you@example.com
+
+#
+# Optionally add a line containing the server version and virtual host
+# name to server-generated pages (internal error documents, FTP directory
+# listings, mod_status and mod_info output etc., but not CGI generated
+# documents or custom error documents).
+# Set to "EMail" to also include a mailto: link to the ServerAdmin.
+# Set to one of: On | Off | EMail
+#
+ServerSignature On
+
+#
+# ServerName gives the name and port that the server uses to identify itself.
+# This can often be determined automatically, but we recommend you specify
+# it explicitly to prevent problems during startup.
+#
+# If your host doesn't have a registered DNS name, enter its IP address here.
+#
+#ServerName www.example.com:80
+
+#
+# Deny access to the entirety of your server's filesystem. You must
+# explicitly permit access to web content directories in other
+# blocks below.
+#
+
+ AllowOverride none
+ Require all denied
+
+
+#
+# Note that from this point forward you must specifically allow
+# particular features to be enabled - so if something's not working as
+# you might expect, make sure that you have specifically enabled it
+# below.
+#
+
+#
+# DocumentRoot: The directory out of which you will serve your
+# documents. By default, all requests are taken from this directory, but
+# symbolic links and aliases may be used to point to other locations.
+#
+DocumentRoot "/var/www/localhost/htdocs"
+
+ #
+ # Possible values for the Options directive are "None", "All",
+ # or any combination of:
+ # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
+ #
+ # Note that "MultiViews" must be named *explicitly* --- "Options All"
+ # doesn't give it to you.
+ #
+ # The Options directive is both complicated and important. Please see
+ # http://httpd.apache.org/docs/2.4/mod/core.html#options
+ # for more information.
+ #
+ Options Indexes FollowSymLinks
+
+ #
+ # AllowOverride controls what directives may be placed in .htaccess files.
+ # It can be "All", "None", or any combination of the keywords:
+ # AllowOverride FileInfo AuthConfig Limit
+ #
+ AllowOverride None
+
+ #
+ # Controls who can get stuff from this server.
+ #
+ Require all granted
+
+
+#
+# DirectoryIndex: sets the file that Apache will serve if a directory
+# is requested.
+#
+
+ DirectoryIndex index.html
+
+
+#
+# The following lines prevent .htaccess and .htpasswd files from being
+# viewed by Web clients.
+#
+
+ Require all denied
+
+
+#
+# ErrorLog: The location of the error log file.
+# If you do not specify an ErrorLog directive within a
+# container, error messages relating to that virtual host will be
+# logged here. If you *do* define an error logfile for a
+# container, that host's errors will be logged there and not here.
+#
+ErrorLog logs/error.log
+
+#
+# LogLevel: Control the number of messages logged to the error_log.
+# Possible values include: debug, info, notice, warn, error, crit,
+# alert, emerg.
+#
+LogLevel warn
+
+
+ #
+ # The following directives define some format nicknames for use with
+ # a CustomLog directive (see below).
+ #
+ LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+
+
+ # You need to enable mod_logio.c to use %I and %O
+ LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
+
+
+ #
+ # The location and format of the access logfile (Common Logfile Format).
+ # If you do not define any access logfiles within a
+ # container, they will be logged here. Contrariwise, if you *do*
+ # define per- access logfiles, transactions will be
+ # logged therein and *not* in this file.
+ #
+ #CustomLog logs/access.log common
+
+ #
+ # If you prefer a logfile with access, agent, and referer information
+ # (Combined Logfile Format) you can use the following directive.
+ #
+ CustomLog logs/access.log combined
+
+
+
+ #
+ # Redirect: Allows you to tell clients about documents that used to
+ # exist in your server's namespace, but do not anymore. The client
+ # will make a new request for the document at its new location.
+ # Example:
+ # Redirect permanent /foo http://www.example.com/bar
+
+ #
+ # Alias: Maps web paths into filesystem paths and is used to
+ # access content that does not live under the DocumentRoot.
+ # Example:
+ # Alias /webpath /full/filesystem/path
+ #
+ # If you include a trailing / on /webpath then the server will
+ # require it to be present in the URL. You will also likely
+ # need to provide a section to allow access to
+ # the filesystem path.
+
+ #
+ # ScriptAlias: This controls which directories contain server scripts.
+ # ScriptAliases are essentially the same as Aliases, except that
+ # documents in the target directory are treated as applications and
+ # run by the server when requested rather than as documents sent to the
+ # client. The same rules about trailing "/" apply to ScriptAlias
+ # directives as to Alias.
+ #
+ ScriptAlias /cgi-bin/ "/var/www/localhost/cgi-bin/"
+
+
+
+
+ #
+ # ScriptSock: On threaded servers, designate the path to the UNIX
+ # socket used to communicate with the CGI daemon of mod_cgid.
+ #
+ #Scriptsock cgisock
+
+
+#
+# "/var/www/localhost/cgi-bin" should be changed to whatever your ScriptAliased
+# CGI directory exists, if you have that configured.
+#
+
+ AllowOverride None
+ Options None
+ Require all granted
+
+
+
+ #
+ # Avoid passing HTTP_PROXY environment to CGI's on this or any proxied
+ # backend servers which have lingering "httpoxy" defects.
+ # 'Proxy' request header is undefined by the IETF, not listed by IANA
+ #
+ RequestHeader unset Proxy early
+
+
+
+ #
+ # TypesConfig points to the file containing the list of mappings from
+ # filename extension to MIME-type.
+ #
+ TypesConfig /etc/apache2/mime.types
+
+ #
+ # AddType allows you to add to or override the MIME configuration
+ # file specified in TypesConfig for specific file types.
+ #
+ #AddType application/x-gzip .tgz
+ #
+ # AddEncoding allows you to have certain browsers uncompress
+ # information on the fly. Note: Not all browsers support this.
+ #
+ #AddEncoding x-compress .Z
+ #AddEncoding x-gzip .gz .tgz
+ #
+ # If the AddEncoding directives above are commented-out, then you
+ # probably should define those extensions to indicate media types:
+ #
+ AddType application/x-compress .Z
+ AddType application/x-gzip .gz .tgz
+
+ #
+ # AddHandler allows you to map certain file extensions to "handlers":
+ # actions unrelated to filetype. These can be either built into the server
+ # or added with the Action directive (see below)
+ #
+ # To use CGI scripts outside of ScriptAliased directories:
+ # (You will also need to add "ExecCGI" to the "Options" directive.)
+ #
+ #AddHandler cgi-script .cgi
+
+ # For type maps (negotiated resources):
+ #AddHandler type-map var
+
+ #
+ # Filters allow you to process content before it is sent to the client.
+ #
+ # To parse .shtml files for server-side includes (SSI):
+ # (You will also need to add "Includes" to the "Options" directive.)
+ #
+ #AddType text/html .shtml
+ #AddOutputFilter INCLUDES .shtml
+
+
+#
+# The mod_mime_magic module allows the server to use various hints from the
+# contents of the file itself to determine its type. The MIMEMagicFile
+# directive tells the module where the hint definitions are located.
+#
+
+ MIMEMagicFile /etc/apache2/magic
+
+
+#
+# Customizable error responses come in three flavors:
+# 1) plain text 2) local redirects 3) external redirects
+#
+# Some examples:
+#ErrorDocument 500 "The server made a boo boo."
+#ErrorDocument 404 /missing.html
+#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
+#ErrorDocument 402 http://www.example.com/subscription_info.html
+#
+
+#
+# MaxRanges: Maximum number of Ranges in a request before
+# returning the entire resource, or one of the special
+# values 'default', 'none' or 'unlimited'.
+# Default setting is to accept 200 Ranges.
+#MaxRanges unlimited
+
+#
+# EnableMMAP and EnableSendfile: On systems that support it,
+# memory-mapping or the sendfile syscall may be used to deliver
+# files. This usually improves server performance, but must
+# be turned off when serving from networked-mounted
+# filesystems or if support for these functions is otherwise
+# broken on your system.
+# Defaults: EnableMMAP On, EnableSendfile Off
+#
+#EnableMMAP off
+#EnableSendfile on
+
+# Load config files from the config directory "/etc/apache2/conf.d".
+#
+IncludeOptional /etc/apache2/conf.d/*.conf
+IncludeOptional /etc/apache2/conf.d/nine/*.conf
diff --git a/misc/images/nineapache8/containers/nineapache/apache.conf b/misc/images/nineapache8/containers/nineapache/site.conf
similarity index 100%
rename from misc/images/nineapache8/containers/nineapache/apache.conf
rename to misc/images/nineapache8/containers/nineapache/site.conf
diff --git a/misc/tools/dicos.sh b/misc/tools/dicos.sh
new file mode 100755
index 0000000..4f03043
--- /dev/null
+++ b/misc/tools/dicos.sh
@@ -0,0 +1,37 @@
+ dir=$1
+
+ if [ -f "$dir/dicos/.env.dicos" ]; then
+ dicos="$dir/dicos/.env.dicos"
+
+ # Exporter la variable
+ while IFS='=' read -r key value; do
+ export "$key"="$value"
+ done < $dir/env/.env.merge
+
+ # Initialisation des tableaux
+ templates=()
+ destinations=()
+
+ # Lecture du fichier de configuration
+ while IFS='=' read -r key value; do
+ case "$key" in
+ templates)
+ IFS=',' read -ra templates <<< "$value"
+ ;;
+ destinations)
+ IFS=',' read -ra destinations <<< "$value"
+ ;;
+ *)
+ esac
+ done < "$dicos"
+
+ # Boucle sur les templates et leurs destinations
+ for i in "${!templates[@]}"; do
+ template="${templates[$i]}"
+ destination="${destinations[$i]}"
+
+ # Copier le template vers l'emplacement de destination
+ cp "$template" "$destination"
+ envsubst < "$destination" > temp.conf && mv temp.conf "$destination"
+ done
+ fi
\ No newline at end of file
diff --git a/nine.sh b/nine.sh
index 356a0fe..ba7023f 100755
--- a/nine.sh
+++ b/nine.sh
@@ -16,6 +16,9 @@ echo "services:" > docker-compose.yml
# Include service
declare -A services
for dir in $(ls -d "services"/[0-9][0-9]-* | sort); do
+ keyservice="${dir##*-}"
+ valueservice="${dir##*/}"
+
# Include bibliotheque de fonction
if [ -f "$dir/misc/nine.sh" ]; then
. $dir/misc/nine.sh
@@ -39,10 +42,16 @@ for dir in $(ls -d "services"/[0-9][0-9]-* | sort); do
# Construction .env.merge
mergeenv $dir/env/.env.merge env/.env.merge $dir/env/.env $dir/env/.env.local
+ # Construction conf apache
+ if [ -f "$dir/apache/apache.conf" ]; then
+ cp "$dir/apache/apache.conf" services/10-nineapache/volume/apache/$valueservice.conf
+ fi
+
+ # Templetisation
+ misc/tools/dicos.sh $dir
+
# Sauvegarder le service
- key="${dir##*-}"
- value="${dir##*/}"
- services["$key"]="$value"
+ services["$keyservice"]="$valueservice"
done
# Construction du docker-compose
@@ -92,85 +101,6 @@ wait_for_container() {
done;
}
-upservice(){
- docker-compose up -d --remove-orphans $1
- if [[ $2 == "wait" ]]
- then
- wait_for_container $1
- fi
-}
-
-function upkeycloak {
- if [[ $CAS_ACTIVATE == 1 && $CAS_LOCAL == 1 ]]
- then
- Title ${KEYCLOAK_SERVICE_NAME^^}
-
- # CREATE BDD
- if [[ $MARIADB_ACTIVATE == 1 && $MARIADB_LOCAL == 1 ]]
- then
- EchoVert "DATABASE"
- Echo ${KEYCLOAK_SERVICE_NAME^^}
- docker-compose exec $MARIADB_SERVICE_NAME /nine/init.sh $KEYCLOAK_SERVICE_NAME
- Echo
- fi
-
- EchoVert "CONTAINER"
- upservice $KEYCLOAK_SERVICE_NAME
- Echo
- fi
-}
-
-function updokuwiki {
- if [[ $DOKUWIKI_ACTIVATE == 1 && $DOKUWIKI_LOCAL == 1 ]]
- then
- Title ${DOKUWIKI_SERVICE_NAME^^}
-
- EchoVert "CONTAINER"
- upservice ${DOKUWIKI_SERVICE_NAME}
- Echo
- fi
-}
-
-function upnextcloud {
- if [[ $NEXTCLOUD_ACTIVATE == 1 && $NEXTCLOUD_LOCAL == 1 ]]
- then
- Title ${NEXTCLOUD_SERVICE_NAME^^}
-
- if [[ $MARIADB_ACTIVATE == 1 && $MARIADB_LOCAL == 1 ]]
- then
- EchoVert "DATABASE"
- Echo ${NEXTCLOUD_SERVICE_NAME^^}
- Echo
- docker-compose exec $MARIADB_SERVICE_NAME /nine/init.sh $NEXTCLOUD_SERVICE_NAME
- fi
-
- EchoVert "CONTAINER"
- upservice ${NEXTCLOUD_SERVICE_NAME}
- Echo
- fi
-
-}
-
-function upnineboard {
- if [[ $NINEBOARD_ACTIVATE == 1 && $NINEBOARD_LOCAL == 1 ]]
- then
- Title ${NINEBOARD_SERVICE_NAME^^}
-
- if [[ $MARIADB_ACTIVATE == 1 && $MARIADB_LOCAL == 1 ]]
- then
- EchoVert "DATABASE"
- Echo ${NINEBOARD_SERVICE_NAME^^}
- docker-compose exec $MARIADB_SERVICE_NAME /nine/init.sh $NINEBOARD_SERVICE_NAME
- Echo
- fi
-
- EchoVert "CONTAINER"
- upservice ${NINEBOARD_SERVICE_NAME}
- chmod -R a+wr ./volume/nineboard/data
- Echo
- fi
-}
-
#===========================================================================================================================================
#== UP =====================================================================================================================================
@@ -193,8 +123,16 @@ up(){
fi
}
+upservice(){
+ docker-compose up -d --remove-orphans $1
+ if [[ $2 == "wait" ]]
+ then
+ wait_for_container $1
+ fi
+}
+
#===========================================================================================================================================
-#== DESTROY ================================================================================================================================
+#== DESTROYALL =============================================================================================================================
#===========================================================================================================================================
destroyall(){
@@ -209,89 +147,7 @@ destroyall(){
fi
}
-#===========================================================================================================================================
-#== DESTROY ================================================================================================================================
-#===========================================================================================================================================
-#1 = service to destroy
-#2 = ne pas poser de questions
-#destroy(){
-# Title "DESTROY "${1^^}
-#
-# stop $1 1
-# docker-compose rm -s -v -f "$1"
-#
-#
-# if [[ "$1" == "$OPENLDAP_SERVICE_NAME" && $LDAP_ACTIVATE == 1 && $LDAP_LOCAL == 1 ]]
-# then
-# if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer l'annuaire associé à $1 ?";fi
-# if [[ "$?" = 0 || -z $2 ]]
-# then
-# EchoRouge Suppression
-# sudo rm -rf volume/openldap/data
-# fi
-# fi
-#
-# if [[ "$1" == "$KEYCLOAK_SERVICE_NAME" && $CAS_ACTIVATE == 1 && $CAS_LOCAL == 1 ]]
-# then
-# if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
-# if [[ "$?" = 0 || -z $2 ]]
-# then
-# docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $KEYCLOAK_SERVICE_NAME
-# fi
-# fi
-#
-# if [[ "$1" == "$DOKUWIKI_SERVICE_NAME" && $DOKUWIKI_ACTIVATE == 1 && $DOKUWIKI_LOCAL == 1 ]]
-# then
-# if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
-# if [[ "$?" = 0 || -z $2 ]]
-# then
-# docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $DOKUWIKI_SERVICE_NAME
-# sudo rm -rf volume/dokuwiki/data
-# fi
-# fi
-#
-# if [[ "$1" == "$NEXTCLOUD_SERVICE_NAME" && $NEXTCLOUD_ACTIVATE == 1 && $NEXTCLOUD_LOCAL == 1 ]]
-# then
-# if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ainsi que les fichiers utilisateurs ?";fi
-# if [[ "$?" = 0 || -z $2 ]]
-# then
-# docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $NEXTCLOUD_SERVICE_NAME
-# sudo rm -rf volume/nextcloud/data
-# sudo rm -rf volume/nextcloud/html
-# sudo rm -rf volume/nextcloud/app
-# fi
-# fi
-#
-# if [[ "$1" == "$NINEBOARD_SERVICE_NAME" && $NINEBOARD_ACTIVATE == 1 && $NINEBOARD_LOCAL == 1 ]]
-# then
-# if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
-# if [[ "$?" = 0 || -z $2 ]]
-# then
-# docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $NINEBOARD_SERVICE_NAME
-# fi
-# fi
-#
-# if [[ "$1" == "$NINESKELETOR_SERVICE_NAME" && $NINESKELETOR_ACTIVATE == 1 && $NINESKELETOR_LOCAL == 1 ]]
-# then
-# if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
-# if [[ "$?" = 0 || -z $2 ]]
-# then
-# docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $NINESKELETOR_SERVICE_NAME
-# fi
-# fi
-#
-# if [[ "$1" == "$WORDPRESS_SERVICE_NAME" && $WORDPRESS_ACTIVATE == 1 && $WORDPRESS_LOCAL == 1 ]]
-# then
-# if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
-# if [[ "$?" = 0 || -z $2 ]]
-# then
-# docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $WORDPRESS_SERVICE_NAME
-# sudo rm -rf volume/wordpress/data
-# fi
-# fi
-#}
-#
#===========================================================================================================================================
#== MAIN ===================================================================================================================================
#===========================================================================================================================================
diff --git a/services/10-nineapache/apache/apache.conf b/services/10-nineapache/apache/apache.conf
new file mode 100644
index 0000000..dce74e7
--- /dev/null
+++ b/services/10-nineapache/apache/apache.conf
@@ -0,0 +1,35 @@
+LoadModule rewrite_module modules/mod_rewrite.so
+
+ServerName nineapache.local
+
+# Options Proxy
+ProxyRequests Off
+ProxyPreserveHost On
+
+
+ Require all granted
+
+
+RequestHeader set X-Forwarded-Host "%{HTTP_HOST}s"
+RequestHeader set X-Forwarded-Server "%{HTTP_HOST}s"
+RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"
+RequestHeader set Host "%{HTTP_HOST}s"
+RequestHeader set X-Forwarded-Proto "http"
+
+# Page interne au proxy
+DocumentRoot "/app/public"
+
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+ RewriteEngine On
+ RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
+ RewriteRule .* - [E=BASE:%1]
+ RewriteCond %{HTTP:Authorization} .+
+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
+ RewriteCond %{ENV:REDIRECT_STATUS} =""
+ RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^ %{ENV:BASE}/index.php [L]
+
diff --git a/services/10-nineapache/dockercompose/dockercompose.yml b/services/10-nineapache/dockercompose/dockercompose.yml
index 8c15e1a..8bffea6 100644
--- a/services/10-nineapache/dockercompose/dockercompose.yml
+++ b/services/10-nineapache/dockercompose/dockercompose.yml
@@ -16,4 +16,4 @@
ports:
- "80:80"
volumes:
- - ./services/10-nineapache/volume/nine/apache.conf:/etc/apache2/conf.d/zapp.conf
+ - ./services/10-nineapache/volume/apache:/etc/apache2/conf.d/nine
diff --git a/services/10-nineapache/misc/nine.sh b/services/10-nineapache/misc/nine.sh
index fa559d3..8299c9d 100644
--- a/services/10-nineapache/misc/nine.sh
+++ b/services/10-nineapache/misc/nine.sh
@@ -17,7 +17,7 @@ function destroynineapache {
stop ${NINEAPACHE_SERVICE_NAME} 1
docker-compose rm -s -v -f "${NINEAPACHE_SERVICE_NAME}"
-
+ rm -rf services/10-nineapache/volume/apache
echo ""
fi
}
\ No newline at end of file
diff --git a/services/10-nineapache/volume/nine/apache.conf b/services/10-nineapache/volume/nine/apache.conf
deleted file mode 100755
index b6f0b85..0000000
--- a/services/10-nineapache/volume/nine/apache.conf
+++ /dev/null
@@ -1,84 +0,0 @@
-LoadModule rewrite_module modules/mod_rewrite.so
-
-ServerName nineapache.local
-
-# Options Proxy
-ProxyRequests Off
-ProxyPreserveHost On
-
-
- Require all granted
-
-
-RequestHeader set X-Forwarded-Host "%{HTTP_HOST}s"
-RequestHeader set X-Forwarded-Server "%{HTTP_HOST}s"
-RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"
-RequestHeader set Host "%{HTTP_HOST}s"
-RequestHeader set X-Forwarded-Proto "http"
-
-# Keycloak
-ProxyPass /auth http://keycloak:8999/auth retry=0 keepalive=On
-ProxyPassReverse /auth http://keycloak:8999/auth retry=0
-
-# Minio = pour l'instant je n'arrive pas à faire fonctionner la console minio derrière un proxy
-#ProxyPass /minio http://minio:9001 retry=0 keepalive=On
-#ProxyPassReverse /minio http://minio:9001 retry=0
-#RewriteEngine On
-#RewriteCond %{HTTP:Upgrade} =websocket [NC]
-#RewriteRule /minio/(.*) ws://minio:9001/$1 [P,L]
-#RewriteCond %{HTTP:Upgrade} !=websocket [NC]
-#RewriteRule /minio/(.*) http://minio:9001/$1 [P,L]
-
-# Nextcloud
-ProxyPass /nextcloud http://nextcloud retry=0 keepalive=On
-ProxyPassReverse /nextcloud http://nextcloud retry=0
-
-# Nineboard
-ProxyPass /nineboard http://nineboard/nineboard retry=0 keepalive=On
-ProxyPassReverse /nineboard http://nineboard/nineboard retry=0
-ProxyPass /wssnineboard ws://nineboard/wssnineboard retry=0 keepalive=On
-ProxyPassReverse /wssnineboard ws://nineboard/wssnineboard retry=0
-
-# Ninegate
-ProxyPass /ninegate http://ninegate/ninegate retry=0 keepalive=On
-ProxyPassReverse /ninegate http://ninegate/ninegate retry=0
-ProxyPass /wssninegate ws://ninegate/wssninegate retry=0 keepalive=On
-ProxyPassReverse /wssninegate ws://ninegate/wssninegate retry=0
-
-# Nineskeletor
-ProxyPass /nineskeletor http://nineskeletor/nineskeletor retry=0 keepalive=On
-ProxyPassReverse /nineskeletor http://nineskeletor/nineskeletor retry=0
-
-# Dokuwiki
-ProxyPass /dokuwiki http://dokuwiki retry=0 keepalive=On
-ProxyPassReverse /dokuwiki http://dokuwiki retry=0
-
-# Wordpress
-ProxyPass /wordpress http://wordpress/wordpress retry=0 keepalive=On
-ProxyPassReverse /wordpress http://wordpress/wordpress retry=0
-
-# Adminer
-ProxyPass /adminer http://adminer:8080 retry=0 keepalive=On
-ProxyPassReverse /adminer http://adminer:8080 retry=0
-
-# Phpldapadmin
-ProxyPass /phpldapadmin http://phpldapadmin/phpldapadmin retry=0 keepalive=On
-ProxyPassReverse /phpldapadmin http://phpldapadmin/phpldapadmin retry=0
-
-# Page interne au proxy
-DocumentRoot "/app/public"
-
- Options Indexes FollowSymLinks
- AllowOverride All
- Require all granted
-
- RewriteEngine On
- RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
- RewriteRule .* - [E=BASE:%1]
- RewriteCond %{HTTP:Authorization} .+
- RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
- RewriteCond %{ENV:REDIRECT_STATUS} =""
- RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteRule ^ %{ENV:BASE}/index.php [L]
-
diff --git a/services/15-mariadb/misc/nine.sh b/services/15-mariadb/misc/nine.sh
index f4d9ca5..ed04b9a 100644
--- a/services/15-mariadb/misc/nine.sh
+++ b/services/15-mariadb/misc/nine.sh
@@ -20,9 +20,13 @@ function destroymariadb(){
stop $MARIADB_SERVICE_NAME 1
docker-compose rm -s -v -f "$MARIADB_SERVICE_NAME"
- if [[ -z $1 ]]; then Question_ouinon "Souhaitez-vous supprimer l'ensemble des bases ?";fi
- if [[ "$?" = 0 || -z $1 ]]
+ if [[ -z $1 ]]; then
+ Question_ouinon "Souhaitez-vous supprimer l'ensemble des bases ?";
+ response=$?
+ fi
+ if [[ "$response" == 0 || ! -z $1 ]]
then
+ EchoRouge "Suppression de l'ensemble des bases"
sudo rm -rf services/15-mariadb/volume/mysql
fi
diff --git a/services/30-minio/apache/apache.conf b/services/30-minio/apache/apache.conf
new file mode 100644
index 0000000..eba0f73
--- /dev/null
+++ b/services/30-minio/apache/apache.conf
@@ -0,0 +1,9 @@
+
+# Minio = pour l'instant je n'arrive pas à faire fonctionner la console minio derrière un proxy
+#ProxyPass /minio http://minio:9001 retry=0 keepalive=On
+#ProxyPassReverse /minio http://minio:9001 retry=0
+#RewriteEngine On
+#RewriteCond %{HTTP:Upgrade} =websocket [NC]
+#RewriteRule /minio/(.*) ws://minio:9001/$1 [P,L]
+#RewriteCond %{HTTP:Upgrade} !=websocket [NC]
+#RewriteRule /minio/(.*) http://minio:9001/$1 [P,L]
diff --git a/services/30-minio/misc/nine.sh b/services/30-minio/misc/nine.sh
index c728936..dc38228 100644
--- a/services/30-minio/misc/nine.sh
+++ b/services/30-minio/misc/nine.sh
@@ -18,10 +18,14 @@ function destroyminio(){
stop $MINIO_SERVICE_NAME 1
docker-compose rm -s -v -f "$MINIO_SERVICE_NAME"
- if [[ -z $1 ]]; then Question_ouinon "Souhaitez-vous supprimer les fichiers stockés dans $MINIO_SERVICE_NAME ?";fi
- if [[ "$?" = 0 || -z $1 ]]
+ if [[ -z $1 ]]; then
+ Question_ouinon "Souhaitez-vous supprimer les fichiers stockés dans $MINIO_SERVICE_NAME ?";
+ response=$?
+ fi
+ if [[ "$response" == 0 || ! -z $1 ]]
then
- sudo rm -rf ./services/30-minio/volume/data
+ EchoRouge "Suppression des fichiers stockés sur $MINIO_SERVICE_NAME"
+ sudo rm -rf ./services/30-minio/volume/data
fi
echo ""
diff --git a/services/30-openldap/misc/nine.sh b/services/30-openldap/misc/nine.sh
index 0fb410f..b244848 100644
--- a/services/30-openldap/misc/nine.sh
+++ b/services/30-openldap/misc/nine.sh
@@ -22,11 +22,15 @@ function destroyopenldap {
stop $OPENLDAP_SERVICE_NAME 1
docker-compose rm -s -v -f "$OPENLDAP_SERVICE_NAME"
-
- if [[ -z $1 ]]; then Question_ouinon "Souhaitez-vous supprimer l'annuaire associé à $OPENLDAP_SERVICE_NAME ?";fi
- if [[ "$?" = 0 || -z $1 ]]
+
+ if [[ -z $1 ]]; then
+ Question_ouinon "Souhaitez-vous supprimer l'annuaire associé à $OPENLDAP_SERVICE_NAME ?";
+ response=$?
+ fi
+ if [[ "$response" == 0 || ! -z $1 ]]
then
- sudo rm -rf ./services/30-openldap/volume/data
+ EchoRouge "Suppression de l'annuaire"
+ rm -rf ./services/30-openldap/volume/data
fi
echo ""
diff --git a/services/40-keycloak/apache/apache.conf b/services/40-keycloak/apache/apache.conf
new file mode 100644
index 0000000..4d2fb69
--- /dev/null
+++ b/services/40-keycloak/apache/apache.conf
@@ -0,0 +1,4 @@
+
+# Keycloak
+ProxyPass /auth http://keycloak:8999/auth retry=0 keepalive=On
+ProxyPassReverse /auth http://keycloak:8999/auth retry=0
diff --git a/services/40-keycloak/dockercompose/dockercompose.yml b/services/40-keycloak/dockercompose/dockercompose.yml
new file mode 100644
index 0000000..455644f
--- /dev/null
+++ b/services/40-keycloak/dockercompose/dockercompose.yml
@@ -0,0 +1,23 @@
+
+ # 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: ./services/40-keycloak/env/.env.merge
+ networks:
+ - nine-network
+ ports:
+ - 8999:8999
+ - 8443:8443
+ volumes:
+ - './volume/keycloak/nine:/nine'
+ command:
+ - start-dev
+ - --import-realm
diff --git a/env/.env.zapp.keycloak b/services/40-keycloak/env/.env
similarity index 100%
rename from env/.env.zapp.keycloak
rename to services/40-keycloak/env/.env
diff --git a/services/40-keycloak/misc/nine.sh b/services/40-keycloak/misc/nine.sh
new file mode 100644
index 0000000..8f0ae38
--- /dev/null
+++ b/services/40-keycloak/misc/nine.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+function upkeycloak {
+ if [[ $KEYCLOAK_ACTIVATE == 1 && $KEYCLOAK_LOCAL == 1 ]]
+ then
+ Title ${KEYCLOAK_SERVICE_NAME^^}
+
+ # CREATE BDD
+ if [[ $MARIADB_ACTIVATE == 1 && $MARIADB_LOCAL == 1 ]]
+ then
+ EchoVert "DATABASE"
+ Echo ${KEYCLOAK_SERVICE_NAME^^}
+ docker-compose exec $MARIADB_SERVICE_NAME /nine/init.sh $KEYCLOAK_SERVICE_NAME
+ Echo
+ fi
+
+ EchoVert "CONTAINER"
+ upservice $KEYCLOAK_SERVICE_NAME
+ Echo
+ fi
+}
+
+function destroykeycloak {
+ if [[ $KEYCLOAK_LOCAL == 1 ]]
+ then
+ Title "DESTROY ${KEYCLOAK_SERVICE_NAME}"
+
+ stop ${KEYCLOAK_SERVICE_NAME} 1
+ docker-compose rm -s -v -f "${KEYCLOAK_SERVICE_NAME}"
+
+ if [[ -z $1 ]]; then
+ Question_ouinon "Souhaitez-vous supprimer la BDD associé à $KEYCLOAK_SERVICE_NAME ?";
+ response=$?
+ fi
+ if [[ "$response" == 0 || ! -z $1 ]]
+ then
+ EchoRouge "Delete BDD = $KEYCLOAK_SERVICE_NAME"
+ docker-compose exec $KEYCLOAK_SERVICE_NAME /nine/delete.sh $KEYCLOAK_SERVICE_NAME
+ fi
+
+ echo ""
+ fi
+}
\ No newline at end of file
diff --git a/volume/keycloak/nine/realm-export.json b/services/40-keycloak/volume/nine/realm-export.json
similarity index 100%
rename from volume/keycloak/nine/realm-export.json
rename to services/40-keycloak/volume/nine/realm-export.json
diff --git a/volume/keycloak/nine/server.crt.pem b/services/40-keycloak/volume/nine/server.crt.pem
similarity index 100%
rename from volume/keycloak/nine/server.crt.pem
rename to services/40-keycloak/volume/nine/server.crt.pem
diff --git a/volume/keycloak/nine/server.key.pem b/services/40-keycloak/volume/nine/server.key.pem
similarity index 100%
rename from volume/keycloak/nine/server.key.pem
rename to services/40-keycloak/volume/nine/server.key.pem
diff --git a/services/50-dokuwiki/apache/apache.conf b/services/50-dokuwiki/apache/apache.conf
new file mode 100644
index 0000000..1561047
--- /dev/null
+++ b/services/50-dokuwiki/apache/apache.conf
@@ -0,0 +1,5 @@
+
+# Dokuwiki
+ProxyPass /dokuwiki http://dokuwiki retry=0 keepalive=On
+ProxyPassReverse /dokuwiki http://dokuwiki retry=0
+
diff --git a/services/50-dokuwiki/dockercompose/dockercompose.yml b/services/50-dokuwiki/dockercompose/dockercompose.yml
new file mode 100644
index 0000000..2d77922
--- /dev/null
+++ b/services/50-dokuwiki/dockercompose/dockercompose.yml
@@ -0,0 +1,12 @@
+
+ # Dokuwiki
+ # Wiki
+ # Port interne 80
+ wiki:
+ image: linuxserver/dokuwiki
+ container_name: nine-dokuwiki
+ env_file: ./services/50-dokuwiki/env/.env.merge
+ networks:
+ - nine-network
+ ports:
+ - 9000:80
diff --git a/env/.env.zapp.dokuwiki b/services/50-dokuwiki/env/.env
similarity index 100%
rename from env/.env.zapp.dokuwiki
rename to services/50-dokuwiki/env/.env
diff --git a/services/50-dokuwiki/misc/nine.sh b/services/50-dokuwiki/misc/nine.sh
new file mode 100644
index 0000000..9adc558
--- /dev/null
+++ b/services/50-dokuwiki/misc/nine.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+function updokuwiki {
+ if [[ $DOKUWIKI_ACTIVATE == 1 && $DOKUWIKI_LOCAL == 1 ]]
+ then
+ Title ${DOKUWIKI_SERVICE_NAME^^}
+
+ EchoVert "CONTAINER"
+ upservice ${DOKUWIKI_SERVICE_NAME}
+ Echo
+ fi
+}
+
+function destroydokuwiki {
+ if [[ $DOKUWIKI_LOCAL == 1 ]]
+ then
+ Title "DESTROY ${DOKUWIKI_SERVICE_NAME}"
+
+ stop ${DOKUWIKI_SERVICE_NAME} 1
+ docker-compose rm -s -v -f "${DOKUWIKI_SERVICE_NAME}"
+
+ if [[ -z $1 ]]; then
+ Question_ouinon "Souhaitez-vous purger $DOKUWIKI_SERVICE_NAME ?";
+ response=$?
+ fi
+ if [[ "$response" == 0 || ! -z $1 ]]
+ then
+ EchoRouge "Purge = $DOKUWIKI_SERVICE_NAME"
+ rm -rf services/50-dokuwiki/volume/data
+ fi
+
+ echo ""
+ fi
+}
\ No newline at end of file
diff --git a/volume/dokuwiki/nine/config.yml b/services/50-dokuwiki/volume/nine/config.yml
similarity index 100%
rename from volume/dokuwiki/nine/config.yml
rename to services/50-dokuwiki/volume/nine/config.yml
diff --git a/services/50-nextcloud/apache/apache.conf b/services/50-nextcloud/apache/apache.conf
new file mode 100644
index 0000000..98d06c5
--- /dev/null
+++ b/services/50-nextcloud/apache/apache.conf
@@ -0,0 +1,5 @@
+
+# Nextcloud
+ProxyPass /nextcloud http://nextcloud retry=0 keepalive=On
+ProxyPassReverse /nextcloud http://nextcloud retry=0
+
diff --git a/services/50-nextcloud/dockercompose/dockercompose.yml b/services/50-nextcloud/dockercompose/dockercompose.yml
new file mode 100644
index 0000000..6b36918
--- /dev/null
+++ b/services/50-nextcloud/dockercompose/dockercompose.yml
@@ -0,0 +1,21 @@
+
+ # 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: ./services/50-nextcloud/env/.env.merge
+ networks:
+ - nine-network
+ volumes:
+ - ./services/50-nextcloud/volume/html:/var/www/html
+ - ./services/50-nextcloud/volume/app:/var/www/html/custom_apps
+ - ./services/50-nextcloud/volume/data:/var/www/html/data
+ - ./services/50-nextcloud/volume/nine:/nine
+ - ./services/50-nextcloud/volume/prestart:/docker-entrypoint-hooks.d/before-starting
diff --git a/env/.env.zapp.nextcloud b/services/50-nextcloud/env/.env
similarity index 100%
rename from env/.env.zapp.nextcloud
rename to services/50-nextcloud/env/.env
diff --git a/services/50-nextcloud/misc/nine.sh b/services/50-nextcloud/misc/nine.sh
new file mode 100644
index 0000000..26f1306
--- /dev/null
+++ b/services/50-nextcloud/misc/nine.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+function upnextcloud {
+ if [[ $NEXTCLOUD_ACTIVATE == 1 && $NEXTCLOUD_LOCAL == 1 ]]
+ then
+ Title ${NEXTCLOUD_SERVICE_NAME^^}
+
+ EchoVert "CONTAINER"
+ upservice ${NEXTCLOUD_SERVICE_NAME}
+ Echo
+ fi
+}
+
+function destroynextcloud {
+ if [[ $NEXTCLOUD_LOCAL == 1 ]]
+ then
+ Title "DESTROY ${NEXTCLOUD_SERVICE_NAME}"
+
+ stop ${NEXTCLOUD_SERVICE_NAME} 1
+ docker-compose rm -s -v -f "${NEXTCLOUD_SERVICE_NAME}"
+
+ if [[ -z $1 ]]; then
+ Question_ouinon "Souhaitez-vous purger $NEXTCLOUD_SERVICE_NAME ?";
+ response=$?
+ fi
+ if [[ "$response" == 0 || ! -z $1 ]]
+ then
+ EchoRouge "Purge = $NEXTCLOUD_SERVICE_NAME"
+ rm -rf services/50-nextcloud/volume/data
+ rm -rf services/50-nextcloud/volume/html
+ rm -rf services/50-nextcloud/volume/app
+ fi
+
+ echo ""
+ fi
+}
\ No newline at end of file
diff --git a/volume/nextcloud/nine/app/user_cas/CHANGELOG.md b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/CHANGELOG.md
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/CHANGELOG.md
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/CHANGELOG.md
diff --git a/volume/nextcloud/nine/app/user_cas/CONTRIBUTING.md b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/CONTRIBUTING.md
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/CONTRIBUTING.md
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/CONTRIBUTING.md
diff --git a/volume/nextcloud/nine/app/user_cas/LICENSE b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/LICENSE
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/LICENSE
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/LICENSE
diff --git a/volume/nextcloud/nine/app/user_cas/README.md b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/README.md
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/README.md
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/README.md
diff --git a/volume/nextcloud/nine/app/user_cas/appinfo/app.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/appinfo/app.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/appinfo/app.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/appinfo/app.php
diff --git a/volume/nextcloud/nine/app/user_cas/appinfo/info.xml b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/appinfo/info.xml
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/appinfo/info.xml
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/appinfo/info.xml
diff --git a/volume/nextcloud/nine/app/user_cas/appinfo/routes.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/appinfo/routes.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/appinfo/routes.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/appinfo/routes.php
diff --git a/volume/nextcloud/nine/app/user_cas/composer.json b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/composer.json
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/composer.json
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/composer.json
diff --git a/volume/nextcloud/nine/app/user_cas/composer.lock b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/composer.lock
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/composer.lock
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/composer.lock
diff --git a/volume/nextcloud/nine/app/user_cas/css/casError.css b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/css/casError.css
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/css/casError.css
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/css/casError.css
diff --git a/volume/nextcloud/nine/app/user_cas/css/casError.dev.css b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/css/casError.dev.css
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/css/casError.dev.css
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/css/casError.dev.css
diff --git a/volume/nextcloud/nine/app/user_cas/css/settings.css b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/css/settings.css
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/css/settings.css
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/css/settings.css
diff --git a/volume/nextcloud/nine/app/user_cas/css/settings.dev.css b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/css/settings.dev.css
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/css/settings.dev.css
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/css/settings.dev.css
diff --git a/volume/nextcloud/nine/app/user_cas/img/app.svg b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/img/app.svg
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/img/app.svg
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/img/app.svg
diff --git a/volume/nextcloud/nine/app/user_cas/img/cas-logo.png b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/img/cas-logo.png
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/img/cas-logo.png
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/img/cas-logo.png
diff --git a/volume/nextcloud/nine/app/user_cas/js/settings.dev.js b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/js/settings.dev.js
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/js/settings.dev.js
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/js/settings.dev.js
diff --git a/volume/nextcloud/nine/app/user_cas/js/settings.js b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/js/settings.js
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/js/settings.js
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/js/settings.js
diff --git a/volume/nextcloud/nine/app/user_cas/l10n/de.js b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/de.js
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/l10n/de.js
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/de.js
diff --git a/volume/nextcloud/nine/app/user_cas/l10n/de.json b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/de.json
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/l10n/de.json
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/de.json
diff --git a/volume/nextcloud/nine/app/user_cas/l10n/de/user_cas.po b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/de/user_cas.po
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/l10n/de/user_cas.po
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/de/user_cas.po
diff --git a/volume/nextcloud/nine/app/user_cas/l10n/fr.js b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/fr.js
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/l10n/fr.js
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/fr.js
diff --git a/volume/nextcloud/nine/app/user_cas/l10n/fr.json b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/fr.json
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/l10n/fr.json
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/fr.json
diff --git a/volume/nextcloud/nine/app/user_cas/l10n/fr/user_cas.po b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/fr/user_cas.po
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/l10n/fr/user_cas.po
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/fr/user_cas.po
diff --git a/volume/nextcloud/nine/app/user_cas/l10n/templates/user_cas.pot b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/templates/user_cas.pot
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/l10n/templates/user_cas.pot
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/l10n/templates/user_cas.pot
diff --git a/volume/nextcloud/nine/app/user_cas/lib/AppInfo/Application.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/AppInfo/Application.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/AppInfo/Application.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/AppInfo/Application.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Command/CreateUser.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Command/CreateUser.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Command/CreateUser.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Command/CreateUser.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Command/ImportUsersAd.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Command/ImportUsersAd.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Command/ImportUsersAd.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Command/ImportUsersAd.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Command/UpdateUser.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Command/UpdateUser.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Command/UpdateUser.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Command/UpdateUser.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Controller/AuthenticationController.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Controller/AuthenticationController.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Controller/AuthenticationController.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Controller/AuthenticationController.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Controller/SettingsController.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Controller/SettingsController.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Controller/SettingsController.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Controller/SettingsController.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Exception/PhpCas/PhpUserCasLibraryNotFoundException.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Exception/PhpCas/PhpUserCasLibraryNotFoundException.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Exception/PhpCas/PhpUserCasLibraryNotFoundException.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Exception/PhpCas/PhpUserCasLibraryNotFoundException.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Exception/UserCasException.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Exception/UserCasException.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Exception/UserCasException.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Exception/UserCasException.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Hooks/UserHooks.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Hooks/UserHooks.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Hooks/UserHooks.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Hooks/UserHooks.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Panels/Admin.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Panels/Admin.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Panels/Admin.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Panels/Admin.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Service/AppService.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/AppService.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Service/AppService.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/AppService.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Service/Import/AdImporter.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/Import/AdImporter.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Service/Import/AdImporter.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/Import/AdImporter.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Service/Import/ImporterInterface.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/Import/ImporterInterface.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Service/Import/ImporterInterface.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/Import/ImporterInterface.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Service/LoggingService.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/LoggingService.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Service/LoggingService.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/LoggingService.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Service/Merge/AdUserMerger.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/Merge/AdUserMerger.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Service/Merge/AdUserMerger.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/Merge/AdUserMerger.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Service/Merge/MergerInterface.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/Merge/MergerInterface.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Service/Merge/MergerInterface.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/Merge/MergerInterface.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/Service/UserService.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/UserService.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/Service/UserService.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/Service/UserService.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/User/Backend.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/User/Backend.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/User/Backend.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/User/Backend.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/User/NextBackend.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/User/NextBackend.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/User/NextBackend.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/User/NextBackend.php
diff --git a/volume/nextcloud/nine/app/user_cas/lib/User/UserCasBackendInterface.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/User/UserCasBackendInterface.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/lib/User/UserCasBackendInterface.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/lib/User/UserCasBackendInterface.php
diff --git a/volume/nextcloud/nine/app/user_cas/templates/admin.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/templates/admin.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/templates/admin.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/templates/admin.php
diff --git a/volume/nextcloud/nine/app/user_cas/templates/cas-error.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/templates/cas-error.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/templates/cas-error.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/templates/cas-error.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/autoload.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/autoload.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/autoload.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/autoload.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/composer/ClassLoader.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/ClassLoader.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/composer/ClassLoader.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/ClassLoader.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/composer/InstalledVersions.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/InstalledVersions.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/composer/InstalledVersions.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/InstalledVersions.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/composer/LICENSE b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/LICENSE
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/composer/LICENSE
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/LICENSE
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_classmap.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_classmap.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_classmap.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_classmap.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_files.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_files.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_files.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_files.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_namespaces.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_namespaces.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_namespaces.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_namespaces.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_psr4.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_psr4.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_psr4.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_psr4.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_real.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_real.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_real.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_real.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_static.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_static.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_static.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/autoload_static.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/composer/installed.json b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/installed.json
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/composer/installed.json
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/installed.json
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/composer/installed.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/installed.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/composer/installed.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/installed.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/composer/platform_check.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/platform_check.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/composer/platform_check.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/composer/platform_check.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/.gitignore b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/.gitignore
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/.gitignore
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/.gitignore
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/README.md b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/README.md
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/README.md
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/README.md
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/composer.json b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/composer.json
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/composer.json
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/composer.json
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/composer.lock b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/composer.lock
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/composer.lock
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/composer.lock
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/src/EcasPhpCASParser.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/src/EcasPhpCASParser.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/src/EcasPhpCASParser.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/ec-europa/ecas-phpcas-parser/src/EcasPhpCASParser.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/CAS.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/CAS.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/CAS.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/CAS.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/LICENSE b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/LICENSE
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/LICENSE
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/LICENSE
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/NOTICE b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/NOTICE
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/NOTICE
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/NOTICE
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/README.md b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/README.md
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/README.md
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/README.md
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/composer.json b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/composer.json
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/composer.json
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/composer.json
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/AuthenticationException.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/AuthenticationException.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/AuthenticationException.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/AuthenticationException.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Autoload.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Autoload.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Autoload.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Autoload.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Client.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Client.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Client.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Client.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/CookieJar.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/CookieJar.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/CookieJar.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/CookieJar.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Exception.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Exception.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Exception.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Exception.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/GracefullTerminationException.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/GracefullTerminationException.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/GracefullTerminationException.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/GracefullTerminationException.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/InvalidArgumentException.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/InvalidArgumentException.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/InvalidArgumentException.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/InvalidArgumentException.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Catalan.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Catalan.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Catalan.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Catalan.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/ChineseSimplified.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/ChineseSimplified.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/ChineseSimplified.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/ChineseSimplified.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/English.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/English.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/English.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/English.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/French.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/French.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/French.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/French.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Galego.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Galego.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Galego.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Galego.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/German.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/German.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/German.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/German.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Greek.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Greek.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Greek.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Greek.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Japanese.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Japanese.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Japanese.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Japanese.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/LanguageInterface.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/LanguageInterface.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/LanguageInterface.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/LanguageInterface.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Portuguese.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Portuguese.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Portuguese.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Portuguese.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Spanish.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Spanish.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Spanish.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Languages/Spanish.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceBeforeAuthenticationCallException.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceBeforeAuthenticationCallException.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceBeforeAuthenticationCallException.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceBeforeAuthenticationCallException.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceBeforeClientException.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceBeforeClientException.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceBeforeClientException.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceBeforeClientException.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceBeforeProxyException.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceBeforeProxyException.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceBeforeProxyException.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceBeforeProxyException.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceException.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceException.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceException.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/OutOfSequenceException.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/PGTStorage/AbstractStorage.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/PGTStorage/AbstractStorage.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/PGTStorage/AbstractStorage.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/PGTStorage/AbstractStorage.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/PGTStorage/Db.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/PGTStorage/Db.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/PGTStorage/Db.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/PGTStorage/Db.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/PGTStorage/File.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/PGTStorage/File.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/PGTStorage/File.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/PGTStorage/File.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Abstract.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Abstract.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Abstract.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Abstract.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Exception.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Exception.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Exception.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Exception.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http/Abstract.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http/Abstract.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http/Abstract.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http/Abstract.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http/Get.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http/Get.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http/Get.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http/Get.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http/Post.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http/Post.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http/Post.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Http/Post.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Imap.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Imap.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Imap.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Imap.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Testable.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Testable.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Testable.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxiedService/Testable.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/AllowedList.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/AllowedList.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/AllowedList.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/AllowedList.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/Any.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/Any.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/Any.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/Any.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/Interface.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/Interface.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/Interface.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/Interface.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/Trusted.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/Trusted.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/Trusted.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyChain/Trusted.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyTicketException.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyTicketException.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyTicketException.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ProxyTicketException.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/AbstractRequest.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/AbstractRequest.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/AbstractRequest.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/AbstractRequest.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/CurlMultiRequest.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/CurlMultiRequest.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/CurlMultiRequest.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/CurlMultiRequest.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/CurlRequest.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/CurlRequest.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/CurlRequest.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/CurlRequest.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/Exception.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/Exception.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/Exception.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/Exception.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/MultiRequestInterface.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/MultiRequestInterface.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/MultiRequestInterface.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/MultiRequestInterface.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/RequestInterface.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/RequestInterface.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/RequestInterface.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Request/RequestInterface.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/AllowedListDiscovery.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/AllowedListDiscovery.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/AllowedListDiscovery.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/AllowedListDiscovery.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/Base.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/Base.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/Base.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/Base.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/Interface.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/Interface.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/Interface.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/Interface.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/Static.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/Static.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/Static.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/ServiceBaseUrl/Static.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Session/PhpSession.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Session/PhpSession.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Session/PhpSession.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/Session/PhpSession.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/TypeMismatchException.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/TypeMismatchException.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/TypeMismatchException.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/jasig/phpcas/source/CAS/TypeMismatchException.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/psr/log/LICENSE b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/LICENSE
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/psr/log/LICENSE
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/LICENSE
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/psr/log/README.md b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/README.md
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/psr/log/README.md
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/README.md
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/psr/log/composer.json b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/composer.json
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/psr/log/composer.json
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/composer.json
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/AbstractLogger.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/AbstractLogger.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/AbstractLogger.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/AbstractLogger.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/InvalidArgumentException.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/InvalidArgumentException.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/InvalidArgumentException.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/InvalidArgumentException.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LogLevel.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LogLevel.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LogLevel.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LogLevel.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerAwareInterface.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerAwareInterface.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerAwareInterface.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerAwareInterface.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerAwareTrait.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerAwareTrait.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerAwareTrait.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerAwareTrait.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerInterface.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerInterface.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerInterface.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerInterface.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerTrait.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerTrait.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerTrait.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/LoggerTrait.php
diff --git a/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/NullLogger.php b/services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/NullLogger.php
similarity index 100%
rename from volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/NullLogger.php
rename to services/50-nextcloud/volume/nextcloud/nine/app/user_cas/vendor/psr/log/src/NullLogger.php
diff --git a/volume/nextcloud/prestart/prestart.sh b/services/50-nextcloud/volume/nextcloud/prestart/prestart.sh
similarity index 100%
rename from volume/nextcloud/prestart/prestart.sh
rename to services/50-nextcloud/volume/nextcloud/prestart/prestart.sh
diff --git a/services/50-nineboard/apache/apache.conf b/services/50-nineboard/apache/apache.conf
new file mode 100644
index 0000000..e1b4733
--- /dev/null
+++ b/services/50-nineboard/apache/apache.conf
@@ -0,0 +1,6 @@
+
+# Nineboard
+ProxyPass /nineboard http://nineboard/nineboard retry=0 keepalive=On
+ProxyPassReverse /nineboard http://nineboard/nineboard retry=0
+ProxyPass /wssnineboard ws://nineboard/wssnineboard retry=0 keepalive=On
+ProxyPassReverse /wssnineboard ws://nineboard/wssnineboard retry=0
diff --git a/services/50-nineboard/dockercompose/dockercompose.yml b/services/50-nineboard/dockercompose/dockercompose.yml
new file mode 100644
index 0000000..aa04906
--- /dev/null
+++ b/services/50-nineboard/dockercompose/dockercompose.yml
@@ -0,0 +1,18 @@
+
+ # 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: ./services/50-nineboard/env/.env.merge
+ networks:
+ - nine-network
+ volumes:
+ - ./volume/nineboard/data/private:/app/uploads
+ - ./volume/nineboard/data/public:/app/public/uploads
diff --git a/env/.env.zapp.nineboard b/services/50-nineboard/env/.env
similarity index 100%
rename from env/.env.zapp.nineboard
rename to services/50-nineboard/env/.env
diff --git a/services/50-nineboard/misc/nine.sh b/services/50-nineboard/misc/nine.sh
new file mode 100644
index 0000000..8ab2a51
--- /dev/null
+++ b/services/50-nineboard/misc/nine.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+function upnineboard {
+ if [[ $NINEBOARD_ACTIVATE == 1 && $NINEBOARD_LOCAL == 1 ]]
+ then
+ Title ${NINEBOARD_SERVICE_NAME^^}
+
+ EchoVert "CONTAINER"
+ upservice ${NINEBOARD_SERVICE_NAME}
+ Echo
+ fi
+}
+
+function destroynineboard {
+ if [[ $NINEBOARD_LOCAL == 1 ]]
+ then
+ Title "DESTROY ${NINEBOARD_SERVICE_NAME}"
+
+ stop ${NINEBOARD_SERVICE_NAME} 1
+ docker-compose rm -s -v -f "${NINEBOARD_SERVICE_NAME}"
+
+ if [[ -z $1 ]]; then
+ Question_ouinon "Souhaitez-vous purger $NINEBOARD_SERVICE_NAME ?";
+ response=$?
+ fi
+ if [[ "$response" == 0 || ! -z $1 ]]
+ then
+ EchoRouge "Purge = $NINEBOARD_SERVICE_NAME"
+ rm -rf services/50-nineboard/volume/data
+ fi
+
+ echo ""
+ fi
+}
\ No newline at end of file
diff --git a/services/50-ninegate/apache/apache.conf b/services/50-ninegate/apache/apache.conf
new file mode 100644
index 0000000..1b7c79d
--- /dev/null
+++ b/services/50-ninegate/apache/apache.conf
@@ -0,0 +1,6 @@
+
+# Ninegate
+ProxyPass /ninegate http://ninegate/ninegate retry=0 keepalive=On
+ProxyPassReverse /ninegate http://ninegate/ninegate retry=0
+ProxyPass /wssninegate ws://ninegate/wssninegate retry=0 keepalive=On
+ProxyPassReverse /wssninegate ws://ninegate/wssninegate retry=0
diff --git a/services/50-ninegate/misc/nine.sh b/services/50-ninegate/misc/nine.sh
index 42d664c..056f8a7 100644
--- a/services/50-ninegate/misc/nine.sh
+++ b/services/50-ninegate/misc/nine.sh
@@ -29,10 +29,13 @@ function destroyninegate {
stop $NINEGATE_SERVICE_NAME 1
docker-compose rm -s -v -f "$NINEGATE_SERVICE_NAME"
-
- if [[ -z $1 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $NINEGATE_SERVICE_NAME ?";fi
- if [[ "$?" = 0 || -z $1 ]]
+ if [[ -z $1 ]]; then
+ Question_ouinon "Souhaitez-vous supprimer la BDD associé à $NINEGATE_SERVICE_NAME ?";
+ response=$?
+ fi
+ if [[ "$response" == 0 || ! -z $1 ]]
then
+ EchoRouge "Delete BDD = $NINEGATE_SERVICE_NAME"
docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $NINEGATE_SERVICE_NAME
fi
diff --git a/services/50-nineskeletor/apache/apache.conf b/services/50-nineskeletor/apache/apache.conf
new file mode 100644
index 0000000..dbcf372
--- /dev/null
+++ b/services/50-nineskeletor/apache/apache.conf
@@ -0,0 +1,5 @@
+
+# nineskeletor
+ProxyPass /nineskeletor http://nineskeletor/nineskeletor retry=0 keepalive=On
+ProxyPassReverse /nineskeletor http://nineskeletor/nineskeletor retry=0
+
diff --git a/services/50-nineskeletor/dicos/.env.dicos b/services/50-nineskeletor/dicos/.env.dicos
new file mode 100644
index 0000000..4479058
--- /dev/null
+++ b/services/50-nineskeletor/dicos/.env.dicos
@@ -0,0 +1,2 @@
+templates=services/50-nineskeletor/tmpl/nineskeletor.conf,services/50-nineskeletor/tmpl/nineapache.conf
+destinations=services/50-nineskeletor/volume/apache/nineskeletor.conf,services/10-nineapache/volume/apache/50-nineskeletor.conf
diff --git a/services/50-nineskeletor/dockercompose/dockercompose.yml b/services/50-nineskeletor/dockercompose/dockercompose.yml
index 9349842..d886920 100644
--- a/services/50-nineskeletor/dockercompose/dockercompose.yml
+++ b/services/50-nineskeletor/dockercompose/dockercompose.yml
@@ -10,5 +10,6 @@
networks:
- nine-network
volumes:
+ - ./services/50-nineskeletor/volume/apache:/etc/apache2/conf.d/nine
- ./services/50-nineskeletor/volume/data/private:/app/uploads
- ./services/50-nineskeletor/volume/data/public:/app/public/uploads
diff --git a/services/50-nineskeletor/env/.env b/services/50-nineskeletor/env/.env
index 301796d..8cd7414 100644
--- a/services/50-nineskeletor/env/.env
+++ b/services/50-nineskeletor/env/.env
@@ -1,6 +1,7 @@
# == NINESKELETOR =========================================================================================================================
+# Attention si vous changez cette valeur, il est necessaire de regen votre service (vous pouvez préservez la bdd)
NINESKELETOR_PREFIX=nineskeletor
APP_SECRET=${ADMIN_PASSWORD}
diff --git a/services/50-nineskeletor/misc/nine.sh b/services/50-nineskeletor/misc/nine.sh
index 8ca1a99..a9ad234 100644
--- a/services/50-nineskeletor/misc/nine.sh
+++ b/services/50-nineskeletor/misc/nine.sh
@@ -29,10 +29,13 @@ function destroynineskeletor {
stop $NINESKELETOR_SERVICE_NAME 1
docker-compose rm -s -v -f "$NINESKELETOR_SERVICE_NAME"
-
- if [[ -z $1 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $NINESKELETOR_SERVICE_NAME ?";fi
- if [[ "$?" = 0 || -z $1 ]]
+ if [[ -z $1 ]]; then
+ Question_ouinon "Souhaitez-vous supprimer la BDD associé à $NINESKELETOR_SERVICE_NAME ?";
+ response=$?
+ fi
+ if [[ "$response" == 0 || ! -z $1 ]]
then
+ EchoRouge "Delete BDD = "$NINESKELETOR_SERVICE_NAME
docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $NINESKELETOR_SERVICE_NAME
fi
diff --git a/services/50-nineskeletor/tmpl/nineapache.conf b/services/50-nineskeletor/tmpl/nineapache.conf
new file mode 100644
index 0000000..6ea82f0
--- /dev/null
+++ b/services/50-nineskeletor/tmpl/nineapache.conf
@@ -0,0 +1,5 @@
+
+# nineskeletor
+ProxyPass /${NINESKELETOR_PREFIX} http://nineskeletor/${NINESKELETOR_PREFIX} retry=0 keepalive=On
+ProxyPassReverse /${NINESKELETOR_PREFIX} http://nineskeletor/${NINESKELETOR_PREFIX} retry=0
+
diff --git a/services/50-nineskeletor/tmpl/nineskeletor.conf b/services/50-nineskeletor/tmpl/nineskeletor.conf
new file mode 100644
index 0000000..0ee5673
--- /dev/null
+++ b/services/50-nineskeletor/tmpl/nineskeletor.conf
@@ -0,0 +1,19 @@
+LoadModule rewrite_module modules/mod_rewrite.so
+ServerName nineapache.local
+DocumentRoot "/app/public"
+Alias /${NINESKELETOR_PREFIX} /app/public
+
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+ RewriteEngine On
+ RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
+ RewriteRule .* - [E=BASE:%1]
+ RewriteCond %{HTTP:Authorization} .+
+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
+ RewriteCond %{ENV:REDIRECT_STATUS} =""
+ RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^ %{ENV:BASE}/index.php [L]
+
\ No newline at end of file
diff --git a/services/50-wordpress/apache/apache.conf b/services/50-wordpress/apache/apache.conf
new file mode 100644
index 0000000..68e6e13
--- /dev/null
+++ b/services/50-wordpress/apache/apache.conf
@@ -0,0 +1,5 @@
+
+# wordpress
+ProxyPass /wordpress http://wordpress/wordpress retry=0 keepalive=On
+ProxyPassReverse /wordpress http://wordpress/wordpress retry=0
+
diff --git a/services/50-wordpress/misc/nine.sh b/services/50-wordpress/misc/nine.sh
index df3041f..ef24962 100644
--- a/services/50-wordpress/misc/nine.sh
+++ b/services/50-wordpress/misc/nine.sh
@@ -28,11 +28,15 @@ function destroywordpress {
stop $WORDPRESS_SERVICE_NAME 1
docker-compose rm -s -v -f "$WORDPRESS_SERVICE_NAME"
-
- if [[ -z $1 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $WORDPRESS_SERVICE_NAME ?";fi
- if [[ "$?" = 0 || -z $1 ]]
+ if [[ -z $1 ]]; then
+ Question_ouinon "Souhaitez-vous supprimer la BDD associé à $WORDPRESS_SERVICE_NAME ?";
+ response=$?
+ fi
+ if [[ "$response" == 0 || ! -z $1 ]]
then
+ EchoRouge "Delete BDD = $WORDPRESS_SERVICE_NAME"
docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $WORDPRESS_SERVICE_NAME
+ rm -rf services/50-wordpress/volume/data
fi
echo ""
diff --git a/services/90-adminer/apache/apache.conf b/services/90-adminer/apache/apache.conf
new file mode 100644
index 0000000..e1b6800
--- /dev/null
+++ b/services/90-adminer/apache/apache.conf
@@ -0,0 +1,5 @@
+
+# Adminer
+ProxyPass /adminer http://adminer:8080 retry=0 keepalive=On
+ProxyPassReverse /adminer http://adminer:8080 retry=0
+
diff --git a/services/90-phpldapadmin/apache/apache.conf b/services/90-phpldapadmin/apache/apache.conf
new file mode 100644
index 0000000..4cc64a1
--- /dev/null
+++ b/services/90-phpldapadmin/apache/apache.conf
@@ -0,0 +1,4 @@
+
+# Phpldapadmin
+ProxyPass /phpldapadmin http://phpldapadmin/phpldapadmin retry=0 keepalive=On
+ProxyPassReverse /phpldapadmin http://phpldapadmin/phpldapadmin retry=0
diff --git a/volume/nineboard/data/private/.gitkeep b/volume/nineboard/data/private/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/volume/nineboard/data/public/avatar/admin.jpg b/volume/nineboard/data/public/avatar/admin.jpg
deleted file mode 100644
index 0fa3174..0000000
Binary files a/volume/nineboard/data/public/avatar/admin.jpg and /dev/null differ
diff --git a/volume/nineboard/data/public/avatar/system.jpg b/volume/nineboard/data/public/avatar/system.jpg
deleted file mode 100644
index 4c8a16b..0000000
Binary files a/volume/nineboard/data/public/avatar/system.jpg and /dev/null differ
diff --git a/volume/nineboard/data/public/logo/logo.png b/volume/nineboard/data/public/logo/logo.png
deleted file mode 100644
index f84fa12..0000000
Binary files a/volume/nineboard/data/public/logo/logo.png and /dev/null differ