Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

@itxtech/fdnext-server

Hapi HTTP server adapter for fdnext.

Overview

@itxtech/fdnext-server wraps the fdnext runtime in a Hapi HTTP server. It translates Hapi requests into runtime dispatch calls, providing a production-ready HTTP API for part number decoding, Flash ID inspection, and database search.

The server itself is a thin adapter — all HTTP routing, response contracts, and External Link handling are delegated to @itxtech/fdnext-core.

Installation

pnpm add @itxtech/fdnext-server

Quick Start

Development (from monorepo)

pnpm install
pnpm server:dev

With a custom resource directory:

pnpm -C packages/server dev -- --resources /path/to/resources

Production

pnpm -C packages/server build
pnpm server:start

Binary

After building, the fdnext-server binary is available:

fdnext-server [--host 0.0.0.0] [--port 8080] [--resources /path/to/resources]
Flag Default Description
--host 0.0.0.0 Bind address
--port 8080 Listen port
--resources embedded External resource directory (overrides built-in resources)

PM2 Deployment

The monorepo root provides ecosystem.config.cjs:

pm2 start ecosystem.config.cjs
pm2 status
pm2 logs fdnext-server

Docker

See Dockerfile in the repository root for a minimal container image.

Programmatic API

import { createHttpServer } from "@itxtech/fdnext-server";

const app = createHttpServer({
  host: "0.0.0.0",
  port: 8080,
  resourceDir: "/path/to/resources"  // optional
});

await app.listen();

// Access the engine directly
const result = app.engine.decodePart({ query: "MT29F64G08CBABA", lang: "eng" });

CORS

The Hapi server defaults to allowing all origins (*), suitable for local development or deployments where CORS is managed by an upstream gateway.

Documentation

License

AGPL-3.0-or-later — See LICENSE for details.