[GH#1] [Epic] iRacing Login MVP — TeamManager Server #2

Open
opened 2026-05-19 22:15:47 +02:00 by Max · 0 comments
Owner

Migrated from GitHub #1
Originally created by @Bio1988 on 2026-05-18T10:56:40Z


Epic

Implement the TeamManager Server side of the iRacing Login MVP.

Plan: docs/plans/2026-05-18-teammanager-iracing-login-mvp.md in Bio1988/strategy-desktop.

Product decisions from Max (2026-05-18)

  • IRACING_CLIENT_SECRET, iRacing username/client identifier data, and IRACING_REDIRECT_URI will be provided as GitHub Secrets / deployment environment, not hard-coded.
  • Redirect URI is dynamic via env/secret so production and later variants can be changed without code changes.
  • DNS for api.teammanager.cc is still pending.
  • Desktop must never store OAuth access/refresh tokens. Use a random per-install pairing token locally; store OAuth tokens and pairing mapping in the server database.
  • No separate token-refresh cron/goroutine for MVP. Refresh opportunistically when users interact / before API calls; mark expired only when refresh fails.
  • IRACING_USERNAME is not required by the server and must not be part of required config.

Scope

  • Make the Go server compile.
  • Add Docker/Caddy deployment shape.
  • Implement iRacing OAuth broker endpoints and server-side persistence.
  • Deploy to VPS after DNS and secrets are ready.
  • Keep redirect URI/client secret dynamic via environment/GitHub secrets.

Children

  • #2 — Task 1: Make TeamManager server compile
  • #3 — Task 2: Add Dockerfile, docker-compose, and Caddy reverse proxy
  • #4 — Task 3: Document environment and GitHub secret configuration
  • #5 — Task 4: Add OAuth domain model
  • #6 — Task 5: Add OAuth application layer and ports
  • #7 — Task 6: Implement iRacing callback and token exchange
  • #8 — Task 7: Implement persistent server stores for pairing, state, tokens and connections
  • #9 — Task 8: Wire HTTP router for auth endpoints
  • #10 — Task 9: Deploy TeamManager server to VPS behind api.teammanager.cc
  • #11 — Task 10: Implement opportunistic token refresh-on-use
Migrated from [GitHub #1](https://github.com/Bio1988/teammanager-server/issues/1) Originally created by @Bio1988 on 2026-05-18T10:56:40Z --- ## Epic Implement the TeamManager Server side of the iRacing Login MVP. Plan: `docs/plans/2026-05-18-teammanager-iracing-login-mvp.md` in `Bio1988/strategy-desktop`. ## Product decisions from Max (2026-05-18) - `IRACING_CLIENT_SECRET`, iRacing username/client identifier data, and `IRACING_REDIRECT_URI` will be provided as GitHub Secrets / deployment environment, not hard-coded. - Redirect URI is dynamic via env/secret so production and later variants can be changed without code changes. - DNS for `api.teammanager.cc` is still pending. - Desktop must never store OAuth access/refresh tokens. Use a random per-install pairing token locally; store OAuth tokens and pairing mapping in the server database. - No separate token-refresh cron/goroutine for MVP. Refresh opportunistically when users interact / before API calls; mark expired only when refresh fails. - `IRACING_USERNAME` is not required by the server and must not be part of required config. ## Scope - Make the Go server compile. - Add Docker/Caddy deployment shape. - Implement iRacing OAuth broker endpoints and server-side persistence. - Deploy to VPS after DNS and secrets are ready. - Keep redirect URI/client secret dynamic via environment/GitHub secrets. ## Children - [ ] #2 — Task 1: Make TeamManager server compile - [ ] #3 — Task 2: Add Dockerfile, docker-compose, and Caddy reverse proxy - [ ] #4 — Task 3: Document environment and GitHub secret configuration - [ ] #5 — Task 4: Add OAuth domain model - [ ] #6 — Task 5: Add OAuth application layer and ports - [ ] #7 — Task 6: Implement iRacing callback and token exchange - [ ] #8 — Task 7: Implement persistent server stores for pairing, state, tokens and connections - [ ] #9 — Task 8: Wire HTTP router for auth endpoints - [ ] #10 — Task 9: Deploy TeamManager server to VPS behind api.teammanager.cc - [ ] #11 — Task 10: Implement opportunistic token refresh-on-use
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Max/teammanager-server#2
No description provided.