From 3630d584fa2a9e640ddc48e45512be3206fb92b2 Mon Sep 17 00:00:00 2001 From: Dhravya Shah Date: Thu, 30 Jan 2025 20:48:51 -0700 Subject: [PATCH] initial docs setup --- apps/docs/changelog/overview.mdx | 11 ++ apps/docs/development.mdx | 106 ----------------- apps/docs/favicon.png | Bin 0 -> 23616 bytes apps/docs/favicon.svg | 49 -------- apps/docs/images/hero-dark.svg | 169 ++++----------------------- apps/docs/images/hero-light.svg | 167 ++++---------------------- apps/docs/logo/dark.svg | 56 +-------- apps/docs/logo/light.svg | 52 +-------- apps/docs/mint.json | 58 ++++----- apps/docs/self-hosting.mdx | 94 +++++++++++++++ apps/docs/snippets/snippet-intro.mdx | 5 +- apps/web/assets/logo-dark.svg | 14 --- apps/web/assets/logo-light.svg | 11 -- 13 files changed, 182 insertions(+), 610 deletions(-) create mode 100644 apps/docs/changelog/overview.mdx delete mode 100644 apps/docs/development.mdx create mode 100644 apps/docs/favicon.png delete mode 100644 apps/docs/favicon.svg create mode 100644 apps/docs/self-hosting.mdx delete mode 100644 apps/web/assets/logo-dark.svg delete mode 100644 apps/web/assets/logo-light.svg diff --git a/apps/docs/changelog/overview.mdx b/apps/docs/changelog/overview.mdx new file mode 100644 index 00000000..c04403dd --- /dev/null +++ b/apps/docs/changelog/overview.mdx @@ -0,0 +1,11 @@ +--- +title: "Product Updates" +description: "New updates and improvements" +mode: "center" +icon: "rocket" +--- + + + This is how you use a changelog with a label + and a description. + diff --git a/apps/docs/development.mdx b/apps/docs/development.mdx deleted file mode 100644 index c2f2ccda..00000000 --- a/apps/docs/development.mdx +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: 'Development' -description: 'Preview changes locally to update your docs' ---- - - - **Prerequisite**: Please install Node.js (version 19 or higher) before proceeding. - - -Follow these steps to install and run Mintlify on your operating system: - -**Step 1**: Install Mintlify: - - - - ```bash npm - npm i -g mintlify - ``` - -```bash yarn -yarn global add mintlify -``` - - - -**Step 2**: Navigate to the docs directory (where the `mint.json` file is located) and execute the following command: - -```bash -mintlify dev -``` - -A local preview of your documentation will be available at `http://localhost:3000`. - -### Custom Ports - -By default, Mintlify uses port 3000. You can customize the port Mintlify runs on by using the `--port` flag. To run Mintlify on port 3333, for instance, use this command: - -```bash -mintlify dev --port 3333 -``` - -If you attempt to run Mintlify on a port that's already in use, it will use the next available port: - -```md -Port 3000 is already in use. Trying 3001 instead. -``` - -## Mintlify Versions - -Please note that each CLI release is associated with a specific version of Mintlify. If your local website doesn't align with the production version, please update the CLI: - - - -```bash npm -npm i -g mintlify@latest -``` - -```bash yarn -yarn global upgrade mintlify -``` - - - -## Validating Links - -The CLI can assist with validating reference links made in your documentation. To identify any broken links, use the following command: - -```bash -mintlify broken-links -``` - -## Deployment - - - Unlimited editors available under the [Pro - Plan](https://mintlify.com/pricing) and above. - - -If the deployment is successful, you should see the following: - - - - - -## Code Formatting - -We suggest using extensions on your IDE to recognize and format MDX. If you're a VSCode user, consider the [MDX VSCode extension](https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx) for syntax highlighting, and [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) for code formatting. - -## Troubleshooting - - - - - This may be due to an outdated version of node. Try the following: - 1. Remove the currently-installed version of mintlify: `npm remove -g mintlify` - 2. Upgrade to Node v19 or higher. - 3. Reinstall mintlify: `npm install -g mintlify` - - - - - Solution: Go to the root of your device and delete the \~/.mintlify folder. Afterwards, run `mintlify dev` again. - - - -Curious about what changed in the CLI version? [Check out the CLI changelog.](https://www.npmjs.com/package/mintlify?activeTab=versions) diff --git a/apps/docs/favicon.png b/apps/docs/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..fd3dd8d3c59507e141dc24cdc8e5c3d034c5c02d GIT binary patch literal 23616 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/docs/images/hero-dark.svg b/apps/docs/images/hero-dark.svg index c6a30e88..b2c2bcee 100644 --- a/apps/docs/images/hero-dark.svg +++ b/apps/docs/images/hero-dark.svg @@ -1,161 +1,32 @@ - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - + - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/apps/docs/images/hero-light.svg b/apps/docs/images/hero-light.svg index 297d68fb..4d347b2a 100644 --- a/apps/docs/images/hero-light.svg +++ b/apps/docs/images/hero-light.svg @@ -1,155 +1,32 @@ - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/apps/docs/logo/dark.svg b/apps/docs/logo/dark.svg index a6283786..513d7685 100644 --- a/apps/docs/logo/dark.svg +++ b/apps/docs/logo/dark.svg @@ -1,55 +1,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/apps/docs/logo/light.svg b/apps/docs/logo/light.svg index 582b3b95..96ae2b7b 100644 --- a/apps/docs/logo/light.svg +++ b/apps/docs/logo/light.svg @@ -1,51 +1,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/apps/docs/mint.json b/apps/docs/mint.json index 2799bba0..3964580b 100644 --- a/apps/docs/mint.json +++ b/apps/docs/mint.json @@ -1,61 +1,61 @@ { "$schema": "https://mintlify.com/schema.json", - "name": "Starter Kit", + "name": "Supermemory | Memory API for the AI era", "logo": { "dark": "/logo/dark.svg", "light": "/logo/light.svg" }, - "favicon": "/favicon.svg", + "favicon": "/favicon.png", "colors": { - "primary": "#0D9373", - "light": "#07C983", - "dark": "#0D9373", + "primary": "#1E3A8A", + "light": "#3B82F6", + "dark": "#1E3A8A", "anchors": { - "from": "#0D9373", - "to": "#07C983" + "from": "#1E3A8A", + "to": "#3B82F6" } }, "topbarLinks": [ { "name": "Support", - "url": "mailto:hi@mintlify.com" + "url": "mailto:dhravya@supermemory.com" } ], "topbarCtaButton": { "name": "Dashboard", - "url": "https://dashboard.mintlify.com" + "url": "https://supermemory.ai" }, "tabs": [ { "name": "API Reference", "url": "api-reference" + }, + { + "name": "Changelog", + "url": "changelog/overview" } ], "anchors": [ { - "name": "Documentation", - "icon": "book-open-cover", - "url": "https://mintlify.com/docs" + "name": "Github", + "icon": "github", + "url": "https://git.new/memory" }, { "name": "Community", - "icon": "slack", - "url": "https://mintlify.com/community" + "icon": "discord", + "url": "https://discord.gg/supermemory" }, { - "name": "Blog", - "icon": "newspaper", - "url": "https://mintlify.com/blog" + "name": "X (Twitter)", + "icon": "twitter", + "url": "https://x.com/supermemoryai" } ], "navigation": [ { "group": "Get Started", - "pages": [ - "introduction", - "quickstart", - "development" - ] + "pages": ["introduction", "quickstart", "self-hosting"] }, { "group": "Essentials", @@ -70,9 +70,7 @@ }, { "group": "API Documentation", - "pages": [ - "api-reference/introduction" - ] + "pages": ["api-reference/introduction"] }, { "group": "Endpoint Examples", @@ -81,11 +79,15 @@ "api-reference/endpoint/create", "api-reference/endpoint/delete" ] + }, + { + "group": "Changelog", + "pages": ["changelog/overview"] } ], "footerSocials": { - "x": "https://x.com/mintlify", - "github": "https://github.com/mintlify", - "linkedin": "https://linkedin.com/company/mintlify" + "x": "https://x.com/supermemoryai", + "github": "https://github.com/supermemoryai", + "linkedin": "https://linkedin.com/company/supermemoryai" } } diff --git a/apps/docs/self-hosting.mdx b/apps/docs/self-hosting.mdx new file mode 100644 index 00000000..efac8170 --- /dev/null +++ b/apps/docs/self-hosting.mdx @@ -0,0 +1,94 @@ +--- +title: "Self-hosting" +description: "Self-host Supermemory on your own infrastructure" +--- + +## Local Setup + + + + ```bash + git clone https://github.com/supermemoryai/supermemory.git + cd supermemory + npm i -g bun + bun install + ``` + + + + To spin up the database locally, use Docker Compose: + + ```bash + docker-compose up -d + ``` + + This will start a PostgreSQL database with pgvector extension at `localhost:5432`. + + To generate and apply migrations: + ```bash + bun run generate-migration + bun run migrate:local + ``` + + > Note: When coding or making changes, you MUST use the drizzle-orm functions exported from `packages/db` for interacting with the database. Not using them will cause type errors that are hard to debug. + + + + #### Backend (`apps/backend/.env` and `apps/backend/.dev.vars`): + + ```env + WORKOS_API_KEY=your_workos_api_key + WORKOS_CLIENT_ID=your_workos_client_id + WORKOS_COOKIE_PASSWORD=your_cookie_password + DATABASE_URL="postgresql://postgres:postgres@localhost:5432/supermemorylocal" + CONTENT_WORKFLOW=your_content_workflow + GEMINI_API_KEY=your_gemini_api_key + NODE_ENV=development + OPEN_AI_API_KEY=your_openai_api_key + BRAINTRUST_API_KEY=your_braintrust_api_key + RESEND_API_KEY=your_resend_api_key + TURNSTILE_SECRET_KEY=your_turnstile_secret_key + ``` + + #### Web (`apps/web/.env` and `apps/web/.dev.vars`): + + ```env + WORKOS_CLIENT_ID=your_workos_client_id + WORKOS_API_KEY=your_workos_api_key + WORKOS_REDIRECT_URI="http://localhost:3000/callback" + WORKOS_COOKIE_PASSWORD=your_cookie_password + DATABASE_URL="postgresql://postgres:postgres@localhost:5432/supermemorylocal" + + CLOUDFLARE_ACCOUNT_ID=your_cloudflare_account_id + R2_ACCESS_KEY_ID=your_r2_access_key_id + R2_SECRET_ACCESS_KEY=your_r2_secret_access_key + + BACKEND_URL=http://localhost:8787 + OPENAI_API_KEY=your_openai_api_key + NOTION_CLIENT_ID=your_notion_client_id + NOTION_CLIENT_SECRET=your_notion_client_secret + + NODE_ENV=development + STRIPE_CHECKOUT_KEY=your_stripe_checkout_key + STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret + ``` + + You also need to update the Wrangler config for the web app and backend to your own account's resources on Cloudflare. + + + + To edit the database schema, modify the files in `packages/db/schema.ts`, and then repeat the migration steps from the Database Setup section. + + + + 1. Install dependencies: + ```bash + bun install + ``` + + 2. Start the development servers: + ```bash + bun run dev + ``` + + diff --git a/apps/docs/snippets/snippet-intro.mdx b/apps/docs/snippets/snippet-intro.mdx index c57e7c75..32f95c0d 100644 --- a/apps/docs/snippets/snippet-intro.mdx +++ b/apps/docs/snippets/snippet-intro.mdx @@ -1,4 +1 @@ -One of the core principles of software development is DRY (Don't Repeat -Yourself). This is a principle that apply to documentation as -well. If you find yourself repeating the same content in multiple places, you -should consider creating a custom snippet to keep your content in sync. +hi \ No newline at end of file diff --git a/apps/web/assets/logo-dark.svg b/apps/web/assets/logo-dark.svg deleted file mode 100644 index 246f2163..00000000 --- a/apps/web/assets/logo-dark.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - \ No newline at end of file diff --git a/apps/web/assets/logo-light.svg b/apps/web/assets/logo-light.svg deleted file mode 100644 index 5ca15922..00000000 --- a/apps/web/assets/logo-light.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - \ No newline at end of file