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

[DONE] Utilisation de l'adresse pod.localhost pour le développement #1134

Merged
merged 2 commits into from
May 21, 2024

Conversation

azmeuk
Copy link
Contributor

@azmeuk azmeuk commented May 17, 2024

#1125 proposait d'uniformiser les ports utilisés à l'intérieur et hors des conteneurs dockers, cette PR propose la même chose pour le nom de domaine.

motivations

La raison pour laquelle je propose ce changement est encore liée à #1058. L'implémentation d'Activitypub délègue certaines tâches à celery, et ces tâches ont besoin parfois de construire des URL absolues. Étant dans un contexte celery, on ne peut accéder à un objet request pour en récupérer le domaine, alors on doit se fier aux objets Site de Django.

Or, pour le moment Site est initialisé pour localhost:

{
"model": "sites.site",
"pk": 1,
"fields": {
"domain": "localhost:8000",
"name": "localhost:8000"
}
},

En conséquence, dans l'environnement docker on construit des URL absolues sont la forme http://localhost:8000/... que l'on transfère à d'autres instances sur le réseau dans le cadre d'activitypub. Hors évidemment, lorsque les autres conteneurs tentent de joindre localhost:8000 ils essaient de se joindre eux même plutôt que l'instance Pod.

En plus de ça, Peertube rejette pour la fédération les noms de domaines sans TLD, comme localhost. Pour faire des tests de fédération avec Peertube dans un environnement docker, on a donc besoin d'utiliser un autre domaine.

proposition

Je vous propose d'utiliser pod.localhost comme adresse de développement, en remplacement de l'adresse pod-back qui était utilisée dans l'environnement docker, et localhost hors de docker.

compatibilité

Le serveur de développement serait donc disponible à l'adresse http://pod.localhost:8000.
Les sous-domaines de localhost sont supportés par la majorité des distributions linux sans configuration particulière (voir les explications) et j'ai pu tester sur au moins Ubuntu, Debian et Archlinux.

Pour les utilisateurs de MacOS cependant, il sera nécessaire d'ajouter la ligne suivante dans /etc/hosts pour pouvoir accéder à l'adresse pod.localhost

127.0.0.1 pod.localhost
  • You have read our contribution guidelines.
  • Your PR targets the develop branch.
  • The title of your PR starts with [WIP] or [DONE].

@azmeuk azmeuk changed the title Utilisation de l'adresse pod.localhost pour le développement [DONE] Utilisation de l'adresse pod.localhost pour le développement May 17, 2024
@Badatos
Copy link
Collaborator

Badatos commented May 17, 2024

En l'état, la PR ne passe pas les tests :

Errors in http://pod.localhost:8000/:
 • Error: net::ERR_CONNECTION_REFUSED at http://pod.localhost:8000/

@azmeuk azmeuk force-pushed the hostname branch 2 times, most recently from 64f1458 to 7ccdebe Compare May 17, 2024 14:32
@azmeuk
Copy link
Contributor Author

azmeuk commented May 17, 2024

C'est corrigé.

@ptitloup
Copy link
Contributor

ok pour moi. Merci !

@ptitloup ptitloup added the enhancement New feature or request label May 21, 2024
Copy link
Contributor

@ptitloup ptitloup left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok pour moi, ne faudrait-il pas faire la même chose pour les autres containers comme elasticsearch ou redis ?

@azmeuk
Copy link
Contributor Author

azmeuk commented May 21, 2024

Je ne voulais pas proposer de trop nombreuses modifications d'un coup, mais c'est possible. J'essaie de faire ça aujourd'hui ou demain.

azmeuk added 2 commits May 21, 2024 16:13
This replaces the 'pod-back' hostname in the docker network,
and 'localhost' elsewhere.

This way the same hostname is used inside and outside docker,
this avoids confusions while developing.
@azmeuk
Copy link
Contributor Author

azmeuk commented May 21, 2024

C'est bon. Il faudra penser à mettre à jour son fichier pod/custom/settings_local.py avec les nouvelles valeurs.

@ptitloup ptitloup merged commit 8305f89 into EsupPortail:develop May 21, 2024
3 checks passed
@ptitloup
Copy link
Contributor

Merci, tout est mergé

@azmeuk azmeuk deleted the hostname branch May 21, 2024 15:54
LoanR pushed a commit to yaal-coop/Esup-Pod that referenced this pull request Jun 18, 2024
…EsupPortail#1134)

* chore: use pod.localhost in the dev env

This replaces the 'pod-back' hostname in the docker network,
and 'localhost' elsewhere.

This way the same hostname is used inside and outside docker,
this avoids confusions while developing.

* refactor: use .localhost domains for elasticserach and redis
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants