{"id":13580912,"url":"https://github.com/librenms/docker","last_synced_at":"2026-01-16T04:06:02.119Z","repository":{"id":38627235,"uuid":"154183265","full_name":"librenms/docker","owner":"librenms","description":"LibreNMS Docker image","archived":false,"fork":false,"pushed_at":"2026-01-13T00:42:31.000Z","size":685,"stargazers_count":811,"open_issues_count":62,"forks_count":303,"subscribers_count":17,"default_branch":"master","last_synced_at":"2026-01-13T03:08:19.224Z","etag":null,"topics":["alpine-linux","docker","librenms","nagios-plugins","nginx","snmpd","syslog-ng"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/librenms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"crazy-max","custom":"https://www.paypal.me/crazyws"}},"created_at":"2018-10-22T17:08:32.000Z","updated_at":"2026-01-12T23:00:26.000Z","dependencies_parsed_at":"2023-02-19T12:05:24.022Z","dependency_job_id":"fb1f9a50-c47d-4dea-a131-ee7af75a102c","html_url":"https://github.com/librenms/docker","commit_stats":{"total_commits":501,"total_committers":47,"mean_commits":"10.659574468085106","dds":"0.27345309381237526","last_synced_commit":"74d179c244abf3f366d968311ae1cf339664268b"},"previous_names":[],"tags_count":149,"template":false,"template_full_name":null,"purl":"pkg:github/librenms/docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librenms%2Fdocker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librenms%2Fdocker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librenms%2Fdocker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librenms%2Fdocker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/librenms","download_url":"https://codeload.github.com/librenms/docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/librenms%2Fdocker/sbom","scorecard":{"id":588258,"data":{"date":"2025-08-11","repo":{"name":"github.com/librenms/docker","commit":"23fa3ab8205322f0fef9ee88619cad8e444156c0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.2,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":3,"reason":"Found 3/8 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":10,"reason":"16 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/labels.yml:28","Info: topLevel 'contents' permission set to 'read': .github/workflows/build.yml:9","Info: topLevel 'contents' permission set to 'read': .github/workflows/labels.yml:9","Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:9","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/librenms/docker/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/librenms/docker/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/librenms/docker/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/librenms/docker/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/librenms/docker/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/labels.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/librenms/docker/labels.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/labels.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/librenms/docker/labels.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/librenms/docker/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/librenms/docker/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/librenms/docker/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/librenms/docker/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/librenms/docker/test.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:8","Warn: containerImage not pinned by hash: Dockerfile:9","Warn: pipCommand not pinned by hash: Dockerfile:11-98","Warn: pipCommand not pinned by hash: Dockerfile:11-98","Warn: downloadThenRun not pinned by hash: Dockerfile:11-98","Warn: pipCommand not pinned by hash: Dockerfile:118-139","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  10 third-party GitHubAction dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned","Info:   0 out of   3 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T21:08:29.333Z","repository_id":38627235,"created_at":"2025-08-20T21:08:29.333Z","updated_at":"2025-08-20T21:08:29.333Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477207,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T03:13:13.607Z","status":"ssl_error","status_checked_at":"2026-01-16T03:11:47.863Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpine-linux","docker","librenms","nagios-plugins","nginx","snmpd","syslog-ng"],"created_at":"2024-08-01T15:01:56.218Z","updated_at":"2026-01-16T04:06:02.095Z","avatar_url":"https://github.com/librenms.png","language":"Dockerfile","readme":"\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/librenms/docker\" target=\"_blank\"\u003e\u003cimg height=\"128\" src=\"https://raw.githubusercontent.com/librenms/docker/master/.github/docker-librenms.jpg\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://hub.docker.com/r/librenms/librenms/tags?page=1\u0026ordering=last_updated\"\u003e\u003cimg src=\"https://img.shields.io/github/v/tag/librenms/docker?label=version\u0026style=flat-square\" alt=\"Latest Version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/librenms/docker/actions?workflow=build\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/librenms/docker/build.yml?branch=master\u0026label=build\u0026logo=github\u0026style=flat-square\" alt=\"Build Status\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/r/librenms/librenms/\"\u003e\u003cimg src=\"https://img.shields.io/docker/stars/librenms/librenms.svg?style=flat-square\u0026logo=docker\" alt=\"Docker Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/r/librenms/librenms/\"\u003e\u003cimg src=\"https://img.shields.io/docker/pulls/librenms/librenms.svg?style=flat-square\u0026logo=docker\" alt=\"Docker Pulls\"\u003e\u003c/a\u003e\n  \u003cbr /\u003e\u003ca href=\"https://github.com/sponsors/crazy-max\"\u003e\u003cimg src=\"https://img.shields.io/badge/sponsor-crazy--max-181717.svg?logo=github\u0026style=flat-square\" alt=\"Become a sponsor\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.paypal.me/crazyws\"\u003e\u003cimg src=\"https://img.shields.io/badge/donate-paypal-00457c.svg?logo=paypal\u0026style=flat-square\" alt=\"Donate Paypal\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## About\n\nDocker image for [LibreNMS](https://www.librenms.org/), a fully featured network\nmonitoring system that provides a wealth of features and device support.\n\n\u003e [!TIP]\n\u003e Want to be notified of new releases? Check out 🔔 [Diun (Docker Image Update Notifier)](https://github.com/crazy-max/diun)\n\u003e project!\n\n___\n\n* [Features](#features)\n* [Demo](#demo)\n* [Build locally](#build-locally)\n* [Image](#image)\n* [Environment variables](#environment-variables)\n  * [General](#general)\n  * [Redis](#redis)\n  * [Dispatcher service](#dispatcher-service)\n  * [Syslog-ng](#syslog-ng)\n  * [Snmptrapd](#snmptrapd)\n  * [Database](#database)\n  * [Misc](#misc)\n* [Volumes](#volumes)\n* [Ports](#ports)\n* [Usage](#usage)\n  * [Docker Compose](#docker-compose)\n  * [Command line](#command-line)\n  * [First launch](#first-launch)\n* [Upgrade](#upgrade)\n* [Configuration Management](#configuration-management)\n  * [Initial Configuration](#initial-configuration)\n  * [Live Configuration](#live-configuration)\n  * [Re-Apply YAML Config](#re-apply-yaml-config)\n  * [Live Config](#live-config)\n* [Notes](#notes)\n  * [LNMS command](#lnms-command)\n  * [Validate](#validate)\n  * [Dispatcher service container](#dispatcher-service-container)\n  * [Syslog-ng container](#syslog-ng-container)\n  * [Snmptrapd container](#snmptrapd-container)\n  * [Add a LibreNMS plugin](#add-a-librenms-plugin)\n  * [Additional Monitoring plugins](#additional-monitoring-plugins)\n  * [Custom alert templates](#custom-alert-templates)\n* [Contributing](#contributing)\n* [License](#license)\n\n## Features\n\n* Run as non-root user\n* Multi-platform image\n* [Dispatcher service](#dispatcher-service) as \"sidecar\" container\n* Syslog-ng support through a [\"sidecar\" container](#syslog-ng)\n* Snmp-trap support through a [\"sidecar\" container](#snmptrapd)\n* Built-in LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/)\n* Ability to add custom Monitoring plugins\n* Ability to add custom alert templates\n* OPCache enabled to store precompiled script bytecode in shared memory\n* [s6-overlay](https://github.com/just-containers/s6-overlay/) as process supervisor\n* [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates (see [this template](examples/traefik))\n* [Redis](https://github.com/docker-library/redis) image ready to use for better scalability\n* [RRDcached](https://github.com/crazy-max/docker-rrdcached) image ready to use for data caching and graphs\n* [msmtpd SMTP relay](https://github.com/crazy-max/docker-msmtpd) image to send emails\n* [MariaDB](https://github.com/docker-library/mariadb) image as database instance\n\n## Demo\n\n[![Try in PWD](https://raw.githubusercontent.com/play-with-docker/stacks/master/assets/images/button.png)](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/librenms/docker/master/examples/pwd/librenms.yml)\n\n## Build locally\n\n```console\n$ git clone https://github.com/librenms/docker.git docker-librenms\n$ cd docker-librenms\n\n# Build image and output to docker (default)\n$ docker buildx bake\n\n# Build multi-platform image\n$ docker buildx bake image-all\n```\n\n## Image\n\nFollowing platforms for this image are available:\n\n```\n$ docker buildx imagetools inspect librenms/librenms --format \"{{json .Manifest}}\" | \\\n  jq -r '.manifests[] | select(.platform.os != null and .platform.os != \"unknown\") | .platform | \"\\(.os)/\\(.architecture)\\(if .variant then \"/\" + .variant else \"\" end)\"'\n\nlinux/386\nlinux/amd64\nlinux/arm/v7\nlinux/arm64\nlinux/ppc64le\nlinux/s390x\n```\n\n## Environment variables\n\n### General\n\n* `TZ`: The timezone assigned to the container (default `UTC`)\n* `PUID`: LibreNMS user id (default `1000`)\n* `PGID`: LibreNMS group id (default `1000`)\n* `MEMORY_LIMIT`: PHP memory limit (default `256M`)\n* `MAX_INPUT_VARS`: PHP max input vars (default `1000`)\n* `UPLOAD_MAX_SIZE`: Upload max size (default `16M`)\n* `CLEAR_ENV`: Clear environment in FPM workers (default `yes`)\n* `FPM_PM_MAX_CHILDREN`: FPM max Children (default: `15`)\n* `FPM_PM_START_SERVERS`: FPM start servers (default: `2`)\n* `FPM_PM_MIN_SPARE_SERVERS`: FPM min spare servers (default: `1`)\n* `FPM_PM_MAX_SPARE_SERVERS`: FPM max spare servers (default: `6`)\n* `OPCACHE_MEM_SIZE`: PHP OpCache memory consumption (default `128`)\n* `LISTEN_IPV6`: Enable IPv6 for Nginx (default `true`)\n* `REAL_IP_FROM`: Trusted addresses that are known to send correct replacement addresses (default `0.0.0.0/32`)\n* `REAL_IP_HEADER`: Request header field whose value will be used to replace the client address (default `X-Forwarded-For`)\n* `LOG_IP_VAR`: Use another variable to retrieve the remote IP address for access [log_format](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) on Nginx. (default `remote_addr`)\n* `SESSION_DRIVER`: [Driver to use for session storage](https://github.com/librenms/librenms/blob/master/config/session.php) (default `file`)\n* `CACHE_DRIVER`: [Driver to use for cache and locks](https://github.com/librenms/librenms/blob/master/config/cache.php) (default `database`)\n\n### Redis\n\n\u003e [!NOTE]\n\u003e Redis variables should be set on all containers and are required when running\n\u003e more than one dispatcher.\n\n* `REDIS_HOST`: Redis host for poller synchronization\n* `REDIS_SENTINEL`: Redis Sentinel host for high availability Redis cluster\n* `REDIS_SENTINEL_SERVICE`: Redis Sentinel service name (default `librenms`)\n* `REDIS_SCHEME`: Redis scheme (default `tcp`)\n* `REDIS_PORT`: Redis port (default `6379`)\n* `REDIS_PASSWORD`: Redis password\n* `REDIS_DB`: Redis database (default `0`)\n* `REDIS_CACHE_DB`: Redis cache database (default `1`)\n\n### Dispatcher service\n\n\u003e [!WARNING]\n\u003e You need at least one dispatcher sidecar, otherwise poller will not run [sidecar dispatcher container](#dispatcher-service-container).\n\n* `SIDECAR_DISPATCHER`: Set to `1` to enable sidecar dispatcher mode for this container (default `0`)\n* `DISPATCHER_NODE_ID`: Unique node ID for your dispatcher service\n* `DISPATCHER_ARGS`: Additional args to pass to the [dispatcher service](https://github.com/librenms/librenms/blob/master/librenms-service.py)\n\n### Syslog-ng\n\n\u003e [!WARNING]\n\u003e Only used if you enable and run a [sidecar syslog-ng container](#syslog-ng-container).\n\n* `SIDECAR_SYSLOGNG`: Set to `1` to enable sidecar syslog-ng mode for this container (default `0`)\n\n### Snmptrapd\n\n\u003e [!WARNING]\n\u003e Only used if you enable and run a [sidecar snmptrapd container](#snmptrapd-container).\n\n* `SIDECAR_SNMPTRAPD`: Set to `1` to enable sidecar snmptrapd mode for this container (default `0`)\n* `SNMP_PROCESSING_TYPE`: Sets which type of processing (`log`, `execute`, and/or `net`) to use with the SNMP trap (default `log,execute,net`)\n* `SNMP_USER`: Defines what username to authenticate with (default `librenms_user`)\n* `SNMP_AUTH`: Defines what password to authenticate with (default `auth_pass` should not be used, but will work)\n* `SNMP_PRIV`: Defines what password to encrypt packages with (default `priv_pass` should not be used, but will work)\n* `SNMP_AUTH_PROTO`: Sets what protocol (`MD5`|`SHA`) to use for authentication (default `SHA`)\n* `SNMP_PRIV_PROTO`: Sets what protocol (`DES`|`AES`) to use for encryption of packages (default `AES`)\n* `SNMP_SECURITY_LEVEL`: Sets what security level (`noauth`|`priv`) to use (default `priv`)\n* `SNMP_ENGINEID`: Defines what SNMP EngineID to use (default `1234567890`)\n* `SNMP_DISABLE_AUTHORIZATION`: Will disable the above access control checks, and revert to the previous behaviour of accepting all incoming notifications. (default `yes`)\n* `SNMP_EXTRA_MIB_DIRS`: [Additional directories where MIB files are for SNMP Traps](https://docs.librenms.org/Extensions/SNMP-Trap-Handler/#option-2) (example `/opt/librenms/mibs/veeam`)\n\n### Database\n\n* `DB_HOST`: MySQL database hostname / IP address\n* `DB_PORT`: MySQL database port (default `3306`)\n* `DB_NAME`: MySQL database name (default `librenms`)\n* `DB_USER`: MySQL user (default `librenms`)\n* `DB_PASSWORD`: MySQL password (default `librenms`)\n* `DB_TIMEOUT`: Time in seconds after which we stop trying to reach the MySQL server (useful for clusters, default `60`)\n\n### Misc\n\n* `LIBRENMS_BASE_URL`: URL of your LibreNMS instance (default `/`)\n* `LIBRENMS_SNMP_COMMUNITY`: This container's SNMP v2c community string (default `librenmsdocker`)\n* `LIBRENMS_WEATHERMAP`: Enable LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) (default `false`)\n* `LIBRENMS_WEATHERMAP_SCHEDULE`: CRON expression format (default `*/5 * * * *`)\n* `MEMCACHED_HOST`: Hostname / IP address of a Memcached server\n* `MEMCACHED_PORT`: Port of the Memcached server (default `11211`)\n* `RRDCACHED_SERVER`: RRDcached server (eg. `rrdcached:42217`)\n\n## Volumes\n\n* `/data`: Contains configuration, plugins, rrd database, logs, additional Monitoring plugins, additional syslog-ng config files\n\n\u003e [!WARNING]\n\u003e Note that the volume should be owned by the user/group with the specified\n\u003e `PUID` and `PGID`. If you don't give the volume correct permissions, the\n\u003e container may not start.\n\n## Ports\n\n* `8000`: HTTP port\n* `514 514/udp`: Syslog ports (only used if you enable and run a [sidecar syslog-ng container](#syslog-ng-container))\n* `162 162/udp`: Snmptrapd ports (only used if you enable and run a [sidecar snmptrapd container](#snmptrapd-container))\n\n## Usage\n\n### Docker Compose\n\nDocker compose is the recommended way to run this image. Copy the content of\nfolder [examples/compose](examples/compose) in `/var/librenms/` on your host\nfor example. Edit the compose and env files with your preferences and run the\nfollowing commands:\n\n```console\n$ docker compose up -d\n$ docker compose logs -f\n```\n\n### Command line\n\nYou can also use the following minimal command:\n\n```console\n$ docker run -d -p 8000:8000 --name librenms \\\n  -v $(pwd)/data:/data \\\n  -e \"DB_HOST=db\" \\\n  librenms/librenms:latest\n```\n\n\u003e [!WARNING]\n\u003e `db` must be a running MySQL instance.\n\n### First launch\n\nWhen you first access the webui, you will be prompted to create an admin user.\n\n\u003e [!NOTE]\n\u003e If you lose access, you can create another one using the [`lnms` command](#lnms-command).\n\n## Upgrade\n\nTo upgrade to the latest version of LibreNMS, pull the newer image and launch\nthe container. LibreNMS will upgrade automatically:\n\n```console\n$ docker compose down\n$ docker compose pull\n$ docker compose up -d\n```\n\n## Configuration Management\n\n### Initial Configuration\n\nYou can set the initial configuration of LibreNMS by placing `*.yaml` files inside `/data/config` folder. Let's say you want to edit the [WebUI config](https://docs.librenms.org/Support/Configuration/#webui-settings).\nCreate a file called for example `/data/config/webui.yaml` with this content :\n\n```yaml\npage_refresh: 300\nwebui.default_dashboard_id: 0\n```\n\nThis configuration will be seeded into the LibreNMS database when it is first deployed \nand will override the default values.\n\n### Live Configuration\n\nYou can edit the running configuration via the LibreNMS web UI or `lnms config:set`\n\n```bash\ndocker compose exec librenms lnms config:set page_refresh 300\n```\n\n### Re-Apply YAML Config\n\nSet `REAPPLY_YAML_CONFIG=1` to overwrite any settings that are set during initial config\nor via user config back to their initial values every time the container is deployed.\n\n### Live Config\n\nUsing this config method, configuration changes will be reflected live on the containers, BUT\nyou will be unable to edit the configured settings from within the LibreNMS web UI or lnms config:set.\n\nThe same example using PHP `/data/config/webui.php`\n\n```php\n\u003c?php\n$config['page_refresh'] = \"300\";\n$config['webui']['default_dashboard_id'] = 0;\n```\n\n## Notes\n\n### LNMS command\n\nIf you want to use the `lnms` command to perform common server operations like\nmanage users, database migration, and more, type:\n\n```console\n$ docker compose exec librenms lnms\n```\n\n### Validate\n\nIf you want to validate your installation from the CLI, type the following\ncommand:\n\n```console\n$ docker compose exec --user librenms librenms php validate.php\n====================================\nComponent | Version\n--------- | -------\nLibreNMS  | 1.64\nDB Schema | 2020_04_19_010532_eventlog_sensor_reference_cleanup (165)\nPHP       | 7.3.18\nPython    | 3.8.2\nMySQL     | 10.4.13-MariaDB-1:10.4.13+maria~bionic\nRRDTool   | 1.7.2\nSNMP      | NET-SNMP 5.8\n====================================\n\n[OK]    Installed from the official Docker image; no Composer required\n[OK]    Database connection successful\n[OK]    Database schema correct\n[WARN]  IPv6 is disabled on your server, you will not be able to add IPv6 devices.\n[WARN]  Updates are managed through the official Docker image\n```\n\n### Dispatcher service container\n\nIf you want to enable the new [Dispatcher service](https://docs.librenms.org/Extensions/Dispatcher-Service/),\nyou have to run a \"sidecar\" container (see dispatcher service in\n[compose.yml](examples/compose/compose.yml) example) or run a simple container\nlike this:\n\n```console\n$ docker run -d --name librenms_dispatcher \\\n  --env-file $(pwd)/librenms.env \\\n  -e SIDECAR_DISPATCHER=1 \\\n  -e DISPATCHER_NODE_ID=dispatcher1 \\\n  -v librenms:/data \\\n  librenms/librenms:latest\n```\n\n\u003e [!WARNING]\n\u003e `librenms` must be a valid volume already attached to a LibreNMS container.\n\n### Syslog-ng container\n\nIf you want to enable syslog-ng, you have to run a \"sidecar\" container (see\nsyslog-ng service in [compose.yml](examples/compose/compose.yml) example) or\nrun a simple container like this:\n\n```console\n$ docker run -d --name librenms_syslog \\\n  --env-file $(pwd)/librenms.env \\\n  -e SIDECAR_SYSLOGNG=1 \\\n  -p 514 -p 514/udp \\\n  -v librenms:/data \\\n  librenms/librenms:latest\n```\n\n\u003e [!WARNING]\n\u003e `librenms` must be a valid volume already attached to a LibreNMS container.\n\nYou have to create a configuration file to enable syslog in LibreNMS too. Create\na file called for example `/data/config/syslog.yaml` with this content :\n\n```yaml\nenable_syslog: true\n```\n\n### Snmptrapd container\n\nIf you want to enable snmptrapd, you have to run a \"sidecar\" container (see\nsnmptrapd service in [compose.yml](examples/compose/compose.yml) example) or\nrun a simple container like this:\n\n```console\n$ docker run -d --name librenms_snmptrapd \\\n  --env-file $(pwd)/librenms.env \\\n  -e SIDECAR_SNMPTRAPD=1 \\\n  -p 162 -p 162/udp \\\n  -v librenms:/data \\\n  librenms/librenms:latest\n```\n\n\u003e [!WARNING]\n\u003e `librenms` must be a valid volume already attached to a LibreNMS container.\n\n### Add a LibreNMS plugin\n\nYou can add [plugins for LibreNMS](https://docs.librenms.org/Extensions/Plugin-System/)\nin `/data/plugins/`. If you add a plugin that already exists in LibreNMS, it\nwill be removed and yours will be used (except for Weathermap).\n\n\u003e [!WARNING]\n\u003e Container has to be restarted to propagate changes.\n\n### Additional Monitoring plugins\n\nYou can add a custom Monitoring plugin in `/data/monitoring-plugins/`.\n\nSome plugins can be found in the [Monitoring Plugins](https://github.com/monitoring-plugins/monitoring-plugins#readme)\nrepo, or in the [unofficial fork for Nagios](https://github.com/nagios-plugins/nagios-plugins#readme).\n\n\u003e [!WARNING]\n\u003e Container has to be restarted to propagate changes.\n\n### Custom alert templates\n\nYou can add [Laravel alert templates](https://docs.librenms.org/Alerting/Templates/#base-templates)\nin `/data/alert-templates/`.\n\n\u003e [!WARNING]\n\u003e Container has to be restarted to propagate changes.\n\n## Contributing\n\nWant to contribute? Awesome! The most basic way to show your support is to star\nthe project, or to raise issues. You can also support this project by [**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max)\nor by making a [PayPal donation](https://www.paypal.me/crazyws) to ensure this\njourney continues indefinitely!\n\nThanks again for your support, it is much appreciated! :pray:\n\n## License\n\nMIT. See `LICENSE` for more details.\n","funding_links":["https://github.com/sponsors/crazy-max","https://www.paypal.me/crazyws"],"categories":["Dockerfile","docker"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibrenms%2Fdocker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibrenms%2Fdocker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibrenms%2Fdocker/lists"}