✨ Key Features • 🚀 Installation • 📘 How To Use • ⌨️ Commands • 🏗️ Architecture • 📝 License
A modern, feature-rich chat application with real-time messaging, file sharing, and customizable interfaces.
- Multi-threaded Chat System - Create and join different chat threads
- Real-time Messaging - WebSocket-based communication for instant messaging
- File Sharing - Upload and share files, images, and media
- User Authentication - Register and login to save your preferences
- Customizable Interface - Change colors, backgrounds, and fonts
- Media Support - Embedded players for audio and video content
- Private Messaging - Direct message other users
- Role Management - Thread creators have moderation capabilities
The easiest way to run STORM is using Docker:
# Clone this repository
git clone https://github.com/742Team/STORM.git
# Go into the repository
cd STORM
# Run the start script
./start_hermes.sh
# Clone this repository
git clone https://github.com/742Team/STORM.git
# Go into the repository
cd STORM
# Install dependencies
bundle install
# Run the servers
ruby srv_message.rb & ruby srv_upload.rb
- Start the servers using one of the installation methods above
- Connect to the WebSocket server at ws://localhost:3630
- Enter a username when prompted
- Use /help to see available commands
- Create a new thread with /cr thread_name password
- Start chatting!
/cr <name> <password>
- Create a new thread/cd <name> <password>
- Join an existing thread/info
- Display information about the current thread/list
- List users in the current thread
/help
- Display available commands/history
- Show message history with timestamps/dm <username> <message>
- Send a private message/quit
- Disconnect from the server
/color <color>
- Change your username color/background <url>
- Change the chat background/typo <font>
- Change the chat font/textcolor <color>
- Change the text color
/file <url>
[filename] - Share a file link/image <url>
- Share an image/music <url>
- Share music in the thread/playmusic
- Play shared music/volume <level>
- Adjust music volume (0-100)/upload
- Upload a file to the server
/register <email> <password> <username>
- Create an account/login <email> <password>
- Login to your account/language <langCode>
- Change interface language
/kick <username>
- Remove a user from the thread/ban <username>
- Ban a user from the thread/powerto <username>
- Transfer thread ownership
STORM consists of two main server components:
📨 Message Server ( srv_message.rb )
- Handles WebSocket connections
- Manages chat rooms and messaging
- Processes commands
- Maintains user sessions
📤 Upload Server ( srv_upload.rb )
- Handles file uploads and storage
- Extracts and stores file metadata
- Serves uploaded files
- Provides RESTful API for file operations
STORM/
├── Message/ # Message server components
│ ├── commands/ # Command implementations
│ ├── controllers/ # Core controllers
│ └── models/ # Data models
├── Upload/ # Upload server components
│ ├── config/ # Configuration
│ ├── controllers/ # Upload controllers
│ └── helpers/ # Helper modules
├── public/ # Public assets
│ ├── uploads/ # Uploaded files
│ └── metadata/ # File metadata
├── srv_message.rb # WebSocket message server
├── srv_upload.rb # HTTP upload server
└── start_hermes.sh # Docker startup script
MIT
Made with ❤️ by STORM Team