Deploy to Deno Deploy

You can deploy SilverBullet to Deno Deploy for free, and store space content in Deno KV. This is a convenient option to deploy SilverBullet in the cloud, without having to run or pay for a server.

Steps

Sign up for a (free) Deno Deploy account and “Create an empty project” there.

Jump to the “Settings”, give your project a nicer name, and configure the following environment variables:

  • SB_FOLDER: db://
  • SB_PORT: 8000
  • SB_SYNC_ONLY: 1 (Deno Deploy does not currently support Workers, so running indexing etc. on the server will not work)
  • SB_USER: (e.g. pete:letmein) — this is super important otherwise your space will be open to anybody without any authentication
  • SB_AUTH_TOKEN: (Optional) If you would like to migrate existing content from elsewhere (e.g. a local folder) using [[Sync]], you will want to configure an authentication token here (pick something secure).

Make sure you have installed Deno locally on your machine.

Then, install deployctl via:

$ deno install -Arf https://deno.land/x/deploy/deployctl.ts

To deploy, run:

$ deployctl deploy -p=your-project --entrypoint=https://edge.silverbullet.md/silverbullet.js --include= --prod

This will ask you to authenticate with your Deno Deploy account, and then deploy SilverBullet.

Migrating and backing up content

This setup stores your space in Deno’s KV database, which is still a beta feature and not specifically designed for this purpose. Therefore it’s recommended to use something like Sync to make backups elsewhere.

For this, be sure to also configure a SB_AUTH_TOKEN variable.

1 Like

tansk for this guide

but after trying to deploy with

$ deployctl deploy -p=your-project --entrypoint=https://silverbullet.md/silverbullet.js --include= --prod

silverbullet.js 404’s

Error The deployment failed: HTTP status client error (404 Not Found) for url (https://silverbullet.md/silverbullet.js)

Right, the URL changed, updated in the original post.

I don’t know the details about SBs internals, but sketch my vision, correct me, if I’m wrong:

deno.dev allows you to sync with any github repo. So you can fork any version of silverbullet and could run directly deploy it (without installing anything at all).

You can upgrade your mirror anytime, so you decide when to upgrade.

Only missing part is the single entrypoint of the project for deno deploy.

Yes, SB requires a build step (to build the plugs, Frontend and bundle them up in a single JS file) if that can somehow be automated as part of the Deno deploy process you don’t need to do a local checkout. Theoretically this should be doable perhaps with the help of GitHub actions somehow.

A new setting popped up when deploying github projects on deno. It might help.