Skip to content

xxzoltanxx/Balvan-Chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Balvan Chat

DISCLAIMER: This app is currently a WIP. Do NOT use it yet for communicating anything which you wouldn't want to be intercepted in the network.

alt text alt text

Balvan Chat is a server/client self-hosted desktop chat application. It ensures secure communication with direct connections to the server's IP address, eliminating any middlemen. With complete end-to-end encryption (E2E) using AES-128, your data remains private and secure, encrypted with a passphrase known only to the chat participants.

Features

  • Complete End-to-End Encryption: Utilizes Fernet (AES-128) for robust security.
  • Secure Passphrase: The password is never stored within the app; participants must agree on a passphrase via an external method, e.g., in person. The same is done for the salt.
  • User-Friendly Interface: Built with PyWebView and HTMX, with Flask in the background, for easy interaction.
  • Customizable Usernames: Allows users to choose their display names.
  • Server-Client Architecture: Supports multiple clients connecting to the server.

alt text

Usage

  • Start a Server: Choose Start Server -> Supply with chosen Salt, Password and Name (Nick). Give Salt, Password and your IP to clients...
  • Connect to a Server: Choose Start Server -> Enter your Nick and supply the credentials you got from the host.

Note: When starting a server, your local IP address is displayed in the chat. You will need to provide your external IP address to clients, which can be found by searching "what is my IP" online.

Note: If a connection cannot be established, ensure port 15500 is open on your router.

Downloading as a prepackaged .exe file

Head to Releases for a pre-packaged windows binary. There are no prebuilt binaries for Linux at the moment.

NOTE: The windows binary may not work on older machines, as it was built for my Windows 10 machine. In that case please consult the next section.

Installation and Running from the git repository

  1. Clone the repository.
  2. Use the package manager pip to install the requirements:
pip install -r requirements.txt
  1. Run the application with:
python BalvanChat.py

Packaging the application as an exe file:

  1. Install PyInstaller:
pip install pyinstaller
  1. Inside the directory where the repository is, run:
pyinstaller --windowed -i"Bear.ico" --add-data "UserInterface/Assets/*:UserInterface/Assets" --add-data "UserInterface/Templates/*:UserInterface/Templates" BalvanChat.py
  1. Your exe will get packaged inside the "dist/main" folder. Now we only have to place the html templates/images in the appropriate place:
-Navigate to dist/_internal.
-Place the 'UserInterface' folder inside the folder where the .exe is

Now you can run the app as a standalone app.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

MIT