Project:Software
Most of the software stack utilized in can be found at Version page.
Main Stack
MediaWiki
MediaWiki is the core wiki engine upon which lgbtDB runs. It provides the page editing, namespaces, revision history, user accounts, and wiki syntax that make collaborative editing possible. lgbtDB uses MediaWiki to allow human editors to contribute text, formatting, templates, and to manage access control. Documentation for MediaWiki can be found here.
PHP
PHP is the server-side scripting language in which MediaWiki (and many of its extensions) are implemented. lgbtDB depends on PHP to parse requests, run extension hooks, render HTML, and manage the logic of the wiki system. The version and configuration of PHP (e.g. memory limits, module enablement) determine performance and compatibility with extensions. The PHP manual provides information on the various functions, configuration, and information on version-specific behavior.
MariaDB
MariaDB is the relational database engine used by lgbtDB to store pages, revisions, user data, extension tables, and structured data metadata. It is a drop-in replacement for MySQL, commonly used in wiki deployments for its performance and active development. The database stores the core content and metadata that MediaWiki and Wikibase access.
ICU
The ICU (International Components for Unicode) library is used by MediaWiki (and other software) to provide Unicode and locale-sensitive operations (such as string normalization, collation, text segmentation, case folding, and locale-specific formatting). lgbtDB needs ICU so that multilingual labels, sorting, case-insensitive matching, and internationalization behave correctly.
Pygments
Pygments is a syntax-highlighting library (written in Python) used by MediaWiki's SyntaxHighlight extension to render source code blocks (e.g. in <syntaxhighlight> tags) with color and formatting. lgbtDB includes Pygments so that code snippets, templates, or example scripts embedded in pages are rendered attractively.
Lua
MediaWiki supports running Lua modules via the Scribunto extension; Lua code is used in many templates to compute values, parse strings, or generate dynamic output. lgbtDB uses Lua modules to encapsulate logic that would be cumbersome in wikitext templates (for example, generating labels, formatting data, conditional checks). This reduces duplication and increases maintainability of templates.
LilyPond
LilyPond is a music engraving program that converts textual music notation into beautifully formatted sheet music (PDF, SVG). lgbtDB rarely, but occasionally, includes musical notation (e.g. representing hymn tunes, queer musical works, or notation embedded in pages) and LilyPond allows those to be rendered cleanly. It may be invoked via extensions or external rendering pipelines.
Elasticsearch
Elasticsearch is a powerful full-text search and indexing engine. lgbtDB uses Elasticsearch (via MediaWiki's CirrusSearch, Elastica, WikibaseCirrusSearch, or similar) to provide fast, full-text search across pages, labels, descriptions, and structured data. Without Elasticsearch, default wiki search is much slower and less capable of ranking results, filtering, or scaling.
Installed Extensions
Wikibase
Wikibase is the extension that turns a MediaWiki site into a structured data repository, allowing lgbtDB to store items, properties, statements, qualifiers, references, and to support semantic queries. It is the foundational software enabling lgbtDB to act like a "mini-Wikidata" for LGBTQIA+ topics, enabling structured data, SPARQL queries, reconciliation, etc.
Hosting
Wikibase.Cloud
lgbtDB is hosted by Wikibase.Cloud, a managed hosting platform specialized for Wikibase instances. It provides maintenance, backups, updates, and infrastructure so that lgbtDB need not manage servers, installation, or downtime logistics. Wikibase.Cloud is free, open-source, and GDPR-compliant.
External Software Components
Bots
Many of the automated scripts and bots that add, update, or maintain data on lgbtDB are implemented in Python and leverage the WikibaseIntegrator library. This library wraps the Wikibase and MediaWiki APIs and SPARQL endpoints to allow programmatic creation, modification, and querying of items, properties, and statements. lgbtDB uses it for bulk imports, synchronization, bot maintenance tasks, and data validation.