fluxbase

module
v0.0.0-...-4313cc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2026 License: AGPL-3.0

README

Fluxbase

CI

Buy me a coffee

A lightweight, single-binary Backend-as-a-Service (BaaS) alternative to Supabase. Fluxbase provides essential backend services including auto-generated REST APIs, authentication, realtime subscriptions, file storage, and edge functions - all in a single Go binary with PostgreSQL as the only dependency.

Features

Core Services
  • PostgREST-compatible REST API: Auto-generates CRUD endpoints from your PostgreSQL schema
  • GraphQL API: Full GraphQL support with configurable depth/complexity limits
  • Authentication: Email/password, magic links, OAuth2 (Google, GitHub, Microsoft, etc.), OIDC, SAML SSO, MFA/TOTP
  • Realtime Subscriptions: WebSocket-based live data updates using PostgreSQL LISTEN/NOTIFY
  • Storage: File upload/download with access policies (local filesystem or S3), image transformations
  • Edge Functions: JavaScript/TypeScript function execution with Deno runtime
  • Background Jobs: Long-running tasks with progress tracking, retry logic, cron scheduling
  • RPC/Procedures: SQL-based serverless procedures with scheduling and RBAC
  • Webhooks: Event-driven webhook delivery for database changes with retries and HMAC signing
  • Vector Search: pgvector-powered semantic search with automatic embeddings
  • AI/RAG: Knowledge bases, chatbots, and entity extraction
  • MCP Server: Model Context Protocol for AI assistant integration
  • Multi-Tenancy: Tenant isolation with RLS, separate databases, and per-tenant config
  • Database Branching: Isolated dev/test environments with GitHub PR integration
Key Highlights
  • Single binary or container deployment
  • PostgreSQL as the only external dependency
  • Automatic REST endpoint generation
  • Row Level Security (RLS) support
  • TypeScript SDK + React hooks
  • Built-in observability (Prometheus metrics, OpenTelemetry tracing)
  • Horizontal scaling with leader election

Quick Start

Prerequisites
Build & Run
# Clone the repository
git clone https://github.com/nimbleflux/fluxbase.git
cd fluxbase

# Build the binary (also builds the TypeScript + React SDKs and admin UI)
make build

# Or run in development mode (backend + admin UI)
make dev

macOS note: make build enables the Tesseract OCR feature, which needs the Leptonica C headers. Install them with brew install tesseract leptonica — the Makefile handles the Homebrew keg paths automatically. To build without any C media dependencies, use make build-lite. See Building from Source for full macOS/Linux instructions and troubleshooting.

For Docker-based deployment, see the deployment guide.

SDKs

make build and make dev build the TypeScript and React SDKs automatically (rebuilding only when their sources change). Build them manually for standalone development or to test the published artifacts:

# TypeScript SDK
cd sdk && bun install && bun run build

# React SDK
cd sdk-react && bun install && bun run build

For more information, see the quick start guide.

Development

make setup-dev    # Install dependencies + git hooks
make test         # Unit tests
make test-full    # All tests including E2E
make lint-go      # Go linting
make cli-install  # Build and install CLI

See CLAUDE.md for a detailed codebase guide and architecture overview.

Support

License

This project is licensed under the terms described in docs/src/content/docs/intro.md.

Directories

Path Synopsis
cli
annotations
Package annotations provides parsing of @fluxbase: annotations from code comments.
Package annotations provides parsing of @fluxbase: annotations from code comments.
bundler
Package bundler provides client-side bundling for edge functions and jobs.
Package bundler provides client-side bundling for edge functions and jobs.
client
Package client provides the HTTP client for the Fluxbase API.
Package client provides the HTTP client for the Fluxbase API.
cmd
Package cmd provides the Cobra commands for the Fluxbase CLI.
Package cmd provides the Cobra commands for the Fluxbase CLI.
config
Package config provides configuration management for the Fluxbase CLI.
Package config provides configuration management for the Fluxbase CLI.
output
Package output provides output formatting for the Fluxbase CLI.
Package output provides output formatting for the Fluxbase CLI.
util
Package util provides utility functions for the Fluxbase CLI.
Package util provides utility functions for the Fluxbase CLI.
cmd
fluxbase command
internal
ai
ai/eval
Package eval provides the AI chatbot evaluation harness.
Package eval provides the AI chatbot evaluation harness.
ai/integrations
Package integrations provides storage and configuration for non-LLM tool integrations (web search, URL fetch, etc.) consumed by chatbot specialist agents.
Package integrations provides storage and configuration for non-LLM tool integrations (web search, URL fetch, etc.) consumed by chatbot specialist agents.
api
branching
Package branching provides database branching for isolated development/testing environments.
Package branching provides database branching for isolated development/testing environments.
logutil
Package logutil provides logging utilities for sanitization
Package logutil provides logging utilities for sanitization
mcp
mcp/custom
Package custom provides support for user-defined MCP tools and resources.
Package custom provides support for user-defined MCP tools and resources.
pubsub
Package pubsub provides pub/sub interfaces for cross-instance communication.
Package pubsub provides pub/sub interfaces for cross-instance communication.
query
Package query provides shared query-related types used by both the API and MCP packages.
Package query provides shared query-related types used by both the API and MCP packages.
ratelimit
Package ratelimit provides pluggable rate limiting backends for distributed deployments.
Package ratelimit provides pluggable rate limiting backends for distributed deployments.
rpc
testcontext
Package testcontext provides thread-safe storage for shared test context.
Package testcontext provides thread-safe storage for shared test context.
testutil
Package testutil provides shared test helper functions for unit testing.
Package testutil provides shared test helper functions for unit testing.
test
cleanup/cmd command
Package main provides a standalone tool to clean up test resources.
Package main provides a standalone tool to clean up test resources.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL