| title | description |
|---|---|
Bootstrapping & Authentication |
Create the first admin, onboard additional users, and understand Pullbase authentication flows. |
Pullbase ships without default credentials. Use the bootstrap secret to create the first administrator, then manage users through the CLI, API, or web UI.
For a more detailed walkthrough of authentication and user management, see the [CLI Guide](/guides/pullbasectl#authentication). ```bash docker compose exec central-server cat /app/secrets/bootstrap.secret ``` The secret is single-use. Copy it carefully and avoid storing it in plaintext documents. ```bash docker compose exec central-server pullbasectl auth bootstrap-admin \ --server-url http://localhost:8080 \ --bootstrap-secret-file /app/secrets/bootstrap.secret \ --username admin_user \ --password 'ChangeMeNow123!' ``` The command returns a JSON payload containing a short-lived `access_token`. Test it immediately:curl -H "Authorization: Bearer ACCESS_TOKEN" \
http://localhost:8080/api/v1/auth/meAlternatively, provide the bootstrap secret via environment variable instead of a file:
environment:
PULLBASE_BOOTSTRAP_SECRET: your-secret-hereThis is useful in orchestrated environments where mounting files is inconvenient.
```bash Create a user pullbasectl users create \ --server-url http://localhost:8080 \ --admin-token $ADMIN_JWT \ --new-username ops_user \ --new-password 'StrongPassword!2024' \ --role viewer ```pullbasectl users list \
--server-url http://localhost:8080 \
--admin-token $ADMIN_JWT \
--role admin \
--limit 50- Sign in at
http://localhost:8080(or your production URL with TLS). - Navigate to Settings → Users.
- Use Add user to provision new operators.
- Delete a user by clicking the trash icon and typing the username to confirm.
- Admins/Users: Authenticate with username/password. The server issues JWT access tokens signed with
PULLBASE_JWT_SECRET. - Agents: Authenticate with agent tokens scoped to a single server. Tokens are hashed at rest and shown only once at creation time. Prefixed with
pbt_. - GitHub App: Uses App ID, private key, installation ID, and repository ID to mint short-lived installation tokens for agents.
- API tokens expire based on
PULLBASE_JWT_EXPIRY_HOURS(default 24 hours). - Agent tokens can be set to expire (
--expires-inwhen creating via CLI) or rotated manually.
- The web UI stores the JWT in an HTTP-only cookie.
- Sign out from the avatar menu or let the token expire naturally.
- To revoke all sessions, rotate
PULLBASE_JWT_SECRETand restart Pullbase (forces logout for every user).
| Role | Permissions |
|---|---|
admin |
Full access: manage users, environments, servers, tokens |
user |
Manage environments and servers, view users |
viewer |
Read-only access to all resources |