Commit 70d6a914 authored by Sandrine Ribeau's avatar Sandrine Ribeau
Browse files

Add link to installation in front page.

A little cleaning in installation section, but still needs improvments.
parent 73a25e46d3a9
Mise en place d'un environnement de développement Erudi
=======================================================
.. -*- coding: utf-8 -*-
.. toctree::
:maxdepth: 1
sect_mercurial.txt
sect_installation.txt
sect_cubicweb-ctl.txt
Création d'un composant
-----------------------
Commençons par créer un squelette qui nous servira de base au développement de
notre composant ou application ::
cd ~/hg
erudi-ctl newtemplate moncomposant
# répondre aux questions
hg init moncomposant
cd moncomposant
hg add .
hg ci
A partir de là si tout va bien, votre composant devrait être affiché par
`erudi-ctl list` dans la section *Available components*, si ce n'est pas le cas
revoir la section `Configuration de l'environnement`_.
Pour utiliser un composant, il faut le mentionner dans la variable
__use__ du fichier __pkginfo__ de l'application. Cette variable
contrôle à la fois le packaging de l'application (dépendances gérées
par les utilitaires système comme les outils APT) et les composants
effectivement utilisables lors de la création de la base
(import_erschema('Moncomposant') ne fonctionne pas sinon).
Création d'une instance de développement
----------------------------------------
Maintenant que nous avons notre squelette de modèle, on peut en créer une
instance afin de voir ce que tout ça donne dans un simple navigateur web.
Nous allons utiliser une configuration `all-in-one` afin de simplifier les
choses ::
erudi-ctl create -c all-in-one moncomposant moninstance
.. _MiseEnPlaceEnv:
Une série de questions vont être posées, la réponse par défaut est généralement
suffisante. Vous pourrez de toute façon modifier la configuration par la suite
en éditant les fichiers générés. Lorsqu'un login/mot de passe d'accès au sgbd
vous est demandé, il est recommandé d'utilisé l'utilisateur créé lors de la
`Configuration Postgres`_.
Installation et mise en place d'un environnement `CubicWeb`
===========================================================
Il est important de distinguer ici l'utilisateur utilisé pour accéder au sgbd,
et l'utilisateur utilisé pour s'authentifier dans l'application erudi. Lorsque
l'application erudi démarre, elle utilise le login/mot de passe sgdb pour
récupérer le schéma et gérer les transactions bas-niveau. En revanche, lorsque
`erudi-ctl create` vous demande un login/mot de passe `manager` pour erudi, il
s'agit d'un utilisateur qui sera créé dans l'application `erudi` pour pouvoir
s'y connecter dans un premier temps et l'administrer. Il sera par la suite possible
de créer des utilisateurs différents pour l'application.
A l'issue de cette commande, la définition de votre instance se trouve dans
*~/etc/erudi.d/moninstance/*. Pour la lancer, il suffit de taper ::
erudi-ctl start -D moninstance
L'option `-D` indique le *debug mode* : l'instance ne passe pas en mode serveur
et ne se déconnecte pas du terminal, ce qui simplifie le dépannage en cas de non
démarrage de l'instance. Vous pouvez ensuite allez voir ce que ça donne en
pointant votre navigateur sur l'url `http://localhost:8080` (le n° de port
dépend de votre configuration). Pour vous authentifier vous pouvez utiliser le
login/mot de passe administrateur que vous avez spécifié lors de la création de
l'instance.
Pour arrêter l'instance, un Ctrl-C dans la fenêtre où vous l'avez lancé
suffit. Si l'option `-D` a été omise, il faut taper ::
erudi-ctl stop moninstance
Voilà, tout est en place pour démarrer le développement du modèle...
Utilisation de erudi-liveserver
-------------------------------
Afin de tester rapidement un nouveau composant, on peut également
utiliser le script `erudi-liveserver` qui permet de créer une
application en mémoire (utilisant une base de données SQLite par
défaut) et la rendre accessible via un serveur web::
erudi-liveserver moncomposant
ou bien, pour utiliser une base de données existante (SQLite ou postgres)::
.. toctree::
:maxdepth: 1
erudi-liveserver -s monfichier_sources moncomposant
sect_installation.txt
sect_creation_instance.txt
sect_cubicweb-ctl.txt
sect_mercurial.txt
.. -*- coding: utf-8 -*-
===================================
Creation de votre premiere instance
===================================
Qu'est-ce qu'une instance?
==========================
Une instance CubicWeb consiste en un dossier situe dans ``~/etc/cubicweb.d``
qui permettra de lancer une application web. Une instance est cree a partir
d'un ou plusieurs cubes.
Nous recommandons de ne pas definir de schema, entites ou vues dans l'instance
meme si cela est possible dans un but de re-utilisabilite des entities et de leurs
vues. Nous conseillons plutot de developper des cubes qui pourront par la suite
etre utilises dans d'autres instances (approche modulaire).
L'instance n'est qu'un conteneur referrant a des cubes et a des parametres
des configuration de l'application web.
Qu'est-ce qu'un cube?
=====================
Un cube definit des entities, leur vues, leur schemas et leur workflow
dans un repertoire independant situe dans ``/path/to/forest/cubicweb/cubes/``.
Lors de la creation d'une instance, vous avez la possibilite de lister
le ou les cubes que votre instance va utiliser. Utiliser un cube signifie
avoir a disposition dans votre instance les entites definies dans le schema
de votre cube ainsi que les vues et les workflows.
.. note::
Les commandes utilisees ci-apres sont detaillees dans la section
dediee a :ref:`cubicweb-ctl`.
Création d'un cube
==================
Commençons par créer un squelette qui nous servira de base au développement de
notre cube ou application ::
cd ~/hg
cubicweb-ctl newtemplate moncube
# répondre aux questions
hg init moncube
cd moncube
hg add .
hg ci
A partir de là si tout va bien, votre cube devrait être affiché par
`cubicweb-ctl list` dans la section *Available components*, si ce n'est pas le cas
revoir la section :ref:`ConfigurationEnv`.
Pour utiliser un cube, il faut le mentionner dans la variable
__use__ du fichier __pkginfo__ de l'application. Cette variable
contrôle à la fois le packaging de l'application (dépendances gérées
par les utilitaires système comme les outils APT) et les composants
effectivement utilisables lors de la création de la base
(import_erschema('Moncomposant') ne fonctionne pas sinon).
Création d'une instance de développement
========================================
Maintenant que nous avons notre squelette de modèle, on peut en créer une
instance afin de voir ce que tout ça donne dans un simple navigateur web.
Nous allons utiliser une configuration `all-in-one` afin de simplifier les
choses ::
cubicweb-ctl create -c all-in-one moncube moninstance
Une série de questions vont être posées, la réponse par défaut est généralement
suffisante. Vous pourrez de toute façon modifier la configuration par la suite
en éditant les fichiers générés. Lorsqu'un login/mot de passe d'accès au sgbd
vous est demandé, il est recommandé d'utiliser l'utilisateur créé lors de la
:ref:`ConfigurationPostgres`.
Il est important de distinguer ici l'utilisateur utilisé pour accéder au sgbd,
et l'utilisateur utilisé pour s'authentifier dans l'application cubicweb. Lorsque
l'application cubicweb démarre, elle utilise le login/mot de passe sgdb pour
récupérer le schéma et gérer les transactions bas-niveau. En revanche, lorsque
`cubicweb-ctl create` vous demande un login/mot de passe `manager` pour cubicweb, il
s'agit d'un utilisateur qui sera créé dans l'application `cubicweb` pour pouvoir
s'y connecter dans un premier temps et l'administrer. Il sera par la suite possible
de créer des utilisateurs différents pour l'application.
A l'issue de cette commande, la définition de votre instance se trouve dans
*~/etc/cubicweb.d/moninstance/*. Pour la lancer, il suffit de taper ::
cubicweb-ctl start -D moninstance
L'option `-D` indique le *debug mode* : l'instance ne passe pas en mode serveur
et ne se déconnecte pas du terminal, ce qui simplifie le dépannage en cas de non
démarrage de l'instance. Vous pouvez ensuite allez voir ce que ça donne en
pointant votre navigateur sur l'url `http://localhost:8080` (le n° de port
dépend de votre configuration). Pour vous authentifier vous pouvez utiliser le
login/mot de passe administrateur que vous avez spécifié lors de la création de
l'instance.
Pour arrêter l'instance, un Ctrl-C dans la fenêtre où vous l'avez lancé
suffit. Si l'option `-D` a été omise, il faut taper ::
cubicweb-ctl stop moninstance
Voilà, tout est en place pour démarrer le développement du modèle...
Utilisation de cubicweb-liveserver
----------------------------------
Afin de tester rapidement un nouveau cube, on peut également
utiliser le script `cubicweb-liveserver` qui permet de créer une
application en mémoire (utilisant une base de données SQLite par
défaut) et la rendre accessible via un serveur web::
cubicweb-ctl live-server moncomposant
ou bien, pour utiliser une base de données existante (SQLite ou postgres)::
cubicweb-ctl live-server -s monfichier_sources moncomposant
......@@ -6,9 +6,38 @@ Installation
Installation de Cubicweb et de ses dépendances
----------------------------------------------
[TODO]
Decrire l'installation de la foret mercurial plutot qu'avec
les paquets debian
`CubicWeb` est disponible via un entrepôt Mercurial utilisant l'extension forest.
Vous devez donc dans un premier temps vous assurer que Mercurial est bien installé
et que vous avez l'extension forest.
Installation de Mercurial
`````````````````````````
Veuillez vous référer a la documentation en ligne du projet Mercurial_.
.. _Mercurial: http://www.selenic.com/mercurial/wiki/
Installation de l'extension forest
``````````````````````````````````
Dans un premier temps, récupérez une copie des sources via: http://hg.akoha.org/hgforest/.
Ensuite, ajoutez a votre ``~/.hgrc`` les lignes suivantes ::
[extensions]
hgext.forest=
# or, if forest.py is not in the hgext dir:
# forest=/path/to/forest.py
Installation de Postgres
````````````````````````
Veuillez vous référer a la documentation en ligne du projet Postgres_.
.. _Postgres: http://www.postgresql.org/
[FIXME]
Supprimer tout ce qui fait reference a l'installation des paquets debian des
que le fclone sur logilab.org fonctionne.
Tout le système `Cubicweb` est préparé pour l'installation sur une machine
debian. L'installation manuelle est un peu pénible du fait des nombreuses
......@@ -38,8 +67,11 @@ On pourra ensuite installer les paquets suivants :
* `postgresql-8.1`, `postgresql-contrib-8.1` et `postgresql-plpython-8.1` la
machine devant héberger la base de données système
.. _ConfigurationEnv:
Configuration de l'environnement
--------------------------------
[FIXME]
Ces variables ne sont plus requises pour le bon fonctionnement de `CubicWeb`, non?
A part rajouter la foret dans le PYTHONPATH, rien de plus ne doit etre fait?
......@@ -55,6 +87,7 @@ Cela suppose que le composant erudi que vous développez est dans un
sous-répertoire de *~/hg/* et que vous avez créé le répertoire *~/etc/erudi.d/*
pour que `cubicweb-ctl` y place vos instances de test.
.. _ConfigurationPostgres:
Configuration Postgres
----------------------
......
......@@ -31,6 +31,9 @@ Si vous aimez Python et sa librairie standard, vous avez des chances d'aimer
En 2008, `CubicWeb` a été porté pour GoogleAppEngine_ et a donné naissance
à `LAX`, `Logilab Appengine eXtension`.
Pour les impatients, :ref:`MiseEnPlaceEnv`.
.. _Logilab: http://www.logilab.fr/
.. _GoogleAppEngine: http://code.google.com/appengine/
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment