Skip to content

doc: add instructions to create new reference project and run it locally #1417

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Oct 18, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions references/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,85 @@ All the dependencies to the `@trigger.dev/*` packages will be both referenced in
}
}
```

### Creating a New Reference Project

This guide assumes that you have followed the [Contributing.md](https://github.com/triggerdotdev/trigger.dev/blob/main/CONTRIBUTING.md#setup) instructions to set up a local trigger.dev instance. If not, please complete the setup before continuing.

#### Step-by-Step Instructions

1. **Run an HTTP tunnel**:
You will need to run an HTTP tunnel to expose your local webapp, it is required for some API calls during building the image to deploy on your local instance. This is *optional* if you do not plan to test deployment on your local instance.
- Download the ngrok CLI. This can be done by following the instructions on ngrok's [website](https://ngrok.com/docs/getting-started/).
- Create an account on ngrok to obtain the authtoken and add it to the CLI.

```bash
ngrok config add-authtoken <your-auth-token>
```
Replace the <your-auth-token> with the token you obtain from ngrok.
- Run the tunnel.

```bash
ngrok http <your-app-port>
```
Replace the <your-app-port> with the webapp port, default is `3030`.

2. **Add your tunnel URL to the env**:
After running the ngrok tunnel, you will see URL in your terminal, it will look something like `https://<your-tunnel-address>.ngrok-free.app`.
Replace the `APP_ORIGIN` variable with this URL in your `.env` file in the root of the trigger.dev project.

3. **Run the webapp on localhost**:

```bash
pnpm run dev --filter webapp --filter coordinator --filter docker-provider
```

4. **Build the CLI in a new terminal window**:

```bash
# Build the CLI
pnpm run build --filter trigger.dev

# Make it accessible to `pnpm exec`
pnpm i
```

5. **Set up a new project in the webapp**:
- Open the webapp running on `localhost:3030`.
- Create a new project in the webapp UI.
- Go to the *Project Settings* page and copy the project reference id from there.

6. **Copy the hello-world project as a template**:

```bash
cp -r references/hello-world references/<new-project>
```

Replace `<new-project>` with your desired project name.

7. **Update project details**:
- Open `<new-project>/package.json` and change the name field.
*(Tip: Use the same name as in the webapp to avoid confusion.)*

- Open `<new-project>/trigger.config.ts` and update the project field with the project reference you copied from the webapp.

- Run `pnpm i` in your `<new-project>` directory to sync the dependencies.

8. **Authorize the CLI for your project**:

```bash
pnpm exec trigger login -a http://localhost:3030 --profile local
```

9. **Run the new project**:
You can now run your project using the CLI with the following command:

```bash
pnpm exec trigger dev --profile local
```

You can also deploy them against your local instance with the following command:

```bash
pnpm exec trigger deploy --self-hosted --load-image --profile local
```