Skip to content

Documentation + tutorial blog for self-hosted MongoDB release#2823

Merged
atharvadeosthale merged 32 commits intomainfrom
sh-mongo-docs
Apr 1, 2026
Merged

Documentation + tutorial blog for self-hosted MongoDB release#2823
atharvadeosthale merged 32 commits intomainfrom
sh-mongo-docs

Conversation

@atharvadeosthale
Copy link
Copy Markdown
Member

@atharvadeosthale atharvadeosthale commented Mar 19, 2026

Summary by CodeRabbit

  • Documentation
    • Updated self-hosting docs: web-based setup wizard walkthrough, Databases page, environment variables, backups, scaling, and upgrade guides; added MongoDB integration guide and new related images.
  • New Features
    • Installer now offers database backend selection; MongoDB supported and set as default for new self-hosted installs (Appwrite 1.9.0).
  • Content
    • New blog announcement and changelog entry about MongoDB support; adjusted integration metadata and featured flags.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 19, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

This PR adds MongoDB support for self-hosted Appwrite and introduces a web-based setup wizard served on port 20080. It adds new documentation and blog pages (MongoDB integration, self-hosting tutorial, announcement, changelog), a Databases configuration doc and nav item, updates installation, backups, scaling, updates, and environment-variable docs (adds _APP_DB_ADAPTER and adapter-dependent _APP_DB_HOST/_APP_DB_PORT defaults), bumps the Docker image to appwrite/appwrite:1.9.0 and update run commands to publish 20080:20080, and adds wizard-related image cache entries.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the primary change: adding documentation and a tutorial blog post for the self-hosted MongoDB release, which is reflected across multiple new files and updates throughout the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sh-mongo-docs

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.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Mar 19, 2026

Greptile Summary

This PR adds comprehensive documentation and two blog posts covering the MongoDB support introduced in Appwrite 1.9.0 self-hosted. It introduces a new web-based installation wizard walkthrough, a dedicated database-configuration page, updated backup/scaling/upgrade guides, a new integration page, a changelog entry, and a hero banner update promoting the partnership announcement.

Key changes:

  • New blog posts: Partnership announcement (appwrite-mongodb-partnership-self-hosted) marked featured: true, and a step-by-step tutorial (self-hosting-appwrite-with-mongodb) covering the wizard, environment variables, and backup/restore commands.
  • Installation docs rewrite: Four-step wizard walkthrough with paired light/dark screenshots; all eight new wizard images are present in the PR and registered in .optimize-cache.json.
  • New databases config page: Documents MongoDB vs MariaDB backends, environment variables, COMPOSE_PROFILES values, and CLI --database flag for headless installs.
  • Geo-queries limitation note: Correctly calls out that MongoDB does not support spatial columns/indexes on self-hosted, directing users to MariaDB for geo-queries.
  • hero-banner.svelte: Adds an optional icon prop ('mongo' | 'sparkle') with a branded badge for the MongoDB icon; the "New" text label is intentionally removed since the title now carries the full context.
  • Featured slot rotation: sms-twilio integration unfeatured to make room for the new self-hosted-mongodb integration as featured: true; introducing-imagine post unfeatured for the same reason.
  • One minor style issue: geo-queries/+page.markdoc is missing a trailing newline on its last line.

Confidence Score: 5/5

Safe to merge — all content is consistent, all referenced images are present, and the only finding is a missing trailing newline.

The PR is a documentation and content release with a small Svelte component change. All images are included and hashed in .optimize-cache.json. Cross-references between blog posts, integration page, and docs are internally consistent. The single finding (missing newline at EOF in geo-queries) is a trivial style issue that does not affect rendered output or user-facing behavior.

No files require special attention beyond the minor trailing-newline fix in src/routes/docs/products/databases/geo-queries/+page.markdoc.

Important Files Changed

Filename Overview
src/routes/blog/post/self-hosting-appwrite-with-mongodb/+page.markdoc New tutorial blog post for self-hosting Appwrite with MongoDB; well-structured with step-by-step wizard walkthrough, environment variable table, and backup/restore commands.
src/routes/blog/post/appwrite-mongodb-partnership-self-hosted/+page.markdoc New partnership announcement post with featured: true; content is complete and cover image is correctly registered in optimize-cache.json.
src/routes/docs/advanced/self-hosting/installation/+page.markdoc Rewrote installation guide to document the new web-based wizard with four wizard steps, light/dark image pairs, and CLI options; all referenced images are present in the PR.
src/routes/docs/advanced/self-hosting/configuration/databases/+page.markdoc New page documenting MongoDB vs MariaDB backends, environment variables, and Docker Compose profiles; includes CLI --database flag for headless installs.
src/routes/docs/products/databases/geo-queries/+page.markdoc Added important MongoDB limitation note for geo-queries; file is missing a trailing newline.
src/routes/(marketing)/(components)/hero-banner.svelte Added optional mongo icon variant with branded badge styling; removed hardcoded "New" label text from sparkle variant; changes are intentional and consistent with hero.svelte update.
src/routes/integrations/self-hosted-mongodb/+page.markdoc New integration page for MongoDB on self-hosted Appwrite; uses dark-mode wizard screenshots consistent with blog platform constraints.

Reviews (8): Last reviewed commit: "Apply suggestions from code review" | Re-trigger Greptile

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

🧹 Nitpick comments (1)
src/routes/blog/post/self-hosting-appwrite-with-mongodb/+page.markdoc (1)

56-84: Prefer theme-aware screenshots in the blog body.

Right now the tutorial uses dark screenshots only. In light mode, these can feel low-contrast and out of place. Consider pairing dark/light variants as done in docs pages.

♻️ Suggested pattern
-![Setup your app](/images/docs/advanced/self-hosting/installation/dark/wizard-setup.png)
+{% only_dark %}
+![Setup your app](/images/docs/advanced/self-hosting/installation/dark/wizard-setup.png)
+{% /only_dark %}
+{% only_light %}
+![Setup your app](/images/docs/advanced/self-hosting/installation/wizard-setup.png)
+{% /only_light %}

Apply the same pattern to the secure/account/review images.

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

In `@src/routes/blog/post/self-hosting-appwrite-with-mongodb/`+page.markdoc around
lines 56 - 84, The dark-only screenshots in +page.markdoc make the blog look
low-contrast in light theme; update the image blocks for wizard-setup.png,
wizard-secure.png, wizard-account.png, and wizard-review.png to use theme-aware
pairs (dark + light variants) following the docs pattern: replace each single
img line with the theme-aware include used elsewhere in the docs so the template
selects the correct /images/.../dark/... and /images/.../light/... files at
render time and add the matching light variants to the assets if they don't
exist.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@src/routes/docs/advanced/self-hosting/configuration/environment-variables/`+page.markdoc:
- Line 63: The current line implies the database backend is chosen only during
installation; update the wording to explicitly state the backend can be set via
the _APP_DB_ADAPTER environment variable at runtime (not just at install time)
and point readers to the environment variable section where _APP_DB_ADAPTER is
documented; reference the existing sentence in the file and replace or append
text clarifying runtime configurability and linking to the Databases and
Environment Variables sections.

In `@src/routes/docs/advanced/self-hosting/installation/`+page.markdoc:
- Around line 68-69: The line containing the URL literal
"http://localhost:20080" should be expanded to clarify remote-host access:
update the text so it tells users that for remote or non-local installs they
must use the server's IP address or domain (e.g., http://SERVER_IP:20080 or
http://your-domain:20080) instead of localhost so the setup wizard is reachable
from other machines; edit the sentence around that URL in +page.markdoc to
include both localhost (for local installs) and the server IP/domain option for
remote installs.

---

Nitpick comments:
In `@src/routes/blog/post/self-hosting-appwrite-with-mongodb/`+page.markdoc:
- Around line 56-84: The dark-only screenshots in +page.markdoc make the blog
look low-contrast in light theme; update the image blocks for wizard-setup.png,
wizard-secure.png, wizard-account.png, and wizard-review.png to use theme-aware
pairs (dark + light variants) following the docs pattern: replace each single
img line with the theme-aware include used elsewhere in the docs so the template
selects the correct /images/.../dark/... and /images/.../light/... files at
render time and add the matching light variants to the assets if they don't
exist.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 2e277128-298d-4d9c-919b-348aae7d2a38

📥 Commits

Reviewing files that changed from the base of the PR and between 189e90d and 26d261b.

⛔ Files ignored due to path filters (8)
  • static/images/docs/advanced/self-hosting/installation/dark/wizard-account.png is excluded by !**/*.png
  • static/images/docs/advanced/self-hosting/installation/dark/wizard-review.png is excluded by !**/*.png
  • static/images/docs/advanced/self-hosting/installation/dark/wizard-secure.png is excluded by !**/*.png
  • static/images/docs/advanced/self-hosting/installation/dark/wizard-setup.png is excluded by !**/*.png
  • static/images/docs/advanced/self-hosting/installation/wizard-account.png is excluded by !**/*.png
  • static/images/docs/advanced/self-hosting/installation/wizard-review.png is excluded by !**/*.png
  • static/images/docs/advanced/self-hosting/installation/wizard-secure.png is excluded by !**/*.png
  • static/images/docs/advanced/self-hosting/installation/wizard-setup.png is excluded by !**/*.png
📒 Files selected for processing (9)
  • .optimize-cache.json
  • src/routes/blog/post/self-hosting-appwrite-with-mongodb/+page.markdoc
  • src/routes/docs/advanced/self-hosting/+layout.svelte
  • src/routes/docs/advanced/self-hosting/configuration/databases/+page.markdoc
  • src/routes/docs/advanced/self-hosting/configuration/environment-variables/+page.markdoc
  • src/routes/docs/advanced/self-hosting/installation/+page.markdoc
  • src/routes/docs/advanced/self-hosting/production/backups/+page.markdoc
  • src/routes/docs/advanced/self-hosting/production/scaling/+page.markdoc
  • src/routes/docs/advanced/self-hosting/production/updates/+page.markdoc

Comment on lines +68 to +69
Once the command is running, open your browser and navigate to `http://localhost:20080` to access the setup wizard.

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.

⚠️ Potential issue | 🟡 Minor

Clarify remote-host access URL in setup instructions.

Line 68 currently points only to localhost. For remote installs, users should be told to use the server IP/domain on port 20080 to avoid failed access attempts.

🛠️ Suggested wording
-Once the command is running, open your browser and navigate to `http://localhost:20080` to access the setup wizard.
+Once the command is running, open your browser and navigate to `http://localhost:20080` (or `http://<your-server-ip>:20080` for remote installs) to access the setup wizard.
📝 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
Once the command is running, open your browser and navigate to `http://localhost:20080` to access the setup wizard.
Once the command is running, open your browser and navigate to `http://localhost:20080` (or `http://<your-server-ip>:20080` for remote installs) to access the setup wizard.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/routes/docs/advanced/self-hosting/installation/`+page.markdoc around
lines 68 - 69, The line containing the URL literal "http://localhost:20080"
should be expanded to clarify remote-host access: update the text so it tells
users that for remote or non-local installs they must use the server's IP
address or domain (e.g., http://SERVER_IP:20080 or http://your-domain:20080)
instead of localhost so the setup wizard is reachable from other machines; edit
the sentence around that URL in +page.markdoc to include both localhost (for
local installs) and the server IP/domain option for remote installs.

Comment on lines +41 to +59
## CMD
```cmd
docker run -it --rm ^
--publish 20080:20080 ^
--volume //var/run/docker.sock:/var/run/docker.sock ^
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
--entrypoint="install" ^
appwrite/appwrite:1.9.0
```

## PowerShell
```powershell
docker run -it --rm `
--publish 20080:20080 `
--volume /var/run/docker.sock:/var/run/docker.sock `
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
--entrypoint="install" `
appwrite/appwrite:1.9.0
```
Copy link
Copy Markdown
Contributor

@adityaoberai adityaoberai Mar 24, 2026

Choose a reason for hiding this comment

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

Instead of using headings, you can just write a sentence or even maybe have two tabs: Windows (CMD) and Windows (Powershell)

Right now this looks weird @atharvadeosthale

Image

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.

@atharvadeosthale check this out please


Here's what's on the roadmap:

- **MongoDB on Appwrite Cloud.** MongoDB will be available in a fully managed environment. The console will adapt dynamically when running on MongoDB, and the experience will feel first-class from day one.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

maybe mention the self-hosted solution as something that is already available as the first step of this.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

sorry I see this mentioned later, maybe I would switch the two section for chronological sense

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.

Alright 👍

Co-authored-by: Aditya Oberai <adityaoberai1@gmail.com>
@atharvadeosthale atharvadeosthale merged commit bcfbc89 into main Apr 1, 2026
6 checks passed
@atharvadeosthale atharvadeosthale deleted the sh-mongo-docs branch April 1, 2026 14:23
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.

5 participants