diff --git a/.env b/.env deleted file mode 100644 index f491ce8..0000000 --- a/.env +++ /dev/null @@ -1,2 +0,0 @@ -PODBIN=docker -PODCOMPOSEBIN=docker-compose \ No newline at end of file diff --git a/.gitignore b/.gitignore index f544ea7..fa7fa65 100644 --- a/.gitignore +++ b/.gitignore @@ -4,14 +4,41 @@ /volume/mariadb/mysql +/volume/minio/data + /volume/nextcloud/data /volume/nextcloud/html /volume/nextcloud/app -/volume/ninegate/data -/volume/ninegate/data +/volume/ninegate/data/private/* +!/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 diff --git a/docker-compose.yml b/docker-compose.yml index 25e2b7c..00e4789 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,22 @@ version: '3' 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: image: docker.io/library/mariadb container_name: nine-mariadb @@ -18,6 +34,28 @@ services: - ./volume/mariadb/mysql:/var/lib/mysql - ./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: image: docker.io/bitnami/openldap:2 container_name: nine-openldap @@ -127,7 +165,9 @@ services: timeout: 60s env_file: ./tmp/.env.wordpress networks: - - nine-network + nine-network: + aliases: + - blog ports: - "9003:80" volumes: @@ -153,20 +193,8 @@ services: ports: - "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: nine-network: - name: nine-network \ No newline at end of file + name: nine-network + + \ No newline at end of file diff --git a/env/.env b/env/.env index d415c3d..1bde0cc 100644 --- a/env/.env +++ b/env/.env @@ -5,6 +5,7 @@ # 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 # 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 @@ -12,7 +13,7 @@ RELEASE_SYSTEM=linux # GLOBAL APP_ENV=PROD WEB_URL=nine.local -PROTOCOLE=https +PROTOCOLE=http # ADMIN USER ADMIN_USER=admin @@ -24,7 +25,13 @@ MASTERIDENTITY=SQL # AUTHENTIFICATION # 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_SERVICE_NAME=mariadb @@ -34,6 +41,20 @@ MARIADB_ROOT_PASSWORD=${ADMIN_PASSWORD} MARIADB_USER=user 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_SYNC Si MASTERIDENTITY = SQL permet la synchronisation des utilisateurs SQL vers LDAP OPENLDAP_SERVICE_NAME=openldap @@ -60,7 +81,7 @@ LDAP_DISPLAYNAME=displayName LDAP_EMAIL=mail LDAP_MEMBER=memberUid 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))" SCRIBE_GROUP=1 SCRIBE_MASTER=1 @@ -75,7 +96,7 @@ CAS_LOCAL=1 CAS_USER=${ADMIN_USER}-keycloak CAS_PASSWORD=${ADMIN_PASSWORD}-keycloak CAS_HOST=${WEB_URL} -CAS_PORT=443 +CAS_PORT=8999 CAS_PATH=/auth/realms/nine/protocol/cas CAS_URL=${PROTOCOLE}://${CAS_HOST}:${CAS_PORT} @@ -106,19 +127,12 @@ WORDPRESS_URL=${PROTOCOLE}://${WEB_URL}/wordpress # ADMINER ADMINER_SERVICE_NAME=adminer -ADMINER_ACTIVATE=0 +ADMINER_ACTIVATE=1 ADMINER_LOCAL=1 ADMINER_URL=${PROTOCOLE}://${WEB_URL}/adminer/?server=${MARIADB_SERVICE_NAME}&username=${MARIADB_USER} # PHPLDAPADMIN PHPLDAPADMIN_SERVICE_NAME=phpldapadmin -PHPLDAPADMIN_ACTIVATE=0 +PHPLDAPADMIN_ACTIVATE=1 PHPLDAPADMIN_LOCAL=1 PHPLDAPADMIN_URL=${PROTOCOLE}://${WEB_URL}/phpldapadmin - -# NINEAPACHE -NINEAPACHE_SERVICE_NAME=nineapache -NINEAPACHE_ACTIVATE=0 -NINEAPACHE_LOCAL=1 -NINEAPACHE_URL=${PROTOCOLE}://${WEB_URL}:9102 - diff --git a/env/.env.zapp.minio b/env/.env.zapp.minio new file mode 100644 index 0000000..dcf683e --- /dev/null +++ b/env/.env.zapp.minio @@ -0,0 +1,3 @@ +MINIO_ROOT_USER=${ADMIN_USER} +MINIO_ROOT_PASSWORD=${ADMIN_PASSWORD} +MINIO_DEFAULT_BUCKETS=nine diff --git a/env/.env.zapp.phpldapadmin b/env/.env.zapp.phpldapadmin index 7bb8822..ac5328b 100644 --- a/env/.env.zapp.phpldapadmin +++ b/env/.env.zapp.phpldapadmin @@ -3,5 +3,5 @@ PHPLDAPADMIN_LDAP_HOSTS=ldap://${LDAP_HOST}:${LDAP_PORT} PHPLDAPADMIN_HTTPS="false" -PHPLDAPADMIN_SERVER_PATH= +PHPLDAPADMIN_SERVER_PATH=/phpldapadmin diff --git a/misc/images/wordpress/containers/nineapache/apache.conf b/misc/images/wordpress/containers/nineapache/apache.conf new file mode 100755 index 0000000..5287e7e --- /dev/null +++ b/misc/images/wordpress/containers/nineapache/apache.conf @@ -0,0 +1,59 @@ + +LoadModule rewrite_module modules/mod_rewrite.so +ServerName nineapache.local + +ProxyRequests Off +ProxyPreserveHost On + + + Require all granted + + +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" + + 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/misc/images/wordpress/containers/volume/entrypoint.sh b/misc/images/wordpress/containers/volume/entrypoint.sh deleted file mode 100755 index 3eeb92e..0000000 --- a/misc/images/wordpress/containers/volume/entrypoint.sh +++ /dev/null @@ -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 $@ \ No newline at end of file diff --git a/misc/images/wordpress/containers/wordpress/apache.conf b/misc/images/wordpress/containers/wordpress/apache.conf index b5bfe45..6cf4914 100644 --- a/misc/images/wordpress/containers/wordpress/apache.conf +++ b/misc/images/wordpress/containers/wordpress/apache.conf @@ -8,17 +8,24 @@ Alias /wordpress /app/public DirectoryIndex index.php Require all granted - RewriteEngine On - RewriteBase /wordpress/ + # BEGIN WordPress Multisite + # 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] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] + RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] + + # END WordPress Multisite + \ No newline at end of file diff --git a/misc/images/wordpress/containers/wordpress/entrypoint.sh b/misc/images/wordpress/containers/wordpress/entrypoint.sh index a282942..bd886e2 100755 --- a/misc/images/wordpress/containers/wordpress/entrypoint.sh +++ b/misc/images/wordpress/containers/wordpress/entrypoint.sh @@ -17,22 +17,24 @@ then fi + 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} +# le ? permet d'enlever le / à la fin de 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 MULTISITE true -wp config set --allow-root SUBDOMAIN_INSTALL false +wp config set --allow-root WP_ALLOW_MULTISITE true --raw +wp config set --allow-root MULTISITE true --raw +wp config set --allow-root SUBDOMAIN_INSTALL false --raw 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 +wp config set --allow-root FORCE_ADMIN_SSL false --raw +wp config set --allow-root SITE_ID_CURRENT_SITE 1 --raw +wp config set --allow-root BLOG_ID_CURRENT_SITE 1 --raw # On fait croire à WP qu'il est en https if grep -qF "_SERVER['HTTPS']='on'" "wp-config.php"; then diff --git a/misc/images/wordpress/docker-compose.yml b/misc/images/wordpress/docker-compose.yml index 45a0ce5..fcf34a9 100755 --- a/misc/images/wordpress/docker-compose.yml +++ b/misc/images/wordpress/docker-compose.yml @@ -1,6 +1,21 @@ version: '3' 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: image: mariadb container_name: wordpress-mariadb @@ -14,6 +29,8 @@ services: MYSQL_PASSWORD: changeme volumes: - mariadb-data:/var/lib/mysql + networks: + - wordpress-network wordpress: build: @@ -34,12 +51,15 @@ services: - WORDPRESS_USER=admin - WORDPRESS_PASSWORD=changeme - WORDPRESS_EMAIL=admin@noreply.fr - - WORDPRESS_PROTOCOL=https - - WORDPRESS_DOMAINE=eolebase.ac-test.fr + - WORDPRESS_PROTOCOL=http + - WORDPRESS_DOMAINE=nine.local - WORDPRESS_ALIAS=/wordpress/ - - #volumes: - # - ./containers/data:/app/public/wp-content/plugins/wp-cas + volumes: + - ./containers/wordpress/entrypoint.sh:/docker/entrypoint.sh + - ./containers/wordpress/apache.conf:/etc/apache2/conf.d/zapp.conf + + networks: + - wordpress-network adminer: image: docker.io/library/adminer @@ -47,6 +67,12 @@ services: restart: always ports: - 9100:8080 + networks: + - wordpress-network volumes: - mariadb-data: \ No newline at end of file + mariadb-data: + +networks: + wordpress-network: + name: wordpress-network diff --git a/nine.sh b/nine.sh index 17238b3..ed94736 100755 --- a/nine.sh +++ b/nine.sh @@ -7,49 +7,15 @@ rm -f ./.env.local cat ./env/.env* >> ./.env.local . ./misc/e-ihm.sh -. .env . ./env/.env -. ./env/.env.local +if [ -f ./env/.env.local ] +then + . ./env/.env.local +fi # Start script 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 . ./.env.local @@ -62,7 +28,10 @@ destroyall(){ Question_ouinon "Souhaitez-vous supprimer l'ensemble des containers : Attention cela supprimera vraiment tout ?" if [[ "$?" = 0 ]] then + destroy $NINEAPACHE_SERVICE_NAME 1 destroy $MARIADB_SERVICE_NAME 1 + destroy $REDIS_SERVICE_NAME 1 + destroy $MINIO_SERVICE_NAME 1 destroy $OPENLDAP_SERVICE_NAME 1 destroy $KEYCLOAK_SERVICE_NAME 1 destroy $NINEGATE_SERVICE_NAME 1 @@ -71,7 +40,6 @@ destroyall(){ destroy $WORDPRESS_SERVICE_NAME 1 destroy $ADMINER_SERVICE_NAME 1 destroy $PHPLDAPADMIN_SERVICE_NAME 1 - destroy $NINEAPACHE_SERVICE_NAME 1 fi } @@ -90,7 +58,10 @@ env() { #=========================================================================================================================================== envall(){ + env $NINEAPACHE_SERVICE_NAME env $MARIADB_SERVICE_NAME + env $REDIS_SERVICE_NAME + env $MINIO_SERVICE_NAME env $OPENLDAP_SERVICE_NAME env $KEYCLOAK_SERVICE_NAME env $NINEGATE_SERVICE_NAME @@ -99,7 +70,6 @@ envall(){ env $WORDPRESS_SERVICE_NAME env $ADMINER_SERVICE_NAME env $PHPLDAPADMIN_SERVICE_NAME - env $NINEAPACHE_SERVICE_NAME } #=========================================================================================================================================== @@ -111,19 +81,7 @@ envall(){ stop() { if [[ "$2" != 1 ]]; then Title "STOP"; fi - $PODCOMPOSEBIN 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 + docker-compose stop $1 } #=========================================================================================================================================== @@ -133,13 +91,13 @@ stop() { wait_for_container() { container_id="nine-$1" - container_name="$($PODBIN inspect "${container_id}" --format '{{ .Name }}')" + container_name="$(docker inspect "${container_id}" --format '{{ .Name }}')" waiting_done="false" 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 - 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 waiting_done="true" fi @@ -151,13 +109,23 @@ wait_for_container() { } upservice(){ - $PODCOMPOSEBIN up -d $1 + docker-compose up -d $1 if [[ $2 == "wait" ]] then wait_for_container $1 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 { if [[ $MARIADB_ACTIVATE == 1 && $MARIADB_LOCAL == 1 ]] then @@ -168,6 +136,26 @@ function upmariadb { 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 { if [[ $LDAP_ACTIVATE == 1 && $LDAP_LOCAL == 1 ]] then @@ -178,7 +166,7 @@ function upopenldap { chmod a+wr ./volume/openldap/data upservice $OPENLDAP_SERVICE_NAME wait - $PODCOMPOSEBIN exec $OPENLDAP_SERVICE_NAME /nine/init.sh + docker-compose exec $OPENLDAP_SERVICE_NAME /nine/init.sh Echo fi } @@ -193,7 +181,7 @@ function upkeycloak { then EchoVert "DATABASE" 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 fi @@ -212,7 +200,7 @@ function upninegate { then EchoVert "DATABASE" 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 fi @@ -232,7 +220,7 @@ function upnineboard { then EchoVert "DATABASE" 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 fi @@ -253,7 +241,7 @@ function upnextcloud { EchoVert "DATABASE" Echo ${NEXTCLOUD_SERVICE_NAME^^} 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 EchoVert "CONTAINER" @@ -272,7 +260,7 @@ function upwordpress { then EchoVert "DATABASE" 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 fi @@ -302,15 +290,6 @@ function upphpldapadmin { fi } -function upnineapache { - if [[ $NINEAPACHE_ACTIVATE == 1 && $NINEAPACHE_LOCAL == 1 ]] - then - Title ${NINEAPACHE_SERVICE_NAME^^} - EchoVert "CONTAINER" - upservice ${WORDPRESS_SERVICE_NAME} - Echo - fi -} #=========================================================================================================================================== #== UP ===================================================================================================================================== @@ -338,9 +317,19 @@ up(){ iptables -P INPUT ACCEPT fi + + # NINEAPACHE + upnineapache + # MARIADB upmariadb + # REDIS + upredis + + # MINIO + upminio + # OPENLDAP upopenldap @@ -364,9 +353,7 @@ up(){ # PHPLDAPADMIN upphpldapadmin - - # NINEAPACHE - upnineapache + else env ${1} up${1} @@ -381,7 +368,10 @@ destroyall(){ Question_ouinon "Souhaitez-vous supprimer l'ensemble des containers : Attention cela supprimera vraiment tout ?" if [[ "$?" = 0 ]] then + destroy $NINEAPACHE_SERVICE_NAME 1 destroy $MARIADB_SERVICE_NAME 1 + destroy $REDIS_SERVICE_NAME 1 + destroy $MINIO_SERVICE_NAME 1 destroy $OPENLDAP_SERVICE_NAME 1 destroy $KEYCLOAK_SERVICE_NAME 1 destroy $NINEGATE_SERVICE_NAME 1 @@ -390,7 +380,6 @@ destroyall(){ destroy $WORDPRESS_SERVICE_NAME 1 destroy $ADMINER_SERVICE_NAME 1 destroy $PHPLDAPADMIN_SERVICE_NAME 1 - destroy $NINEAPACHE_SERVICE_NAME 1 fi } @@ -404,12 +393,7 @@ destroy(){ Title "DESTROY "${1^^} stop $1 1 - - if [[ "$PODCOMPOSEBIN" == "docker-compose" ]] - then - $PODCOMPOSEBIN rm -s -v -f "$1" - fi - + docker-compose rm -s -v -f "$1" if [[ "$1" == "$MARIADB_SERVICE_NAME" && $MARIADB_ACTIVATE == 1 && $MARIADB_LOCAL == 1 ]] then @@ -437,7 +421,7 @@ destroy(){ if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi if [[ "$?" = 0 || -z $2 ]] 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 @@ -446,7 +430,7 @@ destroy(){ if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi if [[ "$?" = 0 || -z $2 ]] 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 @@ -455,7 +439,7 @@ destroy(){ if [[ -z $2 ]]; then Question_ouinon "Souhaitez-vous supprimer la BDD associé à $1 ?";fi if [[ "$?" = 0 || -z $2 ]] 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 @@ -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 [[ "$?" = 0 || -z $2 ]] 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/html 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 [[ "$?" = 0 || -z $2 ]] 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 fi fi @@ -501,7 +485,7 @@ then EchoRouge "Vous devez precisez un service" EchoRouge "nine.sh bash monservice" else - $PODCOMPOSEBIN exec $2 "/bin/bash" + docker-compose exec $2 "/bin/bash" fi elif [[ $1 == "destroyall" ]] then @@ -517,7 +501,7 @@ then fi elif [[ $1 == "logs" ]] then - $PODCOMPOSEBIN logs -f $2 + docker-compose logs -f $2 elif [[ $1 == "iswait" ]] then wait_for_container $2 diff --git a/readme.md b/readme.md index 915b7f0..81833f8 100644 --- a/readme.md +++ b/readme.md @@ -4,6 +4,16 @@ 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 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 ``` -WEB_URL=localhost -PROTOCOLE=http +WEB_URL=mondomaine +PROTOCOLE=https ``` ### Ports & Services associés diff --git a/volume/nineapache/nine/apache.conf b/volume/nineapache/nine/apache.conf new file mode 100755 index 0000000..5287e7e --- /dev/null +++ b/volume/nineapache/nine/apache.conf @@ -0,0 +1,59 @@ + +LoadModule rewrite_module modules/mod_rewrite.so +ServerName nineapache.local + +ProxyRequests Off +ProxyPreserveHost On + + + Require all granted + + +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" + + 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/volume/nineboard/data/private/.gitkeep b/volume/nineboard/data/private/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/volume/nineboard/data/public/avatar/admin.jpg b/volume/nineboard/data/public/avatar/admin.jpg new file mode 100644 index 0000000..0fa3174 Binary files /dev/null and b/volume/nineboard/data/public/avatar/admin.jpg differ diff --git a/volume/nineboard/data/public/avatar/system.jpg b/volume/nineboard/data/public/avatar/system.jpg new file mode 100644 index 0000000..4c8a16b Binary files /dev/null and b/volume/nineboard/data/public/avatar/system.jpg differ diff --git a/volume/nineboard/data/public/logo/logo.png b/volume/nineboard/data/public/logo/logo.png new file mode 100644 index 0000000..f84fa12 Binary files /dev/null and b/volume/nineboard/data/public/logo/logo.png differ diff --git a/volume/ninegate/data/private/.gitkeep b/volume/ninegate/data/private/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/volume/ninegate/data/public/avatar/admin.jpg b/volume/ninegate/data/public/avatar/admin.jpg new file mode 100644 index 0000000..0fa3174 Binary files /dev/null and b/volume/ninegate/data/public/avatar/admin.jpg differ diff --git a/volume/ninegate/data/public/avatar/noavatar.png b/volume/ninegate/data/public/avatar/noavatar.png new file mode 100644 index 0000000..6867515 Binary files /dev/null and b/volume/ninegate/data/public/avatar/noavatar.png differ diff --git a/volume/ninegate/data/public/avatar/system.jpg b/volume/ninegate/data/public/avatar/system.jpg new file mode 100644 index 0000000..4c8a16b Binary files /dev/null and b/volume/ninegate/data/public/avatar/system.jpg differ diff --git a/volume/ninegate/data/public/header/header.png b/volume/ninegate/data/public/header/header.png new file mode 100644 index 0000000..ff43948 Binary files /dev/null and b/volume/ninegate/data/public/header/header.png differ diff --git a/volume/ninegate/data/public/icon/icon_add.png b/volume/ninegate/data/public/icon/icon_add.png new file mode 100644 index 0000000..51fa2e3 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_add.png differ diff --git a/volume/ninegate/data/public/icon/icon_adminer.png b/volume/ninegate/data/public/icon/icon_adminer.png new file mode 100644 index 0000000..a4db9c2 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_adminer.png differ diff --git a/volume/ninegate/data/public/icon/icon_anchor.png b/volume/ninegate/data/public/icon/icon_anchor.png new file mode 100644 index 0000000..af7dc56 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_anchor.png differ diff --git a/volume/ninegate/data/public/icon/icon_aperture.png b/volume/ninegate/data/public/icon/icon_aperture.png new file mode 100644 index 0000000..62bb7bb Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_aperture.png differ diff --git a/volume/ninegate/data/public/icon/icon_arrow-down.png b/volume/ninegate/data/public/icon/icon_arrow-down.png new file mode 100644 index 0000000..2c676bc Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_arrow-down.png differ diff --git a/volume/ninegate/data/public/icon/icon_arrow-up.png b/volume/ninegate/data/public/icon/icon_arrow-up.png new file mode 100644 index 0000000..dd115e7 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_arrow-up.png differ diff --git a/volume/ninegate/data/public/icon/icon_art.png b/volume/ninegate/data/public/icon/icon_art.png new file mode 100644 index 0000000..45e1f76 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_art.png differ diff --git a/volume/ninegate/data/public/icon/icon_balado.png b/volume/ninegate/data/public/icon/icon_balado.png new file mode 100644 index 0000000..39be851 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_balado.png differ diff --git a/volume/ninegate/data/public/icon/icon_bar-chart.png b/volume/ninegate/data/public/icon/icon_bar-chart.png new file mode 100644 index 0000000..61f778f Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_bar-chart.png differ diff --git a/volume/ninegate/data/public/icon/icon_batteryfull.png b/volume/ninegate/data/public/icon/icon_batteryfull.png new file mode 100644 index 0000000..78bb1b2 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_batteryfull.png differ diff --git a/volume/ninegate/data/public/icon/icon_batterylow.png b/volume/ninegate/data/public/icon/icon_batterylow.png new file mode 100644 index 0000000..db1e48d Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_batterylow.png differ diff --git a/volume/ninegate/data/public/icon/icon_bdd.png b/volume/ninegate/data/public/icon/icon_bdd.png new file mode 100644 index 0000000..e717e29 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_bdd.png differ diff --git a/volume/ninegate/data/public/icon/icon_bike.png b/volume/ninegate/data/public/icon/icon_bike.png new file mode 100644 index 0000000..b816bb1 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_bike.png differ diff --git a/volume/ninegate/data/public/icon/icon_biker.png b/volume/ninegate/data/public/icon/icon_biker.png new file mode 100644 index 0000000..9a0fbb1 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_biker.png differ diff --git a/volume/ninegate/data/public/icon/icon_bikewheel.png b/volume/ninegate/data/public/icon/icon_bikewheel.png new file mode 100644 index 0000000..e328e44 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_bikewheel.png differ diff --git a/volume/ninegate/data/public/icon/icon_blimp.png b/volume/ninegate/data/public/icon/icon_blimp.png new file mode 100644 index 0000000..961f127 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_blimp.png differ diff --git a/volume/ninegate/data/public/icon/icon_bolt.png b/volume/ninegate/data/public/icon/icon_bolt.png new file mode 100644 index 0000000..0916bfc Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_bolt.png differ diff --git a/volume/ninegate/data/public/icon/icon_bomb.png b/volume/ninegate/data/public/icon/icon_bomb.png new file mode 100644 index 0000000..5ede7f3 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_bomb.png differ diff --git a/volume/ninegate/data/public/icon/icon_booklet.png b/volume/ninegate/data/public/icon/icon_booklet.png new file mode 100644 index 0000000..5cb7820 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_booklet.png differ diff --git a/volume/ninegate/data/public/icon/icon_bookshelf.png b/volume/ninegate/data/public/icon/icon_bookshelf.png new file mode 100644 index 0000000..eb4cb99 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_bookshelf.png differ diff --git a/volume/ninegate/data/public/icon/icon_briefcase.png b/volume/ninegate/data/public/icon/icon_briefcase.png new file mode 100644 index 0000000..a9eae6b Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_briefcase.png differ diff --git a/volume/ninegate/data/public/icon/icon_brightness.png b/volume/ninegate/data/public/icon/icon_brightness.png new file mode 100644 index 0000000..7e548ed Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_brightness.png differ diff --git a/volume/ninegate/data/public/icon/icon_browser.png b/volume/ninegate/data/public/icon/icon_browser.png new file mode 100644 index 0000000..7ae24e9 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_browser.png differ diff --git a/volume/ninegate/data/public/icon/icon_brush-pencil.png b/volume/ninegate/data/public/icon/icon_brush-pencil.png new file mode 100644 index 0000000..f5dfa6d Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_brush-pencil.png differ diff --git a/volume/ninegate/data/public/icon/icon_cadoles.png b/volume/ninegate/data/public/icon/icon_cadoles.png new file mode 100644 index 0000000..8ae8887 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_cadoles.png differ diff --git a/volume/ninegate/data/public/icon/icon_calculator.png b/volume/ninegate/data/public/icon/icon_calculator.png new file mode 100644 index 0000000..e774c4d Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_calculator.png differ diff --git a/volume/ninegate/data/public/icon/icon_calendar.png b/volume/ninegate/data/public/icon/icon_calendar.png new file mode 100644 index 0000000..a4e22bf Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_calendar.png differ diff --git a/volume/ninegate/data/public/icon/icon_camera.png b/volume/ninegate/data/public/icon/icon_camera.png new file mode 100644 index 0000000..c8a5a87 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_camera.png differ diff --git a/volume/ninegate/data/public/icon/icon_car.png b/volume/ninegate/data/public/icon/icon_car.png new file mode 100644 index 0000000..43b4609 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_car.png differ diff --git a/volume/ninegate/data/public/icon/icon_cart.png b/volume/ninegate/data/public/icon/icon_cart.png new file mode 100644 index 0000000..92abdfc Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_cart.png differ diff --git a/volume/ninegate/data/public/icon/icon_carwheel.png b/volume/ninegate/data/public/icon/icon_carwheel.png new file mode 100644 index 0000000..547d662 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_carwheel.png differ diff --git a/volume/ninegate/data/public/icon/icon_caution.png b/volume/ninegate/data/public/icon/icon_caution.png new file mode 100644 index 0000000..f1c2dd6 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_caution.png differ diff --git a/volume/ninegate/data/public/icon/icon_cdt.png b/volume/ninegate/data/public/icon/icon_cdt.png new file mode 100644 index 0000000..9b17a13 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_cdt.png differ diff --git a/volume/ninegate/data/public/icon/icon_chart.png b/volume/ninegate/data/public/icon/icon_chart.png new file mode 100644 index 0000000..9ae9a5d Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_chart.png differ diff --git a/volume/ninegate/data/public/icon/icon_chartpie.png b/volume/ninegate/data/public/icon/icon_chartpie.png new file mode 100644 index 0000000..c457e17 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_chartpie.png differ diff --git a/volume/ninegate/data/public/icon/icon_chat.png b/volume/ninegate/data/public/icon/icon_chat.png new file mode 100644 index 0000000..e3a2997 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_chat.png differ diff --git a/volume/ninegate/data/public/icon/icon_check.png b/volume/ninegate/data/public/icon/icon_check.png new file mode 100644 index 0000000..399af35 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_check.png differ diff --git a/volume/ninegate/data/public/icon/icon_circlecompass.png b/volume/ninegate/data/public/icon/icon_circlecompass.png new file mode 100644 index 0000000..b49cf52 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_circlecompass.png differ diff --git a/volume/ninegate/data/public/icon/icon_clapboard.png b/volume/ninegate/data/public/icon/icon_clapboard.png new file mode 100644 index 0000000..d0b1933 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_clapboard.png differ diff --git a/volume/ninegate/data/public/icon/icon_clipboard.png b/volume/ninegate/data/public/icon/icon_clipboard.png new file mode 100644 index 0000000..ebc0dcd Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_clipboard.png differ diff --git a/volume/ninegate/data/public/icon/icon_clock.png b/volume/ninegate/data/public/icon/icon_clock.png new file mode 100644 index 0000000..e68fcf1 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_clock.png differ diff --git a/volume/ninegate/data/public/icon/icon_cloud.png b/volume/ninegate/data/public/icon/icon_cloud.png new file mode 100644 index 0000000..20a8797 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_cloud.png differ diff --git a/volume/ninegate/data/public/icon/icon_cmyk.png b/volume/ninegate/data/public/icon/icon_cmyk.png new file mode 100644 index 0000000..666a586 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_cmyk.png differ diff --git a/volume/ninegate/data/public/icon/icon_colorwheel.png b/volume/ninegate/data/public/icon/icon_colorwheel.png new file mode 100644 index 0000000..c847f1a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_colorwheel.png differ diff --git a/volume/ninegate/data/public/icon/icon_compass.png b/volume/ninegate/data/public/icon/icon_compass.png new file mode 100644 index 0000000..a42db4a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_compass.png differ diff --git a/volume/ninegate/data/public/icon/icon_compose.png b/volume/ninegate/data/public/icon/icon_compose.png new file mode 100644 index 0000000..278cef3 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_compose.png differ diff --git a/volume/ninegate/data/public/icon/icon_computer.png b/volume/ninegate/data/public/icon/icon_computer.png new file mode 100644 index 0000000..f1bc1b4 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_computer.png differ diff --git a/volume/ninegate/data/public/icon/icon_cone.png b/volume/ninegate/data/public/icon/icon_cone.png new file mode 100644 index 0000000..46588e2 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_cone.png differ diff --git a/volume/ninegate/data/public/icon/icon_contacts.png b/volume/ninegate/data/public/icon/icon_contacts.png new file mode 100644 index 0000000..edc0f56 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_contacts.png differ diff --git a/volume/ninegate/data/public/icon/icon_contrast.png b/volume/ninegate/data/public/icon/icon_contrast.png new file mode 100644 index 0000000..36be705 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_contrast.png differ diff --git a/volume/ninegate/data/public/icon/icon_countdown.png b/volume/ninegate/data/public/icon/icon_countdown.png new file mode 100644 index 0000000..c7d938a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_countdown.png differ diff --git a/volume/ninegate/data/public/icon/icon_creditcard.png b/volume/ninegate/data/public/icon/icon_creditcard.png new file mode 100644 index 0000000..85d1f2a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_creditcard.png differ diff --git a/volume/ninegate/data/public/icon/icon_crop.png b/volume/ninegate/data/public/icon/icon_crop.png new file mode 100644 index 0000000..871e601 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_crop.png differ diff --git a/volume/ninegate/data/public/icon/icon_crossroads.png b/volume/ninegate/data/public/icon/icon_crossroads.png new file mode 100644 index 0000000..4b2a942 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_crossroads.png differ diff --git a/volume/ninegate/data/public/icon/icon_crous.png b/volume/ninegate/data/public/icon/icon_crous.png new file mode 100644 index 0000000..7111bc0 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_crous.png differ diff --git a/volume/ninegate/data/public/icon/icon_cruise.png b/volume/ninegate/data/public/icon/icon_cruise.png new file mode 100644 index 0000000..e848d13 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_cruise.png differ diff --git a/volume/ninegate/data/public/icon/icon_cursor.png b/volume/ninegate/data/public/icon/icon_cursor.png new file mode 100644 index 0000000..558bc2a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_cursor.png differ diff --git a/volume/ninegate/data/public/icon/icon_denied.png b/volume/ninegate/data/public/icon/icon_denied.png new file mode 100644 index 0000000..eb58be6 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_denied.png differ diff --git a/volume/ninegate/data/public/icon/icon_dev.png b/volume/ninegate/data/public/icon/icon_dev.png new file mode 100644 index 0000000..2df1e9a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_dev.png differ diff --git a/volume/ninegate/data/public/icon/icon_die.png b/volume/ninegate/data/public/icon/icon_die.png new file mode 100644 index 0000000..6ae47ab Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_die.png differ diff --git a/volume/ninegate/data/public/icon/icon_document.png b/volume/ninegate/data/public/icon/icon_document.png new file mode 100644 index 0000000..9743d51 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_document.png differ diff --git a/volume/ninegate/data/public/icon/icon_dokuwiki.png b/volume/ninegate/data/public/icon/icon_dokuwiki.png new file mode 100644 index 0000000..04a402e Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_dokuwiki.png differ diff --git a/volume/ninegate/data/public/icon/icon_dolly.png b/volume/ninegate/data/public/icon/icon_dolly.png new file mode 100644 index 0000000..17b12e8 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_dolly.png differ diff --git a/volume/ninegate/data/public/icon/icon_door.png b/volume/ninegate/data/public/icon/icon_door.png new file mode 100644 index 0000000..ce9d911 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_door.png differ diff --git a/volume/ninegate/data/public/icon/icon_download.png b/volume/ninegate/data/public/icon/icon_download.png new file mode 100644 index 0000000..fa1d0a5 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_download.png differ diff --git a/volume/ninegate/data/public/icon/icon_ead.png b/volume/ninegate/data/public/icon/icon_ead.png new file mode 100644 index 0000000..777365f Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_ead.png differ diff --git a/volume/ninegate/data/public/icon/icon_easel.png b/volume/ninegate/data/public/icon/icon_easel.png new file mode 100644 index 0000000..48efd8c Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_easel.png differ diff --git a/volume/ninegate/data/public/icon/icon_econnect.png b/volume/ninegate/data/public/icon/icon_econnect.png new file mode 100644 index 0000000..2fcf489 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_econnect.png differ diff --git a/volume/ninegate/data/public/icon/icon_email.png b/volume/ninegate/data/public/icon/icon_email.png new file mode 100644 index 0000000..ddd3095 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_email.png differ diff --git a/volume/ninegate/data/public/icon/icon_eoe.png b/volume/ninegate/data/public/icon/icon_eoe.png new file mode 100644 index 0000000..a4d1f7f Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_eoe.png differ diff --git a/volume/ninegate/data/public/icon/icon_eop.png b/volume/ninegate/data/public/icon/icon_eop.png new file mode 100644 index 0000000..b974039 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_eop.png differ diff --git a/volume/ninegate/data/public/icon/icon_etherhome.png b/volume/ninegate/data/public/icon/icon_etherhome.png new file mode 100644 index 0000000..ece5812 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_etherhome.png differ diff --git a/volume/ninegate/data/public/icon/icon_euro.png b/volume/ninegate/data/public/icon/icon_euro.png new file mode 100644 index 0000000..60fcaad Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_euro.png differ diff --git a/volume/ninegate/data/public/icon/icon_eye.png b/volume/ninegate/data/public/icon/icon_eye.png new file mode 100644 index 0000000..9acf5db Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_eye.png differ diff --git a/volume/ninegate/data/public/icon/icon_eyedropper.png b/volume/ninegate/data/public/icon/icon_eyedropper.png new file mode 100644 index 0000000..abaa9f5 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_eyedropper.png differ diff --git a/volume/ninegate/data/public/icon/icon_fashion.png b/volume/ninegate/data/public/icon/icon_fashion.png new file mode 100644 index 0000000..357e7b2 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_fashion.png differ diff --git a/volume/ninegate/data/public/icon/icon_filmreel.png b/volume/ninegate/data/public/icon/icon_filmreel.png new file mode 100644 index 0000000..4852656 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_filmreel.png differ diff --git a/volume/ninegate/data/public/icon/icon_filmroll.png b/volume/ninegate/data/public/icon/icon_filmroll.png new file mode 100644 index 0000000..17ad9b5 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_filmroll.png differ diff --git a/volume/ninegate/data/public/icon/icon_flag.png b/volume/ninegate/data/public/icon/icon_flag.png new file mode 100644 index 0000000..8b9fa42 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_flag.png differ diff --git a/volume/ninegate/data/public/icon/icon_flame.png b/volume/ninegate/data/public/icon/icon_flame.png new file mode 100644 index 0000000..808b8da Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_flame.png differ diff --git a/volume/ninegate/data/public/icon/icon_flash.png b/volume/ninegate/data/public/icon/icon_flash.png new file mode 100644 index 0000000..d08c400 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_flash.png differ diff --git a/volume/ninegate/data/public/icon/icon_flower.png b/volume/ninegate/data/public/icon/icon_flower.png new file mode 100644 index 0000000..6d95c6e Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_flower.png differ diff --git a/volume/ninegate/data/public/icon/icon_fluxbb.png b/volume/ninegate/data/public/icon/icon_fluxbb.png new file mode 100644 index 0000000..ff9d8c2 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_fluxbb.png differ diff --git a/volume/ninegate/data/public/icon/icon_focus.png b/volume/ninegate/data/public/icon/icon_focus.png new file mode 100644 index 0000000..ebe505b Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_focus.png differ diff --git a/volume/ninegate/data/public/icon/icon_folder.png b/volume/ninegate/data/public/icon/icon_folder.png new file mode 100644 index 0000000..ba7264f Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_folder.png differ diff --git a/volume/ninegate/data/public/icon/icon_frames.png b/volume/ninegate/data/public/icon/icon_frames.png new file mode 100644 index 0000000..d0de0eb Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_frames.png differ diff --git a/volume/ninegate/data/public/icon/icon_gamecontroller.png b/volume/ninegate/data/public/icon/icon_gamecontroller.png new file mode 100644 index 0000000..f9f85d9 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_gamecontroller.png differ diff --git a/volume/ninegate/data/public/icon/icon_gas.png b/volume/ninegate/data/public/icon/icon_gas.png new file mode 100644 index 0000000..866b926 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_gas.png differ diff --git a/volume/ninegate/data/public/icon/icon_gear.png b/volume/ninegate/data/public/icon/icon_gear.png new file mode 100644 index 0000000..1a74a4f Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_gear.png differ diff --git a/volume/ninegate/data/public/icon/icon_genconfig.png b/volume/ninegate/data/public/icon/icon_genconfig.png new file mode 100644 index 0000000..b85cca3 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_genconfig.png differ diff --git a/volume/ninegate/data/public/icon/icon_genius.png b/volume/ninegate/data/public/icon/icon_genius.png new file mode 100644 index 0000000..632ee24 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_genius.png differ diff --git a/volume/ninegate/data/public/icon/icon_gepi.png b/volume/ninegate/data/public/icon/icon_gepi.png new file mode 100644 index 0000000..1d99ae3 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_gepi.png differ diff --git a/volume/ninegate/data/public/icon/icon_global.png b/volume/ninegate/data/public/icon/icon_global.png new file mode 100644 index 0000000..a1bb645 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_global.png differ diff --git a/volume/ninegate/data/public/icon/icon_globe.png b/volume/ninegate/data/public/icon/icon_globe.png new file mode 100644 index 0000000..bd458e0 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_globe.png differ diff --git a/volume/ninegate/data/public/icon/icon_glpi.png b/volume/ninegate/data/public/icon/icon_glpi.png new file mode 100644 index 0000000..c1e4fe6 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_glpi.png differ diff --git a/volume/ninegate/data/public/icon/icon_gps.png b/volume/ninegate/data/public/icon/icon_gps.png new file mode 100644 index 0000000..270afbb Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_gps.png differ diff --git a/volume/ninegate/data/public/icon/icon_grr.png b/volume/ninegate/data/public/icon/icon_grr.png new file mode 100644 index 0000000..0966e03 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_grr.png differ diff --git a/volume/ninegate/data/public/icon/icon_hazard.png b/volume/ninegate/data/public/icon/icon_hazard.png new file mode 100644 index 0000000..2789918 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_hazard.png differ diff --git a/volume/ninegate/data/public/icon/icon_heart.png b/volume/ninegate/data/public/icon/icon_heart.png new file mode 100644 index 0000000..8109854 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_heart.png differ diff --git a/volume/ninegate/data/public/icon/icon_helicopter.png b/volume/ninegate/data/public/icon/icon_helicopter.png new file mode 100644 index 0000000..0d25230 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_helicopter.png differ diff --git a/volume/ninegate/data/public/icon/icon_hotair.png b/volume/ninegate/data/public/icon/icon_hotair.png new file mode 100644 index 0000000..8089149 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_hotair.png differ diff --git a/volume/ninegate/data/public/icon/icon_hourglass.png b/volume/ninegate/data/public/icon/icon_hourglass.png new file mode 100644 index 0000000..9856c80 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_hourglass.png differ diff --git a/volume/ninegate/data/public/icon/icon_image.png b/volume/ninegate/data/public/icon/icon_image.png new file mode 100644 index 0000000..9e1bd3a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_image.png differ diff --git a/volume/ninegate/data/public/icon/icon_info.png b/volume/ninegate/data/public/icon/icon_info.png new file mode 100644 index 0000000..81b674b Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_info.png differ diff --git a/volume/ninegate/data/public/icon/icon_interstate.png b/volume/ninegate/data/public/icon/icon_interstate.png new file mode 100644 index 0000000..bb8445a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_interstate.png differ diff --git a/volume/ninegate/data/public/icon/icon_kanboard.png b/volume/ninegate/data/public/icon/icon_kanboard.png new file mode 100755 index 0000000..b959be1 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_kanboard.png differ diff --git a/volume/ninegate/data/public/icon/icon_key.png b/volume/ninegate/data/public/icon/icon_key.png new file mode 100644 index 0000000..103fbab Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_key.png differ diff --git a/volume/ninegate/data/public/icon/icon_keyboard.png b/volume/ninegate/data/public/icon/icon_keyboard.png new file mode 100644 index 0000000..c041d28 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_keyboard.png differ diff --git a/volume/ninegate/data/public/icon/icon_lens.png b/volume/ninegate/data/public/icon/icon_lens.png new file mode 100644 index 0000000..d549f74 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_lens.png differ diff --git a/volume/ninegate/data/public/icon/icon_lightbulb.png b/volume/ninegate/data/public/icon/icon_lightbulb.png new file mode 100644 index 0000000..eea9ba8 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_lightbulb.png differ diff --git a/volume/ninegate/data/public/icon/icon_limesurvey.png b/volume/ninegate/data/public/icon/icon_limesurvey.png new file mode 100644 index 0000000..0a8caa3 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_limesurvey.png differ diff --git a/volume/ninegate/data/public/icon/icon_loading.png b/volume/ninegate/data/public/icon/icon_loading.png new file mode 100644 index 0000000..a289868 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_loading.png differ diff --git a/volume/ninegate/data/public/icon/icon_location.png b/volume/ninegate/data/public/icon/icon_location.png new file mode 100644 index 0000000..d817891 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_location.png differ diff --git a/volume/ninegate/data/public/icon/icon_locked.png b/volume/ninegate/data/public/icon/icon_locked.png new file mode 100644 index 0000000..cd8b228 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_locked.png differ diff --git a/volume/ninegate/data/public/icon/icon_loomio.png b/volume/ninegate/data/public/icon/icon_loomio.png new file mode 100644 index 0000000..c04741e Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_loomio.png differ diff --git a/volume/ninegate/data/public/icon/icon_magicwand.png b/volume/ninegate/data/public/icon/icon_magicwand.png new file mode 100644 index 0000000..c52ca5c Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_magicwand.png differ diff --git a/volume/ninegate/data/public/icon/icon_magnifyingglass.png b/volume/ninegate/data/public/icon/icon_magnifyingglass.png new file mode 100644 index 0000000..0991168 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_magnifyingglass.png differ diff --git a/volume/ninegate/data/public/icon/icon_mail.png b/volume/ninegate/data/public/icon/icon_mail.png new file mode 100644 index 0000000..9a62d45 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_mail.png differ diff --git a/volume/ninegate/data/public/icon/icon_map.png b/volume/ninegate/data/public/icon/icon_map.png new file mode 100644 index 0000000..8c7febe Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_map.png differ diff --git a/volume/ninegate/data/public/icon/icon_mariane.png b/volume/ninegate/data/public/icon/icon_mariane.png new file mode 100644 index 0000000..f6baa92 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_mariane.png differ diff --git a/volume/ninegate/data/public/icon/icon_megaphone.png b/volume/ninegate/data/public/icon/icon_megaphone.png new file mode 100644 index 0000000..8154b9c Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_megaphone.png differ diff --git a/volume/ninegate/data/public/icon/icon_megaphone2.png b/volume/ninegate/data/public/icon/icon_megaphone2.png new file mode 100644 index 0000000..7596de6 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_megaphone2.png differ diff --git a/volume/ninegate/data/public/icon/icon_memorycard.png b/volume/ninegate/data/public/icon/icon_memorycard.png new file mode 100644 index 0000000..02b20a6 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_memorycard.png differ diff --git a/volume/ninegate/data/public/icon/icon_merge.png b/volume/ninegate/data/public/icon/icon_merge.png new file mode 100644 index 0000000..b5e406c Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_merge.png differ diff --git a/volume/ninegate/data/public/icon/icon_mic.png b/volume/ninegate/data/public/icon/icon_mic.png new file mode 100644 index 0000000..9343c52 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_mic.png differ diff --git a/volume/ninegate/data/public/icon/icon_microphone.png b/volume/ninegate/data/public/icon/icon_microphone.png new file mode 100644 index 0000000..f48af83 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_microphone.png differ diff --git a/volume/ninegate/data/public/icon/icon_mindmaps.png b/volume/ninegate/data/public/icon/icon_mindmaps.png new file mode 100644 index 0000000..74a881a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_mindmaps.png differ diff --git a/volume/ninegate/data/public/icon/icon_money.png b/volume/ninegate/data/public/icon/icon_money.png new file mode 100644 index 0000000..538c053 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_money.png differ diff --git a/volume/ninegate/data/public/icon/icon_moodle.png b/volume/ninegate/data/public/icon/icon_moodle.png new file mode 100644 index 0000000..9633a88 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_moodle.png differ diff --git a/volume/ninegate/data/public/icon/icon_motorcycle.png b/volume/ninegate/data/public/icon/icon_motorcycle.png new file mode 100644 index 0000000..3ae8a93 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_motorcycle.png differ diff --git a/volume/ninegate/data/public/icon/icon_music.png b/volume/ninegate/data/public/icon/icon_music.png new file mode 100644 index 0000000..8916291 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_music.png differ diff --git a/volume/ninegate/data/public/icon/icon_news.png b/volume/ninegate/data/public/icon/icon_news.png new file mode 100644 index 0000000..1863fba Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_news.png differ diff --git a/volume/ninegate/data/public/icon/icon_nextcloud.png b/volume/ninegate/data/public/icon/icon_nextcloud.png new file mode 100644 index 0000000..6e70208 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_nextcloud.png differ diff --git a/volume/ninegate/data/public/icon/icon_nineboard.png b/volume/ninegate/data/public/icon/icon_nineboard.png new file mode 100644 index 0000000..f84fa12 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_nineboard.png differ diff --git a/volume/ninegate/data/public/icon/icon_nineschool.png b/volume/ninegate/data/public/icon/icon_nineschool.png new file mode 100644 index 0000000..7d69e85 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_nineschool.png differ diff --git a/volume/ninegate/data/public/icon/icon_ninesurvey.png b/volume/ninegate/data/public/icon/icon_ninesurvey.png new file mode 100644 index 0000000..c2a11c0 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_ninesurvey.png differ diff --git a/volume/ninegate/data/public/icon/icon_onlyoffice.png b/volume/ninegate/data/public/icon/icon_onlyoffice.png new file mode 100644 index 0000000..1579862 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_onlyoffice.png differ diff --git a/volume/ninegate/data/public/icon/icon_opensondage.png b/volume/ninegate/data/public/icon/icon_opensondage.png new file mode 100644 index 0000000..1d6f334 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_opensondage.png differ diff --git a/volume/ninegate/data/public/icon/icon_paintbrush.png b/volume/ninegate/data/public/icon/icon_paintbrush.png new file mode 100644 index 0000000..431a595 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_paintbrush.png differ diff --git a/volume/ninegate/data/public/icon/icon_paintbrush2.png b/volume/ninegate/data/public/icon/icon_paintbrush2.png new file mode 100644 index 0000000..1e87e0c Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_paintbrush2.png differ diff --git a/volume/ninegate/data/public/icon/icon_paintcan.png b/volume/ninegate/data/public/icon/icon_paintcan.png new file mode 100644 index 0000000..7f7f605 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_paintcan.png differ diff --git a/volume/ninegate/data/public/icon/icon_paintroller.png b/volume/ninegate/data/public/icon/icon_paintroller.png new file mode 100644 index 0000000..472c69f Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_paintroller.png differ diff --git a/volume/ninegate/data/public/icon/icon_parachute.png b/volume/ninegate/data/public/icon/icon_parachute.png new file mode 100644 index 0000000..856517a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_parachute.png differ diff --git a/volume/ninegate/data/public/icon/icon_pencil.png b/volume/ninegate/data/public/icon/icon_pencil.png new file mode 100644 index 0000000..a9c5e54 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_pencil.png differ diff --git a/volume/ninegate/data/public/icon/icon_phone.png b/volume/ninegate/data/public/icon/icon_phone.png new file mode 100644 index 0000000..1f49677 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_phone.png differ diff --git a/volume/ninegate/data/public/icon/icon_phpldapadmin.png b/volume/ninegate/data/public/icon/icon_phpldapadmin.png new file mode 100644 index 0000000..39a1f48 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_phpldapadmin.png differ diff --git a/volume/ninegate/data/public/icon/icon_piechart.png b/volume/ninegate/data/public/icon/icon_piechart.png new file mode 100644 index 0000000..ec74a32 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_piechart.png differ diff --git a/volume/ninegate/data/public/icon/icon_pin.png b/volume/ninegate/data/public/icon/icon_pin.png new file mode 100644 index 0000000..cfe3ad5 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_pin.png differ diff --git a/volume/ninegate/data/public/icon/icon_pin2.png b/volume/ninegate/data/public/icon/icon_pin2.png new file mode 100644 index 0000000..2ddd41e Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_pin2.png differ diff --git a/volume/ninegate/data/public/icon/icon_piwigo.png b/volume/ninegate/data/public/icon/icon_piwigo.png new file mode 100644 index 0000000..74c251c Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_piwigo.png differ diff --git a/volume/ninegate/data/public/icon/icon_piwik.png b/volume/ninegate/data/public/icon/icon_piwik.png new file mode 100644 index 0000000..b98f329 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_piwik.png differ diff --git a/volume/ninegate/data/public/icon/icon_plane.png b/volume/ninegate/data/public/icon/icon_plane.png new file mode 100644 index 0000000..f94d6ee Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_plane.png differ diff --git a/volume/ninegate/data/public/icon/icon_play.png b/volume/ninegate/data/public/icon/icon_play.png new file mode 100644 index 0000000..04d8d7f Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_play.png differ diff --git a/volume/ninegate/data/public/icon/icon_plugin.png b/volume/ninegate/data/public/icon/icon_plugin.png new file mode 100644 index 0000000..344e8b5 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_plugin.png differ diff --git a/volume/ninegate/data/public/icon/icon_polaroid.png b/volume/ninegate/data/public/icon/icon_polaroid.png new file mode 100644 index 0000000..c1fa5c0 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_polaroid.png differ diff --git a/volume/ninegate/data/public/icon/icon_polaroidcamera.png b/volume/ninegate/data/public/icon/icon_polaroidcamera.png new file mode 100644 index 0000000..8a7b9d0 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_polaroidcamera.png differ diff --git a/volume/ninegate/data/public/icon/icon_polaroids.png b/volume/ninegate/data/public/icon/icon_polaroids.png new file mode 100644 index 0000000..d64b72d Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_polaroids.png differ diff --git a/volume/ninegate/data/public/icon/icon_power.png b/volume/ninegate/data/public/icon/icon_power.png new file mode 100644 index 0000000..d7220f3 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_power.png differ diff --git a/volume/ninegate/data/public/icon/icon_present.png b/volume/ninegate/data/public/icon/icon_present.png new file mode 100644 index 0000000..40c7836 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_present.png differ diff --git a/volume/ninegate/data/public/icon/icon_profle.png b/volume/ninegate/data/public/icon/icon_profle.png new file mode 100644 index 0000000..ccb6b6d Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_profle.png differ diff --git a/volume/ninegate/data/public/icon/icon_quote.png b/volume/ninegate/data/public/icon/icon_quote.png new file mode 100644 index 0000000..7a70747 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_quote.png differ diff --git a/volume/ninegate/data/public/icon/icon_racingflags.png b/volume/ninegate/data/public/icon/icon_racingflags.png new file mode 100644 index 0000000..444a334 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_racingflags.png differ diff --git a/volume/ninegate/data/public/icon/icon_radio.png b/volume/ninegate/data/public/icon/icon_radio.png new file mode 100644 index 0000000..b6c250d Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_radio.png differ diff --git a/volume/ninegate/data/public/icon/icon_radiotower.png b/volume/ninegate/data/public/icon/icon_radiotower.png new file mode 100644 index 0000000..fc84ad5 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_radiotower.png differ diff --git a/volume/ninegate/data/public/icon/icon_rainbow.png b/volume/ninegate/data/public/icon/icon_rainbow.png new file mode 100644 index 0000000..8e56862 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_rainbow.png differ diff --git a/volume/ninegate/data/public/icon/icon_recycle.png b/volume/ninegate/data/public/icon/icon_recycle.png new file mode 100644 index 0000000..b10aa59 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_recycle.png differ diff --git a/volume/ninegate/data/public/icon/icon_rgb.png b/volume/ninegate/data/public/icon/icon_rgb.png new file mode 100644 index 0000000..b74d24a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_rgb.png differ diff --git a/volume/ninegate/data/public/icon/icon_ribbon.png b/volume/ninegate/data/public/icon/icon_ribbon.png new file mode 100644 index 0000000..9c9f94e Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_ribbon.png differ diff --git a/volume/ninegate/data/public/icon/icon_roadblock.png b/volume/ninegate/data/public/icon/icon_roadblock.png new file mode 100644 index 0000000..2240dd0 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_roadblock.png differ diff --git a/volume/ninegate/data/public/icon/icon_rocket.png b/volume/ninegate/data/public/icon/icon_rocket.png new file mode 100644 index 0000000..b73e03e Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_rocket.png differ diff --git a/volume/ninegate/data/public/icon/icon_roundcube.png b/volume/ninegate/data/public/icon/icon_roundcube.png new file mode 100644 index 0000000..77be092 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_roundcube.png differ diff --git a/volume/ninegate/data/public/icon/icon_rss.png b/volume/ninegate/data/public/icon/icon_rss.png new file mode 100644 index 0000000..3b77b30 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_rss.png differ diff --git a/volume/ninegate/data/public/icon/icon_rulertriangle.png b/volume/ninegate/data/public/icon/icon_rulertriangle.png new file mode 100644 index 0000000..cee3b45 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_rulertriangle.png differ diff --git a/volume/ninegate/data/public/icon/icon_rundeck.png b/volume/ninegate/data/public/icon/icon_rundeck.png new file mode 100644 index 0000000..7bde972 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_rundeck.png differ diff --git a/volume/ninegate/data/public/icon/icon_running.png b/volume/ninegate/data/public/icon/icon_running.png new file mode 100644 index 0000000..b753946 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_running.png differ diff --git a/volume/ninegate/data/public/icon/icon_sacoche.png b/volume/ninegate/data/public/icon/icon_sacoche.png new file mode 100644 index 0000000..d1deb40 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_sacoche.png differ diff --git a/volume/ninegate/data/public/icon/icon_sailboat.png b/volume/ninegate/data/public/icon/icon_sailboat.png new file mode 100644 index 0000000..7bdb19c Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_sailboat.png differ diff --git a/volume/ninegate/data/public/icon/icon_schooolbus.png b/volume/ninegate/data/public/icon/icon_schooolbus.png new file mode 100644 index 0000000..49ea70e Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_schooolbus.png differ diff --git a/volume/ninegate/data/public/icon/icon_scissors.png b/volume/ninegate/data/public/icon/icon_scissors.png new file mode 100644 index 0000000..842c1c3 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_scissors.png differ diff --git a/volume/ninegate/data/public/icon/icon_scooter.png b/volume/ninegate/data/public/icon/icon_scooter.png new file mode 100644 index 0000000..2807878 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_scooter.png differ diff --git a/volume/ninegate/data/public/icon/icon_security.png b/volume/ninegate/data/public/icon/icon_security.png new file mode 100644 index 0000000..bfddd67 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_security.png differ diff --git a/volume/ninegate/data/public/icon/icon_selftimer.png b/volume/ninegate/data/public/icon/icon_selftimer.png new file mode 100644 index 0000000..005832b Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_selftimer.png differ diff --git a/volume/ninegate/data/public/icon/icon_settings.png b/volume/ninegate/data/public/icon/icon_settings.png new file mode 100644 index 0000000..c2e58bd Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_settings.png differ diff --git a/volume/ninegate/data/public/icon/icon_shipwheel.png b/volume/ninegate/data/public/icon/icon_shipwheel.png new file mode 100644 index 0000000..6387e69 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_shipwheel.png differ diff --git a/volume/ninegate/data/public/icon/icon_shoeprints.png b/volume/ninegate/data/public/icon/icon_shoeprints.png new file mode 100644 index 0000000..bf6dbb7 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_shoeprints.png differ diff --git a/volume/ninegate/data/public/icon/icon_shop.png b/volume/ninegate/data/public/icon/icon_shop.png new file mode 100644 index 0000000..622e89f Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_shop.png differ diff --git a/volume/ninegate/data/public/icon/icon_skateboard.png b/volume/ninegate/data/public/icon/icon_skateboard.png new file mode 100644 index 0000000..660b5c8 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_skateboard.png differ diff --git a/volume/ninegate/data/public/icon/icon_slr.png b/volume/ninegate/data/public/icon/icon_slr.png new file mode 100644 index 0000000..115ab6c Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_slr.png differ diff --git a/volume/ninegate/data/public/icon/icon_smartphone.png b/volume/ninegate/data/public/icon/icon_smartphone.png new file mode 100644 index 0000000..bdf5eef Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_smartphone.png differ diff --git a/volume/ninegate/data/public/icon/icon_spaceshuttle.png b/volume/ninegate/data/public/icon/icon_spaceshuttle.png new file mode 100644 index 0000000..a438c1f Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_spaceshuttle.png differ diff --git a/volume/ninegate/data/public/icon/icon_speaker.png b/volume/ninegate/data/public/icon/icon_speaker.png new file mode 100644 index 0000000..c94065e Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_speaker.png differ diff --git a/volume/ninegate/data/public/icon/icon_speedometer.png b/volume/ninegate/data/public/icon/icon_speedometer.png new file mode 100644 index 0000000..624bbf3 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_speedometer.png differ diff --git a/volume/ninegate/data/public/icon/icon_spraypaint.png b/volume/ninegate/data/public/icon/icon_spraypaint.png new file mode 100644 index 0000000..456cfe0 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_spraypaint.png differ diff --git a/volume/ninegate/data/public/icon/icon_stack.png b/volume/ninegate/data/public/icon/icon_stack.png new file mode 100644 index 0000000..9a88a27 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_stack.png differ diff --git a/volume/ninegate/data/public/icon/icon_star.png b/volume/ninegate/data/public/icon/icon_star.png new file mode 100644 index 0000000..b1deca3 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_star.png differ diff --git a/volume/ninegate/data/public/icon/icon_steeringwheel.png b/volume/ninegate/data/public/icon/icon_steeringwheel.png new file mode 100644 index 0000000..b2d7a57 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_steeringwheel.png differ diff --git a/volume/ninegate/data/public/icon/icon_stop.png b/volume/ninegate/data/public/icon/icon_stop.png new file mode 100644 index 0000000..d94da0a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_stop.png differ diff --git a/volume/ninegate/data/public/icon/icon_sub.png b/volume/ninegate/data/public/icon/icon_sub.png new file mode 100644 index 0000000..542d81a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_sub.png differ diff --git a/volume/ninegate/data/public/icon/icon_submarine.png b/volume/ninegate/data/public/icon/icon_submarine.png new file mode 100644 index 0000000..c95c68b Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_submarine.png differ diff --git a/volume/ninegate/data/public/icon/icon_support.png b/volume/ninegate/data/public/icon/icon_support.png new file mode 100644 index 0000000..1e480c4 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_support.png differ diff --git a/volume/ninegate/data/public/icon/icon_swatches.png b/volume/ninegate/data/public/icon/icon_swatches.png new file mode 100644 index 0000000..3afd42e Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_swatches.png differ diff --git a/volume/ninegate/data/public/icon/icon_tablet.png b/volume/ninegate/data/public/icon/icon_tablet.png new file mode 100644 index 0000000..0d718c2 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_tablet.png differ diff --git a/volume/ninegate/data/public/icon/icon_takeoff.png b/volume/ninegate/data/public/icon/icon_takeoff.png new file mode 100644 index 0000000..319c94a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_takeoff.png differ diff --git a/volume/ninegate/data/public/icon/icon_target.png b/volume/ninegate/data/public/icon/icon_target.png new file mode 100644 index 0000000..3e61236 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_target.png differ diff --git a/volume/ninegate/data/public/icon/icon_taxi.png b/volume/ninegate/data/public/icon/icon_taxi.png new file mode 100644 index 0000000..4714269 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_taxi.png differ diff --git a/volume/ninegate/data/public/icon/icon_tchap.png b/volume/ninegate/data/public/icon/icon_tchap.png new file mode 100644 index 0000000..fd0be35 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_tchap.png differ diff --git a/volume/ninegate/data/public/icon/icon_toolbox.png b/volume/ninegate/data/public/icon/icon_toolbox.png new file mode 100644 index 0000000..52a155e Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_toolbox.png differ diff --git a/volume/ninegate/data/public/icon/icon_tools.png b/volume/ninegate/data/public/icon/icon_tools.png new file mode 100644 index 0000000..7a10cfd Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_tools.png differ diff --git a/volume/ninegate/data/public/icon/icon_tractor.png b/volume/ninegate/data/public/icon/icon_tractor.png new file mode 100644 index 0000000..75ac7b9 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_tractor.png differ diff --git a/volume/ninegate/data/public/icon/icon_traffic.png b/volume/ninegate/data/public/icon/icon_traffic.png new file mode 100644 index 0000000..bb7bae2 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_traffic.png differ diff --git a/volume/ninegate/data/public/icon/icon_train.png b/volume/ninegate/data/public/icon/icon_train.png new file mode 100644 index 0000000..1ecdd79 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_train.png differ diff --git a/volume/ninegate/data/public/icon/icon_travelerbag.png b/volume/ninegate/data/public/icon/icon_travelerbag.png new file mode 100644 index 0000000..bb9d673 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_travelerbag.png differ diff --git a/volume/ninegate/data/public/icon/icon_trends.png b/volume/ninegate/data/public/icon/icon_trends.png new file mode 100644 index 0000000..e5ed867 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_trends.png differ diff --git a/volume/ninegate/data/public/icon/icon_tripod.png b/volume/ninegate/data/public/icon/icon_tripod.png new file mode 100644 index 0000000..ea8c255 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_tripod.png differ diff --git a/volume/ninegate/data/public/icon/icon_trophy.png b/volume/ninegate/data/public/icon/icon_trophy.png new file mode 100644 index 0000000..5413c9b Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_trophy.png differ diff --git a/volume/ninegate/data/public/icon/icon_truck.png b/volume/ninegate/data/public/icon/icon_truck.png new file mode 100644 index 0000000..4fbc387 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_truck.png differ diff --git a/volume/ninegate/data/public/icon/icon_tv.png b/volume/ninegate/data/public/icon/icon_tv.png new file mode 100644 index 0000000..05ef118 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_tv.png differ diff --git a/volume/ninegate/data/public/icon/icon_typography.png b/volume/ninegate/data/public/icon/icon_typography.png new file mode 100644 index 0000000..d8807c1 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_typography.png differ diff --git a/volume/ninegate/data/public/icon/icon_ufo.png b/volume/ninegate/data/public/icon/icon_ufo.png new file mode 100644 index 0000000..8149060 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_ufo.png differ diff --git a/volume/ninegate/data/public/icon/icon_umbrella.png b/volume/ninegate/data/public/icon/icon_umbrella.png new file mode 100644 index 0000000..c63641b Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_umbrella.png differ diff --git a/volume/ninegate/data/public/icon/icon_unicycle.png b/volume/ninegate/data/public/icon/icon_unicycle.png new file mode 100644 index 0000000..b0a0028 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_unicycle.png differ diff --git a/volume/ninegate/data/public/icon/icon_unlocked.png b/volume/ninegate/data/public/icon/icon_unlocked.png new file mode 100644 index 0000000..15676f1 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_unlocked.png differ diff --git a/volume/ninegate/data/public/icon/icon_upload.png b/volume/ninegate/data/public/icon/icon_upload.png new file mode 100644 index 0000000..35da78b Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_upload.png differ diff --git a/volume/ninegate/data/public/icon/icon_users.png b/volume/ninegate/data/public/icon/icon_users.png new file mode 100644 index 0000000..5ec1a65 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_users.png differ diff --git a/volume/ninegate/data/public/icon/icon_video.png b/volume/ninegate/data/public/icon/icon_video.png new file mode 100644 index 0000000..89d115a Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_video.png differ diff --git a/volume/ninegate/data/public/icon/icon_videocameraclassic.png b/volume/ninegate/data/public/icon/icon_videocameraclassic.png new file mode 100644 index 0000000..d98b398 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_videocameraclassic.png differ diff --git a/volume/ninegate/data/public/icon/icon_videocameracompact.png b/volume/ninegate/data/public/icon/icon_videocameracompact.png new file mode 100644 index 0000000..177c39e Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_videocameracompact.png differ diff --git a/volume/ninegate/data/public/icon/icon_volume.png b/volume/ninegate/data/public/icon/icon_volume.png new file mode 100644 index 0000000..b8c32a9 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_volume.png differ diff --git a/volume/ninegate/data/public/icon/icon_water.png b/volume/ninegate/data/public/icon/icon_water.png new file mode 100644 index 0000000..9bc5352 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_water.png differ diff --git a/volume/ninegate/data/public/icon/icon_windsock.png b/volume/ninegate/data/public/icon/icon_windsock.png new file mode 100644 index 0000000..9fedbf8 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_windsock.png differ diff --git a/volume/ninegate/data/public/icon/icon_windy.png b/volume/ninegate/data/public/icon/icon_windy.png new file mode 100644 index 0000000..3c56630 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_windy.png differ diff --git a/volume/ninegate/data/public/icon/icon_wordpress.png b/volume/ninegate/data/public/icon/icon_wordpress.png new file mode 100644 index 0000000..92d5b18 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_wordpress.png differ diff --git a/volume/ninegate/data/public/icon/icon_zoomin.png b/volume/ninegate/data/public/icon/icon_zoomin.png new file mode 100644 index 0000000..9579726 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_zoomin.png differ diff --git a/volume/ninegate/data/public/icon/icon_zoomout.png b/volume/ninegate/data/public/icon/icon_zoomout.png new file mode 100644 index 0000000..597e585 Binary files /dev/null and b/volume/ninegate/data/public/icon/icon_zoomout.png differ diff --git a/volume/ninegate/data/public/logo/logo.png b/volume/ninegate/data/public/logo/logo.png new file mode 100755 index 0000000..ce9d911 Binary files /dev/null and b/volume/ninegate/data/public/logo/logo.png differ