[RESOLU] Installation personnalisée impossible

J’ai voulu recommancer une installation de zéro avec les dernières updates. Mais surtout pour résoudre le problème de monnaie (pays Suisse donc CHF) puisque celle-ci n’est configurable que lors de la première installation.

Mais seulement voilà, malgré mon expériences des installations précédentes, je n’ai toujours pas réussi à installer une version personnalisée. C’est systématiquement les config par défaut qui prennent le dessus, ci-dessous mes messages sur le chat du RFFLabs :

matbgn10 avril 2017 à 11:38 PM
Hello @pascalmoutet, je viens d’essayer de refaire une install complète en docker-compose, mais j’obtiens systématiquement les données exemples en lieu et place des éléments remplis dans le env file… Une idée de quoi cela pourrait provenir ?

matbgn11 avril 2017 à 3:15 PM
J’ai monté tous les containers les uns après les autres en manuel et il se produit la même chose… Est-ce qu’il y aurait un conflit entre le fichier env et le application.yml sur le repos docker ? C’est systématiquement la config par défaut qui surpasse le env…

matbgn12 avril 2017 à 1:34 PM
Je viens d’essayer en compilant moi-même les fichiers depuis le Git en Docker Build mais rien y fait, il prend systématiquement les valeurs par défaut… Quelle peut-être la source de ce bug ?

Bonjour,

Il faut bien veiller à relancer la compilation des assets suite à un changement de configuration du fichier env.
soit :
rm -Rf public/assets
docker-compose run --rm fabmanager bundle exec rake assets:precompile

puis relancer l’app.

Peux-tu également nous copier coller les paramètres que tu utilises notamment avec la monnaie CHF.

Merci

Hello,

Tout d’abord un grand merci pour la réponse super rapide.

Alors pour le cas présent j’ai décidé de tout recommancer à neuf donc pas de problème avec les assets. La précompilation étant faite bien après la modification du fichier de config.

Je ne vais pas tout mettre ici, mais voici pour la partie STRIPE :

POSTGRES_HOST=postgres
REDIS_HOST=redis
ELASTICSEARCH_HOST=elasticsearch
(...)
STRIPE_CURRENCY=chf

INVOICE_PREFIX=A3O4100009-FAC
FABLAB_WITHOUT_PLANS=false
FABLAB_WITHOUT_SPACES=false

DEFAULT_MAIL_FROM=At3flo <noreply@at3flo.ch>
DEFAULT_HOST=fablab.at3flo.com
DEFAULT_PROTOCOL=http

DELIVERY_METHOD=smtp
SMTP_ADDRESS=smtp.sparkpostmail.com
SMTP_PORT=587
SMTP_USER_NAME=SMTP_Injection
(...)

Qu’est-ce que tu en penses cela proviendrait de là ?

Pour info j’ai réessayé de précompiler après avoir supprimé les assets pour être vraiment sûr, mais le résultat reste le même… :sweat:

Ton paramètre stripe semble ok.
Il faut aussi vérifier d’avoir bien paramétrer les deux variables suivantes : RAILS_LOCALE et ANGULAR_LOCALE
C’est sur celles-ci que l’application va définir la devise à afficher (€, $ …)
Tu peux regarder la doc pour bien les paramétrer : GitHub - sleede/fab-manager: Fab-Manager is the FabLab management solution. It provides a comprehensive, web-based, open-source tool to simplify your administrative tasks and your marker's projects.
La valeur sera surement fr-ch pour la locale angular et fr-CH pour la locale de rails.

On est bien d’accord que ton app se lance correctement sur HTTP

Pour info :
Dans l’image docker de l’app, le fichier application.yml n’existe pas, il est en réalité nommé application.yml.default donc aucune chance qu’il surcharge le fichier env.
Pour vérifier ça, tu peux te connecter au container de l’app pour vérifier son contenu :

docker exec -it fabmanager_fabmanager_1 bash
ls config
exit

Tu peux aussi vérifier la valeur de ta variable d’environnement STRIPE_CURRENCY directement dans l’app ou de tout autre variable.
Pour ce faire :

docker exec -it fabmanager_fabmanager_1 bash
bundle
rails c
Rails.application.secrets.stripe_currency
exit
exit

Pour les variables locales je les avaient laissées sur fr-FR, respectivement fr-fr donc ceci expliquerait cela. Cependant, pour le compte twitter par exemple, il prend toujours celui de la Casemate…

Mon site est bien up sur le port 3000 (pour le moment) j’ai un load balancer qui fait le job à la place de nginx, mais là n’est pas le problème comme tu peux le voir, le site est up : at3flo.com:3000

Pour l’application.yml j’avais bien remarqué mais je me suis dis qu’un éventuel effet de bord pouvait être la source.

Je vais contrôler les variables et je te redis. En tous les cas, MERCI ! Vous êtes vraiment chouette les gars, et ça donne juste envie de proposer la solution Fab Manager à d’autres Labs autours de nous.

J’obtiens bien :

irb(main):001:0> Rails.application.secrets.stripe_currency
=> "chf"

Le nom twitter semble avoir qq soucis cependant.
Le problème ne serait-il pas là :

from_account = Setting.find_by(name: 'twitter_name').try(:value) || ENV['TWITTER_NAME']

A transformer en :

from_account = Setting.find_by(name: 'twitter_name').try(:value) || "<%= ENV['TWITTER_NAME'] %>"

A prior le code est correct.
Etant donné que le fichier est un .rb inutile de mettre les balises <% %>

As-tu configurer le twitter name directement via l’interface admin (dans Personnalisation / Page d’accueil / flux twitter) ?
Il y a peut être une valeur par défaut ‹ fablabgrenoble › présente ?

Ah, mais alors du coup il est inutile de remplir le env pour la partie Twitter c’est ça ?

TWITTER_NAME=At3flo
TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET=
TWITTER_ACCESS_TOKEN=
TWITTER_ACCESS_TOKEN_SECRET=

C’est vrai que ce n’est pas forcément très clair …

En réalité, il faut obligatoirement créer une app Twitter afin de récupérer les 4 clés nécessaires pour afficher le flux.
Il faut donc bien définir les 4 clés dans le fichier env (consumer_key,secret, access_token, Access secret)

Concernant le twitter_name, il est possible de ne pas le définir dans le fichier env, mais via l’interface admin.
Autrement dit, si le twitter_name est définit dans l’interface admin, il aura la priorité, sinon l’app ira chercher le twitter_name dans la variable d’environnement.

Quoi que tu rentres en fait, c’est la Casemate qui prend le dessus :wink:

Dans tous les cas je viens de finaliser le déploiement cela fonctionne comme un charme.

Juste une dernière question, ici en Suisse nous avons 4 langues nationales, est-ce qu’il serait possible d’avoir un selecteur de langue pour l’utilisateur ? Si oui, je m’engage à vous fournir les versions italiennes et allemandes pour le locale internalization iu8.

Salut Matthieu,

Content que ton install fonctionne à présent !

Pour les langues, merci pour ta proposition de traduction. Pour info, il est déjà possible d’installer Fab Manager en anglais. Je dis bien « installer » car pour le moment le choix d’un langue se détermine à l’installation et il n’est pas possible de switcher d’une langue à l’autre à la volée.

Je pense que ce serait bien sur un dev intéressant, mais surement pas léger. @sleede tu confirmes ?

Oui, je confirme.
Le changement de langue n’est pas possible dynamiquement par l’utilisateur.
Cela demande pas mal de dev pour permettre cela.
C’est vrai qu’on a pas anticiper ce besoin …

Concernant Twitter, c’est curieux car cela fonctionne sur d’autres fablab que LaCasemate.
Bien définir les 4 clés, recompiler les assets, redémarrer et définir le twitter-name via l’interface admin.

Par contre vous travaillez déjà en fichier de traduction ce qui est déjà super @sleede :wink: On peut pas penser à tout.

Par contre, je peux peut-être donner un coup de main, si vous m’éclairer sur les fichiers impactés.