Getting started
Kitset keeps your videos in your own Cloudflare account. The setup takes a few minutes. You make one token in the Cloudflare dashboard, and Kitset configures the rest.
What you need
- A Mac with Apple silicon and macOS 15 or later.
- A Cloudflare account. The free plan is enough for most sites. Its Workers allow 100,000 requests each day, one for each view of a player page or an embed. See The daily limit of the Workers Free plan.
- A domain on Cloudflare. Kitset gives your site two hostnames on it, for example
media.example.comandwatch.example.com. - R2, the storage of Cloudflare, turned on in your account. Cloudflare asks for a payment method, even within the free tier. R2 includes 10 GB of storage each month at no charge.
Which domain
Cloudflare Registrar is the easiest way to get a new domain. If you already have a domain on Cloudflare, Kitset can use it.
To use a domain that is not on Cloudflare yet, you move its DNS to Cloudflare. That move includes the email records of the domain. For a company with an important domain, a separate domain only for video is the safest choice.
Set up a site
Open Kitset. The first time, the Set Up a Site window opens. Later, use File ▸ Set Up a Site….
To use a site that a collaborator already set up, click Join with a Code… instead. See Collaborators.
1. Before you begin
The first screen lists the steps that you do in the Cloudflare dashboard: make an account, put a domain on Cloudflare, and turn on R2. Each step has a link to the correct page. Then click I’m Ready.

2. Make a Cloudflare Account API Token
Kitset uses this token to configure your Cloudflare account. Kitset keeps it in the keychain of your Mac, and asks for Touch ID each time that it uses the token.
First, choose how Kitset gets the R2 API Tokens that each Mac uses to publish:
- Automatically manage R2 API Tokens (recommended). Kitset makes a token for each Mac and each collaborator, and it can revoke them. The Cloudflare Account API Token then needs the permission to make tokens.
- Manually manage R2 API Tokens. You make each R2 API Token in the dashboard and paste it into Kitset. The Cloudflare Account API Token then has fewer permissions.
Each R2 API Token can only read and write the files in your bucket, and clear the cache of your video files.
Then click Open the Token Form. The dashboard opens with the name and the permissions filled in.
- If the dashboard asks for an account, choose your account.
- Change All Domains to Specified Domains, and choose the domain that you want to use.
- Select Review token, then Create token.
- Copy Your API Token, and paste it into Kitset.

Click Check Token. A Cloudflare Account API Token starts with cfat_. A user API token, which starts with cfut_, does not work.
The token form gives these permissions. Kitset uses each one for one part of the setup.
| Permission | Level | Kitset uses it to |
|---|---|---|
| Account Settings | Read | Find your account. |
| Workers R2 Storage | Edit | Make the bucket, its hostname and its CORS rule. |
| Workers Scripts | Edit | Deploy the page Worker. |
| Workers KV Storage | Edit | Keep the sessions of viewers. |
| Account API Tokens | Edit | Make and revoke R2 API Tokens. Only with automatic tokens. |
| Zone | Read | Find your domains. |
| DNS | Read | Check the hostnames. |
| Workers Routes | Edit | Give the page Worker its hostname. |
| Zone WAF | Edit | Add the firewall rule for private files. |
| Cache Settings | Edit | Add the Cache Rule for the playlists. |
| Cache Purge | Purge | Clear old video files from the cache after a change. |
If this Mac already has a token from an earlier setup, click Use It to use that token again.
3. Choose where your videos go
- Account: the Cloudflare account, if the token can reach more than one.
- Bucket: a new bucket, or an existing one. The default name is
kitset-media. Viewers never see the name of the bucket. - Media folder: the folder in the bucket for the videos. The default is
media. - Hostnames: Media serves the video files and the posters, for example
media.example.com. Pages shows a player page for each video, for examplewatch.example.com. The two hostnames must be different.

You cannot change the media folder or the hostnames after the setup. Kitset cannot move the files of every video to a new folder, and a new hostname would break every link that people already have.
If you choose a bucket that already has a Kitset site, Kitset reads the settings of that site and shows them. Kitset then sets up this Mac for that site, and you cannot change them.
Click Set Up Site.
4. Kitset sets up the site
Kitset shows each step with its state. A green tick means done. An outline tick means that the setting was already in place.
| Step | What Kitset does in your account |
|---|---|
| Account and Cloudflare Account API Token | Checks the token. |
| Bucket | Makes the R2 bucket, or finds it. |
| R2 API Token | Makes the R2 API Token of this Mac. With manual tokens, Kitset shows how to make it. |
| CORS rule | Lets the player pages read the video files. |
| Media hostname | Connects the media hostname to the bucket. This can take a few minutes. |
| r2.dev access | Turns off the public r2.dev address of the bucket, which has no firewall. |
| WAF rule for private files | Blocks the files that only Kitset reads, such as the reference of each video. |
| Cache Rule for manifests | Lets Cloudflare cache the playlists and the subtitles. |
| KV namespace for sessions | Makes the storage for the sessions of viewers. |
| Page Worker | Deploys the Worker that shows the player pages. |
| Page hostname | Connects the page hostname to the Worker. |
| Site settings | Writes the settings of the site to the bucket. |
When a step needs the dashboard, Kitset shows a link to the correct page and a Check Again button. A failed step has Retry. The steps that are done stay done, so the setup continues where it stopped.
When the setup is complete, the Library window of the new site opens.
Publish your first video
Drag a video file onto the Library window. See Publishing a video.
What it costs
You pay Cloudflare directly, in your own account. R2 storage costs US$0.015 for each GB each month, after the first 10 GB. Viewers download the videos at no cost to you. The home page shows how to work out your storage cost.
If you stop using Kitset
Your site does not need Kitset to keep running. The files, the page Worker and the settings are in your own Cloudflare account. Your videos keep playing at the same links.