Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Traefik sur serveur existant #16

Open
RNF-SI opened this issue Sep 21, 2023 · 4 comments
Open

Traefik sur serveur existant #16

RNF-SI opened this issue Sep 21, 2023 · 4 comments

Comments

@RNF-SI
Copy link

RNF-SI commented Sep 21, 2023

Salut,
comment gérer une installation via docker sur un serveur existant ou tourne déjà apache ? mon port 443 est de fait déjà utilisé. J'ai eu l'erreur suivante à la toute fin de l'installation via docker :
Error response from daemon: driver failed programming external connectivity on endpoint geonature-docker-services-traefik-1 (e9c3ff65): Error starting userland proxy: listen tcp4 0.0.0.0:443: bind: address already in use

@camillemonchicourt
Copy link
Member

Là on rentre direct dans les cas d'usage qui dépassent un peu le périmètre de ce pourquoi est fait ce dépôt, clé en main, prêt à l'emploi.
Dès qu'on a un contexte un peu plus spécifique, il faut mettre les mains dans le fonctionnement de Docker.

On avait 2 possibilités :

  • Propose un environnement Docker complet, simple à l'emploi et clé en main
  • Proposer une base d'exemple à adapter par chacun. Donc plus complexe à prendre en main, à déployer et nécessitant plus de compétences Docker, mais avec plus de souplesse et de cas divers

On a retenu la première orientation, pour faciliter le déploiement et la mise à jour de GeoNature (et compagnie) dans un cas classique.

@lpofredc
Copy link

Apache est installé en dur sur le serveur? Il est vrai qu'en général, lorsque l'on utilise docker sur un serveur, tout les service sont dockerisés, dont le proxy (traefik, nginx, apache...).

Il doit toutefois être possible d'utiliser votre apache avec les services docker, pour ce faire, vous pouvez attribuer une IP/port visible localement à chaque service et les utiliser avec apache, comme c'est d'ailleurs déjà le cas aujourd'hui avec geonature (port 127.0.0.1:8000)/usershub (port 127.0.0.1:5001)/taxhub (port 127.0.0.1:5000).

Cela se fait par l'ouverture des ports dans chaque services. Vous pourrez alors sûrement utiliser les config apache fournies par les différentes applis.

Attention pour le frontend, la config devra aussi se faire avec ProxyPass dans apache comme pour les autres, a moins de monter localement le dossier du frontend compilé, je ne sais pas si c'est possible.

  geonature-backend:
    ...
    ports:
      - 127.0.0.1:8000:8000
    ...

  usershub:
    ...
    ports:
      - 127.0.0.1:5001:5001
    ...

  taxhub:
    ...
    ports:
      - 127.0.0.1:5000:5000
    ...

  geonature-frontend:
    ...
    ports:
      - 127.0.0.1:8080:80

@bouttier
Copy link
Contributor

Il y a le choix de configurer Apache pour adresser chaque service comme décrit par @lpofredc mais il est également possible, et je pense que c’est plus simple pour un contexte Docker, de garder traefik afin qu’il continue de s’occuper du routage vers les différents services.
Dans ce cas, il faut :

  • modifier la config (enlever les lignes acme-resolver et websecure) de traefik et les labels (enlever les lignes tls.certResolver) des services pour désactive le HTTPS
  • modifier la section ports de traefik pour choisir un autre port que 80 (et enlever le 443), par exemple :
services:
  traefik:
    ports:
      - 8080:80
  • faire une config apache simple qui redirige tous (mod_proxy) vers traefik sur le port 8080 (et qui s’occupe du HTTPS)

@lpofredc
Copy link

En effet, à tester.

Bien penser à mettre 127.0.0.1 devant le port local sans quoi cela ouvrira le port du serveur sans configuration spécifique d'un firewall.

services:
  traefik:
    ports:
      - 127.0.0.1:8080:80

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants