Busabase
Busabase는 AI 에이전트를 위한 오픈소스(MIT) 데이터베이스 및 작업 공간입니다
Weibull 등 수명분포를 맞추고 신뢰도 블록도식 작성, 고장 데이터를 유지보수 결정으로 전환. 오픈소스·셀프호스트 또는 클라우드 즉시 사용
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.
데이터Python · JavaScriptGitHub @Reliafy온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Open-source reliability engineering — fit life distributions, build reliability block diagrams, and optimise maintenance. Self-hostable (AGPL-3.0).
저장소 README에서 가져옴
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).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.