Add screenshot and update README

This commit is contained in:
Noah 2023-02-06 14:21:08 -08:00
parent 8a639109b2
commit 11cd2c821b
3 changed files with 20 additions and 11 deletions

View File

@ -2,9 +2,9 @@
BareRTC is a simple WebRTC-based chat room application. It is especially designed to be plugged into any existing website, with or without a pre-existing base of users. BareRTC is a simple WebRTC-based chat room application. It is especially designed to be plugged into any existing website, with or without a pre-existing base of users.
It is very much in the style of the old-school Flash based webcam chat rooms of the early 2000's: a multi-user chat room with DMs and _some_ users may broadcast video and others may watch multiple video feeds in an asynchronous manner. I thought that this should be such an obvious free and open source app that should exist, but it did not and so I had to write it myself. ![Screenshot of BareRTC](screenshot.png)
This is still a **work in progress** and see the features it still needs, below. It is very much in the style of the old-school Flash based webcam chat rooms of the early 2000's: a multi-user chat room with DMs and _some_ users may broadcast video and others may watch multiple video feeds in an asynchronous manner. I thought that this should be such an obvious free and open source app that should exist, but it did not and so I had to write it myself.
# Features # Features
@ -15,25 +15,25 @@ This is still a **work in progress** and see the features it still needs, below.
* Mobile friendly: works best on iPads and above but adapts to smaller screens well. * Mobile friendly: works best on iPads and above but adapts to smaller screens well.
* WebRTC means peer-to-peer video streaming so cheap on hosting costs! * WebRTC means peer-to-peer video streaming so cheap on hosting costs!
* Simple integration with your existing userbase via signed JWT tokens. * Simple integration with your existing userbase via signed JWT tokens.
* User configurable sound effects to be notified of DMs or users entering/exiting the room.
Some important features it still needs: Some important features still lacking:
* JWT authentication, and admin user permissions (kick/ban/etc.) * Operator controls (kick/ban users)
* Support for profile URLs, custom avatar image URLs, custom profile fields to show in-app
* See who all is looking at your camera right now, and kick them off.
* Lots of UI cleanup.
# Configuration # Configuration
Work in progress. On first run it will create the settings.toml file for you: On first run it will create the default settings.toml file for you which you may then customize to your liking:
```toml ```toml
WebsiteURL = "http://localhost:8080" Title = "BareRTC"
Branding = "BareRTC"
WebsiteURL = "https://www.example.com"
[JWT] [JWT]
Enabled = true Enabled = false
Strict = true Strict = true
SecretKey = "change me" SecretKey = ""
[[PublicChannels]] [[PublicChannels]]
ID = "lobby" ID = "lobby"
@ -49,6 +49,12 @@ WebsiteURL = "http://localhost:8080"
A description of the config directives includes: A description of the config directives includes:
* Website settings:
* **Title** goes in the title bar of the chat page.
* **Branding** is the title shown in the corner of the page. HTML is permitted here! You may write an `<img>` tag to embed an image or use custom markup to color and prettify your logo.
* **WebsiteURL** is the base URL of your actual website which is used in a couple of places:
* The About page will link to your website.
* If using [JWT authentication](#authentication), avatar and profile URLs may be relative (beginning with a "/") and will append to your website URL to safe space on the JWT token size!
* **JWT**: settings for JWT [Authentication](#authentication). * **JWT**: settings for JWT [Authentication](#authentication).
* Enabled (bool): activate the JWT token authentication feature. * Enabled (bool): activate the JWT token authentication feature.
* Strict (bool): if true, **only** valid signed JWT tokens may log in. If false, users with no/invalid token can enter their own username without authentication. * Strict (bool): if true, **only** valid signed JWT tokens may log in. If false, users with no/invalid token can enter their own username without authentication.
@ -92,6 +98,8 @@ Configure a shared secret key (random text string) in both the BareRTC settings
} }
``` ```
**Notice:** your picture and profile URL may be relative URIs beginning with a forward slash as seen above; BareRTC will append them to the end of your WebsiteURL and you can save space on your JWT token size this way. Full URLs beginning with `https?://` will also be accepted and used as-is.
An example how to sign your JWT tokens in Go (using [golang-jwt](https://github.com/golang-jwt/jwt)): An example how to sign your JWT tokens in Go (using [golang-jwt](https://github.com/golang-jwt/jwt)):
```golang ```golang

View File

@ -49,6 +49,7 @@ var Current = DefaultConfig()
func DefaultConfig() Config { func DefaultConfig() Config {
var c = Config{ var c = Config{
Title: "BareRTC", Title: "BareRTC",
Branding: "BareRTC",
WebsiteURL: "https://www.example.com", WebsiteURL: "https://www.example.com",
PublicChannels: []Channel{ PublicChannels: []Channel{
{ {

BIN
screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB