Ce fichier liste les actions à faire pour mettre en production les différentes versions de Zeste de Savoir.
Ajoutez tout simplement vos instructions à la suite de ce fichier.
Dans le settings_prod.py
- Remplacer
SITE_URL = 'http://zestedesavoir.com'
parZDS_APP['site']['url'] = 'http://zestedesavoir.com'
- Remplacer
ANONYMOUS_USER = "anonyme"
parZDS_APP['member']['anonymous_account'] = 'anonyme'
- Remplacer
EXTERNAL_USER = "Auteur externe"
parZDS_APP['member']['external_account'] = 'Auteur externe'
- Remplacer
BOT_ACCOUNT = 'Clem'
parZDS_APP['member']['bot_account'] = 'Clem'
- Remplacer
BETA_FORUM_ID = x
parZDS_APP['forum']['beta_forum_id'] = x
Installer les outils d'optimisation :
apt-get install optipng
apt-get install jpegoptim
Mettre à jour le fichier settings_prod.py
:
THUMBNAIL_OPTIMIZE_COMMAND = {
'png': '/usr/bin/optipng {filename}',
'gif': '/usr/bin/optipng {filename}',
'jpeg': '/usr/bin/jpegoptim {filename}'
}
- Pour un compte facebook :
- allez sur https://developers.facebook.com/apps/?action=create et cliquer sur "Create New App" en vert
- Dans les paramètre de l'application crée cliquez sur “Add Platform”. Dans les options fournies, choisissez Web, et remplissez l'url du site avec "http://zestedesavoir.com" (adaptez l'adresse en fonction de l'adresse sur laquelle vous déployez)
- dans votre fichier
settings_prod.py
rajouter les variablesSOCIAL_AUTH_FACEBOOK_KEY = "clé"
etSOCIAL_AUTH_FACEBOOK_SECRET = "secret"
obtenu via l'application facebook
- Pour un compte twitter :
- allez sur https://apps.twitter.com/app/new et creez une nouvelle application
- remplissez les informations, et dans votre url de callback pensez à renseigner
http://zestedesavoir.com/complete/twitter/
(adaptez l'adresse en fonction de l'adresse sur laquelle vous déployez) - dans votre fichier
settings_prod.py
rajouter les variablesSOCIAL_AUTH_TWITTER_KEY = "clé"
etSOCIAL_AUTH_TWITTER_SECRET = "secret"
obtenu via l'application twitter
- Pour un compte google plus :
- allez sur https://console.developers.google.com/ et creez une nouvelle application
- remplissez les informations, et dans votre url de callback pensez à renseigner
http://zestedesavoir.com/complete/google-oauth2/
(adaptez l'adrese en fonction de l'adresse sur laquelle vous testez déployez) - dans votre fichier
settings_prod.py
rajouter les variablesSOCIAL_AUTH_GOOGLE_OAUTH2_KEY = "clé"
etSOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = "secret"
obtenu via l'application google
Définir des positions pour les catégories de tutoriels dans la partie admin du site (par défaut toutes à 0). L'odre d'affichage se fait par ordre croissant. Les sous-catégories sont triées automatiquement par ordre alphabétique.
Mettre à jour le modèle de données.
python manage.py migrate
Si un souci apparait via South qui grogne avec un message comme celui-ci pas de panique !
Inconsistent migration history
The following options are available:
--merge: will just attempt the migration ignoring any potential dependency
conflicts.
Il suffit de lui obéir et tout devrait rentrer dans l'ordre
python manage.py migrate --merge
Pour la ZEP, il faut aussi générer les "aides" de base : rédacteur, correcteur, repreneur, illustrateur. Tout est déjà prêt dans les fixtures dédiées à cela :
python load_factory_data.py fixtures/advanced/aide_tuto_media.yaml
Désormais les utilisateurs anonyme et auteur externe doit faire partie du groupe "bot".
Il faudra donc :
- créer le groupe "bot"
- vérifier que
settings.ZDS_APP['member']['bot_group']
vaut bien"bot"
- Aller dans l'interface de promotion des utilisateurs pour ajouter les comptes auteur externe et anonyme au groupe bot
Lancer la commande npm -v
et voir le résultat. Si le résultat est 1.x.x, lancer la commande sudo npm install -g npm
.
Faire pointer nginx sur static/
au lieu de dist/
.
Rajouter cette ligne dans le fichier zds/settings_prod.py
pour versionner les fichier statiques :
STATICFILES_STORAGE = "django.contrib.staticfiles.storage.CachedStaticFilesStorage"
Rajouter ces lignes dans le settings_prod.py
:
ZDS_APP['site']['googleAnalyticsID'] = 'UA-27730868-1'
ZDS_APP['site']['googleTagManagerID'] = 'GTM-WH7642'
Vérifier que EMAIL_BACKEND
est bien définit dans le settings_prod.py
car il a maintenant une valeur par défaut. La configuration par défaut sur la prod devrait être EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
.
Avant de lancer la migration de la base, prévenir Django que easy_thumbnail
est déjà OK :
python manage.py migrate --fake easy_thumbnails
Le reste l'est aussi mais Django est incapable de le détecter tout seul pour cette app.
Attention : il est possible que Django perde l'information du "migrate fake" pendant la migration et donc plante sur cette étape pendant le déploiement. Si c'est le cas, pas de panique, il suffit de releancer les migrations à la main et de redémarrer l'application :
cd /opt/zdsenv/ZesteDeSavoir/
source ../bin/activate
python manage.py migrate --fake easy_thumbnails
python manage.py migrate
deactivate
sudo supervisorctl restart zds
Désinstaller south: pip uninstall south
. La MAJ de Django de la 1.6 à la 1.7 sera faite par le script (via la mise à jour des requirements).
(A priori spécifique à zestedesavoir.com, mais ça peut aider selon l'installation qui est faite du site)
- Le fichier
unicorn_start
est inutile et peut être supprimé. - La conf
gunicorn_config.py
peut être pas mal simplifiée. Fichier utilisé en bêta, quelques adaptations peuvent être nécessaires pour la production :
command = '/opt/zdsenv/bin/gunicorn'
pythonpath = '/opt/zdsenv/ZesteDeSavoir'
bind = 'unix:/opt/zdsenv/bin/gunicorn.sock'
workers = 7
user = 'zds'
group = 'zds'
errorlog = '/opt/zdsenv/logs/gunicorn_error.log'
loglevel = 'info'
- Mettre à jour la configuration supervisor pour utiliser la bonne manière de lancer Gunicorn. Fichier utilisé en bêta, quelques adaptations peuvent être nécessaires pour la production :
[program:zds]
directory = /opt/zdsenv/
command = /opt/zdsenv/bin/gunicorn -c /opt/zdsenv/gunicorn_config.py zds.wsgi
stdout_logfile = /opt/zdsenv/logs/supervisor_stdout.log
stderr_logfile = /opt/zdsenv/logs/supervisor_stderr.log
- Redémarrer Supervisor pour prendre en compte les modifications :
sudo service supervisor restart
Exécuter la commande suivante : sudo apt-get install libffi-dev
Fix sur la recherche d'article avec Solr :
- Arrêter Solr :
supervisorctl stop solr
- Mettre à jour solr et employer la version 4.9.1 (
wget http://archive.apache.org/dist/lucene/solr/4.9.1/solr-4.9.1.zip
dans le dossier ou doit se trouver Solr, probablement/opt/zdsenv/ZesteDeSavoir/
) - Regénérer le schema.xml :
python manage.py build_solr_schema > /votre/path/vers/solr-4.9.1/example/solr/collection1/conf/schema.xml
- Redémarrer Solr :
supervisorctl start solr
- Lancer l'indexation :
python manage.py rebuild_index