Libervia

Libervia is a multi-frontend, multi-purpose XMPP client. It doesn't just focus on instant messaging, and uses the open standard to provide features such as blogging/microblogging, calendar events, file sharing, end-to-end encryption, etc.

Try the service in a VM

  1. Install Nix
    Arch Linux
    Bash
    $ pacman --sync --refresh --noconfirm curl git jq nix
    Debian
    Bash
    $ apt install --yes curl git jq nix
    Ubuntu
    Bash
    $ apt install --yes curl git jq nix
  2. Download a configuration file
    # default.nix
    {
      ngipkgs ? import (fetchTarball "https://github.com/ngi-nix/ngipkgs/tarball/main") { },
    }:
    ngipkgs.demo-vm (
      { ... }:
      {
        programs.libervia.kivy.enable = true;
      }
    
    )
    
  3. Enable binary substituters
    Bash
    $ export NIX_CONFIG='substituters = https://cache.nixos.org/ https://ngi.cachix.org/
    trusted-public-keys = cache.nixos.org-1:6nchdd59x431o0gwypbmraurkbj16zpmqfgspcdshjy= ngi.cachix.org-1:n+cal72roc3qqulxihpv+tw5t42whxmmhpragkrsrow='
  4. Build and run a virtual machine
    Arch Linux, Debian Sid/Trixie and Ubuntu 25.04
    Bash
    $ nix-build ./default.nix && ./result
    Ubuntu 24.04
    Bash
    $ rev=$(nix-instantiate --eval --attr sources.nixpkgs.rev https://github.com/ngi-nix/ngipkgs/archive/master.tar.gz | jq --raw-output)
    $ nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/$rev.tar.gz --packages nix --run "nix-build ./default.nix && ./result"
  5. Usage Instructions
    1. Once the graphical desktop has loaded, navigate to and click:

      iceWM (in the bottom-left of the desktop) -> Network -> Libervia Desktop (Cagou) [Chat]

      Give the client some time to load.

    2. Once it has fully loaded, you need to create a new profile and enter some details. Use whichever name you want.

      • If you have an existing XMPP account, enter your JID and password
      • If you don't already have an XMPP account and just want to test the client, a local XMPP server has been set up with the following user:
        • JID: alice@example.org
        • Password: foobar

    3. Once the profile is created, select it in the list and click on "Connect".

    4. You can now try out Libervia's Kivy desktop client.

    5. For testing communication between two users, you may repeat the process for adding a profile, and use the following credentials:

      • JID: bob@example.org
      • Password: foobar

Options

programs.libervia
programs.libervia.backend.enable

Whether to enable Libervia backend and CLI/TUI clients.

Type:
boolean
Default:
false
programs.libervia.kivy.enable

Whether to enable Libervia Kivy desktop client.

Type:
boolean
Default:
false

Examples

backend
{ ... }:
{
  programs.libervia.backend.enable = true;
}
desktop
{ ... }:
{
  programs.libervia.kivy.enable = true;
}

This project is funded by NLnet through these subgrants: