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.

bex logo

Self-host bex

bex-cli/v0.3.3

Open-source AI-native PaaS alternative to Render

AlphaOpen SourceApache-2.0
Updated5 days ago
LanguageGo
Setup difficultyAdvanced
Stars
577
Port
8090 (bex-api (REST, GraphQL, MCP))
Requires
Cluster API, Kubernetes, PostgreSQL, Zot Registry
Install with Docker
Workspace overview showing two running servicesNew service form with web, private, worker, cron, and static service typesLive deploy detail with revision metadata, status timeline, rollback, and build logsLive service logs with search, range, and filter controlsService memory and CPU metrics with deployment event markersEnvironment variables and secret files with save-and-deploy workflowCustom domain dialog with automatic TLS certificate issuance

What is bex?

bex is an open-source Platform-as-a-Service for deploying web applications, background workers, scheduled tasks, static websites, and managed databases from Git repositories or container images onto infrastructure you control. It implements a Render-compatible API and command-line interface, so existing render.yaml blueprints work without changes. The control plane runs as a Kubernetes operator backed by a PostgreSQL database, with a separate API service exposing REST, GraphQL, and MCP endpoints. A web dashboard provides a human-friendly interface for managing services, environments, secrets, domains, and deployments. The platform is designed to be operated by both humans and AI coding agents — agents can deploy and manage resources via the Model Context Protocol (MCP). Self-hosting is achieved by running the operator and API on a Kubernetes cluster provisioned with Cluster API (using Docker containers locally or Hetzner servers in production). The project is in public alpha and not yet recommended for production workloads.

Should you self-host bex?

bex scores 47/100 on selfhost.directory (how scoring works) and ranks #12 of 14 in Platform as a Service. It has 577 GitHub stars.

It shipped 8 stable releases in the past year. The latest, bex-cli/v0.3.3, came out on 16 October 2026. New versions land roughly every 4 days.

Setup is advanced: plan for several services and some ongoing maintenance. It is Apache-2.0-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is rack (56/100, 1 889 stars). It scores higher overall, so compare the two before you pick. See bex vs rack side by side.

Features

  • Custom domains with automatic TLS
  • Deploy history and rollbacks
  • Git-based deployments
  • GitHub App integration
  • Live logs and metrics
  • Managed Valkey-compatible Key-Value
  • MCP (Model Context Protocol) server
  • Multi-resource Blueprints
  • Native SSH and browser shell
  • Render-compatible CLI
  • REST and GraphQL APIs
  • Workspaces, projects, and environments

bex README

How to install bex

Install bex with Docker

Environment variables
BEX_RUNTIME=kubernetes

bash scripts/mock-cluster.sh export KUBECONFIG="$PWD/infra/local/bex.kubeconfig" cd lego/operator make install BEX_RUNTIME=kubernetes make run

Boots a local Cluster API substrate with kind management cluster and Docker-container worker nodes

How to configure bex

  • BEX_ACCESS_TOKENAlready-issued, short-lived OAuth bearer token for an unattended invocation

    Already-issued, short-lived OAuth bearer token for an unattended invocation

  • BEX_CLI_CONFIG_DIR~/.bexDirectory containing cli.yaml and state/; default is ~/.bex

    Directory containing cli.yaml and state/; default is ~/.bex

  • BEX_CLI_CONFIG_PATHExact local YAML path; takes precedence over the directory for the config file

    Exact local YAML path; takes precedence over the directory for the config file

  • BEX_CLI_DISABLE_ANALYTICSAny non-empty value disables CLI usage telemetry

    Any non-empty value disables CLI usage telemetry

  • BEX_HOSThttps://api.bex.co/v1/REST base URL; default https://api.bex.co/v1/

    REST base URL; default https://api.bex.co/v1/

  • BEX_NO_UPDATE_NOTIFIERAny non-empty value disables the update check entirely

    Any non-empty value disables the update check entirely

  • BEX_OUTPUTDefault output mode accepted by the upstream CLI

    Default output mode accepted by the upstream CLI

  • BEX_WORKSPACEActive workspace id or name

    Active workspace id or name

bex releases & version history

More in Platform as a Service

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…