twir
twir copied to clipboard
Twitch bot written in Golang and TypeScript.
Development
Requirements
Cli
[!NOTE] For MOST of project management tasks we use own written cli. You can use
pnpm cli helpfor print cli usage
- Run needed services (Postgres, Adminer, Redis, Minio)
docker compose -f docker-compose.dev.yml up -d
- Install dependencies
pnpm cli deps
- Build libs
pnpm cli build libs
Configure project for development
Well, now we are almost ready for developing project, just few steps.
- Create twitch application https://dev.twitch.tv/console/apps
- Set
http://localhost:3005/loginandhttps://tokens-generator.twir.appas your redirect url's for twitch application - Go to https://tokens-generator.twir.app, set clientID and clientSecret from your app and generate initial token WITH ALL SCOPES
cp .env.example .envand fill required envs
Run project
- Start dev mode
pnpm cli dev
- Visit https://localhost:3005
Writing migrations
- Use command for create new migration
pnpm cli migrations create
- Navigate to folder and edit new migration file
cd libs/migrations/migrations
- Run new created migrations (optional, because it's running when you execute
pnpm dev)
pnpm cli migrations run
Write go models
- Go to
libs/gomodels - Create new file and describe the go schema
- Do not forget about
TableName()for struct
Https on localhost (optional)
We'll use dev.twir.app domain, but you can use any other domain.
-
Add
https://dev.twir.app/loginto your twitch application redirect url's -
Edit
.enventries:
TWITCH_CALLBACKURL=https://dev.twir.app/login
SITE_BASE_URL=dev.twir.app
USE_WSS=true
- Add to your
/etc/hostsorC:/Windows/System32/drivers/etc/hostsfile new entry:
127.0.0.1 dev.twir.app
- Start caddy:
pnpm cli proxy
- Open https://dev.twir.app