Skip to content

Upgrade self host docs + migrate docs - #2847

Merged
nezaj merged 2 commits into
mainfrom
self-host-docs
Aug 7, 2026
Merged

Upgrade self host docs + migrate docs#2847
nezaj merged 2 commits into
mainfrom
self-host-docs

Conversation

@nezaj

@nezaj nezaj commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Previously we just had one page for self-hosting but now we'll split this into it's own section!

CleanShot 2026-08-07 at 10 46 45@2x

Overview

We'll now have an overview page that links out to individual guides for hosting on VPS (intended for side-projects, ~$30/mo via DO) and AWS (intended for serious projects, ~$600/mo)

The overview page also includes a section on operating the self hosted deployment. This includes info on deployment settings (restricting signups, restricting temporary apps), using cli tools, and call-outs about hazelcast and memory limits. The individual VPS and AWS guides also have more info on how to scale those deployments.

CleanShot 2026-08-07 at 10 57 45@2x

VPS/AWS Guides

The goal of the VPS and AWS docs is to give enough context for both a human and an agent to understand what needs to happen without being overly prescriptive. The VPS docs are based on what we had before for self-hosting. I made these by iterating on the flow with codex and patching places where it got confused (Hazelcast, S3 CORS, etc). I tested both guides from a fresh codex session and got them working!

In both the VPS/AWS guides I include general advice on scaling up instances/db. For AWS I also include our current AWS configuration

Simplifications

Finally I thought it would be better to cut some things. I removed the following:

  • Docs on local deployment -- we had these lumped in before but I don't think they're actually relevant and I found that the agents would try to default to them
  • Reference to sslip.io -- if someone's going to self-host they're already going to need to get a VPS or set up something like AWS. Having the agents go in a loop for sslip.io felt like a poor experience compared to just configuring things through my domain registrar

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Added overview, VPS, AWS, and Instant Cloud migration guides for self-hosting. Updated documentation navigation to group these guides under a dedicated self-hosting section.

Changes

Self-hosting documentation

Layer / File(s) Summary
Self-hosting overview
client/www/app/docs/self-hosting/page.md
Documents hosting options, email and OAuth setup, CLI configuration, health checks, scaling requirements, and JVM memory settings.
VPS deployment guide
client/www/app/docs/self-hosting/vps/page.md
Covers Ubuntu provisioning, Docker installation, Instant configuration, startup, verification, and scaling.
AWS deployment guide
client/www/app/docs/self-hosting/aws/page.md
Covers AWS architecture, Aurora PostgreSQL, S3, encryption, service deployment, discovery, verification, and scaling.
Instant Cloud migration guide
client/www/app/docs/self-hosting/migrate/page.md
Covers rehearsal, backup restoration, client cutover, read-only mode, deployment, and post-cutover validation.
Self-hosting navigation
client/www/data/docsNavigation.js
Adds a dedicated navigation section for the overview, VPS, AWS, and migration guides.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: stopachka

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
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.
Title check ✅ Passed The title clearly identifies the self-hosting documentation upgrade and migration documentation changes.
Description check ✅ Passed The description directly explains the new self-hosting section, VPS and AWS guides, migration guide, and removed 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

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

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 4

🧹 Nitpick comments (5)
client/www/app/docs/self-hosting/aws/page.md (4)

151-167: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Include INSTANT_SUPERUSER_EMAIL in the shared backend configuration.

Add this variable to the minimum environment block, or link directly to the operating step before deployment. State that changes require a rolling restart. Based on learnings, INSTANT_SUPERUSER_EMAIL is the authoritative deployment-superuser setting, and startup reconciles Instant Config ownership to that email.

🤖 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 `@client/www/app/docs/self-hosting/aws/page.md` around lines 151 - 167, Update
the minimum environment configuration block to include INSTANT_SUPERUSER_EMAIL,
identifying it as the authoritative deployment-superuser setting; mention that
changing it requires a rolling restart and that startup reconciles Instant
Config ownership to this email.

Source: Learnings


40-43: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add a language identifier to this fenced block.

markdownlint reports MD040 for this AWS CLI block. Mark it as shell.

🤖 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 `@client/www/app/docs/self-hosting/aws/page.md` around lines 40 - 43, Add the
shell language identifier to the fenced code block containing the AWS CLI
commands, without changing the commands themselves, so the markdown passes
MD040.

Source: Linters/SAST tools


136-138: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add language identifiers to the fenced blocks.

markdownlint reports MD040 for these blocks. Add shell for command and environment blocks, and text for image names, paths, DNS names, and URLs.

Also applies to: 147-149, 153-167, 177-179, 183-185, 204-206, 210-212, 216-218

🤖 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 `@client/www/app/docs/self-hosting/aws/page.md` around lines 136 - 138, Add
language identifiers to every fenced code block in the self-hosting AWS
documentation, including the blocks around the shown image name and all
referenced ranges. Use shell for commands or environment-variable examples, and
text for image names, paths, DNS names, and URLs, without changing the block
contents.

Source: Linters/SAST tools


120-123: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Pin the image release used for configuration and deployment.

server:latest is used to generate override.edn and run the backend. dashboard:latest is also floating. Restarts or scale-outs can pull different releases, and the generated configuration can come from a different server version. Use one release tag or digest for related images and upgrade deliberately.

Also applies to: 134-138, 202-206

🤖 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 `@client/www/app/docs/self-hosting/aws/page.md` around lines 120 - 123, Update
the AWS self-hosting instructions to replace floating server:latest and
dashboard:latest references with one explicit release tag or digest shared by
the related images, including the configuration-generation command and backend
deployment commands. Ensure all affected image references use the same pinned
version so upgrades are deliberate.
client/www/app/docs/self-hosting/migrate/page.md (1)

105-113: 🗄️ Data Integrity & Integration | 🔵 Trivial

Define the rollback procedure before merging the client cutover.

After the first self-hosted write, the Instant Cloud copy is stale. If validation fails, the guide does not provide a safe recovery path. Document whether cutover is irreversible and how operators recover without creating two divergent writable copies.

🤖 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 `@client/www/app/docs/self-hosting/migrate/page.md` around lines 105 - 113,
Update the “Switch to self-hosted Instant” section to define the rollback
procedure before instructing operators to merge the client cutover. State
whether the first self-hosted write makes the migration irreversible, and
provide a safe recovery path that avoids treating both self-hosted Instant and
Instant Cloud as writable sources or creating divergent copies.
🤖 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 `@client/www/app/docs/self-hosting/aws/page.md`:
- Around line 140-142: Update the self-hosting deployment guidance to place
backend tasks across at least two Availability Zones instead of co-locating both
tasks with the Aurora writer. Retain the load balancer routing and
/health/system health-check instructions while specifying the scheduler
placement requirement.
- Around line 61-69: Update the AWS self-hosting database configuration and
DATABASE_URL documentation to require TLS for backend connections, while
isolating the necessary rds.force_ssl = 0 exception to Instant’s migration
connection only. Document the migration-specific plaintext requirement and
ensure port 5432 remains restricted to backend servers; do not present plaintext
as the general production database configuration.

In `@client/www/app/docs/self-hosting/migrate/page.md`:
- Around line 84-91: Replace the fixed 30-second wait in the “Pause writes on
Instant Cloud” migration instructions with an observable quiescence check.
Direct users to wait for the service’s verified indication that all accepted
in-flight mutations have completed before starting the final backup, while
preserving the existing read-only behavior and scope.

In `@client/www/app/docs/self-hosting/page.md`:
- Around line 33-34: Update the self-hosting guide’s Postmark fallback section
in client/www/app/docs/self-hosting/page.md:33-34 to require Postmark before
production and document strict log access control, short retention, and no
forwarding to shared logs. Also update the login-code logging guidance in
client/www/app/docs/self-hosting/vps/page.md:123-128 to warn that tailed logs
contain authentication secrets and must not be used as the normal production
login flow.

---

Nitpick comments:
In `@client/www/app/docs/self-hosting/aws/page.md`:
- Around line 151-167: Update the minimum environment configuration block to
include INSTANT_SUPERUSER_EMAIL, identifying it as the authoritative
deployment-superuser setting; mention that changing it requires a rolling
restart and that startup reconciles Instant Config ownership to this email.
- Around line 40-43: Add the shell language identifier to the fenced code block
containing the AWS CLI commands, without changing the commands themselves, so
the markdown passes MD040.
- Around line 136-138: Add language identifiers to every fenced code block in
the self-hosting AWS documentation, including the blocks around the shown image
name and all referenced ranges. Use shell for commands or environment-variable
examples, and text for image names, paths, DNS names, and URLs, without changing
the block contents.
- Around line 120-123: Update the AWS self-hosting instructions to replace
floating server:latest and dashboard:latest references with one explicit release
tag or digest shared by the related images, including the
configuration-generation command and backend deployment commands. Ensure all
affected image references use the same pinned version so upgrades are
deliberate.

In `@client/www/app/docs/self-hosting/migrate/page.md`:
- Around line 105-113: Update the “Switch to self-hosted Instant” section to
define the rollback procedure before instructing operators to merge the client
cutover. State whether the first self-hosted write makes the migration
irreversible, and provide a safe recovery path that avoids treating both
self-hosted Instant and Instant Cloud as writable sources or creating divergent
copies.
🪄 Autofix

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: CHILL

Plan: Pro Plus

Run ID: 6583eda9-4f70-4eb5-8727-f46860ba01fb

📥 Commits

Reviewing files that changed from the base of the PR and between d37218a and 7fc1a98.

📒 Files selected for processing (5)
  • client/www/app/docs/self-hosting/aws/page.md
  • client/www/app/docs/self-hosting/migrate/page.md
  • client/www/app/docs/self-hosting/page.md
  • client/www/app/docs/self-hosting/vps/page.md
  • client/www/data/docsNavigation.js

Comment thread client/www/app/docs/self-hosting/aws/page.md
Comment thread client/www/app/docs/self-hosting/aws/page.md
Comment thread client/www/app/docs/self-hosting/migrate/page.md
Comment thread client/www/app/docs/self-hosting/page.md

@stopachka stopachka left a comment

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.

SGTM!

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 1

🤖 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 `@client/www/app/docs/self-hosting/page.md`:
- Line 8: Update the user-facing introduction in the self-hosting documentation
to hyphenate “self hosting” as “self-hosting,” matching the existing
“self-hosted” terminology.
🪄 Autofix

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: CHILL

Plan: Pro Plus

Run ID: 8d144d8f-aaff-4260-b2c6-a5181621fbe6

📥 Commits

Reviewing files that changed from the base of the PR and between 7fc1a98 and 4e2466c.

📒 Files selected for processing (1)
  • client/www/app/docs/self-hosting/page.md

Comment thread client/www/app/docs/self-hosting/page.md
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

View Vercel preview at instant-www-js-self-host-docs-jsv.vercel.app.

@nezaj
nezaj merged commit 1b9eaef into main Aug 7, 2026
29 checks passed
@nezaj
nezaj deleted the self-host-docs branch August 7, 2026 20:43
This was referenced Aug 7, 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.

2 participants