View Source Building eturnal From Source

Requirements

Note that you need the development headers of the libraries as well. Linux distributions often put those into separate *-dev or *-devel packages. For example, on DEB-based distributions you'd typically install libyaml-dev and libssl-dev, on RPM-based distributions you'll probably need libyaml-devel and openssl-devel.

Compilation

Note: If you build directly from the Git repository rather than using the official source tarball, you must download Rebar3 and make it executable (chmod +x rebar3), first. On Erlang/OTP versions prior to 24.x, you need an older Rebar3 version (3.15.x on Erlang/OTP 21.x, otherwise 3.16.x).

curl https://eturnal.net/eturnal-1.12.0.tar.gz | tar -C /tmp -xzf -
cd /tmp/eturnal-1.12.0
./rebar3 as prod tar

This generates the archive file _build/prod/rel/eturnal/eturnal-1.12.0.tar.gz. The default installation prefix is set to /opt/eturnal, and it's assumed the server will be executed by a user named eturnal. To change these defaults, edit the build.config file or override the settings using environment variables (of the same name, but upper-case), re-run ./rebar3 as prod tar, and adapt the following installation instructions accordingly.

Quick Test

The following command starts the server in an Erlang shell, using the configuration in config/eturnal.yml:

./rebar3 shell

To stop the server, enter q(). (including the trailing dot).

Installation

You'll need root privileges for the following commands. Therefore, call su - or sudo -i, first.

  1. Create a user for running eturnal. This step is of course only required if you're installing eturnal for the first time:

    useradd -r -m -d /opt/eturnal eturnal
    

    Otherwise, create a backup of the old installation, first:

    tar -czf /opt/eturnal-$(date '+%F').tar.gz /opt/eturnal
    
  2. Extract the archive generated above:

    cd /opt/eturnal
    tar -xzf /tmp/eturnal-1.12.0/_build/prod/rel/eturnal/eturnal-1.12.0.tar.gz
    chown eturnal /opt/eturnal/etc/eturnal.yml
    
  3. Copy the eturnal.yml file to /etc (optional):

    cp -p -i /opt/eturnal/etc/eturnal.yml /etc/
    
  4. Start the systemd service:

    cp /opt/eturnal/etc/systemd/system/eturnal.service /etc/systemd/system/
    systemctl daemon-reload
    systemctl --now enable eturnal
    

Configuration and Usage

See the README.md file and the reference documentation for configuration and usage instructions.