Skip to content

internetarchive/emularity-bios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IA S/W Emulation

How does this all work

The files are grouped and split up into 3 GitHub repositories (linked below) and corresponding deploys.

GitHub Actions

Internet Archive is using docker OCI containers to serve the repo files as static files, with a lightly customized nginx httpd server. Each deployed container is running on a nomad cluster.

Each git push to this repo will cause a GitHub Actions CI/CD pipeline to run. Presently, it does a [build] and [deploy] pair of jobs. (See CI/CD GitHub Action for more info.)

loader.js

The main ringleader from an archive.org/details/ page for a s/w emulation "item" will load loader.js.

browserFS

There is a parallel browserfs.min.js file that gets loaded alongside loader.js. It is used for node backend-like FileSystem operations like reading and writing files, in the context of the browser. Tracey thinks this came from here:

  • https://www.npmjs.com/package/browserfs and notes the browserfs.min.js* file pair have a fix from db48x after the v1.4.3. Likely worth looking into the near future if/as needed. browserFS can use "ES Modules" for JS import/loading via something like:
import BrowserFS from 'https://esm.sh/browserfs'

nginx

Each repo has the same layout, with all files starting at the top dir:

the nginx has a few critical changes for the handling of .gz files -- since nginx can also "gzip on the fly" text files as well. Thus, the browser needs to know if the file is being dynamically turned to a .gz file by nginx -- or if the file is being served as an already compressed .gz as a static file.

example items

current deployments - production, uses the production branch:

current deployments - testing, this one is for the main branch:

there are 3 related git repos & deployments:

prior archive.org source items with setup files:

Releases

No releases published