Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💬 Messager — Self-Hosted Real-Time Room Chat

Node.js Express Socket.io Packaging License

A lightweight, private, self-hosted web chat application with real-time messaging, room PIN codes, and image sharing. Packaged for zero-dependency deployment as standalone single-file executables for Windows, macOS, and Linux.


✨ Features

  • Real-Time Messaging: Instant message delivery powered by Socket.io WebSockets.
  • 🔑 5-Digit Room Codes: Create or join isolated rooms using simple PIN codes.
  • 📸 Rich Media Sharing: Share images by uploading, dragging-and-dropping, or pasting directly from the clipboard (Ctrl+V).
  • 📱 Mobile-First UI: Clean, responsive interface with dark theme and mobile device support.
  • 📦 Single-File Executables: Built with pkg into portable binaries—run on Windows, macOS, or Linux without installing Node.js or npm!
  • 🔒 Self-Hosted Privacy: Uploaded media is saved in a local messager-uploads directory in your home folder.

📸 Interface Preview

Messager Chat Room Interface


🚀 Quick Start

Running from Source

  1. Clone the repository:

    git clone https://github.com/Gilzone/messager.git
    cd messager
  2. Install dependencies:

    npm install
  3. Start the server:

    node server.js
  4. Open your browser and navigate to:

    http://localhost:3002
    

💻 Building Standalone Executables (No Node.js Required)

You can package Messager into standalone executable files using pkg:

# Build for Windows (.exe)
npm run build:win

# Build for macOS
npm run build:mac

# Build for Linux
npm run build:linux

# Build all three platforms simultaneously
npm run build:all

The compiled binaries will be output to the dist/ folder:

  • dist/messager-win.exe
  • dist/messager-mac
  • dist/messager-linux

Run the generated binary directly on any system without installing dependencies!


📁 Project Structure

messager/
├── server.js          # Express server, Multer upload config & Socket.io logic
├── public/            # Client web application
│   ├── index.html     # Join/Create room landing page
│   ├── room.html      # Main chat room interface
│   ├── client.js      # Socket.io client & image paste listener
│   └── style.css      # Responsive dark theme styles
├── package.json       # Dependencies and build targets
└── dist/              # Compiled standalone binaries (generated)

⚙️ Configuration & Storage

  • Default Port: 3002 (configurable via PORT environment variable).
  • Uploaded Images: Stored locally in ~/messager-uploads/ on the host machine.
  • Ephemeral Rooms: Rooms are created dynamically when users join and cleaned up when everyone leaves.

📜 License

This project is licensed under the MIT License.

About

Self-hosted real-time web chat with 5-digit room codes, image sharing, and single-file standalone executable builds (Node.js + Socket.io)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages