Standalone Deployment (Systemd)

We will use Ubuntu 22.04.1 as a base system. Of course, in general, you can use any Linux distribution.

Run the following commands:

apt-get update
apt-get install -y unzip openjdk-19-jdk
cd /opt
curl -o membrane.zip -L https://github.com/membrane/api-gateway/releases/download/v5.2.0/membrane-api-gateway-5.2.0.zip
unzip membrane.zip
rm membrane.zip
ln -sf membrane-api-gateway-5.2.0 membrane-api-gateway
addgroup --system membrane
adduser --system --group membrane

Configure the Systemd-integration

Create a file called /etc/systemd/system/membrane.service with the following contents:

[Unit]
Description=Membrane
After=network-online.target
Requires=network-online.target

[Service]
ExecStart=/usr/bin/bash -c /opt/membrane-api-gateway/service-proxy.sh
WorkingDirectory=/opt/membrane-api-gateway
Restart=always
RestartSec=10s
TimeoutSec=60
User=membrane
Group=membrane

[Install]
WantedBy=multi-user.target

Configure Logging

For example, to log everything to stdout (which gets collected by Systemd and which can be monitored using journalctl -u membrane.service), replace /opt/membrane-api-gateway/conf/log4j2.xml by

<?xml version="1.0" encoding="UTF-8"?>
    <Configuration>
        <Appenders>
            <Console name="STDOUT" target="SYSTEM_OUT">
                <PatternLayout pattern="%d{ABSOLUTE} %5p %tid %tn %c{1}:%L - %m%n" />
            </Console>
        </Appenders>
        <Loggers>
            <Root level="info">
                <AppenderRef ref="STDOUT" />
            </Root>
        </Loggers>
    </Configuration>

Configure Membrane

To customize your installation, you would change /opt/membrane-api-gateway/conf/proxies.xml. In this demo, we use the default configuration.

Start Membrane

systemctl daemon-reload
systemctl start membrane

Check, whether Membrane started correctly

You might want to monitor the system log, or run

curl -v http://localhost:2000

Activate auto-start for Membrane

systemctl enable membrane

Ongoing tasks

  • It is advised to keep Membrane up to date.
  • It is advised to keep Java up to date.
  • It is advised to keep your base system up to date.