doc: séparation du guide "admin technique" en plusieurs pages
This commit is contained in:
parent
b320cff367
commit
9057acba04
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
||||
|
|
Reference in New Issue