About ----- This project is a complete multi-channel webchat solution with accounts, channel registration and moderation, colors to distinguish users, and options to broadcast cameras and/or microphones. Licensing --------- This project is licensed under the GNU Affero General Public License (AGPL) version 3, with the exception of mic.xcf/mic.png which is licensed under Creative Commons CC-by-3.0, based on work from https://github.com/break24/PhantomOpenEmoji Setup ----- 1. Web To get things running you'll have to put the web content on a webserver (or running it in place mostly works too, for local testing) the web content includes all the .js files, chat.css, chat.php and mic.png. You will also need to create config.js, see config.js.sample for an example of how that should look. chat.php accepts the GET variable 'c' for channel name (picking this up is also the only thing PHP is used for, should be easy to replace if PHP is unsuitable) If you are running it in place with no webserver/PHP you will still be able to join a channel, but it will be something like "%3C" and password-protected channels won't work quite right. 2. Server Type 'make' to build the server (chatd) The server currently expects your domain's certificate and private key to be found in cert.pem and key.pem respectively. For accounts and channel registration (and thus moderators) you will need to set up an sqlite3 database named chat.db, the tables/indexes can be found in db.sql (alternatively just run: sqlite3 chat.db "`cat db.sql`") The server is currently hardcoded to listen on port 4000.