README.md 4.34 KB
Newer Older
matograine's avatar
matograine committed
1
# Ğ1-Cotis
matograine's avatar
matograine committed
2

matograine's avatar
matograine committed
3
Ğ1-Cotis est un script de **cotisation volontaire**, qui permet de verser un % des paiements reçus aux comptes que l'on souhaite.
matograine's avatar
matograine committed
4
Il dépend de Silkaj et Diceware. Il permet aussi de programmer des **versements récurrents**.
matograine's avatar
matograine committed
5

matograine's avatar
matograine committed
6
Lancé en tâche cron, il est prévu pour agir périodiquement (jours, semaine, mois, reboot) :
matograine's avatar
matograine committed
7

matograine's avatar
matograine committed
8 9 10
## Cotisation
* vérification du montant d'un compte intermédiaire ;
* envoi d'une cotisation à différents comptes "de cotisation" ;
matograine's avatar
matograine committed
11 12
* envoi du reste de la transaction sur un compte destinataire.

matograine's avatar
matograine committed
13 14
## Virement récurrent
* envoi d'un montant fixe depuis un compte "de réserve" vers un compte destinataire.
matograine's avatar
matograine committed
15

matograine's avatar
matograine committed
16
Les comptes de réception des cotisations peuvent être paramétrés, ainsi que les pourcentages de cotisation.
matograine's avatar
matograine committed
17
On peut gérer plusieurs comptes G1cotis, sur plusieurs fréquences, et donc proposer ce service à son entourage / groupe local.
matograine's avatar
matograine committed
18
On crée un nouveau compte avec le script nouveau-compte.sh
matograine's avatar
matograine committed
19

matograine's avatar
matograine committed
20
Vous trouverez (un peu) plus d'informations sur [le site](g1pourboire.fr/G1cotis.html).
matograine's avatar
matograine committed
21

22 23 24
## Installation


matograine's avatar
matograine committed
25 26
Il vous faut tout d'abord installer les dépendances :

matograine's avatar
matograine committed
27 28
    Silkaj : version spécifique à G1Cotis, en attendant la 0.8 officielle.
    Diceware
matograine's avatar
matograine committed
29

matograine's avatar
matograine committed
30 31
* Sous Debian Buster  ou Ubuntu 19.X GNU/Linux:  
`# apt update ; apt upgrade ; apt install  diceware pipenv libsodium23`  
matograine's avatar
matograine committed
32
`# wget https://git.duniter.org/matograine/silkaj/-/archive/g1cotis-multioutput/silkaj-g1cotis-multioutput.tar.gz`  
matograine's avatar
matograine committed
33 34 35
`# tar -xf silkaj-g1cotis-multioutput.tar.gz`  
`# cd silkaj-g1cotis-multioutput`  
`# pipenv install "-e ."`  
matograine's avatar
matograine committed
36

matograine's avatar
matograine committed
37
* Sous Debian Stretch : voir [ce post](https://blog.jytou.fr/2018/06/02/installing-a-working-python-environment-and-silkaj-on-a-raspberry-pi-3-with-raspbian-jessie/) pour pour installer Silkaj en pipenv. Puis :  
matograine's avatar
matograine committed
38 39 40 41 42
`# apt install diceware`

* Sous d'autres distributions : je ne sais pas, indiquez-moi comment vous faites ! Voici [le site de Silkaj](https://silkaj.duniter.org/index.html)

Ensuite :
matograine's avatar
matograine committed
43

matograine's avatar
matograine committed
44 45 46 47
* Placez-vous dans le /home de l'utilisateur qui va lancer Ğ1cotis, connecté comme cet utilisateur.  
* Télécharger la dernière release (v0.2) en .tar.gz :  
`$ wget https://git.duniter.org/matograine/g1-cotis/-/archive/0.3/g1-cotis-0.3.tar.gz`  
* La déziper où vous le souhaitez :  
matograine's avatar
matograine committed
48
`$ tar -xf g1-cotis-0.3.tar.gz`
matograine's avatar
matograine committed
49
* Renommer (si vous le souhaitez) :  
matograine's avatar
matograine committed
50
`$ mv g1-cotis-0.3 G1cotis`
matograine's avatar
matograine committed
51
* Rendez ce dossier inaccessible pour les autres utilisateurs :  
matograine's avatar
matograine committed
52
`$ chmod 700 G1cotis`
matograine's avatar
matograine committed
53
* Vous placer dans le dossier :  
matograine's avatar
matograine committed
54
`$ cd G1cotis`
matograine's avatar
matograine committed
55
* Editer le fichier config.sh en fonction des paramètres locaux (dossier, noeud, monnaie, dossier **silkaj-g1cotis-multioutput**) :  
matograine's avatar
matograine committed
56
`$ nano config.sh`
matograine's avatar
matograine committed
57
* Créer le premier compte :  
matograine's avatar
matograine committed
58
`$ bash nouveau-compte.sh`
matograine's avatar
matograine committed
59
* Modifiez le crontab en suivant les recommandations du script :  
matograine's avatar
matograine committed
60 61 62
`$ crontab -e `

Tous les dossiers nécessaires seront créés à la première création de compte. 
matograine's avatar
matograine committed
63

matograine's avatar
matograine committed
64
Pour une mise à jour, déplacez simplement les dossiers d_\<periode\> et le config.sh de l'ancien dossier vers le nouveau.
65

matograine's avatar
matograine committed
66 67


68 69
## Fichiers

matograine's avatar
matograine committed
70
Les dossiers seront créés à la première utilisation de Ğ1cotis.
71
L'organisation des dossiers est prévue ainsi :
matograine's avatar
matograine committed
72 73

* User 
matograine's avatar
matograine committed
74
    - G1cotis   
matograine's avatar
matograine committed
75 76
        - README
        - LICENCE
matograine's avatar
matograine committed
77
        - config.sh
78
        - nouveau-compte.sh
matograine's avatar
matograine committed
79
        
matograine's avatar
matograine committed
80
        - auth-g1cotis (fichiers d'authentification)
matograine's avatar
matograine committed
81 82
            - compte1.auth  
            - compte2.auth  
matograine's avatar
matograine committed
83
            - ...
matograine's avatar
matograine committed
84
        - d_(periode) (fichiers de configuration des comptes)
matograine's avatar
matograine committed
85 86 87 88 89
            - cotisations
                - compte1.sh, compte2.sh, ...
            - recurrent
                - compte3.sh ; compte4.sh, ...
        - logs
matograine's avatar
matograine committed
90
            - g1cotis.logs (rotation bimensuelle des logs)
91
## Autres
matograine's avatar
matograine committed
92

matograine's avatar
matograine committed
93
NB : le service de virement récurrent ne gère pas d'alerte courriel si le compte est vide. 
matograine's avatar
matograine committed
94 95
D'autre part, il ne peut pas être lancé comme script fonctionnant au reboot, il tourne forcément sur un serveur.

matograine's avatar
matograine committed
96 97
Je ne proposerai pas de service ouvert, cependant j'invite qui le souhaite à proposer ce service à ses connaissances. Si vous le faites, j'aurais plaisir à le savoir ;-)

98
Je n'ai pas les compétences pour créer une interface web, mais elle me semble un ajout utile. Si un.e dev veut faire un fork, soyez lae bienvenu.e !
matograine's avatar
matograine committed
99
       
matograine's avatar
matograine committed
100
### Licence CECILL ###
matograine's avatar
matograine committed
101

matograine's avatar
matograine committed
102
Cet ensemble de scripts est publié sous licence CECILL 2.1, compatible avec la licence GNU.
matograine's avatar
matograine committed
103
Aucune garantie n'est apportée : c'est le premier code que je publie, et je code comme un ~~cochon~~ autodidacte débutant.