Static GitHub Pages conversion of the VOBBILDER catalog.
The repository contains only the application, the VOB catalog metadata, the fallback preview image, and the build scripts. The thousands of VOB screenshots are not committed.
The build reproduces the original image hierarchy inside the Pages artifact, including paths such as:
g1/_intern/...g1/items/...g2/_intern/...g2/items/...g2/items/addon/...interactive/...
The frontend therefore keeps the same model/path semantics as the original package.
Create this repository secret under Settings → Secrets and variables → Actions:
VPS_IMAGE_MANIFEST_URL
Set it to the HTTP/HTTPS root directory that contains the VOBBILDER image tree. It should be the directory above g1/, g2/, and interactive/. A trailing slash is optional.
Despite the historical variable name, this value is used as the remote image-tree root. The URL is consumed only by GitHub Actions and is never placed in the deployed website.
The original package contains GothicII.ttf. Put your copy at:
site/font/GothicII.ttf
The stylesheet will use it for the site headings. The font file is intentionally not duplicated in this package.
- Push the contents of this directory to the repository root on
main. - In Settings → Pages, choose GitHub Actions as the source.
- Add
VPS_IMAGE_MANIFEST_URLas described above. - Run Build and deploy GitHub Pages, or push a commit to
main.
No gh-pages branch is required.
python scripts/build.py:
- Creates a clean
_site/directory. - Reads
site/data/catalog.json. - Derives every expected source image path from the catalog.
- Downloads each unique JPG from the remote root with bounded concurrency and per-request retries.
- Retries only failed paths in progressively gentler retry rounds before treating the build as failed.
- Preserves the image hierarchy under
_site/assets/vobs/. - Generates a 100×100 WebP thumbnail under
_site/assets/thumbs/. - Writes a small non-sensitive build summary.
- Refuses deployment if the generated site reaches GitHub Pages' 1 GiB site-size limit.
The remote root itself is never stored in catalog.json, build.json, or browser JavaScript.
python -m pip install -r requirements.txt
VPS_IMAGE_MANIFEST_URL="http://your-server/path/" python scripts/build.pyOn PowerShell:
$env:VPS_IMAGE_MANIFEST_URL = "http://your-server/path/"
python scripts/build.pyThe defaults are intentionally conservative for a small HTTP origin serving thousands of files:
IMAGE_DOWNLOAD_WORKERS=5IMAGE_DOWNLOAD_TIMEOUT=60IMAGE_DOWNLOAD_ATTEMPTS=4IMAGE_RETRY_ROUNDS=3
Normally you do not need to set these. If the VPS is still overloaded, lower IMAGE_DOWNLOAD_WORKERS to 3 or 2. Failed files are retried after the main pass with fewer workers and longer timeouts.