Busabase
Busabase is an open-source (MIT) database and workspace for AI agents — data, docs, skills, and apps in one place. Run it locally, self-host it inside your network, or use Busabase Cloud, and turn age
Fit Weibull and other life distributions, build reliability block diagrams, and turn failure data into maintenance decisions. Open source and self-hostable, or ready in seconds in the cloud.
DataPython · JavaScriptGitHub @ReliafyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Open-source reliability engineering — fit life distributions, build reliability block diagrams, and optimise maintenance. Self-hostable (AGPL-3.0).
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Open-source reliability engineering. Fit life distributions to failure
data, build reliability block diagrams, and turn fitted models into maintenance
decisions — in one self-hostable web app.
A FastAPI backend does the statistics with
SurPyval and
RePyability and serves a
React single-page frontend, so the whole app runs on a single port.
Automate it: the ingestion API pushes meter readings,
inspection measurements, and new failure data from scripts and cron jobs. Fit
a model in a notebook and push it from SurPyval
(pip install reliafy-client).Read the full README ↗Open-source reliability engineering. Fit life distributions to failure data, build reliability block diagrams, and turn fitted models into maintenance decisions — in one self-hostable web app.
A FastAPI backend does the statistics with SurPyval and RePyability and serves a React single-page frontend, so the whole app runs on a single port.
Automate it: the ingestion API pushes meter readings,
inspection measurements, and new failure data from scripts and cron jobs. Fit
a model in a notebook and push it from SurPyval
(pip install reliafy-client).
Questions, bug reports and suggestions are welcome as GitHub issues. What's shipped is on the What's new page.
docker compose up --build
Open http://localhost:8000. That's it — no account or login (the instance is yours, in single-user mode), data persists in a Docker volume, and a few sample datasets, models, and an example RBD are pre-seeded so there's something to explore.
| Variable | Default | Purpose |
|---|---|---|
AUTH_DISABLED | (unset) | true = single-user mode: no login, every request is one fixed local user. The supported mode for self-hosting. |
DEV_USER_ID | dev-user | The single user's id in single-user mode. |
MONGODB_URI | (unset) | MongoDB connection string. docker-compose wires this to its bundled MongoDB. Unset/unreachable ⇒ automatic fallback to an in-memory simulator (data not persisted; GET /api/health reports which). |
MONGODB_DB | reliafy | Database name. |
SEED_SAMPLES | true | Seed shared sample datasets/models/RBDs on startup (idempotent). |
PORT | 8000 | Port the server listens on. |
ANTHROPIC_API_KEY / OPENAI_API_KEY | (unset) | Optional: set your own provider key to enable the built-in AI assistant on your instance (with AI_PROVIDER = anthropic (default) or openai, and optional AI_MODEL). Without a key the assistant is hidden. |
The frontend build has one flag: VITE_AUTH_DISABLED=true (a Docker build arg
in docker-compose) bakes single-user mode into the bundle — no login page and
no marketing pages, straight into the app.
python3.11 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
AUTH_DISABLED=true uvicorn backend.main:app --port 8000 --reload
Hot-reload dev server (proxies /api to the backend on :8000;
frontend/.env.development already sets single-user mode):
cd frontend
npm install
npm run dev
Or a production build served by the backend on one port: npm run build, then
open http://localhost:8000.
pip install pytest pillow-heif # pillow-heif writes the tests' HEIC photos
pytest backend/tests
The mapping mirrors SurPyval's data model (surpyval.utils.xcnt_handler):
| Field | Meaning |
|---|---|
x | Observed values (exact / censored) |
c | Censor flag per row: 0 observed, 1 right, -1 left, 2 interval |
n | Count of observations per row (positive integer) |
xl | Interval lower bound (used with xr) |
xr | Interval upper bound (used with xl) |
tl | Left truncation bound (-inf ⇒ untruncated) |
tr | Right truncation bound (+inf ⇒ untruncated) |
Rules enforced on both the frontend and backend:
x or the xl/xr interval pair — never both.xl and xr must be supplied together.c, n, tl, tr are optional modifiers.Left/interval-censored data is plotted with SurPyval's Turnbull estimator.
Datasets, models, and RBDs are MongoDB documents (uploaded CSV bytes are stored inline, content-addressed, on the dataset document). Saving a model stores the fit recipe plus cached results, so reopening is instant; SurPyval models can't be serialised, so covariate evaluation on a reopened proportional-hazards model re-fits on demand from the dataset + spec.
The hosted version at Reliafy Cloud adds what only makes sense hosted: user accounts (Firebase sign-in), a Pro plan, a metered AI assistant on prepaid credits, team workspaces (view free, edit with Pro), and view-only sharing of any analysis with other accounts. The cloud code lives in this same repository — GitLab-style, one codebase — and is dormant unless configured: without Firebase/Stripe/AI env vars, none of it runs. Multi-user env reference for operators:
| Variable | Purpose |
|---|---|
GOOGLE_CLOUD_PROJECT / FIREBASE_PROJECT_ID | Firebase project whose ID tokens are accepted (multi-user mode). |
VITE_FIREBASE_* | Public Firebase web config baked into the frontend build (frontend/.env.production). |
BILLING_ENABLED, STRIPE__API_KEY, STRIPE__WEBHOOK_SECRET, STRIPE__PRICE_ID | Plans, credit packs, and the Stripe webhook. |
AI_PROVIDER, AI_MODEL, AI_MARKUP | The metered assistant's provider/model/markup. |
PRO_MONTHLY_CREDIT_CENTS | AI credit included with each month of Pro (granted per paid invoice; default 1000). |
ADMIN_EMAILS | Comma-separated operator emails with full access regardless of payment (no plan caps, AI not credit-checked). |
PUSHOVER_TOKEN, PUSHOVER_USER | Operator push notifications (new signups, crashes) via Pushover. Unset → falls back to email, then to a log line. |
PUSH_ERROR_ALERTS | Push an alert when the server hits an unexpected error (default on wherever Pushover is configured). Throttled: same fault once per 30 min, 8 per hour. Set false to keep a dev machine quiet. |
SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, EMAIL_FROM | Outbound email for team invites and share notifications. Unset → every send is a logged no-op. |
GET /api/config — deployment capabilities {auth, ai, billing} (public).GET /api/health — liveness + storage mode (public).GET /api/distributions — {id, name, covariates} models that can be fit.POST /api/columns — multipart file; returns {columns, preview, n_rows}.POST /api/fit/{distribution} — multipart file plus any of the column
fields x, c, n, xl, xr, tl, tr; returns parameters + probability-plot data.POST /api/models — fit and save; plus GET/PATCH/DELETE /api/models/{id} and POST /api/models/{id}/evaluate.GET|POST /api/datasets, GET|DELETE /api/datasets/{id}.GET|POST /api/rbds, GET|DELETE /api/rbds/{id},
POST /api/rbds/analyze, POST /api/rbds/validate.Reliafy is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) — see LICENSE. You're free to use, modify, and self-host it; if you offer a modified version as a network service, the AGPL requires you to publish your modifications. Contributions are welcome — see CONTRIBUTING.md.