Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/johan-perso/localchat
Un chat par réseau, décentralisé, qui n'utilise pas Internet
https://github.com/johan-perso/localchat
chat electron electronjs lan local local-network localhost menubar menubar-app tailwindcss tray-app tray-menu
Last synced: 7 days ago
JSON representation
Un chat par réseau, décentralisé, qui n'utilise pas Internet
- Host: GitHub
- URL: https://github.com/johan-perso/localchat
- Owner: johan-perso
- License: mit
- Created: 2024-03-23T15:25:05.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-04-15T13:44:16.000Z (10 months ago)
- Last Synced: 2024-05-06T12:26:23.089Z (10 months ago)
- Topics: chat, electron, electronjs, lan, local, local-network, localhost, menubar, menubar-app, tailwindcss, tray-app, tray-menu
- Language: JavaScript
- Homepage:
- Size: 1000 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LocalChat
Une application pour discuter au sein d'un réseau local, de manière décentralisée, sans avoir à utiliser une connexion à Internet.
> À la base c'était un projet pour profiter du réseau de mon lycée qui n'a pas d'accès à Internet, le projet ne sera sûrement pas mis à jour.
> Projet basé sur le code source d'[Agendapp](https://github.com/johan-perso/agendapp), une application d'organisation des devoirs et de prise de notes.![SCR-20241018-tkut](https://github.com/user-attachments/assets/8633e5a4-ec86-4c1d-bb60-b50c6ec8444b)
## Installation
### Windows
* Téléchargez le fichier `LocalChat-*-win32-x64.zip` dans la section [Releases](https://github.com/johan-perso/localchat/releases/latest) de ce dépôt.
* Décompressez le fichier ZIP puis exécutez le fichier `LocalChat.exe` pour démarrer l'application.
* Vous pouvez créer un raccourci vers `LocalChat.exe` pour lancer l'application plus facilement.### macOS
* Cherchez et téléchargez le fichier `LocalChat-*-macos-*.dmg` (en fonction de votre architecture, Intel = x64 ; Sillicon = arm64) dans la section [Releases](https://github.com/johan-perso/localchat/releases/latest) de ce dépôt.
* Ouvrez le fichier DMG puis déplacez l'application `LocalChat.app` dans le dossier Applications.> Pour ouvrir ce fichier sur un processeur Apple Silicon (M1 et supérieur), vous devrez potentiellement exécuter ces commandes dans le terminal :
```bash
sudo spctl --master-disable
sudo chmod -R 777 /Applications/LocalChat.app
xattr -d com.apple.quarantine /Applications/LocalChat.app
xattr -cr /Applications/LocalChat.app
```## Fonctionnement technique
### Décentralisé
Lorsqu'un utilisateur envoie un message, le client (l'application) va envoyer une requête au serveur de chaque destinataire qui a été détecté sur le réseau local. Les destinataires qui recevront la requête afficheront le message dans l'interface avec les informations reçues.
Cette méthode offre plusieurs avantages : aucun serveur central n'est nécessaire pour communiquer, il est possible de discuter à plusieurs sans aucune configuration supplémentaire, une connexion à Internet n'est même pas requise.
### Sécurité
Les messages sont envoyés "en clair" (sans HTTPS) sur le réseau local. Des personnes malveillantes (ou simplement l'administration d'un établissement scolaire par exemple) pourraient potentiellement intercepter les messages. Pour cela, le contenu du message (n'incluant ni le pseudo ni l'effet utilisé) est chiffré en utilisant l'algorithme AES-256-CBC avec une clé générée aléatoirement à chaque message.
La clé permettant le déchiffrement, ainsi que l'IV (vecteur d'initialisation) sont envoyés en clair avec le message. Cependant, une information est ajoutée à la clé au moment du chiffrement, et n'est pas envoyée dans la requête, celle-ci est basée sur le temps ainsi qu'une valeur prédéfinie dans le code.
En conclusion, les messages peuvent être lus par des inconnus sur le réseau, mais il sera plus difficile pour eux s'ils n'ont pas accès à ce code source.
## Licence
MIT © [Johan](https://johanstick.fr).
Icône faite par [Icones8](https://icones8.fr/icon/D6fq9I7xyv5X/chat-message).