Plant a server. Grow a community.
Open-source voice, video and text chat for self-hosted communities.
|
Download the latest version from GitHub. or browse |
|
preview-beanChat-v0.17.4.mp4
- Voice chat using (Opus encoding/decoding).
- Video chat using (ffmpeg encode/decode), Includes a local preview for the sender.
- Text chat with clickable URLs. Image URLs (
.png,.jpg, etc.) automatically display an inline preview while preserving the original link. - Create and join, modify and delete channels
- Password-protected channels.
- Real-time user status indicators (microphone, speaker, and camera), including a speaking indicator when a user is talking.
- Audio features including RNNoise noise suppression, Push-to-Talk, and Voice Activity Detection (Volume Gate).
- Packet loss handling for voice and video and user's ping, plus a colored signal icon displaying connection quality.
- Connected users are listed with showing each user's operating system icon.
- Save servers to a My Servers list, with support for editing and removing saved servers.
- Configurable audio and video devices (microphone, speaker, and camera), plus adjustable sound effect volume.
- Sound effects for message sent/received and user join/leave events.
- Participant model in center of screen for current channel with their information and video feed.
- Users can set avatar picture.
- Move user in/out of channel.
- Floating notification system for erros/messages/... on top of screen.
- Servers can have their information such as Name, Version, Website, Avatar and Uptime).
- User Profile, can open User's profile by clicking on their name/avatar to see their data (statis,name,id,current channel with button join his channel).
- Mute/Unmute users' voice locally, also can adjust voice volume of users by right click on their name in user's setting popup.
- identity system for login into accounts. also can switch/rename/create/delete identities when user is disconnected from any server.
- Add Friend, Block User, Save Note for other users
- blocked user -> change username to red, hide their avatar, mute locally, blur their text messages (only can be shown by clock reveal per message.
- added friend users -> change their username and isTalking to green.
- enter note/details for eavh user, to recognize them later. it would shown on any server because it saved for that user's identity.
- share server via serverCode (servers with ip:port), enter serverCode to connect to server.
- share server via QR code image (ip:port or domain address) [THIS IS FOR FUTURE TO SHARE SERVER WITH PHONE]
- copy to clipboard (for serverCode to copy code, and UserProfile to copy identity)
- check for new updates on start if its available show on importantNotificationBar with UPDATE NOW button, when clicked on update now, try open updater then close self to let update. (BeanChatUpdater repository to checks for missing/different files then download changes and install them).
- logger save important events / errors of application and only report those crashes ones to our sever to know bugs and fix them.
- show offline users of server and list in connectedUsers
- upload/download file in chat
- show icon, name of uploaded/attached file in chat before sending and can remove that attached file
- drag and drop file to chat works (but only one file by the time)
- a simple player for video and audio files
- show image and animated-image (gif) in chat with small size and when clicked open popup with larger size
- show error if exsits before upload file (server may say no, e.g to large files)
- text channel type with save and load messages
- send file is possible
- can keep them private with password
- also can be temporary (won't save and load chats)
Important
Install the required dependencies before building.
git clone https://github.com/xiph/rnnoise.git
cd rnnoise
./autogen.sh
./configure
make
sudo make installgit clone https://github.com/Skycoder42/QHotkey.git
cd QHotkey
mkdir build
cd build
cmake ..
make -j$(nproc)
sudo make installsudo apt install libopus-devsudo apt install \
ffmpeg \
libavcodec-dev \
libavformat-dev \
libavutil-dev \
libswscale-devsudo apt install libssl-devbuild Release then run
cmake --install "path/to/build/Desktop_Qt_6_9_3-Release" --prefix "path/to/somewhere/deployed"- Qt 6.9+
- RNNoise
- QHotkey
- Opus
- FFmpeg
- OpenSSL (Crypto)
This project uses Qt under the LGPL v3 license.
Tip
Windows location:
database,identities is located at: C:\Users\vboxuser\AppData\Roaming\orgBeanChat\appBeanChat
avatars cache path is located at: C:\Users\vboxuser\AppData\Local\orgBeanChat\appBeanChat\cache\servers
config(QSettings) is located at: WIN+R -> type: regedit. route to: HKEY_CURRENT_USER\Software\orgBeanChat\appBeanChat