106 lines
2.3 KiB
Markdown
106 lines
2.3 KiB
Markdown
# Supervisor
|
|
|
|
## Dev setup
|
|
|
|
1. Create a worker group
|
|
|
|
```sh
|
|
api_url=http://localhost:3030
|
|
wg_name=my-worker
|
|
|
|
# edit this
|
|
admin_pat=tr_pat_...
|
|
|
|
curl -sS \
|
|
-X POST \
|
|
"$api_url/admin/api/v1/workers" \
|
|
-H "Authorization: Bearer $admin_pat" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"name\": \"$wg_name\"}"
|
|
```
|
|
|
|
If the worker group is newly created, the response will include a `token` field. If the group already exists, no token is returned.
|
|
|
|
2. Create `.env` and set the worker token
|
|
|
|
```sh
|
|
cp .env.example .env
|
|
|
|
# Then edit your .env and set this to the token.plaintext value
|
|
TRIGGER_WORKER_TOKEN=tr_wgt_...
|
|
```
|
|
|
|
3. Start the supervisor
|
|
|
|
```sh
|
|
pnpm dev
|
|
```
|
|
|
|
4. Build CLI, then deploy a test project
|
|
|
|
```sh
|
|
pnpm exec trigger deploy --self-hosted
|
|
|
|
# The additional network flag is required on linux
|
|
pnpm exec trigger deploy --self-hosted --network host
|
|
```
|
|
|
|
## Worker group management
|
|
|
|
### Shared variables
|
|
|
|
```sh
|
|
api_url=http://localhost:3030
|
|
admin_pat=tr_pat_... # edit this
|
|
```
|
|
|
|
- These are used by all commands
|
|
|
|
### Create a worker group
|
|
|
|
```sh
|
|
wg_name=my-worker
|
|
|
|
curl -sS \
|
|
-X POST \
|
|
"$api_url/admin/api/v1/workers" \
|
|
-H "Authorization: Bearer $admin_pat" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"name\": \"$wg_name\"}"
|
|
```
|
|
|
|
- If the worker group already exists, no token will be returned
|
|
|
|
### Set a worker group as default for a project
|
|
|
|
```sh
|
|
wg_name=my-worker
|
|
project_id=clsw6q8wz...
|
|
|
|
curl -sS \
|
|
-X POST \
|
|
"$api_url/admin/api/v1/workers" \
|
|
-H "Authorization: Bearer $admin_pat" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"name\": \"$wg_name\", \"projectId\": \"$project_id\", \"makeDefaultForProject\": true}"
|
|
```
|
|
|
|
- If the worker group doesn't exist, yet it will be created
|
|
- If the worker group already exists, it will be attached to the project as default. No token will be returned.
|
|
|
|
### Remove the default worker group from a project
|
|
|
|
```sh
|
|
project_id=clsw6q8wz...
|
|
|
|
curl -sS \
|
|
-X POST \
|
|
"$api_url/admin/api/v1/workers" \
|
|
-H "Authorization: Bearer $admin_pat" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"projectId\": \"$project_id\", \"removeDefaultFromProject\": true}"
|
|
```
|
|
|
|
- The project will then use the global default again
|
|
- When `removeDefaultFromProject: true` no other actions will be performed
|