diff --git a/README.md b/README.md
index 998bd2d..70351af 100644
--- a/README.md
+++ b/README.md
@@ -43,6 +43,8 @@ It is very much in the style of the old-school Flash based webcam chat rooms of
* [x] /op and /deop users (give temporary mod control)
* [x] /help to get in-chat help for moderator commands
+The BareRTC project also includes a [Chatbot implementation](docs/Chatbot.md) so you can provide an official chatbot for fun & games & to auto moderate your chat room!
+
# Configuration
On first run it will create the default settings.toml file for you which you may then customize to your liking:
@@ -76,162 +78,13 @@ PreviewImageWidth = 360
WelcomeMessages = ["Welcome to the Off Topic channel!"]
```
-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 `` 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!
- * **UseXForwardedFor**: set it to true and (for logging) the user's remote IP will use the X-Real-IP header or the first address in X-Forwarded-For. Set this if you run the app behind a proxy like nginx if you want IPs not to be all localhost.
- * **CORSHosts**: your website's domain names that will be allowed to access [JSON APIs](#JSON APIs), like `/api/statistics`.
- * **PermitNSFW**: for user webcam streams, expressly permit "NSFW" content if the user opts in to mark their feed as such. Setting this will enable pop-up modals regarding NSFW video and give broadcasters an opt-in button, which will warn other users before they click in to watch.
- * **WebSocketReadLimit**: sets a size limit for WebSocket messages - it essentially also caps the max upload size for shared images (add a buffer as images will be base64 encoded on upload).
- * **MaxImageWidth**: for pictures shared in chat the server will resize them down to no larger than this width for the full size view.
- * **PreviewImageWidth**: to not flood the chat, the image in chat is this wide and users can click it to see the MaxImageWidth in a lightbox modal.
-* **JWT**: settings for JWT [Authentication](#authentication).
- * 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.
- * SecretKey (string): the JWT signing secret shared with your back-end app.
-* **PublicChannels**: list the public channels and their configuration. The default channel will be the first one listed.
- * ID (string): an arbitrary 'username' for the chat channel, like "lobby".
- * Name (string): the user friendly name for the channel, like "Off Topic"
- * Icon (string, optional): CSS class names for FontAwesome icon for the channel, like "fa fa-message"
- * WelcomeMessages ([]string, optional): messages that are delivered by ChatServer to the user when they connect to the server. Useful to give an introduction to each channel, list its rules, etc.
+See [Configuration](docs/Configuration.md) for in-depth explanations on the available config settings and what they do.
# Authentication
BareRTC supports custom (user-defined) authentication with your app in the form of JSON Web Tokens (JWTs). JWTs will allow your existing app to handle authentication for users by signing a token that vouches for them, and the BareRTC app will trust your signed token.
-The workflow is as follows:
-
-1. Your existing app already has the user logged-in and you trust who they are. To get them into the chat room, your server signs a JWT token using a secret key that both it and BareRTC knows.
-2. Your server redirects the user to your BareRTC website sending the JWT token as a `jwt` parameter, either in the query string (GET) or POST request.
- * e.g. you send them to `https://chat.example.com/?jwt=TOKEN`
- * If the JWT token is too long to fit in a query string, you may create a `