docs: rework getting started and add production deployment guide - #641
docs: rework getting started and add production deployment guide#641SantiagoDePolonia wants to merge 4 commits into
Conversation
…ropic SDK examples - Link provider setup to the env-var, config.yaml, and dashboard Providers docs - Add an "Add Provider" dashboard screenshot for the provider setup step - Add Python and JavaScript Anthropic SDK examples for /v1/messages - Fix grammar in the request-step intro and section headings Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Adds a production-grade deployment checklist covering footprint and serverless suitability, storage backend choice, credential handling, air-gapped operation, multi-replica behavior, retention, observability, and hardening. Also adds the missing icon to the Session Keeping feature page. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe documentation update revises quickstart setup, provider configuration, and SDK examples. It adds a production deployment guide, updates configuration references, registers the guide, and adds session page metadata. ChangesDocumentation guidance
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
Suggested reviewers: Poem Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/getting-started/production.mdx`:
- Around line 283-289: Update the phrase “10 second mark” in the production
shutdown documentation to the hyphenated compound modifier “10-second mark,”
without changing the surrounding timeout guidance.
In `@docs/getting-started/quickstart.mdx`:
- Around line 15-16: Update the quickstart installation commands to use
versioned, immutable startup scripts instead of mutable remote URLs, and
document verifying their signed checksum or platform signature before execution.
Replace the untagged Docker image reference with a pinned digest, preserving the
existing installation and startup flow.
- Around line 35-40: Update the “Set up a provider” section to include one
self-contained supported provider environment-variable example, explicitly
showing the required credential variable and matching model value. Keep the
existing config.yaml and Dashboard links as alternative configuration methods,
and present the example concisely for new users.
🪄 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: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 5a8bfa0a-22fa-47a1-8a5b-f87082b34a47
⛔ Files ignored due to path filters (1)
docs/getting-started/images/add-provider.pngis excluded by!**/*.png
📒 Files selected for processing (4)
docs/docs.jsondocs/features/session-keeping.mdxdocs/getting-started/production.mdxdocs/getting-started/quickstart.mdx
| curl -fsSL https://gomodel.enterpilot.io/install.sh | sh | ||
| GOMODEL_MASTER_KEY="change-me" OPENAI_API_KEY="sk-..." gomodel | ||
| gomodel |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift
Pin and verify the startup artifacts.
Lines 15 and 21 download mutable remote scripts and execute them immediately. Line 27 pulls an untagged mutable image. A compromised artifact hosting or publishing path can execute code on the user's machine.
Publish versioned artifacts with a signed checksum or platform signature. Document verification before script execution. Pin the Docker image by digest.
Also applies to: 21-22, 27-27
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/getting-started/quickstart.mdx` around lines 15 - 16, Update the
quickstart installation commands to use versioned, immutable startup scripts
instead of mutable remote URLs, and document verifying their signed checksum or
platform signature before execution. Replace the untagged Docker image reference
with a pinned digest, preserving the existing installation and startup flow.
| ### 2. Set up a provider | ||
|
|
||
| Use `curl` or the OpenAI SDKs for Python and JavaScript against the same | ||
| OpenAI-compatible endpoint: | ||
| You can do this with an [environment variable](/advanced/configuration#auto-discovery-from-environment-variables), | ||
| a [config.yaml file](/advanced/config-yaml) (infrastructure as code), or from | ||
| the Dashboard's [Providers page](/providers/overview#configuring-providers-without-env-vars) - | ||
| (no restart required in this case). |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win
Add one self-contained provider configuration example.
These lines only link to other configuration pages. A new user cannot configure a provider from this Quick Start page.
Show one supported provider environment-variable example. State the required credential variable and the matching model value. Keep the YAML and Dashboard links as alternatives.
As per coding guidelines, **/*.{md,mdx} must “Write concise, practical, user-focused documentation showing defaults, override conditions, and minimal useful examples.”
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/getting-started/quickstart.mdx` around lines 35 - 40, Update the “Set up
a provider” section to include one self-contained supported provider
environment-variable example, explicitly showing the required credential
variable and matching model value. Keep the existing config.yaml and Dashboard
links as alternative configuration methods, and present the example concisely
for new users.
Source: Coding guidelines
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Confidence Score: 4/5
|
| <Tabs> | ||
| <Tab title="macOS / Linux"> | ||
| ```bash | ||
| curl -fsSL https://gomodel.enterpilot.io/install.sh | sh | ||
| GOMODEL_MASTER_KEY="change-me" OPENAI_API_KEY="sk-..." gomodel | ||
| gomodel | ||
| ``` | ||
|
|
||
| <ProviderCredentialsNote /> | ||
| </Tab> | ||
| <Tab title="Windows"> | ||
| ```powershell | ||
| irm https://gomodel.enterpilot.io/install.ps1 | iex | ||
| $env:GOMODEL_MASTER_KEY = "change-me"; $env:OPENAI_API_KEY = "sk-..."; gomodel | ||
| gomodel | ||
| ``` | ||
|
|
||
| <ProviderCredentialsNote /> | ||
| </Tab> | ||
| <Tab title="Docker"> | ||
| ```bash | ||
| docker run --rm -p 8080:8080 \ | ||
| -e LOG_FORMAT=text \ | ||
| -e GOMODEL_MASTER_KEY="change-me" \ | ||
| -e OPENAI_API_KEY="sk-..." \ | ||
| enterpilot/gomodel | ||
| docker run --rm -p 8080:8080 enterpilot/gomodel | ||
| ``` | ||
|
|
||
| <ProviderCredentialsNote /> | ||
| </Tab> |
There was a problem hiding this comment.
Unauthenticated quick-start gateway
The startup commands omit GOMODEL_MASTER_KEY. In a fresh installation with no managed keys, this makes /admin/* unauthenticated: an external client can read and modify provider configuration without credentials. The production guide warns about this state, but the primary Quick Start still directs users into it and later incorrectly states that admin endpoints use bearer authentication. Require a master key in the Quick Start, or prevent admin routes from being exposed when no key is configured.
Artifacts
Validation script for protected and no-master-key gateway states
- This executable source starts clean isolated gateway instances and issues the unauthenticated admin requests, ending with the reproducible validation procedure.
Admin endpoint response with a master key configured
- The executed baseline capture shows an unauthenticated provider-credentials request returning HTTP 401 and the missing-credentials message, ending with authentication enforced.
Admin endpoint responses without a master key or managed keys
- The executed clean-state capture shows unauthenticated provider listing and a safe disabled-provider mutation both returning HTTP 200, ending with confirmed unauthenticated configuration access.
… docs - Move the Production Deployment page from Getting Started to Guides, and link it from the Quick Start next steps - .env.template: an empty MODEL_LIST_URL does not disable the model list fetch, since empty env values are skipped; document the config.yaml form - FAQ: the SQLite path override is SQLITE_PATH, not GOMODEL_SQLITE_PATH Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/about/faq.mdx`:
- Line 78: Update the FAQ sentence describing SQLITE_PATH and GOMODEL_CACHE_DIR
so it states that SQLITE_PATH overrides the SQLite database path while
GOMODEL_CACHE_DIR overrides the model cache directory; do not group both
variables as database-path overrides.
In `@docs/guides/production.mdx`:
- Around line 17-19: Update the production guide sentence near “GoModel” to
insert “with” before the inline `CGO_ENABLED=0` build setting, preserving the
rest of the wording.
🪄 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: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 1cbf93d2-2dcb-4af8-a197-8f746f3c591c
📒 Files selected for processing (5)
.env.templatedocs/about/faq.mdxdocs/docs.jsondocs/getting-started/quickstart.mdxdocs/guides/production.mdx
- FAQ: SQLITE_PATH overrides the database path, GOMODEL_CACHE_DIR the model cache directory; the previous wording grouped both as path overrides - Grammar fixes in the production guide Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Summary
Reworks the Quick Start page and adds a new Production Deployment guide.
Quick Start
config.yaml, and the dashboard Providers page/v1/messagesNew: Production Deployment guide (Guides tab)
A production-grade checklist. Every claim was verified against the source rather than the existing docs, and several were verified by running the gateway locally:
base_urlrepointed at runtimeDoc corrections found while verifying
.env.templateclaimedMODEL_LIST_URLcould be set to an empty string to disable the model list fetch. It cannot - empty env values are skipped inconfig/env.go, so the compiled-in default survives. Comment now documents the working method (cache.model.model_list.url: ""in YAML).docs/about/faq.mdxreferencedGOMODEL_SQLITE_PATH. The canonical variable isSQLITE_PATH(config/storage.go:25); the prefixed form has no effect. Verified by running the binary both ways.Also
iconto the Session Keeping feature pageNote
MODEL_LIST_URL=""being a silent no-op is a documentation fix here, not a code fix. If the intended behavior is that an empty value disables the fetch, that needs a change in the env override loop and is out of scope for a docs PR.🤖 Generated with Claude Code
Summary by CodeRabbit
/v1/messagesendpoint, audit logs, and production deployment guidance.