Skip to content

Latest commit

 

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧪 BioLIMS

Your lab deserves better than a sample spreadsheet.

Open-source sample, reagent and freezer tracking built for academic research groups — free for everyone in the lab, no purchase order, no vendor.

🌐 bioliams.github.io · ▶ Try the live demo · 🚀 Create your lab — free

Hosted and free while in beta, or self-host with Docker. Demo: demo@biolims.dev / biolims-demo

License: MIT Self-hostable Status

BioLIMS sample registry

The problem with lab software

Sample management in most academic labs is a shared spreadsheet — and the alternative is priced for pharma, not for a departmental budget.

The spreadsheet works right up until someone asks "where is that sample now?" or "which aliquots came from patient 014?" — and nobody can answer without walking to a freezer and phoning the student who made them, who graduated last year.

Commercial platforms answer those questions, but they charge per seat, need a purchase order and months of setup, and model your science the way their vendor imagined it. Adding a field can mean a support ticket.

BioLIMS is the third option. Real sample tracking, at spreadsheet cost.


Why BioLIMS is different

🧬 You define what you track

Most systems ship a fixed Sample table and expect your science to fit it. BioLIMS ships with sensible starters — Sample, Reagent, Primer — and then gets out of the way.

Track cell lines with passage numbers. Mouse colonies with cage IDs. Plasmids with backbone and resistance marker. Build the record type in the browser, pick your fields, done. No schema migration, no developer, no ticket.

Building a custom record type

🔓 Your data, your server, no per-seat bill

MIT licensed. Run it on a spare machine in the lab, or on a cloud account you control. Add your whole team without watching a licence counter. Export everything to CSV whenever you want, because it's your data and it lives in your Postgres database.

No sales call. No quote. No minimum seats.

⚡ Configured in an afternoon, not a quarter

There is no implementation project. Sign up, name your lab, and you have starter record types and a freezer tree already in place. Most labs are registering real samples the same day.


What you can do

📍 Find any sample, down to the well. Model your real storage — site, room, freezer, shelf, rack, box — and place samples in specific positions. Open a box and see exactly what's in it and what's free. No more opening three freezers to find one tube.

Freezer box grid

🧫 Follow the lineage. Aliquots and extractions stay linked to what they came from. Open a gDNA prep and see the blood draw it started as, or open the draw and see everything derived from it.

📦 Stop running out of reagents. Track quantities, lots and expiry. Set a minimum and low-stock items surface on the dashboard before the experiment stops.

🕓 Answer "who changed this?" instantly. Every create, edit, move and delete is written to an append-only log with the person, the timestamp and what changed — per record and lab-wide.

Audit log

📥 Bring your spreadsheet with you. Import a CSV and BioLIMS matches your columns to your fields, validating as it goes and telling you exactly which rows need attention. Export any registry back out at any time.

🔌 Script it. Everything the interface does is available over a REST API with per-lab keys, so a notebook can register samples, look up storage, or pull a dataset for analysis.

import requests

requests.post(
    "https://your-lab.example.com/api/v1/entities",
    headers={"Authorization": f"Bearer {BIOLIMS_KEY}"},
    json={
        "type": "sample",
        "name": "PT-014 gDNA",
        "data": {"sample_type": "DNA", "concentration": 88.4},
    },
)

✨ Ask your lab questions in plain language. "How much Taq do we have, and where is it?" The built-in AI assistant reads your records through the same permission-checked search as every page — it can't see what you can't, and it can't change anything. Bring your own model: Gemini's free tier, Groq, OpenAI, or a self-hosted Ollama for labs whose data must not leave the building.

The lab assistant answering a stock question

💾 Backed up like it matters. The hosted service takes a nightly database dump, verifies the archive actually contains the core tables, and keeps 30 days of copies away from the database provider. Self-hosting? BACKUPS.md gives you the same in one workflow file, plus a restore drill to practise before you need it.

📊 See what the lab actually uses. Analytics charts registrations, stock used vs. received, the most-consumed reagents and activity by member — from the same events the audit log records, nothing sampled.

👥 Built for a team. Invite colleagues, assign roles, and work in the same lab. Every query is scoped to your organization, so labs sharing an instance never see each other's data.


Try it

The fastest way to judge it is to click around the live demo — it's a populated lab with samples in freezer boxes, low-stock reagents and a full audit trail.

Sign in with demo@biolims.dev / biolims-demo. It's a shared public sandbox, so expect other people's edits in there. Don't put anything real in it.

Run your own

You need Docker and about two minutes.

git clone https://github.com/bioliams/bioliams.git
cd bioliams
echo "BETTER_AUTH_SECRET=$(openssl rand -base64 32)" > .env
docker compose --profile prod up -d --build
docker compose exec app npm run db:migrate

Open http://localhost:3000, create your account, name your lab. That's the whole installation.

Deploying to a server or a cloud platform instead? See DEPLOYMENT.md.


Where the project is today

v0.1 — the sample-tracking core is complete and in use. Everything described above works today. It is young software: expect rough edges, and please report them.

Shipped since v0.1:

🔄 Stock as events Consume, adjust, split and receive recorded as movements, not an overwritten number
✂️ Aliquots Split a batch into individually tracked vials across several freezers
🏷️ Barcodes & labels A QR on every record, printable label sheets, phone and USB scanning
📱 Installable app Add to a phone home screen, scan at the bench, honest offline behaviour
🔎 Search, sorting & saved views Lab-wide search including custom fields, sortable columns, shared saved views
📤 Excel in and out Import .xlsx or CSV, export a real spreadsheet, print any registry to PDF
👥 Roles Owner, admin, member, storage manager and read-only, enforced server-side
🛒 Purchasing Request → approve → order → receive, topping up stock on arrival
💾 Backups Hosted: nightly pg_dump, archive verified, 30 days kept off-provider. Self-host: BACKUPS.md with a practised restore
✨ AI lab assistant Plain-language questions over your records, bring-your-own model including free tiers
📊 Analytics Registrations, consumption, top reagents and member activity over twelve weeks
⌨️ Command palette ⌘K jumps to any page or record
🗂️ Project-level access Collaborators scoped to their projects at every read path

Planned next:

📓 Electronic lab notebook Experiment write-ups linked to the samples they used
⚙️ Workflow automation Multi-step protocols with task assignment and sample state
🔬 Instrument integrations Turn plate reader, qPCR and sequencer output into records
🛡️ Operations & security Encryption, MFA and SSO, stable API versioning, security reporting
✍️ Electronic signatures Reviewed-and-approved sign-off on records
📋 Validation & compliance GAMP 5 pre-validation, and the controls regulated labs need for 21 CFR Part 11 and EudraLex Annex 11
🐍 Python client A proper biolims package for notebook users

The full roadmap lives in GitHub issues — comment or 👍 to shape priorities.


Contributing

The most useful contribution isn't always code. If you run a lab and something here is wrong, awkward, or missing, open an issue — knowing which of the roadmap items actually matters shapes what gets built next.

If you do want to build: CONTRIBUTING.md covers the architecture and how to get a development environment running.

License

MIT — see LICENSE. Use it, fork it, run it commercially. It's yours.

About

Open-source LIMS for labs — track samples, reagents and freezer boxes with record types you define yourself. Self-hostable, MIT licensed.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages