Connexion impossible depuis la mise à jour

Bonjour,
je me permets de reprendre le sujet car j’ai le même souci. J’étais en 4.2.4 et je comptais profiter de l’été pour mettre à jour notre FabManager. J’ai bien suivi toutes les consignes, tous les TODO DEPLOY normalement, le site est bien vivant mais impossible de s’y connecter avec un message :« Unprocessable Entity » au dessus de l’adresse mail dans la boite de connexion. J’ai donc bien fouillé votre forum et j’ai supprimé les cookies de mon navigateur puis rechargé la page :

Pas de _fablab_session comme avant ni de _Fab-manager_session, j’ai essayé de « jouer » avec le config/nginx/fabmanager.conf :

upstream puma {
server fabmanager:3000;
}

server {
listen 80;
server_name fablab66.fr, sytes.net;
root /usr/src/app/public;

location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}

try_files $uri/index.html $uri @puma;
location @puma {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://puma;
}

client_max_body_size 4G;
keepalive_timeout 10;

error_page 500 502 504 /500.html;
error_page 503 @503;

Return a 503 error if the maintenance page exists.

if (-f /usr/src/app/public/maintenance.html) {
return 503;
}

location @503 {
# Serve static assets if found.
if (-f $request_filename) {
break;
}

# Set root to the shared directory.
root /usr/src/app/public/;
rewrite ^(.*)$ /maintenance.html break;

}

location /.well-known/acme-challenge {
root /etc/letsencrypt/webrootauth;
default_type « text/plain »;
}

no spam bot

if ($http_referer ~* (guardlink.org|free-share-buttons|social-buttons|buy-cheap-online.info|social-buttons.com|free-share-buttons.com|darodar.com|blackhatworth.com|hulfingtonpost.com|priceg.com|semalt.com|imasp …

}

j’ai essayé également de m’inspirer de ce post mais pas plus de succès.

Quelles commandes doit-on refaire quand on modifie une ligne dans le fabmanager.conf pour l’appliquer? (down puis up? rails assets:precompile puis rake db:seed et rake db:migrate?)

Si vous avez des pistes, un grand merci par avance

Amicalement.

Salut,

J’ai l’impression qu’il manque cette ligne

   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

dans le bloc location @puma {} de ton fichier nginx/fabmanager.conf

Re,
j’ai fait un docker-compose downpuis j’ai modifié le conf en mettant ça :

upstream puma {
server fabmanager:3000;
}

server {
listen 80;
server_name fablab66.fr, sytes.net;
root /usr/src/app/public;

location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}

try_files $uri/index.html $uri @puma;
location @puma {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://puma;
}

client_max_body_size 4G;
keepalive_timeout 10;

error_page 500 502 504 /500.html;
error_page 503 @503;

Return a 503 error if the maintenance page exists.

if (-f /usr/src/app/public/maintenance.html) {
return 503;
}

location @503 {
# Serve static assets if found.
if (-f $request_filename) {
break;
}

# Set root to the shared directory.
root /usr/src/app/public/;
rewrite ^(.*)$ /maintenance.html break;

}

location /.well-known/acme-challenge {
root /etc/letsencrypt/webrootauth;
default_type « text/plain »;
}

no spam bot

if ($http_referer ~* (guardlink.org|free-share-buttons|social-buttons|buy-cheap-online.info|social-buttons.com|free-share-buttons.com|darodar.com|blackhatworth.com|hulfingtonpost.com|priceg.com|semalt.com|imasp$

}

puis j’ai fait :
rm -Rf public/assets/
docker-compose run --rm fabmanager bundle exec rails assets:precompile
docker-compose run --rm fabmanager bundle exec rake db:seed
docker-compose run --rm fabmanager bundle exec rake db:migrate
docker-compose up -d

Bilan, toujours pareil même après avoir re-supprimé les cookies, en navigation privée, sur différents navigateurs.
J’avoue, je sèche.

Ha mais ton Fab-Manager n’est pas en HTTPS !
Le problème vient de là : en effet, pour palier à un problème de sécurité, le cookie de session ne peut désormais être échangé que via https.

Le mieux est que tu mettes en places let’s encrypt en suivant les commandes indiquées ici :

# configure le chemin d'installation de FM
FABMANAGER_PATH="/apps/fabmanager"
# let's encrypt enverra des alertes à cette adresse si le certificat va expirer
EMAIL="alerts-cetificate@fablab66.fr"
# si tu as plusieurs domaines, tu peux les lister ici, séparés par un espace
DOMAINS=(fablab66.fr)

Dans les commandes suivantes, remplacer stop par docker-compose down et start par docker-compose up -d

Bonjour,

Merci beaucoup, le passage en HTTPS a permis de tout résoudre. Juste un dernier détail, j’ai mis dans config/env comme demandé dans TODO DEPLOY :

SLOT_DURATION=60
PHONE_REQUIRED=false
EVENTS_IN_CALENDAR=true
USER_CONFIRMATION_NEEDED_TO_SIGN_IN=false
BOOK_SLOT_AT_SAME_TIME=false
POSTGRESQL_LANGUAGE_ANALYZER=french

Malheureusement, pour un utilisateur déjà inscrit, il me demande quand même la confirmation du mail :

(j’ai refait les assets, le seed, le migrate, toujours pareil).

Bravo pour votre travail et votre implication.

Amicalement

Depuis les dernières versions de FM, ce paramètre se configure désormais graphiquement depuis l’interface. Tu peux te connecter come admin, puis regarder dans Personnalisation > Général > Création de compte > Confirmation de compte.

1 « J'aime »