Publish curated Ludarium source from 781315f3f71031995159287f425aeac47a77515b
Public source validation / source (push) Successful in 3m8s

This commit is contained in:
Public Source Publisher committed 2026-09-30 00:23:05 +00:00
1 parent df869819ce
commit 93c840d38b
12 files changed
+599 -563

No files matched your search

+1 -1
View File
@@ -11,7 +11,7 @@ jobs:
source:
name: source
if: ${{ gitea.event_name != 'pull_request' || gitea.event.pull_request.head.repo.full_name == gitea.repository }}
runs-on: ubuntu-latest
runs-on: linux-validation
timeout-minutes: 45
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
File diff suppressed because it is too large. Load diff
+24
View File
@@ -1,5 +1,8 @@
# Ludarium
<p align="center"><strong>Your game archive, searchable and accountable.</strong></p>
<p align="center"><a href="#explore-the-interface">Interface</a> · <a href="#what-you-can-do">Features</a> · <a href="#quick-start">Quick start</a> · <a href="#architecture">Architecture</a></p>
**A local-first, self-hosted catalog for game archives.** Ludarium turns read-only folders of ROMs,
disc images and archived Windows installers into a searchable library with provenance, integrity
evidence and an explicit review queue. It is built for Unraid, but the supplied Compose deployment
@@ -7,6 +10,14 @@ also works on a regular Docker host.
![Ludarium home screen with an empty, privacy-safe example archive](docs/screenshots/living-archive-audit/audit-home-desktop.png)
## Explore the interface
These captures show a deliberately empty, privacy-safe example archive. Your own files and metadata appear only after you add read-only library mounts and scan them.
| Searchable library | Review queue |
| --- | --- |
| ![Ludarium library without imported private files](docs/screenshots/living-archive-audit/audit-library-desktop.png) | ![Ludarium review queue](docs/screenshots/living-archive-audit/audit-attention-desktop.png) |
## What you can do
- discover and fingerprint files without renaming, moving or executing them;
@@ -65,6 +76,19 @@ for the content you index and for complying with the rules that apply to it.
no credentials are configured.
- Report vulnerabilities privately using [`SECURITY.md`](SECURITY.md).
## Architecture
```mermaid
flowchart LR
Libraries[Read-only archive mounts] --> Scanner[Inventory and fingerprints]
Scanner --> Review[Explicit review queue]
Review --> Catalog[(PostgreSQL catalog)]
Catalog --> Web[React library and collections]
Catalog --> Exports[Portable catalog exports]
```
The cataloging pipeline only reads mounted source libraries. PostgreSQL stores identities, provenance, collections and review state; cache, exports and optional player data use separate writable locations. This separation lets you re-scan or restore the catalog without changing original game files.
## Development
The backend targets .NET 10, the UI uses React 19 and Vite, and controller helpers use Python's standard
Regular → Executable
View File
File mode changed.
Regular → Executable
View File
File mode changed.
Regular → Executable
View File
File mode changed.
Regular → Executable
View File
File mode changed.
Regular → Executable
View File
File mode changed.
View File
File mode changed.
Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 KiB

+2
View File
@@ -43,6 +43,8 @@ deploy/verify-release-identity.sh
deploy/verify-source-manifest.sh
docs/PUBLIC_SOURCE_BOUNDARY.md
docs/screenshots/living-archive-audit/audit-home-desktop.png
docs/screenshots/living-archive-audit/audit-library-desktop.png
docs/screenshots/living-archive-audit/audit-attention-desktop.png
fixtures/**
global.json
public-source.allowlist