voxpelli / webpage-webmentions

A hosted Disqus-like comment service that enables WebMention receiving on any kind of site
https://webmention.herokuapp.com/
MIT License
74 stars 14 forks source link
comments indieweb social webmention

A WebMention Endpoint

IndieWeb js-semistandard-style Types in JS Follow @voxpelli@mastodon.social

A site that receives and embeds WebMentions for other sites. makes the WebMentions embeddable through a javascript, similar to how eg. Disqus works.

A live deploy of this can be found on webmention.herokuapp.com. One can also sign up to that one rather than deploying ones own if one likes.

Deploying it yourself?

Then please let me know. So far I'm easiest to reach on Twitter as @voxpelli.

To install

Locally

  1. Set up a new PostgreSQL database
  2. Run npm run install-schema to set up the tables
  3. Set up the environment variables by eg. copying sample.env to .env
  4. Run foreman start or npm start

Heroku

  1. Set up a new application
  2. Set up a database for the new application
  3. Set up environment variables using heroku config
  4. Push up the code
  5. Use a One-Off Dyno to set up the tables: heroku run npm run install-schema

To update

Locally

Just run npm run migrate-schema.

Heroku

  1. Before you push any code you may want to activate the Maintenance Mode if it is a breaking update
  2. Push the new code and let Heroku deploy it
  3. Use a One-Off Dyno to do the migration: heroku run npm run migrate-schema
  4. If you activated the Maintenance Mode – then remember to deactivate it as well

Revert an update

Just run npm run rollback-schema locally or, if on Heroku, use a One-Off Dyno to do the rollback: heroku run npm run rollback-schema And afterwards – of course make sure that you also revert your code to a version that matches the schema – but you already knew that of course :)

Environment variables

You can set these up locally by simply copying sample.env to .env and changing the values in that file.

Required

Optional

Requirements

Try it out locally

Install webmention-testpinger then do:

webmention-testpinger --endpoint=http://127.0.0.1:5000/api/webmention --target=http://127.0.0.1:5000/