README.md 3.1 KB
Newer Older
chirac's avatar
chirac committed
1
# Re2o
chirac's avatar
chirac committed
2

chirac's avatar
GPL  
chirac committed
3 4
Gnu public license v2.0

chirac's avatar
chirac committed
5
## Avant propos 
chirac's avatar
chirac committed
6 7 8 9 10 11

Re2o est un logiciel d'administration développé initiallement au rezometz. Il se veut agnostique au réseau considéré, de manière à être installable en quelques clics.

Il utilise le framework django avec python3. Il permet de gérer les adhérents, les machines, les factures, les droits d'accès, les switchs et la topologie du réseau.
De cette manière, il est possible de pluguer très facilement des services dessus, qui accèdent à la base de donnée en passant par django (ex : dhcp), en chargeant la liste de toutes les mac-ip, ou la liste des mac-ip autorisées sur le réseau (adhérent à jour de cotisation).

chirac's avatar
chirac committed
12
## Installation
chirac's avatar
chirac committed
13

Gabriel Detraz's avatar
Gabriel Detraz committed
14 15
### Prérequis

chirac's avatar
chirac committed
16 17
Dépendances :

root's avatar
root committed
18
Avec apt (recommandé):
chirac's avatar
chirac committed
19 20 21
 * python3-django (1.8, jessie-backports)
 * python3-django-macaddress (stretch)
 * python3-dateutil (jessie-backports)
Dalahro's avatar
Dalahro committed
22
 * texlive (jessie)
root's avatar
root committed
23 24
 * texlive-latex-base (jessie)
 * texlive-fonts-recommended (jessie)
chirac's avatar
erreur  
chirac committed
25
 * python3-djangorestframework (jessie)
chirac's avatar
chirac committed
26
 * python3-django-reversion (stretch)
Gabriel Detraz's avatar
Gabriel Detraz committed
27
 * slapd (jessie)
root's avatar
root committed
28

Chirac's avatar
Chirac committed
29 30 31 32 33 34 35
Paquets préalables à installer avec apt : 
 * libsasl2-dev (stable)
 * libldap2-dev (stable)
 * libssl-dev (stable)

Avec pip3 (pip3 install):
 * django-bootstrap3
root's avatar
root committed
36
 * django-ldapdb
chirac's avatar
chirac committed
37 38 39 40

Moteur de db conseillé (mysql), postgresql fonctionne également.
Pour mysql, il faut installer :

chirac's avatar
chirac committed
41 42
 * python3-mysqldb (jessie-backports)

chirac's avatar
chirac committed
43 44 45
Sur le serveur mysql :
 * mysql-server (jessie)

Gabriel Detraz's avatar
Gabriel Detraz committed
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
## Installation du ldap, opérations à réaliser en root

### Insérer le mot de passe dans FILL_IN du schema.ldiff et db.ldiff, en hashant le mdp à l'aide de slappasswd

### Remplacer dans schema.ldiff et db.ldiff 'dc=example,dc=org' par le suffixe de l'association

### Arréter slapd

service slapd stop

### Supprimer les données existantes

rm -rf /etc/ldap/slapd.d/*

rm -rf /var/lib/ldap/*

mkdir /var/lib/ldap/accesslog

### Ajoute les données et le schema

slapadd -n 0 -l schema.ldiff -F /etc/ldap/slapd.d/

slapadd -n 1 -l db.ldiff

chown -R openldap:openldap /etc/ldap/slapd.d

chown -R openldap:openldap /var/lib/ldap

service slapd start

## Installation du sql et démarage django

chirac's avatar
chirac committed
78 79 80 81
Installer mysql ou postgresql

Créer la base de donnée re2o, en créant un utilisateur re2o avec des droits sur une bdd re2o

Gabriel Detraz's avatar
Gabriel Detraz committed
82
### Créer settings_local.py à partir de settings_local.example.py
chirac's avatar
chirac committed
83

chirac's avatar
chirac committed
84
## Configuration 
chirac's avatar
chirac committed
85 86 87 88 89

Le site est prêt a fonctionner, il faut simplement créer la base de donnée (par défaut re2o), et régler les variables présentes dans setting_local.py
Un fichier d'exemple est disponible.
Ensuite, effectuer les migrations. Un squelette de base de donnée, via un mysqldump peut être fourni.

chirac's avatar
chirac committed
90
## Mise en production avec apache
chirac's avatar
chirac committed
91 92

re2o/wsgi.py permet de fonctionner avec apache2 en production
chirac's avatar
chirac committed
93 94 95 96 97

## Fonctionnement avec les services

Pour charger les objets django, il suffit de faire User.objects.all() pour tous les users par exemple. 
Cependant, pour que les services fonctionnent de manière simple, des fonctions toutes prètes existent deja pour charger la liste des users autorisés à se connecter ( has_access(user)), etc. Ces fonctions sont personnalisables, et permettent un fonctionnement très simple des services.