@heise/embetty-server

<p align="center"> <img alt="Embetty" src="assets/embetty.png" width="360"> </p>

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
@heise/embetty-server
159282.0.34 years ago6 years agoMinified + gzip package size for @heise/embetty-server in KB

Readme

embetty-server · Build Status Greenkeeper badge Dependency Status JavaScript Style Guide

Embetty


Embetty displays remote content like tweets or YouTube videos without compromising your privacy. embetty-server acts as a proxy and provides the necessary data.
Embetty server can be run in two different ways:

It's necessary to configure a reverse proxy to make Embetty server reachable either way.

Running Embetty server with Docker

The docker image exposes the server on port 8080 and can be configured using environment variables.
$ docker run \
  -p 8080:8080 \
  --name embetty \
  --rm \
  -e VALID_ORIGINS=https://example.com \
  -e TWITTER_ACCESS_TOKEN_KEY=... \
  -e TWITTER_ACCESS_TOKEN_SECRET=... \
  -e TWITTER_CONSUMER_KEY=... \
  -e TWITTER_CONSUMER_SECRET=... \
  heiseonline/embetty-server:latest

Running Embetty server with a process manager

This requires Node.js version 8 or later.
  1. Install Embetty server by running yarn global add @heise/embetty-server. This makes the embetty command available on the server.
  2. Setup a process manager like Forever, PM2 or StrongLoop Process Manager.
  3. Configure the Process manager to run embetty start. The command embetty start --help prints a list of all supported options.

Configuration

Embetty server can be configured using the following environment variables:
| Variable | Required | Description | |----------|----------|-------------| | URL_BASE | no | The base URL of the Embetty server instance, e.g. https://my-server.com/path/to/embetty. | | DEBUG | no | This variable controls the output of log messages. You may set it to embetty.* to log all Embetty messages to STDOUT. | | EMBETTY_CACHE| no | Connection string of a cache adapter. Currently Redis (example: redis://) and LRU (example: lru://) are supported. | | PORT | no | This variable can be used to specify the port on which Embetty Server listens. Default: 3000 | | TWITTER_ACCESS_TOKEN_KEY | 1 | Twitter Access Token | | TWITTER_ACCESS_TOKEN_SECRET | 1 | Twitter Access Token Secret | | TWITTER_CONSUMER_KEY | 1 | Twitter consumer Key (API Key) | | TWITTER_CONSUMER_SECRET | 1 | Twitter consumer Secret (API Secret) | | VALID_ORIGINS | yes | Contains a comma-separated list of allowed origins. Examples: https://example.com, https://a.example.com,https://b.example.com or *. |

Twitter

To display tweets with Embetty, the Twitter environment variables listed above need to be defined. Both tokens, the key and the secret can be obtained by creating a Twitter app.

Testing the server setup

The setup can be tested by sending a request to the running server. If everything was set up correctly, JSON data and the HTTP status code 200 are returned.
$ curl -i http://localhost:8080/version
$ curl -i http://localhost:8080/tweet/985882036777955328
$ curl -i http://localhost:8080/video/youtube/m6UOo2YGbIE-poster-image

Using Embetty with Google AMP ⚡️

Embetty server supports Google AMP ⚡️ out of the box via <amp-iframe>:
Tweet:
<amp-iframe width="200" height="100"
  sandbox="allow-scripts allow-same-origin"
  layout="responsive"
  resizable
  frameborder="0"
  src="https://your-site.com/path/to/embetty-server/tweet/1004988454978179072.amp"
>
  <div overflow tabindex=0 role=button aria-label=""></div>
</amp-iframe>

Vimeo:
<amp-iframe width="200" height="100"
  sandbox="allow-scripts allow-same-origin"
  layout="responsive"
  resizable
  frameborder="0"
  src="https://your-site.com/path/to/embetty-server/video/vimeo/1084537.amp"
>
  <div overflow tabindex=0 role=button aria-label=""></div>
</amp-iframe>

YouTube:
<amp-iframe width="200" height="100"
  sandbox="allow-scripts allow-same-origin"
  layout="responsive"
  resizable
  frameborder="0"
  src="https://your-site.com/path/to/embetty-server/video/youtube/m6UOo2YGbIE.amp"
>
  <div overflow tabindex=0 role=button aria-label=""></div>
</amp-iframe>

Facebook:
<amp-iframe width="200" height="100"
  sandbox="allow-scripts allow-same-origin"
  layout="responsive"
  resizable
  frameborder="0"
  src="https://your-site.com/path/to/embetty-server/video/facebook/10156049485672318.amp"
>
  <div overflow tabindex=0 role=button aria-label=""></div>
</amp-iframe>

Contributing to Embetty

See Contributing.

License

Embetty server is MIT licensed.