1
Create a Google Cloud Project
Go to Google Cloud Console and create a new project (or select an existing one).
- Click Select a project → New Project
- Give it a name (e.g.
joy) and click Create
2
Create OAuth 2.0 Credentials
Go to Google Auth Platform → Clients and create a new client:
- Click Create client
- Set Application type to Web application
-
Give it a name (e.g.
joy) -
Under Authorized redirect URIs, click + Add URI and enter your instance’s
callback, replacing
your-host: - Click Create and copy the Client ID and Client Secret shown
Joy’s product-auth flow receives the callback on a gateway HTTP route, so this must be
your instance’s URL and the instance must be reachable there when you complete the flow.
Google itself also supports loopback redirect URIs, but Joy has no listener for one —
use the hosted callback above.
3
Add Test Users
Since the app is in Testing mode, only explicitly added users can authorize it. Go to Google Auth Platform → Audience, scroll down to Test users, and click + Add users.Add the Google account(s) that will use the extension. The app supports up to 100 test users before requiring verification.
Only test users can complete the OAuth flow while the app is in Testing mode. If you get an “access blocked” error, make sure your account is listed here.
4
Give Joy the Credentials
Store the client id, redirect URI, and client secret with Confirm what was stored:The same values can be supplied as environment variables when a service unit or container
injects them from a secret manager:
joy config. Run these on
the machine Joy runs on — over SSH if it’s a remote or hosted instance.google.client_secret takes no value on the command line. It always prompts, with input
hidden, so the secret never lands in your shell history or the process list. The client id
and redirect URI are not secrets and are passed normally.5
Restart So the Change Takes Effect
joy config set never restarts anything — it writes the value and prints:joy serve in the foreground instead, stop it and start it
again.