Cuepoint is a Go monorepo for stream scheduling, chatbot markers, VOD download links, and ffmpeg segment commands.
apps/apiexposes the HTTP API.apps/workerprocesses queued jobs and stores generated ffmpeg commands.apps/botprovides a transport-agnostic bot framework with local stdin and Twitch IRC adapters.apps/cliprovides local admin and smoke-test commands.packages/*contains shared config, domain, storage, queue, and ffmpeg logic.
- Go
1.26.2 - Docker with Compose
Start the full local stack:
docker compose up -dDefault local ports come from .env:
- API host port:
8088 - Postgres:
5439 - pgAdmin:
5054 - Redis:
6378 - RedisInsight:
5541
Traefik-related hostnames and network settings also live in .env.
From the repo root:
make tidy
make test
make buildThis now includes:
apiworkerpostgrespgadminredisredisinsight
The api and worker containers override the host-style .env values with container-native service addresses for Postgres and Redis.
The API container listens internally on API_CONTAINER_PORT and is published on API_PORT, so host port conflicts can be resolved without changing the container wiring.
Each binary still loads values from the root .env file automatically, so you can run them outside Compose when needed.
Start the API manually:
./apps/api/apiStart the worker manually:
./apps/worker/workerUse the CLI:
./apps/cli/cuepoint health
./apps/cli/cuepoint marker create --stream vod-source.mp4 --label intro --timestamp 00:00:10Run the local bot adapter:
./apps/bot/botTo use Twitch chat instead of stdin, set these values in .env before running the bot:
BOT_TRANSPORT=twitch
BOT_LOG_LEVEL=debug
BOT_TWITCH_USERNAME=your_bot_username
BOT_TWITCH_OAUTH_TOKEN=oauth:your_token
BOT_TWITCH_CHANNEL=your_channelBot log levels:
debugshows IRC connection, parsed commands, ignored IRC lines, and sent repliesinfoshows startup, transport selection, connect/join, and shutdown eventswarnshows command handling problemserrorshows only failures
Example bot commands:
!help
!health
!health:all
!health:bot
!health:server
!marker vod-source.mp4 intro 00:00:10
- Start Compose services.
- Use the CLI or bot against the running API.
- Create a marker through the CLI or bot.
- Fetch the job and confirm the stored ffmpeg command.
- pgAdmin:
http://localhost:5054- email:
admin@cuepoint.app - password:
cuepoint
- email:
- RedisInsight:
http://localhost:5541