From c2a99f71ff78b39be28d38281d3f79df9625c8af Mon Sep 17 00:00:00 2001 From: WcaleNieWolny Date: Tue, 22 Aug 2023 15:01:03 +0200 Subject: [PATCH 1/3] Add new selfhosting docs --- astro.config.mjs | 11 +- public/supabase.png | Bin 0 -> 80136 bytes .../local-dev/capacitor-updater.mdx | 51 +++++++++ .../docs/docs/self-hosted/local-dev/cli.mdx | 32 ++++++ .../self-hosted/local-dev/getting-started.mdx | 76 +++++++++++++ .../docs/docs/self-hosted/local-dev/s3.mdx | 102 ++++++++++++++++++ 6 files changed, 271 insertions(+), 1 deletion(-) create mode 100644 public/supabase.png create mode 100644 src/content/docs/docs/self-hosted/local-dev/capacitor-updater.mdx create mode 100644 src/content/docs/docs/self-hosted/local-dev/cli.mdx create mode 100644 src/content/docs/docs/self-hosted/local-dev/getting-started.mdx create mode 100644 src/content/docs/docs/self-hosted/local-dev/s3.mdx diff --git a/astro.config.mjs b/astro.config.mjs index e14696a2..66e21d33 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -21,7 +21,7 @@ export default defineConfig({ AstroPWA(pwa), starlight({ title: 'Capgo', - logo: { src: './logo.svg' }, + // logo: { src: './logo.svg' }, social: { discord: 'https://discord.com/invite/VnYRvBfgA6', github: 'https://github.com/Cap-go', @@ -56,6 +56,15 @@ export default defineConfig({ items: [ { label: 'Getting Started', link: '/docs/self-hosted/getting-started' }, { label: 'Auto Update', autogenerate: { directory: 'docs/self-hosted/Auto Update' } }, + { + label: 'Local development', + items: [ + { label: 'Getting started', link: '/docs/self-hosted/local-dev/getting-started/' }, + { label: 'Setup S3', link: '/docs/self-hosted/local-dev/s3' }, + { label: 'CLI', link: '/docs/self-hosted/local-dev/cli' }, + { label: 'Capacitor updater', link: '/docs/self-hosted/local-dev/capacitor-updater' }, + ], + }, { label: 'Manual', link: '/docs/self-hosted/manual' }, ], }, diff --git a/public/supabase.png b/public/supabase.png new file mode 100644 index 0000000000000000000000000000000000000000..11d949728fc33fe7e71a59a1988917eb1ec56f37 GIT binary patch literal 80136 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

J--r*w&K11*CFMn~x;`osx?``9ir6fmgzL{rvM9 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%0Awc-r$st)@jmR!R(Vxpb-W zvSW#!$GG!D+Q`lrkr%DL_(|FDphB07F=I_k`p;3kb>H82LpCewi~4hNz+CN69E>89 zUkGXG1}P{V^L?bv4Vok;0iH+Az-ZE^ZWgC@U_d&z`^@{-cc*O$6?Z&&+X!jeoeY%-A)|eUQ$~yi zg;S%g8lWIjH@K3=Q&G@R5x&_J!t}+E5U)((Ic#P4eUBLpJ=p%g61Bbi^kH}yH^+#S zqabDMoMLA$K3<09fC(zSNaYf6wD8BUgLDv~wylh1j^y|(yKMQ_rFrSgZ`bph{ji;g zne6QB;FD?^8dw=sqNi8yICl5dt5;dqCn47IbY$4T zzk&=Y%Ws-Tkb_0?7eolQEj5M@I@Yr7>Iwx5Ly z>|42Ve(J3s@DO~1l6TVMM`zz{efLm)_Z`8(Q<_u2GZSvJhMWxfX2kaE8&2J>Htw^N*tjdFmQLh`&HC7kQ>MV)0kCm&q-2eZj7Yov74agAG-3M z#8ozJZ3oS`?~kd?ZyBByk#x(c=l0dv=cE1gig47Y6*iL~`GXlf7kWXo9gm8teoclQ zJ zj>5VnMy!KjW

a(Tyi}U(gRhMrpD$0V3o2Bdb(mcU9u4c0a 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

+ +If it does start edge functions by running: + +```bash +supabase functions serve +``` + +and start fronend by running: +```bash +pnpm serve +``` \ No newline at end of file diff --git a/src/content/docs/docs/self-hosted/local-dev/s3.mdx b/src/content/docs/docs/self-hosted/local-dev/s3.mdx new file mode 100644 index 00000000..a2d5c53c --- /dev/null +++ b/src/content/docs/docs/self-hosted/local-dev/s3.mdx @@ -0,0 +1,102 @@ +--- +title: "Self-hosting S3" +sidebar: + order: 2 +--- + +## What this tutorial will cover? + +This tutorial will show how to set up [minio](https://min.io/) to work with capgo. + +This is not technically required to run capgo. + +Setting S3 allows for uploading bundles from the [CLI](/docs/tooling/cli/). + +:::danger +⚠️ This tutorial is not supposed to be used in production.\ +Use this only in local development. +::: + +## Requirements + + 1. [Docker](https://www.docker.com/) + +## Getting started + +First, create a new directory. + +Then create a folder named `data` inside. + +Then run the following command: +```bash +docker run \ + -p 9000:9000 \ + -p 9090:9090 \ + --user $(id -u):$(id -g) \ + --name minio1 \ + -e "MINIO_ROOT_USER=ROOTUSER" \ + -e "MINIO_ROOT_PASSWORD=CHANGEME123" \ + -v PATH_TO_DATA_FOLDER_CREATED_IN_PREVIOUS_STEP:/data \ + quay.io/minio/minio server /data --console-address ":9090" +``` + +If you ever close the console window with this container you can start it with: +```bash +docker start minio1 +``` + +If you ever need to change the configuration of minio you can remove the container by running: +```bash +docker rm minio1 +``` +⚠️ This command does not remove minio data + +## Setting up edge functions + +Now that we have a S3 server running we need to set up capgo edge functions to use our S3 server. + +To do that we need to create an ENV file in `capgo/supabase` named `.env.local` + +This file should look like this: +```bash +STRIPE_WEBHOOK_SECRET=test +STRIPE_SECRET_KEY=test +API_SECRET=testsecret +PLAN_MAKER=test +PLAN_SOLO=test +PLAN_TEAM=test +# Below is the accually important setup for S3 +S3_ENDPOINT=172.17.0.1 +S3_REGION=dev-region +S3_PORT=9000 +S3_SSL=false +R2_ACCESS_KEY_ID=ROOTUSER +R2_SECRET_ACCESS_KEY=CHANGEME123 +``` + +The ip `172.17.0.1` is a docker ip that can be both reached by our local machine and the docker edge functions container + +To run edge functions with our new env file use +```bash +supabase functions serve --env-file ./supabase/.env.local +``` + +## Setting up CLI to use S3 + +The CLI will not work by default with minio. The following change to `capacitor.config.ts`[^1] is required. +```ts +const config: CapacitorConfig = { + appId: 'com.demo.app', + appName: 'demoApp', + webDir: 'dist', + bundledWebRuntime: false, + plugins: { + CapacitorUpdater : { + // Without this localS3 the upload command will fail + localS3: true + }, + }, +}; +``` + +[^1]: File is located in your app directory \ No newline at end of file From 1e50fb577c820ccba3038687f177c67eb050df1e Mon Sep 17 00:00:00 2001 From: WcaleNieWolny Date: Tue, 22 Aug 2023 15:04:10 +0200 Subject: [PATCH 2/3] Fix logo --- astro.config.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/astro.config.mjs b/astro.config.mjs index 66e21d33..0356dd72 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -21,7 +21,7 @@ export default defineConfig({ AstroPWA(pwa), starlight({ title: 'Capgo', - // logo: { src: './logo.svg' }, + logo: { src: './logo.svg' }, social: { discord: 'https://discord.com/invite/VnYRvBfgA6', github: 'https://github.com/Cap-go', From 68b2a89e682fb48676f3af9e3516344bc0d5984d Mon Sep 17 00:00:00 2001 From: WcaleNieWolny Date: Tue, 22 Aug 2023 16:46:59 +0200 Subject: [PATCH 3/3] Add info about android reverse proxy --- .../docs/docs/self-hosted/local-dev/capacitor-updater.mdx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/content/docs/docs/self-hosted/local-dev/capacitor-updater.mdx b/src/content/docs/docs/self-hosted/local-dev/capacitor-updater.mdx index eccbc58a..b511e049 100644 --- a/src/content/docs/docs/self-hosted/local-dev/capacitor-updater.mdx +++ b/src/content/docs/docs/self-hosted/local-dev/capacitor-updater.mdx @@ -48,4 +48,9 @@ This line should look something like this: :::danger ⚠️ Do not commit `supabase/functions/updates/index.ts` into the remote repo\ This code is here [on purpose](https://github.com/Cap-go/capacitor-updater/issues/37#issuecomment-1684916354) -::: \ No newline at end of file +::: + +There also could be a problem that prevents the android app from connecting. If you do not see any requests being send to edge functions run +```bash +adb reverse tcp:54321 tcp:54321 +``` \ No newline at end of file