Skip to main content

🔧 Configuration Guide

The Looking Glass service is configured through a config.yaml file. This guide will walk you through all available configuration options and their usage.

Getting Started

We recommend starting with our default configuration template available at https://laniakea.dev/config.yaml. You can then customize it according to your requirements. Link

Note: Configuration changes are applied dynamically - no container restart is required.

Configuration Sections

Project Settings

The project section defines the core settings of your Looking Glass instance:

config.yaml
project:
name: "FastPing Networks Looking Glass"
page_title: "FastPing Networks"
logo_url: "https://laniakea.dev/img/logo_dark.png"
logo_url_dark: "https://laniakea.dev/img/logo_light.png"
favicon_url: "https://laniakea.dev/favicon.ico"
css: "body { }"
dns_resolver: "https://cloudflare-dns.com"
top_html: "Welcome to the <b>Fast Ping Network's Looking Glass</b>. Here you will be able to perform diagnostic queries from our main nodes. "
bottom_html: "<a class='link-muted' href='#'>Fast Ping Networks</a> | <a class='link-muted' href='mailto:[email protected]'>Contact Support</a>"
theme: "light"
hide_theme_switch: false
hide_title: true
hide_footer: false
devices_dropdown: false
PropertyDescription
nameThe title of your Looking Glass instance displayed in the UI
page_titleThe title of your Looking Glass instance displayed in page title(one in your browser tab)
logo_urlURL to your company/organization logo
logo_url_darkURL to your company/organization logo in dark mode
favicon_urlURL to your favicon for browser tabs
themeTheme to use. dark, light or auto
hide_theme_switchOption to hide theme switch button
cssCustom CSS rules to customize the UI appearance
top_htmlCustom HTML to display at the top of the page(between logo and device selector)
bottom_htmlCustom HTML to display at the bottom of the page
hide_titleHide title of displayed at top of the page(name param)
hide_footerHide created with laniakea looking glass attribution
devices_dropdownif true - devices list will be show as dropdown, if false - devices will show as cards
dns_resolverDNS-over-HTTPS (DoH) endpoint for domain resolution

License Configuration

config.yaml
license_key: "eyJkYXRhIjp7Iml...wEf8CxZ834=="

Enter your valid license key to activate all features.

Rate Limiting

Control request limits to prevent abuse:

config.yaml
rate_limits:
requests_per_hour: 1000

This setting limits the number of requests from a single IP address (or /64 IPv6 subnet) per hour.

Caching Configuration

config.yaml
cache_timeout: 600

Define how long (in seconds) results should be cached before a new execution is required.

Command Configuration

Define the available network diagnostic commands:

config.yaml
commands:
- id: 1
name: "ping"
description: "ICMP ping test to measure latency"
command: "ping {input} -c 5"
rules: [ipv4, ipv6, domain]
- id: 2
name: "mtr"
description: "MTR (My Traceroute) network diagnostic tool"
command: "mtr -r -c5 {input}"
rules: [ipv4, ipv6, domain]

Each command requires:

PropertyDescription
idUnique identifier for the command
nameDisplay name in the UI
descriptionDetailed description of the command's purpose
commandThe actual command to execute ({input} placeholder for user input)
rulesInput validation rules: ipv4, ipv6, asn, domain, cidr or any

Device Configuration

Configure network devices that will execute the commands:

config.yaml
devices:
- id: unique_number
name: "device_name"
ip: "device_ip"
username: "login_username"
password: "login_password"
ssh-key: "private_key"
location: "City, Country"
allowed_commands: [1,2,3]
port: 22
timeout: 30
emoji: "🏰"
system_type: 1

Device configuration parameters:

ParameterDescription
idUnique device identifier
nameDisplay name in the UI
ipDevice IP address (IPv4/IPv6) or hostname
usernameSSH username
passwordSSH password (if required)
ssh-keyPath to the key in the /etc/laniakea folder (RSA, DSA, ECDSA and Ed25519)
portSSH port (default: 22)
timeoutSSH connection timeout in seconds
locationHuman-readable location (can be used as device description also)
allowed_commandsArray of permitted command IDs
emojiDisplay emoji (e.g., country flag)
system_typeOperating system identifier (see Supported OS section)