Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
캘리브라파실은 캘리브레이션 흐름과 GUM 기준 불확실성을 제공하고, ICP‑Brasil 서명 인증서와 고객 포털을 지원하며 MIT 라이선스입니다
Fluxo de calibração, incerteza conforme o GUM, certificados assinados em ICP-Brasil e portal do cliente. Licença MIT.
비즈니스TypeScript · PLpgSQLGitHub @CalibraFacil온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Open-source management software for ISO/IEC 17025 calibration laboratories: calibration workflow, GUM uncertainty, certificates with ICP-Brasil signatures, client portal and an offline desktop app.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Open-source management software for calibration laboratories working under
ISO/IEC 17025: calibration workflow, GUM uncertainty calculations, certificates with
review/approval and ICP-Brasil digital signatures, a client portal, and a desktop app that
keeps working offline.README 전문 보기 ↗Open-source management software for calibration laboratories working under ISO/IEC 17025: calibration workflow, GUM uncertainty calculations, certificates with review/approval and ICP-Brasil digital signatures, a client portal, and a desktop app that keeps working offline.
Em português: o Calibra Fácil é um software de código aberto (licença MIT) para laboratórios de calibração sob a ISO/IEC 17025 e oficinas permissionárias do Inmetro. Cobre o fluxo de calibração, o cálculo de incerteza conforme o GUM, certificados com revisão e aprovação assinados em ICP-Brasil, o portal do cliente e um aplicativo desktop que funciona offline. A interface é em português; o código e a documentação técnica, em inglês. Para rodar localmente, siga o Quick start.
Calibra Fácil started as a commercial SaaS used in production by accredited laboratories in Brazil. It is now maintained as an open-source project, on a best-effort basis, by its community.
No warranty. The software is provided "as is" under the MIT License. Each laboratory is solely responsible for validating it for its own use (ISO/IEC 17025:2017 §7.2.2 and §7.11) and for the results and certificates it issues. The validation dossiers are technical references, not approvals.
packages/math-engine) — exact
decimal arithmetic, Type A/B evaluation, correlated inputs, Welch–Satterthwaite with
Student-t coverage, reproducible SHA-256 calculation fingerprints and versioned
validation dossiers. ┌───────────────┐ ┌───────────────┐ ┌──────────────────────────┐
browser ──▶ │ apps/web │ │ apps/portal │ │ apps/desktop │
│ lab app │ │ client portal│ │ Electron + local-server │
└───────┬───────┘ └───────┬───────┘ │ (SQLite, offline sync) │
│ │ └────────────┬─────────────┘
└─────────┬─────────┴────────────────────────┘
▼
┌───────────────────┐ ┌──────────────────────┐
│ apps/api (Hono) │ ─────▶ │ apps/worker │
│ REST + auth │ jobs │ PDFs, e-mails, syncs│
└─────────┬─────────┘ └──────────┬───────────┘
│ │
┌───────────────────┼───────────────┬─────────────┴──────┐
▼ ▼ ▼ ▼
PostgreSQL S3-compatible Gotenberg SMTP or Resend
(Drizzle) object storage (HTML → PDF) (e-mail)
| Path | What it is |
|---|---|
apps/api | Hono API: REST routes, Better Auth, cron handlers |
apps/web | Lab app (React 19, Vite, TanStack Router/Query, Tailwind 4) |
apps/portal | Client portal |
apps/worker | Background jobs: certificate PDFs, signing, e-mails, integrations |
apps/desktop | Electron desktop shell |
apps/local-server | Local API for the desktop app, backed by SQLite |
apps/docs | User documentation (Fumadocs on Next.js) |
apps/site | Project website (static Vite build, served by Cloudflare) |
packages/math-engine | GUM uncertainty engine (versioned, with validation dossiers) |
packages/db | Drizzle schema, SQL migrations and seeds |
packages/auth | Better Auth configuration, roles and permissions |
packages/signing | PAdES/ICP-Brasil certificate signing |
packages/local-db | Offline SQLite store, outbox and conflict records |
packages/* | Contracts, client SDK, schemas, documents, e-mail, notifications… |
Architecture rules worth reading before a first change:
CLAUDE.md (big picture),
docs/architecture/api-client-contract.md and
docs/architecture/web-frontend-architecture.md.
Requirements: Node.js 24, pnpm 11 (corepack enable), Bun 1.x and Docker with
the Compose plugin. No cloud account is needed.
git clone https://github.com/CalibraFacil/calibrafacil.git
cd calibrafacil
pnpm install
pnpm setup:dev # env files, Docker services, migrations, demo laboratory
pnpm dev # API :3000, lab app :5173, portal :5174
Then open http://localhost:5173 and sign in as [email protected]. Sign-in is
passwordless: the magic link arrives in the local inbox at http://localhost:8025. The seed
also creates [email protected] (admin) and [email protected] (technician),
so review and approval flows that need two people can be exercised. The client portal at
http://localhost:5174 signs in each demo customer's contact the same way, for example
[email protected].
The demo laboratory is not empty: setup fills it with a made-up customer base, instrument park,
about 130 calibrations across every workflow stage, quality records, service orders, requests and
visits, so the dashboard looks like a working lab. The 40 most recent approvals come with their
certificate PDF (--all-certificates renders every one). It takes about two minutes
(pnpm setup:dev --no-demo skips it; pnpm --dir apps/api seed:demo runs it later, --quick for
a smaller history). All names, e-mails and documents are fictional.
docker-compose.yml stands in for every cloud dependency:
| Service | Replaces | Address |
|---|---|---|
postgres | managed PostgreSQL | localhost:55432 |
s3 | Cloudflare R2 / S3 | http://localhost:59000 |
mailpit | SMTP server + inbox for e-mails | http://localhost:8025 (SMTP :1025) |
gotenberg | PDF rendering | http://localhost:3001 |
pnpm services:down stops the containers (data is kept); pnpm setup:dev --reset wipes them
and starts over.
Or skip the local setup:
The dev container (.devcontainer/) installs everything and seeds the demo
laboratory; run pnpm dev and open the forwarded port 5173.
pnpm dev # API, lab app and portal
pnpm dev:all # every app with a dev script (docs, site, desktop, worker…)
pnpm lint # oxlint (architecture boundaries are lint rules too)
pnpm format # Prettier
pnpm check-types # TypeScript (tsrs; pnpm check-types:tsc for native tsc 7)
TZ=UTC pnpm turbo test # unit tests
pnpm --dir apps/api test:integration # real-Postgres integration tests (Docker)
pnpm --dir apps/web test:stack # browser checks against a running `pnpm dev`
Database migrations are plain SQL in packages/db/drizzle/; apply them with
pnpm --dir packages/db db:bootstrap (a new database is built from the schema; an existing one
receives the pending migrations). The real-Postgres integration tests run in CI after every
merge to main and nightly.
One server with Docker runs the whole system, HTTPS included:
git clone --depth 1 https://github.com/CalibraFacil/calibrafacil.git
cd calibrafacil/deploy
./setup.sh # .env with fresh secrets; then set your domains and SMTP in it
docker compose up -d
docker compose exec api bun src/cli/create-lab.ts --name "Meu Laboratório" --email [email protected]
Images for x86-64 and ARM64 are published with every release.
DEPLOYMENT.md covers updates, backups, hosted databases and storage, plain
Bun servers.
Bug reports, fixes, calibration methods and documentation are welcome. Read
CONTRIBUTING.md first; questions go to
GitHub Discussions. Security
issues: see SECURITY.md.
MIT © 2025–2026 Pedro Seibel and the Calibra Fácil contributors.