doc: séparation du guide "admin technique" en plusieurs pages

This commit is contained in:
Thomas NOËL 2012-07-20 14:24:24 +02:00
parent b320cff367
commit 9057acba04
7 changed files with 559 additions and 192 deletions

View File

@ -0,0 +1,16 @@
<page xmlns="http://projectmallard.org/1.0/"
type="topic" style="task"
id="install-centos" xml:lang="fr">
<info>
<desc>Installation et configuration sur un système CentOS.</desc>
<link type="guide" xref="install"/>
<title type="sort">2 - centos</title>
</info>
<title>Installation sur CentOS</title>
<p>
</p>
</page>

View File

@ -0,0 +1,16 @@
<page xmlns="http://projectmallard.org/1.0/"
type="topic" style="task"
id="install-debian" xml:lang="fr">
<info>
<desc>Installation et configuration sur un système Debian GNU/Linux.</desc>
<link type="guide" xref="install"/>
<title type="sort">1 - debian</title>
</info>
<title>Installation sur Debian</title>
<p>
</p>
</page>

View File

@ -0,0 +1,68 @@
<page xmlns="http://projectmallard.org/1.0/"
type="topic" style="task"
id="install-general" xml:lang="fr">
<info>
<desc>Description générale du système et de l'environnement nécessaire.</desc>
<link type="guide" xref="install"/>
<title type="sort">0 - general</title>
</info>
<title>Généralités</title>
<p>L'application étant programmée en Python (Django), il n'y a pas d'étape de
compilation, les fichiers doivent juste être placés aux bons endroits et
quelques répertoires créés avec les bonnes permissions. L'arborescence
conseillée pour les fichiers est la suivante, c'est celle qui est prévue dans
les scripts livrés et la configuration par défaut :
</p>
<table frame="" shade="rows">
<tr><td><p><code>/opt/polynum</code></p></td><td><p>répertoire de l'application</p></td></tr>
<tr><td><p><code>/opt/polynum/polynum</code></p></td><td><p>code de l'application Polynum (Django)</p></td></tr>
<tr><td><p><code>/opt/polynum/bin</code></p></td><td><p>scripts associés au projet</p></td></tr>
<tr><td><p><code>/opt/polynum/virtualenv</code></p></td><td><p>environnement virtuel contenant les modules Python spécifiques</p></td></tr>
<tr><td><p><code>/opt/polynum/static</code></p></td><td><p>fichiers statiques (images, scripts javascript, feuille de style CSS)</p></td></tr>
<tr><td><p><code>/etc/polynum</code></p></td><td><p>répertoire des fichiers de configuration</p></td></tr>
<tr><td><p><code>/var/lib/polynum</code></p></td><td><p>répertoire des données (dont les fichiers PDF)</p></td></tr>
<tr><td><p><code>/var/run/polynum</code></p></td><td><p>données d'exécution (PID du processus, <em>sockets</em>, etc)</p></td></tr>
</table>
<p>
En outre, on doit disposer de :</p>
<terms>
<item>
<title>Une base de données :</title>
<p>Une base de données <link
href="http://www.postgresql.org/">PostgreSQL</link> est nécessaire. Elle peut
être locale ou distante. Polynum devra disposer des droits suffisants sur
cette base, y compris pour créer ou modifier des tables.</p>.
<p>Pour les tests uniquement, une petite base locale en SQLite peut être
utilisée. La configuration par défaut utilise une base
<code>/tmp/polynum.sqlite</code>. En production, les performances de SQLite
ne sont pas suffisantes.</p>
</item>
<item>
<title>Un utilisateur système dédié <code>polynum</code> :</title>
<p>Afin de sécuriser le fonctionnement de l'application, elle tournera avec un
utilisateur dédié. Il sera le seul à disposer des accès nécessaires sur le
système (lecture du fichier de configuration contenant des mots de passe,
écriture sur le répertoire des fichiers téléchargés, etc).
</p>
<p>Dans la configuration par défaut, l'utilisateur se nomme <code>polynum</code>
associé à un groupe <code>polynum</code>.
</p>
</item>
<item>
<title>Un serveur web pour diffusion vers l'extérieur :</title>
<p>
L'application peut se lancer en tant que serveur web, mais pour des raisons
de performance et de sécurité, il est fortement recommandé de la faire
fonctionner derrière un serveur web classique (tel que <code>nginx</code>
ou <code>apache</code>) qui gérera entre autre la diffusion des fichiers
statiques de façon performante.
</p>
</item>
</terms>
</page>

76
help/fr/install-prod.page Normal file
View File

@ -0,0 +1,76 @@
<page xmlns="http://projectmallard.org/1.0/"
type="topic" style="task"
id="install-prof" xml:lang="fr">
<info>
<desc>Mise en production.</desc>
<link type="guide" xref="install"/>
<title type="sort">3 - prod</title>
</info>
<title>Passage en production</title>
<links type="section" />
<section id="config">
<title>Configuration de l'application</title>
<p>La configuration de l'application se fait dans <code>/etc/polynum/local_settings.py</code></p>
<p>Un fichier d'exemple <code>local_settings.py.example</code> est fourni avec
Polynum, c'est un modèle pour la création de
<code>/etc/polynum/local_settings.py</code> : il contient la liste des
paramétrages possibles avec explications et exemples.</p>
<p>Si vous avez installé Polynum à partir du paquet, le modèle est placé
dans <code>/usr/share/doc/polynum/</code>, il vous suffit donc de faire :</p>
<screen>
<output style="prompt"># </output><input>cd /etc/polynum</input>
<output style="prompt"># </output><input>cp /usr/share/doc/polynum/local_settings.py.example local_settings.py</input>
<output style="prompt"># </output><input>vi local_settings.py</input>
</screen>
</section>
<section id="installation-sql">
<title>Installation de la base de données</title>
<p>TODO</p>
</section>
<section id="installation-init">
<title>Mise en place des données initiales</title>
<p>TODO</p>
</section>
<section id="installation-auth">
<title>Configuration de l'authentification</title>
<p>Polynum peut authentifier les utilisateurs via CAS et LDAP. Dans
<code>/etc/polynum/local_settings.py</code> adapter les paramètres suivants
:</p>
<code>
(... extrait de /etc/polynum/local_settings.py ...)
CAS_SERVER_URL = "https://cas.univ.fr/" # CAS server URL
LDAP_URL = "ldaps://ldap.univ.fr" # LDAP server URL
LDAP_BIND_DN = "uid=...,ou=...,dc=..." # DN to authenticate to the LDAP server
LDAP_BIND_PASSWORD = "..." # password
LDAP_USER_QUERY = "supannAliasLogin=%s" # query to retrieve user, %s is CAS username
LDAP_BASE = "dc=univ,dc=fr" # base DN for the query
</code>
</section>
<section id="installation-init.d">
<title>Lancement de l'application au démarrage du système</title>
<p>TODO</p>
</section>
<section id="installation-reverseproxy">
<title>Mise en production derrière un reverse-proxy</title>
<p>TODO</p>
</section>
</page>

170
help/fr/install-source.page Normal file
View File

@ -0,0 +1,170 @@
<page xmlns="http://projectmallard.org/1.0/"
type="topic" style="task"
id="install-source" xml:lang="fr">
<info>
<desc>Installation depuis les sources.</desc>
<link type="guide" xref="install"/>
<title type="sort">4 - sources</title>
</info>
<title>Installation «manuelle»</title>
<links type="section" />
<p>L'application étant programmée en Python (Django), il n'y a pas d'étape de
compilation, les fichiers doivent juste être placés aux bons endroits et
quelques répertoires créés avec les bonnes permissions.</p>
<p>
L'arborescence conseillée pour les fichiers est la suivante, c'est celle qui
est prévue dans les scripts livrés et la configuration par défaut :
</p>
<table frame="" shade="rows">
<tr><td><p><code>/opt/polynum</code></p></td><td><p>répertoire de l'application</p></td></tr>
<tr><td><p><code>/opt/polynum/polynum</code></p></td><td><p>code de l'application Polynum (Django)</p></td></tr>
<tr><td><p><code>/opt/polynum/bin</code></p></td><td><p>scripts associés au projet</p></td></tr>
<tr><td><p><code>/opt/polynum/virtualenv</code></p></td><td><p>environnement virtuel contenant les modules Python spécifiques</p></td></tr>
<tr><td><p><code>/opt/polynum/static</code></p></td><td><p>fichiers statiques (images, scripts javascript, feuille de style CSS)</p></td></tr>
<tr><td><p><code>/etc/polynum</code></p></td><td><p>répertoire des fichiers de configuration</p></td></tr>
<tr><td><p><code>/var/lib/polynum</code></p></td><td><p>répertoire des données (dont les fichiers PDF)</p></td></tr>
<tr><td><p><code>/var/run/polynum</code></p></td><td><p>données d'exécution (PID du processus, <em>sockets</em>, etc)</p></td></tr>
</table>
<section id="installation-user">
<title>Création d'un utilisateur et d'un groupe dédiés</title>
<p>Pour plus de sécurité, un utilisateur et un groupe <code>polynum</code> doivent
être créés. L'application fonctionnera sous cet utilisateur qui aura des permissions
limitées au strict nécessaire :</p>
<screen>
<output style="prompt"># </output><input>addgroup --system polynum</input>
<output style="prompt"># </output><input>adduser --system --ingroup polynum --no-create-home --disabled-password polynum</input>
<output style="prompt"># </output><input>usermod -c "PolyNum daemon user" -d /opt/polynum -g polynum polynum</input>
</screen>
</section>
Il faut que cet utilisateur dispose des droits d'écriture sur le répertoire des fichiers téléchargés :
<screen>
<output style="prompt"># </output><input>mkdir -p /var/lib/polynum/media</input>
<output style="prompt"># </output><input>chown polynum:polynum /var/lib/polynum/media</input>
<output style="prompt"># </output><input>chmod u=rwx,g=rwxs,o= /var/lib/polynum/media</input>
</screen>
<section id="installation-modules">
<title>Installation des modules Python et du <code>virtualenv</code></title>
<p>On distingue deux types de modules Python nécessaires au fonctionnement de
Polynum : les modules standards qui seront installés de façon classique sur le
système d'exploitation, et les modules plus récents ou non packagés qui seront
installés dans un <em>environnement virtuel</em> (<code>virtualenv</code>)
Python.</p>
<section id="installation-modules-std">
<title>Installation des modules standards</title>
<p>Les paquets standards suivant sont à installer avec <code>apt-get</code> ou
<code>yum</code>, selon votre distribution :</p>
<table frame="" shade="rows">
<title>Modules standards (installés par le paquet)</title>
<thead><tr><td><p>nom</p></td><td><p>description</p></td>
<td><p>deb</p></td><td><p>RPM</p></td></tr></thead>
<tr>
<td><p><code>psycopg2</code></p></td>
<td><p>connexion avec la base de données PostgreSQL.</p></td>
<td><p><code>python-psycopg2</code></p></td>
<td><p><code>python-psycopg2</code></p></td>
</tr>
<tr>
<td><p><code>ldap</code></p></td>
<td><p>connexion avec l'annuaire LDAP</p></td>
<td><p><code>python-ldap</code></p></td>
<td><p><code>python-ldap</code></p></td>
</tr>
</table>
</section>
<section id="installation-modules-virtualenv">
<title>Installation des autres modules Python</title>
<p>Les autres paquets seront installés dans un <em>virtualenv</em>, créé dans
<code>/opt/polynum/virtualenv</code>.</p>
<note>
<p>Si vous ne savez pas créer un <em>virtualenv</em>, utilisez le script
<code>polynum-build-virtualenv</code>. Il va créer automatiquement le
répertoire <code>/opt/polynum/virtualenv</code> contenant tous les modules
nécessaires.</p>
</note>
<table frame="" shade="rows">
<title>Modules placés dans un <code>virtualenv</code></title>
<thead><tr><td><p>nom (pypi)</p></td><td><p>description</p></td></tr></thead>
<tr>
<td><p><code>django</code></p></td>
<td><p>version 1.4</p></td>
</tr>
<tr>
<td><p><code>south</code></p></td>
<td><p></p></td>
</tr>
<tr>
<td><p><code>django-crispy-forms</code></p></td>
<td><p></p></td>
</tr>
<tr>
<td><p><code>django-sekizai</code></p></td>
<td><p></p></td>
</tr>
<tr>
<td><p><code>django-cas</code></p></td>
<td><p>prendre la version compatible avec Django 1.4 : <code>https://bitbucket.org/cpcc/django-cas/get/tip.tar.gz</code></p></td>
</tr>
<tr>
<td><p><code>django-grappelli</code></p></td>
<td><p>prendre la version compatible avec Django 1.4 : <code>git+https://github.com/sehmaschine/django-grappelli@grappelli_2_4</code></p></td>
</tr>
<tr>
<td><p><code>pypdf</code></p></td>
<td><p></p></td>
</tr>
<tr>
<td><p><code>flup</code></p></td>
<td><p></p></td>
</tr>
<tr>
<td><p><code>django-debug-toolbar</code></p></td>
<td><p></p></td>
</tr>
</table>
</section>
</section>
<section id="installation-config">
<title>Configuration de base l'application</title>
<p>La configuration de l'application se fait dans <code>/etc/polynum/local_settings.py</code></p>
<p>Un fichier d'exemple <code>local_settings.py.example</code> est fourni avec
Polynum, c'est un modèle pour la création de
<code>/etc/polynum/local_settings.py</code> : il contient la liste des
paramétrages possibles avec explications et exemples.</p>
<screen>
<output style="prompt"># </output><input>mkdir -p /etc/polynum</input>
<output style="prompt"># </output><input>cp /sources-de-polynum/local_settings.py.example /etc/polynum/local_settings.py</input>
<output style="prompt"># </output><input>chown polynum:polynum /etc/polynum/local_settings.py</input>
<output style="prompt"># </output><input>chmod 640 /etc/polynum/local_settings.py</input>
</screen>
</section>
<section id="installation-run">
<title>Lanceur de l'application</title>
<p>Un script d'initialisation est disponible dans les sources :
<code>debian/init.d</code>. Il faut éventuellement l'adapter au contexte local
de votre système.</p> </section>
</page>

212
help/fr/install-test.page Normal file
View File

@ -0,0 +1,212 @@
<page xmlns="http://projectmallard.org/1.0/"
type="topic" style="task"
id="install-test" xml:lang="fr">
<info>
<desc>Première installation et tests.</desc>
<link type="guide" xref="install"/>
<title type="sort">2.5 - test</title>
</info>
<title>Première installation et tests locaux</title>
<links type="section" />
<section id="config-base">
<title>Installation de la configuration par défaut</title>
<p>La configuration de l'application se fait dans
<code>/etc/polynum/local_settings.py</code>. Ce fichier doit être lisible par
l'utilisateur de l'application (<code>polynum</code>) et par lui seul, car en
production il contiendra notamment les mots de passe vers la base de données ou
le serveur LDAP.</p>
<p>Un fichier d'exemple <code>local_settings.py.example</code> est fourni avec
Polynum, c'est un modèle pour la création de
<code>/etc/polynum/local_settings.py</code> : il contient la liste des
paramétrages possibles avec explications et exemples.</p>
<p>Si vous avez installé Polynum à partir du paquet, le modèle est placé
dans <code>/usr/share/doc/polynum/</code>, il vous suffit donc de faire :</p>
<screen>
<output style="prompt"># </output><input>cd /etc/polynum</input>
<output style="prompt"># </output><input>cp /usr/share/doc/polynum/local_settings.py.example local_settings.py</input>
<output style="prompt"># </output><input>chown polynum:polynum local_settings.py</input>
<output style="prompt"># </output><input>chmod 640 local_settings.py</input>
</screen>
<p>La configuration livrée par défaut utilise une base SQLite locale
<code>/tmp/polynum.sqlite</code>, une authentification locale, lance le système
en mode <em>debug</em>, etc. Sauf si vous savez ce que vous faites, ne la
modifiez pas maintenant.
</p>
</section>
<section id="installation-sqlite">
<title>Création d'une base de données SQLite de test</title>
<note style="warning">
<p>Les manipulations suivantes doivent se faire sous l'utilisateur système
dédiée à polynum (<code>polynum</code> par défaut). Pour changer d'utilisateur,
vous pouvez utiliser une commande de ce style :</p>
<screen>
<output style="prompt"># </output><input>su -s /bin/bash polynum</input>
</screen>
<p>ou :</p>
<screen>
<output style="prompt">$ </output><input>sudo -u polynum /bin/bash</input>
</screen>
</note>
<p>C'est le framework Django qui va se charger de créer la base et les tables
correspondantes, à travers le script <code>polynum-manage.py</code>
(utilisation similaire au script <code>manage.py</code> des projets
Django).</p>
<steps>
<item>
<title>Création des tables et du super administrateur :</title>
<screen>
<output style="prompt">polynum@server:~$ </output><input>polynum-manage.py syncdb</input><output>
Syncing...
Creating tables ...
Creating table south_migrationhistory
(...)
Creating table editor_contentblock
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): </output><input>yes</input><output>
Username (leave blank to use 'polynum'): </output><input>admin</input><output>
E-mail address: </output><input>moi@univ.fr</input><output>
Password: </output><input>test</input><output>
Password (again): </output><input>test</input><output>
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
Synced:
> south
> django.contrib.auth
(...)
Not synced (use migrations):
- polynum.base
- polynum.delegation
(use ./manage.py migrate to migrate these)
</output><output style="prompt">polynum@zepo:~$ </output>
</screen>
</item>
<item>
<title>Migration des tables gérées par <code>south</code> :</title>
<screen>
<output style="prompt">polynum@server:~$ </output><input>polynum-manage.py migrate</input><output>
Running migrations for base:
(...)
Installed 0 object(s) from 0 fixture(s)
Running migrations for delegation:
(...)
Installed 0 object(s) from 0 fixture(s)
</output><output style="prompt">polynum@zepo:~$ </output>
</screen>
</item>
</steps>
<p>Par la suite, si vous voulez repartir avec une base de données vierge,
effacez le fichier <code>/tmp/polynum.sqlite</code> puis reprendre la
procédure (syncdb puis migrate).</p>.
</section>
<section id="installation-init">
<title>Mise en place de données initiales</title>
<p>Des données de démonstration sont livrées avec l'application qui simplifient
la compréhension de l'utilisation du système, et permettent de faire des tests
très rapidement.</p>
<terms>
<item>
<title>Importation des données de tests (sur une nouvelle base seulement) :</title>
<screen>
<output style="prompt">$ </output><input>polynum-manage.py loaddata /usr/share/doc/polynum/fixtures/*.json</input>
<output>Installed 134 object(s) from 6 fixture(s)</output>
</screen>
</item>
<item>
<title>Importation d'un arbre d'entités administratives, pour tests :</title>
<screen>
<output style="prompt">$ </output><input>polynum-manage.py loadentities /usr/share/doc/polynum/fixtures/structures.xml</input>
<output>Parsed 5199
Bounds [0, 15959]
dauphine
presidence
(...)
ceremade
irisso
Added 7980 entities
</output>
</screen>
</item>
</terms>
</section>
<section id="installation-run">
<title>Lancement de l'application en mode test</title>
<p>
</p>
<screen>
<output style="prompt">$ </output><input>polynum-manage.py runserver</input>
<output>
Validating models...
0 errors found
Django version 1.4, using settings 'polynum.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
</output>
</screen>
<p>Après lancement de cette commande, vous pouvez naviguer sur l'URL indiquée :
<link href="http://127.0.0.1:8000/">http://127.0.0.1:8000/</link>.</p>
<p>Arrêtez le serveur avec <keyseq><key>Ctrl</key><key>C</key></keyseq>.</p>
<p>Tapez <code>polynum-manage.py runserver --help</code> pour connaître les
options disponibles. Attention, il s'agit juste d'un serveur web de test, la
commande <code>runserver</code> de Django n'est pas adaptée à la production.
</p>
</section>
<section id="installation-auth">
<title>Tests d'authentification distante (CAS + LDAP)</title>
<p>Polynum peut authentifier les utilisateurs via CAS et LDAP. Dans
<code>/etc/polynum/local_settings.py</code> adapter les paramètres suivants
:</p>
<code>
(... extrait de /etc/polynum/local_settings.py ...)
CAS_SERVER_URL = "https://cas.univ.fr/" # CAS server URL
LDAP_URL = "ldaps://ldap.univ.fr" # LDAP server URL
LDAP_BIND_DN = "uid=...,ou=...,dc=..." # DN to authenticate to the LDAP server
LDAP_BIND_PASSWORD = "..." # password
LDAP_USER_QUERY = "supannAliasLogin=%s" # query to retrieve user, %s is CAS username
LDAP_BASE = "dc=univ,dc=fr" # base DN for the query
</code>
<p>Vous pouvez modifier ces paramètres puis relancer le serveur de test pour
vérifier que tout fonctionne.</p>
</section>
</page>

View File

@ -15,200 +15,9 @@ Cette partie de la documentation est dédiée aux administrateurs système qui
doivent installer l'application web Polynum.
</p>
<links type="section"/>
<section id="installation-fichiers">
<title>Installation des fichiers</title>
<p>L'installation se fait depuis un paquet (deb ou RPM) ou depuis les sources,
tous disponibles sur <link href="https://sourcesup.cru.fr/projects/polynum/">SourceSup</link>.
disponibles sur <link href="https://sourcesup.cru.fr/projects/polynum/">SourceSup</link>.
</p>
<p>L'application étant programmée en Python (Django), il n'y a pas d'étape de
compilation, les fichiers doivent juste être placés aux bons endroits.</p>
<p>
Dans la suite, l'arborescence des fichiers est la suivante :
</p>
<table frame="" shade="rows">
<tr><td><p><code>/opt/polynum</code></p></td><td><p>répertoire de l'application</p></td></tr>
<tr><td><p><code>/opt/polynum/polynum</code></p></td><td><p>code de l'application Django Polynum</p></td></tr>
<tr><td><p><code>/opt/polynum/bin</code></p></td><td><p>scripts associés au projet</p></td></tr>
<tr><td><p><code>/opt/polynum/virtualenv</code></p></td><td><p>environnement virtuel Python (voir plus loin)</p></td></tr>
<tr><td><p><code>/etc/polynum</code></p></td><td><p>répertoire de configuration</p></td></tr>
<tr><td><p><code>/var/lib/polynum</code></p></td><td><p>répertoire des données (fichiers PDF)</p></td></tr>
</table>
</section>
<section id="installation-modules">
<title>Installation des modules Python et du <code>virtualenv</code></title>
<p>On distingue deux types de modules Python nécessaires au fonctionnement de
Polynum : les modules standards qui seront installés de façon classique sur le
système d'exploitation, et les modules plus récents ou non packagés qui seront
installés dans un <em>environnement virtuel</em> (<code>virtualenv</code>)
Python.</p>
<section id="installation-modules-std">
<title>Installation des modules standards</title>
<p>Si Polynum est installé depuis un paquet (deb ou RPM), les paquets standards
sont installés automatiquement. Sinon il faut les installer avec <code>apt-get</code>
ou <code>yum</code>, selon votre distribution :</p>
<table frame="" shade="rows">
<title>Modules standards (installés par le paquet)</title>
<thead><tr><td><p>nom</p></td><td><p>description</p></td>
<td><p>deb</p></td><td><p>RPM</p></td></tr></thead>
<tr>
<td><p><code>psycopg2</code></p></td>
<td><p>connexion avec la base de données PostgreSQL.</p></td>
<td><p><code>python-psycopg2</code></p></td>
<td><p><code>python-psycopg2</code></p></td>
</tr>
<tr>
<td><p><code>ldap</code></p></td>
<td><p>connexion avec l'annuaire LDAP</p></td>
<td><p><code>python-ldap</code></p></td>
<td><p><code>python-ldap</code></p></td>
</tr>
</table>
</section>
<section id="installation-modules-virtualenv">
<title>Installation des autres modules Python</title>
<p>Les autres paquets seront installés dans un <em>virtualenv</em>. Dans la suite
de ce document, il est créé dans <code>/opt/polynum/virtualenv</code>.</p>
<note>
<p>Si besoin, le script <code>/opt/polynum/bin/polynum-build-virtualenv</code>
va créer automatiquement le répertoire <code>/opt/polynum/virtualenv</code>
contenant tous les modules nécessaires.</p>
</note>
<table frame="" shade="rows">
<title>Modules placés dans un <code>virtualenv</code></title>
<thead><tr><td><p>nom (pypi)</p></td><td><p>description</p></td></tr></thead>
<tr>
<td><p><code>django</code></p></td>
<td><p>version 1.4</p></td>
</tr>
<tr>
<td><p><code>south</code></p></td>
<td><p></p></td>
</tr>
<tr>
<td><p><code>django-crispy-forms</code></p></td>
<td><p></p></td>
</tr>
<tr>
<td><p><code>django-sekizai</code></p></td>
<td><p></p></td>
</tr>
<tr>
<td><p><code>django-cas</code></p></td>
<td><p>prendre la version compatible avec Django 1.4 : <code>https://bitbucket.org/cpcc/django-cas/get/tip.tar.gz</code></p></td>
</tr>
<tr>
<td><p><code>django-grappelli</code></p></td>
<td><p>prendre la version compatible avec Django 1.4 : <code>git+https://github.com/sehmaschine/django-grappelli@grappelli_2_4</code></p></td>
</tr>
<tr>
<td><p><code>pypdf</code></p></td>
<td><p></p></td>
</tr>
<tr>
<td><p><code>flup</code></p></td>
<td><p></p></td>
</tr>
<tr>
<td><p><code>django-debug-toolbar</code></p></td>
<td><p></p></td>
</tr>
</table>
</section>
</section>
<section id="virtualenv">
<title>Utilisation du <code>virtualenv</code></title>
<note style="warning">
<p>
Dans la suite du document, on travaillera dans l'environnement virtuel Python
créé ci-dessus. Pour cela, taper les commandes suivante depuis un shell <code>bash</code> :</p>
<screen>
<output style="prompt"># </output><input>cd /opt/polynum/virtualenv</input>
<output style="prompt"># </output><input>. bin/activate</input>
<output style="prompt">(virtualenv)# </output>
</screen>
<p>
Ceci est indispensable car Polynum a besoin des modules du <code>virtualenv</code>
pour s'exécuter.
</p>
</note>
</section>
<section id="installation-config">
<title>Configuration de base l'application</title>
<p>La configuration de l'application se fait dans <code>/etc/polynum/local_settings.py</code></p>
<p>Un fichier d'exemple <code>local_settings.py.example</code> est fourni avec
Polynum, c'est un modèle pour la création de
<code>/etc/polynum/local_settings.py</code> : il contient la liste des
paramétrages possibles avec explications et exemples.</p>
<p>Si vous avez installé Polynum à partir du paquet, le modèle est placé
dans <code>/usr/share/doc/polynum/</code>, il vous suffit donc de faire :</p>
<screen>
<output style="prompt"># </output><input>cd /etc/polynum</input>
<output style="prompt"># </output><input>cp /usr/share/doc/polynum/local_settings.py.example local_settings.py</input>
<output style="prompt"># </output><input>vi local_settings.py</input>
</screen>
</section>
<section id="installation-sql">
<title>Installation de la base de données</title>
<p>TODO</p>
</section>
<section id="installation-init">
<title>Mise en place des données initiales</title>
<p>TODO</p>
</section>
<section id="installation-auth">
<title>Configuration de l'authentification</title>
<p>Polynum peut authentifier les utilisateurs via CAS et LDAP. Dans
<code>/etc/polynum/local_settings.py</code> adapter les paramètres suivants
:</p>
<code>
(... extrait de /etc/polynum/local_settings.py ...)
CAS_SERVER_URL = "https://cas.univ.fr/" # CAS server URL
LDAP_URL = "ldaps://ldap.univ.fr" # LDAP server URL
LDAP_BIND_DN = "uid=...,ou=...,dc=..." # DN to authenticate to the LDAP server
LDAP_BIND_PASSWORD = "..." # password
LDAP_USER_QUERY = "supannAliasLogin=%s" # query to retrieve user, %s is CAS username
LDAP_BASE = "dc=univ,dc=fr" # base DN for the query
</code>
</section>
<section id="installation-run">
<title>Lancement de l'application</title>
<p>TODO</p>
</section>
<section id="installation-reverseproxy">
<title>Mise en production derrière un reverse-proxy</title>
<p>TODO</p>
</section>
</page>