<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>

