Skip to content

🧩 Components Manager for the Web. Free, open-source, and fast!

License

Notifications You must be signed in to change notification settings

cloudflare/webcm

Repository files navigation

WebCM

WebCM is a proxy server implementation of a Components Manager. It works independently from your existing HTTP server. By proxying your server, it can add endpoints, execute server-side code, manipulate responses and more. These capabilities allow for a very performant way to load Managed Components.

Usage

💡 Prerequisite: To run WebCM you need to use Node version 18. You can then install all dependencies with npm i.

It's very easy to get up and running with WebCM using npx!

  1. Create a webcm.config.ts config file (use example.config.ts as an example)
  2. Run npx webcm
  3. WebCM will automatically download the Managed Components you specified and start the server

Develop

  1. git clone [email protected]:cloudflare/webcm.git && cd webcm && npm i
  2. Create a webcm.config.ts config file (use example.config.ts as an example)
  3. Run npm run dev

Build your own Managed Components

You might want to make WebCM load a locally developed Managed Component.

To do so, run:

npx webcm path/to/component.ts

This will run the component on a simple static site, with all permissions enabled. If you want to proxy a different website, pass the URL as another CLI argument:

npx webcm path/to/component.ts https://example.com

To pass custom settings to that component, use --settings_<settingName> flags, like so:

npx webcm path/to/component.ts --settings_apiKey=xxxxxxxxx

To test the component with different permissions, create a webcm.config.ts (see example.config.ts) and set it to:

export default {
  components: [
    {
      path: './path/to/component.ts',
      permissions: ['execute_unsafe_scripts'],
    },
  ],
}

Read more

About

🧩 Components Manager for the Web. Free, open-source, and fast!

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published