selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

vorker logo

Self-host vorker

Self-hosted Cloudflare Worker alternative built on workerd

AlphaSource Available
Updatedlast year
LanguageGo
Setup difficultyAdvanced
Stars
204
Ports
8080 (Worker reverse proxy port), 8888 (Admin web UI port), 18080 (Tunnel relay port), 10080 (Tunnel reverse proxy port)
Requires
SQLite
Docker
vaalacat/vorker
Install with Docker
Admin dashboard showing worker listWorker code editor with MonacoWorker execution output

What is vorker?

Vorker is a self-hosted Cloudflare Worker alternative that runs on Cloudflare's open-source workerd runtime. It provides a web-based control panel for managing multiple workers, routing them to custom domains, and editing code online with a Monaco-based editor. The platform supports multi-node deployments with high availability via LiteFS, user authentication with JWT, and experimental Cloudflare Durable Objects. Workers are configured via Cap'n Proto templates and can be deployed via Docker or Docker Compose. The project is written in Go (Gin) for the backend and Next.js/React for the frontend. Development has moved to a successor project called frp-panel.

Should you self-host vorker?

vorker scores 36/100 on selfhost.directory (how scoring works) and ranks #6 of 7 in Serverless. It has 204 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is written mostly in Go.

Its closest alternative on selfhost.directory is faas (68/100, 26 253 stars). It scores higher overall, so compare the two before you pick. See vorker vs faas side by side.

Features

  • API control
  • Cloudflare Durable ObjectsNot fully durable - objects lost on worker restart/migration
  • High AvailabilityRequires LiteFS enabled
  • KV storageNot yet implemented
  • Log CollectionNot yet implemented
  • MetricsNot yet implemented
  • Multi-node Deployment
  • Multi worker routing
  • User Authentication
  • Web UI & Online Editor
  • Worker CRUD management
  • Worker debuggingNot yet implemented
  • Worker version controlNot yet implemented

vorker README

How to install vorker

Install vorker with Docker

workerd binary, Docker
Environment variables
WORKER_URL_SUFFIX, COOKIE_DOMAIN, ENABLE_REGISTER, JWT_SECRET, AGENT_SECRET, and more

docker run -dit --name=vorker
-e WORKER_URL_SUFFIX=.example.com
-e COOKIE_DOMAIN=example.com
-e ENABLE_REGISTER=false
-e JWT_SECRET=xxxxxxx
-e AGENT_SECRET=xxxxxxx
-p 8080:8080
-p 8888:8888
-p 18080:18080
-v /tmp/workerd:/workerd
vaalacat/vorker:latest

Requires workerd binary mounted at /workerd

How to configure vorker

  • AGENT_SECRETSecret for agent communication

    Secret for agent communication

  • API_PORT8888Admin web UI port

    Admin web UI port

  • COOKIE_AGE86400Cookie age in seconds

    Cookie age in seconds

  • COOKIE_DOMAINCookie domain

    Cookie domain

  • COOKIE_NAMEauthorizationCookie name for authentication

    Cookie name for authentication

  • DB_PATH/workerd/db.sqlitePath to SQLite database file

    Path to SQLite database file

  • DB_TYPEsqliteDatabase type

    Database type

    values: sqlite

  • DEFAULT_WORKER_HOSTlocalhostDefault worker host

    Default worker host

  • ENABLE_AUTO_SYNCfalseEnable auto sync

    Enable auto sync

    values: true, false

  • ENABLE_REGISTERtrueEnable user registration

    Enable user registration

    values: true, false

  • JWT_EXPIRETIME24JWT expiration time in hours

    JWT expiration time in hours

  • JWT_SECRETsecretJWT signing secret

    JWT signing secret

  • LISTEN_ADDR0.0.0.0Listen address

    Listen address

  • LITEFS_BIN_PATH/usr/local/bin/litefsLiteFS binary path

    LiteFS binary path

  • LITEFS_DIR_PATH/appLiteFS directory path

    LiteFS directory path

  • LITEFS_ENABLEDfalseEnable LiteFS for HA

    Enable LiteFS for HA

    values: true, false

  • LITEFS_PRIMARY_PORT20202LiteFS primary port

    LiteFS primary port

  • MASTER_ENDPOINThttp://127.0.0.1:8888Master endpoint URL for agents

    Master endpoint URL for agents

  • NODE_NAMEdefaultNode name for HA

    Node name for HA

  • RUN_MODEmasterRun mode: master or agent

    Run mode: master or agent

    values: master, agent

  • SCHEMEhttpExternal scheme (http or https)

    External scheme (http or https)

    values: http, https

  • TUNNEL_API_PORT18080Tunnel API port

    Tunnel API port

  • TUNNEL_ENTRY_PORT10080Tunnel entry port

    Tunnel entry port

  • TUNNEL_HOST127.0.0.1Tunnel host

    Tunnel host

  • WORKERD_BIN_PATH/bin/workerdPath to workerd binary

    Path to workerd binary

  • WORKERD_DIR/workerdDirectory for workerd files

    Directory for workerd files

  • WORKER_LIMIT10000Maximum number of workers

    Maximum number of workers

  • WORKER_PORT8080Worker reverse proxy port

    Worker reverse proxy port

  • WORKER_URL_SUFFIXWorker URL suffix (e.g. .example.com)

    Worker URL suffix (e.g. .example.com)

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…