Skip to content

Compile Cloudflare Workers to Cap'n Proto and deliver them as minimalist Docker images.

License

Notifications You must be signed in to change notification settings

JacobLinCool/selflare

Repository files navigation

Selflare

Compile Cloudflare Workers to Cap'n Proto and deliver them as minimalist Docker images.

Features

  • Cloudflare Worker
  • Cloudflare KV
  • Cloudflare D1
  • Cloudflare R2
  • Cloudflare DO
  • Cache API
  • Cloudflare Vectorize
  • Environment Variables

Usage

Install the CLI with npm i -g selflare and run the following commands in the directory of your worker:

selflare compile   # Compile the worker to Cap'n Proto
selflare docker    # Generate Dockerfile and docker-compose.yml
docker compose up  # Run the worker

Environment Variables

All the environment variables defined in [vars] section of the wrangler.toml file will be replaced by the corresponding environment variables in the Docker container.

You can simply set the environment variables in the docker-compose.yml file like this:

version: "3.8"

services:
    worker:
        build: .
        image: worker
        volumes:
            - ./.storage/cache:/worker/cache
            - ./.storage/kv:/worker/kv
            - ./.storage/d1:/worker/d1
            - ./.storage/r2:/worker/r2
        ports:
            - "8080:8080"
        environment:
            - SOME_TOKEN=I_AM_A_TOKEN

The image is based on jacoblincool/workerd which has a size of 35MB (compressed) and supports both amd64 and arm64 architectures.