Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maxpert/raspchat
A chat server that can run on Raspberry Pi
https://github.com/maxpert/raspchat
chat demo node node-js nodejs raspberry-pi server slack uwebsockets
Last synced: 3 days ago
JSON representation
A chat server that can run on Raspberry Pi
- Host: GitHub
- URL: https://github.com/maxpert/raspchat
- Owner: maxpert
- License: mit
- Created: 2015-12-14T22:38:17.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2024-06-12T19:29:26.000Z (7 months ago)
- Last Synced: 2025-01-11T17:08:31.726Z (10 days ago)
- Topics: chat, demo, node, node-js, nodejs, raspberry-pi, server, slack, uwebsockets
- Language: JavaScript
- Homepage: http://beta.raspchat.com/
- Size: 7.98 MB
- Stars: 419
- Watchers: 14
- Forks: 52
- Open Issues: 6
-
Metadata Files:
- Readme: Readme.md
- License: license
Awesome Lists containing this project
README
# An IRC like chat system written in Node.js
[![Build Status](https://semaphoreci.com/api/v1/projects/bb232bf4-f866-4d30-a526-218e9f3aed5b/647934/badge.svg)](https://semaphoreci.com/maxpert/raspchat)
# 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/`) **R**asp**c**hat **URL** where server would start listening
* `DB_PATH` (default `chat-log.db`) **D**ata**b**ase **path** for SQLite database
* `WS_URL` (default `ws://localhost:3000/chat`) **W**eb**s**ocket **URL** if you are running it behind some proxy
* `WSS_URL` (default `wss://localhost:3000/chat`) **W**eb**s**ocket **s**ecure **URL** if you are running it behind some proxyYou can read about `.env` file [here](https://www.npmjs.com/package/dotenv)
## 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