Embetty is a Node.js proxy service that allows you to embed Tweets and videos from YouTube, Facebook, and Vimeo on your website without compromising your visitor’s privacy. It is developed by Heise online and is released under the MIT license.


For this guide you should be familiar with the basic concepts of



Change to your DocumentRoot and download the current version of embetty.js from their github feed (use the current link, not the one from the snippet below!):

[isabell@stardust ~]$ cd /var/www/virtual/$USER/html
[isabell@stardust html]$ wget https://github.com/heiseonline/embetty/releases/download/v3.0.8/embetty.js
[isabell@stardust ~]$

Please refer to Embetty’s quick start guide for details.

Twitter credentials (optional)


If you only want to embed videos, you can skip this step.

In order to access the tweets you want to embed, you need to set-up a Twitter application. For ease of use, we’ll assume that you’re using the account that you want to use to access Twitter through Embetty to add the application.

After adding the Twitter application, click the manage keys and access tokens link in the Application’s settings and click Create my access token. Write down:

  • the Access Token, e.g. 47114223-BZC77d4304f0EE547630e56f2d84c4fedf6a41QU3

  • and the Access Token Secret, e.g. biQ1a114dabFBB10022291691e499c4b3a39402c8dZAH

  • the Consumer Key (API Key), e.g. E4a38941Jb4efbac38GE854a62

  • the Consumer Secret (API Secret), e.g. d775b93f776dc6577B3f2C212aE080c24f308e28803d0877a2


Make sure you write down you own values and not our examples.


Use npm to install the latest version of Embetty server:

[isabell@stardust ~]$ npm install -g @heise/embetty-server
/home/isabell/bin/embetty-start -> /home/isabell/lib/node_modules/@heise/embetty-server/bin/embetty-start
/home/isabell/bin/embetty -> /home/isabell/lib/node_modules/@heise/embetty-server/bin/embetty
added 182 packages
[isabell@stardust ~]$


Change the configuration

Setup daemon

Create ~/etc/services.d/embetty.ini with the following content:


Replace all place holders such as <username> with your actual values!

command=embetty start


If you don’t need Twitter support, you can leave out the TWITTER_ variables.

In our example this would be:

command=embetty start

After creating the configuration, tell supervisord to refresh its configuration and start the service:

[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE                            RUNNING   pid 26020, uptime 0:03:14
[isabell@stardust ~]$

If it’s not in state RUNNING, check your configuration.

Configure web server


Embetty is running on port 3000. If you want to host Embetty on the same Uberspace as your website, use /embetty as URI.

To make the application accessible from the outside, configure a web backend:

[isabell@stardust ~]$ uberspace web backend set / --http --port <port>
Set backend for / to port <port>; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$


Please refer to Embetty’s quick start guide.



Check the update feed regularly to stay informed about the newest version.

Use npm to update Embetty:

[isabell@stardust ~]$ npm upgrade -g @heise/embetty-server
[isabell@stardust ~]$

Tested with Embetty 3.0.8, Uberspace 7.11.5

Written by: Nico Graf <hallo@uberspace.de>