Le serveur gitlab sera inaccessible le mercredi 19 février 2020 de 13h à 14h pour une intervention de maintenance programmée.

Commit b789b104 authored by Fernet Laouen's avatar Fernet Laouen

add English README

parent 6f1ccaf3
# Re2o
Gnu public license v2.0
## Avant propos
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).
# Installation
Un tutoriel pour installer le projet est disponible [sur le wiki](https://gitlab.federez.net/federez/re2o/wikis/User%20Documentation/Quick%20Start).
# Installations Optionnelles
## Générer le schéma des dépendances
Pour cela :
* apt install python3-django-extensions
* python3 manage.py graph_models -a -g -o re2o.png
# Fonctionnement interne
## Fonctionnement général
Re2o est séparé entre les models, qui sont visible sur le schéma des
dépendances. Il s'agit en réalité des tables sql, et les fields etant les
colonnes.
Ceci dit il n'est jamais nécessaire de toucher directement au sql, django
procédant automatiquement à tout cela.
On crée donc différents models (user, right pour les droits des users,
interfaces, IpList pour l'ensemble des adresses ip, etc)
Du coté des forms, il s'agit des formulaire d'édition des models. Il
s'agit de ModelForms django, qui héritent des models très simplement, voir la
documentation django models forms.
Enfin les views, générent les pages web à partir des forms et des templates.
## Fonctionnement avec les services
Les services dhcp.py, dns.py etc accèdent aux données via des vues rest.
Celles-ci se trouvent dans machines/views.py. Elles sont générées via
machines/serializers.py qui génère les vues. IL s'agit de vues en json utilisées
par re2o-tools pour récupérer les données.
Il est nécessaire de créer un user dans re2o avec le droit serveur qui permet
d'accéder à ces vues, utilisé par re2o-tools.
# Requète en base de donnée
Pour avoir un shell, il suffit de lancer '''python3 manage.py shell'''
Pour charger des objets, example avec User, faire :
''' from users.models import User'''
Pour charger les objets django, il suffit de faire User.objects.all()
pour tous les users par exemple.
Il est ensuite aisé de faire des requètes, par exemple
User.objects.filter(pseudo='test')
Des exemples et la documentation complète sur les requètes django sont
disponible sur le site officiel.
# Re2o
Gnu public license v2.0
GNU Public License v2.0
## Avant propos
## Foreword
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).
Re2o is an network administration tool endorsed by FedeRez. It is intended to be a tool independent from any network infrastructure so it can be setup in "a few steps". This tool is entirely free and available under a GNU Public License v2 (GPLv2) on FedeRez's gitlab.
It uses the Django framework with Python3, and allows to manage users, machines, invoices, access rights and the network's topology. It is therefore easy to add services to it, which access the database using Django (e.g. DHCP), loading all MAC-IP addresses or loading MAC-IP addresses having access to the network (for users up-to-date regarding their subscription).
# Installation
Un tutoriel pour installer le projet est disponible [sur le wiki](https://gitlab.federez.net/federez/re2o/wikis/User%20Documentation/Quick%20Start).
# Installations Optionnelles
## Générer le schéma des dépendances
A tutorial to install the project is available [on the wiki](https://gitlab.federez.net/federez/re2o/wikis/User%20Documentation/Quick%20Start).
Pour cela :
* apt install python3-django-extensions
* python3 manage.py graph_models -a -g -o re2o.png
# Optional installations
## Generate the graph of dependencies
# Fonctionnement interne
Run this:
* `apt install python3-django-extensions`
* `python3 manage.py graph_models -a -g -o re2o.png`
## Fonctionnement général
# Internal functioning
Re2o est séparé entre les models, qui sont visible sur le schéma des
dépendances. Il s'agit en réalité des tables sql, et les fields etant les
colonnes.
Ceci dit il n'est jamais nécessaire de toucher directement au sql, django
procédant automatiquement à tout cela.
On crée donc différents models (user, right pour les droits des users,
interfaces, IpList pour l'ensemble des adresses ip, etc)
## General functioning
Du coté des forms, il s'agit des formulaire d'édition des models. Il
s'agit de ModelForms django, qui héritent des models très simplement, voir la
documentation django models forms.
Re2o is split between the models, visible on the graph of dependencies. They are actually SQL tables, the fields being the columns.
That said, it is never necessary to directly use SQL, Django proceeding automatically to SQL queries.
Different models are created (user, right for users, interfaces, IP addresses list, etc).
Regarding forms, they are forms for editing models from Django's ModelForms (cf Django's documentation on models and forms).
Finally, the views generate web pages from forms and templates.
Enfin les views, générent les pages web à partir des forms et des templates.
## Functioning with services
## Fonctionnement avec les services
Services such as dhcp.py or dns.py access data using REST views. These are located in machines/views.py. They are generated by machines/serializers.py. The JSON views are used by re2o-tools to retrieve data.
It is necessary to create a user in Re2o with the server right granting access to these views.
Les services dhcp.py, dns.py etc accèdent aux données via des vues rest.
Celles-ci se trouvent dans machines/views.py. Elles sont générées via
machines/serializers.py qui génère les vues. IL s'agit de vues en json utilisées
par re2o-tools pour récupérer les données.
Il est nécessaire de créer un user dans re2o avec le droit serveur qui permet
d'accéder à ces vues, utilisé par re2o-tools.
# Database queries
# Requète en base de donnée
To open a shell, just run `python3 manage.py shell`
To load objects, for instance with User, run `from users.models import User`
To do queries, simply use User.objects.all() for all users or User.objects.filter(pseudo='test') to retrieve a user etc.
Examples and complete documentation for Django queries are available on the official website.
Pour avoir un shell, il suffit de lancer '''python3 manage.py shell'''
Pour charger des objets, example avec User, faire :
''' from users.models import User'''
Pour charger les objets django, il suffit de faire User.objects.all()
pour tous les users par exemple.
Il est ensuite aisé de faire des requètes, par exemple
User.objects.filter(pseudo='test')
Des exemples et la documentation complète sur les requètes django sont
disponible sur le site officiel.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment