Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dat-ecosystem-archive/hyperdrive-http
HTTP request handler for Hyperdrive and Hypercore [ DEPRECATED - More info on active projects and modules at https://dat-ecosystem.org/ ]
https://github.com/dat-ecosystem-archive/hyperdrive-http
dat dat-protocol http hyperdrive
Last synced: 10 days ago
JSON representation
HTTP request handler for Hyperdrive and Hypercore [ DEPRECATED - More info on active projects and modules at https://dat-ecosystem.org/ ]
- Host: GitHub
- URL: https://github.com/dat-ecosystem-archive/hyperdrive-http
- Owner: dat-ecosystem-archive
- Archived: true
- Created: 2016-06-24T20:07:28.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-01-06T02:04:03.000Z (almost 3 years ago)
- Last Synced: 2024-05-16T13:14:32.365Z (6 months ago)
- Topics: dat, dat-protocol, http, hyperdrive
- Language: JavaScript
- Homepage:
- Size: 105 KB
- Stars: 68
- Watchers: 11
- Forks: 22
- Open Issues: 4
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
- awesome-dat - dat-publish - small cli to publish dat archives to a `hyperdrive-http` or `dat-archiver` server (Outdated / Other Related Dat Project Modules)
README
[![deprecated](http://badges.github.io/stability-badges/dist/deprecated.svg)](https://dat-ecosystem.org/)
More info on active projects and modules at [dat-ecosystem.org](https://dat-ecosystem.org/)
---
# Hyperdrive Http
Serve a [hyperdrive](https://github.com/mafintosh/hyperdrive) archive over HTTP. For an example of use, see [dat.haus](https://github.com/juliangruber/dat.haus).
[![Travis](https://api.travis-ci.org/joehand/hyperdrive-http.svg)](https://travis-ci.org/joehand/hyperdrive-http)
## Usage
Hyperdrive-http returns a function to call when you receive a http request:
```js
var server = http.createServer().listen(8000)
server.on('request', hyperdriveHttp(archive))
```Supports manifest options in `dat.json`:
* `web_root` - change directory to serve on index
* `fallback_page` - fallback for 404 errors### Setup
To use hyperdrive-http you will need to:
* Create your own http server
* Setup your hyperdrive archive
* For remote archives, connect to the swarm## API
Hyperdrive works with many archives/feeds or a single archive.
#### Options
- `exposeHeaders` - If set to `true`, hyperdrive-http will add custom `Hyperdrive-` HTTP headers to directory listing requests (default: `false`):
```http
Hyperdrive-Key: de2a51bbaf8a5545eff82c999f15e1fd29637b3f16db94633cb6e2e0c324f833
Hyperdrive-Version: 4
```
- `live` - If set to `true` will reload a directly listing if the archive receives updates.
- `footer` - Add a footer to your HTML page. Automatically adds archive version number to footer.### URL Format
Hyperdrive-http responds to any URL with a specific format. If the URL does cannot be parsed, it will return a 404.
* Get archive listing: `http://archive-example.com/`
* Get file from archive: `http://archive-example.com/filename.pdf`If a directory in the archive contains an `index.html` page that file is returned instead of the directory listing. If you'd like to view files use a query string:
* View files: `http://archive-example.com/?viewSource=true`
## CLI
There is also a CLI that can be used for demo + testing. Pass it a dat link or a path to an existing dat folder:
```
node cli.js
node cli.js /path/do/existing/dat
```