SkillAgentSearch skills...

Docker

LibreNMS Docker image

Install / Use

/learn @librenms/Docker
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"><a href="https://github.com/librenms/docker" target="_blank"><img height="128" src="https://raw.githubusercontent.com/librenms/docker/master/.github/docker-librenms.jpg"></a></p> <p align="center"> <a href="https://hub.docker.com/r/librenms/librenms/tags?page=1&ordering=last_updated"><img src="https://img.shields.io/github/v/tag/librenms/docker?label=version&style=flat-square" alt="Latest Version"></a> <a href="https://github.com/librenms/docker/actions?workflow=build"><img src="https://img.shields.io/github/actions/workflow/status/librenms/docker/build.yml?branch=master&label=build&logo=github&style=flat-square" alt="Build Status"></a> <a href="https://hub.docker.com/r/librenms/librenms/"><img src="https://img.shields.io/docker/stars/librenms/librenms.svg?style=flat-square&logo=docker" alt="Docker Stars"></a> <a href="https://hub.docker.com/r/librenms/librenms/"><img src="https://img.shields.io/docker/pulls/librenms/librenms.svg?style=flat-square&logo=docker" alt="Docker Pulls"></a> <br /><a href="https://github.com/sponsors/crazy-max"><img src="https://img.shields.io/badge/sponsor-crazy--max-181717.svg?logo=github&style=flat-square" alt="Become a sponsor"></a> <a href="https://www.paypal.me/crazyws"><img src="https://img.shields.io/badge/donate-paypal-00457c.svg?logo=paypal&style=flat-square" alt="Donate Paypal"></a> </p>

About

Docker image for LibreNMS, a fully featured network monitoring system that provides a wealth of features and device support.

[!TIP] Want to be notified of new releases? Check out 🔔 Diun (Docker Image Update Notifier) project!


Features

  • Run as non-root user
  • Multi-platform image
  • Dispatcher service as "sidecar" container
  • Syslog-ng support through a "sidecar" container
  • Snmp-trap support through a "sidecar" container
  • Ability to add custom Monitoring plugins
  • Ability to add custom alert templates
  • OPCache enabled to store precompiled script bytecode in shared memory
  • s6-overlay as process supervisor
  • Traefik as reverse proxy and creation/renewal of Let's Encrypt certificates (see this template)
  • Redis image ready to use for better scalability
  • RRDcached image ready to use for data caching and graphs
  • msmtpd SMTP relay image to send emails
  • MariaDB image as database instance

Demo

Try in PWD

Build locally

$ git clone https://github.com/librenms/docker.git docker-librenms
$ cd docker-librenms

# Build image and output to docker (default)
$ docker buildx bake

# Build multi-platform image
$ docker buildx bake image-all

Image

Following platforms for this image are available:

$ docker buildx imagetools inspect librenms/librenms --format "{{json .Manifest}}" | \
  jq -r '.manifests[] | select(.platform.os != null and .platform.os != "unknown") | .platform | "\(.os)/\(.architecture)\(if .variant then "/" + .variant else "" end)"'

linux/386
linux/amd64
linux/arm/v7
linux/arm64
linux/ppc64le
linux/s390x

Environment variables

General

  • TZ: The timezone assigned to the container (default UTC)
  • PUID: LibreNMS user id (default 1000)
  • PGID: LibreNMS group id (default 1000)
  • MEMORY_LIMIT: PHP memory limit (default 256M)
  • MAX_INPUT_VARS: PHP max input vars (default 1000)
  • UPLOAD_MAX_SIZE: Upload max size (default 16M)
  • CLEAR_ENV: Clear environment in FPM workers (default yes)
  • FPM_PM_MAX_CHILDREN: FPM max Children (default: 15)
  • FPM_PM_START_SERVERS: FPM start servers (default: 2)
  • FPM_PM_MIN_SPARE_SERVERS: FPM min spare servers (default: 1)
  • FPM_PM_MAX_SPARE_SERVERS: FPM max spare servers (default: 6)
  • OPCACHE_MEM_SIZE: PHP OpCache memory consumption (default 128)
  • LISTEN_IPV6: Enable IPv6 for Nginx (default true)
  • REAL_IP_FROM: Trusted addresses that are known to send correct replacement addresses (default 0.0.0.0/32)
  • REAL_IP_HEADER: Request header field whose value will be used to replace the client address (default X-Forwarded-For)
  • LOG_IP_VAR: Use another variable to retrieve the remote IP address for access log_format on Nginx. (default remote_addr)
  • SESSION_DRIVER: Driver to use for session storage (default file)
  • CACHE_DRIVER: Driver to use for cache and locks (default database)

Redis

[!NOTE] Redis variables should be set on all containers and are required when running more than one dispatcher.

  • REDIS_HOST: Redis host for poller synchronization
  • REDIS_SENTINEL: Redis Sentinel host for high availability Redis cluster
  • REDIS_SENTINEL_SERVICE: Redis Sentinel service name (default librenms)
  • REDIS_SCHEME: Redis scheme (default tcp)
  • REDIS_PORT: Redis port (default 6379)
  • REDIS_PASSWORD: Redis password
  • REDIS_DB: Redis database (default 0)
  • REDIS_CACHE_DB: Redis cache database (default 1)

Dispatcher service

[!WARNING] You need at least one dispatcher sidecar, otherwise poller will not run sidecar dispatcher container.

  • SIDECAR_DISPATCHER: Set to 1 to enable sidecar dispatcher mode for this container (default 0)
  • DISPATCHER_NODE_ID: Unique node ID for your dispatcher service
  • DISPATCHER_ARGS: Additional args to pass to the dispatcher service

Syslog-ng

[!WARNING] Only used if you enable and run a sidecar syslog-ng container.

  • SIDECAR_SYSLOGNG: Set to 1 to enable sidecar syslog-ng mode for this container (default 0)

Snmptrapd

[!WARNING] Only used if you enable and run a sidecar snmptrapd container.

  • SIDECAR_SNMPTRAPD: Set to 1 to enable sidecar snmptrapd mode for this container (default 0)
  • SNMP_PROCESSING_TYPE: Sets which type of processing (log, execute, and/or net) to use with the SNMP trap (default log,execute,net)
  • SNMP_USER: Defines what username to authenticate with (default librenms_user)
  • SNMP_AUTH: Defines what password to authenticate with (default auth_pass should not be used, but will work)
  • SNMP_PRIV: Defines what password to encrypt packages with (default priv_pass should not be used, but will work)
  • SNMP_AUTH_PROTO: Sets what protocol (MD5|SHA) to use for authentication (default SHA)
  • SNMP_PRIV_PROTO: Sets what protocol (DES|AES) to use for encryption of packages (default AES)
  • SNMP_SECURITY_LEVEL: Sets what security level (noauth|priv) to use (default priv)
  • SNMP_ENGINEID: Defines what SNMP EngineID to use (default 1234567890)
  • SNMP_DISABLE_AUTHORIZATION: Will disable the above access control checks, and revert to the previous behaviour of accepting all incoming notifications. (default yes)
  • SNMP_EXTRA_MIB_DIRS: Additional directories where MIB files are for SNMP Traps (example /opt/librenms/mibs/veeam)

Database

  • DB_HOST: MySQL database hostname / IP address
  • DB_PORT: MySQL database port (default 3306)
  • DB_NAME: MySQL database name (default librenms)
  • DB_USER: MySQL user (default librenms)
  • DB_PASSWORD: MySQL password (default librenms)
  • DB_TIMEOUT: Time in seconds after which we stop trying to reach the MySQL server (useful for clusters, default 60)

Misc

  • LIBRENMS_BASE_URL: URL of your LibreNMS instance (default /)
  • LIBRENMS_SNMP_COMMUNITY: This container's SNMP v2c community string (default librenmsdocker)
  • MEMCACHED_HOST: Hostname / IP address of a Memcached server
  • MEMCACHED_PORT: Port of the Memcached server (default 11211)
  • RRDCACHED_SERVER: RRDcached server (eg. rrdcached:42217)

Volumes

  • /data: Contains configuration, plugins, rrd database, logs, additional Monitoring plugins, additional syslog-ng config files

[!WARNING] Note that the volume should be owned by the user/grou

Related Skills

View on GitHub
GitHub Stars826
CategoryDevelopment
Updated5d ago
Forks308

Languages

Dockerfile

Security Score

100/100

Audited on Mar 28, 2026

No findings