Archive95 is an independent web archive focused on material that predates or has otherwise evaded more mainstream archives.
- A Linux environment
- Deno
- The following command-line utilities:
mimetype(theIO::ScalarPerl library is also required for stdin support)uchardeticonvconvert(from ImageMagick)ffmpeg(thelibx264library is also required for H.264 encoding)
- Clone the repository with
git clone https://github.com/WumboSpasm/archive95-server.git - Download the latest revision of the dataset from here and extract into the
datafolder - Install package dependencies with
deno install - Build the filesystem and search database with
deno task build- Note that this will take a very long time by default; see below for information on features that can be turned off to speed up the build process
- Run the server with
deno task start
--config=<path>- Load a config file at the specified path- Default is
config.jsonin the repository root, ordata/config_template.jsonif it does not exist
- Default is
--clean- Perform a clean build
A template configuration file containing the default values of each option can be found at data/config_template.json.
httpPort- The HTTP port on which to start the serverhttpsPort- The HTTPS port on which to start the server ifhttpsCertandhttpsKeyare specifiedhttpsCert- The file path of the TLS certificate needed to start the server on HTTPShttpsKey- The file path of the TLS private key needed to start the server on HTTPSaccessHosts- An array of hostnames through which connections are allowed; if empty, all hostnames are allowedinputPath- The directory of an extracted Archive95 dataset from which the server database and file tree will be builtbuildPath- The directory of the built server database and file treebuildLogFile- The file path to which build log entries should be savedserverLogFile- The file path to which server log entries should be savedblocklistFile- The file path to the blocklisthoneypotFile- The file path to which IP addresses caught in the honeypot should be savedlogToConsole- Controls if log entries should appear in the consolelogBlockedRequests- Controls if blocked requests should be loggedbuildFeatures- An array of strings denoting which features should be made available via the build process; see below for a full list of featuresdoModernMode- Controls if modern browsers should be served an enhanced HTML5 frontenddoHoneypot- Controls if the options page should contain hidden honeypot links which will permanently log IP addresses to ahoneypot.txtfiledoHoneypotBlock- Controls if requests from IP addresses caught in the honeypot should be blockedshutdownTimeout- The amount of milliseconds to wait before forcefully shutting down the serverrandomCacheSize- The amount of random pages to store in memory before querying the search database againresultsPerPage- The maximum amount of search results that can be displayed on a single pagemaxPage- The maximum amount of pages of search results that can be retrieved in a search query
database- Enables the creation of a database file providing full-text search functionality and the random button- Turning this off will cause the search box to process only exact URL matches, similar to the Wayback Machine
smartTypes- Enables the identification of file types using a slow but highly reliable method- Turning this off will decrease the initial build time by orders of magnitude, but subsequent builds will be identical in speed regardless of how this option is set
screenshots- Enables vintage page screenshots to be accessible from the navigation bar where available- Turning this off will produce a noticeable difference in build time only if it is already relatively short
presentation- Enables the creation of fixed/converted versions of files, to be served when the presentation improvements flag is active- Turning this off will prevent most audio/video files from being playable in modern browsers, and will remove the presentation improvements flag in compatibility mode
browse- Enables the directory browser- Turning this off will moderately decrease the total amount of build files
inlinks- Enables the inlinks page- Turning this off will significantly decrease the total amount of build files
symlinks- Enables the creation of symlinks to the input paths of unchanged archive files- Turning this on will significantly decrease the total build size, but will create a post-build dependency on the input directory
view- View archived fileraw- View archived file in raw formbrowse- View contents of a supplied directoryinlinks- View all archived pages that link to the supplied URLoptions- Configure behavior of viewerscreenshot- View archived screenshotthumbnail- View archived screenshot at a small resolutionrandom- Redirect to a random archived fileapi- Get information about the archive in JSON format- See the "API Endpoints" section for more information
about- Learn about Archive95sources- View information about data sources
n- Hide navigation barp- Disable presentation improvementsd- Render navigation bar inlinef- Render page content without framess- Render page content without JavaScriptw- Don't point unarchived URLs to Wayback Machiner- Display error pages in navigation barm- Random button includes non-HTML fileso- Random button excludes orphans
i- Render iframe-ready page contentj- Render iframe-ready frame contentk- Render frame content for inline navigation bar
e- Point all URLs to live internet
api/search- Return search resultsquery(required) - A search querysource- A source ID by which to filter resultsin- A field by which to filter results; possible values aretitle,content, andurl- This parameter can be defined multiple times with different values
formats- A file format group by which to filter results; possible values areall,text, andmedia
api/archives- Return all archives belonging to a URLurl(required) - A URL or orphan file pathsource- Ifurlis an orphan file path, then this is the source ID that it belongs to
api/get- Return detailed information about an archiveurl(required) - The archive's URL or orphan file pathsource- The archive's source ID; required if the archive is an orphanoffset- If there are multiple archives with the sameurlandsourcevalue, then this is a number denoting the archive's offsetp- If this has a value oftrue, then the returned search/inject info reflects the presentation improvements flag
api/browse- Return contents of a directoryurl- A URL or orphan path denoting a directory; required if no source ID is specifiedsource- A source ID by which to filter directory contents; required ifurlis an orphan path or not specified
api/inlinks- Return all archives which link to a URLurl(required) - A URL or orphan file pathsource- Ifurlis an orphan file path, then this is the source ID that it belongs to
