Comment configurer jeedom avec docker et le plugin mobile, en local et à distance.
Le problème, c'est que le plugin mobile va récupérer les urls dans la configuration réseau de jeedom:
Accès interne: utilisation du port docker 9070 avec http
Accès externe: utilisation du port 443 en https avec traefik
Si le port 9070 est précisé en interne, alors les plugins seront en echec.
En effet, un curl est exécuté sur le serveur web avec l'adresse 127.0.0.1 et le port 9070 non disponible, vu que c'est le port 80 qui est utilisé.
Modification à apporter au container jeedom-server :
Aller dans le container jeedom pour modifier le fichier hosts
Dans /etc/hosts:
127.0.0.1 localhost jeedom.domain.net
Dans /etc/apache2/ports.conf
Listen 80
Listen 9070
service apache2 reload
9070 est le port mappé sur le host avec docker
Dans les paramètres réseaux de jeedom:
J'utilise un resolver interne avec une entree pour jeedom.domain.net
dimanche 24 novembre 2019
docker-compose pour jeedom avec docker et traefik 2
Voici mon docker-compose:
version: '2.3'
services:
jeedom-server:
container_name: jeedom-server
image: jeedom/jeedom:master
networks:
- traefik
- internal
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.https-only-jeedom.redirectscheme.scheme=https"
- "traefik.http.routers.jeedom.middlewares=https-only-jeedom"
- "traefik.http.routers.jeedom.rule=Host(`jeedom.domain.net`)"
- "traefik.http.routers.jeedom.entrypoints=web"
- "traefik.http.routers.jeedom-secured.rule=Host(`jeedom.domain.net`)"
- "traefik.http.services.jeedom.loadbalancer.server.port=80"
- "traefik.docker.network=traefik"
- "traefik.http.routers.jeedom-secured.entrypoints=websecure"
- "traefik.http.routers.jeedom-secured.tls.certresolver=myhttpchallenge"
ports:
- "9070:80"
volumes:
- /home/docker/jeedom/data/jeedom:/var/www/html
depends_on:
- db
devices:
- "/dev/ttyUSB0:/dev/ttyUSB0"
- "/dev/ttyUSB1:/dev/ttyUSB1"
mac_address: 03:45:aa:bb:cc:dd
restart: always
db:
container_name: jeedom-mysql
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
networks:
- internal
volumes:
- /home/docker/jeedom/data/mysql:/var/lib/mysql
environment:
- MYSQL_DATABASE=jeedom
- MYSQL_USER=jeedom
- MYSQL_PASSWORD=jeedom_mdp
- MYSQL_ROOT_PASSWORD=mdp_root
labels:
- "traefik.enable=false"
restart: always
networks:
traefik:
external: true
internal:
external: false
samedi 16 novembre 2019
Bug client windows Nextcloud - Docker - Traefik
Le client ne veut pas se connecter car l'application doit être autorisé par le serveur NextCloud.
Sauf que le navigateur reste bloqué à :
https://nextcloud.myserver.net/index.php/login/v2/grant.
Le bouton "Grant access" reste inactif.
Dans /home/docker/nextcloud/data/config, modif à faire dans le fichier config.php:
ajout de :
source : https://github.com/nextcloud/desktop/issues/1470
Sauf que le navigateur reste bloqué à :
https://nextcloud.myserver.net/index.php/login/v2/grant.
Le bouton "Grant access" reste inactif.
Dans /home/docker/nextcloud/data/config, modif à faire dans le fichier config.php:
ajout de :
'overwriteprotocol' => 'https',
<?php $CONFIG = array (
...
'overwrite.cli.url' => 'http://nextcloud.myserver.net',
'overwriteprotocol' => 'https',
'dbtype' => 'mysql',
...
source : https://github.com/nextcloud/desktop/issues/1470
samedi 9 novembre 2019
Installation du driver NVIDIA sur Centos et Redhat 7
Installer le driver NVIDIA sur un Linux Centos 7
$ sudo yum-config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
$ sudo yum clean all
$ sudo yum -y install nvidia-driver-latest-dkms cuda
source : https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=RHEL&target_version=7&target_type=rpmnetworkTraefik 2.0 et https (Let's Encrypt et redirection https)
Utilisation de Traefik 2.0
docker-compose.yaml de traefik:
Challenge Let's Encrypt http
Pour ma part, je l'ai appelé https-only-whoami
Pour un autre container https-only-container2
Par exemple, dans la capture suivante du dashboard de traefik, ils sont nommés:
https-only
https-only2
docker-compose.yaml de traefik:
version: "3.7"
networks:
traefik:
name: traefik
services:
traefik:
image: "traefik:latest"
container_name: "traefik"
networks:
- traefik
command:
#- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.useBindPortIP=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myhttpchallenge.acme.httpchallenge=true"
- "--certificatesresolvers.myhttpchallenge.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.myhttpchallenge.acme.email=mail@domaine.com"
- "--certificatesresolvers.myhttpchallenge.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
Exemple avec un container whoamiChallenge Let's Encrypt http
version: "3.7"
services:
whoami:
image: "containous/whoami"
container_name: "simple-service"
networks:
- traefik
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.https-only-whoami.redirectscheme.scheme=https"
- "traefik.http.routers.whoami.middlewares=https-only-whoami"
- "traefik.http.routers.whoami.rule=Host(`xxx.domaine.com`)"
- "traefik.http.routers.whoami.entrypoints=web"
- "traefik.http.routers.whoami-secured.rule=Host(`xxx.domaine.com`)"
- "traefik.http.routers.whoami-secured.entrypoints=websecure"
- "traefik.http.routers.whoami-secured.tls=true"
- "traefik.http.routers.whoami-secured.tls.certresolver=myhttpchallenge"
networks:
traefik:
external: true
Attention, pour la redirection, le nom du middlewares doit être unique.Pour ma part, je l'ai appelé https-only-whoami
Pour un autre container https-only-container2
Par exemple, dans la capture suivante du dashboard de traefik, ils sont nommés:
https-only
https-only2
Inscription à :
Articles (Atom)