There are different ways that can be used to set PeerStreamer-ng up and running. Not all of them may be installing the latest version. Unless otherwise specified (-p CLI option), PeerStreamer-ng web interfaces is reachable at port 3000.

Ubuntu/Debian packages

You can download the packages from our website:

Or, you can create a freshly brewed package yourself using the github script.

Installation is then simple as:

sudo dpkg -i PeerStreamer-ng_<arch>.deb
sudo systemctl start peerstreamer

Once PeerStreamer-ng is installed you need to configure Serf to be able to share channel advertisements with other PeerStreamer-ng instances. To setup serf on Ubuntu/Debian machines, edit the file /etc/serf/serf.json and add something like:

{
        "start_join": ["193.205.196.45:5000"],
        "interface": "wlan0",
        "node_name": "your_name",
        "profile": "wan",
        "log_level": "warn",
        "tags": {}
}

You need to restart the services to be effective:

sudo systemctl restart serf
sudo systemctl restart peerstreamer

Download and compilation

Several dependencies have to be satisfied, on ubuntu you can just type:

apt install libmicrohttpd-dev libjansson-dev libnice-dev \
	libssl-dev libsrtp-dev libsofia-sip-ua-dev libglib2.0-dev \
	libopus-dev libogg-dev libcurl4-openssl-dev pkg-config gengetopt \
	libtool libcrypto-dev automake

Now you are ready to compile and execute PeerStreamer-ng which is as easy as typing:

git clone https://github.com/netCommonsEU/PeerStreamer-ng
cd PeerStreamer-ng
make
./peerstreamer-ng

Cloudy deployment

You can install PeerStreamer-ng inside a cloudy box. Create the file /var/local/cDistro/plug/resources/docker/containers/PeerStreamer-ng_latest.json with the following content:

{
	"appname": "PeerStreamer-ng",
	"description": "P2P live video streaming",
	"arch": "[armhf,amd64]",
	"image": "--net host lbaldesi/peerstreamer",
	"name": "peerstreamer" 
}

Then, using the Cloudy web interface, browse to Enterprise/Docker, click on Add predefined image and then on PeerStreamer-ng to install and run the PeerStreamer-ng application.

Docker image

PeerStreamer-ng also comes bundled in a Docker container. Note, however, the available release might be not the latest bleeding-edge version.

docker pull lbaldesi/peerstreamer

If you want to build the container yourself:

git clone    https://github.com/netCommonsEU/PeerStreamer-docker.git
cd peerstreamer_docker
sudo docker build -t lbaldesi/peerstreamer .

Run the container to allow for arbitrarily port openings:

sudo docker run -d --name peerstreamer-ng --net host lbaldesi/peerstreamer

To advertise the streaming channels to other PeerStreamer-ng instances you need a side communication channel; the docker image is already configured to take advantage from a local Serf installation. So, to run a Serf agent and start advertising PeerStreamer-ng channels, just type:

serf agent -iface <outer_net_interface> -bind <local_ip_addr>:<local_port> [-join <remote_ip_address>:<remote_port>]