Skip to content

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

Open
atharvadeosthale wants to merge 23 commits intomainfrom
sh-mongo-docs
Open

Documentation + tutorial blog for self-hosted MongoDB release#2823
atharvadeosthale wants to merge 23 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 tutorial content for the Appwrite 1.9.0 MongoDB self-hosting release. It introduces two new blog posts (a partnership announcement and a step-by-step tutorial), a new integration page, a new databases configuration doc, and updates to the installation, backups, scaling, environment variables, and upgrade guides — all backed by newly added wizard screenshots and cover images.

Key changes:

  • New configuration/databases doc covering MongoDB and MariaDB selection, environment variables, and CLI install flags
  • Installation guide rewritten to reflect the new web-based wizard (port 20080), with only_dark/only_light screenshot pairs and updated version to 1.9.0
  • Backups page expanded with mongodump/mongorestore commands alongside the existing MariaDB instructions
  • Environment-variables page updated to document _APP_DB_ADAPTER and MongoDB defaults
  • introducing-imagine and sms-twilio featured flags adjusted to make room for the MongoDB content
  • One P2 gap: the updates page adds --publish 20080:20080 to upgrade commands but provides no instruction to navigate to the wizard, unlike the installation page

Confidence Score: 5/5

Safe to merge — all findings are P2 style/documentation gaps with no runtime or data-integrity impact.

The only finding is a P2 documentation inconsistency in the upgrade guide (missing browser navigation instructions to accompany the newly added --publish 20080:20080 flag). All content is internally consistent, images are present, author references are valid, and the new docs pages are well-structured. No code logic is changed.

src/routes/docs/advanced/self-hosting/production/updates/+page.markdoc — needs either a browser navigation instruction or removal of the --publish flag

Important Files Changed

Filename Overview
src/routes/blog/post/appwrite-mongodb-partnership-self-hosted/+page.markdoc New partnership announcement blog post with cover image, properly tagged with featured:true and correct author references.
src/routes/blog/post/self-hosting-appwrite-with-mongodb/+page.markdoc New tutorial blog post for self-hosting with MongoDB; cover image is present in the PR changeset, author atharva is a valid registered author.
src/routes/integrations/self-hosted-mongodb/+page.markdoc New integration page for self-hosted MongoDB, consistent with other integration pages; uses dark-mode wizard screenshots intentionally per PR context.
src/routes/docs/advanced/self-hosting/configuration/databases/+page.markdoc New databases configuration page covering MongoDB and MariaDB options, environment variables, and backup references; well-structured and accurate.
src/routes/docs/advanced/self-hosting/installation/+page.markdoc Updated installation guide to reflect the new web-based wizard, added four wizard steps with dark/light screenshots, updated version to 1.9.0, and added port 20080 firewall note.
src/routes/docs/advanced/self-hosting/production/updates/+page.markdoc Added --publish 20080:20080 to all three upgrade commands, but no corresponding instruction to navigate to the web wizard during an upgrade.
src/routes/docs/advanced/self-hosting/production/backups/+page.markdoc Expanded backups page to cover MongoDB backup/restore commands alongside existing MariaDB instructions; commands are syntactically correct.

Reviews (4): Last reviewed commit: "Apply suggestion from @adityaoberai" | 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 👍

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