MCPSERV.CLUB
GeneWeb

GeneWeb

Self-Hosted

Open‑source genealogy with a lightweight web interface

Active(83)
362stars
0views
Updated 4 days ago

Overview

Discover what makes GeneWeb powerful

GeneWeb is a mature, open‑source genealogy platform written entirely in **OCaml**. It bundles a lightweight HTTP server that dynamically renders genealogical data on demand, making it suitable for both local desktop use and public web hosting. The core application exposes a **REST‑like API** (auto‑generated from the OCaml source) that allows developers to query and manipulate genealogical records programmatically, while the web UI delivers a multilingual interface for end‑users.

Language & Runtime

Web Server

Data Store

Plugins & Extensions

Overview

GeneWeb is a mature, open‑source genealogy platform written entirely in OCaml. It bundles a lightweight HTTP server that dynamically renders genealogical data on demand, making it suitable for both local desktop use and public web hosting. The core application exposes a REST‑like API (auto‑generated from the OCaml source) that allows developers to query and manipulate genealogical records programmatically, while the web UI delivers a multilingual interface for end‑users.

Technical Stack

  • Language & Runtime: OCaml 5.x, compiled to native code. The binary (gwd) serves HTTP requests directly; no external application server is required.
  • Web Server: A minimal, event‑driven HTTP stack written in OCaml that supports CGI mode for compatibility with shared hosting.
  • Data Store: Genealogical data is stored in a proprietary binary format (.gwf), but the platform provides conversion utilities (ged2gwb, gwb2ged) to interchange with GEDCOM. Internally the data is organized as a set of indexed tables, enabling fast lookups for thousands of individuals.
  • Plugins & Extensions: The plugins directory contains OCaml modules that can be dropped into the runtime. Each plugin implements a specific feature (e.g., PDF export, genealogical chart generation) and is loaded at startup via a simple configuration file.

Core Capabilities

  • Dynamic HTML Generation: Every request triggers on‑the‑fly rendering of genealogical trees, timelines, and charts using templated HTML.
  • API Exposure: The auto‑generated API (see http://geneweb.github.io/geneweb/) provides endpoints for CRUD operations on individuals, families, and events. OAuth‑style authentication is optional and can be enabled through the gwsetup interface.
  • Search & Filtering: Full‑text search across names, places, and dates is built into the engine, with support for complex queries (e.g., consanguinity checks).
  • Export & Import: Multiple export formats (GEDCOM, CSV, PDF) and import utilities allow seamless migration from other genealogy tools.
  • Localization: The UI supports dozens of languages; all string resources are externalized, making it trivial to add new translations.

Deployment & Infrastructure

GeneWeb is intentionally lightweight: a single binary plus a data directory. It can run:

  • Standalone daemon (gwd) on any Unix‑like system, listening on a configurable port.
  • CGI mode (gwdcgi) behind Apache/Nginx, ideal for shared hosting.
  • Docker: A ready‑to‑use Dockerfile is available in the repository, exposing ports 8080/80 and mounting a volume for the bases directory.

Scalability is limited by the single‑process nature of the server; however, typical genealogy workloads (tens of thousands of records) are handled comfortably. For high‑traffic scenarios, horizontal scaling can be achieved by running multiple GeneWeb instances behind a load balancer and sharing the same data store via NFS or a network file system.

Integration & Extensibility

  • Plugin API: Developers can write new plugins in OCaml, compile them into .so libraries, and drop them into plugins/. The runtime loads them automatically.
  • Webhooks: GeneWeb can emit JSON payloads on events such as record creation or deletion, which external services can consume.
  • Scripting: The gwsetup utility exposes a web UI for configuration; it also supports scripting through command‑line arguments, enabling CI/CD pipelines to update base files and restart the service.
  • Data Interchange: The ged2gwb/gwb2ged tools provide deterministic conversions, making GeneWeb a drop‑in replacement for GEDCOM‑centric workflows.

Developer Experience

  • Documentation: Comprehensive, community‑maintained docs (https://geneweb.tuxfamily.org/) cover architecture, API usage, and plugin development. The auto‑generated API spec is always in sync with the source code.
  • Community & Support: Active GitHub issues and a mailing list foster quick responses. The project’s licensing (GPL‑3) guarantees freedom to modify and redistribute.
  • Testing: Continuous integration runs on GitHub Actions, ensuring that new changes do not break the API or core functionality.

Use Cases

ScenarioWhy GeneWeb?
Personal genealogy serverLightweight binary, no external dependencies; runs on a Raspberry Pi.
Academic researchOCaml codebase is statically typed; plugins can implement custom analysis (e.g., kinship metrics).
Genealogy NGOGPL license allows full control; can host hundreds of bases on a single server.
Web service providerCGI mode enables integration into existing web stacks; API allows third‑party apps to consume data.

Advantages Over Alternatives

  • Performance: Native OCaml binaries deliver low latency for rendering complex trees, outperforming many interpreted solutions.
  • Licensing: GPL‑3 allows commercial use without royalties, provided modifications are shared—ideal for open research projects.
  • Extensibility: The plugin system is straightforward, encouraging rapid feature addition without touching core code.
  • Deployment Simplicity: A single binary plus data directory means no database server or ORM setup; perfect for dev‑ops minimalism.

GeneWeb offers a robust, developer‑friendly platform for anyone needing to host or extend genealogical data in a self‑contained, open‑source environment.

Open SourceReady to get started?

Join the community and start self-hosting GeneWeb today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
other
License
GPL-2.0
Stars
362
Technical Specs
Pricing
Open Source
Database
None
Supported OS
LinuxWindowsmacOS
Author
geneweb
geneweb
Last Updated
4 days ago