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