Nebula Network

Nebula is a scalable overlay networking tool with a focus on performance, simplicity and security. It lets you seamlessly connect computers anywhere in the world. Nebula is portable, and runs on Linux, OSX, Windows, iOS, and Android. It can be used to connect a small number of computers, but is also able to connect tens of thousands of computers.



Install nebula with:

$ guix package -i nebula

This will give you access to:

  • nebula
  • nebula-cert


Refer to Getting started (quickly) on Github.


Open /etc/system.scm and adjust accordingly:

Single network

Add required imports. It may look something like this:

(use-modules (gnu)
             (gnu system)
             (px system config)
             (px services networking)) ;; add this only

Add service, to services:

(services (cons*
             (service nebula-service-type) ;; add this only
             %px-server-services)) ;; on desktop, this is 'px-desktop-services'

The default config is assumed to be at /etc/nebula/config.yml

Multiple networks

(service nebula-service-type
         (list (nebula-configuration
                (provision '(nebula-1))
                (config-path "/etc/nebula/network1/config.yml"))
                (provision '(nebula-2))
                (config-path "/etc/nebula/network2/config.yml"))))

Inline Configuration

define configuration as a plain-file:

(define %nebula-config-file
  (plain-file "nebula.yml"
  ca: /etc/nebula/certs/ca.crt
  cert: /etc/nebula/certs/host.crt
  key: /etc/nebula/certs/host.key

use the configuration in the nebula-service-type:

(service nebula-service-type
         (list (nebula-configuration
                (provision '(nebula))
                (config-path %nebula-config-file))))

PantherX & (unofficial) GNU Guix Wiki.

Last update: 2024-04-21 10:28:03 +0000 | Apache-2.0

Inspired by the excellent Arch Linux Wiki