Skip to content
Go to file


Failed to load latest commit information.
Latest commit message
Commit time

Alice-LG - Your friendly looking glass

"No, no! The adventures first, explanations take such a dreadful time."
Lewis Carroll, Alice's Adventures in Wonderland & Through the Looking-Glass

Take a look at an Alice-LG production examples at:

And checkout the API at:


Alice-LG is a BGP looking glass which gets its data from external APIs.

Currently Alice-LG supports the following APIs:


Normally you would first install the birdwatcher API directly on the machine(s) where you run BIRD on and then install Alice-LG on a seperate public facing server and point her to the afore mentioned birdwatcher API.

This project was a direct result of the RIPE IXP Tools Hackathon just prior to RIPE73 in Madrid, Spain.

Major thanks to Barry O'Donovan who built the original INEX Bird's Eye BIRD API of which Alice-LG is a spinnoff


Alice-LG supports direct integration with GoBGP instances using gRPC. See the configuration section for more detail.

Building Alice-LG from scratch

These examples include setting up your Go environment, if you already have set that up then you can obviously skip that

In case you have trouble with npm and gulp you can try using yarn.

CentOS 7:

First add the following lines at the end of your ~/.bash_profile:

export GOPATH
export PATH

Now run:

source ~/.bash_profile

# Install frontend build dependencies
sudo yum install golang npm
sudo npm install --global gulp-cli
sudo npm install --global yarn

go get
go get
mkdir -p ~/go/bin ~/go/pkg ~/go/src/

cd ~/go/src/
git clone

cd alice-lg

Your Alice-LG source will now be located at ~/go/src/ and your alice-LG executable should be at ~/go/src/


An example configuration can be found at etc/alice-lg/alice.example.conf.

You can copy it to any of the following locations:

etc/alice-lg/alice.conf        # local
etc/alice-lg/alice.local.conf  # local
/etc/alice-lg/alice.conf       # global

You will have to edit the configuration file as you need to point Alice-LG to the correct backend source. Multiple sources can be configured.


name = (IPv4)
api =
neighbors_refresh_timeout = 2
# show_last_reboot = true
# timezone = UTC
# type = single_table / multi_table
type = multi_table
# not needed for single_table
peer_table_prefix = T
pipe_protocol_prefix = M

name = (IPv6)
api =


name =
group = AMS

# Host is the IP (or DNS name) and port for the remote GoBGP daemon
host =
# ProcessingTimeout is a timeout in seconds configured per gRPC call to a given GoBGP daemon
processing_timeout = 300


Launch the server by running



We added a Makefile for packaging Alice as an RPM using fpm.

If you have all tools available locally, you can just type:

make rpm

If you want to build the package on a remote machine, just use

make remote_rpm

which will copy the dist to the remote server and executes fpm via ssh.

You can specify which system integration to use: Set the SYSTEM_INIT variable to upstart or systemd (default) prior to building the RPM.

make remote_rpm SYSTEM_INIT=upstart


Alice now supports custom themes! In your alice.conf, you now can specify a theme by setting:

path = /path/to/my/alice-theme

with the optional parameter (the "mountpoint" of the theme) url_base = /theme

You can put assets (images, fonts, javscript, css) in this folder.

Stylesheets and Javascripts are automatically included in the client's html and are served from the backend.

Alice provides early stages of an extension API, which is for now only used to modify the content of the welcome screen, by providing a javascript in your theme containing:

    welcome: {
        title: "My Awesome Looking Glass",
        tagline: "powered by Alice"

For an example check out:


The client is a Single Page React Application. All sources are available in client/.

Install build tools as needed:

npm install -g gulp-cli

Create a fresh UI build with

cd client/
make client

This will install all dependencies and run gulp.

While working on the UI you might want to use make watch, which will keep the gulp watch task up and running.


For convenience we added a Dockerfile for building the frontend / client.

Create a fresh UI build using docker with

cd client/

# Dev build:
make -f Makefile.docker client

# Production build:
make -f Makefile.docker client_prod

You can use gulp with docker for watching the files while developing aswell:

make -f Makefile.docker watch


The development of Alice is now sponsored by


Many thanks go out to ECIX, where this project originated and was backed over the last two years.

You can’t perform that action at this time.