wordpress
33
.gitignore
vendored
@ -4,14 +4,41 @@
|
|||||||
|
|
||||||
/volume/mariadb/mysql
|
/volume/mariadb/mysql
|
||||||
|
|
||||||
|
/volume/minio/data
|
||||||
|
|
||||||
/volume/nextcloud/data
|
/volume/nextcloud/data
|
||||||
/volume/nextcloud/html
|
/volume/nextcloud/html
|
||||||
/volume/nextcloud/app
|
/volume/nextcloud/app
|
||||||
|
|
||||||
/volume/ninegate/data
|
/volume/ninegate/data/private/*
|
||||||
/volume/ninegate/data
|
!/volume/ninegate/data/private/.gitkeep
|
||||||
|
/volume/ninegate/data/public/*
|
||||||
|
!/volume/ninegate/data/public/avatar
|
||||||
|
/volume/ninegate/data/public/avatar/*
|
||||||
|
!/volume/ninegate/data/public/avatar/admin.jpg
|
||||||
|
!/volume/ninegate/data/public/avatar/noavatar.png
|
||||||
|
!/volume/ninegate/data/public/avatar/system.jpg
|
||||||
|
!/volume/ninegate/data/public/logo
|
||||||
|
/volume/ninegate/data/public/logo/*
|
||||||
|
!/volume/ninegate/data/public/logo/logo.png
|
||||||
|
!/volume/ninegate/data/public/header
|
||||||
|
/volume/ninegate/data/public/header/*
|
||||||
|
!/volume/ninegate/data/public/header/header.png
|
||||||
|
!/volume/ninegate/data/public/icon
|
||||||
|
/volume/ninegate/data/public/icon/*
|
||||||
|
!/volume/ninegate/data/public/icon/icon_*.png
|
||||||
|
|
||||||
/volume/nineboard/data
|
/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
|
||||||
|
|
||||||
/volume/openldap/data
|
/volume/openldap/data
|
||||||
|
|
||||||
|
@ -1,6 +1,22 @@
|
|||||||
version: '3'
|
version: '3'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
nineapache:
|
||||||
|
image: reg.cadoles.com/envole/nineapache:8.1
|
||||||
|
container_name: nine-nineapache
|
||||||
|
restart: always
|
||||||
|
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:
|
mariadb:
|
||||||
image: docker.io/library/mariadb
|
image: docker.io/library/mariadb
|
||||||
container_name: nine-mariadb
|
container_name: nine-mariadb
|
||||||
@ -18,6 +34,28 @@ services:
|
|||||||
- ./volume/mariadb/mysql:/var/lib/mysql
|
- ./volume/mariadb/mysql:/var/lib/mysql
|
||||||
- ./volume/mariadb/nine:/nine
|
- ./volume/mariadb/nine:/nine
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis:4.0
|
||||||
|
container_name: nine-redis
|
||||||
|
ports:
|
||||||
|
- 6379:6379
|
||||||
|
environment:
|
||||||
|
- TZ=Europe/Paris
|
||||||
|
|
||||||
|
minio:
|
||||||
|
image: minio/minio
|
||||||
|
container_name: nine-minio
|
||||||
|
restart: always
|
||||||
|
env_file: ./tmp/.env.minio
|
||||||
|
networks:
|
||||||
|
- nine-network
|
||||||
|
ports:
|
||||||
|
- '7200:9000'
|
||||||
|
- '7201:9001'
|
||||||
|
volumes:
|
||||||
|
- './volume/minio/data:/data'
|
||||||
|
command: server /data --console-address ":9001"
|
||||||
|
|
||||||
openldap:
|
openldap:
|
||||||
image: docker.io/bitnami/openldap:2
|
image: docker.io/bitnami/openldap:2
|
||||||
container_name: nine-openldap
|
container_name: nine-openldap
|
||||||
@ -127,7 +165,9 @@ services:
|
|||||||
timeout: 60s
|
timeout: 60s
|
||||||
env_file: ./tmp/.env.wordpress
|
env_file: ./tmp/.env.wordpress
|
||||||
networks:
|
networks:
|
||||||
- nine-network
|
nine-network:
|
||||||
|
aliases:
|
||||||
|
- blog
|
||||||
ports:
|
ports:
|
||||||
- "9003:80"
|
- "9003:80"
|
||||||
volumes:
|
volumes:
|
||||||
@ -153,20 +193,8 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "9101:80"
|
- "9101:80"
|
||||||
|
|
||||||
nineapache:
|
|
||||||
image: reg.cadoles.com/envole/nineapache:7.4
|
|
||||||
container_name: nine-nineapache
|
|
||||||
restart: always
|
|
||||||
healthcheck:
|
|
||||||
test: curl --fail http://localhost || exit 1
|
|
||||||
interval: 1s
|
|
||||||
timeout: 60s
|
|
||||||
env_file: ./tmp/.env.nineapache
|
|
||||||
networks:
|
|
||||||
- nine-network
|
|
||||||
ports:
|
|
||||||
- "9102:80"
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
nine-network:
|
nine-network:
|
||||||
name: nine-network
|
name: nine-network
|
||||||
|
|
||||||
|
|
40
env/.env
vendored
@ -5,6 +5,7 @@
|
|||||||
# votre localhost devra aussi disposer d'un certificat
|
# votre localhost devra aussi disposer d'un certificat
|
||||||
# si vous changer le web_url penser à modifier nine.local par votre web_url dans volume/keycloak/nine/realm-export.json
|
# si vous changer le web_url penser à modifier nine.local par votre web_url dans volume/keycloak/nine/realm-export.json
|
||||||
# sinon il vous faudra vous connecter à keycloak pour changer l'url du client nine
|
# sinon il vous faudra vous connecter à keycloak pour changer l'url du client nine
|
||||||
|
# Si vous souhaitez faire marcher wordpress il est indispensable que nineapache écoute soit le port 80 ou 443
|
||||||
|
|
||||||
# RELEASE SYSTEM = linux ou eole si eole le réseau du compose sera supprimé et regénéré à chaque UP
|
# RELEASE SYSTEM = linux ou eole si eole le réseau du compose sera supprimé et regénéré à chaque UP
|
||||||
RELEASE_SYSTEM=linux
|
RELEASE_SYSTEM=linux
|
||||||
@ -12,7 +13,7 @@ RELEASE_SYSTEM=linux
|
|||||||
# GLOBAL
|
# GLOBAL
|
||||||
APP_ENV=PROD
|
APP_ENV=PROD
|
||||||
WEB_URL=nine.local
|
WEB_URL=nine.local
|
||||||
PROTOCOLE=https
|
PROTOCOLE=http
|
||||||
|
|
||||||
# ADMIN USER
|
# ADMIN USER
|
||||||
ADMIN_USER=admin
|
ADMIN_USER=admin
|
||||||
@ -24,7 +25,13 @@ MASTERIDENTITY=SQL
|
|||||||
|
|
||||||
# AUTHENTIFICATION
|
# AUTHENTIFICATION
|
||||||
# SQL or CAS (todo LDAP or OPENID)
|
# SQL or CAS (todo LDAP or OPENID)
|
||||||
MODE_AUTH=CAS
|
MODE_AUTH=SQL
|
||||||
|
|
||||||
|
# NINEAPACHE
|
||||||
|
# Il sert de reverse proxy
|
||||||
|
NINEAPACHE_SERVICE_NAME=nineapache
|
||||||
|
NINEAPACHE_ACTIVATE=1
|
||||||
|
NINEAPACHE_LOCAL=1
|
||||||
|
|
||||||
# MARIADB
|
# MARIADB
|
||||||
MARIADB_SERVICE_NAME=mariadb
|
MARIADB_SERVICE_NAME=mariadb
|
||||||
@ -34,6 +41,20 @@ MARIADB_ROOT_PASSWORD=${ADMIN_PASSWORD}
|
|||||||
MARIADB_USER=user
|
MARIADB_USER=user
|
||||||
MARIADB_PASSWORD=${ADMIN_PASSWORD}
|
MARIADB_PASSWORD=${ADMIN_PASSWORD}
|
||||||
|
|
||||||
|
# REDIS
|
||||||
|
REDIS_SERVICE_NAME=redis
|
||||||
|
REDIS_ACTIVATE=1
|
||||||
|
REDIS_LOCAL=1
|
||||||
|
|
||||||
|
# MINIO
|
||||||
|
MINIO_SERVICE_NAME=minio
|
||||||
|
MINIO_ACTIVATE=1
|
||||||
|
MINIO_LOCAL=1
|
||||||
|
MINIO_HOST=${MINIO_SERVICE_NAME}
|
||||||
|
MINIO_PORT=7200
|
||||||
|
MINIO_URL=${PROTOCOLE}://${WEB_URL}/minio
|
||||||
|
|
||||||
|
|
||||||
# LDAP
|
# LDAP
|
||||||
# LDAP_SYNC Si MASTERIDENTITY = SQL permet la synchronisation des utilisateurs SQL vers LDAP
|
# LDAP_SYNC Si MASTERIDENTITY = SQL permet la synchronisation des utilisateurs SQL vers LDAP
|
||||||
OPENLDAP_SERVICE_NAME=openldap
|
OPENLDAP_SERVICE_NAME=openldap
|
||||||
@ -60,7 +81,7 @@ LDAP_DISPLAYNAME=displayName
|
|||||||
LDAP_EMAIL=mail
|
LDAP_EMAIL=mail
|
||||||
LDAP_MEMBER=memberUid
|
LDAP_MEMBER=memberUid
|
||||||
LDAP_USER_FILTER="(&(${LDAP_USERNAME}=*)(objectClass=person)(!(description=Computer)))"
|
LDAP_USER_FILTER="(&(${LDAP_USERNAME}=*)(objectClass=person)(!(description=Computer)))"
|
||||||
LDAP_LOGIN_FILTER="(&(${LDAP_USERNAME}=%uid)(objectClass=person)(!(description=Computer)))"
|
LDAP_LOGIN_FILTER="(&(${LDAP_USERNAME}=%uid%)(objectClass=person)(!(description=Computer)))"
|
||||||
LDAP_GROUP_FILTER="(&(objectClass=posixGroup))"
|
LDAP_GROUP_FILTER="(&(objectClass=posixGroup))"
|
||||||
SCRIBE_GROUP=1
|
SCRIBE_GROUP=1
|
||||||
SCRIBE_MASTER=1
|
SCRIBE_MASTER=1
|
||||||
@ -75,7 +96,7 @@ CAS_LOCAL=1
|
|||||||
CAS_USER=${ADMIN_USER}-keycloak
|
CAS_USER=${ADMIN_USER}-keycloak
|
||||||
CAS_PASSWORD=${ADMIN_PASSWORD}-keycloak
|
CAS_PASSWORD=${ADMIN_PASSWORD}-keycloak
|
||||||
CAS_HOST=${WEB_URL}
|
CAS_HOST=${WEB_URL}
|
||||||
CAS_PORT=443
|
CAS_PORT=8999
|
||||||
CAS_PATH=/auth/realms/nine/protocol/cas
|
CAS_PATH=/auth/realms/nine/protocol/cas
|
||||||
CAS_URL=${PROTOCOLE}://${CAS_HOST}:${CAS_PORT}
|
CAS_URL=${PROTOCOLE}://${CAS_HOST}:${CAS_PORT}
|
||||||
|
|
||||||
@ -106,19 +127,12 @@ WORDPRESS_URL=${PROTOCOLE}://${WEB_URL}/wordpress
|
|||||||
|
|
||||||
# ADMINER
|
# ADMINER
|
||||||
ADMINER_SERVICE_NAME=adminer
|
ADMINER_SERVICE_NAME=adminer
|
||||||
ADMINER_ACTIVATE=0
|
ADMINER_ACTIVATE=1
|
||||||
ADMINER_LOCAL=1
|
ADMINER_LOCAL=1
|
||||||
ADMINER_URL=${PROTOCOLE}://${WEB_URL}/adminer/?server=${MARIADB_SERVICE_NAME}&username=${MARIADB_USER}
|
ADMINER_URL=${PROTOCOLE}://${WEB_URL}/adminer/?server=${MARIADB_SERVICE_NAME}&username=${MARIADB_USER}
|
||||||
|
|
||||||
# PHPLDAPADMIN
|
# PHPLDAPADMIN
|
||||||
PHPLDAPADMIN_SERVICE_NAME=phpldapadmin
|
PHPLDAPADMIN_SERVICE_NAME=phpldapadmin
|
||||||
PHPLDAPADMIN_ACTIVATE=0
|
PHPLDAPADMIN_ACTIVATE=1
|
||||||
PHPLDAPADMIN_LOCAL=1
|
PHPLDAPADMIN_LOCAL=1
|
||||||
PHPLDAPADMIN_URL=${PROTOCOLE}://${WEB_URL}/phpldapadmin
|
PHPLDAPADMIN_URL=${PROTOCOLE}://${WEB_URL}/phpldapadmin
|
||||||
|
|
||||||
# NINEAPACHE
|
|
||||||
NINEAPACHE_SERVICE_NAME=nineapache
|
|
||||||
NINEAPACHE_ACTIVATE=0
|
|
||||||
NINEAPACHE_LOCAL=1
|
|
||||||
NINEAPACHE_URL=${PROTOCOLE}://${WEB_URL}:9102
|
|
||||||
|
|
||||||
|
3
env/.env.zapp.minio
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
MINIO_ROOT_USER=${ADMIN_USER}
|
||||||
|
MINIO_ROOT_PASSWORD=${ADMIN_PASSWORD}
|
||||||
|
MINIO_DEFAULT_BUCKETS=nine
|
2
env/.env.zapp.phpldapadmin
vendored
@ -3,5 +3,5 @@
|
|||||||
|
|
||||||
PHPLDAPADMIN_LDAP_HOSTS=ldap://${LDAP_HOST}:${LDAP_PORT}
|
PHPLDAPADMIN_LDAP_HOSTS=ldap://${LDAP_HOST}:${LDAP_PORT}
|
||||||
PHPLDAPADMIN_HTTPS="false"
|
PHPLDAPADMIN_HTTPS="false"
|
||||||
PHPLDAPADMIN_SERVER_PATH=
|
PHPLDAPADMIN_SERVER_PATH=/phpldapadmin
|
||||||
|
|
||||||
|
59
misc/images/wordpress/containers/nineapache/apache.conf
Executable file
@ -0,0 +1,59 @@
|
|||||||
|
|
||||||
|
LoadModule rewrite_module modules/mod_rewrite.so
|
||||||
|
ServerName nineapache.local
|
||||||
|
|
||||||
|
ProxyRequests Off
|
||||||
|
ProxyPreserveHost On
|
||||||
|
|
||||||
|
<Proxy *>
|
||||||
|
Require all granted
|
||||||
|
</Proxy>
|
||||||
|
|
||||||
|
ProxyPass /auth http://keycloak:8999/auth retry=0 keepalive=On
|
||||||
|
ProxyPassReverse /auth http://keycloak:8999/auth retry=0
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
ProxyPass /nextcloud http://nextcloud retry=0 keepalive=On
|
||||||
|
ProxyPassReverse /nextcloud http://nextcloud retry=0
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
ProxyPass /wordpress http://wordpress/wordpress retry=0 keepalive=On
|
||||||
|
ProxyPassReverse /wordpress http://wordpress/wordpress retry=0
|
||||||
|
|
||||||
|
ProxyPass /adminer http://adminer:8080 retry=0 keepalive=On
|
||||||
|
ProxyPassReverse /adminer http://adminer:8080 retry=0
|
||||||
|
|
||||||
|
ProxyPass /phpldapadmin http://phpldapadmin/phpldapadmin retry=0 keepalive=On
|
||||||
|
ProxyPassReverse /phpldapadmin http://phpldapadmin/phpldapadmin retry=0
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
|
DocumentRoot "/app/public"
|
||||||
|
<Directory "/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]
|
||||||
|
</Directory>
|
||||||
|
|
@ -1,67 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -eo pipefail
|
|
||||||
|
|
||||||
cd /app/public
|
|
||||||
|
|
||||||
|
|
||||||
if [[ ! -f /app/public/wp-config.php ]]
|
|
||||||
then
|
|
||||||
wp config create \
|
|
||||||
--allow-root \
|
|
||||||
--dbhost="${WORDPRESS_DB_HOST}" \
|
|
||||||
--dbname="${WORDPRESS_DB_NAME}" \
|
|
||||||
--dbuser="${WORDPRESS_DB_USER}" \
|
|
||||||
--dbpass="${WORDPRESS_DB_PASSWORD}" \
|
|
||||||
--dbcharset="utf8mb4" \
|
|
||||||
--locale="fr_FR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
wp core multisite-install \
|
|
||||||
--allow-root \
|
|
||||||
--url="${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}" \
|
|
||||||
--title="${WORDPRESS_TITLE}" \
|
|
||||||
--admin_user="${WORDPRESS_USER}" \
|
|
||||||
--admin_password="${WORDPRESS_PASSWORD}" \
|
|
||||||
--admin_email="${WORDPRESS_EMAIL}" \
|
|
||||||
--skip-email
|
|
||||||
|
|
||||||
wp config set --allow-root DB_HOST ${WORDPRESS_DB_HOST}
|
|
||||||
wp config set --allow-root DB_NAME ${WORDPRESS_DB_NAME}
|
|
||||||
wp config set --allow-root DB_USER ${WORDPRESS_DB_USER}
|
|
||||||
wp config set --allow-root DB_PASSWORD ${WORDPRESS_DB_PASSWORD}
|
|
||||||
|
|
||||||
wp config set --allow-root WP_HOME ${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}${WORDPRESS_ALIAS}
|
|
||||||
wp config set --allow-root WP_SITEURL ${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}${WORDPRESS_ALIAS}
|
|
||||||
|
|
||||||
wp config set --allow-root WP_ALLOW_MULTISITE true
|
|
||||||
wp config set --allow-root MULTISITE true
|
|
||||||
wp config set --allow-root SUBDOMAIN_INSTALL false
|
|
||||||
wp config set --allow-root DOMAIN_CURRENT_SITE ${WORDPRESS_DOMAINE}
|
|
||||||
wp config set --allow-root PATH_CURRENT_SITE ${WORDPRESS_ALIAS}
|
|
||||||
wp config set --allow-root FORCE_ADMIN_SSL false
|
|
||||||
wp config set --allow-root SITE_ID_CURRENT_SITE 1
|
|
||||||
wp config set --allow-root BLOG_ID_CURRENT_SITE 1
|
|
||||||
|
|
||||||
# On fait croire à WP qu'il est en https
|
|
||||||
if grep -qF "_SERVER['HTTPS']='on'" "wp-config.php"; then
|
|
||||||
if [[ "${WORDPRESS_PROTOCOL}" == "https" ]]
|
|
||||||
then
|
|
||||||
echo "FORCE HTTPS already set"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [[ "${WORDPRESS_PROTOCOL}" == "https" ]]
|
|
||||||
then
|
|
||||||
echo "FORCE HTTPS set"
|
|
||||||
head -n 1 "wp-config.php" > "wp-config.tmp"
|
|
||||||
echo "\$_SERVER['HTTPS']='on';" >> "wp-config.tmp"
|
|
||||||
tail -n +2 "wp-config.php" >> "wp-config.tmp"
|
|
||||||
mv "wp-config.tmp" "wp-config.php"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Mise à jour theme / plugin / network
|
|
||||||
wp theme update --allow-root --all
|
|
||||||
wp plugin update --allow-root --all
|
|
||||||
wp core update-db --network
|
|
||||||
|
|
||||||
exec $@
|
|
@ -8,17 +8,24 @@ Alias /wordpress /app/public
|
|||||||
DirectoryIndex index.php
|
DirectoryIndex index.php
|
||||||
Require all granted
|
Require all granted
|
||||||
|
|
||||||
RewriteEngine On
|
# BEGIN WordPress Multisite
|
||||||
RewriteBase /wordpress/
|
# Using subfolder network type: https://wordpress.org/documentation/article/htaccess/#multisite
|
||||||
|
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||||
|
RewriteBase /wordpress/
|
||||||
RewriteRule ^index\.php$ - [L]
|
RewriteRule ^index\.php$ - [L]
|
||||||
|
|
||||||
# add a trailing slash to /wp-admin
|
# add a trailing slash to /wp-admin
|
||||||
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
|
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
|
||||||
|
|
||||||
RewriteCond %{REQUEST_FILENAME} -f [OR]
|
RewriteCond %{REQUEST_FILENAME} -f [OR]
|
||||||
RewriteCond %{REQUEST_FILENAME} -d
|
RewriteCond %{REQUEST_FILENAME} -d
|
||||||
RewriteRule ^ - [L]
|
RewriteRule ^ - [L]
|
||||||
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
|
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
|
||||||
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
|
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
|
||||||
RewriteRule . index.php [L]
|
RewriteRule . index.php [L]
|
||||||
|
|
||||||
|
# END WordPress Multisite
|
||||||
|
|
||||||
</Directory>
|
</Directory>
|
@ -17,22 +17,24 @@ then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
wp config set --allow-root DB_HOST ${WORDPRESS_DB_HOST}
|
wp config set --allow-root DB_HOST ${WORDPRESS_DB_HOST}
|
||||||
wp config set --allow-root DB_NAME ${WORDPRESS_DB_NAME}
|
wp config set --allow-root DB_NAME ${WORDPRESS_DB_NAME}
|
||||||
wp config set --allow-root DB_USER ${WORDPRESS_DB_USER}
|
wp config set --allow-root DB_USER ${WORDPRESS_DB_USER}
|
||||||
wp config set --allow-root DB_PASSWORD ${WORDPRESS_DB_PASSWORD}
|
wp config set --allow-root DB_PASSWORD ${WORDPRESS_DB_PASSWORD}
|
||||||
|
|
||||||
wp config set --allow-root WP_HOME ${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}${WORDPRESS_ALIAS}
|
# le ? permet d'enlever le / à la fin de WORDPRESS_ALIAS
|
||||||
wp config set --allow-root WP_SITEURL ${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}${WORDPRESS_ALIAS}
|
wp config set --allow-root WP_HOME ${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}${WORDPRESS_ALIAS::-1}
|
||||||
|
wp config set --allow-root WP_SITEURL ${WORDPRESS_PROTOCOL}://${WORDPRESS_DOMAINE}${WORDPRESS_ALIAS::-1}
|
||||||
|
|
||||||
wp config set --allow-root WP_ALLOW_MULTISITE true
|
wp config set --allow-root WP_ALLOW_MULTISITE true --raw
|
||||||
wp config set --allow-root MULTISITE true
|
wp config set --allow-root MULTISITE true --raw
|
||||||
wp config set --allow-root SUBDOMAIN_INSTALL false
|
wp config set --allow-root SUBDOMAIN_INSTALL false --raw
|
||||||
wp config set --allow-root DOMAIN_CURRENT_SITE ${WORDPRESS_DOMAINE}
|
wp config set --allow-root DOMAIN_CURRENT_SITE ${WORDPRESS_DOMAINE}
|
||||||
wp config set --allow-root PATH_CURRENT_SITE ${WORDPRESS_ALIAS}
|
wp config set --allow-root PATH_CURRENT_SITE ${WORDPRESS_ALIAS}
|
||||||
wp config set --allow-root FORCE_ADMIN_SSL false
|
wp config set --allow-root FORCE_ADMIN_SSL false --raw
|
||||||
wp config set --allow-root SITE_ID_CURRENT_SITE 1
|
wp config set --allow-root SITE_ID_CURRENT_SITE 1 --raw
|
||||||
wp config set --allow-root BLOG_ID_CURRENT_SITE 1
|
wp config set --allow-root BLOG_ID_CURRENT_SITE 1 --raw
|
||||||
|
|
||||||
# On fait croire à WP qu'il est en https
|
# On fait croire à WP qu'il est en https
|
||||||
if grep -qF "_SERVER['HTTPS']='on'" "wp-config.php"; then
|
if grep -qF "_SERVER['HTTPS']='on'" "wp-config.php"; then
|
||||||
|
@ -1,6 +1,21 @@
|
|||||||
version: '3'
|
version: '3'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
nineapache:
|
||||||
|
image: reg.cadoles.com/envole/nineapache:8.1
|
||||||
|
container_name: wordpress-nineapache
|
||||||
|
restart: always
|
||||||
|
healthcheck:
|
||||||
|
test: curl --fail http://localhost || exit 1
|
||||||
|
interval: 1s
|
||||||
|
timeout: 60s
|
||||||
|
networks:
|
||||||
|
- wordpress-network
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
volumes:
|
||||||
|
- ./containers/nineapache/apache.conf:/etc/apache2/conf.d/zapp.conf
|
||||||
|
|
||||||
mariadb:
|
mariadb:
|
||||||
image: mariadb
|
image: mariadb
|
||||||
container_name: wordpress-mariadb
|
container_name: wordpress-mariadb
|
||||||
@ -14,6 +29,8 @@ services:
|
|||||||
MYSQL_PASSWORD: changeme
|
MYSQL_PASSWORD: changeme
|
||||||
volumes:
|
volumes:
|
||||||
- mariadb-data:/var/lib/mysql
|
- mariadb-data:/var/lib/mysql
|
||||||
|
networks:
|
||||||
|
- wordpress-network
|
||||||
|
|
||||||
wordpress:
|
wordpress:
|
||||||
build:
|
build:
|
||||||
@ -34,12 +51,15 @@ services:
|
|||||||
- WORDPRESS_USER=admin
|
- WORDPRESS_USER=admin
|
||||||
- WORDPRESS_PASSWORD=changeme
|
- WORDPRESS_PASSWORD=changeme
|
||||||
- WORDPRESS_EMAIL=admin@noreply.fr
|
- WORDPRESS_EMAIL=admin@noreply.fr
|
||||||
- WORDPRESS_PROTOCOL=https
|
- WORDPRESS_PROTOCOL=http
|
||||||
- WORDPRESS_DOMAINE=eolebase.ac-test.fr
|
- WORDPRESS_DOMAINE=nine.local
|
||||||
- WORDPRESS_ALIAS=/wordpress/
|
- WORDPRESS_ALIAS=/wordpress/
|
||||||
|
volumes:
|
||||||
#volumes:
|
- ./containers/wordpress/entrypoint.sh:/docker/entrypoint.sh
|
||||||
# - ./containers/data:/app/public/wp-content/plugins/wp-cas
|
- ./containers/wordpress/apache.conf:/etc/apache2/conf.d/zapp.conf
|
||||||
|
|
||||||
|
networks:
|
||||||
|
- wordpress-network
|
||||||
|
|
||||||
adminer:
|
adminer:
|
||||||
image: docker.io/library/adminer
|
image: docker.io/library/adminer
|
||||||
@ -47,6 +67,12 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- 9100:8080
|
- 9100:8080
|
||||||
|
networks:
|
||||||
|
- wordpress-network
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
mariadb-data:
|
mariadb-data:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
wordpress-network:
|
||||||
|
name: wordpress-network
|
||||||
|
162
nine.sh
@ -7,49 +7,15 @@
|
|||||||
rm -f ./.env.local
|
rm -f ./.env.local
|
||||||
cat ./env/.env* >> ./.env.local
|
cat ./env/.env* >> ./.env.local
|
||||||
. ./misc/e-ihm.sh
|
. ./misc/e-ihm.sh
|
||||||
. .env
|
|
||||||
. ./env/.env
|
. ./env/.env
|
||||||
. ./env/.env.local
|
if [ -f ./env/.env.local ]
|
||||||
|
then
|
||||||
|
. ./env/.env.local
|
||||||
|
fi
|
||||||
|
|
||||||
# Start script
|
# Start script
|
||||||
BigTitle "NINE"
|
BigTitle "NINE"
|
||||||
|
|
||||||
# on remplace les valeur reprise dans les autres .env car podman interprète mal
|
|
||||||
if [[ "$PODCOMPOSEBIN" == "podman-compose" ]]
|
|
||||||
then
|
|
||||||
sed -i 's#${WEB_URL}#'${WEB_URL}'#g' ./.env.local
|
|
||||||
sed -i 's#${WEB_PROTOCOL}#'${WEB_PROTOCOL}'#g' ./.env.local
|
|
||||||
. ./.env.local
|
|
||||||
|
|
||||||
sed -i 's#${ADMIN_PASSWORD}#'${ADMIN_PASSWORD}'#g' ./.env.local
|
|
||||||
sed -i 's#${ADMIN_USER}#'${ADMIN_USER}'#g' ./.env.local
|
|
||||||
|
|
||||||
sed -i 's#${CAS_HOST}#'${CAS_HOST}'#g' ./.env.local
|
|
||||||
sed -i 's#${CAS_PORT}#'${CAS_PORT}'#g' ./.env.local
|
|
||||||
sed -i 's#${CAS_USER}#'${CAS_USER}'#g' ./.env.local
|
|
||||||
sed -i 's#${CAS_PASSWORD}#'${CAS_PASSWORD}'#g' ./.env.local
|
|
||||||
|
|
||||||
sed -i 's#${OPENLDAP_SERVICE_NAME}#'${OPENLDAP_SERVICE_NAME}'#g' ./.env.local
|
|
||||||
sed -i 's#${LDAP_ADMIN_USERNAME}#'${LDAP_ADMIN_USERNAME}'#g' ./.env.local
|
|
||||||
sed -i 's#${LDAP_BASEDN}#'${LDAP_BASEDN}'#g' ./.env.local
|
|
||||||
sed -i 's#${LDAP_PASSWORD}#'${LDAP_PASSWORD}'#g' ./.env.local
|
|
||||||
sed -i 's#${LDAP_USER}#'${LDAP_USER}'#g' ./.env.local
|
|
||||||
sed -i 's#${LDAP_PORT}#'${LDAP_PORT}'#g' ./.env.local
|
|
||||||
|
|
||||||
sed -i 's#${MARIADB_SERVICE_NAME}#'${MARIADB_SERVICE_NAME}'#g' ./.env.local
|
|
||||||
sed -i 's#${MARIADB_USER}#'${MARIADB_USER}'#g' ./.env.local
|
|
||||||
sed -i 's#${MARIADB_PASSWORD}#'${MARIADB_PASSWORD}'#g' ./.env.local
|
|
||||||
|
|
||||||
sed -i 's#${ADMINER_ACTIVATE}#'${ADMINER_ACTIVATE}'#g' ./.env.local
|
|
||||||
sed -i 's#${ADMINER_URL}#'${ADMINER_URL}'#g' ./.env.local
|
|
||||||
|
|
||||||
sed -i 's#${PHPLDAPADMIN_ACTIVATE}#'${PHPLDAPADMIN_ACTIVATE}'#g' ./.env.local
|
|
||||||
sed -i 's#${PHPLDAPADMIN_URL}#'${PHPLDAPADMIN_URL}'#g' ./.env.local
|
|
||||||
|
|
||||||
sed -i 's#${NEXTCLOUD_ACTIVATE}#'${NEXTCLOUD_ACTIVATE}'#g' ./.env.local
|
|
||||||
sed -i 's#${NEXTCLOUD_URL}#'${NEXTCLOUD_URL}'#g' ./.env.local
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Include
|
# Include
|
||||||
. ./.env.local
|
. ./.env.local
|
||||||
|
|
||||||
@ -62,7 +28,10 @@ destroyall(){
|
|||||||
Question_ouinon "Souhaitez-vous supprimer l'ensemble des containers : Attention cela supprimera vraiment tout ?"
|
Question_ouinon "Souhaitez-vous supprimer l'ensemble des containers : Attention cela supprimera vraiment tout ?"
|
||||||
if [[ "$?" = 0 ]]
|
if [[ "$?" = 0 ]]
|
||||||
then
|
then
|
||||||
|
destroy $NINEAPACHE_SERVICE_NAME 1
|
||||||
destroy $MARIADB_SERVICE_NAME 1
|
destroy $MARIADB_SERVICE_NAME 1
|
||||||
|
destroy $REDIS_SERVICE_NAME 1
|
||||||
|
destroy $MINIO_SERVICE_NAME 1
|
||||||
destroy $OPENLDAP_SERVICE_NAME 1
|
destroy $OPENLDAP_SERVICE_NAME 1
|
||||||
destroy $KEYCLOAK_SERVICE_NAME 1
|
destroy $KEYCLOAK_SERVICE_NAME 1
|
||||||
destroy $NINEGATE_SERVICE_NAME 1
|
destroy $NINEGATE_SERVICE_NAME 1
|
||||||
@ -71,7 +40,6 @@ destroyall(){
|
|||||||
destroy $WORDPRESS_SERVICE_NAME 1
|
destroy $WORDPRESS_SERVICE_NAME 1
|
||||||
destroy $ADMINER_SERVICE_NAME 1
|
destroy $ADMINER_SERVICE_NAME 1
|
||||||
destroy $PHPLDAPADMIN_SERVICE_NAME 1
|
destroy $PHPLDAPADMIN_SERVICE_NAME 1
|
||||||
destroy $NINEAPACHE_SERVICE_NAME 1
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,7 +58,10 @@ env() {
|
|||||||
#===========================================================================================================================================
|
#===========================================================================================================================================
|
||||||
|
|
||||||
envall(){
|
envall(){
|
||||||
|
env $NINEAPACHE_SERVICE_NAME
|
||||||
env $MARIADB_SERVICE_NAME
|
env $MARIADB_SERVICE_NAME
|
||||||
|
env $REDIS_SERVICE_NAME
|
||||||
|
env $MINIO_SERVICE_NAME
|
||||||
env $OPENLDAP_SERVICE_NAME
|
env $OPENLDAP_SERVICE_NAME
|
||||||
env $KEYCLOAK_SERVICE_NAME
|
env $KEYCLOAK_SERVICE_NAME
|
||||||
env $NINEGATE_SERVICE_NAME
|
env $NINEGATE_SERVICE_NAME
|
||||||
@ -99,7 +70,6 @@ envall(){
|
|||||||
env $WORDPRESS_SERVICE_NAME
|
env $WORDPRESS_SERVICE_NAME
|
||||||
env $ADMINER_SERVICE_NAME
|
env $ADMINER_SERVICE_NAME
|
||||||
env $PHPLDAPADMIN_SERVICE_NAME
|
env $PHPLDAPADMIN_SERVICE_NAME
|
||||||
env $NINEAPACHE_SERVICE_NAME
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#===========================================================================================================================================
|
#===========================================================================================================================================
|
||||||
@ -111,19 +81,7 @@ envall(){
|
|||||||
stop() {
|
stop() {
|
||||||
if [[ "$2" != 1 ]]; then Title "STOP"; fi
|
if [[ "$2" != 1 ]]; then Title "STOP"; fi
|
||||||
|
|
||||||
$PODCOMPOSEBIN stop $1
|
docker-compose stop $1
|
||||||
if [[ "$PODCOMPOSEBIN" == "podman-compose" ]]
|
|
||||||
then
|
|
||||||
if [[ "$1" == "" ]]
|
|
||||||
then
|
|
||||||
CONTAINER_NAMES=$($PODCOMPOSEBIN -f docker-compose.yml ps | awk 'NR > 1 {print $1}')
|
|
||||||
for CONTAINER_NAME in $CONTAINER_NAMES; do
|
|
||||||
$PODBIN rm -f $CONTAINER_NAME
|
|
||||||
done
|
|
||||||
else
|
|
||||||
$PODBIN rm "nine-"$1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#===========================================================================================================================================
|
#===========================================================================================================================================
|
||||||
@ -133,13 +91,13 @@ stop() {
|
|||||||
|
|
||||||
wait_for_container() {
|
wait_for_container() {
|
||||||
container_id="nine-$1"
|
container_id="nine-$1"
|
||||||
container_name="$($PODBIN inspect "${container_id}" --format '{{ .Name }}')"
|
container_name="$(docker inspect "${container_id}" --format '{{ .Name }}')"
|
||||||
waiting_done="false"
|
waiting_done="false"
|
||||||
|
|
||||||
while [[ "${waiting_done}" != "true" ]]; do
|
while [[ "${waiting_done}" != "true" ]]; do
|
||||||
container_state="$($PODBIN inspect "${container_id}" --format '{{ .State.Status }}')"
|
container_state="$(docker inspect "${container_id}" --format '{{ .State.Status }}')"
|
||||||
if [[ "${container_state}" == "running" ]]; then
|
if [[ "${container_state}" == "running" ]]; then
|
||||||
health_status="$($PODBIN inspect "${container_id}" --format '{{ .State.Health.Status }}')"
|
health_status="$(docker inspect "${container_id}" --format '{{ .State.Health.Status }}')"
|
||||||
if [[ ${health_status} == "healthy" ]]; then
|
if [[ ${health_status} == "healthy" ]]; then
|
||||||
waiting_done="true"
|
waiting_done="true"
|
||||||
fi
|
fi
|
||||||
@ -151,13 +109,23 @@ wait_for_container() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
upservice(){
|
upservice(){
|
||||||
$PODCOMPOSEBIN up -d $1
|
docker-compose up -d $1
|
||||||
if [[ $2 == "wait" ]]
|
if [[ $2 == "wait" ]]
|
||||||
then
|
then
|
||||||
wait_for_container $1
|
wait_for_container $1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function upnineapache {
|
||||||
|
if [[ $NINEAPACHE_ACTIVATE == 1 && $NINEAPACHE_LOCAL == 1 ]]
|
||||||
|
then
|
||||||
|
Title ${NINEAPACHE_SERVICE_NAME^^}
|
||||||
|
EchoVert "CONTAINER"
|
||||||
|
upservice ${NINEAPACHE_SERVICE_NAME}
|
||||||
|
Echo
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function upmariadb {
|
function upmariadb {
|
||||||
if [[ $MARIADB_ACTIVATE == 1 && $MARIADB_LOCAL == 1 ]]
|
if [[ $MARIADB_ACTIVATE == 1 && $MARIADB_LOCAL == 1 ]]
|
||||||
then
|
then
|
||||||
@ -168,6 +136,26 @@ function upmariadb {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function upredis {
|
||||||
|
if [[ $REDIS_ACTIVATE == 1 && $REDIS_LOCAL == 1 ]]
|
||||||
|
then
|
||||||
|
Title "REDIS"
|
||||||
|
EchoVert "CONTAINER"
|
||||||
|
upservice $REDIS_SERVICE_NAME
|
||||||
|
Echo
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function upminio {
|
||||||
|
if [[ $MINIO_ACTIVATE == 1 && $MINIO_LOCAL == 1 ]]
|
||||||
|
then
|
||||||
|
Title "MINIO"
|
||||||
|
EchoVert "CONTAINER"
|
||||||
|
upservice $MINIO_SERVICE_NAME
|
||||||
|
Echo
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function upopenldap {
|
function upopenldap {
|
||||||
if [[ $LDAP_ACTIVATE == 1 && $LDAP_LOCAL == 1 ]]
|
if [[ $LDAP_ACTIVATE == 1 && $LDAP_LOCAL == 1 ]]
|
||||||
then
|
then
|
||||||
@ -178,7 +166,7 @@ function upopenldap {
|
|||||||
chmod a+wr ./volume/openldap/data
|
chmod a+wr ./volume/openldap/data
|
||||||
|
|
||||||
upservice $OPENLDAP_SERVICE_NAME wait
|
upservice $OPENLDAP_SERVICE_NAME wait
|
||||||
$PODCOMPOSEBIN exec $OPENLDAP_SERVICE_NAME /nine/init.sh
|
docker-compose exec $OPENLDAP_SERVICE_NAME /nine/init.sh
|
||||||
Echo
|
Echo
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -193,7 +181,7 @@ function upkeycloak {
|
|||||||
then
|
then
|
||||||
EchoVert "DATABASE"
|
EchoVert "DATABASE"
|
||||||
Echo ${KEYCLOAK_SERVICE_NAME^^}
|
Echo ${KEYCLOAK_SERVICE_NAME^^}
|
||||||
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /nine/init.sh $KEYCLOAK_SERVICE_NAME
|
docker-compose exec $MARIADB_SERVICE_NAME /nine/init.sh $KEYCLOAK_SERVICE_NAME
|
||||||
Echo
|
Echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -212,7 +200,7 @@ function upninegate {
|
|||||||
then
|
then
|
||||||
EchoVert "DATABASE"
|
EchoVert "DATABASE"
|
||||||
Echo ${NINEGATE_SERVICE_NAME^^}
|
Echo ${NINEGATE_SERVICE_NAME^^}
|
||||||
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /nine/init.sh $NINEGATE_SERVICE_NAME
|
docker-compose exec $MARIADB_SERVICE_NAME /nine/init.sh $NINEGATE_SERVICE_NAME
|
||||||
Echo
|
Echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -232,7 +220,7 @@ function upnineboard {
|
|||||||
then
|
then
|
||||||
EchoVert "DATABASE"
|
EchoVert "DATABASE"
|
||||||
Echo ${NINEBOARD_SERVICE_NAME^^}
|
Echo ${NINEBOARD_SERVICE_NAME^^}
|
||||||
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /nine/init.sh $NINEBOARD_SERVICE_NAME
|
docker-compose exec $MARIADB_SERVICE_NAME /nine/init.sh $NINEBOARD_SERVICE_NAME
|
||||||
Echo
|
Echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -253,7 +241,7 @@ function upnextcloud {
|
|||||||
EchoVert "DATABASE"
|
EchoVert "DATABASE"
|
||||||
Echo ${NEXTCLOUD_SERVICE_NAME^^}
|
Echo ${NEXTCLOUD_SERVICE_NAME^^}
|
||||||
Echo
|
Echo
|
||||||
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /nine/init.sh $NEXTCLOUD_SERVICE_NAME
|
docker-compose exec $MARIADB_SERVICE_NAME /nine/init.sh $NEXTCLOUD_SERVICE_NAME
|
||||||
fi
|
fi
|
||||||
|
|
||||||
EchoVert "CONTAINER"
|
EchoVert "CONTAINER"
|
||||||
@ -272,7 +260,7 @@ function upwordpress {
|
|||||||
then
|
then
|
||||||
EchoVert "DATABASE"
|
EchoVert "DATABASE"
|
||||||
Echo ${WORDPRESS_SERVICE_NAME^^}
|
Echo ${WORDPRESS_SERVICE_NAME^^}
|
||||||
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /nine/init.sh $WORDPRESS_SERVICE_NAME
|
docker-compose exec $MARIADB_SERVICE_NAME /nine/init.sh $WORDPRESS_SERVICE_NAME
|
||||||
Echo
|
Echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -302,15 +290,6 @@ function upphpldapadmin {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function upnineapache {
|
|
||||||
if [[ $NINEAPACHE_ACTIVATE == 1 && $NINEAPACHE_LOCAL == 1 ]]
|
|
||||||
then
|
|
||||||
Title ${NINEAPACHE_SERVICE_NAME^^}
|
|
||||||
EchoVert "CONTAINER"
|
|
||||||
upservice ${WORDPRESS_SERVICE_NAME}
|
|
||||||
Echo
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#===========================================================================================================================================
|
#===========================================================================================================================================
|
||||||
#== UP =====================================================================================================================================
|
#== UP =====================================================================================================================================
|
||||||
@ -338,9 +317,19 @@ up(){
|
|||||||
iptables -P INPUT ACCEPT
|
iptables -P INPUT ACCEPT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# NINEAPACHE
|
||||||
|
upnineapache
|
||||||
|
|
||||||
# MARIADB
|
# MARIADB
|
||||||
upmariadb
|
upmariadb
|
||||||
|
|
||||||
|
# REDIS
|
||||||
|
upredis
|
||||||
|
|
||||||
|
# MINIO
|
||||||
|
upminio
|
||||||
|
|
||||||
# OPENLDAP
|
# OPENLDAP
|
||||||
upopenldap
|
upopenldap
|
||||||
|
|
||||||
@ -364,9 +353,7 @@ up(){
|
|||||||
|
|
||||||
# PHPLDAPADMIN
|
# PHPLDAPADMIN
|
||||||
upphpldapadmin
|
upphpldapadmin
|
||||||
|
|
||||||
# NINEAPACHE
|
|
||||||
upnineapache
|
|
||||||
else
|
else
|
||||||
env ${1}
|
env ${1}
|
||||||
up${1}
|
up${1}
|
||||||
@ -381,7 +368,10 @@ destroyall(){
|
|||||||
Question_ouinon "Souhaitez-vous supprimer l'ensemble des containers : Attention cela supprimera vraiment tout ?"
|
Question_ouinon "Souhaitez-vous supprimer l'ensemble des containers : Attention cela supprimera vraiment tout ?"
|
||||||
if [[ "$?" = 0 ]]
|
if [[ "$?" = 0 ]]
|
||||||
then
|
then
|
||||||
|
destroy $NINEAPACHE_SERVICE_NAME 1
|
||||||
destroy $MARIADB_SERVICE_NAME 1
|
destroy $MARIADB_SERVICE_NAME 1
|
||||||
|
destroy $REDIS_SERVICE_NAME 1
|
||||||
|
destroy $MINIO_SERVICE_NAME 1
|
||||||
destroy $OPENLDAP_SERVICE_NAME 1
|
destroy $OPENLDAP_SERVICE_NAME 1
|
||||||
destroy $KEYCLOAK_SERVICE_NAME 1
|
destroy $KEYCLOAK_SERVICE_NAME 1
|
||||||
destroy $NINEGATE_SERVICE_NAME 1
|
destroy $NINEGATE_SERVICE_NAME 1
|
||||||
@ -390,7 +380,6 @@ destroyall(){
|
|||||||
destroy $WORDPRESS_SERVICE_NAME 1
|
destroy $WORDPRESS_SERVICE_NAME 1
|
||||||
destroy $ADMINER_SERVICE_NAME 1
|
destroy $ADMINER_SERVICE_NAME 1
|
||||||
destroy $PHPLDAPADMIN_SERVICE_NAME 1
|
destroy $PHPLDAPADMIN_SERVICE_NAME 1
|
||||||
destroy $NINEAPACHE_SERVICE_NAME 1
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -404,12 +393,7 @@ destroy(){
|
|||||||
Title "DESTROY "${1^^}
|
Title "DESTROY "${1^^}
|
||||||
|
|
||||||
stop $1 1
|
stop $1 1
|
||||||
|
docker-compose rm -s -v -f "$1"
|
||||||
if [[ "$PODCOMPOSEBIN" == "docker-compose" ]]
|
|
||||||
then
|
|
||||||
$PODCOMPOSEBIN rm -s -v -f "$1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [[ "$1" == "$MARIADB_SERVICE_NAME" && $MARIADB_ACTIVATE == 1 && $MARIADB_LOCAL == 1 ]]
|
if [[ "$1" == "$MARIADB_SERVICE_NAME" && $MARIADB_ACTIVATE == 1 && $MARIADB_LOCAL == 1 ]]
|
||||||
then
|
then
|
||||||
@ -437,7 +421,7 @@ destroy(){
|
|||||||
if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
|
if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
|
||||||
if [[ "$?" = 0 || -z $2 ]]
|
if [[ "$?" = 0 || -z $2 ]]
|
||||||
then
|
then
|
||||||
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /nine/delete.sh $KEYCLOAK_SERVICE_NAME
|
docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $KEYCLOAK_SERVICE_NAME
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -446,7 +430,7 @@ destroy(){
|
|||||||
if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
|
if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
|
||||||
if [[ "$?" = 0 || -z $2 ]]
|
if [[ "$?" = 0 || -z $2 ]]
|
||||||
then
|
then
|
||||||
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /nine/delete.sh $NINEGATE_SERVICE_NAME
|
docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $NINEGATE_SERVICE_NAME
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -455,7 +439,7 @@ destroy(){
|
|||||||
if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
|
if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
|
||||||
if [[ "$?" = 0 || -z $2 ]]
|
if [[ "$?" = 0 || -z $2 ]]
|
||||||
then
|
then
|
||||||
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /nine/delete.sh $NINEBOARD_SERVICE_NAME
|
docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $NINEBOARD_SERVICE_NAME
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -464,7 +448,7 @@ destroy(){
|
|||||||
if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ainsi que les fichiers utilisateurs ?";fi
|
if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ainsi que les fichiers utilisateurs ?";fi
|
||||||
if [[ "$?" = 0 || -z $2 ]]
|
if [[ "$?" = 0 || -z $2 ]]
|
||||||
then
|
then
|
||||||
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /nine/delete.sh $NEXTCLOUD_SERVICE_NAME
|
docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $NEXTCLOUD_SERVICE_NAME
|
||||||
sudo rm -rf volume/nextcloud/data
|
sudo rm -rf volume/nextcloud/data
|
||||||
sudo rm -rf volume/nextcloud/html
|
sudo rm -rf volume/nextcloud/html
|
||||||
sudo rm -rf volume/nextcloud/app
|
sudo rm -rf volume/nextcloud/app
|
||||||
@ -476,7 +460,7 @@ destroy(){
|
|||||||
if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
|
if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi
|
||||||
if [[ "$?" = 0 || -z $2 ]]
|
if [[ "$?" = 0 || -z $2 ]]
|
||||||
then
|
then
|
||||||
$PODCOMPOSEBIN exec $MARIADB_SERVICE_NAME /nine/delete.sh $WORDPRESS_SERVICE_NAME
|
docker-compose exec $MARIADB_SERVICE_NAME /nine/delete.sh $WORDPRESS_SERVICE_NAME
|
||||||
sudo rm -rf volume/wordpress/data
|
sudo rm -rf volume/wordpress/data
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -501,7 +485,7 @@ then
|
|||||||
EchoRouge "Vous devez precisez un service"
|
EchoRouge "Vous devez precisez un service"
|
||||||
EchoRouge "nine.sh bash monservice"
|
EchoRouge "nine.sh bash monservice"
|
||||||
else
|
else
|
||||||
$PODCOMPOSEBIN exec $2 "/bin/bash"
|
docker-compose exec $2 "/bin/bash"
|
||||||
fi
|
fi
|
||||||
elif [[ $1 == "destroyall" ]]
|
elif [[ $1 == "destroyall" ]]
|
||||||
then
|
then
|
||||||
@ -517,7 +501,7 @@ then
|
|||||||
fi
|
fi
|
||||||
elif [[ $1 == "logs" ]]
|
elif [[ $1 == "logs" ]]
|
||||||
then
|
then
|
||||||
$PODCOMPOSEBIN logs -f $2
|
docker-compose logs -f $2
|
||||||
elif [[ $1 == "iswait" ]]
|
elif [[ $1 == "iswait" ]]
|
||||||
then
|
then
|
||||||
wait_for_container $2
|
wait_for_container $2
|
||||||
|
14
readme.md
@ -4,6 +4,16 @@
|
|||||||
|
|
||||||
git clone --branch master https://forge.cadoles.com/afornerot/ninedocker.git
|
git clone --branch master https://forge.cadoles.com/afornerot/ninedocker.git
|
||||||
|
|
||||||
|
## Nine sur localhost
|
||||||
|
|
||||||
|
Vous devez ajouter un domaine dans votre host qui pointe sur 127.0.0.0
|
||||||
|
|
||||||
|
Sans personnalisation nine est configuré pour travailler avec nine.local et il écoute le port 7080
|
||||||
|
|
||||||
|
```
|
||||||
|
127.0.0.0 nine.local
|
||||||
|
```
|
||||||
|
|
||||||
## Comment personnaliser
|
## Comment personnaliser
|
||||||
|
|
||||||
Pour personnaliser la configuration de base
|
Pour personnaliser la configuration de base
|
||||||
@ -18,8 +28,8 @@ De base ninedocker est configuré pour fonctionner sur nine.local en https
|
|||||||
Exemple de faire fonctionner le docker en local et en http
|
Exemple de faire fonctionner le docker en local et en http
|
||||||
|
|
||||||
```
|
```
|
||||||
WEB_URL=localhost
|
WEB_URL=mondomaine
|
||||||
PROTOCOLE=http
|
PROTOCOLE=https
|
||||||
```
|
```
|
||||||
|
|
||||||
### Ports & Services associés
|
### Ports & Services associés
|
||||||
|
59
volume/nineapache/nine/apache.conf
Executable file
@ -0,0 +1,59 @@
|
|||||||
|
|
||||||
|
LoadModule rewrite_module modules/mod_rewrite.so
|
||||||
|
ServerName nineapache.local
|
||||||
|
|
||||||
|
ProxyRequests Off
|
||||||
|
ProxyPreserveHost On
|
||||||
|
|
||||||
|
<Proxy *>
|
||||||
|
Require all granted
|
||||||
|
</Proxy>
|
||||||
|
|
||||||
|
ProxyPass /auth http://keycloak:8999/auth retry=0 keepalive=On
|
||||||
|
ProxyPassReverse /auth http://keycloak:8999/auth retry=0
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
ProxyPass /nextcloud http://nextcloud retry=0 keepalive=On
|
||||||
|
ProxyPassReverse /nextcloud http://nextcloud retry=0
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
ProxyPass /wordpress http://wordpress/wordpress retry=0 keepalive=On
|
||||||
|
ProxyPassReverse /wordpress http://wordpress/wordpress retry=0
|
||||||
|
|
||||||
|
ProxyPass /adminer http://adminer:8080 retry=0 keepalive=On
|
||||||
|
ProxyPassReverse /adminer http://adminer:8080 retry=0
|
||||||
|
|
||||||
|
ProxyPass /phpldapadmin http://phpldapadmin/phpldapadmin retry=0 keepalive=On
|
||||||
|
ProxyPassReverse /phpldapadmin http://phpldapadmin/phpldapadmin retry=0
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
|
DocumentRoot "/app/public"
|
||||||
|
<Directory "/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]
|
||||||
|
</Directory>
|
||||||
|
|
0
volume/nineboard/data/private/.gitkeep
Normal file
BIN
volume/nineboard/data/public/avatar/admin.jpg
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
volume/nineboard/data/public/avatar/system.jpg
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
volume/nineboard/data/public/logo/logo.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
0
volume/ninegate/data/private/.gitkeep
Normal file
BIN
volume/ninegate/data/public/avatar/admin.jpg
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
volume/ninegate/data/public/avatar/noavatar.png
Normal file
After Width: | Height: | Size: 936 B |
BIN
volume/ninegate/data/public/avatar/system.jpg
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
volume/ninegate/data/public/header/header.png
Normal file
After Width: | Height: | Size: 122 KiB |
BIN
volume/ninegate/data/public/icon/icon_add.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
volume/ninegate/data/public/icon/icon_adminer.png
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
volume/ninegate/data/public/icon/icon_anchor.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
volume/ninegate/data/public/icon/icon_aperture.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
volume/ninegate/data/public/icon/icon_arrow-down.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
volume/ninegate/data/public/icon/icon_arrow-up.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
volume/ninegate/data/public/icon/icon_art.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
volume/ninegate/data/public/icon/icon_balado.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
volume/ninegate/data/public/icon/icon_bar-chart.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
volume/ninegate/data/public/icon/icon_batteryfull.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
volume/ninegate/data/public/icon/icon_batterylow.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
volume/ninegate/data/public/icon/icon_bdd.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
volume/ninegate/data/public/icon/icon_bike.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
volume/ninegate/data/public/icon/icon_biker.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
volume/ninegate/data/public/icon/icon_bikewheel.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
volume/ninegate/data/public/icon/icon_blimp.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
volume/ninegate/data/public/icon/icon_bolt.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
volume/ninegate/data/public/icon/icon_bomb.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
volume/ninegate/data/public/icon/icon_booklet.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
volume/ninegate/data/public/icon/icon_bookshelf.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
volume/ninegate/data/public/icon/icon_briefcase.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
volume/ninegate/data/public/icon/icon_brightness.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
volume/ninegate/data/public/icon/icon_browser.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
volume/ninegate/data/public/icon/icon_brush-pencil.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
volume/ninegate/data/public/icon/icon_cadoles.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
volume/ninegate/data/public/icon/icon_calculator.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
volume/ninegate/data/public/icon/icon_calendar.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
volume/ninegate/data/public/icon/icon_camera.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
volume/ninegate/data/public/icon/icon_car.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
volume/ninegate/data/public/icon/icon_cart.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
volume/ninegate/data/public/icon/icon_carwheel.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
volume/ninegate/data/public/icon/icon_caution.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
volume/ninegate/data/public/icon/icon_cdt.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
volume/ninegate/data/public/icon/icon_chart.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
volume/ninegate/data/public/icon/icon_chartpie.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
volume/ninegate/data/public/icon/icon_chat.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
volume/ninegate/data/public/icon/icon_check.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
volume/ninegate/data/public/icon/icon_circlecompass.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
volume/ninegate/data/public/icon/icon_clapboard.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
volume/ninegate/data/public/icon/icon_clipboard.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
volume/ninegate/data/public/icon/icon_clock.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
volume/ninegate/data/public/icon/icon_cloud.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
volume/ninegate/data/public/icon/icon_cmyk.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
volume/ninegate/data/public/icon/icon_colorwheel.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
volume/ninegate/data/public/icon/icon_compass.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
volume/ninegate/data/public/icon/icon_compose.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
volume/ninegate/data/public/icon/icon_computer.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
volume/ninegate/data/public/icon/icon_cone.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
volume/ninegate/data/public/icon/icon_contacts.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
volume/ninegate/data/public/icon/icon_contrast.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
volume/ninegate/data/public/icon/icon_countdown.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
volume/ninegate/data/public/icon/icon_creditcard.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
volume/ninegate/data/public/icon/icon_crop.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
volume/ninegate/data/public/icon/icon_crossroads.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
volume/ninegate/data/public/icon/icon_crous.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
volume/ninegate/data/public/icon/icon_cruise.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
volume/ninegate/data/public/icon/icon_cursor.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
volume/ninegate/data/public/icon/icon_denied.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
volume/ninegate/data/public/icon/icon_dev.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
volume/ninegate/data/public/icon/icon_die.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
volume/ninegate/data/public/icon/icon_document.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
volume/ninegate/data/public/icon/icon_dokuwiki.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
volume/ninegate/data/public/icon/icon_dolly.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
volume/ninegate/data/public/icon/icon_door.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
volume/ninegate/data/public/icon/icon_download.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
volume/ninegate/data/public/icon/icon_ead.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
volume/ninegate/data/public/icon/icon_easel.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
volume/ninegate/data/public/icon/icon_econnect.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
volume/ninegate/data/public/icon/icon_email.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
volume/ninegate/data/public/icon/icon_eoe.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
volume/ninegate/data/public/icon/icon_eop.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
volume/ninegate/data/public/icon/icon_etherhome.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
volume/ninegate/data/public/icon/icon_euro.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
volume/ninegate/data/public/icon/icon_eye.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
volume/ninegate/data/public/icon/icon_eyedropper.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
volume/ninegate/data/public/icon/icon_fashion.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
volume/ninegate/data/public/icon/icon_filmreel.png
Normal file
After Width: | Height: | Size: 8.3 KiB |