diff options
| author | Dhravya Shah <[email protected]> | 2025-09-28 16:42:06 -0700 |
|---|---|---|
| committer | Dhravya Shah <[email protected]> | 2025-09-28 16:42:06 -0700 |
| commit | 2093b316d9ecb9cfa9c550f436caee08e12f5d11 (patch) | |
| tree | 07b87fbd48b0b38ef26b9d5f839ad8cd61d82331 /apps/docs/deployment | |
| parent | Merge branch 'main' of https://github.com/supermemoryai/supermemory (diff) | |
| download | supermemory-2093b316d9ecb9cfa9c550f436caee08e12f5d11.tar.xz supermemory-2093b316d9ecb9cfa9c550f436caee08e12f5d11.zip | |
migrate docs to public
Diffstat (limited to 'apps/docs/deployment')
| -rw-r--r-- | apps/docs/deployment/self-hosting.mdx | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/apps/docs/deployment/self-hosting.mdx b/apps/docs/deployment/self-hosting.mdx new file mode 100644 index 00000000..7f7db4d3 --- /dev/null +++ b/apps/docs/deployment/self-hosting.mdx @@ -0,0 +1,243 @@ +--- +title: 'Self Hosting' +description: 'Deploy your own instance of the supermemory API on Cloudflare Workers' +--- + +<Warning> +This guide is intended for **enterprise customers only** who have specifically opted for self-hosting as part of their enterprise plan. If you're on a standard plan, please use our hosted API at [console.supermemory.ai](https://console.supermemory.ai). +</Warning> + +## Prerequisites + +Before you start, you'll need to gather several API keys and set up accounts with various services. This comprehensive guide will walk you through obtaining each required component. + +### Enterprise Deployment Package + +Your enterprise deployment package is provided by the supermemory team and contains: +- Your unique Host ID (`NEXT_PUBLIC_HOST_ID`) +- The compiled JavaScript bundle +- The deployment script + +Contact your supermemory enterprise representative to receive your deployment package. + +### Cloudflare + + +#### Create Account + +1. Go to [cloudflare.com](https://dash.cloudflare.com/sign-up) and create an account +3. Your **Account ID** is the long randon string in the URL bar + +#### Create API Token + +1. Navigate to [Cloudflare API Tokens](https://dash.cloudflare.com/?to=/:account/api-tokens) +2. Click **"Create Token"** +3. Use the **"Custom token"** template +4. Configure the token with these permissions: + - **Account:AI Gateway:Edit** + - **Account:Hyperdrive:Edit** + - **Account:Workers KV Storage:Edit** + - **Account:Workers R2 Storage:Edit** +7. Click **"Continue to summary"** → **"Create Token"** +8. **Important**: Copy and securely store the token immediately (it won't be shown again) + +#### Enable Workers + +1. In your Cloudflare dashboard, go to **Workers & Pages** +2. If prompted, accept the Workers terms of service +3. Choose a subdomain for your workers (e.g., `yourcompany.workers.dev`) + +Your `CLOUDFLARE_ACCOUNT_ID` and `CLOUDFLARE_API_TOKEN` are now ready. + +### Database + +You'll need to provide a PostgreSQL connection string via the `DATABASE_URL` environment variable. + +The database must: +- Support the **pgvector extension** for vector operations +- Be accessible from Cloudflare Workers +- Support SSL connections +- Allow connections from Cloudflare's IP ranges + +Your connection string should follow this format: +``` +postgresql://username:password@hostname:port/database +``` + +### LLM Providers + +#### OpenAI + +1. Go to [platform.openai.com](https://platform.openai.com) +2. Sign in or create an account +3. Navigate to **API Keys** in the left sidebar +4. Click **"Create new secret key"** +5. Name your key (e.g., "supermemory Self-Hosted") +6. Copy the key and store it securely +7. Add billing information if you haven't already + +#### Anthropic + +1. Go to [console.anthropic.com](https://console.anthropic.com) +2. Create an account and complete verification +3. Navigate to **API Keys** +4. Click **"Create Key"** +5. Name your key and copy it securely + +#### Gemini + +1. Go to [Google AI Studio](https://aistudio.google.com) +2. Sign in with your Google account +3. Click **"Get API key"** → **"Create API key"** +4. Choose an existing Google Cloud project or create a new one +5. Copy your API key + +#### Groq + +1. Go to [console.groq.com](https://console.groq.com) +2. Sign up for an account +3. Navigate to **API Keys** +4. Click **"Create API Key"** +5. Name your key and copy it + + + +{/* TODO: Add OAuth documentation */} +{/* ### Authentication Providers +#### GitHub OAuth (Optional) + +1. Go to [GitHub Developer Settings](https://github.com/settings/developers) +2. Click **"New OAuth App"** +3. Fill in the application details: + - **Application name**: Your app name + - **Homepage URL**: Your API domain (e.g., `https://api.yourdomain.com`) + - **Authorization callback URL**: `https://api.yourdomain.com/api/auth/callback/github` +4. Click **"Register application"** +5. Note the **Client ID** and generate a **Client Secret** +6. Use these for `AUTH_GITHUB_ID` and `AUTH_GITHUB_SECRET` + +#### Google OAuth (Optional) + +1. Go to [Google Cloud Console](https://console.cloud.google.com) +2. Create a new project or select an existing one +3. Enable the **Google+ API** +4. Go to **Credentials** → **Create Credentials** → **OAuth client ID** +5. Choose **Web application** +6. Add your domain to **Authorized JavaScript origins** +7. Add `https://api.yourdomain.com/api/auth/callback/google` to **Authorized redirect URIs** +8. Copy the **Client ID** and **Client secret** +9. Use these for `AUTH_GOOGLE_ID` and `AUTH_GOOGLE_SECRET` */} + +### Email Service Setup + +#### Resend + +1. Go to [resend.com](https://resend.com) and create an account +2. Navigate to **API Keys** +3. Click **"Create API Key"** +4. Name your key (e.g., "supermemory Production") +5. Copy the key for `RESEND_API_KEY` +6. Verify your sending domain in the **Domains** section + +### Connectors (Optional) + +#### Google Drive + +1. Go to [Google Cloud Console](https://console.cloud.google.com) +2. Create or select a project +3. Enable the **Google Drive API** +4. Go to **Credentials** → **Create Credentials** → **OAuth client ID** +5. Configure the OAuth consent screen if required +6. Choose **Web application** +7. Add authorized redirect URIs for your domain +8. Copy `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET` + +#### Microsoft OneDrive + +1. Go to [Azure Portal](https://portal.azure.com) +2. Navigate to **Microsoft Entra ID** → **App registrations** +3. Click **"New registration"** +4. Name your app and set redirect URI +5. Go to **Certificates & secrets** → **New client secret** +6. Copy the **Application (client) ID** and **Client secret** +7. Use for `MICROSOFT_CLIENT_ID` and `MICROSOFT_CLIENT_SECRET` + +#### Notion + +1. Go to [Notion Developers](https://developers.notion.com) +2. Click **"Create new integration"** +3. Fill in the integration details +4. Copy the **Internal Integration Token** +5. Set up OAuth if needed for user connections +6. Use for `NOTION_CLIENT_ID` and `NOTION_CLIENT_SECRET` + +--- + +## Setup deployment files + +Extract the deployment package provided by the supermemory team to your preferred directory: + +```bash +# Extract the deployment package +$ unzip supermemory-enterprise-deployment.zip +$ cd supermemory-deployment +``` + +--- + +## Configure environment variables + +The deployment script reads **all** environment variables from your shell at runtime. We ship an example file that lists the full set supported by the worker. + +```bash +# Copy the template and start editing +$ cp packages/alchemy/env.example .env + +# Open the file in your editor of choice and fill in the blanks +$ $EDITOR .env +``` + +Below is a quick reference. +**Required** values are mandatory for a successful deploy – leave optional ones empty if you don't need the related feature. + +| Name | Required? | Description | +|------|-----------|-------------| +| `NODE_ENV` | ✅ | `development`, `staging` or `production`. | +| `NEXT_PUBLIC_HOST_ID` | ✅ | Your unique Host ID provided by the supermemory team. | +| `BETTER_AUTH_SECRET` | ✅ | Random 32-byte string – run `openssl rand -base64 32`. | +| `BETTER_AUTH_URL` | ✅ | Public base URL for the API (no trailing `/`). Example: `https://api.example.com`. | +| `DATABASE_URL` | ✅ | Postgres connection string (e.g. `postgres://user:pass@host:5432/db`). | +| `CLOUDFLARE_ACCOUNT_ID` | ✅ | Your Cloudflare account ID. | +| `CLOUDFLARE_API_TOKEN` | ✅ | Token created in *Prerequisites*. | +| `OPENAI_API_KEY` | ✅ | Key from [platform.openai.com](https://platform.openai.com). | +| `RESEND_API_KEY` | ✅ | E-mail provider key if you plan to send e-mails. | +| `ANTHROPIC_API_KEY` | | Needed to use Claude models. | +| `GEMINI_API_KEY` | | Key for Google Gemini models. | +| `GROQ_API_KEY` | | Key for Groq models. | +| `AUTH_GITHUB_ID` / `AUTH_GITHUB_SECRET` | | Enable GitHub OAuth login. | +| `AUTH_GOOGLE_ID` / `AUTH_GOOGLE_SECRET` | | Enable Google OAuth login. | +| `GOOGLE_CLIENT_ID` / `GOOGLE_CLIENT_SECRET` | | Needed for Google Drive connector. | +| `MICROSOFT_CLIENT_ID` / `MICROSOFT_CLIENT_SECRET` | | Needed for OneDrive connector. | +| `NOTION_CLIENT_ID` / `NOTION_CLIENT_SECRET` | | Needed for Notion connector. | +| `CLOUDFLARE_AI_GATEWAY_NAME` / `CLOUDFLARE_AI_GATEWAY_TOKEN` | | Only if you want to route requests through an AI Gateway. | +| `SENTRY_DSN` | | If you use Sentry for error reporting. | + +--- + +## Deploy + +With your `.env` in place, run the deployment script: + +```bash +# Run the deployment script provided in your package +$ bun ./deploy.ts +``` + + +--- + +## Updating Your Deployment + +To update your supermemory deployment, follow the same process as the initial deployment described in the **Deploy** section above. You can reuse your existing `.env` file and add/remove any new environment variables as needed. + +---
\ No newline at end of file |