Glodi ok je m'y colle 🙂
Si tu réussis de ton coté dis le moi que je ne poursuive pas pour rien

    Je vais essayer de m'occuper de ça ce WE 🙂 Il faut aussi que je paramètre le reverse proxy nginx et que je fasse un script shell pour activer les services. Par défaut, seul le site est démarré, les autres services se lanceront au cas par cas avec un script.

    laster13 Je te tiens au jus de l'avancée de mes travaux. 😉

    J'ai des erreurs sur mon fichier docker-compose.yml... J'ai pourtant vérifié toutes les tabulations et l'indentation, sans succès. Je verrais ça plus en détail demain et au besoin je retaperai tout le fichier à la main au lieu de le copier directement depuis notepad++ sous windows.

    root@scw-1e49a4:~/docker-compose# docker-compose up -d
    ERROR: yaml.scanner.ScannerError: while scanning for the next token
    found character '\t' that cannot start any token
      in "./docker-compose.yml", line 48, column 31

    L'idée au final étant de ne créer qu'un seul docker-compose dans lequel on mettra tout. Je te poste un début avec koel, histoire que tu essaies, et je continue pour la suite 🙂

    version: '2'
    
    services:
    
    nginx-proxy:
    restart: always
    image: jwilder/nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /srv/docker/nginx/certs:/etc/nginx/certs:ro
      - /etc/nginx/vhost.d
      - /usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
    
    nginx-proxy-companion:
    image: jrcs/letsencrypt-nginx-proxy-companion
    volumes:
       - /srv/docker/nginx/certs:/etc/nginx/certs:rw
       - /var/run/docker.sock:/var/run/docker.sock
    volumes_from:
       - nginx-proxy
    
      
    koel:
    container_name: koel
    image: etopian/docker-koel
    depends_on:
        - mariadb
    ports:
        - "9876:80"
    environment:
        - VIRTUAL_HOST=koel.domain.ldt
        - LETSENCRYPT_HOST=koel.domain.ldt
        - LETSENCRYPT_EMAIL=XXXXX@gmail.com
        - DB_HOST=mariadb
        - DB_DATABASE=forge
        - DB_USERNAME=root
        - DB_PASSWORD=XXXXXX
        - ADMIN_EMAIL=koel@example.com
        - ADMIN_NAME=admin
        - ADMIN_PASSWORD=admin
        - APP_DEBUG=true
        - AP_ENV=production
    volumes:
       - /mnt/music/:/DATA/music/:ro
    
    mariadb:
     image: mariadb:10.1
     container_name: mariadb
     environment:
       - MYSQL_ROOT_PASSWORD=XXXXXX
       - MYSQL_PASSWORD=XXXXXX
       - MYSQL_DATABASE=forge
     volumes:
       - /mnt/docker/mysql/db:/var/lib/mysql

    Une fois les containers lancés tu tapes la commande suivante

    docker exec koel su nginx -c "cd /DATA/htdocs && php artisan init"

    Tu n'as plus qu'à pointer sur ton sous domaine qui en plus sera en https

    Remplace par tes mots de passe, ton sous domaine etc.. pense à recaler le docker-compose au niveau tabulation

    Ok, je teste ça ce soir. J'ai essayé d'installer tous les services individuellement, ça marche. J'ai des problèmes seulement quand je commence à utiliser deux services et qu'il y en a un sur le port 80 et l'autre sur le 443...

    Merci beaucoup, je te tiens au courant 🙂

    J'ai une erreur avec ton docker-compose.

    ERROR: client and server don't have same version (client : 1.22, server: 1.18)

    Après avoir consulté les docs de docker-compose, il faut utiliser la variable d'environnement :

    COMPOSE_API_VERSION=auto

    D'après le site (http://stackoverflow.com/questions/29377853/how-to-use-environment-variables-in-docker-compose), il faut créer un troisième fichier template.yml mais ça ne marche pas...

    J'ai résolu mon problème en désinstallant docker et en le réinstallant avec la commande :

    curl -fsSL https://get.docker.com/ | sh

    Tout marche bien désormais, si ce n'est que Koel est en http et pas en https.

    Vérifie dans ce dossier si tes clés sont bien présentes

    /srv/docker/nginx/certs

    Par ailleurs as tu un service qui exploite deja le port 443 ? Ce qui pourrait peu etre expliquer pourquoi tu n'es pas en https

    Pour cosy tu rajoutes ça dans le docker-compose

    cozy:
    container_name: cozy
    image: cozy/full
    environment:
        - VIRTUAL_HOST=site.domaine.com
        - LETSENCRYPT_HOST=site.domaine.com
        - LETSENCRYPT_EMAIL=XXXXX@gmail.com

    J'ai maintenant une erreur PHP sur le sous domaine koel avec le nouveau docker-compose .

    RuntimeException in compiled.php line 7020: No supported encrypter found. The cipher and / or key length are invalid.
    
    in compiled.php line 7020
    at EncryptionServiceProvider->Illuminate\Encryption\{closure}(object(Application), array()) in compiled.php line 1284
    at Container->build(object(Closure), array()) in compiled.php line 1237
    at Container->make('encrypter', array()) in compiled.php line 1775
    at Application->make('Illuminate\Contracts\Encryption\Encrypter') in compiled.php line 1329
    at Container->resolveClass(object(ReflectionParameter)) in compiled.php line 1313
    at Container->getDependencies(array(object(ReflectionParameter)), array()) in compiled.php line 1299
    at Container->build('App\Http\Middleware\EncryptCookies', array()) in compiled.php line 1237
    at Container->make('App\Http\Middleware\EncryptCookies', array()) in compiled.php line 1775
    at Application->make('App\Http\Middleware\EncryptCookies') in compiled.php line 9577
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in compiled.php line 2983
    at CheckForMaintenanceMode->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in compiled.php line 9577
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in compiled.php line 9567
    at Pipeline->then(object(Closure)) in compiled.php line 2249
    at Kernel->sendRequestThroughRouter(object(Request)) in compiled.php line 2232
    at Kernel->handle(object(Request)) in index.php line 53

    Et après avoir fait la MaJ Cozy, j'ai une page 502 :

    502 Bad Gateway nginx/1.10.1

    C'est parce que tu as oublié de taper la ligne de commande

    docker exec koel su nginx -c "cd /DATA/htdocs && php artisan init"

      laster13 Effectivement ça marche. Par contre, les maj de Cozy m'ont fait planter mon docker...

      J'ai aussi réfléchi à un détail important. N'est-il pas intéressant d'héberger mon site chez un hébergeur (hébergeur gratuit type hostinger) et de faire pointer mon nom de domaine dessus ? Cela me permet d'éviter qu'on puisse remonter sur mon VPS et surtout cela économise de la place. Le seul soucis est l'impossibilité d'avoir un site en https...

        Glodi J'ai aussi réfléchi à un détail important. N'est-il pas intéressant d'héberger mon site chez un hébergeur (hébergeur gratuit type hostinger) et de faire pointer mon nom de domaine dessus ? Cela me permet d'éviter qu'on puisse remonter sur mon VPS et surtout cela économise de la place. Le seul soucis est l'impossibilité d'avoir un site en https...

        Le miens est également sur un VPS, la bande passante est bonne et il ne prend pas de place. Pense à le sécuriser avec fail2ban, portsentry, et interdit l'acces root dans le fichier sshd_config ainsi que le port.
        https://mondedie.fr/d/5318-Tuto-Securisation-Logs-V-3-nginx

        Je complète le docker-compose en considérant que tu as un site WordPress qui sera donc sur le domaine principal.
        Du coup la base de donnée de WordPress se crée toute seule. Au final que deux bases de données, une pour koel et l'autre pour WordPress. Les autres services n'en ont pas besoin.

        codiad:
         container_name: codiad
         image: wernight/codiad
         environment:
            - VIRTUAL_HOST=codiad.domaine.com
            - LETSENCRYPT_HOST=codiad.domaine.com
            - LETSENCRYPT_EMAIL=xxxxx@gmail.com
        
        wordpress:
        image: wordpress
        depends_on:
           - mariadb
        environment:
           - VIRTUAL_HOST=domaine.com
           - LETSENCRYPT_HOST=domaine.com
           - LETSENCRYPT_EMAIL=xxxxx@gmail.com
           - WORDPRESS_DB_HOST=mariadb
           - WORDPRESS_DB_PASSWORD=xxxxx
           - WORDPRESS_DB_USER=root
           - WORDPRESS_DB_NAME=wordpress
           - MYSQL_ROOT_PASSWORD=xxxxxxx
           - MYSQL_PASSWORD=xxxxxxx

        Effectivement cosy semble planter à la mise à jour .. je vais jeter un œil, quelques soucis aussi avec jitsi mais bon on avance 🙂

        Salut,

        Si tu veux, j'ai créé une image docker de reverse proxy (nginx) qui auto-génère la configuration, ainsi que les certificats ssl avec letsencrypt.

        Plus d'information ici

        Pour faire simple, tout ce joue avec les labels, voici un exemple :

        version: '2'
        
        networks:
          default:
            driver: bridge
        
        services:
          reverse:
            image: xataz/nginx:1.11
            container_name: reverse
            ports:
              - "80:8080"
              - "443:8443"
            environment:
              - EMAIL=contact@site1.fr 
              - UID=1000
              - GID=1000
            volumes:
              - /srv/docker/nginx/ssl:/nginx/ssl
              - /srv/docker/nginx/log:/nginx/log
            depends_on:
              - codiad
              - cozy
              - koel
              - jitsi
        
          codiad:
            blablabla
            blablabla
            labels:
              - reverse.backend.port=1490
              - reverse.frontend.domain=sub1.site1.fr 
              - reverse.frontend.ssl=true
        
          cozy:
            blablabla
            blablabla
            labels:
              - reverse.backend.port=734
              - reverse.frontend.domain=sub2.site1.fr 
              - reverse.frontend.ssl=true
        
          koel:
            blablabla
            blablabla
            labels:
              - reverse.backend.port=1816
              - reverse.frontend.domain=sub3.site1.fr 
              - reverse.frontend.ssl=true
        
          jitsi:
            blablabla
            blablabla
            labels:
              - reverse.backend.port=2000
              - reverse.frontend.domain=sub4.site1.fr 
              - reverse.frontend.ssl=true

        Et voila ça marche ^^ (enfin normalement)

          Mon site n'utilise pas wordpress. C'est un site statique en HTML, CSS, javascript et PHP. Effectivement, j'ai des erreurs pour l'installation de jitsi.

          xataz Est-ce que ça change vraiment par rapport à la conf précédente ?

          Pour jitsi, j'ai essayé le bloc suivant :

          videobridge:
            image: mdlavin/jitsi
            environment:
              JITSI_SECRET=mdp
              JITSI_DOMAIN=jitsi.domaine.com
              JITSI_HOST=jitsi.domaine.com
              LETSENCRYPT_HOST=jitsi.domaine.com
              LETSENCRYPT_EMAIL=xxxxx@gmail.com

          Rien ne s'affiche, et le docker ne démarre pas... Du coup, j'ai essayé d'installer son rival, Big Blue Button avec le bloc :

          bbb:
            build: .
            ports:
             - "80:80"
            expose:
            #- "80"
            - "9123:9123"
            - "1935:1935"
            environment:
                SERVER_NAME=bbb.domaine.com
                SERVER_SALT=5ca422de042242086336aa041f26d79e
                MOBILE_SALT=03b07
                VIRTUAL_HOST=bbb.domaine.com
                 BBB_INSTALL_DEMOS: "yes"
                 LETSENCRYPT_HOST=bbb.domaine.com
                 LETSENCRYPT_EMAIL=xxxxx@gmail.com

          Mais à nouveau, rien ne semble démarrer... Je n'ai pas encore testé la solution de xataz

          4 jours plus tard

          Je me suis aperçu que nginx n'acceptait pas les fichiers de plus de 1Mb en upload. Il faut modifier la variable upload_max_filesize dans php.ini et client_max_body_size dans la conf de nginx. Comment je fais ça ? Il faut rentrer dans le docker cozy ? Quelqu'un a du nouveau sur Jitsi ou BBB ?

          Pour mon site, j'ai rajouté :

          php:
              build: .
              image: floatapp/docker-php-apache:5.6-1.0
              ports:
               - "80:80"
              volumes:
               - ./apache2/sites-enabled:/etc/apache2/sites-enabled
               - ./sites:/var/www/html
               - LETSENCRYPT_HOST=domaine.com
               - LETSENCRYPT_EMAIL=xxxxx@gmail.com

          Il n'y a pas d'erreurs ?

          Répondre…