From 5c558fb094a4047257b240863550c12576b1f352 Mon Sep 17 00:00:00 2001 From: ccbikai Date: Fri, 23 May 2025 12:12:56 +0800 Subject: [PATCH] docs: update deployment and add MCP instructions Simplifies deployment documentation by moving platform-specific instructions to separate files. Adds new section for MCP (Multi-Cloud Platform) integration with OpenAPI configuration example. Key changes: - Fixes shadcn-vue capitalization in tech stack - Removes "Support for Other Deployment Platforms" from roadmap - Adds documentation for MCP server configuration - Reorganizes deployment instructions into platform-specific guides --- README.md | 49 ++++++++++++++++++++++---------------- docs/deployment/pages.md | 23 ++++++++++++++++++ docs/deployment/workers.md | 19 +++++++++++++++ 3 files changed, 70 insertions(+), 21 deletions(-) create mode 100644 docs/deployment/pages.md create mode 100644 docs/deployment/workers.md diff --git a/README.md b/README.md index 54168eb..a94eaad 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Site Token: SinkCool - **Framework**: [Nuxt](https://nuxt.com/) - **Database**: [Cloudflare Workers KV](https://developers.cloudflare.com/kv/) - **Analytics Engine**: [Cloudflare Workers Analytics Engine](https://developers.cloudflare.com/analytics/) -- **UI Components**: [Shadcn-vue](https://www.shadcn-vue.com/) +- **UI Components**: [shadcn-vue](https://www.shadcn-vue.com/) - **Styling:** [Tailwind CSS](https://tailwindcss.com/) - **Deployment**: [Cloudflare](https://www.cloudflare.com/) @@ -94,31 +94,12 @@ We welcome your contributions and PRs. - [ ] Analytics Enhancements (Support for merging filter conditions) - [ ] Dashboard Performance Optimization (Infinite loading) - [ ] Units Test -- [ ] Support for Other Deployment Platforms ## 🏗️ Deployment > Video tutorial: [Watch here](https://www.youtube.com/watch?v=MkU23U2VE9E) -1. [Fork](https://github.com/ccbikai/Sink/fork) the repository to your GitHub account. -2. Create a project in [Cloudflare Pages](https://developers.cloudflare.com/pages/). -3. Select the `Sink` repository and choose the `Nuxt.js` preset. -4. Configure the following environment variables: - - `NUXT_SITE_TOKEN`: Must be longer than **8** characters. This token grants access to your dashboard. - - `NUXT_CF_ACCOUNT_ID`: Locate your [account ID](https://developers.cloudflare.com/fundamentals/setup/find-account-and-zone-ids/). - - `NUXT_CF_API_TOKEN`: Create a [Cloudflare API token](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/) with at least `Account.Account Analytics` permissions. [See reference.](https://developers.cloudflare.com/analytics/analytics-engine/sql-api/#authentication) - -5. Save and deploy the project. -6. Cancel the deployment, then navigate to **Settings** -> **Bindings** -> **Add**: - - **KV Namespace**: Bind the variable name `KV` to a [KV namespace](https://developers.cloudflare.com/kv/) (create a new one under **Storage & Databases** -> **KV**). - - **Workers AI** (_Optional_): Bind the variable name `AI` to the Workers AI Catalog. - - **Analytics Engine**: - - In **Workers & Pages**, go to **Account details** on the right side, find `Analytics Engine`, and click `Set up` to enable the free version. - - Return to **Settings** -> **Bindings** -> **Add** and select **Analytics engine**. - - Bind the variable name `ANALYTICS` to the `sink` dataset. - -7. Redeploy the project. -8. Update code, refer to the official GitHub documentation [Syncing a fork branch from the web UI](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork#syncing-a-fork-branch-from-the-web-ui). +We currently support deployment to [Cloudflare Workers](./docs/deployment/workers.md) (recommended) and [Cloudflare Pages](./docs/deployment/pages.md). ## ⚒️ Configuration @@ -128,6 +109,32 @@ We welcome your contributions and PRs. [API Docs](./docs/api.md) +## 🧰 MCP + +We currently do not support native MCP Server, but we have OpenAPI documentation, and you can use the following method to support MCP. + +> Replace the domain name in `OPENAPI_SPEC_URL` with your own domain name. +> +> The `API_KEY` is the same as the `NUXT_SITE_TOKEN` in the environment variables. + +```json +{ + "mcpServers": { + "sink": { + "command": "uvx", + "args": [ + "mcp-openapi-proxy" + ], + "env": { + "OPENAPI_SPEC_URL": "https://sink.cool/_docs/openapi.json", + "API_KEY": "SinkCool", + "TOOL_WHITELIST": "/api/link/create" + } + } + } +} +``` + ## 🙋🏻 FAQs [FAQs](./docs/faqs.md) diff --git a/docs/deployment/pages.md b/docs/deployment/pages.md new file mode 100644 index 0000000..7954fa1 --- /dev/null +++ b/docs/deployment/pages.md @@ -0,0 +1,23 @@ +# Deployment on Cloudflare Pages + +1. [Fork](https://github.com/ccbikai/Sink/fork) the repository to your GitHub account. +2. Create a project in [Cloudflare Pages](https://developers.cloudflare.com/pages/). +3. Select the `Sink` repository and choose the `Nuxt.js` preset. +4. Configure the following environment variables: + - `NUXT_SITE_TOKEN`: Must be at least **8** characters long. This token grants access to your dashboard. + - `NUXT_CF_ACCOUNT_ID`: Find your [account ID](https://developers.cloudflare.com/fundamentals/setup/find-account-and-zone-ids/). + - `NUXT_CF_API_TOKEN`: Create a [Cloudflare API token](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/) with at least `Account.Account Analytics` permission. [See reference.](https://developers.cloudflare.com/analytics/analytics-engine/sql-api/#authentication) + +5. Save and deploy the project. +6. Cancel the deployment, then go to **Settings** -> **Bindings** -> **Add**: + - **KV Namespace**: Bind the variable name `KV` to a [KV namespace](https://developers.cloudflare.com/kv/) (create a new one under **Storage & Databases** -> **KV**). + - **Workers AI** (_Optional_): Bind the variable name `AI` to the Workers AI Catalog. + - **Analytics Engine**: + - In **Workers & Pages**, go to **Account details** in the right panel, locate `Analytics Engine`, and click `Set up` to enable the free tier. + - Return to **Settings** -> **Bindings** -> **Add** and select **Analytics engine**. + - Bind the variable name `ANALYTICS` to the `sink` dataset. + +7. Add Compatibility flags + - Go to **Settings** -> **Runtime** -> **Compatibility flags** and set the following flags `nodejs_compat`. +8. Redeploy the project. +9. To update code, refer to the official GitHub documentation [Syncing a fork branch from the web UI](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork#syncing-a-fork-branch-from-the-web-ui). diff --git a/docs/deployment/workers.md b/docs/deployment/workers.md new file mode 100644 index 0000000..dbaeb15 --- /dev/null +++ b/docs/deployment/workers.md @@ -0,0 +1,19 @@ +# Deployment on Cloudflare Workers + +1. [Fork](https://github.com/ccbikai/Sink/fork) the repository to your GitHub account. +2. Create a [KV namespace](https://developers.cloudflare.com/kv/) (under **Storage & Databases** -> **KV**), and copy the namespace ID. +3. Update the `kv_namespaces` ID in `wrangler.jsonc` with your own namespace ID. +4. Create a project in [Cloudflare Workers](https://developers.cloudflare.com/workers/). +5. Select the `Sink` repository and use the following build and deploy commands: + - **Build command**: `pnpm run build` or `npm run build` + - **Deploy command**: `npx wrangler deploy` + +6. Save and deploy the project. +7. After deployment, go to **Settings** -> **Variables and Secrets** -> **Add**, and configure the following environment variables: + - `NUXT_SITE_TOKEN`: Must be at least **8** characters long. This token grants access to your dashboard. + - `NUXT_CF_ACCOUNT_ID`: Find your [account ID](https://developers.cloudflare.com/fundamentals/setup/find-account-and-zone-ids/). + - `NUXT_CF_API_TOKEN`: Create a [Cloudflare API token](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/) with at least `Account.Account Analytics` permission. [See reference.](https://developers.cloudflare.com/analytics/analytics-engine/sql-api/#authentication) + +8. Enable Analytics Engine. In **Workers & Pages**, go to **Account details** in the right panel, locate **Analytics Engine**, and click **Set up** to enable the free tier. +9. Redeploy the project. +10. To update your code, refer to the official GitHub documentation: [Syncing a fork branch from the web UI](https://docs.github.com/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork-branch-from-the-web-ui).