Skip to content

Feat: v4 self-hosting #2155

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 22 commits into from
Jun 6, 2025
Merged

Feat: v4 self-hosting #2155

merged 22 commits into from
Jun 6, 2025

Conversation

nicktrn
Copy link
Collaborator

@nicktrn nicktrn commented Jun 6, 2025

No description provided.

Copy link

changeset-bot bot commented Jun 6, 2025

⚠️ No Changeset found

Latest commit: 64de004

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link
Contributor

coderabbitai bot commented Jun 6, 2025

Walkthrough

This update introduces comprehensive documentation and configuration files to support self-hosting the Trigger.dev platform using Docker Compose. New documentation files provide an overview of self-hosting, detailed Docker Compose setup instructions, and reference tables for environment variables for both the webapp and supervisor containers. The documentation navigation structure is reorganized to separate self-hosting and open source content, with version-specific metadata tags added to relevant documents. The hosting directory receives new Docker Compose files for orchestrating webapp and worker services, supporting components such as PostgreSQL, Redis, ElectricSQL, ClickHouse, MinIO, a Docker registry, and Traefik reverse proxy. Example environment files, configuration overrides, authentication credentials, and .gitignore rules are included to facilitate deployment and configuration. Minor updates and clarifications are also made to existing documentation.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@nicktrn nicktrn marked this pull request as ready for review June 6, 2025 14:04
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (15)
hosting/README.md (1)

1-1: Add pointer to user-facing self-hosting docs
Consider adding a link like “See docs/self-hosting/overview.mdx for setup instructions.”

docker/README.md (1)

3-3: Add missing comma for readability
A comma after “files” clarifies the sentence.

Apply this diff:

- If you're looking for self-hosting files you're in the wrong place. Have a look [here](../hosting/).
+ If you're looking for self-hosting files, you're in the wrong place. Have a look [here](../hosting/).
🧰 Tools
🪛 LanguageTool

[uncategorized] ~3-~3: Possible missing comma found.
Context: ...les If you're looking for self-hosting files you're in the wrong place. Have a look ...

(AI_HYDRA_LEO_MISSING_COMMA)

docs/open-source-self-hosting.mdx (1)

2-4: Clarify version in description
Although the title is updated to "Docker (legacy)", the description frontmatter doesn't specify v3. Consider updating it to reference v3 explicitly for clarity (e.g., "Self-host Trigger.dev v3 using Docker").

docs/github-actions.mdx (1)

133-135: Refine emphasis in tip text
Use lowercase emphasis for "not" instead of uppercase to align with typical doc styling:

- If you're self-hosting v4, the `--self-hosted` and `--push` flags are **NOT** needed.
+ If you're self-hosting v4, the `--self-hosted` and `--push` flags are **not** needed.
docs/self-hosting/env/supervisor.mdx (1)

14-14: Grammar refinement for clarity
Rephrase the description into a complete sentence:

- Managed worker secret. Needs to match webapp value.
+ The managed worker secret must match the webapp value.
docs/self-hosting/env/webapp.mdx (1)

15-15: Improve description consistency
Convert the fragment into a single clear sentence:

- Managed worker secret. Should be changed and match supervisor.
+ The managed worker secret must match the supervisor.
🧰 Tools
🪛 LanguageTool

[style] ~15-~15: To form a complete sentence, be sure to include a subject.
Context: ...-secret | Managed worker secret. Should be changed and match supervisor. | ...

(MISSING_IT_THERE)

docs/self-hosting/overview.mdx (3)

23-23: Missing architecture section diagram
The placeholder at line 23 indicates the architecture diagram is still pending. Please add an updated diagram and accompanying description to guide users on the deployment architecture.


61-61: Clarify OFFLOAD_IO_PACKET_LENGTH_LIMIT
The TODO at line 61 suggests ambiguity around the I/O packet offload limit. Please explain its purpose, default value, and when users should override it.


63-63: Add machine overrides section
A section on machine presets and overrides is still a TODO. Including examples of MACHINE_PRESETS or custom machine configurations would greatly improve usability.

docs/self-hosting/docker.mdx (4)

2-2: Capitalize "Compose" in title
For consistency with the official Docker branding, update the title from "Docker compose" to "Docker Compose".


9-9: Capitalize "Docker Compose" in intro
The introduction refers to "docker compose" in lowercase. Please change it to "Docker Compose" for consistency.


23-31: Link to legacy v3 guide & standardize list style
In the "Comparison with v3" section, consider adding a link to the v3 Docker guide (docs/open-source-self-hosting.mdx) and ensure each bullet begins with a parallel phrase for readability (e.g., all starting with verbs).

🧰 Tools
🪛 LanguageTool

[style] ~28-~28: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... only the network access they need. - No checkpoint support. This was only eve...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[uncategorized] ~29-~29: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...eploy and execute tasks without needing third party services for this. - **Improved CLI com...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


32-38: Fill out placeholder sections
Several TODOs remain (requirements, setup, multiple workers, upgrading from v3). Please provide content for these sections or remove the placeholders before merging.

hosting/docker/docker-compose.yml (2)

171-174: Document production impact of ELECTRIC_INSECURE
The ELECTRIC_INSECURE: true flag disables TLS for ElectricSQL. Clarify that this setting is intended for development only and advise on a secure, TLS-enabled configuration for production.


253-261: Consider enabling TLS resolver in Traefik
The ACME TLS challenge settings in the Traefik command section are commented out. For a production deployment, uncomment and configure the LetsEncrypt resolver to automatically obtain and renew certificates.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2b3d54a and bbee549.

📒 Files selected for processing (18)
  • docker/README.md (1 hunks)
  • docs/cli-preview-archive.mdx (1 hunks)
  • docs/deployment/preview-branches.mdx (1 hunks)
  • docs/docs.json (1 hunks)
  • docs/github-actions.mdx (1 hunks)
  • docs/guides/example-projects/human-in-the-loop-workflow.mdx (1 hunks)
  • docs/guides/example-projects/meme-generator-human-in-the-loop.mdx (1 hunks)
  • docs/limits.mdx (1 hunks)
  • docs/open-source-self-hosting.mdx (1 hunks)
  • docs/self-hosting/docker.mdx (1 hunks)
  • docs/self-hosting/env/supervisor.mdx (1 hunks)
  • docs/self-hosting/env/webapp.mdx (1 hunks)
  • docs/self-hosting/overview.mdx (1 hunks)
  • docs/wait-for-token.mdx (1 hunks)
  • hosting/README.md (1 hunks)
  • hosting/docker/clickhouse/override.xml (1 hunks)
  • hosting/docker/docker-compose.yml (1 hunks)
  • hosting/docker/registry/auth.htpasswd (1 hunks)
🧰 Additional context used
🪛 LanguageTool
docker/README.md

[uncategorized] ~3-~3: Possible missing comma found.
Context: ...les If you're looking for self-hosting files you're in the wrong place. Have a look ...

(AI_HYDRA_LEO_MISSING_COMMA)

docs/self-hosting/env/webapp.mdx

[style] ~15-~15: To form a complete sentence, be sure to include a subject.
Context: ...-secret | Managed worker secret. Should be changed and match supervisor. | ...

(MISSING_IT_THERE)

docs/self-hosting/docker.mdx

[style] ~28-~28: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... only the network access they need. - No checkpoint support. This was only eve...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[uncategorized] ~29-~29: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...eploy and execute tasks without needing third party services for this. - **Improved CLI com...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~90-~90: Do not use an adverb of manner between a verb and its direct object.
Context: ...e AWS SDK. In this scenario, you would likely either supply the additional environmen...

(MD_RB_DT)


[grammar] ~188-~188: The word “opt-out” is a noun. The verb is spelled with a space.
Context: ...ith third parties. If you would like to opt-out of this, you can set the `TRIGGER_TELEM...

(NOUN_VERB_CONFUSION)

🪛 Gitleaks (8.26.0)
hosting/docker/docker-compose.yml

46-46: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

🪛 Checkov (3.2.334)
hosting/docker/docker-compose.yml

[MEDIUM] 29-30: Basic Auth Credentials

(CKV_SECRET_4)

🔇 Additional comments (10)
docs/guides/example-projects/meme-generator-human-in-the-loop.mdx (1)

5-5: Consistent version tagging applied
The addition of tag: "v4" correctly aligns this example with the version-4 documentation set.

docs/guides/example-projects/human-in-the-loop-workflow.mdx (1)

5-5: Consistent version tagging applied
The tag: "v4" frontmatter entry ensures this guide is properly versioned alongside other v4 content.

docs/wait-for-token.mdx (1)

4-4: Consistent version tagging applied
Adding tag: "v4" maintains uniform version metadata across waitpoint token docs.

docs/cli-preview-archive.mdx (1)

5-5: Consistent version tagging applied
The tag: "v4" metadata correctly marks this CLI reference as part of the v4 release documentation.

docs/deployment/preview-branches.mdx (1)

4-4: Add version tag 'v4' to metadata
Aligns this documentation with other v4-specific docs.

hosting/docker/clickhouse/override.xml (1)

1-21: Approve ClickHouse logging override configuration
The <level>warning</level> is a reasonable default and the inline comment links to the Poco Logger docs for reference.

docs/open-source-self-hosting.mdx (1)

6-6: Validate the v4 guide link
The tip points to /self-hosting/docker for the v4 guide. Please verify that the v4 documentation is published at that exact path and that the link resolves correctly.

docs/self-hosting/env/supervisor.mdx (1)

1-7: Frontmatter configuration is correct
The metadata (title, description, sidebarTitle, tag, mode) aligns with v4 documentation standards and uses mode: "wide" appropriately for the table.

docs/self-hosting/env/webapp.mdx (1)

1-7: Frontmatter metadata is well-structured
The title, description, sidebarTitle, tag, and mode set up the webapp env vars guide correctly under the v4 self-hosting section.

hosting/docker/docker-compose.yml (1)

5-6: Default image tag inconsistent with docs
The compose file falls back to main for the webapp and supervisor images, but the documentation specifies using the v4-beta tag by default. Update both fallbacks to ${TRIGGER_IMAGE_TAG:-v4-beta} to align with the docs.

Also applies to: 63-64

Likely an incorrect or invalid review comment.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (6)
docs/self-hosting/env/webapp.mdx (1)

15-15: Clarify description for MANAGED_WORKER_SECRET
Use a complete sentence for clarity.

- | `MANAGED_WORKER_SECRET`                        | No       | managed-secret        | Managed worker secret. Should be changed and match supervisor.
+ | `MANAGED_WORKER_SECRET`                        | No       | managed-secret        | Managed worker secret. This secret should be changed to match the supervisor.
🧰 Tools
🪛 LanguageTool

[style] ~15-~15: To form a complete sentence, be sure to include a subject.
Context: ...-secret | Managed worker secret. Should be changed and match supervisor. ...

(MISSING_IT_THERE)

hosting/docker/docker-compose.worker.yml (1)

1-2: Specify Compose file version
Explicitly adding a version: "3.9" (or later) field at the top improves compatibility and clarity.

+version: "3.9"
 name: trigger
docs/self-hosting/overview.mdx (1)

23-23: Implement Architecture section
Replace the TODO placeholder with an actual architecture diagram and accompanying explanation to give readers a visual overview.

Would you like help generating a draft diagram and MDX embed?

docs/self-hosting/docker.mdx (3)

24-24: Hyphenate compound adjective
Change "third party services" to "third-party services".

- You can now deploy and execute tasks without needing third party services for this.
+ You can now deploy and execute tasks without needing third-party services for this.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~24-~24: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...eploy and execute tasks without needing third party services for this. - **Improved CLI com...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


50-50: Remove unnecessary "of"
For conciseness, change "all of the runs" to "all the runs".

- This will host the supervisor and all of the runs.
+ This will host the supervisor and all the runs.
🧰 Tools
🪛 LanguageTool

[style] ~50-~50: Consider removing “of” to be more concise
Context: ...rker This will host the supervisor and all of the runs. - 2+ vCPU - 4+ GB RAM How many ...

(ALL_OF_THE)


292-292: Use verb form "opt out"
When used as a verb, "opt out" should be two words.

- If you would like to opt-out of this, you can set the `TRIGGER_TELEMETRY_DISABLED` environment variable...
+ If you would like to opt out of this, you can set the `TRIGGER_TELEMETRY_DISABLED` environment variable...
🧰 Tools
🪛 LanguageTool

[grammar] ~292-~292: The word “opt-out” is a noun. The verb is spelled with a space.
Context: ...ith third parties. If you would like to opt-out of this, you can set the `TRIGGER_TELEM...

(NOUN_VERB_CONFUSION)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bbee549 and 4f7d1e8.

📒 Files selected for processing (7)
  • docs/docs.json (1 hunks)
  • docs/self-hosting/docker.mdx (1 hunks)
  • docs/self-hosting/env/webapp.mdx (1 hunks)
  • docs/self-hosting/overview.mdx (1 hunks)
  • hosting/docker/docker-compose.traefik.yml (1 hunks)
  • hosting/docker/docker-compose.webapp.yml (1 hunks)
  • hosting/docker/docker-compose.worker.yml (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • hosting/docker/docker-compose.traefik.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/docs.json
🧰 Additional context used
🪛 Checkov (3.2.334)
hosting/docker/docker-compose.webapp.yml

[MEDIUM] 28-29: Basic Auth Credentials

(CKV_SECRET_4)

🪛 LanguageTool
docs/self-hosting/docker.mdx

[uncategorized] ~24-~24: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...eploy and execute tasks without needing third party services for this. - **Improved CLI com...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[style] ~50-~50: Consider removing “of” to be more concise
Context: ...rker This will host the supervisor and all of the runs. - 2+ vCPU - 4+ GB RAM How many ...

(ALL_OF_THE)


[grammar] ~194-~194: Do not use an adverb of manner between a verb and its direct object.
Context: ...e AWS SDK. In this scenario, you would likely either supply the additional environmen...

(MD_RB_DT)


[grammar] ~292-~292: The word “opt-out” is a noun. The verb is spelled with a space.
Context: ...ith third parties. If you would like to opt-out of this, you can set the `TRIGGER_TELEM...

(NOUN_VERB_CONFUSION)

docs/self-hosting/env/webapp.mdx

[style] ~15-~15: To form a complete sentence, be sure to include a subject.
Context: ...-secret | Managed worker secret. Should be changed and match supervisor. ...

(MISSING_IT_THERE)

⏰ Context from checks skipped due to timeout of 90000ms (25)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (10, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (9, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (8, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (7, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (6, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (5, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (4, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (3, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (2, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (1, 10)
  • GitHub Check: units / packages / 🧪 Unit Tests: Packages (1, 1)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (8, 8)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (7, 8)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (6, 8)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (5, 8)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (4, 8)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (3, 8)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (2, 8)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (1, 8)
  • GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - pnpm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - npm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (ubuntu-latest - pnpm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (ubuntu-latest - npm)
  • GitHub Check: typecheck / typecheck
  • GitHub Check: Analyze (javascript-typescript)

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (8)
docs/self-hosting/env/webapp.mdx (4)

7-7: Add a reference to the example env file and Compose file. Consider linking to the .env.example and docker-compose.webapp.yml in the repository for quick navigation.


11-14: Clarify the managed worker secret description. The sentence fragment “Managed worker secret. Should be changed and match supervisor.” is incomplete. For example, combine into:
Managed worker secret; it should be changed and match the supervisor.

🧰 Tools
🪛 LanguageTool

[style] ~14-~14: To form a complete sentence, be sure to include a subject.
Context: ...-secret | Managed worker secret. Should be changed and match supervisor. ...

(MISSING_IT_THERE)


19-21: Clarify default variable references. The defaults for API_ORIGIN and STREAM_ORIGIN reference APP_ORIGIN. Consider adding a note explaining precedence or how overriding works.


128-134: Ensure consistent punctuation. Several descriptions (e.g., for MACHINE_PRESETS_OVERRIDE_PATH and ADMIN_EMAILS) lack terminal periods. Consider adding periods for uniformity.

docs/self-hosting/docker.mdx (4)

6-12: Introduce an admonition block for warnings. Instead of inline bold, consider using Docusaurus's warning/admonition syntax for “Warning: This guide alone...”.


16-26: Typo: hyphenate ‘third-party’. In the “Built-in container registry and object storage” bullet, change “third party services” to “third-party services.”

🧰 Tools
🪛 LanguageTool

[uncategorized] ~23-~23: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...eploy and execute tasks without needing third party services for this. - **Improved CLI com...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


102-109: DRY: Combine duplicate clone and env steps. The worker section repeats steps identical to the webapp. Consider a shared “Clone & .env setup” subsection.


291-291: Verb usage: ‘opt out’ not ‘opt-out’. Change to “opt out of this” when used as a verb.

🧰 Tools
🪛 LanguageTool

[grammar] ~291-~291: The word “opt-out” is a noun. The verb is spelled with a space.
Context: ...ith third parties. If you would like to opt-out of this, you can set the `TRIGGER_TELEM...

(NOUN_VERB_CONFUSION)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4f7d1e8 and debab2a.

📒 Files selected for processing (5)
  • docs/docs.json (1 hunks)
  • docs/self-hosting/docker.mdx (1 hunks)
  • docs/self-hosting/env/supervisor.mdx (1 hunks)
  • docs/self-hosting/env/webapp.mdx (1 hunks)
  • docs/self-hosting/overview.mdx (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • docs/self-hosting/env/supervisor.mdx
🚧 Files skipped from review as they are similar to previous changes (2)
  • docs/docs.json
  • docs/self-hosting/overview.mdx
🧰 Additional context used
🪛 LanguageTool
docs/self-hosting/docker.mdx

[uncategorized] ~23-~23: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...eploy and execute tasks without needing third party services for this. - **Improved CLI com...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[style] ~49-~49: Consider removing “of” to be more concise
Context: ...rker This will host the supervisor and all of the runs. - 2+ vCPU - 4+ GB RAM How many ...

(ALL_OF_THE)


[grammar] ~193-~193: Do not use an adverb of manner between a verb and its direct object.
Context: ...e AWS SDK. In this scenario, you would likely either supply the additional environmen...

(MD_RB_DT)


[grammar] ~291-~291: The word “opt-out” is a noun. The verb is spelled with a space.
Context: ...ith third parties. If you would like to opt-out of this, you can set the `TRIGGER_TELEM...

(NOUN_VERB_CONFUSION)

docs/self-hosting/env/webapp.mdx

[style] ~14-~14: To form a complete sentence, be sure to include a subject.
Context: ...-secret | Managed worker secret. Should be changed and match supervisor. ...

(MISSING_IT_THERE)

⏰ Context from checks skipped due to timeout of 90000ms (28)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (10, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (9, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (8, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (7, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (6, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (5, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (8, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (4, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (7, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (3, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (6, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (2, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (5, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (1, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (4, 8)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (3, 8)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (2, 8)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (1, 8)
  • GitHub Check: units / packages / 🧪 Unit Tests: Packages (1, 1)
  • GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - pnpm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - npm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (ubuntu-latest - pnpm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (ubuntu-latest - npm)
  • GitHub Check: typecheck / typecheck
  • GitHub Check: Analyze (python)
  • GitHub Check: Analyze (javascript-typescript)
  • GitHub Check: Analyze (actions)
  • GitHub Check: Mintlify Deployment
🔇 Additional comments (22)
docs/self-hosting/env/webapp.mdx (2)

1-6: Frontmatter is correct. Title, description, sidebarTitle, and mode align with Docusaurus conventions.


8-9: Table header formatting is valid Markdown. The columns are well-aligned and readable.

docs/self-hosting/docker.mdx (20)

1-4: Frontmatter is valid. Title, description, and section metadata follow project standards.


35-39: Requirements list is clear. Specified Docker and Compose versions meet minimums.


40-46: Webapp hardware section is concise. CPU and RAM recommendations are clear.


47-53: Worker hardware section is concise. CPU and RAM recommendations are clear.

🧰 Tools
🪛 LanguageTool

[style] ~49-~49: Consider removing “of” to be more concise
Context: ...rker This will host the supervisor and all of the runs. - 2+ vCPU - 4+ GB RAM How many ...

(ALL_OF_THE)


56-64: Usage examples are accurate. The concurrency math matches the specs.


69-78: Setup instructions for webapp are straightforward. Cloning and .env steps are well-explained.


82-93: Docker Compose commands are correct. Starting the webapp (with optional Traefik) is covered properly.


115-125: Worker Compose command is valid. Starting the worker is correctly documented.


143-153: Version locking guidance is clear. Instructions for overriding TRIGGER_IMAGE_TAG are well-documented.


155-163: Authentication overview is complete. Magic link default behavior and transport options are introduced correctly.


163-170: Resend & SMTP code snippets are helpful. Example environment variables are clear.


172-179: SMTP details are accurate. STARTTLS vs implicit TLS is well explained.


189-196: AWS SES snippet is straightforward. Credentials instructions are correct.

🧰 Tools
🪛 LanguageTool

[grammar] ~193-~193: Do not use an adverb of manner between a verb and its direct object.
Context: ...e AWS SDK. In this scenario, you would likely either supply the additional environmen...

(MD_RB_DT)


201-208: GitHub OAuth section is clear. Callback URL guidance and env vars are correct.


210-217: Restricting access is clear. The regex example for WHITELISTED_EMAILS is helpful.


221-233: CLI login instructions are precise. npx usage with --api-url is accurate.


235-242: Profile management examples are useful. The multiline command is formatted properly.


244-252: Profile commands are comprehensive. list-profiles, logout, and switch are covered.


274-280: whoami usage is correct. Shows API URL and confirms login.


283-286: CI authentication is well documented. TRIGGER_API_URL and TRIGGER_ACCESS_TOKEN guidance is precise.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (8)
hosting/docker/worker/docker-compose.yml (1)

1-2: Consider adding an explicit Compose version. The file omits a version field, relying on CLI defaults. For clarity and compatibility, you can add:

version: "3.9"

at the top.

hosting/docker/webapp/docker-compose.yml (1)

31-41: Add placeholder for disabling telemetry. The docs mention TRIGGER_TELEMETRY_DISABLED, but the webapp service lacks this variable. Add a commented-out placeholder for consistency:

 services:
   webapp:
     environment:
+      # TRIGGER_TELEMETRY_DISABLED: 1
🧰 Tools
🪛 Checkov (3.2.334)

[MEDIUM] 31-32: Basic Auth Credentials

(CKV_SECRET_4)

docs/self-hosting/docker.mdx (6)

23-23: Hyphenate compound adjective. Replace "third party services" with "third-party services" for grammatical accuracy.

- without needing third party services for this.
+ without needing third-party services for this.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~23-~23: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...eploy and execute tasks without needing third party services for this. - **Improved CLI com...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


48-48: Remove superfluous word for conciseness. Change "all of the runs" to "all the runs".

- This will host the supervisor and all of the runs.
+ This will host the supervisor and all the runs.

197-197: Streamline wording by removing adverb. Consider removing "likely" for clarity:

- In this scenario, you would likely either supply the additional environment variables...
+ In this scenario, you would either supply the additional environment variables...
🧰 Tools
🪛 LanguageTool

[grammar] ~197-~197: Do not use an adverb of manner between a verb and its direct object.
Context: ...e AWS SDK. In this scenario, you would likely either supply the additional environmen...

(MD_RB_DT)


237-237: Vary phrasing for readability. Replace "You probably need" with "You may need":

- You probably need to set up an email transport.
+ You may need to set up an email transport.
🧰 Tools
🪛 LanguageTool

[style] ~237-~237: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...to be able to send emails. You probably need to set up an email transport. See the [aut...

(REP_NEED_TO_VB)


247-247: Vary phrasing to reduce repetition. Replace "you need to specify" with "specify":

- when using the CLI, you need to specify the URL of your self-hosted instance...
+ when using the CLI, specify the URL of your self-hosted instance...
🧰 Tools
🪛 LanguageTool

[style] ~247-~247: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ud.trigger.dev) when using the CLI, you need to specify the URL of your self-hosted ins...

(REP_NEED_TO_VB)


311-312: Correct verb usage. Use "opt out" (verb) instead of the noun "opt-out":

- If you would like to opt-out of this, you can set the `TRIGGER_TELEMETRY_DISABLED`...
+ If you would like to opt out of this, you can set the `TRIGGER_TELEMETRY_DISABLED`...
🧰 Tools
🪛 LanguageTool

[grammar] ~311-~311: The word “opt-out” is a noun. The verb is spelled with a space.
Context: ...ith third parties. If you would like to opt-out of this, you can set the `TRIGGER_TELEM...

(NOUN_VERB_CONFUSION)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between debab2a and a73208d.

📒 Files selected for processing (9)
  • docs/self-hosting/docker.mdx (1 hunks)
  • hosting/docker/.env.example (1 hunks)
  • hosting/docker/docker-compose.traefik.yml (1 hunks)
  • hosting/docker/webapp/.env (1 hunks)
  • hosting/docker/webapp/.gitignore (1 hunks)
  • hosting/docker/webapp/docker-compose.yml (1 hunks)
  • hosting/docker/worker/.env (1 hunks)
  • hosting/docker/worker/.gitignore (1 hunks)
  • hosting/docker/worker/docker-compose.yml (1 hunks)
✅ Files skipped from review due to trivial changes (4)
  • hosting/docker/webapp/.env
  • hosting/docker/worker/.gitignore
  • hosting/docker/worker/.env
  • hosting/docker/webapp/.gitignore
🚧 Files skipped from review as they are similar to previous changes (1)
  • hosting/docker/docker-compose.traefik.yml
🧰 Additional context used
🪛 LanguageTool
docs/self-hosting/docker.mdx

[uncategorized] ~23-~23: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...eploy and execute tasks without needing third party services for this. - **Improved CLI com...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[style] ~49-~49: Consider removing “of” to be more concise
Context: ...rker This will host the supervisor and all of the runs. - 2+ vCPU - 4+ GB RAM How many ...

(ALL_OF_THE)


[grammar] ~197-~197: Do not use an adverb of manner between a verb and its direct object.
Context: ...e AWS SDK. In this scenario, you would likely either supply the additional environmen...

(MD_RB_DT)


[style] ~237-~237: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...to be able to send emails. You probably need to set up an email transport. See the [aut...

(REP_NEED_TO_VB)


[style] ~247-~247: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ud.trigger.dev) when using the CLI, you need to specify the URL of your self-hosted ins...

(REP_NEED_TO_VB)


[grammar] ~311-~311: The word “opt-out” is a noun. The verb is spelled with a space.
Context: ...ith third parties. If you would like to opt-out of this, you can set the `TRIGGER_TELEM...

(NOUN_VERB_CONFUSION)

🪛 Gitleaks (8.26.0)
hosting/docker/.env.example

5-5: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)


7-7: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

🪛 Checkov (3.2.334)
hosting/docker/webapp/docker-compose.yml

[MEDIUM] 31-32: Basic Auth Credentials

(CKV_SECRET_4)

⏰ Context from checks skipped due to timeout of 90000ms (25)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (10, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (9, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (8, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (7, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (8, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (6, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (5, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (7, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (4, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (3, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (6, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (2, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (5, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (1, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (4, 8)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (3, 8)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (2, 8)
  • GitHub Check: units / packages / 🧪 Unit Tests: Packages (1, 1)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (1, 8)
  • GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - pnpm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - npm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (ubuntu-latest - pnpm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (ubuntu-latest - npm)
  • GitHub Check: typecheck / typecheck
  • GitHub Check: Analyze (javascript-typescript)
🔇 Additional comments (1)
hosting/docker/webapp/docker-compose.yml (1)

145-151: Ensure auth.htpasswd contains secure credentials. The registry mounts ../registry/auth.htpasswd. Confirm that this file either contains hashed, generated credentials or is not committed; instruct users to generate it via htpasswd -B -c auth.htpasswd registry-user.

Consider documenting the generation step in .env.example or the self-hosting docs.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
docs/self-hosting/docker.mdx (1)

151-153: Compose file ordering is correct
The multi--f invocation before up -d matches the fix from the previous review. No further action needed here.

🧹 Nitpick comments (8)
docs/self-hosting/docker.mdx (8)

23-23: Hyphenate compound adjective
The phrase “third party services” should be hyphenated when used as a compound adjective.

- without needing third party services for this
+ without needing third-party services for this
🧰 Tools
🪛 LanguageTool

[uncategorized] ~23-~23: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...eploy and execute tasks without needing third party services for this. - **Improved CLI com...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


49-49: Remove unnecessary “of”
In the sentence “host the supervisor and all of the runs,” the word “of” is superfluous. Consider simplifying to:

- supervisor and all of the runs
+ supervisor and all runs
🧰 Tools
🪛 LanguageTool

[style] ~49-~49: Consider removing “of” to be more concise
Context: ...rker This will host the supervisor and all of the runs. - 2+ vCPU - 4+ GB RAM How many ...

(ALL_OF_THE)


69-74: Avoid redundant repository clones
The Webapp and Worker sections both instruct users to clone the repo separately. To streamline onboarding, you could note that the same clone can be reused (or mention opening a new terminal) instead of repeating the git clone steps.


205-205: Reword adverb placement for clarity
Move “either” to follow the verb to avoid splitting it from its object.

- you would likely either supply the additional environment variables
+ you would likely supply either the additional environment variables
🧰 Tools
🪛 LanguageTool

[grammar] ~205-~205: Do not use an adverb of manner between a verb and its direct object.
Context: ...e AWS SDK. In this scenario, you would likely either supply the additional environmen...

(MD_RB_DT)


245-245: Vary phrasing to avoid repetition
Consider rephrasing “You probably need to set up an email transport.” for variety, e.g.:

- You probably need to set up an email transport.
+ Ensure you configure an email transport to send magic links.
🧰 Tools
🪛 LanguageTool

[style] ~245-~245: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...to be able to send emails. You probably need to set up an email transport. See the [aut...

(REP_NEED_TO_VB)


255-255: Vary phrasing to avoid repetition
The sentence “you need to specify the URL of your self-hosted instance” appears similar to earlier usage. You could streamline it to:

- you need to specify the URL of your self-hosted instance with the `--api-url` or `-a` flag.
+ specify the URL of your self-hosted instance using the `--api-url` (or `-a`) flag.
🧰 Tools
🪛 LanguageTool

[style] ~255-~255: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ud.trigger.dev) when using the CLI, you need to specify the URL of your self-hosted ins...

(REP_NEED_TO_VB)


247-247: Use consistent logging command
For consistency with other instructions, prefer:

- docker logs -f trigger-webapp-1
+ docker compose logs -f webapp

319-319: Use verb form “opt out”
“opt-out” is a noun; use the verb form here:

- If you would like to opt-out of this, you can set the `TRIGGER_TELEMETRY_DISABLED` environment variable
+ If you would like to opt out of this, you can set the `TRIGGER_TELEMETRY_DISABLED` environment variable
🧰 Tools
🪛 LanguageTool

[grammar] ~319-~319: The word “opt-out” is a noun. The verb is spelled with a space.
Context: ...ith third parties. If you would like to opt-out of this, you can set the `TRIGGER_TELEM...

(NOUN_VERB_CONFUSION)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a73208d and 64de004.

📒 Files selected for processing (2)
  • .cursorignore (1 hunks)
  • docs/self-hosting/docker.mdx (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .cursorignore
🧰 Additional context used
🪛 LanguageTool
docs/self-hosting/docker.mdx

[uncategorized] ~23-~23: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...eploy and execute tasks without needing third party services for this. - **Improved CLI com...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[style] ~49-~49: Consider removing “of” to be more concise
Context: ...rker This will host the supervisor and all of the runs. - 2+ vCPU - 4+ GB RAM How many ...

(ALL_OF_THE)


[grammar] ~205-~205: Do not use an adverb of manner between a verb and its direct object.
Context: ...e AWS SDK. In this scenario, you would likely either supply the additional environmen...

(MD_RB_DT)


[style] ~245-~245: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...to be able to send emails. You probably need to set up an email transport. See the [aut...

(REP_NEED_TO_VB)


[style] ~255-~255: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ud.trigger.dev) when using the CLI, you need to specify the URL of your self-hosted ins...

(REP_NEED_TO_VB)


[grammar] ~319-~319: The word “opt-out” is a noun. The verb is spelled with a space.
Context: ...ith third parties. If you would like to opt-out of this, you can set the `TRIGGER_TELEM...

(NOUN_VERB_CONFUSION)

⏰ Context from checks skipped due to timeout of 90000ms (27)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (10, 10)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (9, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (8, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (8, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (7, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (7, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (6, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (6, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (5, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (5, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (4, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (4, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (3, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (3, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (2, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (2, 10)
  • GitHub Check: units / internal / 🧪 Unit Tests: Internal (1, 8)
  • GitHub Check: units / webapp / 🧪 Unit Tests: Webapp (1, 10)
  • GitHub Check: units / packages / 🧪 Unit Tests: Packages (1, 1)
  • GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - pnpm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (windows-latest - npm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (ubuntu-latest - pnpm)
  • GitHub Check: e2e / 🧪 CLI v3 tests (ubuntu-latest - npm)
  • GitHub Check: typecheck / typecheck
  • GitHub Check: Analyze (python)
  • GitHub Check: Analyze (javascript-typescript)
  • GitHub Check: Analyze (actions)

@nicktrn nicktrn merged commit 7a34c11 into main Jun 6, 2025
23 of 32 checks passed
@nicktrn nicktrn deleted the v4/self-hosting branch June 6, 2025 23:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants