##########
Pré-requis
##########

Système
=======

Les systèmes d'exploitation suivants sont officiellement supportés :

+-----------------------------+----------------+
| Système d'exploitation      | Architectures  |
+=============================+================+
| Linux 2.6.23 (glibc requis) | amd64, i386    |
+-----------------------------+----------------+
| Windows 7 ou Server 2008 R2 | amd64, i386    |
+-----------------------------+----------------+

.. Cependant, transfer étant écrite en langage *Go*, le système sur lequel il
   sera installé doit faire parti des `systèmes supportés par le compilateur
   <https://golang.org/doc/install#requirements>`_.


Exécutables
===========

Waarp Transfer est composé de 2 exécutables:

``waarp-transferd``
   L'exécutable de Waarp Transfer lui-même. Cet exécutable
   est un serveur destiné à être exécuté en arrière-plan, typiquement via un
   gestionnaire de service (ex: ``systemd`` sous Linux).

``waarp-transfer``
  Le client en ligne de commande permettant d'administrer Waarp Transfer. Ce
  client utilise l'interface REST de Waarp Transfer pour communiquer avec le
  service. Il permet aussi d'exécuter des transferts en mode client lourd ou
  filewatcher, sans passer par l'interface REST. Pour simplifier les commandes,
  il est recommander d'ajouter cet exécutable au ``$PATH`` du système. Un guide
  sur l'utilisation du client est disponible :ref:`ici <user-guide-client>`.


Base de données
===============

Pour fonctionner, Waarp Transfer nécessite une base de donnée. Par défaut, Waarp
Transfer utilise une base embarquée SQLite stockée dans un fichier. Dans ce cas
de figure, aucune action n'est requise, au lancement de Waarp Transfer, le
fichier base de données sera automatiquement créé.

Waarp Transfer supporte également les serveurs de base de données MySQL et
PostgreSQL. Pour utiliser ces serveurs comme base de données, les étapes
suivantes sont requises :

1. Créer une base de données vierge sur le serveur. Une base déjà existante
   peut être utilisée, mais cela n'est pas recommandé.

2. Ajouter un utilisateur ayant le droit d'ajouter et de modifier des tables sur
   la base de données en question. Cet utilisateur sera utilisé par Waarp
   Transfer pour s'authentifier auprès du serveur.


Les informations de connections à la base de données doivent ensuite être
renseignées dans le fichier de configuration de Waarp Transfer (cf.
:any:`configuration-file`). Une fois la base de données créée, elle sera ensuite
remplie automatiquement par Waarp Transfer lui-même.


Interface d'administration
==========================

Pour être administré, Waarp Transfer inclue un serveur HTTP d'administration.
Par défaut, ce serveur écoute et répond en HTTP clair. Pour plus de sécurité,
il est recommandé de générer un certificat pour le serveur, et de l'ajouter
au fichier de configuration pour que les requêtes puissent être faites en
HTTPS au lieu de HTTP.


Fichier de configuration
========================

Pour fonctionner, Waarp Transfer nécessite un fichier de configuration en format
*.ini*. Ce fichier de configuration peut être généré avec la commande:

.. code-block:: shell

   waarp-transferd server -n -c chemin/de/la/configuration.ini


.. note::
   Bien qu'il soit possible d'utiliser Waarp Transfer avec la configuration par
   défaut, il est fortement recommandé de consulter le détail du
   :any:`configuration-file` pour ensuite le modifier avec des valeurs plus
   adaptées à votre utilisation.
