Skip to content

docs: align self-hosting docs for Formbricks v5#7906

Merged
BhagyaAmarasinghe merged 4 commits into
epic/v5from
doc/self-hosting-migration-guide
May 5, 2026
Merged

docs: align self-hosting docs for Formbricks v5#7906
BhagyaAmarasinghe merged 4 commits into
epic/v5from
doc/self-hosting-migration-guide

Conversation

@BhagyaAmarasinghe
Copy link
Copy Markdown
Contributor

@BhagyaAmarasinghe BhagyaAmarasinghe commented Apr 29, 2026

Summary

This updates the self-hosting docs set for the Formbricks v5 upgrade path.

  • rewrites the v5 migration section into a full upgrade guide for one-click, Docker Compose, and Kubernetes deployments
  • documents Hub as part of the required v5 self-hosted runtime
  • clarifies that Cube is feature-scoped for analytics and analysis flows rather than a blanket runtime dependency
  • aligns the setup and configuration pages with the current Docker Compose, Helm, and Envoy behavior
  • fixes a stale migration-doc anchor that pointed at a non-existent Docker page heading

Fixes ENG-757

Why

The existing self-hosting docs only covered the v5 rate-limiting change and did not explain the full upgrade contract around Hub, AI configuration, Cube scope, or the current Kubernetes deployment path.

Impact

Self-hosters upgrading from Formbricks 4.x should now have one canonical migration guide plus consistent support pages instead of conflicting setup instructions.

Validation

  • reviewed the edited docs for contradictions against the current deployment assets in docker/docker-compose.yml, .env.example, and charts/formbricks
  • ran git diff --check
  • checked updated internal self-hosting links and anchors statically

Notes

  • mintlify dev was not run because the Mintlify CLI is not installed in this environment

@BhagyaAmarasinghe BhagyaAmarasinghe changed the base branch from main to epic/v5 April 29, 2026 04:07
@BhagyaAmarasinghe BhagyaAmarasinghe force-pushed the doc/self-hosting-migration-guide branch from 335dfae to 276ab06 Compare April 29, 2026 04:11
@BhagyaAmarasinghe BhagyaAmarasinghe marked this pull request as ready for review April 29, 2026 04:51
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 29, 2026

Walkthrough

The documentation has been updated to reflect Formbricks v5 self-hosting requirements and capabilities. Changes include a new migration guide detailing runtime-contract requirements (Hub bundling, edge rate limiting, environment variable configurations), updates to rate-limiting documentation with migration links, and refined environment variable documentation for v5 behavior. Deployment-specific guides (Docker, Kubernetes, cluster, one-click) have been revised to document Hub as mandatory, Cube as optional, edge rate-limiting requirements, and include v4→v5 upgrade workflows. Configuration sections have been updated to reflect new default values and consolidated dependencies across distributed deployments.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The PR description provides a clear summary, rationale, impact, and validation steps, though it lacks specific testing instructions and omits required checklist items. Add a 'How should this be tested?' section with specific steps to verify the documentation changes, and complete the required checklist items from the template.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: aligning self-hosting documentation for Formbricks v5, which directly matches the substantial documentation updates across migration, setup, and configuration pages.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/self-hosting/configuration/environment-variables.mdx`:
- Around line 111-112: Update the table row for HUB_API_URL so the default
column reflects the bundled Docker stack value (http://hub:8080) to match the
description and the Docker setup guidance; keep the description text about using
http://hub:8080 for the bundled stack and, if helpful, add a short parenthetical
or secondary example in the default or notes to show the local dev alternative
(http://localhost:8080) while ensuring the primary default shown is
http://hub:8080.

In `@docs/self-hosting/setup/kubernetes.mdx`:
- Around line 120-136: The phrase "confirm all of the following before running
the upgrade:" is wordy; update the text under "## 4. Upgrade The Deployment" to
instead read "confirm the following before running the upgrade:" and keep the
bulleted list as-is so the heading and checklist remain clear and concise.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 21af729b-f6e4-4ea6-a933-adf4a12ff460

📥 Commits

Reviewing files that changed from the base of the PR and between a862b73 and 276ab06.

📒 Files selected for processing (7)
  • docs/self-hosting/advanced/migration.mdx
  • docs/self-hosting/advanced/rate-limiting.mdx
  • docs/self-hosting/configuration/environment-variables.mdx
  • docs/self-hosting/setup/cluster-setup.mdx
  • docs/self-hosting/setup/docker.mdx
  • docs/self-hosting/setup/kubernetes.mdx
  • docs/self-hosting/setup/one-click.mdx

Comment on lines +111 to +112
| HUB_API_KEY | API key used by the Formbricks Hub API. Generate a strong secret and use the same value wherever your deployment supplies Hub auth configuration. | required | (e.g. `openssl rand -hex 32`) |
| HUB_API_URL | Base URL the Formbricks app uses to call Hub. With the bundled Docker stack, keep this at `http://hub:8080` unless Hub runs elsewhere. | required | `http://localhost:8080` in local dev |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Clarify HUB_API_URL default value for consistency.

The default column shows http://localhost:8080 for local dev, but the description says to keep it at http://hub:8080 for the bundled Docker stack. Consider updating the default column to explicitly show http://hub:8080 for Docker/production deployments to match the guidance in docs/self-hosting/setup/docker.mdx (lines 108-109) which states the bundled stack sets HUB_API_URL to http://hub:8080.

📝 Suggested clarification
-| HUB_API_URL      | Base URL the Formbricks app uses to call Hub. With the bundled Docker stack, keep this at `http://hub:8080` unless Hub runs elsewhere.             | required | `http://localhost:8080` in local dev                |
+| HUB_API_URL      | Base URL the Formbricks app uses to call Hub. With the bundled Docker stack, keep this at `http://hub:8080` unless Hub runs elsewhere.             | required | `http://hub:8080` (bundled Docker), `http://localhost:8080` (local dev) |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| HUB_API_KEY | API key used by the Formbricks Hub API. Generate a strong secret and use the same value wherever your deployment supplies Hub auth configuration. | required | (e.g. `openssl rand -hex 32`) |
| HUB_API_URL | Base URL the Formbricks app uses to call Hub. With the bundled Docker stack, keep this at `http://hub:8080` unless Hub runs elsewhere. | required | `http://localhost:8080` in local dev |
| HUB_API_KEY | API key used by the Formbricks Hub API. Generate a strong secret and use the same value wherever your deployment supplies Hub auth configuration. | required | (e.g. `openssl rand -hex 32`) |
| HUB_API_URL | Base URL the Formbricks app uses to call Hub. With the bundled Docker stack, keep this at `http://hub:8080` unless Hub runs elsewhere. | required | `http://hub:8080` (bundled Docker), `http://localhost:8080` (local dev) |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/configuration/environment-variables.mdx` around lines 111 -
112, Update the table row for HUB_API_URL so the default column reflects the
bundled Docker stack value (http://hub:8080) to match the description and the
Docker setup guidance; keep the description text about using http://hub:8080 for
the bundled stack and, if helpful, add a short parenthetical or secondary
example in the default or notes to show the local dev alternative
(http://localhost:8080) while ensuring the primary default shown is
http://hub:8080.

Comment on lines +120 to +136
## 4. Upgrade The Deployment

For normal chart upgrades:

### Enabling Autoscaling
```sh
helm upgrade formbricks oci://ghcr.io/formbricks/helm-charts/formbricks -n formbricks --set autoscaling.enabled=true --set autoscaling.minReplicas=3 --set autoscaling.maxReplicas=10
helm upgrade formbricks oci://ghcr.io/formbricks/helm-charts/formbricks \
-n formbricks \
-f values.yaml
```

---
For a Formbricks 4.x to 5.0 migration, confirm all of the following before running the upgrade:

## 5. Key Configuration Values
- Hub remains enabled
- `HUB_API_KEY` is present
- your edge rate-limiting plan is in place
- any required `AI_*` variables are added
- Cube is configured only if this instance needs analytics dashboards or analysis queries
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Consider minor wording improvement.

The static analysis suggests simplifying "all of the following" to "the following" for conciseness.

📝 Optional style improvement
-For a Formbricks 4.x to 5.0 migration, confirm all of the following before running the upgrade:
+For a Formbricks 4.x to 5.0 migration, confirm the following before running the upgrade:
🧰 Tools
🪛 LanguageTool

[style] ~130-~130: Consider removing “of” to be more concise
Context: ...ormbricks 4.x to 5.0 migration, confirm all of the following before running the upgrade: ...

(ALL_OF_THE)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/self-hosting/setup/kubernetes.mdx` around lines 120 - 136, The phrase
"confirm all of the following before running the upgrade:" is wordy; update the
text under "## 4. Upgrade The Deployment" to instead read "confirm the following
before running the upgrade:" and keep the bulleted list as-is so the heading and
checklist remain clear and concise.

@jobenjada jobenjada self-requested a review April 29, 2026 08:08
@jobenjada
Copy link
Copy Markdown
Member

I think this should also include a pointer to the MinIO -> RustFS change, right?

@jobenjada jobenjada removed their request for review April 29, 2026 08:50
@Dhruwang Dhruwang removed their request for review April 29, 2026 10:19
Copy link
Copy Markdown
Contributor

@xernobyl xernobyl left a comment

Choose a reason for hiding this comment

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

LGTM but fix conflict

@BhagyaAmarasinghe BhagyaAmarasinghe force-pushed the doc/self-hosting-migration-guide branch from e351912 to a7c8e1a Compare May 5, 2026 07:20
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 5, 2026

🚨 PR Size Warning

This PR has approximately 960 lines of changes (585 additions, 375 deletions across 7 files).

Large PRs (>800 lines) are significantly harder to review and increase the chance of merge conflicts. Consider splitting this into smaller, self-contained PRs.

💡 Suggestions:

  • Split by feature or module - Break down into logical, independent pieces
  • Create a sequence of PRs - Each building on the previous one
  • Branch off PR branches - Don't wait for reviews to continue dependent work

📊 What was counted:

  • ✅ Source files, stylesheets, configuration files
  • ❌ Excluded 0 files (tests, locales, locks, generated files)

📚 Guidelines:

  • Ideal: 300-500 lines per PR
  • Warning: 500-800 lines
  • Critical: 800+ lines ⚠️

If this large PR is unavoidable (e.g., migration, dependency update, major refactor), please explain in the PR description why it couldn't be split.

@BhagyaAmarasinghe BhagyaAmarasinghe merged commit f376c62 into epic/v5 May 5, 2026
11 checks passed
@BhagyaAmarasinghe BhagyaAmarasinghe deleted the doc/self-hosting-migration-guide branch May 5, 2026 07:22
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 5, 2026

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.

3 participants