用于使用 Vercel 发布 Datasette 数据的插件。
将此插件安装在与 Datasette 相同的环境中。
$ datasette install datasette-publish-vercel
首先,通过遵循他们的指示安装 Vercel CLI 工具。
运行 vercel login
登录(或创建)账户。
现在你可以使用 datasette publish vercel
来发布你的数据
datasette publish vercel my-database.db --project=my-database
--project
参数是必需的 - 它指定了用于部署的项目名称。这将作为部署 URL 的一部分。
--no-prod
将项目部署,但不更新指向新部署的“生产”URL 别名。不使用此选项,所有部署都将直接进入生产环境。--debug
启用 Vercel CLI 调试输出。--token
允许你传入 Now 认证令牌,而无需首先运行now login
来配置工具。令牌可以在 Vercel Web 控制台的“账户设置” -> “令牌”下创建。--public
运行vercel --public
来发布应用程序源代码到/_src
例如 https://datasette-public.now.sh/_src 并使最近的日志可在/_logs
例如 https://datasette-public.now.sh/_logs--generate-dir
- 默认情况下,此工具在临时目录中生成一个新的 Vercel 应用,部署后删除该目录。使用--generate-dir=my-app
可以将生成的应用程序文件输出到你选择的新目录中。然后你可以在该目录中运行vercel
来部署它。--setting default_page_size 10
- 用于设置 Datasette 配置,如文档中所述。这是对不受支持的--extra-options
选项的替代。
警告: 此插件尚未实现其中一些选项。特别是,以下选项尚不可用
--extra-options
- 使用上面描述的--setting
代替。--plugin-secret
--version-note
$ datasette publish vercel --help
Usage: datasette publish vercel [OPTIONS] [FILES]...
Publish to https://vercel.com/
Options:
-m, --metadata FILENAME Path to JSON/YAML file containing metadata to publish
--extra-options TEXT Extra options to pass to datasette serve
--branch TEXT Install datasette from a GitHub branch e.g. main
--template-dir DIRECTORY Path to directory containing custom templates
--plugins-dir DIRECTORY Path to directory containing custom plugins
--static MOUNT:DIRECTORY Serve static files from this directory at /MOUNT/...
--install TEXT Additional packages (e.g. plugins) to install
--plugin-secret ...
Secrets to pass to plugins, e.g. --plugin-secret
datasette-auth-github client_id xxx
--version-note TEXT Additional note to show on /-/versions
--secret TEXT Secret used for signing secure values, such as signed
cookies
--title TEXT Title for metadata
--license TEXT License label for metadata
--license_url TEXT License URL for metadata
--source TEXT Source label for metadata
--source_url TEXT Source URL for metadata
--about TEXT About label for metadata
--about_url TEXT About URL for metadata
--token TEXT Auth token to use for deploy
--project PROJECT Vercel project name to use [required]
--scope TEXT Optional Vercel scope (e.g. a team name)
--no-prod Don't deploy directly to production
--debug Enable Vercel CLI debug output
--public Publish source with Vercel CLI --public
--generate-dir DIRECTORY Output generated application files and stop without
deploying
--generate-vercel-json Output generated vercel.json file and stop without
deploying
--vercel-json FILENAME Custom vercel.json file to use instead of generating
one
--setting SETTING... Setting, see docs.datasette.io/en/stable/settings.html
--crossdb Enable cross-database SQL queries
--help Show this message and exit.
如果你想在 Vercel 配置中添加额外的重定向或类似设置,你可能需要提供一个自定义的 vercel.json
文件。
为此,首先使用 --generate-vercel-json
选项生成配置文件(不运行部署)
datasette publish vercel my-database.db \
--project=my-database \
--generate-vercel-json > vercel.json
现在你可以编辑生成的 vercel.json
文件,添加你的自定义选项。
然后使用以下命令运行部署:
datasette publish vercel my-database.db \
--project=my-database \
--vercel-json=vercel.json
Datasette 使用一个秘密字符串用于签名认证 cookie 等目的。当服务器重新启动时,此秘密字符串会重置,这将导致使用签名 cookie 认证的用户被退出登录。
你可以通过生成一个 DATASETTE_SECRET
秘密字符串,并将其设置为一个Vercel 环境变量来避免这种情况。如果这样做,该秘密字符串将保持一致,你的用户也不会被退出登录。
此插件可以与 GitHub Actions 一起使用,以便在推送到仓库时或按计划自动部署 Datasette 实例。
GitHub Actions 运行器已预装 Vercel 部署工具。你需要在 vercel.com/account/tokens 为你的账户创建一个 API 令牌,并将其作为名为 VERCEL_TOKEN
的秘密存储在你的 GitHub 仓库中。
确保你的工作流已使用 pip
安装了 datasette
和 datasette-publish-vercel
,然后将以下步骤添加到你的 GitHub Actions 工作流中
- name: Deploy Datasette using Vercel
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
run: |-
datasette publish vercel mydb.db \
--token $VERCEL_TOKEN \
--project my-vercel-project
你可以在 simonw/til 仓库中看到以这种方式使用 Vercel 的完整工作流示例。