Bonjour à tous,
Frien de nouveaux projets et de serveurs en ce moment, je tente de configurer le serveur de notes Turtl qui à l'avantage d'avoir un client installable sur n'importe quelle platforme.
Ainsi, pour l'installation sur raspberry-pi2 d'OS raspbian jessie lite, je me suis servit de ces deux liens :
https://framacloud.org/cultiver-son-jardin/installation-de-turtl/
internaute blog : http://brianekummer.blogspot.fr
J'ai suivi tout ce qui a été préconisé et j'aimerais avoir un petit coup de main sur la configuration reseau de Nginx, Turtl et éventuellement Rethinkdb.
De ce que je lis, le serveur turtl n'est pas directement sur le réseau et passe par Nginx hors je ne comprends pas comment faire les interactions Nginx <=> Turtl. J'ai déjà fait du serveur web apache mais la le projet est différent.
Rethinkdb : pour moi cette base de données ne possède pas de configuration réseau (à moins que concernant la notion de clusters, … ). Elle serait accessible depuis localhost:8080.
Turtl :
dans /var/www/turtl/api/config, j'ai essentiellement dans le fichier config.lisp
*server-bind* 127.0.0.1 -> changer par l'adresse 192.168.1.40 de ma raspberry-pi en local
serverport 8181
*db-port* 28015
local upload /var/www/turtl/data
local upload url https://api.notes.example.org
Nginx :
j'ai essentiellement dans le fichier .conf
#A priori du load balancing = partage des taches sur différents serveur sauf sue nb_serveur = 1 ici
upstream turtl {
server 127.0.0.1:8181; -> changer par l'adresse 192.168.1.40:768 ? de ma raspberry, port 768 au hasard
}
server {
listen 80 ;
listen [::]:80 ;
listen 443 ;
listen [::]:443 ;
server_name api.notes.example.org ;
resolver 192.168.1.1 ;
index index.html ;
location / {
proxy_set_header Host $host ;
proxy_pass http://turtl ;
}
}
Merci par avance.
Bonne journée.
# config reseau
Posté par electro575 . Évalué à 1.
J'oubliais de préciser ma config reseau :
1 sous-domaine (serveur.domaine.fr) associé à mon adresse IP public de box
1 raspberry-pi associé à la box par 192.168.1.40
[^] # Re: config reseau
Posté par Framasky (site web personnel) . Évalué à 2.
Et où est ton Nginx ? S'il est sur le rpi, pas besoin de changer le port d'écoute dans la conf turtl ni de bidouiller le
upstream
de Nginx.Si Nginx est sur une autre machine, effectivement, il faut que ton rpi écoute sur une IP locale (donc, oui à la modif de conf Turtl), par contre :
Bah non, faut mettre l'adresse d'écoute de Turtl, donc 192.168.1.40:8181 (l'adresse était bonne mais je ne sais pas où tu es allé chercher le port 768).
RethinkDB étant normalement sur la même machine que le serveur Turtl, tu n'as pas à y toucher.
Fais attention : ton nginx écoute sur le port 443 mais je ne vois pas de configuration relative à HTTPS. Pour l'instant, fais-le juste écouter sur le port 80, et change le
local upload url https://api.notes.example.org
dans la conf Turtl pourlocal upload url http://api.notes.example.org
. Vérifie déjà que ça fonctionne et ensuite seulement mets du HTTPS (et faudra donc rechanger la conf Turtl).Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.
[^] # Re: config reseau
Posté par electro575 . Évalué à 1.
Oui Nginx, Turtl et Rethinkdb sont sur la raspberry-pi2. Il y a t-il besoin de RAM supplémentaire pour rethinkdb ? Quand j'ai compilé il y avait besoin de 1G de RAM supplémentaire.
J'ai changé le port car Nginx me disait que le port 8181 n'était pas correct.
Oui je n'ai pas copier/coller tout le fichier de conf.
Je test ça dès que j'ai un peu de temps et je reviens vers toi, merci.
[^] # Re: config reseau
Posté par Framasky (site web personnel) . Évalué à 2.
Aucune idée, je n'ai pas essayé sur un rpi.
Si tout est sur le même rpi, laisse 127.0.0.1 dans nginx et dans Turtl. Vérifie que Turtl tourne bien avant de tester Nginx.
Pour voir ce qui écoute sur le port 8181 :
lsof -i :8181
. Turtl apparaîtra sans doute sous le nomccl
. Si rien n'écoute sur le 8181, c'est que Turtl ne s'est pas lancé, il faut voir pourquoi. Si ce n'est pas Turtl qui écoute sur 8181, trouve un autre port libre et utilise-le dans Nginx et Turtl.Ok d'ac, je me doutais d'un truc comme ça.
Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.
[^] # Re: config reseau
Posté par electro575 . Évalué à 1.
J'ai mis pour le fichier de config de Nginx et de turtl :
IP 192.168.1.40
port 8181
Sur le client turtl l'adresse à rentrer est :
http://serveur.domaine.fr:8181
et la sortie de lsof -i :8181
J'ai essayé de remplacer l'IP 192.168.1.60 par 127.0.0.1 mais sans succès. D'ailleurs un internaute avait précisé qu'il a du remplacer l'IP 127.0.0.1 par l'adresse IP de la raspi.
Mais voila après je ne sais pas comment se dresse le projet, si Nginx se situe en haut ou non, …
Voici le fichier /etc/nginx/sites-enabled/api.notes.example.org.conf :
```
```Du coup je cherche encore la signification et l'utilité des lignes suivante :
server_name api.notes.example.org ;
proxy_pass http://turtl
upstream turtl {
server 127.0.0.1:8181 ;
}
Voila le compte rendu.
[^] # Re: config reseau
Posté par electro575 . Évalué à 1.
Alors, voici ce que j'ai mis comme config.
Nginx écoute sur le port 80 et redirige via proxy_pass à l'adresse http://turtl ou turtl = 127.0.0.1:8181.
Et donc Nginx redirige les requetes du port 80 vers le port 8181 je suppose !?
J'ai installé turtl et rethinkdb comme il se doit.
Je me connnecte avec le client Turtl configuré à l'adresse http://serveur.domaine.fr.
Une requete sur le port 80 de ma box est donc lancée.
Je redirige les requetes du port 80 sur le port 80 de ma raspi pour que Nginx puisse traiter la demande.
Nginx renvoie alors la demande au serveur Turtl sur le port 8181 à l'adresse 127.0.0.1
Normalement rethinkdb devrait suivre.
Ou se loge les logins et mdp ? Dans rethinkdb ?
Voici le détail de ma conf actuelle.
Je pense savoir ce qui cloche, rethinkdb ne fonctionne pas très bien au démarrage.
De même pour rethinkdb :
Si vous avez des explications ! Quand j'avais exposé Turtl sans Nginx à l'adresse 192.168.1.30, ça marchait très bien mais la Nginx bloque peut être des requêtes, … !
Merci d'avance
[^] # Re: config reseau
Posté par Framasky (site web personnel) . Évalué à 2.
Bah… oui.
Euh… là je vois pas de quoi tu parles. Si tu veux dire que Turtl communique avec rethinkdb, oui, normalement.
Bah, c'est un peu beaucoup le but d'une base de données, oui.
Et si tu essayes depuis autre part que ton réseau local (en 3G genre) ? Si ton nom de domaine résout sur l'IP publique de ta box (et j'imagine que c'est le cas), ton client tente de joindre cette IP, mais comme il arrive par derrière (ie depuis le réseau local de ta box, et pas depuis Internet), ta box ne forwarde pas correctement la requête vers le pi.
Pour voir si Nginx bloque des requêtes, regarde d'abord les logs de Nginx, pour voir s'il reçoit bien les requêtes.
Si ça fonctionne en 3G, il faudrait que le résolveur DNS de ta box réponde 192.168.1.30 si on lui demande serveur.domaine.fr (je ne sais pas quel genre de box tu as, donc je ne sais pas si tu peux lui faire faire ça).
Question : comment as-tu résolu le pb de
Error: Unbound variable: ASDF
While executing: CCL::CHEAP-EVAL-IN-ENVIRONMENT, in process listener(1).
? (Est-ce que c'est toi qui a écrit au support Framasoft sur ce sujet ? En tout cas, j'ai retrouvé ta trace sur des logs IRC de debian facile 🙂)
J'ai passé la journée là-dessus sans réussir à m'en dépatouiller.
Et pour rethinkdb ? Tu l'as compilé sur ton rpi ? Moi j'ai modifié https://github.com/jdmichaud/domos/blob/master/host/docker/rethinkdb/Dockerfile pour avoir un paquet debian pour arm. Je le fournirai pour le paquet Yunohost de Turtl parce que sinon, ça va être une plaie (j'ai lu qq part que ça prend genre 6h pour compiler sur un rpi)
Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.
[^] # Re: config reseau
Posté par electro575 . Évalué à 1.
Le HTTP fonctionne mais j'ai du mal avec le HTTPS avec nginx et turtl.
J'ai choisi letsencrypt pour les deux fichiers :
Unbnound variable, en fait j'ai réussi à en faire abstraction quand j'ai lancé turtl mais je n'ai pas d'explication particulière, je n'y ai pas fait attention.ssl_certificate /etc/letsencrypt/live/my-domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/my-domain/privkey.pem;
Ceci apparais parce que j'avais 2 fois le paquet ASDF.
[^] # Re: config reseau
Posté par NeoX . Évalué à 2.
ton programme semble ecouter sur le port 8080 et non 8081 comme tu le signales plus haut
[^] # Re: config reseau
Posté par Framasky (site web personnel) . Évalué à 2.
Non, ça c'est l'interface web d'administration de la base de données rethinkdb. Turtl écoute bien sur le 8181.
Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.
[^] # Re: config reseau
Posté par electro575 . Évalué à 1.
Est-ce que Turtl gère le https ?
Si l'on met un serveur type : https://serveur.domaine.fr
[^] # Re: config reseau
Posté par Framasky (site web personnel) . Évalué à 3.
C'est le nginx qui gère l'https, pas turtl (mais la configuration de turtl doit contenir l'URL avec https).
Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.
[^] # Re: config reseau
Posté par electro575 . Évalué à 1. Dernière modification le 05 juillet 2017 à 08:30.
Je rencontre un dernier souci avec le client web pour turtl. Je te fais part de ma configuration actuelle.
Conf actuelle
Voici la réponse que j'obtiens en essayant de me connecter avec mon login et mon mot de passe depuis firefox avec http://serveur.domaine.fr.
J'obtiens "login failed" et avec systemctl status turtl :
Jul 05 06:13:10 raspberrypi ccl[2434]: [1499235190] wookie - "GET /sync" 200 4
Il y a plusieurs choses que je devrais peut être changer dans ma conf et dont je ne sais pas à quoi les données font référence exactement.
http(s)://api.notes.example.org
http(s)://notes.example.org
dans ma conf, mon nom de serveur est serveur.domaine.fr
Aussi, j'utilise user1.conf pour rethinkdb et non turtl.conf et dans le config.lisp de turtl il y a cette ligne :
(defvar db-name "turtl"
"The name of the database we'll be using LOL")
Turtl fonctionne en https avec le client mobile et PC déjà mais depuis le web serait un plus.
En te remerciant par avance pour ta réponse.
Bonne journée
[^] # Re: config reseau
Posté par electro575 . Évalué à 1. Dernière modification le 07 juillet 2017 à 10:41.
J'ai appliqué cette conf : source (Lien
=> EN GROS :
Le projet Turtl permet avec Nginx et le proxy intégré à Nginx de rediriger les demandes (https sur port 81 ou 82) sur le serveur turtl en local.
Deux choses importantes :
-depuis firefox : on demande https://domain:82 = WEB, une fois qu'on a accès à la page web, on indique pour la connection l'adresse de l'API turtl https://domain:81 = API turtl
-depuis le logiciel ou l'appli mobile : on a juste à renseigner https://domain:81
Le fait d'avoir 2 ports 81 et 82 permettent de ne pas avoir : api.notes.example.org et notes.example.org ! Si vous avez une seule adresse pour vous connecter sur Rpi, pour moi il a été plus simple de garder la même adresse et de me servir des deux ports.
Actuellement les logiciels, appli et interface web fonctionnent avec serveur sur Rpi. Merci
[^] # Re: config reseau
Posté par NeoX . Évalué à 2.
tu peux quand meme avoir
api.notes.example.org et notes.examples.org qui pointent tous les deux vers la meme IP
puis le proxy ngnix detecte le domaine, et pointe vers localhost:81 et localhost:82 selon qu'on passe par l'API et par l'interface WEB
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.