Skip to content

docs: add complete self-hosting guide with MinIO, edge functions, and plugin config (fixes #110)#707

Open
pxtung299-bot wants to merge 2 commits into
Cap-go:mainfrom
pxtung299-bot:self-hosting-guide
Open

docs: add complete self-hosting guide with MinIO, edge functions, and plugin config (fixes #110)#707
pxtung299-bot wants to merge 2 commits into
Cap-go:mainfrom
pxtung299-bot:self-hosting-guide

Conversation

@pxtung299-bot
Copy link
Copy Markdown

@pxtung299-bot pxtung299-bot commented May 19, 2026

Closes #110

Adds a comprehensive self-hosting guide covering all the gaps mentioned in the issue:

  • Self-hosting S3 with MinIO (step-by-step Docker setup)
  • Connecting the iOS/Android Capacitor updater plugin to a self-hosted instance
  • Starting and deploying edge functions
  • What services are NOT available in self-hosted mode
  • SMTP/email configuration
  • Troubleshooting common issues
  • Verification with capgo doctor

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive self‑hosting guide covering local deployment with Supabase and S3‑compatible storage, configuring environment variables, setting up backend functions, integrating the mobile updater, performing first bundle uploads and verification, and detailed troubleshooting for storage access, function errors, update delivery, and email/S MTP issues.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 19, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 85d0f1a7-2471-4c04-8ac8-3119a60a1eeb

📥 Commits

Reviewing files that changed from the base of the PR and between 8b3c883 and e0eddb3.

📒 Files selected for processing (1)
  • src/content/docs/docs/self-hosting/getting-started.md
✅ Files skipped from review due to trivial changes (1)
  • src/content/docs/docs/self-hosting/getting-started.md

📝 Walkthrough

Walkthrough

Adds a new "Self-Hosting Capgo" guide documenting local deployment with Supabase (Postgres/Auth + Edge Functions), MinIO for S3 storage, SMTP setup, Capacitor updater integration, bundle upload, verification, and troubleshooting in a step-by-step workflow.

Changes

Self-hosting Getting Started Documentation

Layer / File(s) Summary
Overview and Prerequisites
src/content/docs/docs/self-hosting/getting-started.md
Introduces the Capgo architecture and lists required dependencies: Docker Compose, a reachable domain/IP, and Node.js with Capgo CLI.
Initial setup: clone, Supabase, and MinIO
src/content/docs/docs/self-hosting/getting-started.md
Steps to clone and configure .env (CAPGO_URL, Supabase keys), start Supabase and run supabase db push, add MinIO to Docker Compose, create capgo bucket, enable anonymous downloads, and set S3 connection env vars.
Edge Functions and SMTP configuration
src/content/docs/docs/self-hosting/getting-started.md
Run/deploy Supabase Edge Functions (functions serve / functions deploy), note unavailable Cloud features, configure SMTP in supabase/config.toml, and restart Supabase.
Capacitor integration, bundle upload, and verification
src/content/docs/docs/self-hosting/getting-started.md
Configure Capacitor updater plugin endpoints (updateUrl, statsUrl, channelUrl, defaultChannel), call CapacitorUpdater.notifyAppReady(), upload first bundle via CLI, and verify with capgo doctor and Supabase logs.
Troubleshooting and recap
src/content/docs/docs/self-hosting/getting-started.md
Troubleshooting for MinIO 403s, Edge Function 500s, devices not receiving updates, and SMTP issues; includes a numbered recap of the 8 steps and links to further docs.

Estimated Code Review Effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

A rabbit hops through docs with cheer,
Guides for Supabase and MinIO near,
Edge functions hum, the bundles fly,
Notify app ready — updates reply! 🐰✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: adding a complete self-hosting guide covering MinIO, edge functions, and plugin configuration, directly addressing the linked issue #110.
Linked Issues check ✅ Passed The pull request addresses all coding-related objectives from issue #110: documents MinIO S3 self-hosting, iOS/Android plugin configuration, edge functions setup, unavailable services, and verification methods.
Out of Scope Changes check ✅ Passed The pull request adds only a single self-hosting documentation file, which is entirely within scope and directly addresses all requirements specified in issue #110.
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

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

🧹 Nitpick comments (1)
src/content/docs/docs/self-hosting/getting-started.md (1)

5-211: ⚡ Quick win

Convert section titles, table, and code blocks to proper Markdown syntax.

The file uses plain text for section titles (e.g., "Overview", "Prerequisites", "Step 1") instead of Markdown headings with # or ##. The service table uses tab-separated format instead of pipe-delimited Markdown syntax. Code blocks are labeled (bash, env, yaml, toml, typescript) without triple-backtick fences. This formatting will render poorly in Markdown parsers.

Convert:

  • All major sections to Markdown headings (## Step 1 — Clone and Configure Capgo, etc.)
  • The service table to pipe-delimited format
  • Code blocks to properly fenced triple-backtick blocks with language identifiers
🤖 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 `@src/content/docs/docs/self-hosting/getting-started.md` around lines 5 - 211,
The document uses plain text headings, a tab-separated service table, and
labeled code snippets without fenced code blocks; convert section titles like
"Overview", "Prerequisites", and each "Step X — ..." into Markdown headings
(e.g., ## or ###), change the service table into a pipe-delimited Markdown table
with a header row and | separators, and wrap every labeled snippet (bash, env,
yaml, toml, typescript) in triple-backtick fenced code blocks with the correct
language identifier so all code sections render properly; update any inline code
examples mentioned (e.g., capacitor.config.ts) to use fenced blocks as well to
preserve syntax highlighting.
🤖 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 `@src/content/docs/docs/self-hosting/getting-started.md`:
- Line 1: The frontmatter on the document is invalid: split the merged "title"
and "description" into proper YAML frontmatter by adding the opening and closing
triple-dash delimiters (---) and placing "title:" and "description:" each on
their own lines; ensure there is a blank line after the closing --- before the
markdown body so metadata parsers can read the document correctly.

---

Nitpick comments:
In `@src/content/docs/docs/self-hosting/getting-started.md`:
- Around line 5-211: The document uses plain text headings, a tab-separated
service table, and labeled code snippets without fenced code blocks; convert
section titles like "Overview", "Prerequisites", and each "Step X — ..." into
Markdown headings (e.g., ## or ###), change the service table into a
pipe-delimited Markdown table with a header row and | separators, and wrap every
labeled snippet (bash, env, yaml, toml, typescript) in triple-backtick fenced
code blocks with the correct language identifier so all code sections render
properly; update any inline code examples mentioned (e.g., capacitor.config.ts)
to use fenced blocks as well to preserve syntax highlighting.
🪄 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: defaults

Review profile: CHILL

Plan: Pro

Run ID: 28939c31-3826-4508-8b89-d96c183a016e

📥 Commits

Reviewing files that changed from the base of the PR and between 356929c and 8b3c883.

📒 Files selected for processing (1)
  • src/content/docs/docs/self-hosting/getting-started.md

Comment thread src/content/docs/docs/self-hosting/getting-started.md Outdated
@riderx
Copy link
Copy Markdown
Member

riderx commented May 19, 2026

@pxtung299-bot solve the comments please

@sonarqubecloud
Copy link
Copy Markdown

@pxtung299-bot
Copy link
Copy Markdown
Author

Hi @riderx! I've fixed both issues — the frontmatter delimiters are now correct and all section titles, tables, and code blocks use proper Markdown syntax. Ready for re-review!

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.

Improve self hosting docs

2 participants