Déployer un fork de ZDS sur un serveur de production sous ubuntu 17.04

a marqué ce sujet comme résolu.

Bonjour la communauté.

Je viens vous demander un faveur que je craint que vous ne m’accordiez : j’ai un projet de site d’apprentissage communautaire à l’image de Zeste de savoir. Seulement voilà, je ne suis pas un développeur Django ni meme un développeur python. Je suis plutot PHP. Mais l’idée d’utiliser le code de Zeste de Savoir pour créer mon site me hante toujours, tellement sa philosophie correspond à mes objectifs pour le site que je veux créer : partage, contenu géré de façon horizontale.

J’ai suivi les débats sur la traduction de Zeste de Savoir et je me suis meme rendu sur la page Transifex de Zeste de savoir et m’y suis inscrit. En fait, l’objectif de mon projet n’était pas de créer mon site en français mais bien dans ma langue natale (Le Kirundi, langue parlée dans un pays d’Afrique de l’Est, le Burundi) afin de partager au mieux les connaissances et s’entraider. Je sais qu’il n’y avait aucune chance que ZDS soit traduit dans cette langue un jour mais je me serais basé sur d’autres traductions pour le traduire au fur du temps.

Je voudrais soumettre à la communauté les doléances suivantes :

  1. Quelqu’un pourrait-il m’aider dans le processus de déploiement vu que je me suis perdu en suivant la procédure donnée dans la doc officielle? Ma configuration est la suivante : Serveur VPS, Ubuntu 17.04, Apache2, en sachant que le serveur héberge également d’autres sites PHP et que je ne veux pas installer NGINX.

  2. Où en est-on avec la traduction? Sinon, quelqu’un peut-il me donner les chaines de ZDS qui sont à traduire et si possible le moyen d’intégrer les traductions dans le code de ZDS vu que j’ai sur les forums que ZDS n’est pas codé dans la prévision d’une internationalisation et qu’il faut donc intégrer les traductions en dur.

En attendant vos retours, j’espère ne pas vous avoir faché avec mes idées de "pomper" le code de ZDS.

Salut !

Je ne pourrais malheureusement pas t’aider grandement vu que j’ai moi aussi des problèmes avec les mises en prod, mais je voulais juste rebondir sur deux trois trucs.

Je viens vous demander un faveur que je craint que vous ne m’accordiez

Ne t’en fais pas, on ne mord pas et on est gentils. :)

À titre personnel, je trouves que c’est une super initiative de vouloir produire du contenu pour une langue aussi peu parlée (par rapport au français).

Sinon, quelqu’un peut-il me donner les chaines de ZDS qui sont à traduire et si possible le moyen d’intégrer les traductions dans le code de ZDS vu que j’ai sur les forums que ZDS n’est pas codé dans la prévision d’une internationalisation et qu’il faut donc intégrer les traductions en dur.

Clairement, pour intégrer une traduction, c’est vrai qu’il reste du travail à faire pour rendre le site traduisible, mais une partie non-négligeable du boulot est déjà faite. Voilà un extrait du code de ZdS, venant de ce fichier.

1
2
3
from django.utils.translation import ugettext_lazy as _

title = _(u'Demande d\'adhésion de {}').format(user.username)

Cette fonction appelée par _() permet de gérer automatiquement les traductions. Je n’ai pas encore exploré ça en profondeur, mais si je ne me trompes pas, cela permet d’utiliser automatiquement des fichiers de traduction pour la langue cible choisie par le visiteur. Pour générer ces fichiers, j’ai trouvé ce site qui explique ça plutôt bien. Du coup, en exécutant ces commandes à la racine du code de ZdS, tu doit pouvoir retrouver l’ensemble des chaines à traduire. :)

Bonne chance pour ton projet !

+1 -0

Ne t’en fais pas, on ne mord pas et on est gentils. :) Merci, ça me réconforte:D

À titre personnel, je trouves que c’est une super initiative de vouloir produire du contenu pour une langue aussi peu parlée (par rapport au français).

Merci beaucoup!

Pour générer ces fichiers, j’ai trouvé ce site qui explique ça plutôt bien. Du coup, en exécutant ces commandes à la racine du code de ZdS, tu doit pouvoir retrouver l’ensemble des chaines à traduire. :)

Bonne chance pour ton projet !

rezemika

Merci pour le lien. Je vais essayer les commandes tout de suite. Je vous tiens au courant

Merci à vous aussi artagis. En fait j’avais déjà forké le code et j’en étais à la modification du fichier settings_prod.py. Je crois que c’est là que j’ai perdu la route. Que dois-je donc faire?

là comme ça sans plus d’info, je sais pas trop. Peut être mettre en place les paramètres de connexion à la bdd.

artragis

Le problème principal que j’ai est que la méthode de déploiement décrite sur cette doc concerne Debian 7 alors que je suis sur un VPS sous Ubuntu.

Mais j’ai essayé et j’ai déjà accompli les étapes suivantes de la : doc :

  1. Création de l’utilisateur local ayant des droits root
  2. Installation des outils : python, virtualenv, git
  3. Clone du repo

Seulement au milieu de cette étape, je bloque sur les éléments to fill à compléter dans le fichier settings_prod.py. Et la suite donc.

Je trouve le projet super ! Une fois en place, n’hésite pas à en reparler ici !

qwerty

Merci beaucoup. C’est exactement pour mettre en place le projet que je suis venu demander de l’aide. Et je suis entrain de recevoir d’excellents retours. Merci la communauté.

on n’a rien de prévu pour l’instant, mais la magie du libre dit que c’est pas impossible.

artragis

Je ne peux pas désespérer parce que à mon avis la philosophie de Zeste de savoir basée sur le partage des connaissances et la communauté est capable de créer de vrais phénomènes de société. Je ne veux pas dire du mal des autres mais feu SDZ avait offert au monde une précieuse communauté que son successeur OCR n’a pas.

Mais arretons de pleurnicher sur Feu SDZ puisqu’aujourd’hui il y a ZDS vivant;)

Question: Si d’avenir des instances de zds prennent vie et connaissent un certain succès, peut on imaginer d’avoir un système de fédération autour de thématique comme ce que fait stackoverflow & co ?

Davidbrcz

Par thématique, je sais pas, vu que ZDS est pluri-thématique. Par langue, plus certainement :-)

+0 -0

Hello,

Super initiative.

Je voudrais soumettre à la communauté les doléances suivantes :

  1. Quelqu’un pourrait-il m’aider dans le processus de déploiement vu que je me suis perdu en suivant la procédure donnée dans la doc officielle? Ma configuration est la suivante : Serveur VPS, Ubuntu 17.04, Apache2, en sachant que le serveur héberge également d’autres sites PHP et que je ne veux pas installer NGINX.

  2. Où en est-on avec la traduction? Sinon, quelqu’un peut-il me donner les chaines de ZDS qui sont à traduire et si possible le moyen d’intégrer les traductions dans le code de ZDS vu que j’ai sur les forums que ZDS n’est pas codé dans la prévision d’une internationalisation et qu’il faut donc intégrer les traductions en dur.

blasius
  1. Je ne sais pas ou ça en est, mais si tu as besoin d’un coup de main (j’imagine que le plus compliqué sera de traduire les instructions nginx de la doc vers apache ).

  2. Pour générer la liste des chaines a traduire, après avoir cloné ton projet et installé gettext tu lance la commande python manage.py makemessages -l run (run pour le code ISO la langue). Tu devrais donc retrouver dans le fichier conf/locale/run/LC_MESSAGES/django.po l’ensemble des chaines à traduire que tu dois compléter.

Seulement au milieu de cette étape, je bloque sur les éléments to fill à compléter dans le fichier settings_prod.py

blasius

Peut-être que le mieux c’est de t’expliquer chaque élément to-fill pour que tu le remplisses toi même. Voici donc les éléments :

  • DATABASES.default.PASSWORD : il s’agit du mot de passe de ta base de donnée. On suppose donc que tu as installé mysql et crée une base nommée zdsdb dont l’utilisateur mysql de la base est zds.
  • SECRET_KEY : il s’agit d’une clé secrète django. Tu peux en générer une par exemple en utilisant ce site
  • RAVEN_CONFIG : pour un début tu peux t’en passer car il faut installer un serveur sentry a coté pour pouvoir l’utiliser. Donc tu peux supprimer toute cette clé pour le moment.
  • SOCIAL_AUTH_* : Dans un premier temps tu n’as pas besoin de valoriser ces champs. Il faudrait créer un compte API sur chaque réseau social (Facebook, Twitter, Google) et générer des clés OAuth2.
  • RECAPTCHA*: idem ici, dans un premier temps, n’y touche pas. Vu que par défaut le captcha n’est pas activé (cf. la clé USE_CAPTCHA = False)
  • ZDS_APP[’site’][’googleAnalyticsID’] : Si tu as un compte analytics, tu peux renseigner l’ID du compte. ça ressemble à quelque chose comme UA***

Voilà, normalement ça devrait t’aider a monter quelque chose qui tourne. Une fois que c’est fait, on s’attaquera aux choses optionnelles.

Si tu bloques quelque part n’hésite pas à revenir sur le topic.

Hello,

Super initiative.

firm1

Merci beaucoup.

Peut-être que le mieux c’est de t’expliquer chaque élément to-fill pour que tu le remplisses toi même. Voici donc les éléments :

firm1

Là encore merci parce que c’est exactement ce dont j’avais besoin.

Je remercie infiniment la communauté pour tout le soutien que je reçois. Je vais maintenant présenter où j’en suis avec la configuration.

artragis m’avait conseillé de rejoindre le canal IRC de dev de ZDS et je m’y suis rendu. On m’a conseillé de modifier ma configuration de serveur et de faire en sorte que NGINX soit le reverse-proxy de Apache. J’ai eu un peu peur de me perdre dans beaucoup de configurations et j’ai opté pour le changement total de logiciel serveur et j’ai installé NGINX au lieu de Apache. Tous mes autres sites fonctionnent bien avec cette nouvelle configuration, donc je n’ai aucun problème.

J’ai donc attaqué la configuration de prod de mon fork de ZDS et j’en suis à cette étape de la doc. Je voudrais rappeler que je suis sous ubuntu au lieu de DEBIAN utilisé pour la doc. J’avoue qu’à cette étape je me perds et que de l’aide serait la bienvenue. Merci encore.

J’ai donc attaqué la configuration de prod de mon fork de ZDS et j’en suis à cette étape de la doc.

blasius

A cette étape, les prérequis qui doivent être effectués de ton coté sont :

Pour gunicorn
  • ton projet doit avoir été gitcloné dans /opt/zds/zds-site
  • tu dois avoir créer un utilisateur (cf. adduser) nommé zds sur ton systèmes appartenant au groupe zds.
Pour nginx
  • Tu dois avoir un nom de domaine qui pointe sur l’adresse IP de ton serveur ubuntu.

Puis il ne te reste plus qu’à copier les fichier en remplaçant les zestedesavoir.com par tondomaine.com

Si jamais tu bloques quelque part en particulier n’hésite pas. Il se peut que la doc ne soit pas à jour sur certains points (par exemple je ne vois pas pourquoi on demande encore d’installer supervisor).

Salut.

A cette étape, les prérequis qui doivent être effectués de ton coté sont :

Pour gunicorn
  • ton projet doit avoir été gitcloné dans /opt/zds/zds-site
  • tu dois avoir créer un utilisateur (cf. adduser) nommé zds sur ton systèmes appartenant au groupe zds.
Pour nginx
  • Tu dois avoir un nom de domaine qui pointe sur l’adresse IP de ton serveur ubuntu.

Puis il ne te reste plus qu’à copier les fichier en remplaçant les zestedesavoir.com par tondomaine.com

firm1

J’ai effectué toutes les éditions de nécessaires sauf sur l’emplacement des fichiers du site que j’ai voulu placer à coté des autres sites donc dans /var/www/zds au lieu de /opt/zds mais j’ai pris le soin de modifier les chemins. Maintenant l’erreur que j’ai concerne la configuration de raven et ma console ressemble à ceci :

erreur_console_raven

Je voudrais savoir comment obtenir la valeur à compléter pour le DSN de raven ou s’il ya moyen de l’ignorer sans poser des problèmes.

il suffit de ne pas le mettre, tu n’as pas forcément besoin d’un sentry pour ton serveur.

artragis

Et l’erreur qui apparait lorsque j’essai de faire un migrate? J’ai eu peur de continuer en pensant que l’erreur avait un effet bloquant sur les autres parties. Je peux donc continuer?

en fait elle apparaîtra tout le temps car les settings sont tout le temps importés. Pour l’instant tu peux ne pas utiliser Sentry, pour cela tu dois :

  • retirer toute la configuration RAVEN
  • dans les INSTALLED_APPS, tu dois retirer les référence à Sentry et/ou Raven (j’ai pas le code sous les yeux)

et après roule ma poule

Bonjour. Je reviens après plusieurs semaines de péripéties dans le déploiement de ma version de ZesteDeSavoir. J’ai suivi tous les conseils que vous m’avez généreusement prodigués et me voici avec une bonne nouvelle : j’ai réussi le déploiement sur mon serveur Ubuntu 17.04. Donc sur mon domaine https://akanyaburunga.org il y a un fork de ZDS(copie conforme pour le moment o_O). Je peux donc résumer ce que j’ai déjà réussi à faire :

  1. Créer un service zds.service et un socket zds.socket qui tournent et servent le site;
  2. Configurer nginx pour servir le site sur mon domaine.

Pour la suite je voudrais demander de l’aide sur les parties suivantes:

  • Les paramètres: suivant la doc, j’ai créé un fichier settings_prod.py que j’ai mis à coté de settings.py et configuré selon des paramètres personnalisés mais je ne crois pas que cette version de prod soit celle que charge django pour tourner. Je me demande s’il ne faut pas plutôt écraser settings.py par settings_prod.py pour que la configuration de prod soit prise en compte.

  • Le menu principal: mon menu est tout bizarre et est composé de Bibliothèque, Tribune et Forum.

Faux menu akanyaburunga

Est-ce un sort qu’on m’a jeté ou j’ai forké une version non encore officialisée? Comment je pourrais avoir un menu normal comme celui-ci :

Menu ZDS
  • La version: le problème que j’ai est que je remarque que j’ai une version de dev :
Ma version

Comment pourrais-je avoir une version de prod? L’idéal pour moi est que si possible j’aimerais faire évoluer mon site en parallèle de ZDS donc avoir la même vesrion de prod que ZDS. Seulement j’ignore si c’est possible vu que je veux en même temps traduire mon site petit à petit l’application restant tout de même ZDS.

  • Le https: j’ai créé un certificat de sécurité avec letsencrypt et il marche à ce que je vois. Seulement le cadenas ne s’active pas et Firefox m’indique qu’il y a des parties non sécurisées sur mon domaine
Akanyaburunga https

Quelqu’un pourrait-il m’indique ce qu’il faut faire pour que la sécurité soit entièrement activée?

Je sais, c’est trop de choses demandées en même temps(Bien que le gros reste de venir plus tard!>_<). Mais si quelqu’un peut me prêter un coup de main sur l’une ou l’autre des demandes que j’ai faites en haut, je serais très reconnaissant.

En attendant vos retours, je fais un tour sur ZDS. Merci.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte