How to Install Restreamer on NixOS Latest

Restreamer is an open-source video streaming platform that allows streaming of video feeds from various sources to multiple platforms. It is developed by Datarhei/Thomas Weber and is compatible with several operating systems, including NixOS. In this tutorial, we will guide you on how to install Restreamer on NixOS latest version.

Prerequisites

Before installing Restreamer, you need to have the following:

Step 1: Install Nix

To install Nix package manager, run the following command in the terminal:

$ curl -L https://nixos.org/nix/install | sh

Once the installation is complete, you can verify by running the command:

$ nix-version

Step 2: Add the Restreamer package to NixOS configuration

To add Restreamer package to NixOS configuration, create a new file named restreamer.nix in the /etc/nixos/ directory using the following command:

$ sudo nano /etc/nixos/restreamer.nix

Copy the code below into the file and save it.

{ config, pkgs, ... }:

let
  restreamer = pkgs.callPackage (pkgs.fetchgit {
    url = "https://github.com/datarhei/restreamer";
    rev = "tag/v5.0.0";
    sha256 = "1zix0pkrx6vz8jh61wymbdvqpz7dnk0d2vgr8ylpkdn78hxb28s6";
  }) {
    src = null;
  };
in
{
  services.restreamer = {
    enable = true;
    version = "5.0.0";
    config = {
      paths = {
        input = "${config.services.restreamer.path}/input";
        www = "${config.services.restreamer.path}/www";
        log = "${config.services.restreamer.path}/log";
        tmp = "${config.services.restreamer.path}/tmp";
      };
      inits = {
        input_init = {
          command = "${restreamer}/bin/init-input.sh";
          after = ["network-online.target" "ssh.service"];
        };
        stream_init = {
          command = "${restreamer}/bin/init-stream.sh";
          after = ["input_init.service"];
        };
        web_init = {
          command = "${restreamer}/bin/init-web.sh";
          after = ["stream_init.service"];
        };
      };
      keys = {
        key = "streamkey";
      };
    };
  };
}

The code above specifies the Restreamer version, sets up paths for input, log, and temporary files, creates initialization scripts for the input, streams, and web, and specifies a stream key.

Step 3: Include the Restreamer package in NixOS configuration

Next, include the restreamer.nix file in your NixOS configuration by adding the following line in the configuration.nix file:

$ sudo nano /etc/nixos/configuration.nix
imports = [ /etc/nixos/restreamer.nix ];

Then, save and exit the file.

Step 4: Activate Restreamer package

To activate the Restreamer package, run the following command:

$ sudo nixos-rebuild switch

Wait for the build process to finish, and then reboot your system for the changes to take effect.

$ sudo reboot

Step 5: Access Restreamer web interface

Once your system has rebooted, you can access Restreamer web interface via http://<your IP address>:8080. In the web interface, you can add video sources, configure output, and stream to various platforms.

Congratulations! You have successfully installed Restreamer on NixOS latest.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!