Skip to content

cjdenio/frcbot-2.0

Repository files navigation

FRCBot 2.0

Build Format

A complete rewrite of FRCBot, written in TypeScript using Bolt.

This will eventually replace the current FRCBot, and Discord support will be added. Yay!

Contributions welcome. Shoot me an email at caleb@deniosoftware.com if you're interested in helping out.

Getting set up for development

This is not a perfected process, but here goes:

  1. Clone the repository with git clone https://github.com/deniosoftware/frcbot-2.0
  2. Install Yarn, Docker and Docker Compose
  3. In the frcbot-2.0/ folder, run yarn install, then docker-compose up
  4. Now FRCBot is available at localhost:3000. An ngrok tunnel will be automatically setup, and you can view the dashboard at localhost:3001.
  5. FRCBot should now automatically sync your local changes into the Docker container.

Config

Create a .env file to hold various config vars. This file follows Docker Compose's environment file specification. Here's an example:

SLACK_SIGNING_SECRET=super_secret_code
SLACK_CLIENT_ID=not_so_secret_code
SLACK_CLIENT_SECRET=pretty_secret_code
SLACK_STATE_SECRET=random_string_for_security
TBA_API_KEY=moderately_secret_code
TBA_WEBHOOK_SECRET=
DISCORD_CLIENT_ID=
DISCORD_TOKEN=

To configure the ngrok tunnel (e.g. get a custom subdomain), create a .ngrok.env file with config like so:

Check out all the possible ngrok config vars here.

NGROK_AUTH=your_auth_key

# Requires paid account 🔽
NGROK_SUBDOMAIN=subdomain

Ports

URL Description
http://localhost:3000 Your FRCBot instance
http://localhost:3001 The ngrok dashboard
http://localhost:3002 The Datastore viewer (powered by dsui)
http://localhost:3003 The raw Datastore API is exposed here. [Reference]