Update README.md
This commit is contained in:
parent
84e46bbb55
commit
7c1ed25c14
240
README.md
240
README.md
|
@ -27,36 +27,21 @@ https://www.youtube.com/watch?v=QDnG3Jni7sY
|
|||
https://www.youtube.com/watch?v=LqV65iPTmnc
|
||||
https://www.youtube.com/watch?v=_PVwf9nRAA0
|
||||
|
||||
## I. Matériel
|
||||
|
||||
## Installation
|
||||
**A découvrir sur la page [G1SMS:small_orange_diamond:](https://www.g1sms.fr/fr/blog/g1smsplus)**
|
||||
|
||||
git clone https://git.p2p.legal/axiom-team/G1sms
|
||||
mv G1sms G1sms+
|
||||
cd G1sms+
|
||||
chmod u+x install.sh
|
||||
## II. Préparation
|
||||
|
||||
### Options
|
||||
./install.sh : Cycle normale, va détecter si les éléments sont installés ne va pas les réinstaller. Demande confirmations, et propose d'installer les outils otionnels
|
||||
./install.sh force : Réinstalle les éléments même si ils sont déjà installés
|
||||
./install.sh noask : Ne pose pas de questions de confirmation pendant l'install, il y va
|
||||
./install.sh all : Install les outils optionnels sans poser de question
|
||||
./install.sh noptions : N'installe pas les outils optionnels
|
||||
### 1. Installer Raspbian Stretch ou Buster (9 ou 10) :ice_cream:
|
||||
|
||||
|
||||
|
||||
## Matériel
|
||||
|
||||
A découvrir sur la page [G1SMS:small_orange_diamond:](https://www.g1sms.fr/fr/blog/g1smsplus)
|
||||
|
||||
## **Installer Raspbian Stretch** :ice_cream:
|
||||
|
||||
* Téléchargez "[Raspbian Stretch Lite](https://www.raspberrypi.org/downloads/raspbian/)" et flashez l'image sur une carte microSD
|
||||
* Téléchargez "[Raspbian Buster Lite](https://www.raspberrypi.org/downloads/raspbian/)" et flashez l'image sur une carte microSD
|
||||
* Installez Raspbian ([comment faire sur un RaspberryPi Zero sans écran?](https://projetsdiy.fr/comment-installer-raspbian-raspberry-pi-zero-sans-ecran-clavier/)).
|
||||
|
||||
Terminez cette phase par une mise à jour
|
||||
> **sudo apt update; sudo apt upgrade -y**
|
||||
|
||||
### 1. Installation carte GSM (pour commandes par SMS)?
|
||||
### 2. Installation carte GSM (pour commandes par SMS)?
|
||||
|
||||
L'interface de commande par SMS permet d'ouvrir l'usage de la monnaie libre à ceux qui ne possèdent pas de smartphone et n'ont aucun ordinateur connecté à disposition... Et permet l'utilisation du réseau 2G des opérateurs, peut encombré et presque gratuit (1€/ mois chez Free je crois)
|
||||
|
||||
|
@ -68,7 +53,7 @@ Elles ont besoin d'être testées et d'améliorer leur compatibilité CLI. En fo
|
|||
|
||||
Les scripts "./shell/cron" en cours d'écriture/test et sont à activer soi-même.
|
||||
|
||||
### 2. **Activer le GSM pHAT**
|
||||
### 3. **Activer le GSM pHAT**
|
||||
|
||||
La carte utilise une connexion UART sur l'interface GPIO du Rpi pour communiquer (en commandes AT). Placer le jumper dans la position B pour activer ce mode. On prendra soin de désactiver la console (tty) établie par le système sur le port série qui rentre en conflit autrement...
|
||||
|
||||
|
@ -77,7 +62,7 @@ La carte utilise une connexion UART sur l'interface GPIO du Rpi pour communiquer
|
|||
* Effacer **console=serial0,115200** de **/boot/cmdline.txt**
|
||||
* Redémarrer...
|
||||
|
||||
### 3. Démarrer la carte GSM !
|
||||
### 4. Démarrer la carte GSM !
|
||||
|
||||
il faudra appuyer 3 secondes sur le bouton d'allumage. Nous allons le faire par un script qui manipule le GPIO.
|
||||
|
||||
|
@ -99,157 +84,44 @@ il faudra appuyer 3 secondes sur le bouton d'allumage. Nous allons le faire par
|
|||
Ajouter le lancement de ce script au démarrage (dans /etc/rc.local)
|
||||
|
||||
|
||||
### 4. Installer gammu et gammu-smsd
|
||||
## III. Installation de Ḡ1sms+ avec ses prérequis (Gammu, IPFS) et ses modules
|
||||
### Clonez le dépôt G1sms+
|
||||
git clone https://git.p2p.legal/axiom-team/G1sms
|
||||
mv G1sms G1sms+
|
||||
cd G1sms+
|
||||
chmod u+x install.sh
|
||||
|
||||
Afin de dialoguer avec le réseau GSM, recevoir et envoyer des SMS. Nous utiliserons le serveur gammu. Suivre la procédure détaillée ici: https://tutoandco.colas-delmas.fr/software/envoyer-sms-gammu-deamon/
|
||||
|
||||
sudo apt-get install ppp screen git python3-pip minicom gammu gammu-smsd
|
||||
sudo usermod -aG gammu pi;
|
||||
|
||||
Vérifier que la carte GSM pHAT est démarrée, sinon lancer
|
||||
|
||||
sudo ./GSM_powerkey.sh
|
||||
|
||||
Identification de la carte
|
||||
|
||||
sudo gammu --identify
|
||||
|
||||
> Device : /dev/ttyS0
|
||||
> Manufacturer : SIMCOM_Ltd
|
||||
> Model : unknown (SIMCOM_SIM868)
|
||||
> Firmware : Revision:1418B03SIM868M32_BT
|
||||
> IMEI : 868183033532677
|
||||
|
||||
Création du fichier de configuration gammurc à partir de ces infos...
|
||||
**sudo nano /etc/gammurc**
|
||||
|
||||
[gammu]
|
||||
port = /dev/ttyS0
|
||||
model = SIMCOM_Ltd (SIMCOM_SIM868)
|
||||
connection = at19200
|
||||
synchronizetime = yes
|
||||
logfile = /tmp/smsd.log
|
||||
logformat = nothing
|
||||
|
||||
TEST: Envoyer un SMS.
|
||||
|
||||
sudo gammu sendsms TEXT 06nnnnnnnn -text "NOUVEAU G1sms+"
|
||||
|
||||
Tout ce passe bien? Alors on installe le daemon gammu smsd
|
||||
|
||||
sudo apt install gammu-smsd -y
|
||||
|
||||
Préparer le fichier de configuration ([DOC gammu...](https://wammu.eu/docs/manual/smsd/config.html))
|
||||
Adaptez selon le code PIN de votre carte SIM.
|
||||
|
||||
**sudo nano /etc/gammu-smsdrc**
|
||||
|
||||
[gammu]
|
||||
device = /dev/ttyS0
|
||||
name = SIMCOM_Ltd (SIMCOM_SIM868)
|
||||
connection = at19200
|
||||
synchronizetime = yes
|
||||
gammucoding = utf8
|
||||
logformat = textall
|
||||
|
||||
[smsd]
|
||||
service = files
|
||||
Logfile = /tmp/smsd.log
|
||||
DeliveryReport = log
|
||||
debuglevel = 3
|
||||
CommTimeout = 5
|
||||
ReceiveFrequency = 5
|
||||
CheckSecurity = 1
|
||||
PIN = 0000
|
||||
|
||||
# Paths where messages are stored
|
||||
inboxpath = /var/spool/gammu/inbox/
|
||||
outboxpath = /var/spool/gammu/outbox/
|
||||
sentsmspath = /var/spool/gammu/sent/
|
||||
errorsmspath = /var/spool/gammu/error/
|
||||
|
||||
# Run G1SMS Script RunOnReceive
|
||||
RunOnReceive = /home/pi/G1sms+/sms_received.sh
|
||||
|
||||
Le fichier de configuration maintenant prêt, on peut redémarrer le démon smsd
|
||||
|
||||
**sudo service gammu-smsd restart**
|
||||
|
||||
Vous voyez cette ligne dans vos processus? Tudo Bom :smiley: !
|
||||
|
||||
ps auxf
|
||||
usr/bin/gammu-smsd --pid=/var/run/gammu-smsd.pid --daemon
|
||||
|
||||
VOILA! Le système peut maintenant dialoguer par SMS.
|
||||
|
||||
## Installer le coeur de G1sms+
|
||||
:warning: Le code appelé par gammu s'exécute en tant qu'utilisateur root.
|
||||
|
||||
On pourra ajouter **umask 027** à **/root/.bashrc** pour isoler l'appartenance des fichiers de ce compte.
|
||||
|
||||
### 1. Installer Silkaj & Duniterpy
|
||||
|
||||
# Exécuter les commandes suivante en root
|
||||
sudo -s
|
||||
|
||||
# Silkaj + Duniterpy
|
||||
sudo apt install python3-pip
|
||||
sudo apt install libsodium18
|
||||
sudo pip3 install silkaj
|
||||
|
||||
Voila ces 2 super connecteurs python à Duniter installés :cool: Ils seront utilisés par G1sms+ pour gérer les wallets et leurs TX, récupérer le profil des membres dans Cesium+, etc...
|
||||
|
||||
En fait pour l'instant l'API CLI de silkaj n'étant pas encore disponible. C'est la version 0.50 patchée de G1sms qui continue à être utilisée (TODO !!!). Dans ce cas, il faudra peut-être installer les librairies pythons à la main...
|
||||
|
||||
cd ./silkaj
|
||||
pip3 install -r requirements.txt
|
||||
|
||||
Dans cette version. Le dialogue avec les serveurs Duniter a été améliorée par un "load-balacing" régulier sur le groupe de serveurs en plus grand consensus et ayant un timeout correct...
|
||||
|
||||
### 2. Installer IPFS
|
||||
|
||||
Installer ipfs par son programme de mise à niveau permettra de facilement suivre l'évolution de l'Univers Interplanétaire :crystal_ball:
|
||||
|
||||
sudo -s
|
||||
cd /usr/src/
|
||||
wget https://dist.ipfs.io/ipfs-update/v1.5.2/ipfs-update_v1.5.2_linux-arm.tar.gz
|
||||
tar xvzf ipfs-update_v1.5.2_linux-arm.tar.gz
|
||||
cd ipfs-update
|
||||
./install.sh
|
||||
ipfs-update install latest
|
||||
### Options
|
||||
./install.sh : Cycle normale, va détecter si les éléments sont installés ne va pas les réinstaller. Demande confirmations, et propose d'installer les outils otionnels
|
||||
./install.sh force : Réinstalle les éléments même si ils sont déjà installés
|
||||
./install.sh noask : Ne pose pas de questions de confirmation pendant l'install, il y va
|
||||
./install.sh all : Install les outils optionnels sans poser de question
|
||||
./install.sh noptions : N'installe pas les outils optionnels
|
||||
|
||||
|
||||
Maintenant on peut choisir entre 3 façons de faire:
|
||||
1. Opérer IPFS en Réseau Privé (swarm.key & Environment="LIBP2P_FORCE_PNET=1") et gérer ses serveurs de bootstrap. https://pad.p2p.legal/ipfs-onelove#Rejoindre-l%E2%80%99Essaim
|
||||
2. Opérer sur IPFS Global en prenant soin de crypter les données échangées. https://medium.com/@mycoralhealth/learn-to-securely-share-files-on-the-blockchain-with-ipfs-219ee47df54c
|
||||
~~3. Utiliser l'application ipfs-cluster: https://cluster.ipfs.io/documentation/quickstart/~~
|
||||
**VOILA! Le système peut maintenant dialoguer par SMS.**
|
||||
|
||||
C'est finalement l'option 2 qui a été choisie, en chiffrant les fichiers mis dans IPFS par la clef GPG du SWARM, du NODE, ou du TAG, la sécurité est assurée (regarder dans ./shell/init_keys.sh, [Generer une clef GPG pour le NODE](https://serverfault.com/a/960673), partager les clefs publiques des Nodes ./wallets/SWARM/IPFSID/gpgpubkey)
|
||||
## IV. Tests
|
||||
|
||||
Ici, chaque noeud reste propritéaire des G1sms wallet qu'il a créé est reste le seul à pouvoir interagir avec.
|
||||
### Envoyer un SMS
|
||||
echo "Mon premier SMS envoyé !" | gammu-smsd-inject TEXT 06xxxxxxxx
|
||||
|
||||
**TODO :**
|
||||
- Ajouter un test silkaj
|
||||
- Notif d'une alert admin par G1sms
|
||||
|
||||
|
||||
---
|
||||
---
|
||||
---
|
||||
|
||||
**La partie qui suis doit être mise à jours !**
|
||||
|
||||
Configurer le démon **ipfs** pour le user **pi**
|
||||
|
||||
|
||||
Configurer et initialiser le démon avec des options p2p trop pratiques (communication, publication et surveillance de canal, forward de ports, reverse ssh, etc... on accède à tout par son hash, y compris un noeud...)
|
||||
|
||||
su pi
|
||||
ipfs init -p lowpower
|
||||
# Activate pubsub (mode gossip)
|
||||
ipfs config Pubsub.Router gossipsub
|
||||
# Define max storage
|
||||
ipfs config Datastore.StorageMax 6GB
|
||||
## Port Forwarding on P2P (SSH: ipfs p2p listen /x/ssh /ip4/127.0.0.1/tcp/22 )
|
||||
ipfs config --json Experimental.Libp2pStreamMounting true
|
||||
|
||||
On ajoute au BOOTSTRAP le(s) noeud(s) leader (always on) du SWARM
|
||||
|
||||
######### UPDATE BOOTSTRAP LIST ###########
|
||||
ipfs bootstrap rm --all
|
||||
### fred@onelove.madeinzion.org ###
|
||||
# ID: QmSX7gFRPHui5A2DWFk2VmBvq6hynj2hubhJLQAwPWe4Lh
|
||||
ipfs bootstrap add /ip6/fe80::207:cbff:fe0b:75bb/tcp/4001/ipfs/QmSX7gFRPHui5A2DWFk2VmBvq6hynj2hubhJLQAwPWe4Lh
|
||||
ipfs bootstrap add /ip4/51.15.2.211/tcp/4001/ipfs/QmSX7gFRPHui5A2DWFk2VmBvq6hynj2hubhJLQAwPWe4Lh
|
||||
|
||||
### 3. ACTIVER LE SUPPORT A DISTANCE
|
||||
|
||||
|
@ -277,43 +149,6 @@ FAIRE APPEL AU SUPPORT
|
|||
ssh pi@localhost -p 2222
|
||||
|
||||
|
||||
|
||||
### 4. Lancement de ipfs au démarrage du système
|
||||
|
||||
**sudo nano /etc/systemd/system/ipfs.service**
|
||||
|
||||
[Unit]
|
||||
Description=IPFS daemon
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=pi
|
||||
ExecStart=/usr/local/bin/ipfs daemon --enable-pubsub-experiment --enable-namesys-pubsub --routing=dhtclient --enable-gc
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
|
||||
Activer et lancer le service ipfs
|
||||
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable ipfs
|
||||
sudo systemctl start ipfs
|
||||
|
||||
sudo systemctl status ipfs
|
||||
|
||||
|
||||
### 5. Installer la Suite: logiciels et périphériques
|
||||
|
||||
On installe **gnupg** ntpdate pour synchroniser nos horloges plus de quoi manipuler les images, les qrcodes, les chiffres et le json (dialogue avec DUNITER et CESIUM)
|
||||
|
||||
sudo apt install gnupg ntpdate
|
||||
sudo apt install ssmtp mpack
|
||||
|
||||
# Pour manipuler les images, les chiffres et le json
|
||||
sudo apt install imagemagick qrencode bc jq libttspico-utils
|
||||
|
||||
- Configurer un serveur relai email
|
||||
:a: https://wiki.archlinux.org/index.php/SSMTP
|
||||
:b: http://ozzmaker.com/send-email-from-the-raspberry-pi-or-linux-command-line-with-attachments/
|
||||
|
@ -419,8 +254,3 @@ https://ethereum.stackexchange.com/questions/63109/ipfs-versioning-how-to-get-al
|
|||
|
||||
* What is InterPlanetary Naming System(IPNS)? https://hackernoon.com/understanding-ipfs-in-depth-3-6-what-is-interplanetary-naming-system-ipns-9aca71e4c13b
|
||||
|
||||
# INSTALL
|
||||
|
||||
A venir... préparer un script qui effectue ce qui est décrit dans ce document pour lancer des installations plus automatiques de NODE G1sms+
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue