mirror of
https://github.com/imgfloat/server.git
synced 2026-02-05 03:39:26 +00:00
Add Spring Boot Twitch overlay server with CI and Docker
This commit is contained in:
53
README.md
53
README.md
@@ -1 +1,54 @@
|
||||
# Imgfloat
|
||||
|
||||
A Spring Boot overlay server for Twitch broadcasters and their channel admins. Broadcasters can authorize via Twitch OAuth and invite channel admins to manage images that float over a transparent canvas. Updates are pushed in real time over WebSockets so OBS browser sources stay in sync.
|
||||
|
||||
## Features
|
||||
- Twitch OAuth (OAuth2 login) with broadcaster and channel admin access controls.
|
||||
- Admin console with Twitch player embed and canvas preview.
|
||||
- Broadcaster overlay view optimized for OBS browser sources.
|
||||
- Real-time image creation, movement, resize, rotation, visibility toggles, and deletion via STOMP/WebSockets.
|
||||
- In-memory channel directory optimized with lock-free collections for fast updates.
|
||||
- Optional SSL with local self-signed keystore support.
|
||||
- Dockerfile, Makefile, CI workflow, and Maven build.
|
||||
|
||||
## Getting started
|
||||
### Prerequisites
|
||||
- Java 17+
|
||||
- Maven 3.9+
|
||||
- Twitch Developer credentials (Client ID/Secret)
|
||||
|
||||
### Local run
|
||||
```bash
|
||||
TWITCH_CLIENT_ID=your_id TWITCH_CLIENT_SECRET=your_secret mvn spring-boot:run
|
||||
```
|
||||
The default server port is `8080`. Log in via `/oauth2/authorization/twitch`.
|
||||
|
||||
### Enable TLS locally
|
||||
```bash
|
||||
make ssl
|
||||
SSL_ENABLED=true SSL_KEYSTORE_PATH=file:$(pwd)/local/keystore.p12 \
|
||||
TWITCH_CLIENT_ID=your_id TWITCH_CLIENT_SECRET=your_secret \
|
||||
mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8443"
|
||||
```
|
||||
|
||||
### Make targets
|
||||
- `make run` – start the dev server.
|
||||
- `make test` – run unit/integration tests.
|
||||
- `make package` – build the runnable jar.
|
||||
- `make docker-build` / `make docker-run` – containerize and run the service.
|
||||
- `make ssl` – create a self-signed PKCS12 keystore in `./local`.
|
||||
|
||||
### Docker
|
||||
```bash
|
||||
make docker-build
|
||||
TWITCH_CLIENT_ID=your_id TWITCH_CLIENT_SECRET=your_secret docker run -p 8080:8080 imgfloat:latest
|
||||
```
|
||||
|
||||
### OAuth configuration
|
||||
Spring Boot reads Twitch credentials from `TWITCH_CLIENT_ID` and `TWITCH_CLIENT_SECRET`. The redirect URI is `{baseUrl}/login/oauth2/code/twitch`.
|
||||
|
||||
### CI
|
||||
GitHub Actions runs `mvn verify` on pushes and pull requests via `.github/workflows/ci.yml`.
|
||||
|
||||
### License
|
||||
MIT
|
||||
|
||||
Reference in New Issue
Block a user