Overview
Discover what makes eLabFTW powerful
**eLabFTW** is a self‑hosted electronic lab notebook (ELN) and laboratory inventory system written in PHP with a modern JavaScript front‑end. It is designed for research teams and companies that require secure, auditable record keeping while still offering a rich set of features such as blockchain timestamping, molecule editing and LaTeX rendering. From a developer standpoint the project is a full‑stack application that exposes a REST API, supports multi‑tenant usage, and can be deployed in containers or on bare metal.
Back‑end
Front‑end
Database
Search
Overview
eLabFTW is a self‑hosted electronic lab notebook (ELN) and laboratory inventory system written in PHP with a modern JavaScript front‑end. It is designed for research teams and companies that require secure, auditable record keeping while still offering a rich set of features such as blockchain timestamping, molecule editing and LaTeX rendering. From a developer standpoint the project is a full‑stack application that exposes a REST API, supports multi‑tenant usage, and can be deployed in containers or on bare metal.
Technical Stack & Architecture
- Back‑end: PHP 8.x running on a web server (Apache or Nginx). The core is built with the Symfony framework, which provides routing, security, and dependency injection out of the box.
- Front‑end: Vue.js 3, bundled with Vite, powers the dynamic UI. The SPA communicates with the back‑end via a JSON REST API and uses WebSockets for real‑time notifications.
- Database: PostgreSQL is the primary data store, with optional support for MySQL/MariaDB via Doctrine. All schema migrations are handled by Symfony’s migration component, enabling reproducible deployments.
- Search: Full‑text search is implemented with PostgreSQL’s native
tsvectorand a lightweight Elasticsearch integration can be added for advanced use cases. - Storage: File uploads are stored on the local filesystem or an S3‑compatible object store, with optional encryption at rest.
The application follows a classic MVC pattern but is heavily modularized: each feature (lab notebook, inventory, scheduler) lives in its own Symfony bundle, making it straightforward to add or replace functionality.
Core Capabilities & APIs
- RESTful API: Every CRUD operation on experiments, items, and users is exposed via a versioned
/api/v1/endpoint. The API supports pagination, filtering, and full‑text search. - Webhooks: External services can subscribe to events such as “experiment created” or “item updated.” Webhook payloads are signed with HMAC for authenticity.
- Plugin System: Developers can extend eLabFTW by creating Symfony bundles that hook into events, add new routes, or register custom Twig extensions. The plugin manager is exposed through the UI and the API.
- Authentication & Authorization: Uses Symfony Security with JWT support for API clients, and fine‑grained ACLs based on teams, groups, and roles. The permission system is policy‑driven, allowing custom rules to be added via PHP code.
Deployment & Infrastructure
- Docker‑first: A
docker-compose.ymlis provided for quick local setup, while a single Docker image (elabftw/elabftw) can be run in any container orchestrator (Kubernetes, Docker Swarm). - Scalability: The stateless API layer can be horizontally scaled behind a load balancer. Persistent storage (PostgreSQL, object store) is the only stateful component.
- Resource Footprint: Minimum requirements are 512 MB RAM and 300 MB disk; a production instance with 1–2 GB RAM is recommended for moderate traffic.
- Backup & Recovery: Built‑in database dumps and file backups can be scheduled via cron or integrated with CI/CD pipelines.
Integration & Extensibility
- External Authentication: LDAP, SAML, and OAuth2 providers are supported via Symfony bundles.
- Data Export: Supports JSON, CSV, and PDF exports; the API can return filtered datasets for integration with analytics tools.
- Custom Fields: Administrators can define arbitrary metadata fields for experiments or inventory items, which are then exposed through the API.
- CI/CD Hooks: The repository contains GitHub Actions that run unit tests, static analysis, and publish Docker images automatically.
Developer Experience
The project follows the CII Best Practices badge and maintains a comprehensive online documentation portal (doc.elabftw.net). The codebase is heavily commented, and unit tests cover >80 % of the logic. Community support is active on Gitter and GitHub Discussions, with a dedicated issue triage workflow that ensures rapid response to bugs or feature requests. Licensing under AGPL guarantees that any derivative work remains open, encouraging collaborative improvements.
Use Cases
- Academic Research Groups – Host a single instance for multiple labs, each with isolated data and permission sets.
- Biotech Companies – Use the inventory module to track reagents and equipment, integrating with ERP systems via webhooks.
- Regulated Environments – Leverage the audit trail and blockchain timestamping for compliance with GLP/GMP standards.
- Open‑Source Projects – Deploy a public ELN for citizen science initiatives, exposing the API to external apps.
Advantages Over Alternatives
- Full Self‑Hosting: No reliance on third‑party services; data never leaves the institution’s firewall.
- Modular Architecture: Developers can drop in new bundles or swap out the database without touching core code.
- Rich API: Native REST endpoints and webhooks enable seamless integration with lab automation, LIMS, or custom dashboards.
- Performance & Security: Built on Symfony’s battle‑tested stack, with strict input validation and role‑based access control.
- Community & Documentation: Active development, continuous integration, and extensive
Open SourceReady to get started?
Join the community and start self-hosting eLabFTW today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
bin
Minimalist paste bin in Rust
Quassel IRC
Distributed, cross‑platform IRC client with detachable core
InspIRCd
Modular, lightweight IRC server for modern OSes

Crafty Controller
Self‑hosted Minecraft server launcher and manager
Chyrp Lite
Self‑hosted, lightweight blogging platform with responsive design
cState
Fast, lightweight status pages for any project
