indieweb

A JavaScript library (and runnable server/process) for hosting your own #indieweb.

Usage no npm install needed!

<script type="module">
  import indieweb from 'https://cdn.skypack.dev/indieweb';
</script>

README

indieweb

A JavaScript library (and runnable server/process) for hosting your own #indieweb.

What is an indieweb?

Great question. That has an evolving answer.

Currently

  • Serve HTTP at the / route

Future

Run it

make server

Restart on file changes with make watch.

Configuration

Configuration is accomplished with both config files (in ./config) and environment variables. Environment Variables have a higher priority.

Configuration defaults are loaded from defaults.json.

Accepted configuration parameters:

  • indieweb - General settings that are passed to all modules
    • .domain - Public domain of your indieweb
    • .me - A JSON Object describing the owner of this site. Currently this uses a JSON-LD Serialization of an AS Person.
  • indieweb-home - Settings for the homepage module
    • .title - Title of the page
  • DEBUG - Exactly as described in debug README. DEBUG=* to show all logs.
  • config - Path to config file other than defaults.json. config=/path/to/config.json make server
  • PORT - Port to listen for HTTP traffic on
  • findPortBase - If no PORT, portfinder will start at this port and look 1 by 1 to find an open port

Use in another webapp

If you prefer, you can use indieweb as a library.

Install with npm install --save indieweb.

Use like any other express app.

  • TODO: easily interop with other patterns like koa
const yourApp = require('express')();
const indiewebConfig = {};
yourApp.use('/indieweb', require('indieweb')(indiewebConfig))

Want a feature?

File an issue