raspchat

by maxpert

maxpert / raspchat

A chat server that can run on Raspberry Pi

415 Stars 51 Forks Last release: almost 3 years ago (v1.0.0-alpha) MIT License 169 Commits 2 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

An IRC like chat system written in Node.js

Build Status

Project Status

The original goal of the project was to build fun little project to let people build their local communities. It was fun talking to many folks, getting contributions, and a journey from Go to Node. Maintaining an opensource project, is not an easy chore. It requires immense energy, and hours of careful thinking. Unfortunately I no longer have the time or energy to continue doing that. With the limited success, I feel leaving this project in it's current state is the most prudent thing I can do. I am still reachable by email, and maintainance PRs are welcome.

Why?

I had a spare Raspberry Pi and I wanted to use it! One of ideas in my head was to have your own on-premise chat server that you can use for cheap and own your data (< $50 hardware) forever and free!

Requirements

For compiling you need: * Node 8+ (with npm5) * libsqlite3 * OpenSSL 1.x.x (for uWebsockets) * zlib 1.x (for uWebsockets) * libuv 1.3+ or Boost.Asio 1.x (both optional on Linux)

You can use following commands to install them: * Fedora:

sudo dnf install openssl-devel zlib-devel
* Homebrew:
brew install openssl zlib libuv
* Vcpkg:
vcpkg install openssl zlib libuv and/or vcpkg install openssl:x64-windows zlib:x64-windows libuv:x64-windows

Once you have installed dependencies above just do

npm install && gulp
(creates a dist folder that you can upload to your machine). Project can run on almost any machine that nodejs supports. I have successfully tested it on Raspberry Pi, Orange Pi etc.

Configurations

You can use a

.env
file or environment variables to configure the server, here are the environment variables you can change:
  • RC_URL
    (default
    http://localhost:3000/
    ) Raspchat URL where server would start listening
  • DB_PATH
    (default
    chat-log.db
    ) Database path for SQLite database
  • WS_URL
    (default
    ws://localhost:3000/chat
    ) Websocket URL if you are running it behind some proxy
  • WSS_URL
    (default
    wss://localhost:3000/chat
    ) Websocket secure URL if you are running it behind some proxy

You can read about

.env
file here

Features:

  • Basic GIF support
  • Basic nick support
  • Channel (join/leave/list-members) support
  • Markdown support
  • Message history on group join

Pending:

  • Refactor frontend using hyperapp
  • Scrollable history
  • Unit tests
  • Introduce admin panel with:
    • Reserved alias authorization
    • IP limiting/banning
    • Fixed alias with passwords

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.