From 280f6b32e42f9091807ab2645169396128baa7da Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 1 Sep 2018 18:50:25 +0200 Subject: [PATCH 001/523] Dockerfile maintainer deprecated --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 159c25f..c63f1e7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,11 @@ FROM alpine:3.8 -MAINTAINER CrazyMax ARG BUILD_DATE ARG VCS_REF ARG VERSION -LABEL org.label-schema.build-date=$BUILD_DATE \ +LABEL maintainer="CrazyMax" \ + org.label-schema.build-date=$BUILD_DATE \ org.label-schema.name="librenms" \ org.label-schema.description="LibreNMS based on Alpine Linux and Nginx" \ org.label-schema.version=$VERSION \ From 1d0d2be11c392ea7983841340a89b5ed56f73905 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 1 Sep 2018 18:56:57 +0200 Subject: [PATCH 002/523] Spelling --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4571b4b..0f194fe 100644 --- a/README.md +++ b/README.md @@ -199,9 +199,9 @@ docker-compose pull docker-compose up -d ``` -## How can i help ? +## How can I help ? -All kinds of contributions are welcomed :raised_hands:!
+All kinds of contributions are welcome :raised_hands:!
The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon:
But we're not gonna lie to each other, I'd rather you buy me a beer or two :beers:! From 9a0c90e9d38b4ecfb33a2fe602450383c81bca44 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 10 Sep 2018 22:11:16 +0200 Subject: [PATCH 003/523] Upgrade to LibreNMS 1.43 --- .travis.yml | 2 +- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2e8f677..3ecd43b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.42.01 + - VERSION=1.43 - GITHUB_REPO=crazy-max/docker-librenms - DOCKER_USERNAME=crazymax - DOCKER_REPONAME=librenms diff --git a/CHANGELOG.md b/CHANGELOG.md index 7179da4..6517243 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.43-RC1 (2018/09/10) + +* Upgrade to LibreNMS 1.43 + ## 1.42.01-RC1 (2018/08/05) * Upgrade to LibreNMS 1.42.01 diff --git a/Dockerfile b/Dockerfile index c63f1e7..0b72548 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,7 +25,7 @@ RUN apk --update --no-cache add \ && sed -i -e "s/;date\.timezone.*/date\.timezone = UTC/" /etc/php7/php.ini \ && rm -rf /var/cache/apk/* /var/www/* /tmp/* -ENV LIBRENMS_VERSION="1.42.01" \ +ENV LIBRENMS_VERSION="1.43" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From 6fdea112c7e0dff8eec5f16d09b628f53a6a1b98 Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Thu, 13 Sep 2018 10:51:18 -0400 Subject: [PATCH 004/523] Adding python-memcached module required for distributed poller setup See [the docs](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) --- Dockerfile | 57 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0b72548..4c4ef0c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,12 +16,57 @@ LABEL maintainer="CrazyMax" \ org.label-schema.schema-version="1.0" RUN apk --update --no-cache add \ - bash binutils ca-certificates coreutils curl fping git graphviz imagemagick mtr \ - mysql-client net-snmp net-snmp-tools nginx nmap openssl python2 py-mysqldb rrdtool runit \ - shadow supervisor syslog-ng tzdata util-linux whois \ - php7 php7-cli php7-ctype php7-curl php7-fpm php7-gd php7-json php7-mcrypt php7-memcached php7-mbstring php7-mysqli \ - php7-opcache php7-openssl php7-pdo php7-pdo_mysql php7-phar php7-posix php7-session php7-simplexml php7-snmp \ - php7-tokenizer php7-xml php7-zip \ + bash \ + binutils \ + ca-certificates \ + coreutils \ + curl \ + fping \ + git \ + graphviz \ + imagemagick \ + mtr \ + mysql-client \ + net-snmp \ + net-snmp-tools \ + nginx \ + nmap \ + openssl \ + php7 \ + php7-cli \ + php7-ctype \ + php7-curl \ + php7-fpm \ + php7-gd \ + php7-json \ + php7-mbstring \ + php7-mcrypt \ + php7-memcached \ + php7-mysqli \ + php7-opcache \ + php7-openssl \ + php7-pdo \ + php7-pdo_mysql \ + php7-phar \ + php7-posix \ + php7-session \ + php7-simplexml \ + php7-snmp \ + php7-tokenizer \ + php7-xml \ + php7-zip \ + py-mysqldb \ + py2-pip \ + python2 \ + rrdtool \ + runit \ + shadow \ + supervisor \ + syslog-ng \ + tzdata \ + util-linux \ + whois \ + && pip install python-memcached \ && sed -i -e "s/;date\.timezone.*/date\.timezone = UTC/" /etc/php7/php.ini \ && rm -rf /var/cache/apk/* /var/www/* /tmp/* From 0dd57a170cea078bd87bbf4d901d1f951478f3a0 Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Thu, 13 Sep 2018 11:04:15 -0400 Subject: [PATCH 005/523] Ignore Visual Studio Code project dir. --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 98df5db..83a80f2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,8 @@ /.idea /*.iml +# Visual Studio Code +/.vscode + # App -/.dev +/.dev \ No newline at end of file From 6e032f3a81a50dec4eb1a8331c15b5ce7ac8f0aa Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Thu, 13 Sep 2018 11:19:27 -0400 Subject: [PATCH 006/523] Provide ability to override Memcached and RRD ports --- entrypoint.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 8e27e0f..02075be 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -20,6 +20,10 @@ DB_NAME=${DB_NAME:-"librenms"} DB_USER=${DB_USER:-"librenms"} DB_PASSWORD=${DB_PASSWORD:-"asupersecretpassword"} +MEMCACHED_PORT=${MEMCACHED_PORT:-"11211"} + +RRDCACHED_PORT=${RRDCACHED_PORT:-"42217"} + # Timezone echo "Setting timezone to ${TZ}..." ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime @@ -112,7 +116,7 @@ if [ ! -z "${MEMCACHED_HOST}" ]; then ${LIBRENMS_PATH}/config.d/rrdcached.php < Date: Thu, 13 Sep 2018 11:27:57 -0400 Subject: [PATCH 007/523] Allow setting sensible variables via files --- entrypoint.sh | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 02075be..55d02da 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -13,17 +13,39 @@ UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-"16M"} OPCACHE_MEM_SIZE=${OPCACHE_MEM_SIZE:-"128"} LIBRENMS_POLLER_THREADS=${LIBRENMS_POLLER_THREADS:-"16"} -LIBRENMS_SNMP_COMMUNITY=${LIBRENMS_SNMP_COMMUNITY:-"librenmsdocker"} DB_PORT=${DB_PORT:-"3306"} DB_NAME=${DB_NAME:-"librenms"} DB_USER=${DB_USER:-"librenms"} -DB_PASSWORD=${DB_PASSWORD:-"asupersecretpassword"} MEMCACHED_PORT=${MEMCACHED_PORT:-"11211"} RRDCACHED_PORT=${RRDCACHED_PORT:-"42217"} +# From https://github.com/docker-library/mariadb/blob/master/docker-entrypoint.sh +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + + # Timezone echo "Setting timezone to ${TZ}..." ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime @@ -57,6 +79,7 @@ sed -e "s/@UPLOAD_MAX_SIZE@/$UPLOAD_MAX_SIZE/g" \ # SNMP echo "Updating SNMP community..." +file_env 'LIBRENMS_SNMP_COMMUNITY' 'librenmsdocker' sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.conf # Init files and folders @@ -81,6 +104,11 @@ if [ -z "$DB_HOST" ]; then >&2 echo "ERROR: DB_HOST must be defined" exit 1 fi +file_env 'DB_PASSWORD' +if [ -z "$DB_PASSWORD" ]; then + >&2 echo "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined" + exit 1 +fi cat > ${LIBRENMS_PATH}/config.d/database.php < Date: Thu, 13 Sep 2018 11:37:56 -0400 Subject: [PATCH 008/523] Add lines to docstring --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index 55d02da..ab6875a 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -22,7 +22,7 @@ MEMCACHED_PORT=${MEMCACHED_PORT:-"11211"} RRDCACHED_PORT=${RRDCACHED_PORT:-"42217"} -# From https://github.com/docker-library/mariadb/blob/master/docker-entrypoint.sh +# From https://github.com/docker-library/mariadb/blob/master/docker-entrypoint.sh#L21-L41 # usage: file_env VAR [DEFAULT] # ie: file_env 'XYZ_DB_PASSWORD' 'example' # (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of From deb9929cb88623980e3bf0444ffeaf6434956790 Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Thu, 13 Sep 2018 13:02:47 -0400 Subject: [PATCH 009/523] Use Bash --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index ab6875a..7bf1d05 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash function runas_librenms() { su - librenms -s /bin/sh -c "$1" From e20faf98db84a28e894501e53b44bc52c50abf98 Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Thu, 13 Sep 2018 13:15:04 -0400 Subject: [PATCH 010/523] Configurable DB_TIMEOUT --- entrypoint.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 7bf1d05..b8a7bdc 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -17,6 +17,7 @@ LIBRENMS_POLLER_THREADS=${LIBRENMS_POLLER_THREADS:-"16"} DB_PORT=${DB_PORT:-"3306"} DB_NAME=${DB_NAME:-"librenms"} DB_USER=${DB_USER:-"librenms"} +DB_TIMEOUT=${DB_TIMEOUT:-"30"} MEMCACHED_PORT=${MEMCACHED_PORT:-"11211"} @@ -78,8 +79,8 @@ sed -e "s/@UPLOAD_MAX_SIZE@/$UPLOAD_MAX_SIZE/g" \ /tpls/etc/nginx/nginx.conf > /etc/nginx/nginx.conf # SNMP -echo "Updating SNMP community..." file_env 'LIBRENMS_SNMP_COMMUNITY' 'librenmsdocker' +echo "Updating SNMP community to ${LIBRENMS_SNMP_COMMUNITY}..." sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.conf # Init files and folders @@ -196,18 +197,17 @@ else ${LIBRENMS_PATH}/storage \ ${LIBRENMS_PATH}/storage/framework/* - echo "Waiting database..." - waitdb_timeout=30 + echo "Waiting ${DB_TIMEOUT}s for database to be ready..." counter=1 while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do sleep 1 counter=`expr $counter + 1` - if [ ${counter} -gt ${waitdb_timeout} ]; then + if [ ${counter} -gt ${DB_TIMEOUT} ]; then >&2 echo "ERROR: Failed to connect to database on $DB_HOST" exit 1 fi; done - echo "Database up!" + echo "Database ready!" counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_NAME" | wc -l) From f9949d149102f677f09a174690d9dd2bbd327daf Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Thu, 13 Sep 2018 13:58:50 -0400 Subject: [PATCH 011/523] Cleanup from previous commit --- entrypoint.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index b8a7bdc..58a732d 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -79,8 +79,8 @@ sed -e "s/@UPLOAD_MAX_SIZE@/$UPLOAD_MAX_SIZE/g" \ /tpls/etc/nginx/nginx.conf > /etc/nginx/nginx.conf # SNMP +echo "Updating SNMP community..." file_env 'LIBRENMS_SNMP_COMMUNITY' 'librenmsdocker' -echo "Updating SNMP community to ${LIBRENMS_SNMP_COMMUNITY}..." sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.conf # Init files and folders @@ -164,6 +164,11 @@ if [ "$1" == "/usr/local/bin/cron" ]; then echo ">>" # Init + if [ -z "$CRONTAB_PATH" ]; then + >&2 echo "ERROR: CRONTAB_PATH must be defined" + exit 1 + fi + rm -rf ${CRONTAB_PATH} mkdir -m 0644 -p ${CRONTAB_PATH} touch ${CRONTAB_PATH}/librenms From 6ee3a5600af253023ae8bf24d6fb8814b2083586 Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Thu, 13 Sep 2018 15:06:53 -0400 Subject: [PATCH 012/523] Added the ability to configure distributed polling --- entrypoint.sh | 67 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 62 insertions(+), 5 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 58a732d..1142f0d 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -12,16 +12,31 @@ MEMORY_LIMIT=${MEMORY_LIMIT:-"256M"} UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-"16M"} OPCACHE_MEM_SIZE=${OPCACHE_MEM_SIZE:-"128"} +MEMCACHED_PORT=${MEMCACHED_PORT:-"11211"} +RRDCACHED_PORT=${RRDCACHED_PORT:-"42217"} + LIBRENMS_POLLER_THREADS=${LIBRENMS_POLLER_THREADS:-"16"} +LIBRENMS_POLLER_INTERVAL=${LIBRENMS_POLLER_INTERVAL:-"5"} + +LIBRENMS_DISTRIBUTED_POLLER_ENABLE=${LIBRENMS_DISTRIBUTED_POLLER_ENABLE:-false} +LIBRENMS_DISTRIBUTED_POLLER_NAME=${LIBRENMS_DISTRIBUTED_POLLER_NAME:-$(hostname -f)} +LIBRENMS_DISTRIBUTED_POLLER_GROUP=${LIBRENMS_DISTRIBUTED_POLLER_GROUP:-'0'} +LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST:-"${RRDCACHED_HOST}"} +LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT:-"${RRDCACHED_PORT}"} + +LIBRENMS_CRON_DISCOVERY_ENABLE=${LIBRENMS_CRON_DISCOVERY_ENABLE:-true} +LIBRENMS_CRON_DAILY_ENABLE=${LIBRENMS_CRON_DAILY_ENABLE:-true} +LIBRENMS_CRON_ALERTS_ENABLE=${LIBRENMS_CRON_ALERTS_ENABLE:-true} +LIBRENMS_CRON_BILLING_ENABLE=${LIBRENMS_CRON_BILLING_ENABLE:-true} +LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=${LIBRENMS_CRON_BILLING_CALCULATE_ENABLE:-true} +LIBRENMS_CRON_CHECK_SERVICES_ENABLE=${LIBRENMS_CRON_CHECK_SERVICES_ENABLE:-true} +LIBRENMS_CRON_POLLER_ENABLE=${LIBRENMS_CRON_POLLER_ENABLE:-true} DB_PORT=${DB_PORT:-"3306"} DB_NAME=${DB_NAME:-"librenms"} DB_USER=${DB_USER:-"librenms"} DB_TIMEOUT=${DB_TIMEOUT:-"30"} -MEMCACHED_PORT=${MEMCACHED_PORT:-"11211"} - -RRDCACHED_PORT=${RRDCACHED_PORT:-"42217"} # From https://github.com/docker-library/mariadb/blob/master/docker-entrypoint.sh#L21-L41 # usage: file_env VAR [DEFAULT] @@ -157,6 +172,18 @@ if [ ! -z "${RRDCACHED_HOST}" ]; then EOL fi +# Config : Ditributed poller +if [ ! -z "${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST}" -a ! -z "${RRDCACHED_HOST}" -a $LIBRENMS_DISTRIBUTED_POLLER_ENABLE = true ]; then + cat > ${LIBRENMS_PATH}/config.d/distributed_poller.php <>" @@ -173,10 +200,40 @@ if [ "$1" == "/usr/local/bin/cron" ]; then mkdir -m 0644 -p ${CRONTAB_PATH} touch ${CRONTAB_PATH}/librenms - # Add crons + # Add crontab cat ${LIBRENMS_PATH}/librenms.nonroot.cron > ${CRONTAB_PATH}/librenms sed -i -e "s/ librenms //" ${CRONTAB_PATH}/librenms - sed -i -e "s/poller-wrapper.py 16/poller-wrapper.py ${LIBRENMS_POLLER_THREADS}/g" ${CRONTAB_PATH}/librenms + + if [ $LIBRENMS_CRON_DISCOVERY_ENABLE != true ]; then + sed -i "/discovery.php/d" ${CRONTAB_PATH}/librenms + fi + + if [ $LIBRENMS_CRON_DAILY_ENABLE != true ]; then + sed -i "/daily.sh/d" ${CRONTAB_PATH}/librenms + fi + + if [ $LIBRENMS_CRON_ALERTS_ENABLE != true ]; then + sed -i "/alerts.php/d" ${CRONTAB_PATH}/librenms + fi + + if [ $LIBRENMS_CRON_BILLING_ENABLE != true ]; then + sed -i "/poll-billing.php/d" ${CRONTAB_PATH}/librenms + fi + + if [ $LIBRENMS_CRON_BILLING_CALCULATE_ENABLE != true ]; then + sed -i "/billing-calculate.php/d" ${CRONTAB_PATH}/librenms + fi + + if [ $LIBRENMS_CRON_CHECK_SERVICES_ENABLE != true ]; then + sed -i "/check-services.php/d" ${CRONTAB_PATH}/librenms + fi + + sed -i "/poller-wrapper.py/d" ${CRONTAB_PATH}/librenms + if [ $LIBRENMS_CRON_POLLER_ENABLE = true ]; then + cat >> ${CRONTAB_PATH}/librenms < Date: Thu, 13 Sep 2018 15:47:00 -0400 Subject: [PATCH 013/523] Update documentation --- CONTRIBUTORS | 1 + README.md | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 CONTRIBUTORS diff --git a/CONTRIBUTORS b/CONTRIBUTORS new file mode 100644 index 0000000..466cb8d --- /dev/null +++ b/CONTRIBUTORS @@ -0,0 +1 @@ +Jonathan Senecal \ No newline at end of file diff --git a/README.md b/README.md index 0f194fe..770174b 100644 --- a/README.md +++ b/README.md @@ -44,14 +44,30 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * `UPLOAD_MAX_SIZE` : Upload max size (default `16M`) * `OPCACHE_MEM_SIZE` : PHP OpCache memory consumption (default `128`) * `LIBRENMS_POLLER_THREADS` : Threads that `poller-wrapper.py` runs (default `16`) -* `LIBRENMS_SNMP_COMMUNITY` : Your community string (default `librenmsdocker`) +* `LIBRENMS_POLLER_INTERVAL` : Interval in minutes at which `poller-wrapper.py` runs (defaults to `5`) [docs](https://docs.librenms.org/#Support/1-Minute-Polling/) +* `LIBRENMS_DISTRIBUTED_POLLER_ENABLE` : Enable distributed poller functionality +* `LIBRENMS_DISTRIBUTED_POLLER_NAME` : Optional name of poller (defaults to hostname) +* `LIBRENMS_DISTRIBUTED_POLLER_GROUP` : By default, all hosts are shared and have the poller_group = 0. To pin a device to a poller, set it to a value greater than 0 and set the same value here. One can also specify a comma separated string of poller groups. The poller will then poll devices from any of the groups listed. [docs](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) +* `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST` : Memcached server for poller synchronization (Defaults to `$MEMCACHED_HOST`) +* `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT` : Port of memcached server (Defaults to `$MEMCACHED_PORT`) +* `LIBRENMS_CRON_DISCOVERY_ENABLE` : Enable LibreNMS discovery for this container cronjobs (default `true`) +* `LIBRENMS_CRON_DAILY_ENABLE` : Enable LibreNMS daily script for this container cronjobs (default `true`) +* `LIBRENMS_CRON_ALERTS_ENABLE` : Enable LibreNMS alerts generation for this container cronjobs (default `true`) +* `LIBRENMS_CRON_BILLING_ENABLE` : Enable LibreNMS billing polling for this container cronjobs (default `true`) +* `LIBRENMS_CRON_BILLING_CALCULATE_ENABLE` : Enable LibreNMS billing for this container cronjobs (default `true`) +* `LIBRENMS_CRON_CHECK_SERVICES_ENABLE` : Enable LibreNMS service checks for this container cronjobs (default `true`) +* `LIBRENMS_CRON_POLLER_ENABLE` : Enable LibreNMS polling for this container cronjobs (default `true`) +* `LIBRENMS_SNMP_COMMUNITY` : This container's SNMP v2c community string (default `librenmsdocker`) * `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 (userful for clusters, default `30`) * `MEMCACHED_HOST` : Hostname / IP address of a Memcached server +* `MEMCACHED_PORT` : Port of the Memcached server * `RRDCACHED_HOST` : Hostname / IP address of a RRDcached server +* `RRDCACHED_PORT` : Port of the RRDcached server ### Volumes From 09e5fa34250ac784931c72bd59039c45354fc33c Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Fri, 14 Sep 2018 15:28:34 -0400 Subject: [PATCH 014/523] Copy/Paste mistake... --- entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 1142f0d..71602c3 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -21,8 +21,8 @@ LIBRENMS_POLLER_INTERVAL=${LIBRENMS_POLLER_INTERVAL:-"5"} LIBRENMS_DISTRIBUTED_POLLER_ENABLE=${LIBRENMS_DISTRIBUTED_POLLER_ENABLE:-false} LIBRENMS_DISTRIBUTED_POLLER_NAME=${LIBRENMS_DISTRIBUTED_POLLER_NAME:-$(hostname -f)} LIBRENMS_DISTRIBUTED_POLLER_GROUP=${LIBRENMS_DISTRIBUTED_POLLER_GROUP:-'0'} -LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST:-"${RRDCACHED_HOST}"} -LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT:-"${RRDCACHED_PORT}"} +LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST:-"${MEMCACHED_HOST}"} +LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT:-"${MEMCACHED_PORT}"} LIBRENMS_CRON_DISCOVERY_ENABLE=${LIBRENMS_CRON_DISCOVERY_ENABLE:-true} LIBRENMS_CRON_DAILY_ENABLE=${LIBRENMS_CRON_DAILY_ENABLE:-true} From 8639c392637c652b56f83d4284c28fd835a70b8d Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Fri, 14 Sep 2018 16:15:03 -0400 Subject: [PATCH 015/523] Added rrdtool_version' to config [docs](https://github.com/librenms/librenms/blob/master/doc/Extensions/RRDCached.md) --- entrypoint.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/entrypoint.sh b/entrypoint.sh index 71602c3..3067bd5 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -169,6 +169,7 @@ if [ ! -z "${RRDCACHED_HOST}" ]; then cat > ${LIBRENMS_PATH}/config.d/rrdcached.php < Date: Fri, 14 Sep 2018 16:22:49 -0400 Subject: [PATCH 016/523] Added fping6 support --- entrypoint.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/entrypoint.sh b/entrypoint.sh index 3067bd5..9a25009 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -143,9 +143,12 @@ cat > ${LIBRENMS_PATH}/config.d/user.php < /usr/bin/fping6 +chmod +x /usr/bin/fping6 cat > ${LIBRENMS_PATH}/config.d/fping.php < Date: Fri, 14 Sep 2018 16:28:40 -0400 Subject: [PATCH 017/523] Fix data permissions for crontab too --- entrypoint.sh | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 3067bd5..b6793a4 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -185,6 +185,18 @@ if [ ! -z "${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST}" -a ! -z "${RRDCACHED_H EOL fi + # Fix perms +echo "Fixing permissions..." +chown -R librenms. ${DATA_PATH} \ + ${LIBRENMS_PATH}/config.d \ + ${LIBRENMS_PATH}/bootstrap \ + ${LIBRENMS_PATH}/storage +chmod ug+rw ${DATA_PATH}/logs \ + ${DATA_PATH}/rrd \ + ${LIBRENMS_PATH}/bootstrap/cache \ + ${LIBRENMS_PATH}/storage \ + ${LIBRENMS_PATH}/storage/framework/* + # Sidecar cron container ? if [ "$1" == "/usr/local/bin/cron" ]; then echo ">>" @@ -236,8 +248,8 @@ if [ "$1" == "/usr/local/bin/cron" ]; then EOL fi - # Fix perms - echo "Fixing permissions..." + # Fix crontab perms + echo "Fixing crontab permissions..." chmod -R 0644 ${CRONTAB_PATH} elif [ "$1" == "/usr/sbin/syslog-ng" ]; then echo ">>" @@ -248,18 +260,6 @@ elif [ "$1" == "/usr/sbin/syslog-ng" ]; then mkdir -p ${DATA_PATH}/syslog-ng /run/syslog-ng chown -R librenms. ${DATA_PATH}/syslog-ng /run/syslog-ng else - # Fix perms - echo "Fixing permissions..." - chown -R librenms. ${DATA_PATH} \ - ${LIBRENMS_PATH}/config.d \ - ${LIBRENMS_PATH}/bootstrap \ - ${LIBRENMS_PATH}/storage - chmod ug+rw ${DATA_PATH}/logs \ - ${DATA_PATH}/rrd \ - ${LIBRENMS_PATH}/bootstrap/cache \ - ${LIBRENMS_PATH}/storage \ - ${LIBRENMS_PATH}/storage/framework/* - echo "Waiting ${DB_TIMEOUT}s for database to be ready..." counter=1 while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do From 040265c7e0ce7bc85d4855d646382dc5a778020b Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Fri, 14 Sep 2018 16:52:38 -0400 Subject: [PATCH 018/523] fping is in sbin --- entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 9a25009..9582ab7 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -143,8 +143,8 @@ cat > ${LIBRENMS_PATH}/config.d/user.php < /usr/bin/fping6 -chmod +x /usr/bin/fping6 +echo "/usr/sbin/fping -6 \$@" > /usr/sbin/fping6 +chmod +x /usr/sbin/fping6 cat > ${LIBRENMS_PATH}/config.d/fping.php < Date: Fri, 21 Sep 2018 10:54:46 -0400 Subject: [PATCH 019/523] Removed CONTRIBUTORS --- CONTRIBUTORS | 1 - 1 file changed, 1 deletion(-) delete mode 100644 CONTRIBUTORS diff --git a/CONTRIBUTORS b/CONTRIBUTORS deleted file mode 100644 index 466cb8d..0000000 --- a/CONTRIBUTORS +++ /dev/null @@ -1 +0,0 @@ -Jonathan Senecal \ No newline at end of file From cb07a9cfebe08ed4668e413ccf405d0a34497232 Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Fri, 21 Sep 2018 10:58:36 -0400 Subject: [PATCH 020/523] Typo fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 770174b..f4b183a 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * `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 (userful for clusters, default `30`) +* `DB_TIMEOUT` : Time in seconds after which we stop trying to reach the MySQL server (useful for clusters, default `30`) * `MEMCACHED_HOST` : Hostname / IP address of a Memcached server * `MEMCACHED_PORT` : Port of the Memcached server * `RRDCACHED_HOST` : Hostname / IP address of a RRDcached server From 507ea1515afd4537790e3e60d6d5685faa412c27 Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Fri, 21 Sep 2018 10:59:05 -0400 Subject: [PATCH 021/523] Missing CAP_NET_RAW on nmap and fping --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4c4ef0c..b13076e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -68,7 +68,9 @@ RUN apk --update --no-cache add \ whois \ && pip install python-memcached \ && sed -i -e "s/;date\.timezone.*/date\.timezone = UTC/" /etc/php7/php.ini \ - && rm -rf /var/cache/apk/* /var/www/* /tmp/* + && rm -rf /var/cache/apk/* /var/www/* /tmp/* \ + && setcap cap_net_raw+ep /usr/bin/nmap \ + && setcap cap_net_raw+ep /usr/sbin/fping ENV LIBRENMS_VERSION="1.43" \ LIBRENMS_PATH="/opt/librenms" \ From 5eb35a1e5566f987090b99487311e4c0eb42eaf0 Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Fri, 21 Sep 2018 15:18:19 -0400 Subject: [PATCH 022/523] Add CAP_NET_RAW on fping6 Prevents `validate.php` from complaining. --- entrypoint.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/entrypoint.sh b/entrypoint.sh index c6b99a3..7956499 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -145,6 +145,7 @@ EOL # Config : Fping echo "/usr/sbin/fping -6 \$@" > /usr/sbin/fping6 chmod +x /usr/sbin/fping6 +setcap cap_net_raw+ep /usr/sbin/fping6 cat > ${LIBRENMS_PATH}/config.d/fping.php < Date: Fri, 21 Sep 2018 16:26:27 -0400 Subject: [PATCH 023/523] Fixes for `validate.php` nologin errors and missing setfacl binaries ``` [FAIL] fping could not be executed. fping must have CAP_NET_RAW capability (getcap) or suid. Selinux exlusions may be required. () [FAIL] fping6 could not be executed. fping6 must have CAP_NET_RAW capability (getcap) or suid. Selinux exlusions may be required. () nologin: unrecognized option: c Try 'nologin --help' for more information. ``` --- Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index b13076e..e3987e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,6 +16,7 @@ LABEL maintainer="CrazyMax" \ org.label-schema.schema-version="1.0" RUN apk --update --no-cache add \ + acl \ bash \ binutils \ ca-certificates \ @@ -79,12 +80,13 @@ ENV LIBRENMS_VERSION="1.43" \ RUN mkdir -p /opt \ && addgroup -g 1000 librenms \ - && adduser -u 1000 -G librenms -h ${LIBRENMS_PATH} -s /sbin/nologin -D librenms \ + && adduser -u 1000 -G librenms -h ${LIBRENMS_PATH} -s /bin/sh -D librenms \ + && passwd -l librenms \ && usermod -a -G librenms nginx \ && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ && git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git ${LIBRENMS_PATH} \ && chown -R librenms. ${LIBRENMS_PATH} \ - && su - librenms -s /bin/sh -c "composer install --no-dev --no-interaction --no-ansi --working-dir=${LIBRENMS_PATH}" \ + && su - librenms -c "composer install --no-dev --no-interaction --no-ansi --working-dir=${LIBRENMS_PATH}" \ && wget -q https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro -O /usr/bin/distro \ && chmod +x /usr/bin/distro \ && rm -rf /tmp/* From 6028e2ffe4cf18eaba6b37900b7526e06eb4559d Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Fri, 21 Sep 2018 16:27:10 -0400 Subject: [PATCH 024/523] Revert "Add CAP_NET_RAW on fping6" This is not required since the fping6 exe is a script that calls fping bin (which has CAP_NET_RAW) This reverts commit 5eb35a1e5566f987090b99487311e4c0eb42eaf0. --- entrypoint.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index 7956499..c6b99a3 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -145,7 +145,6 @@ EOL # Config : Fping echo "/usr/sbin/fping -6 \$@" > /usr/sbin/fping6 chmod +x /usr/sbin/fping6 -setcap cap_net_raw+ep /usr/sbin/fping6 cat > ${LIBRENMS_PATH}/config.d/fping.php < Date: Mon, 24 Sep 2018 15:00:39 +0200 Subject: [PATCH 025/523] Coding style --- examples/compose/docker-compose.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index d63ebd0..4184a5a 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -98,7 +98,7 @@ services: - "traefik.port=80" - "traefik.frontend.rule=Host:librenms.example.com" env_file: - - ./librenms.env + - "./librenms.env" restart: always cron: @@ -109,9 +109,8 @@ services: - app volumes: - "./librenms:/data" - env_file: - - ./librenms.env + - "./librenms.env" restart: always syslog-ng: @@ -131,5 +130,5 @@ services: volumes: - "./librenms:/data" env_file: - - ./librenms.env + - "./librenms.env" restart: always From 7fd25462238e1f4d65136630c4f7b576341af9ec Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 24 Sep 2018 15:01:52 +0200 Subject: [PATCH 026/523] Coding style --- entrypoint.sh | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index c6b99a3..8c707c6 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -37,31 +37,29 @@ DB_NAME=${DB_NAME:-"librenms"} DB_USER=${DB_USER:-"librenms"} DB_TIMEOUT=${DB_TIMEOUT:-"30"} - # From https://github.com/docker-library/mariadb/blob/master/docker-entrypoint.sh#L21-L41 # usage: file_env VAR [DEFAULT] # ie: file_env 'XYZ_DB_PASSWORD' 'example' # (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of # "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) file_env() { - local var="$1" - local fileVar="${var}_FILE" - local def="${2:-}" - if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then - echo >&2 "error: both $var and $fileVar are set (but are exclusive)" - exit 1 - fi - local val="$def" - if [ "${!var:-}" ]; then - val="${!var}" - elif [ "${!fileVar:-}" ]; then - val="$(< "${!fileVar}")" - fi - export "$var"="$val" - unset "$fileVar" + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" } - # Timezone echo "Setting timezone to ${TZ}..." ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime From 2bfe24df6b0a7ed957e9603e2e5839aff05d946e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 24 Sep 2018 15:02:02 +0200 Subject: [PATCH 027/523] Update CHANGELOG --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6517243..f81faa8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## 1.43-RC2 (2018/09/24) + +* Add CAP_NET_RAW on nmap and fping +* Fixes for `validate.php` nologin errors and missing setfacl binaries +* Add fping6 support +* Add `rrdtool_version` +* Ability to configure distributed polling +* Adding python-memcached module required for distributed poller setup +* Configurable DB_TIMEOUT +* Allow setting sensible variables through files +* Ability to override Memcached and RRD ports + ## 1.43-RC1 (2018/09/10) * Upgrade to LibreNMS 1.43 From f9fd0940d7a7d1894c0425290b581e4d0f3da828 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 24 Sep 2018 15:08:41 +0200 Subject: [PATCH 028/523] Fix travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3ecd43b..16000c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,7 +33,7 @@ install: before_script: - docker network create -d bridge $DOCKER_REPONAME - docker run -d --network=$DOCKER_REPONAME --name db mariadb:10.2 - - docker run -d --network=$DOCKER_REPONAME --link db -p 8000:80 -e "DB_HOST=db" --name $DOCKER_REPONAME $DOCKER_USERNAME/$DOCKER_REPONAME + - docker run -d --network=$DOCKER_REPONAME --link db -p 8000:80 -e "DB_HOST=db" -e "DB_PASSWORD=asupersecretpassword" --name $DOCKER_REPONAME $DOCKER_USERNAME/$DOCKER_REPONAME - sleep 20 - docker logs $DOCKER_REPONAME From 6bd6385a10f95abaef00538bf960bed5b2190444 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 24 Sep 2018 23:15:47 +0200 Subject: [PATCH 029/523] Set default port for MEMCACHED_PORT and RRDCACHED_PORT --- .travis.yml | 12 ++++++------ CHANGELOG.md | 4 ++++ README.md | 22 +++++++++++++++++----- entrypoint.sh | 15 +++++++++------ examples/compose/librenms.env | 17 +++++++++++++++-- 5 files changed, 51 insertions(+), 19 deletions(-) diff --git a/.travis.yml b/.travis.yml index 16000c9..0b99854 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,12 +28,12 @@ install: docker build --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \ --build-arg VCS_REF=${TRAVIS_COMMIT::8} \ --build-arg VERSION=${VERSION} \ - -t $DOCKER_USERNAME/$DOCKER_REPONAME . + -t docker_build . before_script: - docker network create -d bridge $DOCKER_REPONAME - docker run -d --network=$DOCKER_REPONAME --name db mariadb:10.2 - - docker run -d --network=$DOCKER_REPONAME --link db -p 8000:80 -e "DB_HOST=db" -e "DB_PASSWORD=asupersecretpassword" --name $DOCKER_REPONAME $DOCKER_USERNAME/$DOCKER_REPONAME + - docker run -d --network=$DOCKER_REPONAME --link db -p 8000:80 -e "DB_HOST=db" -e "DB_PASSWORD=asupersecretpassword" --name $DOCKER_REPONAME docker_build - sleep 20 - docker logs $DOCKER_REPONAME @@ -44,12 +44,12 @@ after_success: - | test $TRAVIS_PULL_REQUEST = false \ && echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_USERNAME" --password-stdin \ - && docker tag $DOCKER_USERNAME/$DOCKER_REPONAME $DOCKER_USERNAME/$DOCKER_REPONAME:$DOCKER_TAG \ - && docker tag $DOCKER_USERNAME/$DOCKER_REPONAME $DOCKER_USERNAME/$DOCKER_REPONAME:$VERSION \ + && docker tag docker_build $DOCKER_USERNAME/$DOCKER_REPONAME:$DOCKER_TAG \ + && docker tag docker_build $DOCKER_USERNAME/$DOCKER_REPONAME:$VERSION \ && docker push $DOCKER_USERNAME/$DOCKER_REPONAME \ && echo "$QUAY_PASSWORD" | docker login quay.io --username "$QUAY_USERNAME" --password-stdin \ - && docker tag $DOCKER_USERNAME/$DOCKER_REPONAME quay.io/$DOCKER_USERNAME/$DOCKER_REPONAME:$DOCKER_TAG \ - && docker tag $DOCKER_USERNAME/$DOCKER_REPONAME quay.io/$DOCKER_USERNAME/$DOCKER_REPONAME:$VERSION \ + && docker tag docker_build quay.io/$DOCKER_USERNAME/$DOCKER_REPONAME:$DOCKER_TAG \ + && docker tag docker_build quay.io/$DOCKER_USERNAME/$DOCKER_REPONAME:$VERSION \ && docker push quay.io/$QUAY_USERNAME/$QUAY_REPONAME \ && curl -X POST $MICROBADGER_HOOK diff --git a/CHANGELOG.md b/CHANGELOG.md index f81faa8..07eae4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.43-RC3 (2018/09/24) + +* Set default port for `MEMCACHED_PORT` and `RRDCACHED_PORT` + ## 1.43-RC2 (2018/09/24) * Add CAP_NET_RAW on nmap and fping diff --git a/README.md b/README.md index f4b183a..21eb9aa 100644 --- a/README.md +++ b/README.md @@ -37,12 +37,17 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other ### 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`) * `UPLOAD_MAX_SIZE` : Upload max size (default `16M`) * `OPCACHE_MEM_SIZE` : PHP OpCache memory consumption (default `128`) + +#### (Distributed) Poller + * `LIBRENMS_POLLER_THREADS` : Threads that `poller-wrapper.py` runs (default `16`) * `LIBRENMS_POLLER_INTERVAL` : Interval in minutes at which `poller-wrapper.py` runs (defaults to `5`) [docs](https://docs.librenms.org/#Support/1-Minute-Polling/) * `LIBRENMS_DISTRIBUTED_POLLER_ENABLE` : Enable distributed poller functionality @@ -50,6 +55,9 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * `LIBRENMS_DISTRIBUTED_POLLER_GROUP` : By default, all hosts are shared and have the poller_group = 0. To pin a device to a poller, set it to a value greater than 0 and set the same value here. One can also specify a comma separated string of poller groups. The poller will then poll devices from any of the groups listed. [docs](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) * `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST` : Memcached server for poller synchronization (Defaults to `$MEMCACHED_HOST`) * `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT` : Port of memcached server (Defaults to `$MEMCACHED_PORT`) + +#### Cron + * `LIBRENMS_CRON_DISCOVERY_ENABLE` : Enable LibreNMS discovery for this container cronjobs (default `true`) * `LIBRENMS_CRON_DAILY_ENABLE` : Enable LibreNMS daily script for this container cronjobs (default `true`) * `LIBRENMS_CRON_ALERTS_ENABLE` : Enable LibreNMS alerts generation for this container cronjobs (default `true`) @@ -57,17 +65,23 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * `LIBRENMS_CRON_BILLING_CALCULATE_ENABLE` : Enable LibreNMS billing for this container cronjobs (default `true`) * `LIBRENMS_CRON_CHECK_SERVICES_ENABLE` : Enable LibreNMS service checks for this container cronjobs (default `true`) * `LIBRENMS_CRON_POLLER_ENABLE` : Enable LibreNMS polling for this container cronjobs (default `true`) -* `LIBRENMS_SNMP_COMMUNITY` : This container's SNMP v2c community string (default `librenmsdocker`) + +#### 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 `30`) + +#### Misc + +* `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 +* `MEMCACHED_PORT` : Port of the Memcached server (default `11211`) * `RRDCACHED_HOST` : Hostname / IP address of a RRDcached server -* `RRDCACHED_PORT` : Port of the RRDcached server +* `RRDCACHED_PORT` : Port of the RRDcached server (default `42217`) ### Volumes @@ -157,8 +171,6 @@ SNMP | NET-SNMP 5.7.3 [OK] Database schema correct [WARN] You have not added any devices yet. [FIX] You can add a device in the webui or with ./addhost.php -[FAIL] fping6 location is incorrect or bin not installed. - [FIX] Install fping6 or manually set the path to fping6 by placing the following in config.php: $config['fping6'] = '/path/to/fping6'; [WARN] Your install is over 24 hours out of date, last update: Sat, 30 Jun 2018 21:37:37 +0000 [FIX] Make sure your daily.sh cron is running and run ./daily.sh by hand to see if there are any errors. [WARN] Your local git branch is not master, this will prevent automatic updates. diff --git a/entrypoint.sh b/entrypoint.sh index 8c707c6..56930dc 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -37,6 +37,9 @@ DB_NAME=${DB_NAME:-"librenms"} DB_USER=${DB_USER:-"librenms"} DB_TIMEOUT=${DB_TIMEOUT:-"30"} +MEMCACHED_PORT=${MEMCACHED_PORT:-"11211"} +RRDCACHED_PORT=${RRDCACHED_PORT:-"42217"} + # From https://github.com/docker-library/mariadb/blob/master/docker-entrypoint.sh#L21-L41 # usage: file_env VAR [DEFAULT] # ie: file_env 'XYZ_DB_PASSWORD' 'example' @@ -160,8 +163,8 @@ if [ ! -z "${MEMCACHED_HOST}" ]; then cat > ${LIBRENMS_PATH}/config.d/memcached.php < ${LIBRENMS_PATH}/config.d/distributed_poller.php < Date: Tue, 25 Sep 2018 21:50:34 +0100 Subject: [PATCH 030/523] Added ttf-dejavu to Dockerfile Fixes: #4 --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index e3987e0..2d9c786 100644 --- a/Dockerfile +++ b/Dockerfile @@ -67,6 +67,7 @@ RUN apk --update --no-cache add \ tzdata \ util-linux \ whois \ + ttf-dejavu \ && pip install python-memcached \ && sed -i -e "s/;date\.timezone.*/date\.timezone = UTC/" /etc/php7/php.ini \ && rm -rf /var/cache/apk/* /var/www/* /tmp/* \ From e53856e09f39aea3e68397f840d3be26209c317b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 26 Sep 2018 01:11:56 +0200 Subject: [PATCH 031/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07eae4a..b2bb48b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.43-RC4 (2018/09/26) + +* Add `ttf-dejavu` package + ## 1.43-RC3 (2018/09/24) * Set default port for `MEMCACHED_PORT` and `RRDCACHED_PORT` diff --git a/Dockerfile b/Dockerfile index 2d9c786..79f07d8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -64,10 +64,10 @@ RUN apk --update --no-cache add \ shadow \ supervisor \ syslog-ng \ + ttf-dejavu \ tzdata \ util-linux \ whois \ - ttf-dejavu \ && pip install python-memcached \ && sed -i -e "s/;date\.timezone.*/date\.timezone = UTC/" /etc/php7/php.ini \ && rm -rf /var/cache/apk/* /var/www/* /tmp/* \ From 486e371fd494e9493c8b75a53605aec8aeecb6bc Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 29 Sep 2018 03:38:09 +0200 Subject: [PATCH 032/523] Ability to add custom nagios plugins through /data/nagios-plugins Install official nagios-plugins package Services enabled by default --- CHANGELOG.md | 6 ++++++ Dockerfile | 3 +++ README.md | 10 +++++++++- entrypoint.sh | 25 +++++++++++++++++++++++++ examples/compose/docker-compose.yml | 2 ++ 5 files changed, 45 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2bb48b..0c38fd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 1.43-RC5 (2018/09/29) + +* Ability to add custom nagios plugins through `/data/nagios-plugins` +* Install official nagios-plugins package +* Services enabled by default + ## 1.43-RC4 (2018/09/26) * Add `ttf-dejavu` package diff --git a/Dockerfile b/Dockerfile index 79f07d8..13019dd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,11 +28,14 @@ RUN apk --update --no-cache add \ imagemagick \ mtr \ mysql-client \ + nagios-plugins \ + nagios-plugins-all \ net-snmp \ net-snmp-tools \ nginx \ nmap \ openssl \ + perl \ php7 \ php7-cli \ php7-ctype \ diff --git a/README.md b/README.md index 21eb9aa..41da8d0 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,8 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * Alpine Linux 3.8, Nginx, PHP 7.2 * Cron tasks as a ["sidecar" container](#cron) * Syslog-ng support through a ["sidecar" container](#syslog-ng) +* [Distributed poller](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) +* Ability to add custom nagios plugins * OPCache enabled to store precompiled script bytecode in shared memory ### From docker-compose @@ -85,7 +87,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other ### Volumes -* `/data` : Contains configuration, rrd database, logs, additional syslog-ng config files +* `/data` : Contains configuration, rrd database, logs, additional nagios plugins, additional syslog-ng config files ### Ports @@ -218,6 +220,12 @@ You have to create a configuration file to enable syslog in LibreNMS too. Create $config['enable_syslog'] = 1; ``` +## Additional nagios plugins + +You can add a custom nagios plugin in `/data/nagios-plugins/`. + +> ⚠️ Container has to be restarted to propagate changes + ## Upgrade To upgrade to the latest version of LibreNMS, pull the newer image and launch the container. LibreNMS will upgrade automatically : diff --git a/entrypoint.sh b/entrypoint.sh index 56930dc..4963254 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -103,6 +103,7 @@ sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.c echo "Initializing LibreNMS files / folders..." mkdir -p ${DATA_PATH}/config \ ${DATA_PATH}/logs \ + ${DATA_PATH}/nagios-plugins \ ${DATA_PATH}/rrd rm -f ${LIBRENMS_PATH}/config.d/* @@ -158,6 +159,13 @@ cat > ${LIBRENMS_PATH}/config.d/autoupdate.php < ${LIBRENMS_PATH}/config.d/services.php < ${LIBRENMS_PATH}/config.d/memcached.php < Date: Sat, 29 Sep 2018 03:44:58 +0200 Subject: [PATCH 033/523] Typo --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index 4963254..8609eea 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -208,7 +208,7 @@ chmod ug+rw ${DATA_PATH}/logs \ ${LIBRENMS_PATH}/bootstrap/cache \ ${LIBRENMS_PATH}/storage \ ${LIBRENMS_PATH}/storage/framework/* -chmod +x ${DATA_PATH}/nagios-plugins/* +if # Check additional nagios plugins echo "Checking additional nagios plugins..." From 23c4d47f1d1d51acd954e88b529e53581f90402a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 29 Sep 2018 03:49:38 +0200 Subject: [PATCH 034/523] Check if nagios plugin executable --- entrypoint.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 8609eea..fa6df25 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -215,11 +215,15 @@ echo "Checking additional nagios plugins..." nagios_plugins=$(ls -l ${DATA_PATH}/nagios-plugins | egrep '^-' | awk '{print $9}') for nagios_plugin in ${nagios_plugins}; do if [ -f "/usr/lib/nagios/plugins/${nagios_plugin}" ]; then - echo " WARNING: Official Nagios plugin ${nagios_plugin} cannot be overriden" + echo " WARNING: Official Nagios plugin ${nagios_plugin} cannot be overriden. Skipping..." continue fi if [[ ${nagios_plugin} != check_* ]]; then - echo " WARNING: Nagios plugin filename ${nagios_plugin} invalid. It must start with 'check_'" + echo " WARNING: Nagios plugin filename ${nagios_plugin} invalid. It must start with 'check_'. Skipping..." + continue + fi + if [[ ! -x "${DATA_PATH}/nagios-plugins/${nagios_plugin}" ]]; then + echo " WARNING: Nagios plugin file ${nagios_plugin} has to be executable. Skipping..." continue fi echo " Adding ${nagios_plugin} nagios plugin" From 2dd37e345c5184c10f4cb1542cc972acf4ea1848 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 29 Sep 2018 03:51:42 +0200 Subject: [PATCH 035/523] Update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 41da8d0..4822912 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * Alpine Linux 3.8, Nginx, PHP 7.2 * Cron tasks as a ["sidecar" container](#cron) * Syslog-ng support through a ["sidecar" container](#syslog-ng) -* [Distributed poller](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) +* Ability to configure [distributed polling](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) * Ability to add custom nagios plugins * OPCache enabled to store precompiled script bytecode in shared memory From 4cf15d866d650edc330a7a3f5790d7018c5129cf Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 29 Sep 2018 03:56:22 +0200 Subject: [PATCH 036/523] Typo --- entrypoint.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index fa6df25..2829ebe 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -208,7 +208,6 @@ chmod ug+rw ${DATA_PATH}/logs \ ${LIBRENMS_PATH}/bootstrap/cache \ ${LIBRENMS_PATH}/storage \ ${LIBRENMS_PATH}/storage/framework/* -if # Check additional nagios plugins echo "Checking additional nagios plugins..." From 645f76d35020dbd97253f242f66042e92e5152ac Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 29 Sep 2018 04:01:33 +0200 Subject: [PATCH 037/523] Small typo --- CHANGELOG.md | 2 +- README.md | 8 ++++---- entrypoint.sh | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c38fd9..e454565 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## 1.43-RC5 (2018/09/29) -* Ability to add custom nagios plugins through `/data/nagios-plugins` +* Ability to add custom Nagios plugins through `/data/nagios-plugins` * Install official nagios-plugins package * Services enabled by default diff --git a/README.md b/README.md index 4822912..aec511e 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * Cron tasks as a ["sidecar" container](#cron) * Syslog-ng support through a ["sidecar" container](#syslog-ng) * Ability to configure [distributed polling](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) -* Ability to add custom nagios plugins +* Ability to add custom Nagios plugins * OPCache enabled to store precompiled script bytecode in shared memory ### From docker-compose @@ -87,7 +87,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other ### Volumes -* `/data` : Contains configuration, rrd database, logs, additional nagios plugins, additional syslog-ng config files +* `/data` : Contains configuration, rrd database, logs, additional Nagios plugins, additional syslog-ng config files ### Ports @@ -220,9 +220,9 @@ You have to create a configuration file to enable syslog in LibreNMS too. Create $config['enable_syslog'] = 1; ``` -## Additional nagios plugins +## Additional Nagios plugins -You can add a custom nagios plugin in `/data/nagios-plugins/`. +You can add a custom Nagios plugin in `/data/nagios-plugins/`. > ⚠️ Container has to be restarted to propagate changes diff --git a/entrypoint.sh b/entrypoint.sh index 2829ebe..af4bd88 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -209,8 +209,8 @@ chmod ug+rw ${DATA_PATH}/logs \ ${LIBRENMS_PATH}/storage \ ${LIBRENMS_PATH}/storage/framework/* -# Check additional nagios plugins -echo "Checking additional nagios plugins..." +# Check additional Nagios plugins +echo "Checking additional Nagios plugins..." nagios_plugins=$(ls -l ${DATA_PATH}/nagios-plugins | egrep '^-' | awk '{print $9}') for nagios_plugin in ${nagios_plugins}; do if [ -f "/usr/lib/nagios/plugins/${nagios_plugin}" ]; then @@ -225,7 +225,7 @@ for nagios_plugin in ${nagios_plugins}; do echo " WARNING: Nagios plugin file ${nagios_plugin} has to be executable. Skipping..." continue fi - echo " Adding ${nagios_plugin} nagios plugin" + echo " Adding ${nagios_plugin} Nagios plugin" ln -sf ${DATA_PATH}/nagios-plugins/${nagios_plugin} /usr/lib/nagios/plugins/${nagios_plugin} done From 40db93e32ff0ff8f3271886ff38d5d103abd0ec9 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 29 Sep 2018 05:00:56 +0200 Subject: [PATCH 038/523] Replace Nagios with Monitoring Plugins --- CHANGELOG.md | 4 ++-- Dockerfile | 3 +-- README.md | 8 ++++---- entrypoint.sh | 28 ++++++++++++++-------------- 4 files changed, 21 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e454565..6d2ad66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,8 @@ ## 1.43-RC5 (2018/09/29) -* Ability to add custom Nagios plugins through `/data/nagios-plugins` -* Install official nagios-plugins package +* Ability to add custom Monitoring plugins through `/data/monitoring-plugins` +* Install [Monitoring Plugins](https://www.monitoring-plugins.org/) package * Services enabled by default ## 1.43-RC4 (2018/09/26) diff --git a/Dockerfile b/Dockerfile index 13019dd..452073c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,10 +26,9 @@ RUN apk --update --no-cache add \ git \ graphviz \ imagemagick \ + monitoring-plugins \ mtr \ mysql-client \ - nagios-plugins \ - nagios-plugins-all \ net-snmp \ net-snmp-tools \ nginx \ diff --git a/README.md b/README.md index aec511e..13ef046 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * Cron tasks as a ["sidecar" container](#cron) * Syslog-ng support through a ["sidecar" container](#syslog-ng) * Ability to configure [distributed polling](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) -* Ability to add custom Nagios plugins +* Ability to add custom Monitoring plugins (Nagios) * OPCache enabled to store precompiled script bytecode in shared memory ### From docker-compose @@ -87,7 +87,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other ### Volumes -* `/data` : Contains configuration, rrd database, logs, additional Nagios plugins, additional syslog-ng config files +* `/data` : Contains configuration, rrd database, logs, additional Monitoring plugins, additional syslog-ng config files ### Ports @@ -220,9 +220,9 @@ You have to create a configuration file to enable syslog in LibreNMS too. Create $config['enable_syslog'] = 1; ``` -## Additional Nagios plugins +## Additional Monitoring plugins (Nagios) -You can add a custom Nagios plugin in `/data/nagios-plugins/`. +You can add a custom Monitoring (Nagios) plugin in `/data/monitoring-plugins/`. > ⚠️ Container has to be restarted to propagate changes diff --git a/entrypoint.sh b/entrypoint.sh index af4bd88..b064968 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -103,7 +103,7 @@ sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.c echo "Initializing LibreNMS files / folders..." mkdir -p ${DATA_PATH}/config \ ${DATA_PATH}/logs \ - ${DATA_PATH}/nagios-plugins \ + ${DATA_PATH}/monitoring-plugins \ ${DATA_PATH}/rrd rm -f ${LIBRENMS_PATH}/config.d/* @@ -163,7 +163,7 @@ EOL cat > ${LIBRENMS_PATH}/config.d/services.php < Date: Thu, 4 Oct 2018 13:39:23 +0200 Subject: [PATCH 039/523] Update compose config --- examples/compose/.env | 14 +++++++ examples/compose/docker-compose.yml | 63 +++++++++++++++++++++-------- examples/compose/librenms.env | 9 ----- 3 files changed, 61 insertions(+), 25 deletions(-) create mode 100644 examples/compose/.env diff --git a/examples/compose/.env b/examples/compose/.env new file mode 100644 index 0000000..c961723 --- /dev/null +++ b/examples/compose/.env @@ -0,0 +1,14 @@ +DOMAINNAME=example.com +HOSTNAME=librenms + +MYSQL_DATABASE=librenms +MYSQL_USER=librenms +MYSQL_PASSWORD=asupersecretpassword + +SMTP_SERVER=smtp.example.com +SMTP_USERNAME=smtp@example.com +SMTP_PASSWORD= + +TZ=Europe/Paris +PUID=1000 +PGID=1000 diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 1dbddc8..e12868a 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -10,7 +10,7 @@ services: - "--entryPoints=Name:https Address::443 TLS" - "--docker" - "--docker.exposedbydefault=false" - - "--docker.domain=example.com" + - "--docker.domain=${DOMAINNAME}" - "--acme=true" - "--acme.acmelogging=true" - "--acme.email=webmaster@example.com" @@ -43,17 +43,17 @@ services: volumes: - "./db:/var/lib/mysql" environment: - - "TZ=Europe/Paris" + - "TZ=${TZ}" - "MYSQL_ALLOW_EMPTY_PASSWORD=yes" - - "MYSQL_DATABASE=librenms" - - "MYSQL_USER=librenms" - - "MYSQL_PASSWORD=asupersecretpassword" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" restart: always memcached: image: memcached:alpine environment: - - "TZ=Europe/Paris" + - "TZ=${TZ}" restart: always rrdcached: @@ -62,9 +62,9 @@ services: - "./librenms/rrd:/data/db" - "./rrd-journal:/data/journal" environment: - - "TZ=Europe/Paris" - - "PUID=1000" - - "PGID=1000" + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PUID}" - "LOG_LEVEL=LOG_INFO" - "WRITE_TIMEOUT=1800" - "WRITE_JITTER=1800" @@ -77,16 +77,16 @@ services: volumes: - "/etc/localtime:/etc/localtime:ro" environment: - - "SERVER_HOSTNAME=librenms.example.com" - - "SMTP_SERVER=smtp.example.com" - - "SMTP_USERNAME=smtp@example.com" - - "SMTP_PASSWORD=" + - "SERVER_HOSTNAME=${HOSTNAME}.${DOMAINNAME}" + - "SMTP_SERVER=${SMTP_SERVER}" + - "SMTP_USERNAME=${SMTP_USERNAME}" + - "SMTP_PASSWORD=${SMTP_PASSWORD}" restart: always app: image: crazymax/librenms:latest - domainname: example.com - hostname: librenms + domainname: ${DOMAINNAME} + hostname: ${HOSTNAME} depends_on: - db - memcached @@ -98,25 +98,47 @@ services: - "traefik.enable=true" - "traefik.backend=librenms" - "traefik.port=80" - - "traefik.frontend.rule=Host:librenms.example.com" + - "traefik.frontend.rule=Host:${HOSTNAME}.${DOMAINNAME}" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=30" env_file: - "./librenms.env" restart: always cron: image: crazymax/librenms:latest + domainname: ${DOMAINNAME} + hostname: ${HOSTNAME} command: - "/usr/local/bin/cron" depends_on: - app volumes: - "./librenms:/data" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=30" env_file: - "./librenms.env" restart: always syslog-ng: image: crazymax/librenms:latest + domainname: ${DOMAINNAME} + hostname: ${HOSTNAME} command: - "/usr/sbin/syslog-ng" - "-F" @@ -131,6 +153,15 @@ services: protocol: udp volumes: - "./librenms:/data" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=30" env_file: - "./librenms.env" restart: always diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index eda0f4f..7f06b5f 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -1,6 +1,3 @@ -TZ=Europe/Paris -PUID=1000 -PGID=1000 MEMORY_LIMIT=256M UPLOAD_MAX_SIZE=16M OPCACHE_MEM_SIZE=128 @@ -16,12 +13,6 @@ LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=true LIBRENMS_CRON_CHECK_SERVICES_ENABLE=true LIBRENMS_CRON_POLLER_ENABLE=true -DB_HOST=db -DB_NAME=librenms -DB_USER=librenms -DB_PASSWORD=asupersecretpassword -DB_TIMEOUT=30 - LIBRENMS_SNMP_COMMUNITY=librenmsdocker MEMCACHED_HOST=memcached MEMCACHED_PORT=11211 From d2f94c73687758d5a9f327693548345e5e1c866b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 17 Oct 2018 14:59:20 +0200 Subject: [PATCH 040/523] Upgrade to LibreNMS 1.44 Add busybox-extras and bind-tools packages --- .travis.yml | 2 +- CHANGELOG.md | 5 +++++ Dockerfile | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0b99854..505bc23 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.43 + - VERSION=1.44 - GITHUB_REPO=crazy-max/docker-librenms - DOCKER_USERNAME=crazymax - DOCKER_REPONAME=librenms diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d2ad66..58134f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.44-RC1 (2018/10/17) + +* Upgrade to LibreNMS 1.44 +* Add `busybox-extras` and `bind-tools` packages + ## 1.43-RC5 (2018/09/29) * Ability to add custom Monitoring plugins through `/data/monitoring-plugins` diff --git a/Dockerfile b/Dockerfile index 452073c..818a7ce 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,8 +16,10 @@ LABEL maintainer="CrazyMax" \ org.label-schema.schema-version="1.0" RUN apk --update --no-cache add \ + busybox-extras \ acl \ bash \ + bind-tools \ binutils \ ca-certificates \ coreutils \ @@ -76,7 +78,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.43" \ +ENV LIBRENMS_VERSION="1.44" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From b79a632064ae7052d9019d73acf06ca624046a93 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 17 Oct 2018 15:05:51 +0200 Subject: [PATCH 041/523] Update PHP extensions --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 818a7ce..db54382 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,13 +41,14 @@ RUN apk --update --no-cache add \ php7-cli \ php7-ctype \ php7-curl \ + php7-fileinfo \ php7-fpm \ php7-gd \ php7-json \ php7-mbstring \ php7-mcrypt \ php7-memcached \ - php7-mysqli \ + php7-mysqlnd \ php7-opcache \ php7-openssl \ php7-pdo \ From bb201eeb329d0b1f0dd99fe8221323f049a3e673 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 23 Oct 2018 10:30:19 +0200 Subject: [PATCH 042/523] Update since migration to LibreNMS organization --- .travis.yml | 24 +++++++++--------------- Dockerfile | 6 +++--- README.md | 24 ++++++++++++------------ examples/compose/docker-compose.yml | 6 +++--- 4 files changed, 27 insertions(+), 33 deletions(-) diff --git a/.travis.yml b/.travis.yml index 505bc23..821d15a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,15 +6,14 @@ services: env: global: - VERSION=1.44 - - GITHUB_REPO=crazy-max/docker-librenms - - DOCKER_USERNAME=crazymax + - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - - QUAY_USERNAME=crazymax + - DOCKER_LOGIN=librenmsbot + - QUAY_USERNAME=librenms - QUAY_REPONAME=librenms - - MICROBADGER_HOOK=https://hooks.microbadger.com/images/crazymax/librenms/-iJon04e52FswWvLC-zkB6yi2vo= - - secure: GMYFptO3rWVVITjC0Wz8g9uccBjSMBvVt3aFC3Y08/3Hw9CoA/SS51X/2lh0bRn+y49X0742QC7b2LtSWa3eERM1HbzlS1ODK75+P0lGYdtW2Ng5JutI+GRt8xTouY7+iP4qSAbOYMUdM5e61PkRepJvZWVeBkPtAtcGpxZO75h+snFxuzFVZXWLoSKjByKIqy9VXzT2P0Wx+zuUWpeo2qA62ONRJf5RjIKCDxHmWEwhXKmmDjeqo+Db/zsUwGYSwKpKRGBhyPVP0MnKFA2HQ/+dG1NyikXhae5dhjaZvgG9tSpbYdOWCHCunbxm6VWozt/kvkqkbizn+S3aoeeZyco40ZFIUinpypxw/nZpVvfDkwBIhw3nOS4giMKHLLBtnkSZw2szP6zfdLX6MLKWSjcDsBbtqj8aNe8Z1ViEKc2uW+yqJvd6GNnDL+AINe5rJ/cjeseh1ancOaGG8tlGsg/80dhOV3l+E4nINn+1uj354ncH/lv14e4giDNMGRw8gq7HFWxIE1X8SLetK9Hz5kLyMIPlSCO2fL73adrqfJFFluTQ0CbzsOEHSuScHT8i9UJWrqcu25BQ4pKidmDAt0gT7x6cz7zziuTY0hTO05txIP0FCop0qCFoLuAGM/bQg8r6FnfIZu4NbUxutjLiAN5aMB1D3znnymxKdeX/HOc= # DOCKER_PASSWORD - - secure: XMkF9Nz6FjKVB52vv7rZ+fa7vDDRXG7/nDm5Wio4eljYU/+cIZwdbBv2hU2IEmherZBn2jO9V64LYR9yTLALOGMEjqE/0E8KNiibj7VRjeRmtQrTHbUj7XpBmqAVyNek2GxkmtS4meOIcUUxBOfCAiIu2b++iuR70rAHvr+dL8skX7FNG77ZgTRsP9VkCylyfw0qb+50pD+2ukOFHxZ4tSi89F8ZU4UQOiNTBre4NUPCN5DZmglSt4nUYt3iofKs9p4ZjPP0cTBpHhArn37VZJyo1tOcl1jP8x18PVvgxrHO8Z0FQCasnZ6O269FR8lF28yM4CwHxk6ufCuieCCj5f0ez6S8IEv82a8ljmw+a75Gb6+pAmYB8nY49VkrWmA6KoDY+F+Ob30QOOtLCGumGBLZ1++6MOtwFjN5BzAyVl3Qhl+9heUMM3ULkbEV0IGJHL1M3zEBqxkQO6urdgf6cPEf3uldd+T6Ochn2DZ42Ge+yiZiIrgF/p0R3l1vDbyBG6OcnmaEoQWdIgqa6DUV48MBkYHF9Sp0idUbsrOaoVNsZZ4h0P72fRci/rElvoDGJIAdFEEE1ZW/y3a6hJihxvYQM9+S+HvzluI+5SKzdFUJ4hRpaGfIvclKdyaCNSE1B0VrwGXn7pBt5tem0IZnE5BQ9d/6TgVFc+L2Eyf7Mck= # QUAY_PASSWORD - - secure: mLY2C4Ggmg/VUdWoYc8vqYQb7lLSSB/YMvKUzY+z8VGAi5A8J1A6oTgeeThiKPWaNp9GgU1hdHA5WqoSCuOk2SzJoIEhnPU0j3GkDknuXmbhU1UXsuefMF++v2J9RarmC2CkyGiBDzJCrcs9srcS6RjmbK7hQv5EsbkjjyQHQwZlMG+q2aUwNcNxhAeD0+gn8j6eZ6myxt/SJ3LZRLCb+ZpP1NITc6aHjC9glc6ZO7bTy6WG6SVg0SREdxbht+cUrTNQvAcIkoEZQ4vOJBi3kAo6aZz6QYglofaYpTCdmiSSFGHseJ7k1Dl+khCL8OqeOnVCOkcu8SgPV7tI6WId8Dky/YPUsFtjivJqekjs/ctAekOHTzJW9UeOLkCOiqeLmQTDQ01JDLno1znzMOTC3T96I5d2LUnob3QOu32chdzqw0LfcawcuNnLwLdbK4AwPcDuIUl6b1FjU6I8DckHjtvL9Mr9xLhIkNrhdPW0vAj8yZkvGCxvGXh+qK6ejNDt/RdH6wWojh1yTbJSCAQLo1WnJ5YpqLxtu5++/4PfiTLkt7u8QMnau5m+8wZ4ju2RfFrwmEaKkrZSkq7ViQ+RsI/y0bNxUzk3Bb02Wgh9MfpPUXLA+4llYWIPnbgL17N5zhsROp9u0YSbzc3cWJm+0TQZZ0hAjyXBDoT2UCsDNqE= # GITHUB_TOKEN + - QUAY_LOGIN=librenms+travis + - secure: I9FQ/3FSXYcFaMKM5l59307WUKDmtNMsURZY5GdxH0pS4nKYtLx9URhtR96/7YdyppzXFxW5hI9ooDm5kEvaapuFKnMltLLkFAyNKWUP2QbSq8/PdZhS5R6RCvdv4Eg8cIvS04R1u1effgbdsqg5w9CM3+WYgLnzbMX9oWcGrUzlo0PZAMeL/eTimOLi77esxYSQz9uss2lE4fmXOFnvAqlHSyfGgboHMf1ccL9y051CxQZwJHFtXuamFzoPipO/mxKkJ94Mgx6KRKlfj86bE3YC5IFg2GKFR8aANzGIE5fD0leJy8FAgXzHqxncaPws9W9EDsvm72sHy9ucZ3qd3hJv+94o1mpN2UCTH53vJfqS+FYZ1LQYGwC6OCetQbK2ydag2dFAKxmEhJ9id4KlLMDmR0S0WfQV544a9Tdy9Ej88NfpdyDRBtNkNHbAs2OKa7IP4hLOw0wq/XYAWksHoqncDuyBatBz2mcKY+lZ+oESfDOOXLDEjzhb0hzQjfjlm/J6pixtZ+WtrDpy2lwN+3gI+reRoUf06loTC5TtGe9wAvpx3m7Zj/bbD8yXHcSxRg5OKdKO2GU6WJlwdgmMWVLBlxoGeCV0EpughM/7Ho7YZ1t3PoyiezxMWmPTOIIB59xJjxPl+eKvO4njtKfCNvXJIJl82B7SGT1Pnq7NzOI= # DOCKER_PASSWORD + - secure: eoujj2pOklqQNSBmeKXSegi8PkNa57T6gCX2SJuTpuscNM7RBecZz+0ET9VhOpTxprvph43o8vB7QuvJFwM8AveoOy1GeySlRyt24Wilke3Gkg5h4NRGh25sdZZstyIhrQg7g4YS9fDV8BkcwU3RRJE9u5Cg5M3cl7H4m09Oj4g8xJZ3xJ4equZQERyq92KiKYpGgTMLDhMA65n9cyT41Wa0N9Ri52E3blrzWw8WYEGjj8CTkcgyJrWXgcbu72VFyQagQJ7ojitcwE1pci0SFonHtYJjML8Ig6MNlrrAknx0Tpx3x4OiErfU6pu5k3HiCM2OSBrqwBnNu9kz9cotLHxq8CT0ePQx2H71aew0ZJW14HOTTGHrrwbHfOhwnqI7npOY05RD97DZT0WlKInzUXDoyzypSJv4UHtjBpDa6zpoB34bcqqf+tOrtpkwO0ThxQVQPkd/ypZH6dmmO0RjP+QClByntHPefFLen8rKFRclu9FUU/7l4Lar4v0wSBYgnM58SN9PS+hssibZzrTdWTR5i82Xr8gk+qCaogpx8iE+OsBDe3yzr0IWfap+iG59V1I8+P+RMBNl4Lc0yS2gbEE30+Rhb4/vtUZlTGoVAEzPCWglASZOC/hfISPmCGkqI/jwjv38itrxQR5xrO/g0ecOi+ue4gl80tmWJnS8NRM= # QUAY_PASSWORD before_install: - sudo apt-get update @@ -43,20 +42,15 @@ script: after_success: - | test $TRAVIS_PULL_REQUEST = false \ - && echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_USERNAME" --password-stdin \ + && echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_LOGIN" --password-stdin \ && docker tag docker_build $DOCKER_USERNAME/$DOCKER_REPONAME:$DOCKER_TAG \ && docker tag docker_build $DOCKER_USERNAME/$DOCKER_REPONAME:$VERSION \ && docker push $DOCKER_USERNAME/$DOCKER_REPONAME \ - && echo "$QUAY_PASSWORD" | docker login quay.io --username "$QUAY_USERNAME" --password-stdin \ + && echo "$QUAY_PASSWORD" | docker login quay.io --username "$QUAY_LOGIN" --password-stdin \ && docker tag docker_build quay.io/$DOCKER_USERNAME/$DOCKER_REPONAME:$DOCKER_TAG \ && docker tag docker_build quay.io/$DOCKER_USERNAME/$DOCKER_REPONAME:$VERSION \ - && docker push quay.io/$QUAY_USERNAME/$QUAY_REPONAME \ - && curl -X POST $MICROBADGER_HOOK + && docker push quay.io/$QUAY_USERNAME/$QUAY_REPONAME branches: except: - /^[0-9]/ - -notifications: - webhooks: - secure: qy/lFOFGeP0IMvDTJZmPemOtHjkpnYq4sm734rTjBsKFNA8MU4TyWCnx24hljRd4YazAkH6j2Uav3XfmnR+UGfutXRsmktzZoDTlygiJLP/026gvD+VuT8GZIFXRpYhNlfPemFoN2/wO5sf91JGQL4cxVcF9r1A0aUQUtAzvl9UKwk+DRc9Y78oCKRmIaeoFrvKE1SCGPf/drNYeLKJiRiq7VV5jL+1tmZUjYKWVYnWU3yYSyg3OdAvXAVEDagzvAQ0ors9UJeXxAsAls0kTQc8c2+uWfEH411sRrPuqTYYkXIPQpJszLeDhG0ISU5xs5UCJSi7QzTRxD5lWgn8C2QfGS8x3eQK8fHEfN1Q0frqGdCYJcEC2izs91bwZDmFmDj9B0mkuOyHDjWmTIo+HPkb/ryATFD3Bk2pekHWBkuq+KKTQzvgtgokp4V7xRumDh7htyYzr88uk1EQFR7VY05aWFGFsoZ13oKa4UQ4uglH2xmWVW3X9cyf5NCj/t4mUt5223ZM7Q+LKDONSPz/VEDlSOkPapjC4rpn6mn/k6FNN3UyC4hL9+HXSFyCOJZDy3P6lagCWWlzLxt0R4DnptZG+cShW0+bzcecEaGPjyEidACctKl3hfDCiblg05Js0lvW454C4TPnzZ/tDAE6VE8mCFtU/K1ur+wneZuOv2pA= diff --git a/Dockerfile b/Dockerfile index db54382..ed4106f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,10 +9,10 @@ LABEL maintainer="CrazyMax" \ org.label-schema.name="librenms" \ org.label-schema.description="LibreNMS based on Alpine Linux and Nginx" \ org.label-schema.version=$VERSION \ - org.label-schema.url="https://github.com/crazy-max/docker-librenms" \ + org.label-schema.url="https://github.com/librenms/docker" \ org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.vcs-url="https://github.com/crazy-max/docker-librenms" \ - org.label-schema.vendor="CrazyMax" \ + org.label-schema.vcs-url="https://github.com/librenms/docker" \ + org.label-schema.vendor="LibreNMS" \ org.label-schema.schema-version="1.0" RUN apk --update --no-cache add \ diff --git a/README.md b/README.md index 13ef046..6ea7b10 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,25 @@ -

+

- Version - Build Status - Docker Stars - Docker Pulls - Docker Repository on Quay + Version + Build Status + Docker Stars + Docker Pulls + Docker Repository on Quay Donate Paypal

## About 🐳 [LibreNMS](https://www.librenms.org/) Docker image based on Alpine Linux and Nginx.
-If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other 🐳 Docker images! +It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/crazy-max/docker-librenms). If you are interested, [check out](https://hub.docker.com/r/crazymax/) his other 🐳 Docker images! ## Features ### Included * Alpine Linux 3.8, Nginx, PHP 7.2 -* Cron tasks as a ["sidecar" container](#cron) +* Cron tasks as a ["sidecar" container](#crons) * Syslog-ng support through a ["sidecar" container](#syslog-ng) * Ability to configure [distributed polling](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) * Ability to add custom Monitoring plugins (Nagios) @@ -114,7 +114,7 @@ You can also use the following minimal command : docker run -d -p 80:80 --name librenms \ -v $(pwd)/data:/data \ -e "DB_HOST=db" \ - crazymax/librenms:latest + librenms/librenms:latest ``` > `-e "DB_HOST=db"`
@@ -187,7 +187,7 @@ To update the database manually, type the following command : $ docker exec -it --user librenms librenms php build-base.php ``` -### Cron +### Crons If you want to enable the cron job, you have to run a "sidecar" container like in the [docker-compose file](examples/compose/docker-compose.yml) or run a simple container like this : @@ -195,7 +195,7 @@ If you want to enable the cron job, you have to run a "sidecar" container like i docker run -d --name librenms-cron \ --env-file $(pwd)/librenms.env \ -v librenms:/data \ - crazymax/librenms:latest /usr/local/bin/cron + librenms/librenms:latest /usr/local/bin/cron ``` > `-v librenms:/data`
@@ -210,7 +210,7 @@ docker run -d --name librenms-syslog-ng \ --env-file $(pwd)/librenms.env \ -p 514 -p 514/udp \ -v librenms:/data \ - crazymax/librenms:latest /usr/sbin/syslog-ng -F + librenms/librenms:latest /usr/sbin/syslog-ng -F ``` You have to create a configuration file to enable syslog in LibreNMS too. Create a file called for example `/data/config/syslog.php` with this content : diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index e12868a..5eb111a 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -84,7 +84,7 @@ services: restart: always app: - image: crazymax/librenms:latest + image: librenms/librenms:latest domainname: ${DOMAINNAME} hostname: ${HOSTNAME} depends_on: @@ -113,7 +113,7 @@ services: restart: always cron: - image: crazymax/librenms:latest + image: librenms/librenms:latest domainname: ${DOMAINNAME} hostname: ${HOSTNAME} command: @@ -136,7 +136,7 @@ services: restart: always syslog-ng: - image: crazymax/librenms:latest + image: librenms/librenms:latest domainname: ${DOMAINNAME} hostname: ${HOSTNAME} command: From 758814586e2adcf114549120a006c794d11c77c3 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 23 Oct 2018 10:41:04 +0200 Subject: [PATCH 043/523] Add MicroBadger hook --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 821d15a..1cbb041 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,7 @@ env: - QUAY_USERNAME=librenms - QUAY_REPONAME=librenms - QUAY_LOGIN=librenms+travis + - MICROBADGER_HOOK=https://hooks.microbadger.com/images/librenms/librenms/kc3ZQD3Sw3UBxKiCX9S3ZpiFMC8= - secure: I9FQ/3FSXYcFaMKM5l59307WUKDmtNMsURZY5GdxH0pS4nKYtLx9URhtR96/7YdyppzXFxW5hI9ooDm5kEvaapuFKnMltLLkFAyNKWUP2QbSq8/PdZhS5R6RCvdv4Eg8cIvS04R1u1effgbdsqg5w9CM3+WYgLnzbMX9oWcGrUzlo0PZAMeL/eTimOLi77esxYSQz9uss2lE4fmXOFnvAqlHSyfGgboHMf1ccL9y051CxQZwJHFtXuamFzoPipO/mxKkJ94Mgx6KRKlfj86bE3YC5IFg2GKFR8aANzGIE5fD0leJy8FAgXzHqxncaPws9W9EDsvm72sHy9ucZ3qd3hJv+94o1mpN2UCTH53vJfqS+FYZ1LQYGwC6OCetQbK2ydag2dFAKxmEhJ9id4KlLMDmR0S0WfQV544a9Tdy9Ej88NfpdyDRBtNkNHbAs2OKa7IP4hLOw0wq/XYAWksHoqncDuyBatBz2mcKY+lZ+oESfDOOXLDEjzhb0hzQjfjlm/J6pixtZ+WtrDpy2lwN+3gI+reRoUf06loTC5TtGe9wAvpx3m7Zj/bbD8yXHcSxRg5OKdKO2GU6WJlwdgmMWVLBlxoGeCV0EpughM/7Ho7YZ1t3PoyiezxMWmPTOIIB59xJjxPl+eKvO4njtKfCNvXJIJl82B7SGT1Pnq7NzOI= # DOCKER_PASSWORD - secure: eoujj2pOklqQNSBmeKXSegi8PkNa57T6gCX2SJuTpuscNM7RBecZz+0ET9VhOpTxprvph43o8vB7QuvJFwM8AveoOy1GeySlRyt24Wilke3Gkg5h4NRGh25sdZZstyIhrQg7g4YS9fDV8BkcwU3RRJE9u5Cg5M3cl7H4m09Oj4g8xJZ3xJ4equZQERyq92KiKYpGgTMLDhMA65n9cyT41Wa0N9Ri52E3blrzWw8WYEGjj8CTkcgyJrWXgcbu72VFyQagQJ7ojitcwE1pci0SFonHtYJjML8Ig6MNlrrAknx0Tpx3x4OiErfU6pu5k3HiCM2OSBrqwBnNu9kz9cotLHxq8CT0ePQx2H71aew0ZJW14HOTTGHrrwbHfOhwnqI7npOY05RD97DZT0WlKInzUXDoyzypSJv4UHtjBpDa6zpoB34bcqqf+tOrtpkwO0ThxQVQPkd/ypZH6dmmO0RjP+QClByntHPefFLen8rKFRclu9FUU/7l4Lar4v0wSBYgnM58SN9PS+hssibZzrTdWTR5i82Xr8gk+qCaogpx8iE+OsBDe3yzr0IWfap+iG59V1I8+P+RMBNl4Lc0yS2gbEE30+Rhb4/vtUZlTGoVAEzPCWglASZOC/hfISPmCGkqI/jwjv38itrxQR5xrO/g0ecOi+ue4gl80tmWJnS8NRM= # QUAY_PASSWORD @@ -49,7 +50,8 @@ after_success: && echo "$QUAY_PASSWORD" | docker login quay.io --username "$QUAY_LOGIN" --password-stdin \ && docker tag docker_build quay.io/$DOCKER_USERNAME/$DOCKER_REPONAME:$DOCKER_TAG \ && docker tag docker_build quay.io/$DOCKER_USERNAME/$DOCKER_REPONAME:$VERSION \ - && docker push quay.io/$QUAY_USERNAME/$QUAY_REPONAME + && docker push quay.io/$QUAY_USERNAME/$QUAY_REPONAME \ + && curl -X POST $MICROBADGER_HOOK branches: except: From 5a7a17dc2b6967b26d220bf32443aec72f44440a Mon Sep 17 00:00:00 2001 From: Neil Lathwood Date: Sun, 28 Oct 2018 23:06:24 +0000 Subject: [PATCH 044/523] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1cbb041..a74d158 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.44 + - VERSION=1.45 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot From 73d1ac1e433a23f027436632fe7077f20f2e7f08 Mon Sep 17 00:00:00 2001 From: Neil Lathwood Date: Sun, 28 Oct 2018 23:06:55 +0000 Subject: [PATCH 045/523] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 58134f7..bcd6845 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 1.45-RC1 (2018/10/28) + * Upgrade to LibreNMS 1.45 + ## 1.44-RC1 (2018/10/17) * Upgrade to LibreNMS 1.44 From cbc514429043522de860f2b49a89606d06c6aea3 Mon Sep 17 00:00:00 2001 From: Neil Lathwood Date: Sun, 28 Oct 2018 23:07:23 +0000 Subject: [PATCH 046/523] Update Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ed4106f..ee9f564 100644 --- a/Dockerfile +++ b/Dockerfile @@ -79,7 +79,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.44" \ +ENV LIBRENMS_VERSION="1.45" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From 33ed56accab22a363c033f6fdd50277187cdf9bb Mon Sep 17 00:00:00 2001 From: Matt Elliott Date: Tue, 13 Nov 2018 15:53:26 -0800 Subject: [PATCH 047/523] Add php7-ldap --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index ee9f564..2c906db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,8 +28,10 @@ RUN apk --update --no-cache add \ git \ graphviz \ imagemagick \ + libldap \ monitoring-plugins \ mtr \ + musl \ mysql-client \ net-snmp \ net-snmp-tools \ @@ -45,6 +47,7 @@ RUN apk --update --no-cache add \ php7-fpm \ php7-gd \ php7-json \ + php7-ldap \ php7-mbstring \ php7-mcrypt \ php7-memcached \ From f393bec0cc1cdd2c539e72aab37d6c91e780e024 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 18 Nov 2018 17:08:10 +0100 Subject: [PATCH 048/523] Codacy --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6ea7b10..7c052e7 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ Docker Stars Docker Pulls Docker Repository on Quay + Code Quality Donate Paypal

From 8fb36fbb16b2ad8720356418fbb9bbe41bdc994c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 18 Nov 2018 17:08:50 +0100 Subject: [PATCH 049/523] Coding style --- Dockerfile | 4 ++-- entrypoint.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index ee9f564..db25859 100644 --- a/Dockerfile +++ b/Dockerfile @@ -89,11 +89,11 @@ RUN mkdir -p /opt \ && adduser -u 1000 -G librenms -h ${LIBRENMS_PATH} -s /bin/sh -D librenms \ && passwd -l librenms \ && usermod -a -G librenms nginx \ - && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ + && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ && git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git ${LIBRENMS_PATH} \ && chown -R librenms. ${LIBRENMS_PATH} \ && su - librenms -c "composer install --no-dev --no-interaction --no-ansi --working-dir=${LIBRENMS_PATH}" \ - && wget -q https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro -O /usr/bin/distro \ + && curl -sSLk -q https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro -o /usr/bin/distro \ && chmod +x /usr/bin/distro \ && rm -rf /tmp/* diff --git a/entrypoint.sh b/entrypoint.sh index b064968..221ffdb 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -135,7 +135,7 @@ cat > ${LIBRENMS_PATH}/config.d/database.php < /dev/null 2>&1; do sleep 1 - counter=`expr $counter + 1` + counter=$((counter + 1)) if [ ${counter} -gt ${DB_TIMEOUT} ]; then >&2 echo "ERROR: Failed to connect to database on $DB_HOST" exit 1 From 952f0ca7f1acdc7a4dcbcd9d22624dd395e3217a Mon Sep 17 00:00:00 2001 From: Matt Elliott Date: Wed, 21 Nov 2018 13:13:04 -0500 Subject: [PATCH 050/523] Update Dockerfile Remove musl and libldap --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2c906db..85a7d4f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,10 +28,8 @@ RUN apk --update --no-cache add \ git \ graphviz \ imagemagick \ - libldap \ monitoring-plugins \ mtr \ - musl \ mysql-client \ net-snmp \ net-snmp-tools \ From c2f269e19edc2aa28bee7b2a69a807cc2feb6581 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 21 Nov 2018 21:00:46 +0100 Subject: [PATCH 051/523] Update CHANGELOG --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcd6845..a67e5b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,12 @@ # Changelog +## 1.45-RC2 (2018/11/21) + +* Add `php7-ldap` package + ## 1.45-RC1 (2018/10/28) - * Upgrade to LibreNMS 1.45 + +* Upgrade to LibreNMS 1.45 ## 1.44-RC1 (2018/10/17) From b4556107469ca5c62cb3de837aea82c54e9a90ee Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 25 Nov 2018 07:01:18 +0100 Subject: [PATCH 052/523] Fix dbcmd in entrypoint --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index 221ffdb..45c950f 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -135,7 +135,7 @@ cat > ${LIBRENMS_PATH}/config.d/database.php < Date: Sun, 25 Nov 2018 07:12:25 +0100 Subject: [PATCH 053/523] Optimize layers --- Dockerfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 19c857d..e876a13 100644 --- a/Dockerfile +++ b/Dockerfile @@ -96,19 +96,19 @@ RUN mkdir -p /opt \ && su - librenms -c "composer install --no-dev --no-interaction --no-ansi --working-dir=${LIBRENMS_PATH}" \ && curl -sSLk -q https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro -o /usr/bin/distro \ && chmod +x /usr/bin/distro \ + && mkdir -p /data ${LIBRENMS_PATH}/config.d /var/log/supervisord \ + && cp ${LIBRENMS_PATH}/config.php.default ${LIBRENMS_PATH}/config.php \ + && cp ${LIBRENMS_PATH}/snmpd.conf.example /etc/snmp/snmpd.conf \ + && echo "foreach (glob(\"${DATA_PATH}/config/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ + && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ + && chown -R librenms. ${DATA_PATH} ${LIBRENMS_PATH} \ + && chown -R nginx. /var/lib/nginx /var/log/nginx /var/log/php7 /var/tmp/nginx \ && rm -rf /tmp/* COPY entrypoint.sh /entrypoint.sh COPY assets / -RUN mkdir -p /data ${LIBRENMS_PATH}/config.d /var/log/supervisord \ - && chmod a+x /entrypoint.sh /usr/local/bin/* \ - && cp ${LIBRENMS_PATH}/snmpd.conf.example /etc/snmp/snmpd.conf \ - && cp ${LIBRENMS_PATH}/config.php.default ${LIBRENMS_PATH}/config.php \ - && echo "foreach (glob(\"${DATA_PATH}/config/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ - && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ - && chown -R librenms. ${DATA_PATH} ${LIBRENMS_PATH} \ - && chown -R nginx. /var/lib/nginx /var/log/nginx /var/log/php7 /var/tmp/nginx +RUN chmod a+x /entrypoint.sh /usr/local/bin/* EXPOSE 80 514 514/udp WORKDIR ${LIBRENMS_PATH} From 226b8495b66050d6c1fcc1fd893574dea840a258 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 25 Nov 2018 07:12:53 +0100 Subject: [PATCH 054/523] Update CHANGELOG --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a67e5b0..21c9607 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.45-RC3 (2018/11/25) + +* Fix dbcmd in entrypoint +* Optimize layers + ## 1.45-RC2 (2018/11/21) * Add `php7-ldap` package From 0750f3086590bacc384d05be65a37485957ba4c8 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 25 Nov 2018 07:33:11 +0100 Subject: [PATCH 055/523] Typo --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index 45c950f..1dd1906 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -135,7 +135,7 @@ cat > ${LIBRENMS_PATH}/config.d/database.php < Date: Sun, 25 Nov 2018 20:47:50 +0100 Subject: [PATCH 056/523] Update travis --- .travis.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index a74d158..bdce337 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,19 +39,17 @@ before_script: script: - docker ps | grep $DOCKER_REPONAME - -after_success: - | test $TRAVIS_PULL_REQUEST = false \ && echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_LOGIN" --password-stdin \ && docker tag docker_build $DOCKER_USERNAME/$DOCKER_REPONAME:$DOCKER_TAG \ && docker tag docker_build $DOCKER_USERNAME/$DOCKER_REPONAME:$VERSION \ && docker push $DOCKER_USERNAME/$DOCKER_REPONAME \ + && curl -X POST $MICROBADGER_HOOK \ && echo "$QUAY_PASSWORD" | docker login quay.io --username "$QUAY_LOGIN" --password-stdin \ && docker tag docker_build quay.io/$DOCKER_USERNAME/$DOCKER_REPONAME:$DOCKER_TAG \ && docker tag docker_build quay.io/$DOCKER_USERNAME/$DOCKER_REPONAME:$VERSION \ - && docker push quay.io/$QUAY_USERNAME/$QUAY_REPONAME \ - && curl -X POST $MICROBADGER_HOOK + && docker push quay.io/$QUAY_USERNAME/$QUAY_REPONAME branches: except: From 61485e9e3fd178caa42394fe5f8dc5c316a3de97 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 2 Dec 2018 22:41:39 +0100 Subject: [PATCH 057/523] Typo --- examples/compose/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 5eb111a..baf50ba 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -64,7 +64,7 @@ services: environment: - "TZ=${TZ}" - "PUID=${PUID}" - - "PGID=${PUID}" + - "PGID=${PGID}" - "LOG_LEVEL=LOG_INFO" - "WRITE_TIMEOUT=1800" - "WRITE_JITTER=1800" From 83237bcb6c5d2c59e18608c5ff1f9ecbc924123a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 2 Dec 2018 22:42:40 +0100 Subject: [PATCH 058/523] Update travis build --- .dockerignore | 1 + .travis.yml | 37 +---------------- Dockerfile | 2 +- build.sh | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 114 insertions(+), 36 deletions(-) create mode 100644 build.sh diff --git a/.dockerignore b/.dockerignore index 617e694..085517e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -8,6 +8,7 @@ /.editorconfig /.gitignore /.travis.yml +/build.sh /CHANGELOG.md /LICENSE /README.md diff --git a/.travis.yml b/.travis.yml index bdce337..b967122 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.45 + - VERSION=1.46 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot @@ -19,38 +19,5 @@ env: before_install: - sudo apt-get update - docker --version - - export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo $TRAVIS_BRANCH; else echo $TRAVIS_PULL_REQUEST_BRANCH; fi) - - export DOCKER_TAG=$(if [ "$BRANCH" == "master" ]; then echo "latest"; else echo $BRANCH; fi) - - echo "TRAVIS_BRANCH=$TRAVIS_BRANCH, PR=$PR, BRANCH=$BRANCH, DOCKER_TAG=$DOCKER_TAG" -install: - - | - docker build --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \ - --build-arg VCS_REF=${TRAVIS_COMMIT::8} \ - --build-arg VERSION=${VERSION} \ - -t docker_build . - -before_script: - - docker network create -d bridge $DOCKER_REPONAME - - docker run -d --network=$DOCKER_REPONAME --name db mariadb:10.2 - - docker run -d --network=$DOCKER_REPONAME --link db -p 8000:80 -e "DB_HOST=db" -e "DB_PASSWORD=asupersecretpassword" --name $DOCKER_REPONAME docker_build - - sleep 20 - - docker logs $DOCKER_REPONAME - -script: - - docker ps | grep $DOCKER_REPONAME - - | - test $TRAVIS_PULL_REQUEST = false \ - && echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_LOGIN" --password-stdin \ - && docker tag docker_build $DOCKER_USERNAME/$DOCKER_REPONAME:$DOCKER_TAG \ - && docker tag docker_build $DOCKER_USERNAME/$DOCKER_REPONAME:$VERSION \ - && docker push $DOCKER_USERNAME/$DOCKER_REPONAME \ - && curl -X POST $MICROBADGER_HOOK \ - && echo "$QUAY_PASSWORD" | docker login quay.io --username "$QUAY_LOGIN" --password-stdin \ - && docker tag docker_build quay.io/$DOCKER_USERNAME/$DOCKER_REPONAME:$DOCKER_TAG \ - && docker tag docker_build quay.io/$DOCKER_USERNAME/$DOCKER_REPONAME:$VERSION \ - && docker push quay.io/$QUAY_USERNAME/$QUAY_REPONAME - -branches: - except: - - /^[0-9]/ +script: ./build.sh diff --git a/Dockerfile b/Dockerfile index e876a13..61ac401 100644 --- a/Dockerfile +++ b/Dockerfile @@ -80,7 +80,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.45" \ +ENV LIBRENMS_VERSION="1.46" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..25d12f4 --- /dev/null +++ b/build.sh @@ -0,0 +1,110 @@ +#!/usr/bin/env bash +set -e + +PROJECT=librenms +BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") +BUILD_TAG=docker_build +VCS_REF=${TRAVIS_COMMIT::8} +RUNNING_TIMEOUT=120 +RUNNING_LOG_CHECK="snmpd entered RUNNING state" + +DOCKER_USERNAME=${DOCKER_USERNAME:="librenms"} +DOCKER_REPONAME=${DOCKER_REPONAME:="librenms"} +DOCKER_LOGIN=${DOCKER_LOGIN:="librenmsbot"} +QUAY_USERNAME=${QUAY_USERNAME:="librenms"} +QUAY_REPONAME=${QUAY_REPONAME:="librenms"} +QUAY_LOGIN=${QUAY_LOGIN:="librenms+travis"} + +# Check local or travis +BRANCH=${TRAVIS_BRANCH:-"local"} +if [[ ${TRAVIS_PULL_REQUEST} == "true" ]]; then + BRANCH=${TRAVIS_PULL_REQUEST_BRANCH} +fi +DOCKER_TAG=${BRANCH:-"local"} +if [[ "$BRANCH" == "master" ]]; then + DOCKER_TAG=latest +elif [[ "$BRANCH" == "local" ]]; then + BUILD_DATE= + VERSION=local +fi + +echo "PROJECT=${PROJECT}" +echo "BUILD_DATE=${BUILD_DATE}" +echo "BUILD_TAG=${BUILD_TAG}" +echo "VCS_REF=${VCS_REF}" +echo "DOCKER_USERNAME=${DOCKER_USERNAME}" +echo "DOCKER_REPONAME=${DOCKER_REPONAME}" +echo "QUAY_USERNAME=${QUAY_USERNAME}" +echo "QUAY_REPONAME=${QUAY_REPONAME}" +echo "TRAVIS_BRANCH=${TRAVIS_BRANCH}" +echo "TRAVIS_PULL_REQUEST=${TRAVIS_PULL_REQUEST}" +echo "BRANCH=${BRANCH}" +echo "DOCKER_TAG=${DOCKER_TAG}" +echo + +# Build +echo "### Build" +docker build \ + --build-arg BUILD_DATE=${BUILD_DATE} \ + --build-arg VCS_REF=${VCS_REF} \ + --build-arg VERSION=${VERSION} \ + -t ${BUILD_TAG} . +echo + +echo "### Test" +docker rm -f ${PROJECT} ${PROJECT}-db || true +docker network rm ${PROJECT} || true +docker network create -d bridge ${PROJECT} +docker run -d --network=${PROJECT} --name ${PROJECT}-db --hostname ${PROJECT}-db \ + -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" \ + -e "MYSQL_DATABASE=librenms" \ + -e "MYSQL_USER=librenms" \ + -e "MYSQL_PASSWORD=asupersecretpassword" \ + mariadb:10.2 \ + mysqld --sql-mode= --innodb-file-per-table=1 --lower-case-table-names=0 +docker run -d --network=${PROJECT} --link ${PROJECT}-db -p 8000:80 \ + -e "DB_HOST=${PROJECT}-db" \ + -e "DB_NAME=librenms" \ + -e "DB_USER=librenms" \ + -e "DB_PASSWORD=asupersecretpassword" \ + --name ${PROJECT} ${BUILD_TAG} +echo + +echo "### Waiting for ${PROJECT} to be up..." +TIMEOUT=$((SECONDS + RUNNING_TIMEOUT)) +while read LOGLINE; do + echo ${LOGLINE} + if [[ "${LOGLINE#*$RUNNING_LOG_CHECK}" != "$LOGLINE" ]]; then + echo "Container up!" + break + fi + if [[ $SECONDS -gt ${TIMEOUT} ]]; then + >&2 echo "ERROR: Failed to run ${PROJECT} container" + exit 1 + fi +done < <(docker logs -f ${PROJECT}) +echo + +if [ "${VERSION}" == "local" -o "${TRAVIS_PULL_REQUEST}" == "true" ]; then + echo "INFO: This is a PR or a local build, skipping push..." + exit 0 +fi +if [[ ! -z ${DOCKER_PASSWORD} ]]; then + echo "### Push to Docker Hub..." + echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_LOGIN" --password-stdin > /dev/null 2>&1 + docker tag ${BUILD_TAG} ${DOCKER_USERNAME}/${DOCKER_REPONAME}:${DOCKER_TAG} + docker tag ${BUILD_TAG} ${DOCKER_USERNAME}/${DOCKER_REPONAME}:${VERSION} + docker push ${DOCKER_USERNAME}/${DOCKER_REPONAME} + if [[ ! -z ${DOCKER_PASSWORD} ]]; then + echo "Call MicroBadger hook" + curl -X POST ${MICROBADGER_HOOK} + fi + echo +fi +if [[ ! -z ${QUAY_PASSWORD} ]]; then + echo "### Push to Quay..." + echo "$QUAY_PASSWORD" | docker login quay.io --username "$QUAY_LOGIN" --password-stdin > /dev/null 2>&1 + docker tag ${BUILD_TAG} quay.io/${QUAY_USERNAME}/${QUAY_REPONAME}:${DOCKER_TAG} + docker tag ${BUILD_TAG} quay.io/${QUAY_USERNAME}/${QUAY_REPONAME}:${VERSION} + docker push quay.io/${QUAY_USERNAME}/${QUAY_REPONAME} +fi From 29e944b897237fef62e1f8bab3941a8420569315 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 2 Dec 2018 22:42:47 +0100 Subject: [PATCH 059/523] Update travis build --- build.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 build.sh diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 From c49f850be0f8f921b8f734e7564af86b7b69cb4a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 2 Dec 2018 22:43:20 +0100 Subject: [PATCH 060/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 21c9607..b9fe929 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.46-RC1 (2018/12/02) + +* Upgrade to LibreNMS 1.46 + ## 1.45-RC3 (2018/11/25) * Fix dbcmd in entrypoint From 07f4d778d8a1846346e9f795129a344427261c0a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 14 Dec 2018 14:26:39 +0100 Subject: [PATCH 061/523] Coding style --- Dockerfile | 2 +- entrypoint.sh | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index 61ac401..347edae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ ARG VERSION LABEL maintainer="CrazyMax" \ org.label-schema.build-date=$BUILD_DATE \ org.label-schema.name="librenms" \ - org.label-schema.description="LibreNMS based on Alpine Linux and Nginx" \ + org.label-schema.description="LibreNMS" \ org.label-schema.version=$VERSION \ org.label-schema.url="https://github.com/librenms/docker" \ org.label-schema.vcs-ref=$VCS_REF \ diff --git a/entrypoint.sh b/entrypoint.sh index 1dd1906..15853ae 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -4,25 +4,25 @@ function runas_librenms() { su - librenms -s /bin/sh -c "$1" } -TZ=${TZ:-"UTC"} +TZ=${TZ:-UTC} PUID=${PUID:-1000} PGID=${PGID:-1000} -MEMORY_LIMIT=${MEMORY_LIMIT:-"256M"} -UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-"16M"} -OPCACHE_MEM_SIZE=${OPCACHE_MEM_SIZE:-"128"} +MEMORY_LIMIT=${MEMORY_LIMIT:-256M} +UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-16M} +OPCACHE_MEM_SIZE=${OPCACHE_MEM_SIZE:-128} -MEMCACHED_PORT=${MEMCACHED_PORT:-"11211"} -RRDCACHED_PORT=${RRDCACHED_PORT:-"42217"} +MEMCACHED_PORT=${MEMCACHED_PORT:-11211} +RRDCACHED_PORT=${RRDCACHED_PORT:-42217} -LIBRENMS_POLLER_THREADS=${LIBRENMS_POLLER_THREADS:-"16"} -LIBRENMS_POLLER_INTERVAL=${LIBRENMS_POLLER_INTERVAL:-"5"} +LIBRENMS_POLLER_THREADS=${LIBRENMS_POLLER_THREADS:-16} +LIBRENMS_POLLER_INTERVAL=${LIBRENMS_POLLER_INTERVAL:-5} LIBRENMS_DISTRIBUTED_POLLER_ENABLE=${LIBRENMS_DISTRIBUTED_POLLER_ENABLE:-false} LIBRENMS_DISTRIBUTED_POLLER_NAME=${LIBRENMS_DISTRIBUTED_POLLER_NAME:-$(hostname -f)} LIBRENMS_DISTRIBUTED_POLLER_GROUP=${LIBRENMS_DISTRIBUTED_POLLER_GROUP:-'0'} -LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST:-"${MEMCACHED_HOST}"} -LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT:-"${MEMCACHED_PORT}"} +LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST:-${MEMCACHED_HOST}} +LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT:-${MEMCACHED_PORT}} LIBRENMS_CRON_DISCOVERY_ENABLE=${LIBRENMS_CRON_DISCOVERY_ENABLE:-true} LIBRENMS_CRON_DAILY_ENABLE=${LIBRENMS_CRON_DAILY_ENABLE:-true} @@ -32,13 +32,13 @@ LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=${LIBRENMS_CRON_BILLING_CALCULATE_ENABLE: LIBRENMS_CRON_CHECK_SERVICES_ENABLE=${LIBRENMS_CRON_CHECK_SERVICES_ENABLE:-true} LIBRENMS_CRON_POLLER_ENABLE=${LIBRENMS_CRON_POLLER_ENABLE:-true} -DB_PORT=${DB_PORT:-"3306"} -DB_NAME=${DB_NAME:-"librenms"} -DB_USER=${DB_USER:-"librenms"} -DB_TIMEOUT=${DB_TIMEOUT:-"30"} +DB_PORT=${DB_PORT:-3306} +DB_NAME=${DB_NAME:-librenms} +DB_USER=${DB_USER:-librenms} +DB_TIMEOUT=${DB_TIMEOUT:-30} -MEMCACHED_PORT=${MEMCACHED_PORT:-"11211"} -RRDCACHED_PORT=${RRDCACHED_PORT:-"42217"} +MEMCACHED_PORT=${MEMCACHED_PORT:-11211} +RRDCACHED_PORT=${RRDCACHED_PORT:-42217} # From https://github.com/docker-library/mariadb/blob/master/docker-entrypoint.sh#L21-L41 # usage: file_env VAR [DEFAULT] From b5d1ddbbe2fcf09ec4edad4a78879a39ed38a003 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 14 Dec 2018 14:27:02 +0100 Subject: [PATCH 062/523] Update build script --- .gitignore | 2 +- build.sh | 40 +++++++++++++++++++++++++++------------- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 83a80f2..44cf1be 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ /.vscode # App -/.dev \ No newline at end of file +/.dev diff --git a/build.sh b/build.sh index 25d12f4..9ea3ab1 100755 --- a/build.sh +++ b/build.sh @@ -4,23 +4,25 @@ set -e PROJECT=librenms BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") BUILD_TAG=docker_build +BUILD_WORKINGDIR=${BUILD_WORKINGDIR:-.} +DOCKERFILE=${DOCKERFILE:-Dockerfile} VCS_REF=${TRAVIS_COMMIT::8} RUNNING_TIMEOUT=120 RUNNING_LOG_CHECK="snmpd entered RUNNING state" -DOCKER_USERNAME=${DOCKER_USERNAME:="librenms"} -DOCKER_REPONAME=${DOCKER_REPONAME:="librenms"} -DOCKER_LOGIN=${DOCKER_LOGIN:="librenmsbot"} -QUAY_USERNAME=${QUAY_USERNAME:="librenms"} -QUAY_REPONAME=${QUAY_REPONAME:="librenms"} -QUAY_LOGIN=${QUAY_LOGIN:="librenms+travis"} +DOCKER_USERNAME=${DOCKER_USERNAME:-librenms} +DOCKER_REPONAME=${DOCKER_REPONAME:-librenms} +DOCKER_LOGIN=${DOCKER_LOGIN:-librenmsbot} +QUAY_USERNAME=${QUAY_USERNAME:-librenms} +QUAY_REPONAME=${QUAY_REPONAME:-librenms} +QUAY_LOGIN=${QUAY_LOGIN:-librenms+travis} # Check local or travis -BRANCH=${TRAVIS_BRANCH:-"local"} +BRANCH=${TRAVIS_BRANCH:-local} if [[ ${TRAVIS_PULL_REQUEST} == "true" ]]; then BRANCH=${TRAVIS_PULL_REQUEST_BRANCH} fi -DOCKER_TAG=${BRANCH:-"local"} +DOCKER_TAG=${BRANCH:-local} if [[ "$BRANCH" == "master" ]]; then DOCKER_TAG=latest elif [[ "$BRANCH" == "local" ]]; then @@ -31,6 +33,8 @@ fi echo "PROJECT=${PROJECT}" echo "BUILD_DATE=${BUILD_DATE}" echo "BUILD_TAG=${BUILD_TAG}" +echo "BUILD_WORKINGDIR=${BUILD_WORKINGDIR}" +echo "DOCKERFILE=${DOCKERFILE}" echo "VCS_REF=${VCS_REF}" echo "DOCKER_USERNAME=${DOCKER_USERNAME}" echo "DOCKER_REPONAME=${DOCKER_REPONAME}" @@ -48,12 +52,12 @@ docker build \ --build-arg BUILD_DATE=${BUILD_DATE} \ --build-arg VCS_REF=${VCS_REF} \ --build-arg VERSION=${VERSION} \ - -t ${BUILD_TAG} . + -t ${BUILD_TAG} -f ${DOCKERFILE} ${BUILD_WORKINGDIR} echo echo "### Test" -docker rm -f ${PROJECT} ${PROJECT}-db || true -docker network rm ${PROJECT} || true +docker rm -f ${PROJECT} ${PROJECT}-db > /dev/null 2>&1 || true +docker network rm ${PROJECT} > /dev/null 2>&1 || true docker network create -d bridge ${PROJECT} docker run -d --network=${PROJECT} --name ${PROJECT}-db --hostname ${PROJECT}-db \ -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" \ @@ -74,15 +78,25 @@ echo "### Waiting for ${PROJECT} to be up..." TIMEOUT=$((SECONDS + RUNNING_TIMEOUT)) while read LOGLINE; do echo ${LOGLINE} - if [[ "${LOGLINE#*$RUNNING_LOG_CHECK}" != "$LOGLINE" ]]; then + if [[ ${LOGLINE} == *"${RUNNING_LOG_CHECK}"* ]]; then echo "Container up!" break fi if [[ $SECONDS -gt ${TIMEOUT} ]]; then >&2 echo "ERROR: Failed to run ${PROJECT} container" + docker rm -f ${PROJECT} > /dev/null 2>&1 || true exit 1 fi -done < <(docker logs -f ${PROJECT}) +done < <(docker logs -f ${PROJECT} 2>&1) +echo + +CONTAINER_STATUS=$(docker container inspect --format "{{.State.Status}}" ${PROJECT}) +if [[ ${CONTAINER_STATUS} != "running" ]]; then + >&2 echo "ERROR: Container ${PROJECT} returned status '$CONTAINER_STATUS'" + docker rm -f ${PROJECT} > /dev/null 2>&1 || true + exit 1 +fi +docker rm -f ${PROJECT} > /dev/null 2>&1 || true echo if [ "${VERSION}" == "local" -o "${TRAVIS_PULL_REQUEST}" == "true" ]; then From 513ec328e4535d1f9d4f3732e9b127c360ee39fa Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 14 Dec 2018 14:38:17 +0100 Subject: [PATCH 063/523] Add Python3 (Issue #7) --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 347edae..0af5bba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -63,8 +63,7 @@ RUN apk --update --no-cache add \ php7-xml \ php7-zip \ py-mysqldb \ - py2-pip \ - python2 \ + python3 \ rrdtool \ runit \ shadow \ @@ -74,7 +73,8 @@ RUN apk --update --no-cache add \ tzdata \ util-linux \ whois \ - && pip install python-memcached \ + && pip3 install --upgrade pip \ + && pip3 install python-memcached \ && sed -i -e "s/;date\.timezone.*/date\.timezone = UTC/" /etc/php7/php.ini \ && rm -rf /var/cache/apk/* /var/www/* /tmp/* \ && setcap cap_net_raw+ep /usr/bin/nmap \ From 849713e69125dfb38878c84b812a475294038137 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 14 Dec 2018 14:39:08 +0100 Subject: [PATCH 064/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b9fe929..2b70ab9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.46-RC2 (2018/12/14) + +* Add Python 3 (Issue #7) + ## 1.46-RC1 (2018/12/02) * Upgrade to LibreNMS 1.46 From 9ef067c1aa836d5edaffb83d5c343a3bb0669ff0 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 20 Dec 2018 20:59:12 +0100 Subject: [PATCH 065/523] Fix #8 --- examples/compose/.env | 3 --- examples/compose/docker-compose.yml | 18 +++++++++--------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/examples/compose/.env b/examples/compose/.env index c961723..a847768 100644 --- a/examples/compose/.env +++ b/examples/compose/.env @@ -1,6 +1,3 @@ -DOMAINNAME=example.com -HOSTNAME=librenms - MYSQL_DATABASE=librenms MYSQL_USER=librenms MYSQL_PASSWORD=asupersecretpassword diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index baf50ba..093fbde 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -10,7 +10,7 @@ services: - "--entryPoints=Name:https Address::443 TLS" - "--docker" - "--docker.exposedbydefault=false" - - "--docker.domain=${DOMAINNAME}" + - "--docker.domain=example.com" - "--acme=true" - "--acme.acmelogging=true" - "--acme.email=webmaster@example.com" @@ -77,7 +77,7 @@ services: volumes: - "/etc/localtime:/etc/localtime:ro" environment: - - "SERVER_HOSTNAME=${HOSTNAME}.${DOMAINNAME}" + - "SERVER_HOSTNAME=librenms.example.com" - "SMTP_SERVER=${SMTP_SERVER}" - "SMTP_USERNAME=${SMTP_USERNAME}" - "SMTP_PASSWORD=${SMTP_PASSWORD}" @@ -85,8 +85,8 @@ services: app: image: librenms/librenms:latest - domainname: ${DOMAINNAME} - hostname: ${HOSTNAME} + domainname: example.com + hostname: librenms depends_on: - db - memcached @@ -98,7 +98,7 @@ services: - "traefik.enable=true" - "traefik.backend=librenms" - "traefik.port=80" - - "traefik.frontend.rule=Host:${HOSTNAME}.${DOMAINNAME}" + - "traefik.frontend.rule=Host:librenms.example.com" environment: - "TZ=${TZ}" - "PUID=${PUID}" @@ -114,8 +114,8 @@ services: cron: image: librenms/librenms:latest - domainname: ${DOMAINNAME} - hostname: ${HOSTNAME} + domainname: example.com + hostname: librenms command: - "/usr/local/bin/cron" depends_on: @@ -137,8 +137,8 @@ services: syslog-ng: image: librenms/librenms:latest - domainname: ${DOMAINNAME} - hostname: ${HOSTNAME} + domainname: example.com + hostname: librenms command: - "/usr/sbin/syslog-ng" - "-F" From 54186fb3ee455555234e45923dc28bbbecb90efd Mon Sep 17 00:00:00 2001 From: Jonathan Senecal Date: Thu, 27 Dec 2018 12:36:59 -0500 Subject: [PATCH 066/523] Fix for missing python-memcached on python2 This is a fix for changes introduced in commit 513ec328e4535d1f9d4f3732e9b127c360ee39fa that broke distributed polling as the [`poller-wrapper.py` script requires python2](https://github.com/librenms/librenms/blob/master/poller-wrapper.py#L1) (as well as many [others](https://github.com/librenms/librenms/search?q=env+python2&unscoped_q=env+python2)) Closes #9 --- Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Dockerfile b/Dockerfile index 0af5bba..b3b670a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -63,6 +63,8 @@ RUN apk --update --no-cache add \ php7-xml \ php7-zip \ py-mysqldb \ + python \ + py2-pip \ python3 \ rrdtool \ runit \ @@ -73,6 +75,8 @@ RUN apk --update --no-cache add \ tzdata \ util-linux \ whois \ + && pip2 install --upgrade pip \ + && pip2 install python-memcached \ && pip3 install --upgrade pip \ && pip3 install python-memcached \ && sed -i -e "s/;date\.timezone.*/date\.timezone = UTC/" /etc/php7/php.ini \ From 750260e05f3b4444bd7d1f5eec9a55f465c51127 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 29 Dec 2018 16:06:05 +0100 Subject: [PATCH 067/523] Update build script --- build.sh | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/build.sh b/build.sh index 9ea3ab1..5b6ee96 100755 --- a/build.sh +++ b/build.sh @@ -10,6 +10,7 @@ VCS_REF=${TRAVIS_COMMIT::8} RUNNING_TIMEOUT=120 RUNNING_LOG_CHECK="snmpd entered RUNNING state" +PUSH_LATEST=${PUSH_LATEST:-true} DOCKER_USERNAME=${DOCKER_USERNAME:-librenms} DOCKER_REPONAME=${DOCKER_REPONAME:-librenms} DOCKER_LOGIN=${DOCKER_LOGIN:-librenmsbot} @@ -31,13 +32,17 @@ elif [[ "$BRANCH" == "local" ]]; then fi echo "PROJECT=${PROJECT}" +echo "VERSION=${VERSION}" echo "BUILD_DATE=${BUILD_DATE}" echo "BUILD_TAG=${BUILD_TAG}" echo "BUILD_WORKINGDIR=${BUILD_WORKINGDIR}" echo "DOCKERFILE=${DOCKERFILE}" echo "VCS_REF=${VCS_REF}" +echo "PUSH_LATEST=${PUSH_LATEST}" +echo "DOCKER_LOGIN=${DOCKER_LOGIN}" echo "DOCKER_USERNAME=${DOCKER_USERNAME}" echo "DOCKER_REPONAME=${DOCKER_REPONAME}" +echo "QUAY_LOGIN=${QUAY_LOGIN}" echo "QUAY_USERNAME=${QUAY_USERNAME}" echo "QUAY_REPONAME=${QUAY_REPONAME}" echo "TRAVIS_BRANCH=${TRAVIS_BRANCH}" @@ -66,7 +71,7 @@ docker run -d --network=${PROJECT} --name ${PROJECT}-db --hostname ${PROJECT}-db -e "MYSQL_PASSWORD=asupersecretpassword" \ mariadb:10.2 \ mysqld --sql-mode= --innodb-file-per-table=1 --lower-case-table-names=0 -docker run -d --network=${PROJECT} --link ${PROJECT}-db -p 8000:80 \ +docker run -d --network=${PROJECT} --link ${PROJECT}-db \ -e "DB_HOST=${PROJECT}-db" \ -e "DB_NAME=librenms" \ -e "DB_USER=librenms" \ @@ -106,19 +111,29 @@ fi if [[ ! -z ${DOCKER_PASSWORD} ]]; then echo "### Push to Docker Hub..." echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_LOGIN" --password-stdin > /dev/null 2>&1 - docker tag ${BUILD_TAG} ${DOCKER_USERNAME}/${DOCKER_REPONAME}:${DOCKER_TAG} - docker tag ${BUILD_TAG} ${DOCKER_USERNAME}/${DOCKER_REPONAME}:${VERSION} + if [ "${DOCKER_TAG}" == "latest" -a "${PUSH_LATEST}" == "true" ]; then + docker tag ${BUILD_TAG} ${DOCKER_USERNAME}/${DOCKER_REPONAME}:${DOCKER_TAG} + fi + if [[ "${VERSION}" != "latest" ]]; then + docker tag ${BUILD_TAG} ${DOCKER_USERNAME}/${DOCKER_REPONAME}:${VERSION} + fi docker push ${DOCKER_USERNAME}/${DOCKER_REPONAME} - if [[ ! -z ${DOCKER_PASSWORD} ]]; then + if [[ ! -z ${MICROBADGER_HOOK} ]]; then echo "Call MicroBadger hook" curl -X POST ${MICROBADGER_HOOK} + echo fi echo fi if [[ ! -z ${QUAY_PASSWORD} ]]; then echo "### Push to Quay..." echo "$QUAY_PASSWORD" | docker login quay.io --username "$QUAY_LOGIN" --password-stdin > /dev/null 2>&1 - docker tag ${BUILD_TAG} quay.io/${QUAY_USERNAME}/${QUAY_REPONAME}:${DOCKER_TAG} - docker tag ${BUILD_TAG} quay.io/${QUAY_USERNAME}/${QUAY_REPONAME}:${VERSION} + if [ "${DOCKER_TAG}" == "latest" -a "${PUSH_LATEST}" == "true" ]; then + docker tag ${BUILD_TAG} quay.io/${QUAY_USERNAME}/${QUAY_REPONAME}:${DOCKER_TAG} + fi + if [[ "${VERSION}" != "latest" ]]; then + docker tag ${BUILD_TAG} quay.io/${QUAY_USERNAME}/${QUAY_REPONAME}:${VERSION} + fi docker push quay.io/${QUAY_USERNAME}/${QUAY_REPONAME} + echo fi From ca1f2de88bb4540da39b6266b6c2605034b3ed2d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 29 Dec 2018 16:06:32 +0100 Subject: [PATCH 068/523] Update README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7c052e7..f7742d0 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ ### Ports * `80` : HTTP port +* `514 514/udp` : Syslog ports ## Use this image From 72e623be89acc7a4c67b83c3078712d27bf0e910 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 29 Dec 2018 16:06:50 +0100 Subject: [PATCH 069/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ examples/compose/docker-compose.yml | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b70ab9..c4dd580 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.46-RC3 (2018/12/29) + +* Missing Python 2 memcached module for poller (Issue #9) + ## 1.46-RC2 (2018/12/14) * Add Python 3 (Issue #7) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 093fbde..d7323cf 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.2" services: traefik: - image: traefik:1.6-alpine + image: traefik:1.7-alpine command: - "--logLevel=INFO" - "--defaultentrypoints=http,https" @@ -23,11 +23,9 @@ services: - target: 80 published: 80 protocol: tcp - mode: host - target: 443 published: 443 protocol: tcp - mode: host volumes: - "./acme.json:/acme.json" - "/var/run/docker.sock:/var/run/docker.sock" From 4da1d9d0b7412dc58d7e7a6a6232fa651cbdbed2 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 30 Dec 2018 16:56:37 +0100 Subject: [PATCH 070/523] Upgrade to LibreNMS 1.47 --- .travis.yml | 2 +- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b967122..12b97e4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.46 + - VERSION=1.47 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index c4dd580..ca1bf44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.47-RC1 (2018/12/30) + +* Upgrade to LibreNMS 1.47 + ## 1.46-RC3 (2018/12/29) * Missing Python 2 memcached module for poller (Issue #9) diff --git a/Dockerfile b/Dockerfile index b3b670a..c260e62 100644 --- a/Dockerfile +++ b/Dockerfile @@ -84,7 +84,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.46" \ +ENV LIBRENMS_VERSION="1.47" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From 0e2506713833ecfb15df92cd0fd10668525fb68c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 6 Jan 2019 23:56:58 +0100 Subject: [PATCH 071/523] New year --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 29b1e96..8c81eb2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018 CrazyMax +Copyright (c) 2018-2019 CrazyMax Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 648aab44971bb8f0d394a82c9ac299cda67b1554 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 6 Jan 2019 23:57:24 +0100 Subject: [PATCH 072/523] Update instructions (Issue #11) --- README.md | 10 +++++----- examples/compose/docker-compose.yml | 14 +++++++++++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index f7742d0..8dff85e 100644 --- a/README.md +++ b/README.md @@ -147,7 +147,7 @@ On first launch, an initial administrator user will be created : You can create an other user using the commande line : ```text -$ docker exec -it --user librenms librenms php adduser.php 10 +$ docker-compose exec --user librenms librenms php adduser.php 10 ``` > :warning: Substitute your desired username ``, password `` and email address `` @@ -157,7 +157,7 @@ $ docker exec -it --user librenms librenms php adduser.php 10 Date: Fri, 18 Jan 2019 00:53:30 +0100 Subject: [PATCH 073/523] Fix vcs ref --- build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sh b/build.sh index 5b6ee96..306b8ea 100755 --- a/build.sh +++ b/build.sh @@ -6,7 +6,7 @@ BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") BUILD_TAG=docker_build BUILD_WORKINGDIR=${BUILD_WORKINGDIR:-.} DOCKERFILE=${DOCKERFILE:-Dockerfile} -VCS_REF=${TRAVIS_COMMIT::8} +VCS_REF=${TRAVIS_COMMIT::7} RUNNING_TIMEOUT=120 RUNNING_LOG_CHECK="snmpd entered RUNNING state" From 9a16c32fa31625064b7d777d7142059c01c0f356 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 28 Jan 2019 19:07:53 +0100 Subject: [PATCH 074/523] Upgrade to LibreNMS 1.48 --- .travis.yml | 2 +- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 12b97e4..6fbb95c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.47 + - VERSION=1.48 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index ca1bf44..6d253c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.48-RC1 (2019/01/28) + +* Upgrade to LibreNMS 1.48 + ## 1.47-RC1 (2018/12/30) * Upgrade to LibreNMS 1.47 diff --git a/Dockerfile b/Dockerfile index c260e62..876baf3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -84,7 +84,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.47" \ +ENV LIBRENMS_VERSION="1.48" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From ef409c8a036ef654e1ba77348b2e85ff3d1a242b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 31 Jan 2019 20:25:25 +0100 Subject: [PATCH 075/523] Upgrade to LibreNMS 1.48.1 Alpine Linux 3.9 --- .travis.yml | 2 +- CHANGELOG.md | 5 +++++ Dockerfile | 4 ++-- README.md | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6fbb95c..7941e02 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.48 + - VERSION=1.48.1 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d253c4..0fbc08c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.48.1-RC1 (2019/01/31) + +* Upgrade to LibreNMS 1.48.1 +* Alpine Linux 3.9 + ## 1.48-RC1 (2019/01/28) * Upgrade to LibreNMS 1.48 diff --git a/Dockerfile b/Dockerfile index 876baf3..cf95994 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.8 +FROM alpine:3.9 ARG BUILD_DATE ARG VCS_REF @@ -84,7 +84,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.48" \ +ENV LIBRENMS_VERSION="1.48.1" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" diff --git a/README.md b/README.md index 8dff85e..b1a4a1b 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ ### Included -* Alpine Linux 3.8, Nginx, PHP 7.2 +* Alpine Linux 3.9, Nginx, PHP 7.2 * Cron tasks as a ["sidecar" container](#crons) * Syslog-ng support through a ["sidecar" container](#syslog-ng) * Ability to configure [distributed polling](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) From 9edf8d11a30549f824e1a98964aa3f692b4c9fba Mon Sep 17 00:00:00 2001 From: Danja Vasiliev Date: Tue, 12 Feb 2019 00:50:00 +0100 Subject: [PATCH 076/523] use utf8 charset and collation in mariandb use utf8 charset and collation in mariandb in order to prevent FAIL message on /validate page --- examples/compose/docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index d40ac82..0f8ff5a 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -40,6 +40,8 @@ services: - "--sql-mode=" - "--innodb-file-per-table=1" - "--lower-case-table-names=0" + - "--character-set-server=utf8" + - "--collation-server=utf8_unicode_ci" volumes: - "./db:/var/lib/mysql" environment: From a511cb19532ee25b9297156dd5d286b26c24f149 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 6 Mar 2019 02:37:37 +0100 Subject: [PATCH 077/523] Upgrade to LibreNMS 1.49 --- .travis.yml | 2 +- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7941e02..a792ddf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.48.1 + - VERSION=1.49 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fbc08c..59061bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.49-RC1 (2019/03/06) + +* Upgrade to LibreNMS 1.49 + ## 1.48.1-RC1 (2019/01/31) * Upgrade to LibreNMS 1.48.1 diff --git a/Dockerfile b/Dockerfile index cf95994..25d5b62 100644 --- a/Dockerfile +++ b/Dockerfile @@ -84,7 +84,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.48.1" \ +ENV LIBRENMS_VERSION="1.49" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From e8a67d632fc6ebfc14df2432c5bdde9866ad7304 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 20 Mar 2019 00:19:34 +0100 Subject: [PATCH 078/523] Linguist --- .gitattributes | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3399cb4 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +/*.sh linguist-detectable=false +/assets/** linguist-detectable=false From 034a9b2606cc02de70efba86b61afea874fac0e4 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 2 Apr 2019 00:12:13 +0200 Subject: [PATCH 079/523] LibreNMS 1.50 --- .travis.yml | 2 +- CHANGELOG.md | 24 ++++++++++++++---------- Dockerfile | 2 +- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index a792ddf..e35abaf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.49 + - VERSION=1.50 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index 59061bb..ebff236 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,21 +1,25 @@ # Changelog +## 1.50-RC1 (2019/04/01) + +* LibreNMS 1.50 + ## 1.49-RC1 (2019/03/06) -* Upgrade to LibreNMS 1.49 +* LibreNMS 1.49 ## 1.48.1-RC1 (2019/01/31) -* Upgrade to LibreNMS 1.48.1 +* LibreNMS 1.48.1 * Alpine Linux 3.9 ## 1.48-RC1 (2019/01/28) -* Upgrade to LibreNMS 1.48 +* LibreNMS 1.48 ## 1.47-RC1 (2018/12/30) -* Upgrade to LibreNMS 1.47 +* LibreNMS 1.47 ## 1.46-RC3 (2018/12/29) @@ -27,7 +31,7 @@ ## 1.46-RC1 (2018/12/02) -* Upgrade to LibreNMS 1.46 +* LibreNMS 1.46 ## 1.45-RC3 (2018/11/25) @@ -40,11 +44,11 @@ ## 1.45-RC1 (2018/10/28) -* Upgrade to LibreNMS 1.45 +* LibreNMS 1.45 ## 1.44-RC1 (2018/10/17) -* Upgrade to LibreNMS 1.44 +* LibreNMS 1.44 * Add `busybox-extras` and `bind-tools` packages ## 1.43-RC5 (2018/09/29) @@ -75,15 +79,15 @@ ## 1.43-RC1 (2018/09/10) -* Upgrade to LibreNMS 1.43 +* LibreNMS 1.43 ## 1.42.01-RC1 (2018/08/05) -* Upgrade to LibreNMS 1.42.01 +* LibreNMS 1.42.01 ## 1.42-RC1 (2018/08/02) -* Upgrade to LibreNMS 1.42 +* LibreNMS 1.42 * Add syslog-ng support ## 1.41-RC1 (2018/07/07) diff --git a/Dockerfile b/Dockerfile index 25d5b62..fcc4414 100644 --- a/Dockerfile +++ b/Dockerfile @@ -84,7 +84,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.49" \ +ENV LIBRENMS_VERSION="1.50" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From 46da1233046676afbc70ebcd8519764867ce092d Mon Sep 17 00:00:00 2001 From: Jens Forstmann <19289807+JensForstmann@users.noreply.github.com> Date: Wed, 3 Apr 2019 13:34:42 +0200 Subject: [PATCH 080/523] Set memory limit in php.ini (#24) --- entrypoint.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/entrypoint.sh b/entrypoint.sh index 15853ae..1176949 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -83,6 +83,8 @@ echo "Setting PHP-FPM configuration..." sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \ -e "s/@UPLOAD_MAX_SIZE@/$UPLOAD_MAX_SIZE/g" \ /tpls/etc/php7/php-fpm.d/www.conf > /etc/php7/php-fpm.d/www.conf +echo "Setting PHP INI configuration..." +sed -i -e "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|" /etc/php7/php.ini # OpCache echo "Setting OpCache configuration..." From 8b9d2d1e59956ae0d28c22fc7ffba8623499ece9 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 3 Apr 2019 13:36:31 +0200 Subject: [PATCH 081/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ebff236..a61761a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.50-RC2 (2019/04/03) + +* MEMORY_LIMIT not used by poller (PR #24) + ## 1.50-RC1 (2019/04/01) * LibreNMS 1.50 From 85c491fe3202c1be057dba0a02fac8fc6208254c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 7 Apr 2019 18:04:31 +0200 Subject: [PATCH 082/523] Add REAL_IP_FROM and REAL_IP_HEADER environment variables --- README.md | 2 ++ assets/tpls/etc/nginx/nginx.conf | 4 ++-- entrypoint.sh | 6 +++++- examples/compose/librenms.env | 2 ++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b1a4a1b..a4fa3c6 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,8 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * `MEMORY_LIMIT` : PHP memory limit (default `256M`) * `UPLOAD_MAX_SIZE` : Upload max size (default `16M`) * `OPCACHE_MEM_SIZE` : PHP OpCache memory consumption (default `128`) +* `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`) #### (Distributed) Poller diff --git a/assets/tpls/etc/nginx/nginx.conf b/assets/tpls/etc/nginx/nginx.conf index d3f22d8..ea57a09 100644 --- a/assets/tpls/etc/nginx/nginx.conf +++ b/assets/tpls/etc/nginx/nginx.conf @@ -30,8 +30,8 @@ http { tcp_nodelay on; ## Handling of IPs in proxied and load balancing situations - set_real_ip_from 0.0.0.0/32; - real_ip_header X-Forwarded-For; + set_real_ip_from @REAL_IP_FROM@; + real_ip_header @REAL_IP_HEADER@; ## Hide the Nginx version number server_tokens off; diff --git a/entrypoint.sh b/entrypoint.sh index 1176949..6e22e98 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -11,6 +11,8 @@ PGID=${PGID:-1000} MEMORY_LIMIT=${MEMORY_LIMIT:-256M} UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-16M} OPCACHE_MEM_SIZE=${OPCACHE_MEM_SIZE:-128} +REAL_IP_FROM=${REAL_IP_FROM:-"0.0.0.0/32"} +REAL_IP_HEADER=${REAL_IP_HEADER:-"X-Forwarded-For"} MEMCACHED_PORT=${MEMCACHED_PORT:-11211} RRDCACHED_PORT=${RRDCACHED_PORT:-42217} @@ -93,7 +95,9 @@ sed -e "s/@OPCACHE_MEM_SIZE@/$OPCACHE_MEM_SIZE/g" \ # Nginx echo "Setting Nginx configuration..." -sed -e "s/@UPLOAD_MAX_SIZE@/$UPLOAD_MAX_SIZE/g" \ +sed -e "s#@UPLOAD_MAX_SIZE@#$UPLOAD_MAX_SIZE#g" \ + -e "s#@REAL_IP_FROM@#$REAL_IP_FROM#g" \ + -e "s#@REAL_IP_HEADER@#$REAL_IP_HEADER#g" \ /tpls/etc/nginx/nginx.conf > /etc/nginx/nginx.conf # SNMP diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index 7f06b5f..18d809a 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -1,6 +1,8 @@ MEMORY_LIMIT=256M UPLOAD_MAX_SIZE=16M OPCACHE_MEM_SIZE=128 +REAL_IP_FROM=0.0.0.0/32 +REAL_IP_HEADER=X-Forwarded-For LIBRENMS_POLLER_THREADS=16 LIBRENMS_POLLER_INTERVAL=5 From e909687d3ec0ed9b0a33dfdb515596ad36c8b094 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 7 Apr 2019 18:08:52 +0200 Subject: [PATCH 083/523] Use python3 for snmp-scan (Issue #25) --- CHANGELOG.md | 5 +++++ Dockerfile | 1 + 2 files changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a61761a..e670631 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.50-RC3 (2019/04/06) + +* Use python3 for snmp-scan (Issue #25) +* Add `REAL_IP_FROM` and `REAL_IP_HEADER` environment variables (Issue #22) + ## 1.50-RC2 (2019/04/03) * MEMORY_LIMIT not used by poller (PR #24) diff --git a/Dockerfile b/Dockerfile index fcc4414..2049646 100644 --- a/Dockerfile +++ b/Dockerfile @@ -103,6 +103,7 @@ RUN mkdir -p /opt \ && mkdir -p /data ${LIBRENMS_PATH}/config.d /var/log/supervisord \ && cp ${LIBRENMS_PATH}/config.php.default ${LIBRENMS_PATH}/config.php \ && cp ${LIBRENMS_PATH}/snmpd.conf.example /etc/snmp/snmpd.conf \ + && sed -i "1s|.*|#!/usr/bin/env python3|" ${LIBRENMS_PATH}/snmp-scan.py \ && echo "foreach (glob(\"${DATA_PATH}/config/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ && chown -R librenms. ${DATA_PATH} ${LIBRENMS_PATH} \ From cd44876e09ad96e47e8e904f5de02ee2b74ded5c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 7 Apr 2019 18:15:37 +0200 Subject: [PATCH 084/523] Update CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e670631..3d0419d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 1.50-RC3 (2019/04/06) +## 1.50-RC3 (2019/04/07) * Use python3 for snmp-scan (Issue #25) * Add `REAL_IP_FROM` and `REAL_IP_HEADER` environment variables (Issue #22) From 68d3c1030e9444ee2fafb2e5694d1d8e513bbe6f Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 13 Apr 2019 02:47:24 +0200 Subject: [PATCH 085/523] Add LOG_IP_VAR environment variable (Issue #22) --- CHANGELOG.md | 4 ++++ README.md | 1 + assets/tpls/etc/nginx/nginx.conf | 7 ++++++- entrypoint.sh | 2 ++ examples/compose/librenms.env | 1 + 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d0419d..89156ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.50-RC4 (2019/04/13) + +* Add `LOG_IP_VAR` environment variable (Issue #22) + ## 1.50-RC3 (2019/04/07) * Use python3 for snmp-scan (Issue #25) diff --git a/README.md b/README.md index a4fa3c6..aa7abc9 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * `OPCACHE_MEM_SIZE` : PHP OpCache memory consumption (default `128`) * `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 in Nginx. If you use a reverse proxy you can set `http_x_forwarded_for` example. (default `remote_addr`) #### (Distributed) Poller diff --git a/assets/tpls/etc/nginx/nginx.conf b/assets/tpls/etc/nginx/nginx.conf index ea57a09..f84cf91 100644 --- a/assets/tpls/etc/nginx/nginx.conf +++ b/assets/tpls/etc/nginx/nginx.conf @@ -14,7 +14,6 @@ events { http { include mime.types; default_type application/octet-stream; - access_log /proc/1/fd/1; aio threads; sendfile on; @@ -33,6 +32,12 @@ http { set_real_ip_from @REAL_IP_FROM@; real_ip_header @REAL_IP_HEADER@; + # Log + log_format main '$@LOG_IP_VAR@ - $remote_user [$time_local] ' + '"$request" $status $body_bytes_sent ' + '"$http_referer" "$http_user_agent"'; + access_log /proc/1/fd/1 main; + ## Hide the Nginx version number server_tokens off; diff --git a/entrypoint.sh b/entrypoint.sh index 6e22e98..b4b9d93 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -13,6 +13,7 @@ UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-16M} OPCACHE_MEM_SIZE=${OPCACHE_MEM_SIZE:-128} REAL_IP_FROM=${REAL_IP_FROM:-"0.0.0.0/32"} REAL_IP_HEADER=${REAL_IP_HEADER:-"X-Forwarded-For"} +LOG_IP_VAR=${LOG_IP_VAR:-remote_addr} MEMCACHED_PORT=${MEMCACHED_PORT:-11211} RRDCACHED_PORT=${RRDCACHED_PORT:-42217} @@ -98,6 +99,7 @@ echo "Setting Nginx configuration..." sed -e "s#@UPLOAD_MAX_SIZE@#$UPLOAD_MAX_SIZE#g" \ -e "s#@REAL_IP_FROM@#$REAL_IP_FROM#g" \ -e "s#@REAL_IP_HEADER@#$REAL_IP_HEADER#g" \ + -e "s#@LOG_IP_VAR@#$LOG_IP_VAR#g" \ /tpls/etc/nginx/nginx.conf > /etc/nginx/nginx.conf # SNMP diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index 18d809a..d200733 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -3,6 +3,7 @@ UPLOAD_MAX_SIZE=16M OPCACHE_MEM_SIZE=128 REAL_IP_FROM=0.0.0.0/32 REAL_IP_HEADER=X-Forwarded-For +LOG_IP_VAR=http_x_forwarded_for LIBRENMS_POLLER_THREADS=16 LIBRENMS_POLLER_INTERVAL=5 From cc09f8a105fc72316dc59615d923016360ff61f8 Mon Sep 17 00:00:00 2001 From: Matus Kral Date: Mon, 15 Apr 2019 23:36:50 +0200 Subject: [PATCH 086/523] bind ipv6 (#27) currently only ipv4 socket is open. if container is pure ipv6, there is no way to connect: ``` root@kube-node-6:~# nsenter -t 20122 -n ip a 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ip6tnl0@NONE: mtu 1452 qdisc noop state DOWN group default qlen 1000 link/tunnel6 :: brd :: 4: eth0@if246: mtu 1500 qdisc noqueue state UP group default link/ether c2:a9:a6:c7:38:59 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet6 fde4:100:0:6::5c3/64 scope global valid_lft forever preferred_lft forever inet6 fe80::c0a9:a6ff:fec7:3859/64 scope link valid_lft forever preferred_lft forever root@kube-node-6:~# nsenter -t 20122 -n netstat -lnp Active Internet connections (only servers) ``` ``` root@kube-node-6:~# nsenter -t 20122 -n netstat -lnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 20286/nginx: master udp 0 0 0.0.0.0:161 0.0.0.0:* 20288/snmpd Active UNIX domain sockets (only servers) ``` --- assets/tpls/etc/nginx/nginx.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/assets/tpls/etc/nginx/nginx.conf b/assets/tpls/etc/nginx/nginx.conf index f84cf91..c01f77d 100644 --- a/assets/tpls/etc/nginx/nginx.conf +++ b/assets/tpls/etc/nginx/nginx.conf @@ -70,6 +70,7 @@ http { server { listen 80; + listen [::]:80; root /opt/librenms/html; index index.php; From adf440e0b0f09246a3e3f5df73e3010c13696dcd Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 15 Apr 2019 23:38:57 +0200 Subject: [PATCH 087/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ README.md | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89156ff..52b736a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.50-RC5 (2019/04/15) + +* Bind IPv6 (Issue #28) + ## 1.50-RC4 (2019/04/13) * Add `LOG_IP_VAR` environment variable (Issue #22) diff --git a/README.md b/README.md index aa7abc9..70b2334 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * `OPCACHE_MEM_SIZE` : PHP OpCache memory consumption (default `128`) * `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 in Nginx. If you use a reverse proxy you can set `http_x_forwarded_for` example. (default `remote_addr`) +* `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`) #### (Distributed) Poller From 7b65d4b8b7b8a0527865d9ef8df44b1010c94711 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 17 Apr 2019 20:31:49 +0200 Subject: [PATCH 088/523] LibreNMS 1.50.1 --- .editorconfig | 5 +---- .travis.yml | 2 +- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.editorconfig b/.editorconfig index acb43f7..b7801b2 100644 --- a/.editorconfig +++ b/.editorconfig @@ -3,15 +3,12 @@ root = true [*] indent_style = space -indent_size = 4 +indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -[{Dockerfile,*.sh,*.yml}] -indent_size = 2 - [assets/**] insert_final_newline = false diff --git a/.travis.yml b/.travis.yml index e35abaf..f98d16e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.50 + - VERSION=1.50.1 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index 52b736a..44a922f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.50.1-RC1 (2019/04/17) + +* LibreNMS 1.50.1 + ## 1.50-RC5 (2019/04/15) * Bind IPv6 (Issue #28) diff --git a/Dockerfile b/Dockerfile index 2049646..42de0f1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -84,7 +84,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.50" \ +ENV LIBRENMS_VERSION="1.50.1" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From dab6b5eaad626666a1edce1b5290611ff6e190d7 Mon Sep 17 00:00:00 2001 From: Johann Richard Date: Sun, 21 Apr 2019 02:44:17 +0200 Subject: [PATCH 089/523] Update Dockerfile (#29) * install `ipmitool` --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 42de0f1..f1bd8d3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,6 +28,7 @@ RUN apk --update --no-cache add \ git \ graphviz \ imagemagick \ + ipmitool \ monitoring-plugins \ mtr \ mysql-client \ From d1784efc3eba9bd00741045015ffca3ac0674a22 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 21 Apr 2019 02:45:54 +0200 Subject: [PATCH 090/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44a922f..cb8ddd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.50.1-RC2 (2019/04/21) + +* Add ipmitool (PR #29) + ## 1.50.1-RC1 (2019/04/17) * LibreNMS 1.50.1 From e997d7c1526e21e7d074aebf8b4eabb44681386c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 28 Apr 2019 20:35:50 +0200 Subject: [PATCH 091/523] Add large_client_header_buffers Nginx config --- CHANGELOG.md | 4 ++++ assets/tpls/etc/nginx/nginx.conf | 1 + 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb8ddd3..c19339d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.50.1-RC3 (2019/04/28) + +* Add `large_client_header_buffers` Nginx config + ## 1.50.1-RC2 (2019/04/21) * Add ipmitool (PR #29) diff --git a/assets/tpls/etc/nginx/nginx.conf b/assets/tpls/etc/nginx/nginx.conf index c01f77d..0a2aebb 100644 --- a/assets/tpls/etc/nginx/nginx.conf +++ b/assets/tpls/etc/nginx/nginx.conf @@ -17,6 +17,7 @@ http { aio threads; sendfile on; + large_client_header_buffers 4 16k; ## Timeouts client_body_timeout 60; From 40e2a5b9994b8cb7922555567377e44917ed3018 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 28 Apr 2019 20:36:11 +0200 Subject: [PATCH 092/523] GitHub bug report tpl --- .github/ISSUE_TEMPLATE/bug_report.md | 39 ++++++++++++++++++++++++++++ .github/SUPPORT.md | 29 +++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/SUPPORT.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..439078b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,39 @@ +--- +name: Bug report +about: Create a report to help us improve +--- + +### Behaviour + +#### Steps to reproduce this issue + +1. +2. +3. + +#### Expected behaviour + +> Tell me what should happen + +#### Actual behaviour + +> Tell me what happens instead + +### Configuration + +* Docker version (type `docker --version`) : +* Docker compose version if applicable (type `docker-compose --version`) : +* Platform (Debian 9, Ubuntu 18.04, ...) : +* Include all necessary configuration files : `docker-compose.yml`, `.env`, ... + +### Docker info + +``` +> Output of command `docker info` +``` + +### Logs + +``` +> Container logs (set LOG_LEVEL to debug if applicable) +``` diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md new file mode 100644 index 0000000..43fac54 --- /dev/null +++ b/.github/SUPPORT.md @@ -0,0 +1,29 @@ +# Support [![](https://isitmaintained.com/badge/resolution/librenms/docker.svg)](https://isitmaintained.com/project/librenms/docker) + +## Reporting an issue + +Please do a search in [open issues](https://github.com/librenms/docker/issues?utf8=%E2%9C%93&q=) to see if the issue or feature request has already been filed. + +If you find your issue already exists, make relevant comments and add your [reaction](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments). Use a reaction in place of a "+1" comment. + +:+1: - upvote + +:-1: - downvote + +If you cannot find an existing issue that describes your bug or feature, submit an issue using the guidelines below. + +## Writing good bug reports and feature requests + +File a single issue per problem and feature request. + +* Do not enumerate multiple bugs or feature requests in the same issue. +* Do not add your issue as a comment to an existing issue unless it's for the identical input. Many issues look similar, but have different causes. + +The more information you can provide, the more likely someone will be successful reproducing the issue and finding a fix. + +You are now ready to [create a new issue](https://github.com/librenms/docker/issues/new/choose)! + +## Closure policy + +* Issues that don't have the information requested above (when applicable) will be closed immediately and the poster directed to the support guidelines. +* Issues that go a week without a response from original poster are subject to closure at my discretion. From 9be7ec161babd55241d08922ae37db3eeab1d754 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 1 May 2019 17:43:09 +0200 Subject: [PATCH 093/523] Remove MicroBadger --- .travis.yml | 1 - README.md | 2 +- build.sh | 5 ----- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index f98d16e..3174836 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,6 @@ env: - QUAY_USERNAME=librenms - QUAY_REPONAME=librenms - QUAY_LOGIN=librenms+travis - - MICROBADGER_HOOK=https://hooks.microbadger.com/images/librenms/librenms/kc3ZQD3Sw3UBxKiCX9S3ZpiFMC8= - secure: I9FQ/3FSXYcFaMKM5l59307WUKDmtNMsURZY5GdxH0pS4nKYtLx9URhtR96/7YdyppzXFxW5hI9ooDm5kEvaapuFKnMltLLkFAyNKWUP2QbSq8/PdZhS5R6RCvdv4Eg8cIvS04R1u1effgbdsqg5w9CM3+WYgLnzbMX9oWcGrUzlo0PZAMeL/eTimOLi77esxYSQz9uss2lE4fmXOFnvAqlHSyfGgboHMf1ccL9y051CxQZwJHFtXuamFzoPipO/mxKkJ94Mgx6KRKlfj86bE3YC5IFg2GKFR8aANzGIE5fD0leJy8FAgXzHqxncaPws9W9EDsvm72sHy9ucZ3qd3hJv+94o1mpN2UCTH53vJfqS+FYZ1LQYGwC6OCetQbK2ydag2dFAKxmEhJ9id4KlLMDmR0S0WfQV544a9Tdy9Ej88NfpdyDRBtNkNHbAs2OKa7IP4hLOw0wq/XYAWksHoqncDuyBatBz2mcKY+lZ+oESfDOOXLDEjzhb0hzQjfjlm/J6pixtZ+WtrDpy2lwN+3gI+reRoUf06loTC5TtGe9wAvpx3m7Zj/bbD8yXHcSxRg5OKdKO2GU6WJlwdgmMWVLBlxoGeCV0EpughM/7Ho7YZ1t3PoyiezxMWmPTOIIB59xJjxPl+eKvO4njtKfCNvXJIJl82B7SGT1Pnq7NzOI= # DOCKER_PASSWORD - secure: eoujj2pOklqQNSBmeKXSegi8PkNa57T6gCX2SJuTpuscNM7RBecZz+0ET9VhOpTxprvph43o8vB7QuvJFwM8AveoOy1GeySlRyt24Wilke3Gkg5h4NRGh25sdZZstyIhrQg7g4YS9fDV8BkcwU3RRJE9u5Cg5M3cl7H4m09Oj4g8xJZ3xJ4equZQERyq92KiKYpGgTMLDhMA65n9cyT41Wa0N9Ri52E3blrzWw8WYEGjj8CTkcgyJrWXgcbu72VFyQagQJ7ojitcwE1pci0SFonHtYJjML8Ig6MNlrrAknx0Tpx3x4OiErfU6pu5k3HiCM2OSBrqwBnNu9kz9cotLHxq8CT0ePQx2H71aew0ZJW14HOTTGHrrwbHfOhwnqI7npOY05RD97DZT0WlKInzUXDoyzypSJv4UHtjBpDa6zpoB34bcqqf+tOrtpkwO0ThxQVQPkd/ypZH6dmmO0RjP+QClByntHPefFLen8rKFRclu9FUU/7l4Lar4v0wSBYgnM58SN9PS+hssibZzrTdWTR5i82Xr8gk+qCaogpx8iE+OsBDe3yzr0IWfap+iG59V1I8+P+RMBNl4Lc0yS2gbEE30+Rhb4/vtUZlTGoVAEzPCWglASZOC/hfISPmCGkqI/jwjv38itrxQR5xrO/g0ecOi+ue4gl80tmWJnS8NRM= # QUAY_PASSWORD diff --git a/README.md b/README.md index 70b2334..d82d325 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@

- Version + Latest Version Build Status Docker Stars Docker Pulls diff --git a/build.sh b/build.sh index 306b8ea..31bc9c9 100755 --- a/build.sh +++ b/build.sh @@ -118,11 +118,6 @@ if [[ ! -z ${DOCKER_PASSWORD} ]]; then docker tag ${BUILD_TAG} ${DOCKER_USERNAME}/${DOCKER_REPONAME}:${VERSION} fi docker push ${DOCKER_USERNAME}/${DOCKER_REPONAME} - if [[ ! -z ${MICROBADGER_HOOK} ]]; then - echo "Call MicroBadger hook" - curl -X POST ${MICROBADGER_HOOK} - echo - fi echo fi if [[ ! -z ${QUAY_PASSWORD} ]]; then From d801cf45ce186ac12e727ca50fb883cf0838d2a8 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 1 May 2019 17:49:38 +0200 Subject: [PATCH 094/523] LibreNMS 1.51 --- .travis.yml | 2 +- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3174836..2782f0c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.50.1 + - VERSION=1.51 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index c19339d..72d2e9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.51-RC1 (2019/05/01) + +* LibreNMS 1.51 + ## 1.50.1-RC3 (2019/04/28) * Add `large_client_header_buffers` Nginx config diff --git a/Dockerfile b/Dockerfile index f1bd8d3..b05a30a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -85,7 +85,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.50.1" \ +ENV LIBRENMS_VERSION="1.51" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From 85df6834474bf17eec0378678a5a2fb8749af533 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 1 May 2019 20:51:48 +0200 Subject: [PATCH 095/523] Fix snmpd command --- assets/etc/supervisord/snmpd.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/etc/supervisord/snmpd.conf b/assets/etc/supervisord/snmpd.conf index d3a1ef4..4335238 100644 --- a/assets/etc/supervisord/snmpd.conf +++ b/assets/etc/supervisord/snmpd.conf @@ -1,5 +1,5 @@ [program:snmpd] -command = /usr/sbin/snmpd -f -c /etc/snmpd.conf +command = /usr/sbin/snmpd -f -c /etc/snmp/snmpd.conf startentries = 0 stdout_logfile = /proc/1/fd/1 stdout_logfile_maxbytes = 0 From 539a10f2332cea5db17e5f3cc5d6bfe1277aae9e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 1 May 2019 21:43:30 +0200 Subject: [PATCH 096/523] Sidecar cron and syslog-ng are now respectively enabled through SIDECAR_CRON and SIDECAR_SYSLOGNG env vars --- CHANGELOG.md | 9 +++++++++ README.md | 23 +++++++++++++++++------ assets/etc/supervisord/cron.conf | 6 ++++++ assets/etc/supervisord/syslog-ng.conf | 6 ++++++ entrypoint.sh | 17 +++++++++++------ examples/compose/docker-compose.yml | 9 +++------ 6 files changed, 52 insertions(+), 18 deletions(-) create mode 100644 assets/etc/supervisord/cron.conf create mode 100644 assets/etc/supervisord/syslog-ng.conf diff --git a/CHANGELOG.md b/CHANGELOG.md index 72d2e9b..e8c17f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 1.51-RC2 (2019/05/01) + +* Sidecar cron and syslog-ng are now respectively enabled through `SIDECAR_CRON` and `SIDECAR_SYSLOGNG` env vars +* Fix snmpd command + +> :warning: **UPGRADE NOTES** +> Sidecar cron and syslog-ng are now respectively handled with `SIDECAR_CRON` and `SIDECAR_SYSLOGNG` env vars +> See docker-compose example and README for more info. + ## 1.51-RC1 (2019/05/01) * LibreNMS 1.51 diff --git a/README.md b/README.md index d82d325..9d4f1fc 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,9 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ #### Cron +> :warning: Only used if you enabled and run a [sidecar cron container](#crons) + +* `SIDECAR_CRON` : Set to `1` to enable sidecar cron mode for this container (default `0`) * `LIBRENMS_CRON_DISCOVERY_ENABLE` : Enable LibreNMS discovery for this container cronjobs (default `true`) * `LIBRENMS_CRON_DAILY_ENABLE` : Enable LibreNMS daily script for this container cronjobs (default `true`) * `LIBRENMS_CRON_ALERTS_ENABLE` : Enable LibreNMS alerts generation for this container cronjobs (default `true`) @@ -72,6 +75,12 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * `LIBRENMS_CRON_CHECK_SERVICES_ENABLE` : Enable LibreNMS service checks for this container cronjobs (default `true`) * `LIBRENMS_CRON_POLLER_ENABLE` : Enable LibreNMS polling for this container cronjobs (default `true`) +#### Syslog-ng + +> :warning: Only used if you enabled and run a [sidecar syslog-ng container](#syslog-ng) + +* `SIDECAR_SYSLOGNG` : Set to `1` to enable sidecar syslog-ng mode for this container (default `0`) + #### Database * `DB_HOST` : MySQL database hostname / IP address @@ -96,7 +105,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ ### Ports * `80` : HTTP port -* `514 514/udp` : Syslog ports +* `514 514/udp` : Syslog ports (Only used if you enabled and run a [sidecar syslog-ng container](#syslog-ng)) ## Use this image @@ -194,13 +203,14 @@ $ docker-compose exec --user librenms librenms php build-base.php ### Crons -If you want to enable the cron job, you have to run a "sidecar" container like in the [docker-compose file](examples/compose/docker-compose.yml) or run a simple container like this : +If you want to enable the cronjob, you have to run a "sidecar" container (see cron service in [docker-compose.yml](examples/compose/docker-compose.yml) example) or run a simple container like this : ```bash docker run -d --name librenms_cron \ --env-file $(pwd)/librenms.env \ + -e SIDECAR_CRON=1 \ -v librenms:/data \ - librenms/librenms:latest /usr/local/bin/cron + librenms/librenms:latest ``` > `-v librenms:/data`
@@ -208,14 +218,15 @@ docker run -d --name librenms_cron \ ### Syslog-ng -If you want to enable syslog-ng, you have to run a "sidecar" container like in the [docker-compose file](examples/compose/docker-compose.yml) or run a simple container like this : +If you want to enable syslog-ng, you have to run a "sidecar" container (see syslog-ng service in [docker-compose.yml](examples/compose/docker-compose.yml) example) or run a simple container like this : ```bash docker run -d --name librenms_syslog \ --env-file $(pwd)/librenms.env \ + -e SIDECAR_SYSLOGNG=1 \ -p 514 -p 514/udp \ -v librenms:/data \ - librenms/librenms:latest /usr/sbin/syslog-ng -F + librenms/librenms:latest ``` You have to create a configuration file to enable syslog in LibreNMS too. Create a file called for example `/data/config/syslog.php` with this content : @@ -229,7 +240,7 @@ $config['enable_syslog'] = 1; You can add a custom Monitoring (Nagios) plugin in `/data/monitoring-plugins/`. -> ⚠️ Container has to be restarted to propagate changes +> :warning: Container has to be restarted to propagate changes ## Upgrade diff --git a/assets/etc/supervisord/cron.conf b/assets/etc/supervisord/cron.conf new file mode 100644 index 0000000..0088ba0 --- /dev/null +++ b/assets/etc/supervisord/cron.conf @@ -0,0 +1,6 @@ +[program:cron] +command = /usr/local/bin/cron +stdout_logfile = /dev/stdout +stdout_logfile_maxbytes = 0 +stderr_logfile = /dev/stderr +stderr_logfile_maxbytes = 0 \ No newline at end of file diff --git a/assets/etc/supervisord/syslog-ng.conf b/assets/etc/supervisord/syslog-ng.conf new file mode 100644 index 0000000..3a72e45 --- /dev/null +++ b/assets/etc/supervisord/syslog-ng.conf @@ -0,0 +1,6 @@ +[program:syslog-ng] +command = /usr/sbin/syslog-ng -F +stdout_logfile = /dev/stdout +stdout_logfile_maxbytes = 0 +stderr_logfile = /dev/stderr +stderr_logfile_maxbytes = 0 \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh index b4b9d93..189c5d6 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -15,9 +15,6 @@ REAL_IP_FROM=${REAL_IP_FROM:-"0.0.0.0/32"} REAL_IP_HEADER=${REAL_IP_HEADER:-"X-Forwarded-For"} LOG_IP_VAR=${LOG_IP_VAR:-remote_addr} -MEMCACHED_PORT=${MEMCACHED_PORT:-11211} -RRDCACHED_PORT=${RRDCACHED_PORT:-42217} - LIBRENMS_POLLER_THREADS=${LIBRENMS_POLLER_THREADS:-16} LIBRENMS_POLLER_INTERVAL=${LIBRENMS_POLLER_INTERVAL:-5} @@ -27,6 +24,7 @@ LIBRENMS_DISTRIBUTED_POLLER_GROUP=${LIBRENMS_DISTRIBUTED_POLLER_GROUP:-'0'} LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST:-${MEMCACHED_HOST}} LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT:-${MEMCACHED_PORT}} +SIDECAR_CRON=${SIDECAR_CRON:-0} LIBRENMS_CRON_DISCOVERY_ENABLE=${LIBRENMS_CRON_DISCOVERY_ENABLE:-true} LIBRENMS_CRON_DAILY_ENABLE=${LIBRENMS_CRON_DAILY_ENABLE:-true} LIBRENMS_CRON_ALERTS_ENABLE=${LIBRENMS_CRON_ALERTS_ENABLE:-true} @@ -35,6 +33,8 @@ LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=${LIBRENMS_CRON_BILLING_CALCULATE_ENABLE: LIBRENMS_CRON_CHECK_SERVICES_ENABLE=${LIBRENMS_CRON_CHECK_SERVICES_ENABLE:-true} LIBRENMS_CRON_POLLER_ENABLE=${LIBRENMS_CRON_POLLER_ENABLE:-true} +SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} + DB_PORT=${DB_PORT:-3306} DB_NAME=${DB_NAME:-librenms} DB_USER=${DB_USER:-librenms} @@ -237,13 +237,14 @@ for mon_plugin in ${mon_plugins}; do ln -sf ${DATA_PATH}/monitoring-plugins/${mon_plugin} /usr/lib/monitoring-plugins/${mon_plugin} done -# Sidecar cron container ? -if [ "$1" == "/usr/local/bin/cron" ]; then +# Sidecar cron container +if [ "$SIDECAR_CRON" = "1" ]; then echo ">>" echo ">> Sidecar cron container detected" echo ">>" # Init + rm /etc/supervisord/syslog-ng.conf if [ -z "$CRONTAB_PATH" ]; then >&2 echo "ERROR: CRONTAB_PATH must be defined" exit 1 @@ -291,15 +292,19 @@ EOL # Fix crontab perms echo "Fixing crontab permissions..." chmod -R 0644 ${CRONTAB_PATH} -elif [ "$1" == "/usr/sbin/syslog-ng" ]; then +elif [ "$SIDECAR_SYSLOGNG" = "1" ]; then echo ">>" echo ">> Sidecar syslog-ng container detected" echo ">>" # Init + rm /etc/supervisord/cron.conf mkdir -p ${DATA_PATH}/syslog-ng /run/syslog-ng chown -R librenms. ${DATA_PATH}/syslog-ng /run/syslog-ng else + # Init + rm /etc/supervisord/cron.conf /etc/supervisord/syslog-ng.conf + echo "Waiting ${DB_TIMEOUT}s for database to be ready..." counter=1 while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 0f8ff5a..2d630f4 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.2" +version: "3.5" services: traefik: @@ -123,8 +123,6 @@ services: container_name: librenms_cron domainname: example.com hostname: librenms - command: - - "/usr/local/bin/cron" depends_on: - librenms volumes: @@ -138,6 +136,7 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=30" + - "SIDECAR_CRON=1" env_file: - "./librenms.env" restart: always @@ -147,9 +146,6 @@ services: container_name: librenms_syslog domainname: example.com hostname: librenms - command: - - "/usr/sbin/syslog-ng" - - "-F" depends_on: - librenms ports: @@ -170,6 +166,7 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=30" + - "SIDECAR_SYSLOGNG=1" env_file: - "./librenms.env" restart: always From 41c57487994688d9bd6640d6eab6724994376044 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 1 May 2019 22:13:08 +0200 Subject: [PATCH 097/523] Fix supervisord conf --- entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 189c5d6..882d15f 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -244,7 +244,7 @@ if [ "$SIDECAR_CRON" = "1" ]; then echo ">>" # Init - rm /etc/supervisord/syslog-ng.conf + rm /etc/supervisord/nginx.conf /etc/supervisord/php.conf /etc/supervisord/snmpd.conf /etc/supervisord/syslog-ng.conf if [ -z "$CRONTAB_PATH" ]; then >&2 echo "ERROR: CRONTAB_PATH must be defined" exit 1 @@ -298,7 +298,7 @@ elif [ "$SIDECAR_SYSLOGNG" = "1" ]; then echo ">>" # Init - rm /etc/supervisord/cron.conf + rm /etc/supervisord/cron.conf /etc/supervisord/nginx.conf /etc/supervisord/php.conf /etc/supervisord/snmpd.conf mkdir -p ${DATA_PATH}/syslog-ng /run/syslog-ng chown -R librenms. ${DATA_PATH}/syslog-ng /run/syslog-ng else From 589e681bf1d4fb93666f29dc1d52832894d15fbf Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 1 May 2019 22:15:36 +0200 Subject: [PATCH 098/523] Update README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9d4f1fc..1d38b08 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ #### Syslog-ng -> :warning: Only used if you enabled and run a [sidecar syslog-ng container](#syslog-ng) +> :warning: Only used if you enabled and run a [sidecar syslog-ng container](#syslog-ng-1) * `SIDECAR_SYSLOGNG` : Set to `1` to enable sidecar syslog-ng mode for this container (default `0`) @@ -105,7 +105,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ ### Ports * `80` : HTTP port -* `514 514/udp` : Syslog ports (Only used if you enabled and run a [sidecar syslog-ng container](#syslog-ng)) +* `514 514/udp` : Syslog ports (Only used if you enabled and run a [sidecar syslog-ng container](#syslog-ng-1)) ## Use this image From 383885ef52353d4300f6123ad62853561a41d029 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 28 May 2019 09:31:25 +0200 Subject: [PATCH 099/523] LibreNMS 1.52 --- .travis.yml | 2 +- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2782f0c..f56cbfe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.51 + - VERSION=1.52 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index e8c17f0..7bf7bee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.52-RC1 (2019/05/28) + +* LibreNMS 1.52 + ## 1.51-RC2 (2019/05/01) * Sidecar cron and syslog-ng are now respectively enabled through `SIDECAR_CRON` and `SIDECAR_SYSLOGNG` env vars diff --git a/Dockerfile b/Dockerfile index b05a30a..42af258 100644 --- a/Dockerfile +++ b/Dockerfile @@ -85,7 +85,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.51" \ +ENV LIBRENMS_VERSION="1.52" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From a8dbf33c9e2e71822c2357404f75319e2e5f6433 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 24 Jun 2019 21:40:53 +0200 Subject: [PATCH 100/523] Add FUNDING --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..160cce5 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +custom: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=962TPYQKMQ2UE From d4851e8a9d24697341944f0fef38016b606349ba Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 1 Jul 2019 22:31:02 +0200 Subject: [PATCH 101/523] Alpine Linux 3.10 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 42af258..ef5dfb8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.9 +FROM alpine:3.10 ARG BUILD_DATE ARG VCS_REF From 5feee2895817fa19cc16b878c1e5cc7ebb307333 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 1 Jul 2019 22:31:47 +0200 Subject: [PATCH 102/523] LibreNMS 1.53 --- .travis.yml | 2 +- CHANGELOG.md | 5 +++++ Dockerfile | 2 +- README.md | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index f56cbfe..2694794 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.52 + - VERSION=1.53 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bf7bee..d442bca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.53-RC1 (2019/07/01) + +* LibreNMS 1.53 +* Alpine Linux 3.10 + ## 1.52-RC1 (2019/05/28) * LibreNMS 1.52 diff --git a/Dockerfile b/Dockerfile index ef5dfb8..442da19 100644 --- a/Dockerfile +++ b/Dockerfile @@ -85,7 +85,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.52" \ +ENV LIBRENMS_VERSION="1.53" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" diff --git a/README.md b/README.md index 1d38b08..3795404 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ ### Included -* Alpine Linux 3.9, Nginx, PHP 7.2 +* Alpine Linux 3.10, Nginx, PHP 7.3 * Cron tasks as a ["sidecar" container](#crons) * Syslog-ng support through a ["sidecar" container](#syslog-ng) * Ability to configure [distributed polling](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) From 5ec49deacd745b3e1ad986ac91a80d9a6771fb46 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 2 Jul 2019 14:44:42 +0200 Subject: [PATCH 103/523] LibreNMS 1.53.1 --- .travis.yml | 2 +- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2694794..6fa0300 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.53 + - VERSION=1.53.1 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index d442bca..8387f65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.53.1-RC1 (2019/07/02) + +* LibreNMS 1.53.1 + ## 1.53-RC1 (2019/07/01) * LibreNMS 1.53 diff --git a/Dockerfile b/Dockerfile index 442da19..9449dc1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -85,7 +85,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.53" \ +ENV LIBRENMS_VERSION="1.53.1" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From 7cca9695e45a64a5aa443e400ab36b846d5f9bdc Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 25 Jul 2019 18:44:17 +0200 Subject: [PATCH 104/523] Update README --- .github/FUNDING.yml | 1 + .res/patreon.png | Bin 0 -> 3918 bytes README.md | 2 ++ 3 files changed, 3 insertions(+) create mode 100644 .res/patreon.png diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 160cce5..0e58149 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1,2 @@ +patreon: crazymax custom: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=962TPYQKMQ2UE diff --git a/.res/patreon.png b/.res/patreon.png new file mode 100644 index 0000000000000000000000000000000000000000..6848a1fc96934e073c63106c3ba0746278a01f8a GIT binary patch literal 3918 zcmV-U53%rxP)30=H7SEYE^JV-t{s;4MzRiCyUmZCpD6-7Bj+2EovM7-VVV8jHAP@wi1QbxV zAyJe~L3RNFkxd0zf`DN&AYIip_jjwSy8Cs%m%NvTEOejqJCN?`s@v7Sx^?T`Tm6cv zs;Y|OFuk(kv4&x#z0VBjSLYOWKSgLJxCE6V#Y2Saaqkqk2u^~V*?1c{F?n?5ANQ2M zQqo-f)cFqZFey?*0B-Ikj)JQ>2|ahz8-Hmmd$!(5HF1iL4;NeoXJZLX7anga?RlUB z2$~{As{zh}yCFhP8eRE^#D5im z>h@#^i@QIWUp=q=OF7ftRASjIB~~m@;=Sq0nKWEEgL=1nho$J)0GEp#9fe7x!k7Q? zPxYt2JrTlR|NcbF_m(`RoH^r_JbFO6_wK5=!@Ye=$=zF(GjV9!oVnwb*tA-S z`qj!={El*l^zr3bJWYw(*~%HyKYH)H3Hn;~Nd5Ql7y0iHFaXDw)AgtP`zE{=Dd#Mz zR?f&*<7F)Cshk<3l~}i2$<6DOShJJ{^{{ZAKzZM2`*@x)1N<^?yb>*wDa*_;Ex(^d zQ^U`mwOq9>H|2GGZqRet+a{%D`#u>ogV2e2Hwq$j#j8plKcrkKRcj7c2qkxXs+_?E zbj0A^N}f1EmAK(Lo31No++gMOe})GR4zY4!GoAcuRxveHN-}~7ov1Ra1Y?&BBi@iH&)~WNc zcDXh&6Xam~5qjJZ8tu0VBD3wZ3qMhZ^lPC9hlxEkg0PGwg*n5gOCGOE#o?>n6Wk9%w6c9hT6-(Pc<;8avy)dzS|T2xiGS z;MsUW&#Vd$pa7v^H#5*SwIg?J(ONuVLc{cd$;18d^;YE!?4{gmSM&mp7NBy&imZgr zJd(Db+lA0#QFUYm-`2x*9OaBEZoRC~k`soqhrtkAeDXdKx+fEo|NeMc4582Jm$mcr z2%)Vk_wJDQ<5ZW2>qH>#mW0Oj3UZ>l~Ismg#4nkuw%rlEY$ybk4|0-i<>Eml}v#1Q39Mu)tQ!?{N^ zheVL11^KX8k_UE?cJKlZBmbk^>)MVL%jfGd-V4FB4L6)K^xs?#cCJ1zI8YKHbYM}K zmCzZB!iangYjio9HSmAdvKSyFuROTRzcznTJfTs?l9~RwnrRP=&={B)pxpPcht0F* zA~Y7eWTIGPF|9fkq1~T-UuB|%-qDa-K3ZtO9AHwAi2~oV{Tntkv@2`k-qy6>Yghm| z_x+bbgTmICFro2+<)J;+{e^a6ni#(_`>ZzxT#m6`4x08)9@E9)Uk?UBk|Z<$n|bdJ z6^u;gA~byL{5&2c&3I;E*?9^5cOvB1Bc2D>BE5v zcp=>Tzq8*J_9=&SgXN}-v@gdQJ2<=MUAtVjb@^h;b|cxL@FYm;C$>|KoX1EDPJb(0 zmh4d5elR4BV9M1-J}X&w{k};QHBw^Jc*SiMt%3 zVcR{3BW@9w75$&puCYPSA2oD`i858n?>3#!&8BDI>( z@E)|JZBslFXqQN#JpEm==0Hac5#-@ie$+-Q{T*554f|M-^FRp%9Sosy2qet6kUobSC?j^^2FvnN{VJjAYWXc!~NZ{~1_W!+veRK1aL};3wVr54# zhRDjY|9CpO2N1h#%*KN+Hbw}|bz_%Jz?a|k2@Sx}kJQA^*Yos_7tIkp(g@Hj9P+Ii z)F%1dpLCQ`9{VP~%v)uC_MK-xT9bq1uo`FLuw)30`p;|fVwZ^_183ubV5IR7mgkUn zW?n`igvJ0exzgUYs}>3UPNmI`%(j^pYY?vEW|I!67?Y#<4xi)aBV}QNIgbXRV>AO^ zKx9`*p&$*1P%^(vERbT`?7^v*!D-$Q8n(5a;*tA-eSHNHdY@iIAp|~qEYCVz|4O~D zP<;8BF1Jr-`(bA~|NY(J!U)}XL8ofcAe6hec|`k-?eq|#X&}4wdWF*Ry@LlP8uMzNzYvMUVIrMntSDGe#BCT;4+%{vp%Va2ckb0Ix+6`3 zekOuB$sgB735_x{M%$esNJY(;(3V^G?y;ulBpz=u1^e7+LkZK1-Dj)qPH^NP=dGd1 zY{P8BrUqoDg>c9X7&JLx=NfpCSFy0#Cu^2Z4v4ky`=p0!FN4tNd+c)ObNIf>_eWDg zCjq&w-X~y;|5vPDYNub5Jr^M~%B@)z+I7Knr-W`RMwM7Q+QrUqvSB%!j?Uvd5twSZ zqYvz~_rwtz_AkmLO6V~ItO>%tTWlgQz^vdcR-HNH3L-Rbk2-qLYHd3!1PSe#Jr>^X zo6yFCt@>LZyoRW*uxSju4bG&n#t|C8rz^bve~^T3-!CUUY`~}LxvpH#6=)LZ*^I!~ zi2|;vSVFVL>BBj~Nf8<*2G@1%N^H(F_U!TfhxQakXfvQaZOf)dafS_zz6d}b^S-Er zc){Ksc2?pAB+8h-;lmC_6|)fGIwA(ShZTGNI@v7b+OAA1do9#@}G}sZI zxl>y1-LAEHrr#Q<8pu&HdGGz>ibQSRTq0=w;r|2r+FZidwv67-I!2ZTc`YTu|x&ZuN z!3z9NVSNV>EJcdE0q%x=r!f5`*%X}>vA-mn{?>PjP6+c`-;Zbg@p=HiaKESgl~VlT zeFqRaMT!W(O|qFw!PQLuMhI;{E5^qfhL!d`GoW7`RdUMF5yez07*qoM6N<$f~+fDocker Pulls Docker Repository on Quay Code Quality +
Support me on Patreon Donate Paypal

@@ -257,6 +258,7 @@ All kinds of contributions are welcome :raised_hands:!
The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon:
But we're not gonna lie to each other, I'd rather you buy me a beer or two :beers:! +[![Support me on Patreon](.res/patreon.png)](https://www.patreon.com/crazymax) [![Paypal](.res/paypal.png)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=962TPYQKMQ2UE) ## License From ec94498f6b0af45c8d7e8cdb598c7b2838a276c6 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 25 Jul 2019 19:09:12 +0200 Subject: [PATCH 105/523] Add ipmitool location (Issue #34) --- CHANGELOG.md | 4 ++++ entrypoint.sh | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8387f65..037b9b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.53.1-RC2 (2019/07/25) + +* Add ipmitool location (Issue #34) + ## 1.53.1-RC1 (2019/07/02) * LibreNMS 1.53.1 diff --git a/entrypoint.sh b/entrypoint.sh index 882d15f..ae1f93f 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -161,6 +161,12 @@ cat > ${LIBRENMS_PATH}/config.d/fping.php < ${LIBRENMS_PATH}/config.d/ipmitool.php < ${LIBRENMS_PATH}/config.d/autoupdate.php < Date: Mon, 29 Jul 2019 06:28:22 +0200 Subject: [PATCH 106/523] Update README --- .github/FUNDING.yml | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 0e58149..dffc4d3 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ patreon: crazymax -custom: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=962TPYQKMQ2UE +custom: https://www.paypal.me/crazyws diff --git a/README.md b/README.md index 4f8622a..8e79e63 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Docker Repository on Quay Code Quality
Support me on Patreon - Donate Paypal + Donate Paypal

## About @@ -259,7 +259,7 @@ The most basic way to show your support is to star :star2: the project, or to ra But we're not gonna lie to each other, I'd rather you buy me a beer or two :beers:! [![Support me on Patreon](.res/patreon.png)](https://www.patreon.com/crazymax) -[![Paypal](.res/paypal.png)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=962TPYQKMQ2UE) +[![Paypal Donate](.res/paypal.png)](https://www.paypal.me/crazyws) ## License From 55b58c96abfd3794b5f788b7011dc3eb8e3e4da7 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 29 Jul 2019 06:28:39 +0200 Subject: [PATCH 107/523] LibreNMS 1.54 --- .travis.yml | 2 +- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6fa0300..98b405d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.53.1 + - VERSION=1.54 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index 037b9b5..af54219 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.54-RC1 (2019/07/29) + +* LibreNMS 1.54 + ## 1.53.1-RC2 (2019/07/25) * Add ipmitool location (Issue #34) diff --git a/Dockerfile b/Dockerfile index 9449dc1..27ec6bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -85,7 +85,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.53.1" \ +ENV LIBRENMS_VERSION="1.54" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From 9c777461981e34f83f106f66db1a95e0dbe9eda5 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 17 Aug 2019 22:54:52 +0200 Subject: [PATCH 108/523] Update README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8e79e63..4c9f5e4 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ 🐳 [LibreNMS](https://www.librenms.org/) Docker image based on Alpine Linux and Nginx.
It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/crazy-max/docker-librenms). If you are interested, [check out](https://hub.docker.com/r/crazymax/) his other 🐳 Docker images! +💡 Want to be notified of new releases? Check out 🔔 [Diun (Docker Image Update Notifier)](https://github.com/crazy-max/diun) project! + ## Features ### Included From 2e663c5c54124bb1c56bfe0b4483c9032a45682a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 17 Aug 2019 23:03:36 +0200 Subject: [PATCH 109/523] Update compose --- examples/compose/docker-compose.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 2d630f4..2a4099e 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -67,8 +67,6 @@ services: - "./rrd-journal:/data/journal" environment: - "TZ=${TZ}" - - "PUID=${PUID}" - - "PGID=${PGID}" - "LOG_LEVEL=LOG_INFO" - "WRITE_TIMEOUT=1800" - "WRITE_JITTER=1800" From a5f1e8412fd7a6fbe223b2dfe8f05f7a464d7265 Mon Sep 17 00:00:00 2001 From: bewing Date: Wed, 28 Aug 2019 12:42:47 -0500 Subject: [PATCH 110/523] Add Python3 modules (#36) Add python3 modules required for new Dispatcher Service --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 27ec6bb..e5ec657 100644 --- a/Dockerfile +++ b/Dockerfile @@ -109,6 +109,7 @@ RUN mkdir -p /opt \ && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ && chown -R librenms. ${DATA_PATH} ${LIBRENMS_PATH} \ && chown -R nginx. /var/lib/nginx /var/log/nginx /var/log/php7 /var/tmp/nginx \ + && pip3 install -r ${LIBRENMS_PATH}/requirements.txt \ && rm -rf /tmp/* COPY entrypoint.sh /entrypoint.sh From 7ba2b21ee70ed3bbf191402e2a990984c52c7ac1 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 28 Aug 2019 20:31:12 +0200 Subject: [PATCH 111/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index af54219..602c0c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.54-RC2 (2019/08/28) + +* Add python3 modules required for new [Dispatcher Service](https://docs.librenms.org/Extensions/Dispatcher-Service/) (PR #36) + ## 1.54-RC1 (2019/07/29) * LibreNMS 1.54 From 1fd872b086984856f3d040611b7373c731cd7052 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 4 Sep 2019 02:47:49 +0200 Subject: [PATCH 112/523] Update README --- .res/patreon.png | Bin 3918 -> 896 bytes .res/paypal.png | Bin 7643 -> 897 bytes README.md | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.res/patreon.png b/.res/patreon.png index 6848a1fc96934e073c63106c3ba0746278a01f8a..9880e74993a5e2a55511aa3bef66cf672934bb12 100644 GIT binary patch literal 896 zcmV-`1AqL9P)WdLMpZ7v`&AaiAKbS@w=FflnGFf%$bF*-3cAS*C2FfiP}5WDC%nBK>z>%32;bRa{vGf5&!@T5&_cPe*6Fc00d`2O+f$vv5yPll|l`3WGzywP-Po7v% zrwmaGO)VUmWNA=vrNj_?N|1Z!Uz{)J_)KWdPVV$ohP%u2z0bXScY(9yI1adM8c zBNA(hM;w-B~vH%KyG|Q*?`F@mwW;`QA^Ql$oCIdx% zD5tbs(@Yne;2RrF&#a-Y9nC@0Vuoqn?Xl8CW=E|7nFOd)=vLNSQ^y)B@RL5aXrwpB z*pkAUQ2n&oc(U)0VOccwFTWlcVcwqK6j*77u{mgV$91eSbdQM5y2}xB9-9xpHL&ka zPZ;=a6C{XJ#(M@$%b{7=XIt#x;doPLqv^(!6+)!1ZW>K&KA^#f1#EgOBI2+bmnN2B zW;_3Hnq_@Q1$F{UIKy)fo5Y?TNr=&8GKVIH&kI$exR{^|WVoTuo+*E&bES!ZDt7GV z4kq8f_7W_UD?LJ)y1J8T()Xx5(1faP4^({;4brL68Xj#iSdO7dAY-Q)J3YxOJsUJb z)pq-Phy9)HG`}NboR2W_vO(}%N-)kON^FqWZbsRKf=6eN=5sVRl)@)Q<1rWvc0#Jh zjg~mQ;%OTH){4+v5eb@tW>%GsX7A%6+F_7(lMX%WDDgi_K{KloGzHD9O3-{6xi=1F z>H6)5D{-rMVfnXV!Ou2AD{g8p5S8BLY@q29`jgp(`xZe_yhZRV6=kFH9$ccg2>t30=H7SEYE^JV-t{s;4MzRiCyUmZCpD6-7Bj+2EovM7-VVV8jHAP@wi1QbxV zAyJe~L3RNFkxd0zf`DN&AYIip_jjwSy8Cs%m%NvTEOejqJCN?`s@v7Sx^?T`Tm6cv zs;Y|OFuk(kv4&x#z0VBjSLYOWKSgLJxCE6V#Y2Saaqkqk2u^~V*?1c{F?n?5ANQ2M zQqo-f)cFqZFey?*0B-Ikj)JQ>2|ahz8-Hmmd$!(5HF1iL4;NeoXJZLX7anga?RlUB z2$~{As{zh}yCFhP8eRE^#D5im z>h@#^i@QIWUp=q=OF7ftRASjIB~~m@;=Sq0nKWEEgL=1nho$J)0GEp#9fe7x!k7Q? zPxYt2JrTlR|NcbF_m(`RoH^r_JbFO6_wK5=!@Ye=$=zF(GjV9!oVnwb*tA-S z`qj!={El*l^zr3bJWYw(*~%HyKYH)H3Hn;~Nd5Ql7y0iHFaXDw)AgtP`zE{=Dd#Mz zR?f&*<7F)Cshk<3l~}i2$<6DOShJJ{^{{ZAKzZM2`*@x)1N<^?yb>*wDa*_;Ex(^d zQ^U`mwOq9>H|2GGZqRet+a{%D`#u>ogV2e2Hwq$j#j8plKcrkKRcj7c2qkxXs+_?E zbj0A^N}f1EmAK(Lo31No++gMOe})GR4zY4!GoAcuRxveHN-}~7ov1Ra1Y?&BBi@iH&)~WNc zcDXh&6Xam~5qjJZ8tu0VBD3wZ3qMhZ^lPC9hlxEkg0PGwg*n5gOCGOE#o?>n6Wk9%w6c9hT6-(Pc<;8avy)dzS|T2xiGS z;MsUW&#Vd$pa7v^H#5*SwIg?J(ONuVLc{cd$;18d^;YE!?4{gmSM&mp7NBy&imZgr zJd(Db+lA0#QFUYm-`2x*9OaBEZoRC~k`soqhrtkAeDXdKx+fEo|NeMc4582Jm$mcr z2%)Vk_wJDQ<5ZW2>qH>#mW0Oj3UZ>l~Ismg#4nkuw%rlEY$ybk4|0-i<>Eml}v#1Q39Mu)tQ!?{N^ zheVL11^KX8k_UE?cJKlZBmbk^>)MVL%jfGd-V4FB4L6)K^xs?#cCJ1zI8YKHbYM}K zmCzZB!iangYjio9HSmAdvKSyFuROTRzcznTJfTs?l9~RwnrRP=&={B)pxpPcht0F* zA~Y7eWTIGPF|9fkq1~T-UuB|%-qDa-K3ZtO9AHwAi2~oV{Tntkv@2`k-qy6>Yghm| z_x+bbgTmICFro2+<)J;+{e^a6ni#(_`>ZzxT#m6`4x08)9@E9)Uk?UBk|Z<$n|bdJ z6^u;gA~byL{5&2c&3I;E*?9^5cOvB1Bc2D>BE5v zcp=>Tzq8*J_9=&SgXN}-v@gdQJ2<=MUAtVjb@^h;b|cxL@FYm;C$>|KoX1EDPJb(0 zmh4d5elR4BV9M1-J}X&w{k};QHBw^Jc*SiMt%3 zVcR{3BW@9w75$&puCYPSA2oD`i858n?>3#!&8BDI>( z@E)|JZBslFXqQN#JpEm==0Hac5#-@ie$+-Q{T*554f|M-^FRp%9Sosy2qet6kUobSC?j^^2FvnN{VJjAYWXc!~NZ{~1_W!+veRK1aL};3wVr54# zhRDjY|9CpO2N1h#%*KN+Hbw}|bz_%Jz?a|k2@Sx}kJQA^*Yos_7tIkp(g@Hj9P+Ii z)F%1dpLCQ`9{VP~%v)uC_MK-xT9bq1uo`FLuw)30`p;|fVwZ^_183ubV5IR7mgkUn zW?n`igvJ0exzgUYs}>3UPNmI`%(j^pYY?vEW|I!67?Y#<4xi)aBV}QNIgbXRV>AO^ zKx9`*p&$*1P%^(vERbT`?7^v*!D-$Q8n(5a;*tA-eSHNHdY@iIAp|~qEYCVz|4O~D zP<;8BF1Jr-`(bA~|NY(J!U)}XL8ofcAe6hec|`k-?eq|#X&}4wdWF*Ry@LlP8uMzNzYvMUVIrMntSDGe#BCT;4+%{vp%Va2ckb0Ix+6`3 zekOuB$sgB735_x{M%$esNJY(;(3V^G?y;ulBpz=u1^e7+LkZK1-Dj)qPH^NP=dGd1 zY{P8BrUqoDg>c9X7&JLx=NfpCSFy0#Cu^2Z4v4ky`=p0!FN4tNd+c)ObNIf>_eWDg zCjq&w-X~y;|5vPDYNub5Jr^M~%B@)z+I7Knr-W`RMwM7Q+QrUqvSB%!j?Uvd5twSZ zqYvz~_rwtz_AkmLO6V~ItO>%tTWlgQz^vdcR-HNH3L-Rbk2-qLYHd3!1PSe#Jr>^X zo6yFCt@>LZyoRW*uxSju4bG&n#t|C8rz^bve~^T3-!CUUY`~}LxvpH#6=)LZ*^I!~ zi2|;vSVFVL>BBj~Nf8<*2G@1%N^H(F_U!TfhxQakXfvQaZOf)dafS_zz6d}b^S-Er zc){Ksc2?pAB+8h-;lmC_6|)fGIwA(ShZTGNI@v7b+OAA1do9#@}G}sZI zxl>y1-LAEHrr#Q<8pu&HdGGz>ibQSRTq0=w;r|2r+FZidwv67-I!2ZTc`YTu|x&ZuN z!3z9NVSNV>EJcdE0q%x=r!f5`*%X}>vA-mn{?>PjP6+c`-;Zbg@p=HiaKESgl~VlT zeFqRaMT!W(O|qFw!PQLuMhI;{E5^qfhL!d`GoW7`RdUMF5yez07*qoM6N<$f~+fWdLMpZ7v`&AaiAKbS@w=FflnGFf%$bFgi3aAS*C2FffnX87=?-00(qQ zO+^Re2>}5WF!=_07XSbN32;bRa{vGf5&!@T5&_cPe*6Fc00d`2O+f$vv5yPii}Lt!q$&0F zW=5GnV3UIZj)b42dtQ_YgTwLVe>U{>A){6Hri&jVbcDtjdYH$j1*QCoBl8DOyCLt> z##MnYT*1iW9_j1FhRra5V$z0;PM7Up`S~e4R9R#sDq|P|soN8tqL?VY#EeN7hKbD3 zjV!7Q|8O$S#x;?h#(RNY3gMoOK@R8=8#e~L1z*DEOBj>D5L)P5l3@&AnAy#%${oV z$9MH7=JA9S3ny57rE5?H$Y^a^!k#8CkzT3hB_=Iow*Dw)zty$sIN!4=o zKlxWM1exr%Td!}gvH?;TWEWAyom^002e^1^@s6OVXdR00007bV*G`2jT@5 z6B-nrU8I!&000SaNLh0L01FcU01FcV0GgZ_00004XF*Lt006O%3;baP0013oNkllPEMRkzSeaE z>G6RRaH=1v2Fb_1N+4hXBq!Z<-9UPL_yqjc)P}lL2?Q)_Z%-!bx`FigzzOIyoR|Pv z9;qY~CMfDc@xJNr`ht+m7>u4sYL1>nzTm|~@;RW|wCTF<5KZ748fD-fvEnn2@D*S1 z!98p_UVkssTb`nXs_?8Y%MrS~W~CFbuQRa)vJ~=>&$#^z+PKApx1%LuB5mAiGHu+} zmp1uvZgHDI5#!#qQ5;-J7gKAJ31LF63gkeU%gwrw{jGZv{{hZ3n+43HbWSi;2qeJ< z7753v)k)3F5u|43@}W+OI2(RmsF!?xlU2eoFQ>?LwejAHwr6HYc$LNpr{e@E;@om1 zU%c!ZvC61&3Ftz`O6T&p3D|NH5Ny1L@S>YojW00_Nk2R!VvYH`G>labQHZ9lAINyO zvm+Tfcix9P6*PH4T#Y)Z;zK|#S_6~{QpG2`#_sA+3HE#rgW)9Wc~6}qSAScn1Z-wQ z!c@6l&B-T0<90ul31Ux_8m3$jJ4d7$YuhlOZkx1$cMAJ@zw6T?!Rs?L+ zhtMG5OoJIGo?4`^r2ggMlo1?;LK|ltUOOH*iNPBE!ceH_e zU$F?d`EB>T69Gqz53T|oCFbiula6z=BcP=xU3cnwx{mB+QZjG3#HM|!X`{G}C0~La zPgr)9nspVXwCX`z03NM+k^qSPPVQcX;CAMZVNE z*|=bwcw&+gu~Ni2&QYtY$(L)t^x!~fzt`-t5I^n&H(p`cag)T8bKp60&k&b(Se!nx zQVHlXhFGGa@FpN_rfE#RCZL!K>L-m`Tq4p;HEop64#ZI@EPw=KvJa`xE(-)a#_h2Yf1n|6EcP&qG3k*J{XJt2uiv zrIG-1;JSQWv;C=>fq|0j96C5gnN*pF*ctA)g-H#87!Q;c@XRl>g2T(p1rd?K%;4}E z4pF}vIV{>}258=I(Iz82hu7wc7U1=ofKR2U3Fpe=J8-uv6`vt4u#4GYQ>g^(U{40A zOh8&s(b)Ai7#s=GeSz&V3S1)71ey}CV_z~$iGVib>{LHRRU1Dg_!GExnWOBnnR7%; znW@vMYW72^9zfs?xN`@tzXaq%ocI{Xd!~IK;_Kv21aNK_;J6GH-AU|>*`#`3XVM1# zJ}5hnbvNxwEt=`iy#)>KsbSHL1k2Y2&pKv1ko1&vc;+4@0;XgpvFovm-O&oJy-9z z6=x`_apr>ok-s*oR04MFLjrgckj_HMyq*Ti*Kj~6El51C95kn7X1j;~TwN3L%?Tg| zEqjnJOJm4d6SkDaXu*A9_WWMmf{kuV|dug zPvP%7tif;*T>M+t^0g-5jJY8O=61oW_z4)Ow(2!*H-)Y@DGkVXfwKYNMSs&&{iaSQ zH9)Bjvh8Zqi!2`h6Zr~I3sBF-fjDy}Qr0BTeh_8j?IZfe(l%s^wwbhfcTuX}Y+~?} zZ_uZvorC^lU+>r_Xe!%w$6>zpo7#wOu`=@FRy`>{yzU&a`gRc` zXipF*ZF_q%Q%RAn1Gi7}3o1_>X3VB)wzMN_m6e-ppX^J%z%qj)*S5uWVXK-{g>C|F z)salmlyIn7iDmq;+1?8l*D^}F@CQeG7lS*+`Ml#$$9Yh_d=3T0a{1uiJE1+T68`K4 z^(tI9i_cgRq{fQNI}nii9y;JUZvxUah^{wbC0%d&rZ@20L>tZdoi++SKnvndsx{JZ zDaj#ngT@)~u+gL`5b%jMss-wkJ9uOWBpH;IB+gT~Ufjx#S~+YKWjxkfSk2R$R2w>q zn8H2jTqNv1fH=x*8t8%L$ZN%b{#NF_D$AOwMpq%sACY z{e-i7#)T!-GD$q)twhjd@yq7%e@%CeNc&+_Sn4OE!j{$O7Q3@I^a00&xA@+GsEv%> zmPyAaa?CSMQKz4@CZOZ+Kr?6&P@!sS%Y0dr6{mw{L_}yrK15$0^!T&@5~8qj5hMzR=N%o*5tsivWkK9mLdcNKc+A3-FEk||!o1U@@l92%QOjJZ)V<~b&RN+}!7gK|AEXNZ zHIU^zi-3hr9wN@QX>j>pf-64Do=0>aN4}CT2Z@mn+b$F9pcUReA0Tj_x zz^o(7DQWWg?Y{G)szRbs6oH`x_>mO#^jRDhtG|(lqHG5xcxq z{IN-ReaOP~4YAKy1pLcK6s?vmS`jcv$Sm^nZo@b37e&`uc1eYMWn9B^z%!8Vhd8HY zlzd@F-IViw{UbM+&JJGqPD?~1J!e;i4!z7$nX(Rj$P9JsaC9NfaNdnQZ|C4jY$@tZ zIU)S+e`|e0o^^R zYS2j6_!5xDZmB>(UWF@eoP36I5C6Fyz{ov(#kYX!z9CUs6HeK_pxSKp0s@wRsyV4! z2gG#WfJ;@HA4GTA-HCXD5;k`q7i8XTfN%_u{VYdYly(_Fd2rPY_cjF8%i|*;ZlE3N zPHJ=AYZtTKiM{BLgansYTiti-9lfO`M+}HA_HdWD-F-%er8KpP+1svB^4ZyN?jeVO z6go$)W-?&gxE=0Hy#8h|(BCI!`By3dJ-l$l6Yd7=3>omG4XRx1gP{>?8&?$BxZpO9 zYQ-^k_rk$Nq_#@T_9s=W>_`j{g)7c2mZ~Gp0+jHOsGzS4vF559*M%WOIKX)y44htr zg${gnfvcR(o`L~|x-x0O61Ba?#Ly+xA&xxF(?72zi3>AGj^g#qxEE$ z(V}{wZrN%~-{7}G6tM_+f6xf3Az$4P-%aF5;>ue03SKxjfd4B>fH#6;2;E|iQCyzIC)$k|2$}ibMQRQfrc@p zMR#f;t4{cxI^#82q;haF8v-QmQVN`|5--y9y=H`jSA}G6GTi%8z_C^gBrC3yeDQ!; zLWaL|I_J$ZQ!b`p9X|7;4Fr;H_~q9?jc<8|Cf2P~0{+;SMDr5Rc0s9O?5R>d0z&o_ zSDEBP*bgPGAoBCWw2Yuh(p4nN0yT38n_y-8K4$h79^d?_TpGj)M zGiJ&^v)e#X7ykeeXMMefl3qZz*Q~aC+{-!G`fawfh&w!_Mf_3n21f#&B7bSF&3hrb zM(?yVO*|0_eUmOF(~(9=r&BvDPPd;B8ehGC%*H18jPmC#Jv!GZazptp7x>#v-X6Hm zagHcd?a$I^ML_#ulpQqKUO+k<#tw@z1c?`TcUD-&tG7h+p&>Ac7)IWva6HAkAd_bhOGdD=*_UQ^0PQboVo7)PK#X=w(Q9$y=pmwo;cGC3=>k8v12y0n%7y3c+ zLS$&$n@sSYCi=e|kTO&_0Vx1((cuF10lcs-Arw-~M*!rZYnyb93MZf*dT0W*2^hE_ zyvnrHZS_4jpK%+t`$iaGIbekzdZ<7OK;*sVkAc%txBeg$g=j}WpX5!o#%#YFHgfN+ z96%|6)CbgzU1e}(##cbrBoD8U->;rfaJw9%fjNFsG#V2KpKrI5g zMX#$pbjQupBlhIz+HgJoBXHZ5Q`-Nx8{0+%#@A3uz?s3}RU0LpUQ%~iW?8dUm+3CQ zUZb6UzljyldP3@_IM9u9K``VKVpvr>ej=Q1x!fKrG5XrL;D=MLwoMeRlAN+ z8rZAJduj6Cqg1qqHuqL^UyT5`?arnLfLL|ic#XDPeT8nY{0)cX7AM3b!j^rdSbxR53q69cj~*m+1EEvgqDG$RR*TH(-24krIiq_Rq)_S~vbW6`ZqW^uEPd_OrrVC0+>4M@?`axb1ef;(-n##Dxd;e&F_;CUA+^t#9 z7!va}{<41`Gv#(%f6i|c+`k#>!E!k-3hAKZ_mu42d-Db7d-LJK!vcEZfn3JcBe^ft zzAxj>D|*a6?fVB6&UF_O?grg`(>1!qnk$UT8K!cQPT`YtHgS6#cnJsveo^;>M0KPv z0z#SqAzQ7@qPqe6!PnESAivtWYoV9T|GtPKsSS89``W2{c?^-f58j4BRm{96 zz8kw78~d|gXw)a}KsfY#_FJ#hoi<#hEmmKVxm9gG2R=^~0X6;pVFfY@q%OPua*0Z! z+wLwUSz&TVVyng3ZAw3<4#wNtvqj#B+ z&Xj?li_bh{?#E6Z13)*tc^m1ASvKJI~peKQ>5{lVLBLi~1}?hItJT639h3}majOu4VMM7$~j9(#w1 zdC4hr-KdmSAlE;xze?L}y3P=D=ne@nWr{iH$X%wxQJpYu<09!~81Y$8B^~qI)n^JF ziSgZ4xQ53iASx1+FW&p@>T`w^sHRg6-d5<0ZEy{bbWn>|MWysDaGP9iYbp#1RH@gX zP?HaG+Z%r3K0^>33<*GXJTR1aTO2y=&}~WR0Cmqhc9*vtswuVwzOOp2RpLT(=s`fV zzK|$%g=DiGh=p0&<#JbA0Yu|N(t9P~+tjii5EEazIlO%9wO8o*f8Ap`2wmk6ASX6d zxpGR?6FV;PoTMXfzbt%{pa9l_OU2H33~tl+km@*b5~xA$iz0@E@jwiDRYQVcJqhO? zGBFdDi8}c}Nh!lmJb-dEodfYH*E7ZfA+nxG2Fof?(U~~Fq@;fvQBYA)rSCymw3ROe zK$nWgeuyEljnHKdmu8}aATj8-?FMZNv06tM_*URPQ3x^gwyx)85b_!`5Ui1W9~nk`%39~__s`*&@QwSRXq=EM!We) zB^yj>V##2_!GMDd2O$nd7a$gT4kt(g`hkLB?1+c(_+2I;z$vsQFsSP-&s0#e_e8Ld zmw*kHU!qUk&0`4U1FlWJ!I%b2kpTa00VBBx2!csQ=k=1gCQN>iH1|O<`ap)>Vck{Q zdV_?pJ>hS3H;&-;2ZAbKoP(W+os7pncV96i#tsgE7!utcCLi8F5+pWe;20JlAxB8n zcq9PrMUt$%__+MMhZGpY<$~KSDk)>)P^=pvi%;i3VuC7n^VQ?~WD%971+jVBJ@&TvQjC9z)A3OnDugPM_lLs+Z zZ|DS7W!r!nBKeSnZNYWpIe+L-Ja9?^J4k-yvq!%n12Me-+#KV+ZoFVRwlQ?lEQlMC zAecBph zh=qg9kY$(5Ry>cc8;`M|_H{VEnhneKg=C>jZe{=p&xb2eUzcC6>Iuk)!P{>zotgct zkm)dfSDi^afs)~Y8MCo;N+9O+!*Y_S^~{tvE`L45juM3x)633F&Lu(ohkxVwwm|q- zg(dW({36i^`RS< z&HN)UvD$b^QuZ{|k8V{SOTZn|khtu*{+!b#;s6`A<0f-I#*TG)zw$&(ugjE#5Q#u) zd@ja)eBiG~PeA$y==d#Jl7K!=g)$&ae!fhfxi865gEQ`xmyI|fA?4;PZ&yIdI8Ha8&S!ph)LpwS5jNOyI}=c=m5_=+YlxvMs))`6=gd>v;fN8)_QZ2N%{$}((RNxUrF*C6GUt$7n5lC;ACnp!Z1}#8koj^cJWeX(U>X5~k+031!A)a^eI4p*ru*1V zU8r0MS*Hu5u;V;-WiuUr0~*r^VjFZjGRSu1V9b>x?etBTpK`{DA>fjcAm~O%@5y1} zqBrhQ%(z%o70k2?fdE)uK0{tBotD9@my5s{#N#CQb;v05p$`1Li8Kkag6#LQlsM%0 zUETqJYL5g*JEtDJt#loyU~tX$3Dk|r3}2gt{B@s+CHI1&3RrE%hYx^&fxHAXPss2S z@PEL(QVAF(o#w!)1YGxA28jd$=jm|T0u=!jqqww`3B37SEXGBn!`Gi4+;p1<%QUuCw5 z<(L2aSQ_st6CEenOQ0UyOu-c+B2b;TOP32TJjz#SGd}Q5=e$Q0S;y_|&r3iD$$r2` z@7pkp$B<;Wq{Rg!-a~L{2Y^go`)(=Cow0$6gk-q$vXCL7?7+H^lz-lO$+$1}eYkl7 zpM&bjPC(>=s}HZ39W^*r^N8tG+<5skUy{6_jjB3Y=IYBB^?I(LOn5E&lw^5NRWgO@ zf8$vpZ<}$!M@3ljo{;Ggw)}fu0^-+qHA*^@@V-?L3D|Gjb=n2oFc&ae#b90HPSvb8 zMKW29qaG)lam^N!1^X@6m<*O{Sqj}eZacyyuKFsbEO56EmOnJsvXg|Uw>fKy6>Ry z+4oICJ^s@`F8%Hs5>-R3PsKSzZL}1mh)?NBs7D0=|NX`ehp1l-HTqoefT;D~fIG(j zPkURy_r1Y-=)n*ChSjX*2^n)nFHF(wbHOq|O!!H^MVlITTD)&8REGbWX|+JIZC?*P z_^=8P2Apwm4_|JG|2|gjZ${7``a^%{5B;G(^oRb?AO9D}{{X)j)|T?s51ar1002ov JPDHLkV1mzqba4Ox diff --git a/README.md b/README.md index 4c9f5e4..0c01647 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ Docker Pulls Docker Repository on Quay Code Quality -
Support me on Patreon - Donate Paypal +
Support me on Patreon + Donate Paypal

## About From d627abc4067f0fc90277c54d500244c60bfb816a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 4 Sep 2019 02:56:23 +0200 Subject: [PATCH 113/523] LibreNMS 1.55 --- .travis.yml | 2 +- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 98b405d..ab5198e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.54 + - VERSION=1.55 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index 602c0c3..21e0bdd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.55-RC1 (2019/09/04) + +* LibreNMS 1.55 + ## 1.54-RC2 (2019/08/28) * Add python3 modules required for new [Dispatcher Service](https://docs.librenms.org/Extensions/Dispatcher-Service/) (PR #36) diff --git a/Dockerfile b/Dockerfile index e5ec657..afd7965 100644 --- a/Dockerfile +++ b/Dockerfile @@ -85,7 +85,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.54" \ +ENV LIBRENMS_VERSION="1.55" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From 177b486e84f6a6751b076ca689847b01cf57e329 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 14 Sep 2019 22:18:44 +0200 Subject: [PATCH 114/523] Update compose since latest rrdcached image --- examples/compose/docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 2a4099e..2d630f4 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -67,6 +67,8 @@ services: - "./rrd-journal:/data/journal" environment: - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" - "LOG_LEVEL=LOG_INFO" - "WRITE_TIMEOUT=1800" - "WRITE_JITTER=1800" From ce51083aaf946bdeffeae7f484f878b83ac9c6ce Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 14 Sep 2019 23:02:43 +0200 Subject: [PATCH 115/523] Review data permissions Remove usermod/groupmod (Issue #38) --- .res/patreon.png | Bin 896 -> 956 bytes .res/paypal.png | Bin 897 -> 956 bytes CHANGELOG.md | 5 +++++ README.md | 2 ++ entrypoint.sh | 21 +++++++++++++-------- 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/.res/patreon.png b/.res/patreon.png index 9880e74993a5e2a55511aa3bef66cf672934bb12..8b716190abbdde5915e4dfe0257b56ef6f9a6d14 100644 GIT binary patch delta 843 zcmV-R1GM~r2fPQ683+ad007F8#l(>zMh6fE1=GGZ;gN19e*+OoL_t(|+U=abYui8+ z$Mr`w$v@EAg?3B>^_V47r({W%WC#QbhC;zphfM9#O_QfAp_2#GU#_WwV=r}ZT(I3Z zKJ4(VPLi!(r=PBo&V2`84AM#O>3!}!-5E{_0EK;PD6QfSw5S>rYif$Ne_6nle)8(kiZ2e3b5pW*gp@7= zwXGt-lUW2$Vi7!vMermR!IM}^!5g&TXl)Dv`gP8#7&rTvP3+ze!#*Y#A8=F3J_xdE zweYrIW6&HSy!CN^ew=wAWYp^5ZC7x2i)i*lEF>|+XebDOOy!CMwyuNJko3u^j|^C%rW!{)G# zp0Kore+?|_T)B=JMi{I7H~e}08D7EIQ*GRR%=5Ea#chA#Z;s$;Z@=Rq4ZGV*+(g=q z&b(f&jd9s?&KW3C=9MjIo`AXsh277#Zw(Y@)?0lzEH7N|b#|Y;z}q-ZQ92p!&v#?k z^}{nWW8?xBS|&r_xd#Qe<-f0cpp1kWr~i0;uTx(EA9{0$Zn ze^4KUd6{+i7no%M?>Eo0xhF)y6BgUYb%6Iz6f+x~ehD(o_T95oC`Uaf1nWufd)Rv) zf=42F>m!0Ev6h0@d39<|KnxuwnC_D@heslKB!c(yDf9z z6e*q-n=9FuhLL@=tvUbVeCE5D`F3<;En_<0pl*CnV3R&5kZb9DTE!ROAAsQ8{sIEV VY)!K4uVnxL002ovPDHLkV1n-(l@9;_ delta 782 zcmV+p1M&R42Y?5V83+OZ002esQj?J(Mh5{EDC%nBL6L4Je*)D>L_t(|+U=XaPuoBg z$Nfh&$v@CImD({yYDN~OPO!iN0}@iDNR=vO>c9j`H&32eP^S!03r#H?nPh2DaHYf$ zd`gge=U<#J=lD!$&Q9+1RffCE^S#f#dv}4eN_UcBvw0zN7?A zK{KloGzHD9Djm(C;RK~SoN4VHsbkHY+J2A6k!hcu-qiRznKzo%PeaXe=*4_E-skRT zerQ%3_qWd60)Vm>Ko_UE`S%BKl8bqFz~9@<(>yqze=x8_MN_)Gz0Eq!{+Y=L({cWc zw)i`oX_{C~a3lN38*w1gKN!R@Pfn#~Lf}lRma+q&LRclERu${j}M5vhR;! zSv2)8f4?3XVcwqK6j*77u{mgV$91eSbdQM5y2}xB9-9xpHL&kaPZ;=a6C{XJ#(M@$ z%b{7=XIt#x;doPLqv^(!6+)!1ZW>K&KA^#f1#EgOBI2+bmnN2BW;_3Hnq_@Q1$F{U zIKy)fo5Y?TNr=&8GKVIH&kI$exR{^|WVoTuf1W9SrE{f;fGT$E<_;#`zxEO=lPf(! znYy}@Y0~$oJkW%yZVyy_5)IO+(Hb6YF<6eFNg!jV89P16D?J-DL)CWsdx!mOen4rS^3?T0IIt9W7g zw_(B0HbN_IYA+C#-sNnd=@R;r*@gQSK~cO#@GKQ&qw*eHqPGbC0btGz%Z!&HPXGV_ M07*qoM6N<$f)j3bK>z>% diff --git a/.res/paypal.png b/.res/paypal.png index 24c3954ad6567b6dca8ab4e4f841060fa6d39ba8..e23c83d249972a4b53cd7eef56d50445ae00e4d8 100644 GIT binary patch delta 843 zcmV-R1GM~s2fPQ683+ad001_J?hcV5Mh6fC1>uNPW07tre*+OoL_t(|+U=V$Z__{& z$4&VVFu>fAkHE;t$jHc;u@YsEVClfXg5;%AI&|nzscaDg3Py?oLu6%1rGgsCLn<*4 zsmtqoPMn-y?i^oYbI)*={!$t{ckkZs?!9-eE&zbw+b;+nwgK+H!9NbYT!?&645FV9 z5R>5hH3WMee~1jd1|Sv#WD-1nC%_=D9GsNNJ=cbKttm|@u8r_A$hiSt9!#U;+yE~R zrctV+(fyAAFHZD&_FllCo1n@YL@1ZA`HDvf>PUbCq^j};KLgB4fT3%a06cf?0I90F z!KXh;QdwNRPXe4EQB^nC8ry-1`vROGQB^k>CYE3#e=HXM#az>$k1v!0ru)YZOy?Y6 zGPTS#_?sI|Tix@TCs@){FgWvL8!8B-HJX3CII{<%g2+N>Rd7-;3`A@LM-&*tOg3Fz zO#Hpu`Dd#lKm#UQtvBQPz*sq36qtT_D1#^;E_PipYtH181fjKxoX)^%pJDy-=nzT; zqpQeff43`9F6j*cUY_FMrpiNjuf4^}ELt(-*pS^@I$Gy6*5;-aLt|C@PoG!divq(F z<^>x50rxc>5&{|E{fVYHuns>OFj?OwN2HTRaU6kCOZD`A!rDvL`!w3hK}Z6_E3%_6 zC1M&m%eGwB8dim=h8(8f01BvG50sX!LXRgr3SDBroUvJqgKA&pL0k@3Z<(L$($@wsYY+_Ik@IO4&^;ca z3c=`{E*4D0@&@itI@A1jTN`P+Vz^VX6~x0`f9`w=V}%u7iT+~{3g*>_#p7tTM=|Aq zf7-wtvK)bZhhx1BrcL9fP{#91D0Ri`pC}a=s&&f#FJtpM<1Z=(p)XQvYnW9|Rqej<#+#uVr1@s z+rwHRvpof54jMJDXai}dtp{0eS&XdH#eAVq(Yknwe|PM4E4qPM zJg4_&iDo7jf;f4Kj7-zQ){iVPU9Q%FMCIy_add^=VsmbdmRihaMwvihlY;?{grB5) zUX%%gf5Y+Re>U{>A){6Hri&jVbcDtjdYH$j1*QCoBl8DOyCLt>##MnYT*1iW9_j1F zhRra5V$z0;PM7Up`S~e4R9R#sDq|P|soN8tqL?VY#EeN7hKbD3jV!7Q|8O$S#xiVR2~c-4SYmPGJj%VZyB)Ky!8*f!OYXxK?HTgZyn1Pefj|HN N002ovPDHLkV1j~8f(QTr diff --git a/CHANGELOG.md b/CHANGELOG.md index 21e0bdd..b3e5f04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.55-RC2 (2019/09/14) + +* Review data permissions +* Remove usermod/groupmod (Issue #38) + ## 1.55-RC1 (2019/09/04) * LibreNMS 1.55 diff --git a/README.md b/README.md index 0c01647..022c534 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,8 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * `/data` : Contains configuration, rrd database, logs, additional Monitoring plugins, additional syslog-ng config files +> :warning: Note that the volume should be owned by the user/group with the specified `PUID` and `PGID`. If you don’t give the volume correct permissions, the container may not start. + ### Ports * `80` : HTTP port diff --git a/entrypoint.sh b/entrypoint.sh index ae1f93f..7303e75 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -74,11 +74,12 @@ sed -i -e "s|date\.timezone.*|date\.timezone = ${TZ}|" /etc/php7/php.ini \ # Change librenms UID / GID echo "Checking if librenms UID / GID has changed..." -if [ $(id -u librenms) != ${PUID} ]; then - usermod -u ${PUID} librenms +if [ -n "${PGID}" ] && [ "${PGID}" != "`id -g librenms`" ]; then + sed -i -e "s/^librenms:\([^:]*\):[0-9]*/librenms:\1:${PGID}/" /etc/group + sed -i -e "s/^librenms:\([^:]*\):\([0-9]*\):[0-9]*/librenms:\1:\2:${PGID}/" /etc/passwd fi -if [ $(id -g librenms) != ${PGID} ]; then - groupmod -g ${PGID} librenms +if [ -n "${PUID}" ] && [ "${PUID}" != "`id -u librenms`" ]; then + sed -i -e "s/^librenms:\([^:]*\):[0-9]*:\([0-9]*\)/librenms:\1:${PUID}:\2/" /etc/passwd fi # PHP @@ -213,8 +214,11 @@ fi # Fix perms echo "Fixing permissions..." -chown -R librenms. ${DATA_PATH} \ - ${LIBRENMS_PATH}/config.d \ +chown librenms. ${DATA_PATH}/config \ + ${DATA_PATH}/logs \ + ${DATA_PATH}/monitoring-plugins \ + ${DATA_PATH}/rrd +chown -R librenms. ${LIBRENMS_PATH}/config.d \ ${LIBRENMS_PATH}/bootstrap \ ${LIBRENMS_PATH}/storage chmod ug+rw ${DATA_PATH}/logs \ @@ -263,7 +267,7 @@ if [ "$SIDECAR_CRON" = "1" ]; then # Add crontab cat ${LIBRENMS_PATH}/librenms.nonroot.cron > ${CRONTAB_PATH}/librenms sed -i -e "s/ librenms //" ${CRONTAB_PATH}/librenms - + if [ $LIBRENMS_CRON_DISCOVERY_ENABLE != true ]; then sed -i "/discovery.php/d" ${CRONTAB_PATH}/librenms fi @@ -306,7 +310,8 @@ elif [ "$SIDECAR_SYSLOGNG" = "1" ]; then # Init rm /etc/supervisord/cron.conf /etc/supervisord/nginx.conf /etc/supervisord/php.conf /etc/supervisord/snmpd.conf mkdir -p ${DATA_PATH}/syslog-ng /run/syslog-ng - chown -R librenms. ${DATA_PATH}/syslog-ng /run/syslog-ng + chown librenms. ${DATA_PATH}/syslog-ng + chown -R librenms. /run/syslog-ng else # Init rm /etc/supervisord/cron.conf /etc/supervisord/syslog-ng.conf From 62cb36c280fa8cfb4c7cac0f768559e1fd9434dc Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 14 Sep 2019 23:45:53 +0200 Subject: [PATCH 116/523] Move doc --- .dockerignore | 1 + README.md | 238 ++------------------- doc/docker/environment-variables.md | 59 +++++ doc/docker/ports.md | 4 + doc/docker/volumes.md | 5 + doc/notes/add-user.md | 15 ++ doc/notes/additional-monitoring-plugins.md | 5 + doc/notes/crons.md | 14 ++ doc/notes/edit-config.md | 11 + doc/notes/syslog-ng.md | 19 ++ doc/notes/update-database.md | 7 + doc/notes/validate.md | 28 +++ doc/upgrade.md | 8 + doc/usage.md | 26 +++ 14 files changed, 221 insertions(+), 219 deletions(-) create mode 100644 doc/docker/environment-variables.md create mode 100644 doc/docker/ports.md create mode 100644 doc/docker/volumes.md create mode 100644 doc/notes/add-user.md create mode 100644 doc/notes/additional-monitoring-plugins.md create mode 100644 doc/notes/crons.md create mode 100644 doc/notes/edit-config.md create mode 100644 doc/notes/syslog-ng.md create mode 100644 doc/notes/update-database.md create mode 100644 doc/notes/validate.md create mode 100644 doc/upgrade.md create mode 100644 doc/usage.md diff --git a/.dockerignore b/.dockerignore index 085517e..bddebf6 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,6 +4,7 @@ /.git /.res +/doc /examples /.editorconfig /.gitignore diff --git a/README.md b/README.md index 022c534..315f2b9 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,8 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ ### Included * Alpine Linux 3.10, Nginx, PHP 7.3 -* Cron tasks as a ["sidecar" container](#crons) -* Syslog-ng support through a ["sidecar" container](#syslog-ng) +* Cron tasks as a ["sidecar" container](doc/notes/crons.md) +* Syslog-ng support through a ["sidecar" container](doc/notes/syslog-ng.md) * Ability to configure [distributed polling](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) * Ability to add custom Monitoring plugins (Nagios) * OPCache enabled to store precompiled script bytecode in shared memory @@ -36,225 +36,25 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * [RRDcached](https://github.com/crazy-max/docker-rrdcached) image ready to use for better scalability * [Postfix SMTP relay](https://github.com/juanluisbaptiste/docker-postfix) image to send emails * [MariaDB](https://github.com/docker-library/mariadb) image as database instance -* Cron jobs as a ["sidecar" container](#cron) -* Syslog-ng support through a ["sidecar" container](#syslog-ng) +* Cron jobs as a ["sidecar" container](doc/docker/environment-variables.md#cron) +* Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng) -## Docker +## Documentation -### 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`) -* `UPLOAD_MAX_SIZE` : Upload max size (default `16M`) -* `OPCACHE_MEM_SIZE` : PHP OpCache memory consumption (default `128`) -* `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](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) on Nginx. (default `remote_addr`) - -#### (Distributed) Poller - -* `LIBRENMS_POLLER_THREADS` : Threads that `poller-wrapper.py` runs (default `16`) -* `LIBRENMS_POLLER_INTERVAL` : Interval in minutes at which `poller-wrapper.py` runs (defaults to `5`) [docs](https://docs.librenms.org/#Support/1-Minute-Polling/) -* `LIBRENMS_DISTRIBUTED_POLLER_ENABLE` : Enable distributed poller functionality -* `LIBRENMS_DISTRIBUTED_POLLER_NAME` : Optional name of poller (defaults to hostname) -* `LIBRENMS_DISTRIBUTED_POLLER_GROUP` : By default, all hosts are shared and have the poller_group = 0. To pin a device to a poller, set it to a value greater than 0 and set the same value here. One can also specify a comma separated string of poller groups. The poller will then poll devices from any of the groups listed. [docs](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) -* `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST` : Memcached server for poller synchronization (Defaults to `$MEMCACHED_HOST`) -* `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT` : Port of memcached server (Defaults to `$MEMCACHED_PORT`) - -#### Cron - -> :warning: Only used if you enabled and run a [sidecar cron container](#crons) - -* `SIDECAR_CRON` : Set to `1` to enable sidecar cron mode for this container (default `0`) -* `LIBRENMS_CRON_DISCOVERY_ENABLE` : Enable LibreNMS discovery for this container cronjobs (default `true`) -* `LIBRENMS_CRON_DAILY_ENABLE` : Enable LibreNMS daily script for this container cronjobs (default `true`) -* `LIBRENMS_CRON_ALERTS_ENABLE` : Enable LibreNMS alerts generation for this container cronjobs (default `true`) -* `LIBRENMS_CRON_BILLING_ENABLE` : Enable LibreNMS billing polling for this container cronjobs (default `true`) -* `LIBRENMS_CRON_BILLING_CALCULATE_ENABLE` : Enable LibreNMS billing for this container cronjobs (default `true`) -* `LIBRENMS_CRON_CHECK_SERVICES_ENABLE` : Enable LibreNMS service checks for this container cronjobs (default `true`) -* `LIBRENMS_CRON_POLLER_ENABLE` : Enable LibreNMS polling for this container cronjobs (default `true`) - -#### Syslog-ng - -> :warning: Only used if you enabled and run a [sidecar syslog-ng container](#syslog-ng-1) - -* `SIDECAR_SYSLOGNG` : Set to `1` to enable sidecar syslog-ng mode for this container (default `0`) - -#### 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 `30`) - -#### Misc - -* `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_HOST` : Hostname / IP address of a RRDcached server -* `RRDCACHED_PORT` : Port of the RRDcached server (default `42217`) - -### Volumes - -* `/data` : Contains configuration, rrd database, logs, additional Monitoring plugins, additional syslog-ng config files - -> :warning: Note that the volume should be owned by the user/group with the specified `PUID` and `PGID`. If you don’t give the volume correct permissions, the container may not start. - -### Ports - -* `80` : HTTP port -* `514 514/udp` : Syslog ports (Only used if you enabled and run a [sidecar syslog-ng container](#syslog-ng-1)) - -## Use this image - -### Docker Compose - -Docker compose is the recommended way to run this image. Copy the content of folder [examples/compose](examples/compose) in `/var/librenms/` on your host for example. Edit the compose and env files with your preferences and run the following commands : - -```bash -touch acme.json -chmod 600 acme.json -docker-compose up -d -docker-compose logs -f -``` - -### Command line - -You can also use the following minimal command : - -```bash -docker run -d -p 80:80 --name librenms \ - -v $(pwd)/data:/data \ - -e "DB_HOST=db" \ - librenms/librenms:latest -``` - -> `-e "DB_HOST=db"`
-> :warning: `db` must be a running MySQL instance - -## Notes - -### Edit configuration - -You can edit configuration of LibreNMS by placing `*.php` files inside `/data/config` folder. Let's say you want to edit the [WebUI config](https://docs.librenms.org/#Support/Configuration/#webui-settings). Create a file called for example `/data/config/webui.php` with this content : - -```php - 10 -``` - -> :warning: Substitute your desired username ``, password `` and email address `` - -### Validate - -If you want to validate your installation from the CLI, type the following command : - -```text -$ docker-compose exec --user librenms librenms php validate.php -==================================== -Component | Version ---------- | ------- -LibreNMS | 1.41 -DB Schema | 253 -PHP | 7.2.7 -MySQL | 10.2.16-MariaDB-10.2.16+maria~jessie -RRDTool | 1.7.0 -SNMP | NET-SNMP 5.7.3 -==================================== - -[OK] Composer Version: 1.6.5 -[OK] Dependencies up-to-date. -[OK] Database connection successful -[OK] Database schema correct -[WARN] You have not added any devices yet. - [FIX] You can add a device in the webui or with ./addhost.php -[WARN] Your install is over 24 hours out of date, last update: Sat, 30 Jun 2018 21:37:37 +0000 - [FIX] Make sure your daily.sh cron is running and run ./daily.sh by hand to see if there are any errors. -[WARN] Your local git branch is not master, this will prevent automatic updates. - [FIX] You can switch back to master with git checkout master -``` - -### Update database - -To update the database manually, type the following command : - -```bash -$ docker-compose exec --user librenms librenms php build-base.php -``` - -### Crons - -If you want to enable the cronjob, you have to run a "sidecar" container (see cron service in [docker-compose.yml](examples/compose/docker-compose.yml) example) or run a simple container like this : - -```bash -docker run -d --name librenms_cron \ - --env-file $(pwd)/librenms.env \ - -e SIDECAR_CRON=1 \ - -v librenms:/data \ - librenms/librenms:latest -``` - -> `-v librenms:/data`
-> :warning: `librenms` must be a valid volume already attached to a LibreNMS container - -### Syslog-ng - -If you want to enable syslog-ng, you have to run a "sidecar" container (see syslog-ng service in [docker-compose.yml](examples/compose/docker-compose.yml) example) or run a simple container like this : - -```bash -docker run -d --name librenms_syslog \ - --env-file $(pwd)/librenms.env \ - -e SIDECAR_SYSLOGNG=1 \ - -p 514 -p 514/udp \ - -v librenms:/data \ - librenms/librenms:latest -``` - -You have to create a configuration file to enable syslog in LibreNMS too. Create a file called for example `/data/config/syslog.php` with this content : - -```php - :warning: Container has to be restarted to propagate changes - -## Upgrade - -To upgrade to the latest version of LibreNMS, pull the newer image and launch the container. LibreNMS will upgrade automatically : - -```bash -docker-compose pull -docker-compose up -d -``` +* Docker + * [Environment variables](doc/docker/environment-variables.md) + * [Volumes](doc/docker/volumes.md) + * [Ports](doc/docker/ports.md) +* [Usage](doc/usage.md) +* Notes + * [Edit configuration](doc/notes/edit-config.md) + * [Add user](doc/notes/add-user.md) + * [Validate](doc/notes/validate.md) + * [Update database](doc/notes/update-database.md) + * [Crons](doc/notes/crons.md) + * [Syslog-ng](doc/notes/syslog-ng.md) + * [Additional Monitoring plugins (Nagios)](doc/notes/additional-monitoring-plugins.md) +* [Upgrade](doc/upgrade.md) ## How can I help ? diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md new file mode 100644 index 0000000..3d56e37 --- /dev/null +++ b/doc/docker/environment-variables.md @@ -0,0 +1,59 @@ +## 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`) +* `UPLOAD_MAX_SIZE` : Upload max size (default `16M`) +* `OPCACHE_MEM_SIZE` : PHP OpCache memory consumption (default `128`) +* `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](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) on Nginx. (default `remote_addr`) + +### (Distributed) Poller + +* `LIBRENMS_POLLER_THREADS` : Threads that `poller-wrapper.py` runs (default `16`) +* `LIBRENMS_POLLER_INTERVAL` : Interval in minutes at which `poller-wrapper.py` runs (defaults to `5`) [docs](https://docs.librenms.org/#Support/1-Minute-Polling/) +* `LIBRENMS_DISTRIBUTED_POLLER_ENABLE` : Enable distributed poller functionality +* `LIBRENMS_DISTRIBUTED_POLLER_NAME` : Optional name of poller (defaults to hostname) +* `LIBRENMS_DISTRIBUTED_POLLER_GROUP` : By default, all hosts are shared and have the poller_group = 0. To pin a device to a poller, set it to a value greater than 0 and set the same value here. One can also specify a comma separated string of poller groups. The poller will then poll devices from any of the groups listed. [docs](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) +* `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST` : Memcached server for poller synchronization (Defaults to `$MEMCACHED_HOST`) +* `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT` : Port of memcached server (Defaults to `$MEMCACHED_PORT`) + +### Cron + +> :warning: Only used if you enabled and run a [sidecar cron container](../notes/crons.md) + +* `SIDECAR_CRON` : Set to `1` to enable sidecar cron mode for this container (default `0`) +* `LIBRENMS_CRON_DISCOVERY_ENABLE` : Enable LibreNMS discovery for this container cronjobs (default `true`) +* `LIBRENMS_CRON_DAILY_ENABLE` : Enable LibreNMS daily script for this container cronjobs (default `true`) +* `LIBRENMS_CRON_ALERTS_ENABLE` : Enable LibreNMS alerts generation for this container cronjobs (default `true`) +* `LIBRENMS_CRON_BILLING_ENABLE` : Enable LibreNMS billing polling for this container cronjobs (default `true`) +* `LIBRENMS_CRON_BILLING_CALCULATE_ENABLE` : Enable LibreNMS billing for this container cronjobs (default `true`) +* `LIBRENMS_CRON_CHECK_SERVICES_ENABLE` : Enable LibreNMS service checks for this container cronjobs (default `true`) +* `LIBRENMS_CRON_POLLER_ENABLE` : Enable LibreNMS polling for this container cronjobs (default `true`) + +### Syslog-ng + +> :warning: Only used if you enabled and run a [sidecar syslog-ng container](../notes/syslog-ng.md) + +* `SIDECAR_SYSLOGNG` : Set to `1` to enable sidecar syslog-ng mode for this container (default `0`) + +### 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 `30`) + +### Misc + +* `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_HOST` : Hostname / IP address of a RRDcached server +* `RRDCACHED_PORT` : Port of the RRDcached server (default `42217`) diff --git a/doc/docker/ports.md b/doc/docker/ports.md new file mode 100644 index 0000000..a7412bb --- /dev/null +++ b/doc/docker/ports.md @@ -0,0 +1,4 @@ +### Ports + +* `80` : HTTP port +* `514 514/udp` : Syslog ports (only used if you enabled and run a [sidecar syslog-ng container](../notes/syslog-ng.md)) diff --git a/doc/docker/volumes.md b/doc/docker/volumes.md new file mode 100644 index 0000000..87115c4 --- /dev/null +++ b/doc/docker/volumes.md @@ -0,0 +1,5 @@ +## Volumes + +* `/data` : Contains configuration, rrd database, logs, additional Monitoring plugins, additional syslog-ng config files + +> :warning: Note that the volume should be owned by the user/group with the specified `PUID` and `PGID`. If you don’t give the volume correct permissions, the container may not start. diff --git a/doc/notes/add-user.md b/doc/notes/add-user.md new file mode 100644 index 0000000..70c40e3 --- /dev/null +++ b/doc/notes/add-user.md @@ -0,0 +1,15 @@ +## Add user + +On first launch, an initial administrator user will be created : + +| Login | Password | +|------------|------------| +| `librenms` | `librenms` | + +You can create an other user using the commande line : + +```text +$ docker-compose exec --user librenms librenms php adduser.php 10 +``` + +> :warning: Substitute your desired username ``, password `` and email address `` diff --git a/doc/notes/additional-monitoring-plugins.md b/doc/notes/additional-monitoring-plugins.md new file mode 100644 index 0000000..1a2429a --- /dev/null +++ b/doc/notes/additional-monitoring-plugins.md @@ -0,0 +1,5 @@ +## Additional Monitoring plugins (Nagios) + +You can add a custom Monitoring (Nagios) plugin in `/data/monitoring-plugins/`. + +> :warning: Container has to be restarted to propagate changes diff --git a/doc/notes/crons.md b/doc/notes/crons.md new file mode 100644 index 0000000..c89fd48 --- /dev/null +++ b/doc/notes/crons.md @@ -0,0 +1,14 @@ +## Crons + +If you want to enable the cronjob, you have to run a "sidecar" container (see cron service in [docker-compose.yml](../../examples/compose/docker-compose.yml) example) or run a simple container like this : + +```bash +docker run -d --name librenms_cron \ + --env-file $(pwd)/librenms.env \ + -e SIDECAR_CRON=1 \ + -v librenms:/data \ + librenms/librenms:latest +``` + +> `-v librenms:/data`
+> :warning: `librenms` must be a valid volume already attached to a LibreNMS container diff --git a/doc/notes/edit-config.md b/doc/notes/edit-config.md new file mode 100644 index 0000000..950fc29 --- /dev/null +++ b/doc/notes/edit-config.md @@ -0,0 +1,11 @@ +## Edit configuration + +You can edit configuration of LibreNMS by placing `*.php` files inside `/data/config` folder. Let's say you want to edit the [WebUI config](https://docs.librenms.org/#Support/Configuration/#webui-settings). Create a file called for example `/data/config/webui.php` with this content : + +```php + `-e "DB_HOST=db"`
+> :warning: `db` must be a running MySQL instance From e86031faf6749ce1cdf6acef58f275a667dfb186 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 30 Sep 2019 15:03:53 +0200 Subject: [PATCH 117/523] LibreNMS 1.56 --- .travis.yml | 2 +- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index ab5198e..48de4da 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ services: env: global: - - VERSION=1.55 + - VERSION=1.56 - DOCKER_USERNAME=librenms - DOCKER_REPONAME=librenms - DOCKER_LOGIN=librenmsbot diff --git a/CHANGELOG.md b/CHANGELOG.md index b3e5f04..4153da0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.56-RC1 (2019/09/30) + +* LibreNMS 1.56 + ## 1.55-RC2 (2019/09/14) * Review data permissions diff --git a/Dockerfile b/Dockerfile index afd7965..1252d40 100644 --- a/Dockerfile +++ b/Dockerfile @@ -85,7 +85,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.55" \ +ENV LIBRENMS_VERSION="1.56" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From 0377027362c08b0f2d52bfea1c6097e74bfc7c54 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 30 Sep 2019 15:29:19 +0200 Subject: [PATCH 118/523] Switch to GitHub Actions (#39) --- .dockerignore | 4 +- .github/workflows/build.yml | 71 +++++++++++++++++++ .github/workflows/test.yml | 71 +++++++++++++++++++ Dockerfile | 7 -- README.md | 4 +- build.sh | 134 ------------------------------------ 6 files changed, 146 insertions(+), 145 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/test.yml delete mode 100755 build.sh diff --git a/.dockerignore b/.dockerignore index bddebf6..30b8025 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,13 +3,13 @@ /*.iml /.git +/.github /.res /doc /examples /.editorconfig +/.gitattributes /.gitignore -/.travis.yml -/build.sh /CHANGELOG.md /LICENSE /README.md diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..f4f8aa9 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,71 @@ +name: build + +on: + pull_request: + branches: 'master' + push: + branches: 'master' + tags: '*' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - + # https://github.com/actions/checkout + name: Checkout + uses: actions/checkout@v1 + - + name: Prepare + id: prepare + run: | + if [[ $GITHUB_REF == refs/tags/* ]]; then + TAG=${GITHUB_REF#refs/tags/} + echo ::set-output name=tag_name::${TAG} + echo ::set-output name=version::${TAG%-*} + else + echo ::set-output name=version::1.56 + fi + echo ::set-output name=build_date::$(date -u +'%Y-%m-%dT%H:%M:%SZ') + echo ::set-output name=docker_username::librenmsbot + echo ::set-output name=docker_image::librenms/librenms + echo ::set-output name=quay_username::librenms+travis + echo ::set-output name=quay_image::quay.io/librenms/librenms + - + name: Docker Build + run: | + docker build \ + --label "org.label-schema.build-date=${{ steps.prepare.outputs.build_date }}" \ + --label "org.label-schema.version=${{ steps.prepare.outputs.version }}" \ + --label "org.label-schema.vcs-ref=${GITHUB_SHA::8}" \ + --tag "${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }}" \ + --tag "${{ steps.prepare.outputs.docker_image }}:latest" \ + --tag "${{ steps.prepare.outputs.quay_image }}:${{ steps.prepare.outputs.version }}" \ + --tag "${{ steps.prepare.outputs.quay_image }}:latest" \ + --file Dockerfile . + - + name: Docker Login + if: success() && startsWith(github.ref, 'refs/tags/') + env: + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }} + run: | + echo "${DOCKER_PASSWORD}" | docker login --username "${{ steps.prepare.outputs.docker_username }}" --password-stdin + echo "${QUAY_PASSWORD}" | docker login quay.io --username "${{ steps.prepare.outputs.quay_username }}" --password-stdin + - + name: Docker Push + if: success() && startsWith(github.ref, 'refs/tags/') + run: | + docker push ${{ steps.prepare.outputs.docker_image }} + docker push ${{ steps.prepare.outputs.quay_image }} + - + name: Docker Check Manifest + if: always() && startsWith(github.ref, 'refs/tags/') + run: | + docker run --rm mplatform/mquery ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }} + docker run --rm mplatform/mquery ${{ steps.prepare.outputs.quay_image }}:${{ steps.prepare.outputs.version }} + - + name: Clear + if: always() && startsWith(github.ref, 'refs/tags/') + run: | + rm -f ${HOME}/.docker/config.json diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..080ea37 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,71 @@ +name: test + +on: + pull_request: + branches: 'master' + push: + branches: 'master' + +jobs: + test: + runs-on: ubuntu-latest + steps: + - + # https://github.com/actions/checkout + name: Checkout + uses: actions/checkout@v1 + - + name: Prepare + id: prepare + run: | + echo ::set-output name=build_tag::test + echo ::set-output name=container_name::librenms + echo ::set-output name=running_timeout::120 + echo ::set-output name=running_log_check::snmpd entered RUNNING state + - + name: Docker Build + run: | + docker build --tag ${{ steps.prepare.outputs.build_tag }} --file ${{ matrix.docker_file }} . + - + name: Start MariaDB container + run: | + docker run -d --name mariadb --hostname mariadb \ + -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" \ + -e "MYSQL_DATABASE=librenms" \ + -e "MYSQL_USER=librenms" \ + -e "MYSQL_PASSWORD=asupersecretpassword" \ + mariadb:10.2 \ + mysqld --sql-mode= --innodb-file-per-table=1 --lower-case-table-names=0 + - + name: Start container + run: | + docker run -d --name ${{ steps.prepare.outputs.container_name }} \ + -e "DB_HOST=mariadb" \ + -e "DB_NAME=librenms" \ + -e "DB_USER=librenms" \ + -e "DB_PASSWORD=asupersecretpassword" \ + ${{ steps.prepare.outputs.build_tag }} + - + name: Test run + run: | + TIMEOUT=$((SECONDS + ${{ steps.prepare.outputs.running_timeout }})) + while read LOGLINE; do + echo ${LOGLINE} + if [[ ${LOGLINE} == *"${{ steps.prepare.outputs.running_log_check }}"* ]]; then + echo "🎉 Container up!" + break + fi + if [[ $SECONDS -gt ${TIMEOUT} ]]; then + >&2 echo "❌ Failed to run ${{ steps.prepare.outputs.container_name }} container" + docker rm -f ${{ steps.prepare.outputs.container_name }} > /dev/null 2>&1 || true + exit 1 + fi + done < <(docker logs -f ${{ steps.prepare.outputs.container_name }} 2>&1) + + CONTAINER_STATUS=$(docker container inspect --format "{{.State.Status}}" ${{ steps.prepare.outputs.container_name }}) + if [[ ${CONTAINER_STATUS} != "running" ]]; then + >&2 echo "❌ Container ${{ steps.prepare.outputs.container_name }} returned status '$CONTAINER_STATUS'" + docker rm -f ${{ steps.prepare.outputs.container_name }} > /dev/null 2>&1 || true + exit 1 + fi + docker rm -f ${{ steps.prepare.outputs.container_name }} > /dev/null 2>&1 || true diff --git a/Dockerfile b/Dockerfile index 1252d40..b37b5ce 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,9 @@ FROM alpine:3.10 -ARG BUILD_DATE -ARG VCS_REF -ARG VERSION - LABEL maintainer="CrazyMax" \ - org.label-schema.build-date=$BUILD_DATE \ org.label-schema.name="librenms" \ org.label-schema.description="LibreNMS" \ - org.label-schema.version=$VERSION \ org.label-schema.url="https://github.com/librenms/docker" \ - org.label-schema.vcs-ref=$VCS_REF \ org.label-schema.vcs-url="https://github.com/librenms/docker" \ org.label-schema.vendor="LibreNMS" \ org.label-schema.schema-version="1.0" diff --git a/README.md b/README.md index 315f2b9..87b1f7a 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@

- Latest Version - Build Status + Latest Version + Build Status Docker Stars Docker Pulls Docker Repository on Quay diff --git a/build.sh b/build.sh deleted file mode 100755 index 31bc9c9..0000000 --- a/build.sh +++ /dev/null @@ -1,134 +0,0 @@ -#!/usr/bin/env bash -set -e - -PROJECT=librenms -BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") -BUILD_TAG=docker_build -BUILD_WORKINGDIR=${BUILD_WORKINGDIR:-.} -DOCKERFILE=${DOCKERFILE:-Dockerfile} -VCS_REF=${TRAVIS_COMMIT::7} -RUNNING_TIMEOUT=120 -RUNNING_LOG_CHECK="snmpd entered RUNNING state" - -PUSH_LATEST=${PUSH_LATEST:-true} -DOCKER_USERNAME=${DOCKER_USERNAME:-librenms} -DOCKER_REPONAME=${DOCKER_REPONAME:-librenms} -DOCKER_LOGIN=${DOCKER_LOGIN:-librenmsbot} -QUAY_USERNAME=${QUAY_USERNAME:-librenms} -QUAY_REPONAME=${QUAY_REPONAME:-librenms} -QUAY_LOGIN=${QUAY_LOGIN:-librenms+travis} - -# Check local or travis -BRANCH=${TRAVIS_BRANCH:-local} -if [[ ${TRAVIS_PULL_REQUEST} == "true" ]]; then - BRANCH=${TRAVIS_PULL_REQUEST_BRANCH} -fi -DOCKER_TAG=${BRANCH:-local} -if [[ "$BRANCH" == "master" ]]; then - DOCKER_TAG=latest -elif [[ "$BRANCH" == "local" ]]; then - BUILD_DATE= - VERSION=local -fi - -echo "PROJECT=${PROJECT}" -echo "VERSION=${VERSION}" -echo "BUILD_DATE=${BUILD_DATE}" -echo "BUILD_TAG=${BUILD_TAG}" -echo "BUILD_WORKINGDIR=${BUILD_WORKINGDIR}" -echo "DOCKERFILE=${DOCKERFILE}" -echo "VCS_REF=${VCS_REF}" -echo "PUSH_LATEST=${PUSH_LATEST}" -echo "DOCKER_LOGIN=${DOCKER_LOGIN}" -echo "DOCKER_USERNAME=${DOCKER_USERNAME}" -echo "DOCKER_REPONAME=${DOCKER_REPONAME}" -echo "QUAY_LOGIN=${QUAY_LOGIN}" -echo "QUAY_USERNAME=${QUAY_USERNAME}" -echo "QUAY_REPONAME=${QUAY_REPONAME}" -echo "TRAVIS_BRANCH=${TRAVIS_BRANCH}" -echo "TRAVIS_PULL_REQUEST=${TRAVIS_PULL_REQUEST}" -echo "BRANCH=${BRANCH}" -echo "DOCKER_TAG=${DOCKER_TAG}" -echo - -# Build -echo "### Build" -docker build \ - --build-arg BUILD_DATE=${BUILD_DATE} \ - --build-arg VCS_REF=${VCS_REF} \ - --build-arg VERSION=${VERSION} \ - -t ${BUILD_TAG} -f ${DOCKERFILE} ${BUILD_WORKINGDIR} -echo - -echo "### Test" -docker rm -f ${PROJECT} ${PROJECT}-db > /dev/null 2>&1 || true -docker network rm ${PROJECT} > /dev/null 2>&1 || true -docker network create -d bridge ${PROJECT} -docker run -d --network=${PROJECT} --name ${PROJECT}-db --hostname ${PROJECT}-db \ - -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" \ - -e "MYSQL_DATABASE=librenms" \ - -e "MYSQL_USER=librenms" \ - -e "MYSQL_PASSWORD=asupersecretpassword" \ - mariadb:10.2 \ - mysqld --sql-mode= --innodb-file-per-table=1 --lower-case-table-names=0 -docker run -d --network=${PROJECT} --link ${PROJECT}-db \ - -e "DB_HOST=${PROJECT}-db" \ - -e "DB_NAME=librenms" \ - -e "DB_USER=librenms" \ - -e "DB_PASSWORD=asupersecretpassword" \ - --name ${PROJECT} ${BUILD_TAG} -echo - -echo "### Waiting for ${PROJECT} to be up..." -TIMEOUT=$((SECONDS + RUNNING_TIMEOUT)) -while read LOGLINE; do - echo ${LOGLINE} - if [[ ${LOGLINE} == *"${RUNNING_LOG_CHECK}"* ]]; then - echo "Container up!" - break - fi - if [[ $SECONDS -gt ${TIMEOUT} ]]; then - >&2 echo "ERROR: Failed to run ${PROJECT} container" - docker rm -f ${PROJECT} > /dev/null 2>&1 || true - exit 1 - fi -done < <(docker logs -f ${PROJECT} 2>&1) -echo - -CONTAINER_STATUS=$(docker container inspect --format "{{.State.Status}}" ${PROJECT}) -if [[ ${CONTAINER_STATUS} != "running" ]]; then - >&2 echo "ERROR: Container ${PROJECT} returned status '$CONTAINER_STATUS'" - docker rm -f ${PROJECT} > /dev/null 2>&1 || true - exit 1 -fi -docker rm -f ${PROJECT} > /dev/null 2>&1 || true -echo - -if [ "${VERSION}" == "local" -o "${TRAVIS_PULL_REQUEST}" == "true" ]; then - echo "INFO: This is a PR or a local build, skipping push..." - exit 0 -fi -if [[ ! -z ${DOCKER_PASSWORD} ]]; then - echo "### Push to Docker Hub..." - echo "$DOCKER_PASSWORD" | docker login --username "$DOCKER_LOGIN" --password-stdin > /dev/null 2>&1 - if [ "${DOCKER_TAG}" == "latest" -a "${PUSH_LATEST}" == "true" ]; then - docker tag ${BUILD_TAG} ${DOCKER_USERNAME}/${DOCKER_REPONAME}:${DOCKER_TAG} - fi - if [[ "${VERSION}" != "latest" ]]; then - docker tag ${BUILD_TAG} ${DOCKER_USERNAME}/${DOCKER_REPONAME}:${VERSION} - fi - docker push ${DOCKER_USERNAME}/${DOCKER_REPONAME} - echo -fi -if [[ ! -z ${QUAY_PASSWORD} ]]; then - echo "### Push to Quay..." - echo "$QUAY_PASSWORD" | docker login quay.io --username "$QUAY_LOGIN" --password-stdin > /dev/null 2>&1 - if [ "${DOCKER_TAG}" == "latest" -a "${PUSH_LATEST}" == "true" ]; then - docker tag ${BUILD_TAG} quay.io/${QUAY_USERNAME}/${QUAY_REPONAME}:${DOCKER_TAG} - fi - if [[ "${VERSION}" != "latest" ]]; then - docker tag ${BUILD_TAG} quay.io/${QUAY_USERNAME}/${QUAY_REPONAME}:${VERSION} - fi - docker push quay.io/${QUAY_USERNAME}/${QUAY_REPONAME} - echo -fi From 70403bfaf72b40514bea97264c555626e2e05219 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 30 Sep 2019 15:30:40 +0200 Subject: [PATCH 119/523] Remove travis --- .travis.yml | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 48de4da..0000000 --- a/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -sudo: required - -services: - - docker - -env: - global: - - VERSION=1.56 - - DOCKER_USERNAME=librenms - - DOCKER_REPONAME=librenms - - DOCKER_LOGIN=librenmsbot - - QUAY_USERNAME=librenms - - QUAY_REPONAME=librenms - - QUAY_LOGIN=librenms+travis - - secure: I9FQ/3FSXYcFaMKM5l59307WUKDmtNMsURZY5GdxH0pS4nKYtLx9URhtR96/7YdyppzXFxW5hI9ooDm5kEvaapuFKnMltLLkFAyNKWUP2QbSq8/PdZhS5R6RCvdv4Eg8cIvS04R1u1effgbdsqg5w9CM3+WYgLnzbMX9oWcGrUzlo0PZAMeL/eTimOLi77esxYSQz9uss2lE4fmXOFnvAqlHSyfGgboHMf1ccL9y051CxQZwJHFtXuamFzoPipO/mxKkJ94Mgx6KRKlfj86bE3YC5IFg2GKFR8aANzGIE5fD0leJy8FAgXzHqxncaPws9W9EDsvm72sHy9ucZ3qd3hJv+94o1mpN2UCTH53vJfqS+FYZ1LQYGwC6OCetQbK2ydag2dFAKxmEhJ9id4KlLMDmR0S0WfQV544a9Tdy9Ej88NfpdyDRBtNkNHbAs2OKa7IP4hLOw0wq/XYAWksHoqncDuyBatBz2mcKY+lZ+oESfDOOXLDEjzhb0hzQjfjlm/J6pixtZ+WtrDpy2lwN+3gI+reRoUf06loTC5TtGe9wAvpx3m7Zj/bbD8yXHcSxRg5OKdKO2GU6WJlwdgmMWVLBlxoGeCV0EpughM/7Ho7YZ1t3PoyiezxMWmPTOIIB59xJjxPl+eKvO4njtKfCNvXJIJl82B7SGT1Pnq7NzOI= # DOCKER_PASSWORD - - secure: eoujj2pOklqQNSBmeKXSegi8PkNa57T6gCX2SJuTpuscNM7RBecZz+0ET9VhOpTxprvph43o8vB7QuvJFwM8AveoOy1GeySlRyt24Wilke3Gkg5h4NRGh25sdZZstyIhrQg7g4YS9fDV8BkcwU3RRJE9u5Cg5M3cl7H4m09Oj4g8xJZ3xJ4equZQERyq92KiKYpGgTMLDhMA65n9cyT41Wa0N9Ri52E3blrzWw8WYEGjj8CTkcgyJrWXgcbu72VFyQagQJ7ojitcwE1pci0SFonHtYJjML8Ig6MNlrrAknx0Tpx3x4OiErfU6pu5k3HiCM2OSBrqwBnNu9kz9cotLHxq8CT0ePQx2H71aew0ZJW14HOTTGHrrwbHfOhwnqI7npOY05RD97DZT0WlKInzUXDoyzypSJv4UHtjBpDa6zpoB34bcqqf+tOrtpkwO0ThxQVQPkd/ypZH6dmmO0RjP+QClByntHPefFLen8rKFRclu9FUU/7l4Lar4v0wSBYgnM58SN9PS+hssibZzrTdWTR5i82Xr8gk+qCaogpx8iE+OsBDe3yzr0IWfap+iG59V1I8+P+RMBNl4Lc0yS2gbEE30+Rhb4/vtUZlTGoVAEzPCWglASZOC/hfISPmCGkqI/jwjv38itrxQR5xrO/g0ecOi+ue4gl80tmWJnS8NRM= # QUAY_PASSWORD - -before_install: - - sudo apt-get update - - docker --version - -script: ./build.sh From d30292ec2812e0c3353ab3023580a409006c3f33 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 30 Sep 2019 15:31:56 +0200 Subject: [PATCH 120/523] Fix test workflow --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 080ea37..10ed8e1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,7 +25,7 @@ jobs: - name: Docker Build run: | - docker build --tag ${{ steps.prepare.outputs.build_tag }} --file ${{ matrix.docker_file }} . + docker build --tag ${{ steps.prepare.outputs.build_tag }} --file Dockerfile . - name: Start MariaDB container run: | From 48e1c8343ed5636645a80d7520b424b82de44aa0 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Oct 2019 17:56:42 +0200 Subject: [PATCH 121/523] Fix Docker labels --- .github/workflows/build.yml | 6 +++--- Dockerfile | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f4f8aa9..b6ba663 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,9 +35,9 @@ jobs: name: Docker Build run: | docker build \ - --label "org.label-schema.build-date=${{ steps.prepare.outputs.build_date }}" \ - --label "org.label-schema.version=${{ steps.prepare.outputs.version }}" \ - --label "org.label-schema.vcs-ref=${GITHUB_SHA::8}" \ + --build-arg "BUILD_DATE=${{ steps.prepare.outputs.build_date }}" \ + --build-arg "VCS_REF=${GITHUB_SHA::8}" \ + --build-arg "VERSION=${{ steps.prepare.outputs.version }}" \ --tag "${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }}" \ --tag "${{ steps.prepare.outputs.docker_image }}:latest" \ --tag "${{ steps.prepare.outputs.quay_image }}:${{ steps.prepare.outputs.version }}" \ diff --git a/Dockerfile b/Dockerfile index b37b5ce..1252d40 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,16 @@ FROM alpine:3.10 +ARG BUILD_DATE +ARG VCS_REF +ARG VERSION + LABEL maintainer="CrazyMax" \ + org.label-schema.build-date=$BUILD_DATE \ org.label-schema.name="librenms" \ org.label-schema.description="LibreNMS" \ + org.label-schema.version=$VERSION \ org.label-schema.url="https://github.com/librenms/docker" \ + org.label-schema.vcs-ref=$VCS_REF \ org.label-schema.vcs-url="https://github.com/librenms/docker" \ org.label-schema.vendor="LibreNMS" \ org.label-schema.schema-version="1.0" From 21769335749ff58e00b1fae48396c5c7d7eb48be Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Oct 2019 17:56:51 +0200 Subject: [PATCH 122/523] Update README --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index 87b1f7a..15f52c0 100644 --- a/README.md +++ b/README.md @@ -20,17 +20,11 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ ## Features -### Included - -* Alpine Linux 3.10, Nginx, PHP 7.3 * Cron tasks as a ["sidecar" container](doc/notes/crons.md) * Syslog-ng support through a ["sidecar" container](doc/notes/syslog-ng.md) * Ability to configure [distributed polling](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) * Ability to add custom Monitoring plugins (Nagios) * OPCache enabled to store precompiled script bytecode in shared memory - -### From docker-compose - * [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates * [Memcached](https://github.com/docker-library/memcached) image ready to use for better scalability * [RRDcached](https://github.com/crazy-max/docker-rrdcached) image ready to use for better scalability From 62ba88cf8b7f86522db3379e90b2d2cb12cd4e72 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Oct 2019 18:03:07 +0200 Subject: [PATCH 123/523] Fix rrdcached compose --- examples/compose/docker-compose.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 2d630f4..2a4099e 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -67,8 +67,6 @@ services: - "./rrd-journal:/data/journal" environment: - "TZ=${TZ}" - - "PUID=${PUID}" - - "PGID=${PGID}" - "LOG_LEVEL=LOG_INFO" - "WRITE_TIMEOUT=1800" - "WRITE_JITTER=1800" From f333dd5c5266cd92781a36b31baee32ee00918d6 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Oct 2019 18:07:27 +0200 Subject: [PATCH 124/523] Fix test --- .github/workflows/test.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 10ed8e1..52d1c10 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,10 +26,15 @@ jobs: name: Docker Build run: | docker build --tag ${{ steps.prepare.outputs.build_tag }} --file Dockerfile . + - + name: Create network + run: | + docker network create -d bridge ${{ steps.prepare.outputs.container_name }} - name: Start MariaDB container run: | docker run -d --name mariadb --hostname mariadb \ + --network ${{ steps.prepare.outputs.container_name }} -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" \ -e "MYSQL_DATABASE=librenms" \ -e "MYSQL_USER=librenms" \ @@ -40,6 +45,7 @@ jobs: name: Start container run: | docker run -d --name ${{ steps.prepare.outputs.container_name }} \ + --network ${{ steps.prepare.outputs.container_name }} -e "DB_HOST=mariadb" \ -e "DB_NAME=librenms" \ -e "DB_USER=librenms" \ From 8dae33ad0893e2a2804a2c0fd9e21f4f7aee3fb1 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Oct 2019 18:13:04 +0200 Subject: [PATCH 125/523] Fix test workflow --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 52d1c10..b3cbb9a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -34,7 +34,7 @@ jobs: name: Start MariaDB container run: | docker run -d --name mariadb --hostname mariadb \ - --network ${{ steps.prepare.outputs.container_name }} + --network ${{ steps.prepare.outputs.container_name }} \ -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" \ -e "MYSQL_DATABASE=librenms" \ -e "MYSQL_USER=librenms" \ @@ -45,7 +45,7 @@ jobs: name: Start container run: | docker run -d --name ${{ steps.prepare.outputs.container_name }} \ - --network ${{ steps.prepare.outputs.container_name }} + --network ${{ steps.prepare.outputs.container_name }} \ -e "DB_HOST=mariadb" \ -e "DB_NAME=librenms" \ -e "DB_USER=librenms" \ From a95e1ab194bab4280b24c539b8be8176d81799a1 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Oct 2019 18:13:12 +0200 Subject: [PATCH 126/523] Add ghaction-github-labeler --- .github/labels.yml | 78 ++++++++++++++++++++++++++++++++++++ .github/workflows/labels.yml | 23 +++++++++++ 2 files changed, 101 insertions(+) create mode 100644 .github/labels.yml create mode 100644 .github/workflows/labels.yml diff --git a/.github/labels.yml b/.github/labels.yml new file mode 100644 index 0000000..679d550 --- /dev/null +++ b/.github/labels.yml @@ -0,0 +1,78 @@ +## https://github.com/crazy-max/ghaction-github-labeler +- # bot + name: ":robot: bot" + color: "69cde9" + description: "" +- # bug + name: ":bug: bug" + color: "b60205" + description: "" + from_name: "bug" +- # documentation + name: ":memo: documentation" + color: "c5def5" + description: "" +- # duplicate + name: ":busts_in_silhouette: duplicate" + color: "cccccc" + description: "" + from_name: "duplicate" +- # enhancement + name: ":sparkles: enhancement" + color: "0054ca" + description: "" + from_name: "enhancement" +- # feature request + name: ":bulb: feature request" + color: "0e8a16" + description: "" +- # feedback + name: ":mega: feedback" + color: "03a9f4" + description: "" +- # future maybe + name: ":rocket: future maybe" + color: "fef2c0" + description: "" +- # good first issue + name: ":hatching_chick: good first issue" + color: "7057ff" + description: "" + from_name: "good first issue" +- # help wanted + name: ":pray: help wanted" + color: "4caf50" + description: "" + from_name: "help wanted" +- # hold + name: ":hand: hold" + color: "24292f" + description: "" +- # invalid + name: ":no_entry_sign: invalid" + color: "e6e6e6" + description: "" + from_name: "invalid" +- # maybe bug + name: ":interrobang: maybe bug" + color: "ff5722" + description: "" +- # needs more info + name: ":thinking: needs more info" + color: "795548" + description: "" + from_name: "needs info" +- # question + name: ":question: question" + color: "3f51b5" + description: "" + from_name: "question" +- # upstream + name: ":eyes: upstream" + color: "fbca04" + description: "" +- # wontfix + name: ":coffin: wontfix" + color: "ffffff" + description: "" + from_name: "wontfix" diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml new file mode 100644 index 0000000..2308ace --- /dev/null +++ b/.github/workflows/labels.yml @@ -0,0 +1,23 @@ +name: labels + +on: + push: + branches: + - 'master' + paths: + - '.github/labels.yml' + - '.github/workflows/labels.yml' + +jobs: + labeler: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v1 + - + name: Run Labeler + if: success() + uses: crazy-max/ghaction-github-labeler@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 34d842341ede8a8628e4922316db3996813b0a95 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Oct 2019 18:18:21 +0200 Subject: [PATCH 127/523] Fix test workflow --- .github/workflows/test.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b3cbb9a..b6cfd9f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,15 +26,10 @@ jobs: name: Docker Build run: | docker build --tag ${{ steps.prepare.outputs.build_tag }} --file Dockerfile . - - - name: Create network - run: | - docker network create -d bridge ${{ steps.prepare.outputs.container_name }} - name: Start MariaDB container run: | docker run -d --name mariadb --hostname mariadb \ - --network ${{ steps.prepare.outputs.container_name }} \ -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" \ -e "MYSQL_DATABASE=librenms" \ -e "MYSQL_USER=librenms" \ @@ -44,8 +39,7 @@ jobs: - name: Start container run: | - docker run -d --name ${{ steps.prepare.outputs.container_name }} \ - --network ${{ steps.prepare.outputs.container_name }} \ + docker run -d --link mariadb --name ${{ steps.prepare.outputs.container_name }} \ -e "DB_HOST=mariadb" \ -e "DB_NAME=librenms" \ -e "DB_USER=librenms" \ From 3313743ddb8f268b40e9755a6d4836bb0a75af64 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Oct 2019 18:18:27 +0200 Subject: [PATCH 128/523] Final labels --- .github/labels.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/labels.yml b/.github/labels.yml index 679d550..09d7750 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -7,7 +7,6 @@ name: ":bug: bug" color: "b60205" description: "" - from_name: "bug" - # documentation name: ":memo: documentation" color: "c5def5" @@ -16,12 +15,10 @@ name: ":busts_in_silhouette: duplicate" color: "cccccc" description: "" - from_name: "duplicate" - # enhancement name: ":sparkles: enhancement" color: "0054ca" description: "" - from_name: "enhancement" - # feature request name: ":bulb: feature request" color: "0e8a16" @@ -38,12 +35,10 @@ name: ":hatching_chick: good first issue" color: "7057ff" description: "" - from_name: "good first issue" - # help wanted name: ":pray: help wanted" color: "4caf50" description: "" - from_name: "help wanted" - # hold name: ":hand: hold" color: "24292f" @@ -52,7 +47,6 @@ name: ":no_entry_sign: invalid" color: "e6e6e6" description: "" - from_name: "invalid" - # maybe bug name: ":interrobang: maybe bug" color: "ff5722" @@ -61,12 +55,10 @@ name: ":thinking: needs more info" color: "795548" description: "" - from_name: "needs info" - # question name: ":question: question" color: "3f51b5" description: "" - from_name: "question" - # upstream name: ":eyes: upstream" color: "fbca04" @@ -75,4 +67,3 @@ name: ":coffin: wontfix" color: "ffffff" description: "" - from_name: "wontfix" From 31594a783f10e4266d3bad4b966210fafd8960c5 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Oct 2019 19:35:11 +0200 Subject: [PATCH 129/523] Remove workflow test for now * Fix test workflow * Fix test workflow * Fix test workflow * Update labels workflow * Remove workflow test for now --- .github/workflows/labels.yml | 2 + .github/workflows/test.yml | 71 ------------------------------------ 2 files changed, 2 insertions(+), 71 deletions(-) delete mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 2308ace..dd984b6 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -13,9 +13,11 @@ jobs: runs-on: ubuntu-latest steps: - + # https://github.com/actions/checkout name: Checkout uses: actions/checkout@v1 - + # https://github.com/crazy-max/ghaction-github-labeler name: Run Labeler if: success() uses: crazy-max/ghaction-github-labeler@v1 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index b6cfd9f..0000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,71 +0,0 @@ -name: test - -on: - pull_request: - branches: 'master' - push: - branches: 'master' - -jobs: - test: - runs-on: ubuntu-latest - steps: - - - # https://github.com/actions/checkout - name: Checkout - uses: actions/checkout@v1 - - - name: Prepare - id: prepare - run: | - echo ::set-output name=build_tag::test - echo ::set-output name=container_name::librenms - echo ::set-output name=running_timeout::120 - echo ::set-output name=running_log_check::snmpd entered RUNNING state - - - name: Docker Build - run: | - docker build --tag ${{ steps.prepare.outputs.build_tag }} --file Dockerfile . - - - name: Start MariaDB container - run: | - docker run -d --name mariadb --hostname mariadb \ - -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" \ - -e "MYSQL_DATABASE=librenms" \ - -e "MYSQL_USER=librenms" \ - -e "MYSQL_PASSWORD=asupersecretpassword" \ - mariadb:10.2 \ - mysqld --sql-mode= --innodb-file-per-table=1 --lower-case-table-names=0 - - - name: Start container - run: | - docker run -d --link mariadb --name ${{ steps.prepare.outputs.container_name }} \ - -e "DB_HOST=mariadb" \ - -e "DB_NAME=librenms" \ - -e "DB_USER=librenms" \ - -e "DB_PASSWORD=asupersecretpassword" \ - ${{ steps.prepare.outputs.build_tag }} - - - name: Test run - run: | - TIMEOUT=$((SECONDS + ${{ steps.prepare.outputs.running_timeout }})) - while read LOGLINE; do - echo ${LOGLINE} - if [[ ${LOGLINE} == *"${{ steps.prepare.outputs.running_log_check }}"* ]]; then - echo "🎉 Container up!" - break - fi - if [[ $SECONDS -gt ${TIMEOUT} ]]; then - >&2 echo "❌ Failed to run ${{ steps.prepare.outputs.container_name }} container" - docker rm -f ${{ steps.prepare.outputs.container_name }} > /dev/null 2>&1 || true - exit 1 - fi - done < <(docker logs -f ${{ steps.prepare.outputs.container_name }} 2>&1) - - CONTAINER_STATUS=$(docker container inspect --format "{{.State.Status}}" ${{ steps.prepare.outputs.container_name }}) - if [[ ${CONTAINER_STATUS} != "running" ]]; then - >&2 echo "❌ Container ${{ steps.prepare.outputs.container_name }} returned status '$CONTAINER_STATUS'" - docker rm -f ${{ steps.prepare.outputs.container_name }} > /dev/null 2>&1 || true - exit 1 - fi - docker rm -f ${{ steps.prepare.outputs.container_name }} > /dev/null 2>&1 || true From 616d2b901ee0ffcf56798313777d5b211fe4c69b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 25 Oct 2019 15:15:35 +0200 Subject: [PATCH 130/523] Fix CVE-2019-11043 (#43) --- CHANGELOG.md | 4 ++++ assets/tpls/etc/nginx/nginx.conf | 19 ++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4153da0..4b2c642 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.56-RC2 (2019/10/25) + +* Fix CVE-2019-11043 + ## 1.56-RC1 (2019/09/30) * LibreNMS 1.56 diff --git a/assets/tpls/etc/nginx/nginx.conf b/assets/tpls/etc/nginx/nginx.conf index 0a2aebb..14ffd84 100644 --- a/assets/tpls/etc/nginx/nginx.conf +++ b/assets/tpls/etc/nginx/nginx.conf @@ -60,15 +60,6 @@ http { ## Serve already compressed files directly, bypassing on-the-fly compression gzip_static on; - ## FastCGI - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - include fastcgi_params; - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_buffers 256 4k; - fastcgi_intercept_errors on; - fastcgi_read_timeout 14400; - server { listen 80; listen [::]:80; @@ -85,7 +76,17 @@ http { } location ~ \.php$ { + fastcgi_split_path_info ^(.+\.php)(/.*)$; + set $path_info $fastcgi_path_info; + try_files $fastcgi_script_name =404; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $path_info; + fastcgi_index index.php; fastcgi_pass unix:/var/run/php-fpm7.sock; + fastcgi_buffers 256 4k; + fastcgi_intercept_errors on; + fastcgi_read_timeout 14400; } location ~ /\.ht { From 66abae21893e3222ea78a3bcabe3c2b7e5bfef2f Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 26 Oct 2019 17:13:46 +0200 Subject: [PATCH 131/523] Base image update --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b2c642..16f345e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.56-RC3 (2019/10/26) + +* Base image update + ## 1.56-RC2 (2019/10/25) * Fix CVE-2019-11043 From 4a5f8a0f4cc5af2c25a9bf503d6ce7a8d2ba75f8 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 30 Oct 2019 16:53:11 +0100 Subject: [PATCH 132/523] Dedicated example for Traefik (#44) --- README.md | 4 +- doc/usage.md | 4 +- examples/compose/docker-compose.yml | 40 +------ examples/traefik/.env | 11 ++ examples/traefik/docker-compose.yml | 170 ++++++++++++++++++++++++++++ examples/traefik/librenms.env | 23 ++++ 6 files changed, 211 insertions(+), 41 deletions(-) create mode 100644 examples/traefik/.env create mode 100644 examples/traefik/docker-compose.yml create mode 100644 examples/traefik/librenms.env diff --git a/README.md b/README.md index 15f52c0..12e4713 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

+

Latest Version @@ -25,7 +25,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * Ability to configure [distributed polling](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) * Ability to add custom Monitoring plugins (Nagios) * OPCache enabled to store precompiled script bytecode in shared memory -* [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates +* [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates (see [this template](examples/traefik)) * [Memcached](https://github.com/docker-library/memcached) image ready to use for better scalability * [RRDcached](https://github.com/crazy-max/docker-rrdcached) image ready to use for better scalability * [Postfix SMTP relay](https://github.com/juanluisbaptiste/docker-postfix) image to send emails diff --git a/doc/usage.md b/doc/usage.md index 3a7d3ba..702ff94 100644 --- a/doc/usage.md +++ b/doc/usage.md @@ -2,11 +2,9 @@ ### Docker Compose -Docker compose is the recommended way to run this image. Copy the content of folder [examples/compose](../examples/compose) in `/var/librenms/` on your host for example. Edit the compose and env files with your preferences and run the following commands : +Docker compose is the recommended way to run this image. Copy the content of folder [examples/compose](../examples/compose) in `/var/librenms/` on your host for example. Edit the compose and env files with your preferences and run the following commands: ```bash -touch acme.json -chmod 600 acme.json docker-compose up -d docker-compose logs -f ``` diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 2a4099e..6601c84 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -1,37 +1,6 @@ version: "3.5" services: - traefik: - image: traefik:1.7-alpine - container_name: traefik - command: - - "--logLevel=INFO" - - "--defaultentrypoints=http,https" - - "--entryPoints=Name:http Address::80 Redirect.EntryPoint:https" - - "--entryPoints=Name:https Address::443 TLS" - - "--docker" - - "--docker.exposedbydefault=false" - - "--docker.domain=example.com" - - "--acme=true" - - "--acme.acmelogging=true" - - "--acme.email=webmaster@example.com" - - "--acme.storage=acme.json" - - "--acme.entryPoint=https" - - "--acme.onhostrule=true" - - "--acme.httpchallenge=true" - - "--acme.httpchallenge.entrypoint=http" - ports: - - target: 80 - published: 80 - protocol: tcp - - target: 443 - published: 443 - protocol: tcp - volumes: - - "./acme.json:/acme.json" - - "/var/run/docker.sock:/var/run/docker.sock" - restart: always - db: image: mariadb:10.2 container_name: librenms_db @@ -91,6 +60,10 @@ services: container_name: librenms domainname: example.com hostname: librenms + ports: + - target: 80 + published: 80 + protocol: tcp depends_on: - db - memcached @@ -98,11 +71,6 @@ services: - smtp volumes: - "./librenms:/data" - labels: - - "traefik.enable=true" - - "traefik.backend=librenms" - - "traefik.port=80" - - "traefik.frontend.rule=Host:librenms.example.com" environment: - "TZ=${TZ}" - "PUID=${PUID}" diff --git a/examples/traefik/.env b/examples/traefik/.env new file mode 100644 index 0000000..a847768 --- /dev/null +++ b/examples/traefik/.env @@ -0,0 +1,11 @@ +MYSQL_DATABASE=librenms +MYSQL_USER=librenms +MYSQL_PASSWORD=asupersecretpassword + +SMTP_SERVER=smtp.example.com +SMTP_USERNAME=smtp@example.com +SMTP_PASSWORD= + +TZ=Europe/Paris +PUID=1000 +PGID=1000 diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml new file mode 100644 index 0000000..2a4099e --- /dev/null +++ b/examples/traefik/docker-compose.yml @@ -0,0 +1,170 @@ +version: "3.5" + +services: + traefik: + image: traefik:1.7-alpine + container_name: traefik + command: + - "--logLevel=INFO" + - "--defaultentrypoints=http,https" + - "--entryPoints=Name:http Address::80 Redirect.EntryPoint:https" + - "--entryPoints=Name:https Address::443 TLS" + - "--docker" + - "--docker.exposedbydefault=false" + - "--docker.domain=example.com" + - "--acme=true" + - "--acme.acmelogging=true" + - "--acme.email=webmaster@example.com" + - "--acme.storage=acme.json" + - "--acme.entryPoint=https" + - "--acme.onhostrule=true" + - "--acme.httpchallenge=true" + - "--acme.httpchallenge.entrypoint=http" + ports: + - target: 80 + published: 80 + protocol: tcp + - target: 443 + published: 443 + protocol: tcp + volumes: + - "./acme.json:/acme.json" + - "/var/run/docker.sock:/var/run/docker.sock" + restart: always + + db: + image: mariadb:10.2 + container_name: librenms_db + command: + - "mysqld" + - "--sql-mode=" + - "--innodb-file-per-table=1" + - "--lower-case-table-names=0" + - "--character-set-server=utf8" + - "--collation-server=utf8_unicode_ci" + volumes: + - "./db:/var/lib/mysql" + environment: + - "TZ=${TZ}" + - "MYSQL_ALLOW_EMPTY_PASSWORD=yes" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + restart: always + + memcached: + image: memcached:alpine + container_name: librenms_memcached + environment: + - "TZ=${TZ}" + restart: always + + rrdcached: + image: crazymax/rrdcached + container_name: librenms_rrdcached + volumes: + - "./librenms/rrd:/data/db" + - "./rrd-journal:/data/journal" + environment: + - "TZ=${TZ}" + - "LOG_LEVEL=LOG_INFO" + - "WRITE_TIMEOUT=1800" + - "WRITE_JITTER=1800" + - "WRITE_THREADS=4" + - "FLUSH_DEAD_DATA_INTERVAL=3600" + restart: always + + smtp: + image: juanluisbaptiste/postfix + container_name: librenms_smtp + volumes: + - "/etc/localtime:/etc/localtime:ro" + environment: + - "SERVER_HOSTNAME=librenms.example.com" + - "SMTP_SERVER=${SMTP_SERVER}" + - "SMTP_USERNAME=${SMTP_USERNAME}" + - "SMTP_PASSWORD=${SMTP_PASSWORD}" + restart: always + + librenms: + image: librenms/librenms:latest + container_name: librenms + domainname: example.com + hostname: librenms + depends_on: + - db + - memcached + - rrdcached + - smtp + volumes: + - "./librenms:/data" + labels: + - "traefik.enable=true" + - "traefik.backend=librenms" + - "traefik.port=80" + - "traefik.frontend.rule=Host:librenms.example.com" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=30" + env_file: + - "./librenms.env" + restart: always + + cron: + image: librenms/librenms:latest + container_name: librenms_cron + domainname: example.com + hostname: librenms + depends_on: + - librenms + volumes: + - "./librenms:/data" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=30" + - "SIDECAR_CRON=1" + env_file: + - "./librenms.env" + restart: always + + syslog-ng: + image: librenms/librenms:latest + container_name: librenms_syslog + domainname: example.com + hostname: librenms + depends_on: + - librenms + ports: + - target: 514 + published: 514 + protocol: tcp + - target: 514 + published: 514 + protocol: udp + volumes: + - "./librenms:/data" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=30" + - "SIDECAR_SYSLOGNG=1" + env_file: + - "./librenms.env" + restart: always diff --git a/examples/traefik/librenms.env b/examples/traefik/librenms.env new file mode 100644 index 0000000..d200733 --- /dev/null +++ b/examples/traefik/librenms.env @@ -0,0 +1,23 @@ +MEMORY_LIMIT=256M +UPLOAD_MAX_SIZE=16M +OPCACHE_MEM_SIZE=128 +REAL_IP_FROM=0.0.0.0/32 +REAL_IP_HEADER=X-Forwarded-For +LOG_IP_VAR=http_x_forwarded_for + +LIBRENMS_POLLER_THREADS=16 +LIBRENMS_POLLER_INTERVAL=5 + +LIBRENMS_CRON_DISCOVERY_ENABLE=true +LIBRENMS_CRON_DAILY_ENABLE=true +LIBRENMS_CRON_ALERTS_ENABLE=true +LIBRENMS_CRON_BILLING_ENABLE=true +LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=true +LIBRENMS_CRON_CHECK_SERVICES_ENABLE=true +LIBRENMS_CRON_POLLER_ENABLE=true + +LIBRENMS_SNMP_COMMUNITY=librenmsdocker +MEMCACHED_HOST=memcached +MEMCACHED_PORT=11211 +RRDCACHED_HOST=rrdcached +RRDCACHED_PORT=42217 From 1229a66464025086b1bf77115a918ab9b45a4716 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 30 Oct 2019 16:56:34 +0100 Subject: [PATCH 133/523] LibreNMS 1.57 --- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 16f345e..0c380a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.57-RC1 (2019/10/30) + +* LibreNMS 1.57 + ## 1.56-RC3 (2019/10/26) * Base image update diff --git a/Dockerfile b/Dockerfile index 1252d40..863b83a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -85,7 +85,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.56" \ +ENV LIBRENMS_VERSION="1.57" \ LIBRENMS_PATH="/opt/librenms" \ DATA_PATH="/data" \ CRONTAB_PATH="/var/spool/cron/crontabs" From fbb387d0dad754da7c4418bae75afe2c7fe0e6fa Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 15 Nov 2019 11:40:42 +0100 Subject: [PATCH 134/523] Update README --- .github/FUNDING.yml | 2 +- .res/patreon.png | Bin 956 -> 0 bytes .res/paypal.png | Bin 956 -> 0 bytes README.md | 9 +++------ 4 files changed, 4 insertions(+), 7 deletions(-) delete mode 100644 .res/patreon.png delete mode 100644 .res/paypal.png diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index dffc4d3..04c13b5 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ -patreon: crazymax +github: crazy-max custom: https://www.paypal.me/crazyws diff --git a/.res/patreon.png b/.res/patreon.png deleted file mode 100644 index 8b716190abbdde5915e4dfe0257b56ef6f9a6d14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 956 zcmV;t14I0YP)WdLMpZ7v`&AaiAKbS@w=FflnGFf%$bF*-3cAS*C2FfiP}oW1=GGZ;Q#;t32;bRa{vGf5&!@T5&_cPe*6Fc00d`2O+f$vv5yPeeONo8BPiSg?(!%t>O-} ztpc=-C#1Ye=hJ$+1NOC{aBd1~YKpd5z?FXT>e1uu9V7*c^ZCgc>ActvO;N6&mke-O zJ4T8x4v=$GvUY@&E(5i#BEgec1W#fSJc&i{Bo@JwSWCehwBTrM3fmixaCeKCje)5IFemVK@%uB2 zOKy>Ye@?Owh)h}yypu~z6QVO(Q$;%mL6Jo(f!Dq0r$MK;Ul{IX9~4=%5_s<8$=c+7 zl-(*s1(~VY2XhVJy}{iuJ-lcLCOlU^wVe#0(LZ=;Ba3pEdF*2fcypVrD#2S8UauCl zwhLp*|- zNqlsC1jbwAiDsMr_m{tP$ARYoHP1#-vq10|2(!nyc5cHin{vQ20IHZo&O8~WpWdMp z+pf55`rw9@$wctNCpPN~k867$y{d+(APZ-$ItFKZ3GGI}6M;z!FLIzHE1UAcbE4HgklAB1_Cb@&&UWdZLu&$GEFM8Ojl+sAc)_fHfv8=QU#GR^kgvs5TY zJtqX~N$-2udmn;FB6#Z~f+w+-g4cOWdLMpZ7v`&AaiAKbS@w=FflnGFf%$bFgi3aAS*C2FffnX87=?-00(qQ zO+^Re2>}oU1>uNPV*mgE32;bRa{vGf5&!@T5&_cPe*6Fc00d`2O+f$vv5yPA=8(R`1bZHc47~;*76W7wJbov@Ag>&pl*v8UhIp+hO)0L8 z@G{7`0bU+VqvYHGFAt_ss-w~Uj{q-D^m_JQz@VF;${R!|m$3PYM+oXjfCHqe@&-Qx z%u0ZvYnA{!ckKYFs=C3aKT1+rT)j^MoFGwEH`p56fr5C= zpN}t;0;c=N4ov49U^2DLHTatwOB7`lLVo) zik!~CYM){K^5_ss1*5CTX16O*F6j*cUY_FMrpiNjuf4^}ELt(-*pS^@I$Gy6*5;-a zLt|C@PoG!divq(F<^>x50rxc>5&{|E{fVYHuns>OFj?OwN2HTRaU6kCOZD`A!rDvL z`!w3hK}Z6_E3%_6C1M&m%eGwB8dim=h8(8kzjH$_cy@7u$al@ z8pGN)dl*9~TLYIcC#vuk&xF}$2G*2^a$_wDU1GqTv003RYG36+Tn<-nnV;;^*9I_a z5Dedu^Jx{(JszS8!RVYW7EHwQ2JTNf)BJZ^8)>^@xKpwf#KT>G?tBVkg%w_j{$mgd z=GBPB<7l-1s%Uk4`R}ROgfn9&tf_Rg1&!% e4CtUTF}VXI=*B~T`6gok0000Docker Pulls Docker Repository on Quay Code Quality -
Support me on Patreon +
Become a sponsor Donate Paypal

@@ -52,12 +52,9 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ ## How can I help ? -All kinds of contributions are welcome :raised_hands:!
-The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon:
-But we're not gonna lie to each other, I'd rather you buy me a beer or two :beers:! +All kinds of contributions are welcome :raised_hands:! The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon: You can also support this project by [**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max) :clap: or by making a [Paypal donation](https://www.paypal.me/crazyws) to ensure this journey continues indefinitely! :rocket: -[![Support me on Patreon](.res/patreon.png)](https://www.patreon.com/crazymax) -[![Paypal Donate](.res/paypal.png)](https://www.paypal.me/crazyws) +Thanks again for your support, it is much appreciated! :pray: ## License From 3a92d62e865ed7a18e52b781ed56f209ac40c84d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 19 Nov 2019 14:09:34 +0100 Subject: [PATCH 135/523] Run as non-root user (#6) Switch to s6-overlay as process supervisor Prevent exposing Nginx and PHP version Bind to unprivileged port (8000) Remove php-fpm access log (already mirrored by nginx) --- .gitignore | 11 +- CHANGELOG.md | 17 ++ Dockerfile | 35 ++- README.md | 2 + assets/etc/cont-init.d/00-fix-logs.sh | 4 + assets/etc/cont-init.d/01-fix-uidgid.sh | 11 + assets/etc/cont-init.d/02-fix-perms.sh | 14 ++ .../etc/cont-init.d/03-config.sh | 211 +++--------------- assets/etc/cont-init.d/04-svc-main.sh | 92 ++++++++ assets/etc/cont-init.d/05-svc-cron.sh | 97 ++++++++ assets/etc/cont-init.d/06-svc-syslogng.sh | 25 +++ assets/etc/supervisord.conf | 21 -- assets/etc/supervisord/cron.conf | 6 - assets/etc/supervisord/nginx.conf | 8 - assets/etc/supervisord/php.conf | 8 - assets/etc/supervisord/snmpd.conf | 7 - assets/etc/supervisord/syslog-ng.conf | 6 - assets/etc/syslog-ng/syslog-ng.conf | 2 +- assets/tpls/etc/nginx/nginx.conf | 15 +- assets/tpls/etc/php7/php-fpm.d/www.conf | 14 +- assets/usr/local/bin/cron | 5 - doc/docker/environment-variables.md | 70 +++--- doc/docker/ports.md | 4 +- doc/docker/volumes.md | 4 +- doc/usage.md | 2 +- examples/compose/docker-compose.yml | 10 +- examples/traefik/docker-compose.yml | 8 +- 27 files changed, 377 insertions(+), 332 deletions(-) create mode 100644 assets/etc/cont-init.d/00-fix-logs.sh create mode 100644 assets/etc/cont-init.d/01-fix-uidgid.sh create mode 100644 assets/etc/cont-init.d/02-fix-perms.sh rename entrypoint.sh => assets/etc/cont-init.d/03-config.sh (53%) create mode 100644 assets/etc/cont-init.d/04-svc-main.sh create mode 100644 assets/etc/cont-init.d/05-svc-cron.sh create mode 100644 assets/etc/cont-init.d/06-svc-syslogng.sh delete mode 100644 assets/etc/supervisord.conf delete mode 100644 assets/etc/supervisord/cron.conf delete mode 100644 assets/etc/supervisord/nginx.conf delete mode 100644 assets/etc/supervisord/php.conf delete mode 100644 assets/etc/supervisord/snmpd.conf delete mode 100644 assets/etc/supervisord/syslog-ng.conf delete mode 100644 assets/usr/local/bin/cron diff --git a/.gitignore b/.gitignore index 44cf1be..9b9ce6b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,4 @@ -# Jetbrains -/.idea -/*.iml - -# Visual Studio Code -/.vscode - -# App /.dev +/.idea +/.vscode +/*.iml diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c380a4..d0b4178 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## 1.57-RC2 (2019/11/19) + +* :warning: Run as non-root user (#6) +* Switch to [s6-overlay](https://github.com/just-containers/s6-overlay/) as process supervisor +* Prevent exposing Nginx and PHP version +* :warning: Bind to unprivileged port (8000) +* Remove php-fpm access log (already mirrored by nginx) + +> :warning: **UPGRADE NOTES** +> As the Docker container now runs as a non-root user, you have to first stop the container and change permissions to `data` volume: +> ``` +> docker-compose stop +> chown -R ${PUID}:${PGID} data/ +> docker-compose pull +> docker-compose up -d +> ``` + ## 1.57-RC1 (2019/10/30) * LibreNMS 1.57 diff --git a/Dockerfile b/Dockerfile index 863b83a..0338d4f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -70,7 +70,7 @@ RUN apk --update --no-cache add \ rrdtool \ runit \ shadow \ - supervisor \ + su-exec \ syslog-ng \ ttf-dejavu \ tzdata \ @@ -80,6 +80,8 @@ RUN apk --update --no-cache add \ && pip2 install python-memcached \ && pip3 install --upgrade pip \ && pip3 install python-memcached \ + && wget -q "https://github.com/just-containers/s6-overlay/releases/latest/download/s6-overlay-amd64.tar.gz" -qO "/tmp/s6-overlay-amd64.tar.gz" \ + && tar xzf /tmp/s6-overlay-amd64.tar.gz -C / \ && sed -i -e "s/;date\.timezone.*/date\.timezone = UTC/" /etc/php7/php.ini \ && rm -rf /var/cache/apk/* /var/www/* /tmp/* \ && setcap cap_net_raw+ep /usr/bin/nmap \ @@ -87,39 +89,34 @@ RUN apk --update --no-cache add \ ENV LIBRENMS_VERSION="1.57" \ LIBRENMS_PATH="/opt/librenms" \ - DATA_PATH="/data" \ - CRONTAB_PATH="/var/spool/cron/crontabs" + PUID="1000" \ + PGID="1000" \ + S6_BEHAVIOUR_IF_STAGE2_FAILS="2" RUN mkdir -p /opt \ - && addgroup -g 1000 librenms \ - && adduser -u 1000 -G librenms -h ${LIBRENMS_PATH} -s /bin/sh -D librenms \ - && passwd -l librenms \ - && usermod -a -G librenms nginx \ && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ && git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git ${LIBRENMS_PATH} \ - && chown -R librenms. ${LIBRENMS_PATH} \ - && su - librenms -c "composer install --no-dev --no-interaction --no-ansi --working-dir=${LIBRENMS_PATH}" \ + && composer install --no-dev --no-interaction --no-ansi --working-dir=${LIBRENMS_PATH} \ && curl -sSLk -q https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro -o /usr/bin/distro \ && chmod +x /usr/bin/distro \ - && mkdir -p /data ${LIBRENMS_PATH}/config.d /var/log/supervisord \ + && mkdir -p ${LIBRENMS_PATH}/config.d \ && cp ${LIBRENMS_PATH}/config.php.default ${LIBRENMS_PATH}/config.php \ && cp ${LIBRENMS_PATH}/snmpd.conf.example /etc/snmp/snmpd.conf \ && sed -i "1s|.*|#!/usr/bin/env python3|" ${LIBRENMS_PATH}/snmp-scan.py \ - && echo "foreach (glob(\"${DATA_PATH}/config/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ + && echo "foreach (glob(\"/data/config/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ - && chown -R librenms. ${DATA_PATH} ${LIBRENMS_PATH} \ - && chown -R nginx. /var/lib/nginx /var/log/nginx /var/log/php7 /var/tmp/nginx \ && pip3 install -r ${LIBRENMS_PATH}/requirements.txt \ + && chown -R nobody.nogroup ${LIBRENMS_PATH} \ && rm -rf /tmp/* -COPY entrypoint.sh /entrypoint.sh COPY assets / -RUN chmod a+x /entrypoint.sh /usr/local/bin/* +RUN addgroup -g ${PGID} librenms \ + && adduser -D -h ${LIBRENMS_PATH} -u ${PUID} -G librenms -s /bin/sh -D librenms \ + && mkdir -p /data /var/run/nginx /var/run/php-fpm -EXPOSE 80 514 514/udp +EXPOSE 8000 514 514/udp WORKDIR ${LIBRENMS_PATH} -VOLUME [ "${DATA_PATH}" ] +VOLUME [ "/data" ] -ENTRYPOINT [ "/entrypoint.sh" ] -CMD [ "/usr/bin/supervisord", "-c", "/etc/supervisord.conf" ] +ENTRYPOINT [ "/init" ] diff --git a/README.md b/README.md index 41ee0de..24e424d 100644 --- a/README.md +++ b/README.md @@ -20,11 +20,13 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ ## Features +* Run as non-root user * Cron tasks as a ["sidecar" container](doc/notes/crons.md) * Syslog-ng support through a ["sidecar" container](doc/notes/syslog-ng.md) * Ability to configure [distributed polling](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) * Ability to add custom Monitoring plugins (Nagios) * OPCache enabled to store precompiled script bytecode in shared memory +* [s6-overlay](https://github.com/just-containers/s6-overlay/) as process supervisor * [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates (see [this template](examples/traefik)) * [Memcached](https://github.com/docker-library/memcached) image ready to use for better scalability * [RRDcached](https://github.com/crazy-max/docker-rrdcached) image ready to use for better scalability diff --git a/assets/etc/cont-init.d/00-fix-logs.sh b/assets/etc/cont-init.d/00-fix-logs.sh new file mode 100644 index 0000000..51a558c --- /dev/null +++ b/assets/etc/cont-init.d/00-fix-logs.sh @@ -0,0 +1,4 @@ +#!/usr/bin/with-contenv sh + +# Fix access rights to stdout and stderr +chown ${PUID}:${PGID} /proc/self/fd/1 /proc/self/fd/2 diff --git a/assets/etc/cont-init.d/01-fix-uidgid.sh b/assets/etc/cont-init.d/01-fix-uidgid.sh new file mode 100644 index 0000000..d8f58a4 --- /dev/null +++ b/assets/etc/cont-init.d/01-fix-uidgid.sh @@ -0,0 +1,11 @@ +#!/usr/bin/with-contenv sh + +if [ -n "${PGID}" ] && [ "${PGID}" != "$(id -g librenms)" ]; then + echo "Switching to PGID ${PGID}..." + sed -i -e "s/^librenms:\([^:]*\):[0-9]*/librenms:\1:${PGID}/" /etc/group + sed -i -e "s/^librenms:\([^:]*\):\([0-9]*\):[0-9]*/librenms:\1:\2:${PGID}/" /etc/passwd +fi +if [ -n "${PUID}" ] && [ "${PUID}" != "$(id -u librenms)" ]; then + echo "Switching to PUID ${PUID}..." + sed -i -e "s/^librenms:\([^:]*\):[0-9]*:\([0-9]*\)/librenms:\1:${PUID}:\2/" /etc/passwd +fi diff --git a/assets/etc/cont-init.d/02-fix-perms.sh b/assets/etc/cont-init.d/02-fix-perms.sh new file mode 100644 index 0000000..8ba87c0 --- /dev/null +++ b/assets/etc/cont-init.d/02-fix-perms.sh @@ -0,0 +1,14 @@ +#!/usr/bin/with-contenv sh + +echo "Fixing perms..." +chown librenms. \ + /data \ + "${LIBRENMS_PATH}" +chown -R librenms. \ + /tpls \ + /var/lib/nginx \ + /var/log/nginx \ + /var/log/php7 \ + /var/run/nginx \ + /var/run/php-fpm \ + /var/tmp/nginx diff --git a/entrypoint.sh b/assets/etc/cont-init.d/03-config.sh similarity index 53% rename from entrypoint.sh rename to assets/etc/cont-init.d/03-config.sh index 7303e75..5468ae3 100644 --- a/entrypoint.sh +++ b/assets/etc/cont-init.d/03-config.sh @@ -1,47 +1,4 @@ -#!/bin/bash - -function runas_librenms() { - su - librenms -s /bin/sh -c "$1" -} - -TZ=${TZ:-UTC} -PUID=${PUID:-1000} -PGID=${PGID:-1000} - -MEMORY_LIMIT=${MEMORY_LIMIT:-256M} -UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-16M} -OPCACHE_MEM_SIZE=${OPCACHE_MEM_SIZE:-128} -REAL_IP_FROM=${REAL_IP_FROM:-"0.0.0.0/32"} -REAL_IP_HEADER=${REAL_IP_HEADER:-"X-Forwarded-For"} -LOG_IP_VAR=${LOG_IP_VAR:-remote_addr} - -LIBRENMS_POLLER_THREADS=${LIBRENMS_POLLER_THREADS:-16} -LIBRENMS_POLLER_INTERVAL=${LIBRENMS_POLLER_INTERVAL:-5} - -LIBRENMS_DISTRIBUTED_POLLER_ENABLE=${LIBRENMS_DISTRIBUTED_POLLER_ENABLE:-false} -LIBRENMS_DISTRIBUTED_POLLER_NAME=${LIBRENMS_DISTRIBUTED_POLLER_NAME:-$(hostname -f)} -LIBRENMS_DISTRIBUTED_POLLER_GROUP=${LIBRENMS_DISTRIBUTED_POLLER_GROUP:-'0'} -LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST:-${MEMCACHED_HOST}} -LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT:-${MEMCACHED_PORT}} - -SIDECAR_CRON=${SIDECAR_CRON:-0} -LIBRENMS_CRON_DISCOVERY_ENABLE=${LIBRENMS_CRON_DISCOVERY_ENABLE:-true} -LIBRENMS_CRON_DAILY_ENABLE=${LIBRENMS_CRON_DAILY_ENABLE:-true} -LIBRENMS_CRON_ALERTS_ENABLE=${LIBRENMS_CRON_ALERTS_ENABLE:-true} -LIBRENMS_CRON_BILLING_ENABLE=${LIBRENMS_CRON_BILLING_ENABLE:-true} -LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=${LIBRENMS_CRON_BILLING_CALCULATE_ENABLE:-true} -LIBRENMS_CRON_CHECK_SERVICES_ENABLE=${LIBRENMS_CRON_CHECK_SERVICES_ENABLE:-true} -LIBRENMS_CRON_POLLER_ENABLE=${LIBRENMS_CRON_POLLER_ENABLE:-true} - -SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} - -DB_PORT=${DB_PORT:-3306} -DB_NAME=${DB_NAME:-librenms} -DB_USER=${DB_USER:-librenms} -DB_TIMEOUT=${DB_TIMEOUT:-30} - -MEMCACHED_PORT=${MEMCACHED_PORT:-11211} -RRDCACHED_PORT=${RRDCACHED_PORT:-42217} +#!/usr/bin/with-contenv bash # From https://github.com/docker-library/mariadb/blob/master/docker-entrypoint.sh#L21-L41 # usage: file_env VAR [DEFAULT] @@ -66,21 +23,29 @@ file_env() { unset "$fileVar" } -# Timezone -echo "Setting timezone to ${TZ}..." -ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime -echo ${TZ} > /etc/timezone -sed -i -e "s|date\.timezone.*|date\.timezone = ${TZ}|" /etc/php7/php.ini \ +MEMORY_LIMIT=${MEMORY_LIMIT:-256M} +UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-16M} +OPCACHE_MEM_SIZE=${OPCACHE_MEM_SIZE:-128} +REAL_IP_FROM=${REAL_IP_FROM:-"0.0.0.0/32"} +REAL_IP_HEADER=${REAL_IP_HEADER:-"X-Forwarded-For"} +LOG_IP_VAR=${LOG_IP_VAR:-remote_addr} -# Change librenms UID / GID -echo "Checking if librenms UID / GID has changed..." -if [ -n "${PGID}" ] && [ "${PGID}" != "`id -g librenms`" ]; then - sed -i -e "s/^librenms:\([^:]*\):[0-9]*/librenms:\1:${PGID}/" /etc/group - sed -i -e "s/^librenms:\([^:]*\):\([0-9]*\):[0-9]*/librenms:\1:\2:${PGID}/" /etc/passwd -fi -if [ -n "${PUID}" ] && [ "${PUID}" != "`id -u librenms`" ]; then - sed -i -e "s/^librenms:\([^:]*\):[0-9]*:\([0-9]*\)/librenms:\1:${PUID}:\2/" /etc/passwd -fi +LIBRENMS_DISTRIBUTED_POLLER_ENABLE=${LIBRENMS_DISTRIBUTED_POLLER_ENABLE:-false} +LIBRENMS_DISTRIBUTED_POLLER_NAME=${LIBRENMS_DISTRIBUTED_POLLER_NAME:-$(hostname -f)} +LIBRENMS_DISTRIBUTED_POLLER_GROUP=${LIBRENMS_DISTRIBUTED_POLLER_GROUP:-'0'} +LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST:-${MEMCACHED_HOST}} +LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT:-${MEMCACHED_PORT}} + +DB_PORT=${DB_PORT:-3306} +DB_NAME=${DB_NAME:-librenms} +DB_USER=${DB_USER:-librenms} +DB_TIMEOUT=${DB_TIMEOUT:-30} + +MEMCACHED_PORT=${MEMCACHED_PORT:-11211} +RRDCACHED_PORT=${RRDCACHED_PORT:-42217} + +SIDECAR_CRON=${SIDECAR_CRON:-0} +SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} # PHP echo "Setting PHP-FPM configuration..." @@ -110,10 +75,8 @@ sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.c # Init files and folders echo "Initializing LibreNMS files / folders..." -mkdir -p ${DATA_PATH}/config \ - ${DATA_PATH}/logs \ - ${DATA_PATH}/monitoring-plugins \ - ${DATA_PATH}/rrd +mkdir -p /data/config /data/logs /data/monitoring-plugins /data/rrd +rm -rf ${LIBRENMS_PATH}/logs rm -f ${LIBRENMS_PATH}/config.d/* echo "Setting LibreNMS configuration..." @@ -122,9 +85,10 @@ echo "Setting LibreNMS configuration..." cat > ${LIBRENMS_PATH}/config.d/directories.php < ${LIBRENMS_PATH}/config.d/database.php < ${LIBRENMS_PATH}/config.d/user.php <>" - echo ">> Sidecar cron container detected" - echo ">>" - - # Init - rm /etc/supervisord/nginx.conf /etc/supervisord/php.conf /etc/supervisord/snmpd.conf /etc/supervisord/syslog-ng.conf - if [ -z "$CRONTAB_PATH" ]; then - >&2 echo "ERROR: CRONTAB_PATH must be defined" - exit 1 - fi - - rm -rf ${CRONTAB_PATH} - mkdir -m 0644 -p ${CRONTAB_PATH} - touch ${CRONTAB_PATH}/librenms - - # Add crontab - cat ${LIBRENMS_PATH}/librenms.nonroot.cron > ${CRONTAB_PATH}/librenms - sed -i -e "s/ librenms //" ${CRONTAB_PATH}/librenms - - if [ $LIBRENMS_CRON_DISCOVERY_ENABLE != true ]; then - sed -i "/discovery.php/d" ${CRONTAB_PATH}/librenms - fi - - if [ $LIBRENMS_CRON_DAILY_ENABLE != true ]; then - sed -i "/daily.sh/d" ${CRONTAB_PATH}/librenms - fi - - if [ $LIBRENMS_CRON_ALERTS_ENABLE != true ]; then - sed -i "/alerts.php/d" ${CRONTAB_PATH}/librenms - fi - - if [ $LIBRENMS_CRON_BILLING_ENABLE != true ]; then - sed -i "/poll-billing.php/d" ${CRONTAB_PATH}/librenms - fi - - if [ $LIBRENMS_CRON_BILLING_CALCULATE_ENABLE != true ]; then - sed -i "/billing-calculate.php/d" ${CRONTAB_PATH}/librenms - fi - - if [ $LIBRENMS_CRON_CHECK_SERVICES_ENABLE != true ]; then - sed -i "/check-services.php/d" ${CRONTAB_PATH}/librenms - fi - - sed -i "/poller-wrapper.py/d" ${CRONTAB_PATH}/librenms - if [ $LIBRENMS_CRON_POLLER_ENABLE = true ]; then - cat >> ${CRONTAB_PATH}/librenms <>" - echo ">> Sidecar syslog-ng container detected" - echo ">>" - - # Init - rm /etc/supervisord/cron.conf /etc/supervisord/nginx.conf /etc/supervisord/php.conf /etc/supervisord/snmpd.conf - mkdir -p ${DATA_PATH}/syslog-ng /run/syslog-ng - chown librenms. ${DATA_PATH}/syslog-ng - chown -R librenms. /run/syslog-ng -else - # Init - rm /etc/supervisord/cron.conf /etc/supervisord/syslog-ng.conf - - echo "Waiting ${DB_TIMEOUT}s for database to be ready..." - counter=1 - while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do - sleep 1 - counter=$((counter + 1)) - if [ ${counter} -gt ${DB_TIMEOUT} ]; then - >&2 echo "ERROR: Failed to connect to database on $DB_HOST" - exit 1 - fi; - done - echo "Database ready!" - - counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_NAME" | wc -l) - - echo "Updating database schema..." - runas_librenms "php build-base.php" - - if [ "${counttables}" -eq "0" ]; then - echo "Creating admin user..." - runas_librenms "php adduser.php librenms librenms 10 librenms@librenms.docker" - fi -fi - -exec "$@" diff --git a/assets/etc/cont-init.d/04-svc-main.sh b/assets/etc/cont-init.d/04-svc-main.sh new file mode 100644 index 0000000..16d70b5 --- /dev/null +++ b/assets/etc/cont-init.d/04-svc-main.sh @@ -0,0 +1,92 @@ +#!/usr/bin/with-contenv bash + +# From https://github.com/docker-library/mariadb/blob/master/docker-entrypoint.sh#L21-L41 +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +DB_PORT=${DB_PORT:-3306} +DB_NAME=${DB_NAME:-librenms} +DB_USER=${DB_USER:-librenms} +DB_TIMEOUT=${DB_TIMEOUT:-60} + +SIDECAR_CRON=${SIDECAR_CRON:-0} +SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} + +if [ "$SIDECAR_CRON" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ]; then + exit 0 +fi + +file_env 'DB_PASSWORD' +if [ -z "$DB_PASSWORD" ]; then + >&2 echo "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined" + exit 1 +fi + +dbcmd="mysql -h ${DB_HOST} -P ${DB_PORT} -u "${DB_USER}" "-p${DB_PASSWORD}"" +unset DB_PASSWORD + +echo "Waiting ${DB_TIMEOUT}s for database to be ready..." +counter=1 +while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do + sleep 1 + counter=$((counter + 1)) + if [ ${counter} -gt ${DB_TIMEOUT} ]; then + >&2 echo "ERROR: Failed to connect to database on $DB_HOST" + exit 1 + fi; +done +echo "Database ready!" +counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_NAME" | wc -l) + +echo "Updating database schema..." +su-exec librenms:librenms php build-base.php + +if [ "${counttables}" -eq "0" ]; then + echo "Creating admin user..." + su-exec librenms:librenms php adduser.php librenms librenms 10 librenms@librenms.docker +fi + +mkdir -p /etc/services.d/nginx +cat > /etc/services.d/nginx/run < /etc/services.d/php-fpm/run < /etc/services.d/snmpd/run <>" +echo ">> Sidecar cron container detected" +echo ">>" + +rm -rf ${CRONTAB_PATH} +mkdir -m 0644 -p ${CRONTAB_PATH} +touch ${CRONTAB_PATH}/librenms + +# Add crontab +cat "${LIBRENMS_PATH}/librenms.nonroot.cron" > ${CRONTAB_PATH}/librenms +sed -i -e "s/ librenms //" ${CRONTAB_PATH}/librenms + +if [ "$LIBRENMS_CRON_DISCOVERY_ENABLE" != "true" ]; then + echo "Disable discovery cron" + sed -i "/discovery.php/d" ${CRONTAB_PATH}/librenms +else + echo "Enable discovery cron" +fi + +if [ "$LIBRENMS_CRON_DAILY_ENABLE" != "true" ]; then + echo "Disable daily script cron" + sed -i "/daily.sh/d" ${CRONTAB_PATH}/librenms +else + echo "Enable daily script cron" +fi + +if [ "$LIBRENMS_CRON_ALERTS_ENABLE" != "true" ]; then + echo "Disable alerts generation cron" + sed -i "/alerts.php/d" ${CRONTAB_PATH}/librenms +else + echo "Enable alerts generation cron" +fi + +if [ "$LIBRENMS_CRON_BILLING_ENABLE" != "true" ]; then + echo "Disable billing polling cron" + sed -i "/poll-billing.php/d" ${CRONTAB_PATH}/librenms +else + echo "Enable billing polling cron" +fi + +if [ "$LIBRENMS_CRON_BILLING_CALCULATE_ENABLE" != "true" ]; then + echo "Disable billing cron" + sed -i "/billing-calculate.php/d" ${CRONTAB_PATH}/librenms +else + echo "Enable billing cron" +fi + +if [ "$LIBRENMS_CRON_CHECK_SERVICES_ENABLE" != "true" ]; then + echo "Disable service checks cron" + sed -i "/check-services.php/d" ${CRONTAB_PATH}/librenms +else + echo "Enable service checks cron" +fi + +sed -i "/poller-wrapper.py/d" ${CRONTAB_PATH}/librenms +if [ "$LIBRENMS_CRON_POLLER_ENABLE" = "true" ]; then + echo "Enable polling cron" + cat >> ${CRONTAB_PATH}/librenms < /etc/services.d/cron/run <>" +echo ">> Sidecar syslog-ng container detected" +echo ">>" + +mkdir -p /data/syslog-ng /run/syslog-ng +chown librenms. /data/syslog-ng +chown -R librenms. /run/syslog-ng + +# Create service +mkdir -p /etc/services.d/syslogng +cat > /etc/services.d/syslogng/run < :warning: Only used if you enabled and run a [sidecar cron container](../notes/crons.md) -* `SIDECAR_CRON` : Set to `1` to enable sidecar cron mode for this container (default `0`) -* `LIBRENMS_CRON_DISCOVERY_ENABLE` : Enable LibreNMS discovery for this container cronjobs (default `true`) -* `LIBRENMS_CRON_DAILY_ENABLE` : Enable LibreNMS daily script for this container cronjobs (default `true`) -* `LIBRENMS_CRON_ALERTS_ENABLE` : Enable LibreNMS alerts generation for this container cronjobs (default `true`) -* `LIBRENMS_CRON_BILLING_ENABLE` : Enable LibreNMS billing polling for this container cronjobs (default `true`) -* `LIBRENMS_CRON_BILLING_CALCULATE_ENABLE` : Enable LibreNMS billing for this container cronjobs (default `true`) -* `LIBRENMS_CRON_CHECK_SERVICES_ENABLE` : Enable LibreNMS service checks for this container cronjobs (default `true`) -* `LIBRENMS_CRON_POLLER_ENABLE` : Enable LibreNMS polling for this container cronjobs (default `true`) +* `SIDECAR_CRON`: Set to `1` to enable sidecar cron mode for this container (default `0`) +* `LIBRENMS_CRON_DISCOVERY_ENABLE`: Enable LibreNMS discovery for this container cronjobs (default `true`) +* `LIBRENMS_CRON_DAILY_ENABLE`: Enable LibreNMS daily script for this container cronjobs (default `true`) +* `LIBRENMS_CRON_ALERTS_ENABLE`: Enable LibreNMS alerts generation for this container cronjobs (default `true`) +* `LIBRENMS_CRON_BILLING_ENABLE`: Enable LibreNMS billing polling for this container cronjobs (default `true`) +* `LIBRENMS_CRON_BILLING_CALCULATE_ENABLE`: Enable LibreNMS billing for this container cronjobs (default `true`) +* `LIBRENMS_CRON_CHECK_SERVICES_ENABLE`: Enable LibreNMS service checks for this container cronjobs (default `true`) +* `LIBRENMS_CRON_POLLER_ENABLE`: Enable LibreNMS polling for this container cronjobs (default `true`) ### Syslog-ng > :warning: Only used if you enabled and run a [sidecar syslog-ng container](../notes/syslog-ng.md) -* `SIDECAR_SYSLOGNG` : Set to `1` to enable sidecar syslog-ng mode for this container (default `0`) +* `SIDECAR_SYSLOGNG`: Set to `1` to enable sidecar syslog-ng mode for this container (default `0`) ### 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 `30`) +* `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_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_HOST` : Hostname / IP address of a RRDcached server -* `RRDCACHED_PORT` : Port of the RRDcached server (default `42217`) +* `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_HOST`: Hostname / IP address of a RRDcached server +* `RRDCACHED_PORT`: Port of the RRDcached server (default `42217`) diff --git a/doc/docker/ports.md b/doc/docker/ports.md index a7412bb..4ee5562 100644 --- a/doc/docker/ports.md +++ b/doc/docker/ports.md @@ -1,4 +1,4 @@ ### Ports -* `80` : HTTP port -* `514 514/udp` : Syslog ports (only used if you enabled and run a [sidecar syslog-ng container](../notes/syslog-ng.md)) +* `8000`: HTTP port +* `514 514/udp`: Syslog ports (only used if you enabled and run a [sidecar syslog-ng container](../notes/syslog-ng.md)) diff --git a/doc/docker/volumes.md b/doc/docker/volumes.md index 87115c4..73a38aa 100644 --- a/doc/docker/volumes.md +++ b/doc/docker/volumes.md @@ -1,5 +1,5 @@ ## Volumes -* `/data` : Contains configuration, rrd database, logs, additional Monitoring plugins, additional syslog-ng config files +* `/data`: Contains configuration, rrd database, logs, additional Monitoring plugins, additional syslog-ng config files -> :warning: Note that the volume should be owned by the user/group with the specified `PUID` and `PGID`. If you don’t give the volume correct permissions, the container may not start. +> :warning: Note that the volume should be owned by the user/group with the specified `PUID` and `PGID`. If you don't give the volume correct permissions, the container may not start. diff --git a/doc/usage.md b/doc/usage.md index 702ff94..3974978 100644 --- a/doc/usage.md +++ b/doc/usage.md @@ -14,7 +14,7 @@ docker-compose logs -f You can also use the following minimal command : ```bash -docker run -d -p 80:80 --name librenms \ +docker run -d -p 8000:8000 --name librenms \ -v $(pwd)/data:/data \ -e "DB_HOST=db" \ librenms/librenms:latest diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 6601c84..2d568c8 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -61,8 +61,8 @@ services: domainname: example.com hostname: librenms ports: - - target: 80 - published: 80 + - target: 8000 + published: 8000 protocol: tcp depends_on: - db @@ -79,7 +79,7 @@ services: - "DB_NAME=${MYSQL_DATABASE}" - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - - "DB_TIMEOUT=30" + - "DB_TIMEOUT=60" env_file: - "./librenms.env" restart: always @@ -101,7 +101,7 @@ services: - "DB_NAME=${MYSQL_DATABASE}" - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - - "DB_TIMEOUT=30" + - "DB_TIMEOUT=60" - "SIDECAR_CRON=1" env_file: - "./librenms.env" @@ -131,7 +131,7 @@ services: - "DB_NAME=${MYSQL_DATABASE}" - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - - "DB_TIMEOUT=30" + - "DB_TIMEOUT=60" - "SIDECAR_SYSLOGNG=1" env_file: - "./librenms.env" diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 2a4099e..4a9010c 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -101,7 +101,7 @@ services: labels: - "traefik.enable=true" - "traefik.backend=librenms" - - "traefik.port=80" + - "traefik.port=8000" - "traefik.frontend.rule=Host:librenms.example.com" environment: - "TZ=${TZ}" @@ -111,7 +111,7 @@ services: - "DB_NAME=${MYSQL_DATABASE}" - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - - "DB_TIMEOUT=30" + - "DB_TIMEOUT=60" env_file: - "./librenms.env" restart: always @@ -133,7 +133,7 @@ services: - "DB_NAME=${MYSQL_DATABASE}" - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - - "DB_TIMEOUT=30" + - "DB_TIMEOUT=60" - "SIDECAR_CRON=1" env_file: - "./librenms.env" @@ -163,7 +163,7 @@ services: - "DB_NAME=${MYSQL_DATABASE}" - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - - "DB_TIMEOUT=30" + - "DB_TIMEOUT=60" - "SIDECAR_SYSLOGNG=1" env_file: - "./librenms.env" From 1ba2014e4d875d7d6477b60728ae9702bf6bfa10 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 19 Nov 2019 14:10:17 +0100 Subject: [PATCH 136/523] Rename to rootfs --- .editorconfig | 2 +- .gitattributes | 2 +- Dockerfile | 2 +- {assets => rootfs}/etc/cont-init.d/00-fix-logs.sh | 0 {assets => rootfs}/etc/cont-init.d/01-fix-uidgid.sh | 0 {assets => rootfs}/etc/cont-init.d/02-fix-perms.sh | 0 {assets => rootfs}/etc/cont-init.d/03-config.sh | 0 {assets => rootfs}/etc/cont-init.d/04-svc-main.sh | 0 {assets => rootfs}/etc/cont-init.d/05-svc-cron.sh | 0 {assets => rootfs}/etc/cont-init.d/06-svc-syslogng.sh | 0 {assets => rootfs}/etc/syslog-ng/syslog-ng.conf | 0 {assets => rootfs}/tpls/etc/nginx/nginx.conf | 0 {assets => rootfs}/tpls/etc/php7/conf.d/opcache.ini | 0 {assets => rootfs}/tpls/etc/php7/php-fpm.d/www.conf | 0 14 files changed, 3 insertions(+), 3 deletions(-) rename {assets => rootfs}/etc/cont-init.d/00-fix-logs.sh (100%) rename {assets => rootfs}/etc/cont-init.d/01-fix-uidgid.sh (100%) rename {assets => rootfs}/etc/cont-init.d/02-fix-perms.sh (100%) rename {assets => rootfs}/etc/cont-init.d/03-config.sh (100%) rename {assets => rootfs}/etc/cont-init.d/04-svc-main.sh (100%) rename {assets => rootfs}/etc/cont-init.d/05-svc-cron.sh (100%) rename {assets => rootfs}/etc/cont-init.d/06-svc-syslogng.sh (100%) rename {assets => rootfs}/etc/syslog-ng/syslog-ng.conf (100%) rename {assets => rootfs}/tpls/etc/nginx/nginx.conf (100%) rename {assets => rootfs}/tpls/etc/php7/conf.d/opcache.ini (100%) rename {assets => rootfs}/tpls/etc/php7/php-fpm.d/www.conf (100%) diff --git a/.editorconfig b/.editorconfig index b7801b2..10ec7fc 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,7 +9,7 @@ charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -[assets/**] +[rootfs/**] insert_final_newline = false [*.md] diff --git a/.gitattributes b/.gitattributes index 3399cb4..eb8909a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,2 @@ /*.sh linguist-detectable=false -/assets/** linguist-detectable=false +/rootfs/** linguist-detectable=false diff --git a/Dockerfile b/Dockerfile index 0338d4f..9f6d99a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -109,7 +109,7 @@ RUN mkdir -p /opt \ && chown -R nobody.nogroup ${LIBRENMS_PATH} \ && rm -rf /tmp/* -COPY assets / +COPY rootfs / RUN addgroup -g ${PGID} librenms \ && adduser -D -h ${LIBRENMS_PATH} -u ${PUID} -G librenms -s /bin/sh -D librenms \ diff --git a/assets/etc/cont-init.d/00-fix-logs.sh b/rootfs/etc/cont-init.d/00-fix-logs.sh similarity index 100% rename from assets/etc/cont-init.d/00-fix-logs.sh rename to rootfs/etc/cont-init.d/00-fix-logs.sh diff --git a/assets/etc/cont-init.d/01-fix-uidgid.sh b/rootfs/etc/cont-init.d/01-fix-uidgid.sh similarity index 100% rename from assets/etc/cont-init.d/01-fix-uidgid.sh rename to rootfs/etc/cont-init.d/01-fix-uidgid.sh diff --git a/assets/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh similarity index 100% rename from assets/etc/cont-init.d/02-fix-perms.sh rename to rootfs/etc/cont-init.d/02-fix-perms.sh diff --git a/assets/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh similarity index 100% rename from assets/etc/cont-init.d/03-config.sh rename to rootfs/etc/cont-init.d/03-config.sh diff --git a/assets/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh similarity index 100% rename from assets/etc/cont-init.d/04-svc-main.sh rename to rootfs/etc/cont-init.d/04-svc-main.sh diff --git a/assets/etc/cont-init.d/05-svc-cron.sh b/rootfs/etc/cont-init.d/05-svc-cron.sh similarity index 100% rename from assets/etc/cont-init.d/05-svc-cron.sh rename to rootfs/etc/cont-init.d/05-svc-cron.sh diff --git a/assets/etc/cont-init.d/06-svc-syslogng.sh b/rootfs/etc/cont-init.d/06-svc-syslogng.sh similarity index 100% rename from assets/etc/cont-init.d/06-svc-syslogng.sh rename to rootfs/etc/cont-init.d/06-svc-syslogng.sh diff --git a/assets/etc/syslog-ng/syslog-ng.conf b/rootfs/etc/syslog-ng/syslog-ng.conf similarity index 100% rename from assets/etc/syslog-ng/syslog-ng.conf rename to rootfs/etc/syslog-ng/syslog-ng.conf diff --git a/assets/tpls/etc/nginx/nginx.conf b/rootfs/tpls/etc/nginx/nginx.conf similarity index 100% rename from assets/tpls/etc/nginx/nginx.conf rename to rootfs/tpls/etc/nginx/nginx.conf diff --git a/assets/tpls/etc/php7/conf.d/opcache.ini b/rootfs/tpls/etc/php7/conf.d/opcache.ini similarity index 100% rename from assets/tpls/etc/php7/conf.d/opcache.ini rename to rootfs/tpls/etc/php7/conf.d/opcache.ini diff --git a/assets/tpls/etc/php7/php-fpm.d/www.conf b/rootfs/tpls/etc/php7/php-fpm.d/www.conf similarity index 100% rename from assets/tpls/etc/php7/php-fpm.d/www.conf rename to rootfs/tpls/etc/php7/php-fpm.d/www.conf From 3156efff732f5ce1f322205990137b2bf7f9277a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 25 Nov 2019 11:54:52 +0100 Subject: [PATCH 137/523] LibreNMS 1.58 --- CHANGELOG.md | 6 ++++++ Dockerfile | 8 +++++--- doc/notes/validate.md | 21 +++++++++------------ 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d0b4178..b2bd800 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 1.58-RC1 (2019/11/25) + +* LibreNMS 1.58 +* Remove useless `.git` folder +* Add `LIBRENMS_DOCKER` env (librenms/librenms#10879) + ## 1.57-RC2 (2019/11/19) * :warning: Run as non-root user (#6) diff --git a/Dockerfile b/Dockerfile index 9f6d99a..c16ee9b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,6 +42,7 @@ RUN apk --update --no-cache add \ php7-cli \ php7-ctype \ php7-curl \ + php7-dom \ php7-fileinfo \ php7-fpm \ php7-gd \ @@ -87,8 +88,9 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.57" \ +ENV LIBRENMS_VERSION="1.58" \ LIBRENMS_PATH="/opt/librenms" \ + LIBRENMS_DOCKER="1" \ PUID="1000" \ PGID="1000" \ S6_BEHAVIOUR_IF_STAGE2_FAILS="2" @@ -96,7 +98,7 @@ ENV LIBRENMS_VERSION="1.57" \ RUN mkdir -p /opt \ && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ && git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git ${LIBRENMS_PATH} \ - && composer install --no-dev --no-interaction --no-ansi --working-dir=${LIBRENMS_PATH} \ + && COMPOSER_CACHE_DIR="/tmp" composer install --no-dev --no-interaction --no-ansi --working-dir=${LIBRENMS_PATH} \ && curl -sSLk -q https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro -o /usr/bin/distro \ && chmod +x /usr/bin/distro \ && mkdir -p ${LIBRENMS_PATH}/config.d \ @@ -107,7 +109,7 @@ RUN mkdir -p /opt \ && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ && pip3 install -r ${LIBRENMS_PATH}/requirements.txt \ && chown -R nobody.nogroup ${LIBRENMS_PATH} \ - && rm -rf /tmp/* + && rm -rf ${LIBRENMS_PATH}/.git /tmp/* COPY rootfs / diff --git a/doc/notes/validate.md b/doc/notes/validate.md index 797d017..5248447 100644 --- a/doc/notes/validate.md +++ b/doc/notes/validate.md @@ -7,22 +7,19 @@ $ docker-compose exec --user librenms librenms php validate.php ==================================== Component | Version --------- | ------- -LibreNMS | 1.41 -DB Schema | 253 -PHP | 7.2.7 -MySQL | 10.2.16-MariaDB-10.2.16+maria~jessie -RRDTool | 1.7.0 -SNMP | NET-SNMP 5.7.3 +LibreNMS | 1.58 +DB Schema | 2019_10_03_211702_serialize_config (147) +PHP | 7.3.11 +MySQL | 10.4.8-MariaDB-1:10.4.8+maria~bionic +RRDTool | 1.7.2 +SNMP | NET-SNMP 5.8 ==================================== -[OK] Composer Version: 1.6.5 -[OK] Dependencies up-to-date. +[OK] Installed from package; no Composer required [OK] Database connection successful [OK] Database schema correct [WARN] You have not added any devices yet. [FIX] You can add a device in the webui or with ./addhost.php -[WARN] Your install is over 24 hours out of date, last update: Sat, 30 Jun 2018 21:37:37 +0000 - [FIX] Make sure your daily.sh cron is running and run ./daily.sh by hand to see if there are any errors. -[WARN] Your local git branch is not master, this will prevent automatic updates. - [FIX] You can switch back to master with git checkout master +[WARN] IPv6 is disabled on your server, you will not be able to add IPv6 devices. +[WARN] Non-git install, updates are manual or from package ``` From 705a44d9ad0bec20533f43e053cef83b765d8164 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 27 Nov 2019 16:36:14 +0100 Subject: [PATCH 138/523] LibreNMS 1.58.1 --- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- doc/notes/validate.md | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2bd800..3fb7a58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.58.1-RC1 (2019/11/27) + +* LibreNMS 1.58.1 + ## 1.58-RC1 (2019/11/25) * LibreNMS 1.58 diff --git a/Dockerfile b/Dockerfile index c16ee9b..e16ad4c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -88,7 +88,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.58" \ +ENV LIBRENMS_VERSION="1.58.1" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ PUID="1000" \ diff --git a/doc/notes/validate.md b/doc/notes/validate.md index 5248447..659dc55 100644 --- a/doc/notes/validate.md +++ b/doc/notes/validate.md @@ -15,11 +15,11 @@ RRDTool | 1.7.2 SNMP | NET-SNMP 5.8 ==================================== -[OK] Installed from package; no Composer required +[OK] Installed from the official Docker image; no Composer required [OK] Database connection successful [OK] Database schema correct [WARN] You have not added any devices yet. [FIX] You can add a device in the webui or with ./addhost.php [WARN] IPv6 is disabled on your server, you will not be able to add IPv6 devices. -[WARN] Non-git install, updates are manual or from package +[WARN] Updates are managed through the official Docker image ``` From 81106a65f4af9412f9451e9c65b5920a6f80b4b6 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 29 Nov 2019 15:45:05 +0100 Subject: [PATCH 139/523] Fix php date timezone (#49) --- rootfs/etc/cont-init.d/03-config.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 5468ae3..bb3f4cf 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -52,8 +52,10 @@ echo "Setting PHP-FPM configuration..." sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \ -e "s/@UPLOAD_MAX_SIZE@/$UPLOAD_MAX_SIZE/g" \ /tpls/etc/php7/php-fpm.d/www.conf > /etc/php7/php-fpm.d/www.conf + echo "Setting PHP INI configuration..." -sed -i -e "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|" /etc/php7/php.ini +sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php7/php.ini +sed -i "s|date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php7/php.ini # OpCache echo "Setting OpCache configuration..." From aeb070d3fc0e6ee1b5ac45288c83feb463514249 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 29 Nov 2019 15:46:28 +0100 Subject: [PATCH 140/523] MEMCACHED_PORT default port not working (#48) --- rootfs/etc/cont-init.d/03-config.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index bb3f4cf..1b4f4c8 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -30,6 +30,9 @@ REAL_IP_FROM=${REAL_IP_FROM:-"0.0.0.0/32"} REAL_IP_HEADER=${REAL_IP_HEADER:-"X-Forwarded-For"} LOG_IP_VAR=${LOG_IP_VAR:-remote_addr} +MEMCACHED_PORT=${MEMCACHED_PORT:-11211} +RRDCACHED_PORT=${RRDCACHED_PORT:-42217} + LIBRENMS_DISTRIBUTED_POLLER_ENABLE=${LIBRENMS_DISTRIBUTED_POLLER_ENABLE:-false} LIBRENMS_DISTRIBUTED_POLLER_NAME=${LIBRENMS_DISTRIBUTED_POLLER_NAME:-$(hostname -f)} LIBRENMS_DISTRIBUTED_POLLER_GROUP=${LIBRENMS_DISTRIBUTED_POLLER_GROUP:-'0'} @@ -41,9 +44,6 @@ DB_NAME=${DB_NAME:-librenms} DB_USER=${DB_USER:-librenms} DB_TIMEOUT=${DB_TIMEOUT:-30} -MEMCACHED_PORT=${MEMCACHED_PORT:-11211} -RRDCACHED_PORT=${RRDCACHED_PORT:-42217} - SIDECAR_CRON=${SIDECAR_CRON:-0} SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} From 4797423cae5f418bc8147ae4d2fe4690c8d500cc Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 29 Nov 2019 15:47:17 +0100 Subject: [PATCH 141/523] Update CHANGELOG --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fb7a58..105e4df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.58.1-RC2 (2019/11/29) + +* Fix php date timezone (#49) +* `MEMCACHED_PORT` default port not working (#48) + ## 1.58.1-RC1 (2019/11/27) * LibreNMS 1.58.1 From ee909221a8ab45866f53e3d011a6d74ccd1eebf0 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 6 Dec 2019 10:09:27 +0100 Subject: [PATCH 142/523] Bring back timezone management through symlink (#49) --- CHANGELOG.md | 4 ++++ Dockerfile | 8 ++++---- rootfs/etc/cont-init.d/03-config.sh | 7 +++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 105e4df..323f73c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.58.1-RC3 (2019/11/29) + +* Bring back timezone management through symlink (#49) + ## 1.58.1-RC2 (2019/11/29) * Fix php date timezone (#49) diff --git a/Dockerfile b/Dockerfile index e16ad4c..618963e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -83,17 +83,17 @@ RUN apk --update --no-cache add \ && pip3 install python-memcached \ && wget -q "https://github.com/just-containers/s6-overlay/releases/latest/download/s6-overlay-amd64.tar.gz" -qO "/tmp/s6-overlay-amd64.tar.gz" \ && tar xzf /tmp/s6-overlay-amd64.tar.gz -C / \ - && sed -i -e "s/;date\.timezone.*/date\.timezone = UTC/" /etc/php7/php.ini \ && rm -rf /var/cache/apk/* /var/www/* /tmp/* \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping -ENV LIBRENMS_VERSION="1.58.1" \ +ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ + LIBRENMS_VERSION="1.58.1" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ + TZ="UTC" \ PUID="1000" \ - PGID="1000" \ - S6_BEHAVIOUR_IF_STAGE2_FAILS="2" + PGID="1000" RUN mkdir -p /opt \ && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 1b4f4c8..4d45543 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -23,6 +23,8 @@ file_env() { unset "$fileVar" } +TZ=${TZ:-UTC} + MEMORY_LIMIT=${MEMORY_LIMIT:-256M} UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-16M} OPCACHE_MEM_SIZE=${OPCACHE_MEM_SIZE:-128} @@ -47,6 +49,11 @@ DB_TIMEOUT=${DB_TIMEOUT:-30} SIDECAR_CRON=${SIDECAR_CRON:-0} SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} +# Timezone +echo "Setting timezone to ${TZ}..." +ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime +echo ${TZ} > /etc/timezone + # PHP echo "Setting PHP-FPM configuration..." sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \ From 0f38a58bfe20ef4d201c132acd5215615371b33a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 6 Dec 2019 10:10:06 +0100 Subject: [PATCH 143/523] Update CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 323f73c..ca89e35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 1.58.1-RC3 (2019/11/29) +## 1.58.1-RC3 (2019/12/06) * Bring back timezone management through symlink (#49) From 7935d503718ea9948cbb5d5f1e199db6027e99ca Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 6 Dec 2019 10:44:45 +0100 Subject: [PATCH 144/523] Fix timezone php.ini --- .github/workflows/build.yml | 2 +- rootfs/etc/cont-init.d/03-config.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b6ba663..eb3189e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ jobs: echo ::set-output name=tag_name::${TAG} echo ::set-output name=version::${TAG%-*} else - echo ::set-output name=version::1.56 + echo ::set-output name=version::snapshot fi echo ::set-output name=build_date::$(date -u +'%Y-%m-%dT%H:%M:%SZ') echo ::set-output name=docker_username::librenmsbot diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 4d45543..b316bb5 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -62,7 +62,7 @@ sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \ echo "Setting PHP INI configuration..." sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php7/php.ini -sed -i "s|date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php7/php.ini +sed -i "s|;date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php7/php.ini # OpCache echo "Setting OpCache configuration..." From 6ccfedd2a79dbbbf555f1768ade7f525fc21d86d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 6 Dec 2019 10:45:26 +0100 Subject: [PATCH 145/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca89e35..0ac17f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.58.1-RC4 (2019/12/06) + +* Fix timezone php.ini + ## 1.58.1-RC3 (2019/12/06) * Bring back timezone management through symlink (#49) From 2f0af5d859334dd3c214dce7bac2f3e8b4e2397a Mon Sep 17 00:00:00 2001 From: Peter Pletcher Date: Fri, 20 Dec 2019 14:22:35 -0800 Subject: [PATCH 146/523] Add snmp-scan option for cron container (#53) --- doc/docker/environment-variables.md | 5 +++++ examples/compose/librenms.env | 3 +++ rootfs/etc/cont-init.d/05-svc-cron.sh | 16 ++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 0a5575e..7524e47 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -34,6 +34,11 @@ * `LIBRENMS_CRON_BILLING_CALCULATE_ENABLE`: Enable LibreNMS billing for this container cronjobs (default `true`) * `LIBRENMS_CRON_CHECK_SERVICES_ENABLE`: Enable LibreNMS service checks for this container cronjobs (default `true`) * `LIBRENMS_CRON_POLLER_ENABLE`: Enable LibreNMS polling for this container cronjobs (default `true`) +* `LIBRENMS_CRON_SNMPSCAN_ENABLE`: Enable LibreNMS SNMP network scanning for this container cronjobs (default `false`) +* `LIBRENMS_CRON_SNMPSCAN_INTERVAL`: SNMP network scanning cron interval (daily, in "Minute Hour", default `5 0`) +* `LIBRENMS_CRON_SNMPSCAN_NETS`: Networks to scan for SNMP network scanning, in CIDR notation. Multiple networks can be specified separated by a comma. If this is not set the default is to scan networks defined in `$config['nets']` +* `LIBRENMS_CRON_SNMPSCAN_THREADS`: SNMP network scanning threads to use (default `32`) +* `LIBRENMS_CRON_SNMPSCAN_LOGFILE`: SNMP network scanning cron log file (default `/dev/null`) ### Syslog-ng diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index d200733..698d952 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -15,6 +15,9 @@ LIBRENMS_CRON_BILLING_ENABLE=true LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=true LIBRENMS_CRON_CHECK_SERVICES_ENABLE=true LIBRENMS_CRON_POLLER_ENABLE=true +LIBRENMS_CRON_SNMPSCAN_ENABLE=true +LIBRENMS_CRON_SNMPSCAN_NETS=192.168.0.0/24,192.168.1.0/24 +LIBRENMS_CRON_SNMPSCAN_LOGFILE=/data/logs/snmp-scan.log LIBRENMS_SNMP_COMMUNITY=librenmsdocker MEMCACHED_HOST=memcached diff --git a/rootfs/etc/cont-init.d/05-svc-cron.sh b/rootfs/etc/cont-init.d/05-svc-cron.sh index a40c537..fbe4c54 100644 --- a/rootfs/etc/cont-init.d/05-svc-cron.sh +++ b/rootfs/etc/cont-init.d/05-svc-cron.sh @@ -13,6 +13,13 @@ LIBRENMS_CRON_BILLING_ENABLE=${LIBRENMS_CRON_BILLING_ENABLE:-true} LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=${LIBRENMS_CRON_BILLING_CALCULATE_ENABLE:-true} LIBRENMS_CRON_CHECK_SERVICES_ENABLE=${LIBRENMS_CRON_CHECK_SERVICES_ENABLE:-true} LIBRENMS_CRON_POLLER_ENABLE=${LIBRENMS_CRON_POLLER_ENABLE:-true} +LIBRENMS_CRON_SNMPSCAN_ENABLE=${LIBRENMS_CRON_SNMPSCAN_ENABLE:-false} +LIBRENMS_CRON_SNMPSCAN_INTERVAL=${LIBRENMS_CRON_SNMPSCAN_INTERVAL:-"5 0"} +LIBRENMS_CRON_SNMPSCAN_NETS=${LIBRENMS_CRON_SNMPSCAN_NETS:-""} +LIBRENMS_CRON_SNMPSCAN_NETS=${LIBRENMS_CRON_SNMPSCAN_NETS:+",$LIBRENMS_CRON_SNMPSCAN_NETS"} +LIBRENMS_CRON_SNMPSCAN_NETS=${LIBRENMS_CRON_SNMPSCAN_NETS//,/ -r } +LIBRENMS_CRON_SNMPSCAN_THREADS=${LIBRENMS_CRON_SNMPSCAN_THREADS:-32} +LIBRENMS_CRON_SNMPSCAN_LOGFILE=${LIBRENMS_CRON_SNMPSCAN_LOGFILE:-/dev/null} # Continue only if sidecar cron container if [ "$SIDECAR_CRON" != "1" ]; then @@ -83,6 +90,15 @@ else echo "Disable polling cron" fi +if [ "$LIBRENMS_CRON_SNMPSCAN_ENABLE" = "true" ]; then + echo "Enable snmp-scan cron" + cat >> ${CRONTAB_PATH}/librenms <> ${LIBRENMS_CRON_SNMPSCAN_LOGFILE} 2>&1 +EOL +else + echo "Disable snmp-scan cron" +fi + # Fix perms echo "Fixing crontabs permissions..." chmod -R 0644 ${CRONTAB_PATH} From 027e9f48aeea2da7b22b87af4438342f8e794168 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 20 Dec 2019 23:25:15 +0100 Subject: [PATCH 147/523] Fix compose config --- examples/compose/librenms.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index 698d952..6a91910 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -3,7 +3,7 @@ UPLOAD_MAX_SIZE=16M OPCACHE_MEM_SIZE=128 REAL_IP_FROM=0.0.0.0/32 REAL_IP_HEADER=X-Forwarded-For -LOG_IP_VAR=http_x_forwarded_for +LOG_IP_VAR=remote_addr LIBRENMS_POLLER_THREADS=16 LIBRENMS_POLLER_INTERVAL=5 From b3c296eb2134bc4dd97cb16c0a5a8391530e7255 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 20 Dec 2019 23:26:11 +0100 Subject: [PATCH 148/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ac17f6..a2136e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.58.1-RC5 (2019/12/20) + +* Add snmp-scan option for cron container (#53) + ## 1.58.1-RC4 (2019/12/06) * Fix timezone php.ini From a0c4a93c53176156cb3233ea4a775d8f7d412122 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 23 Jan 2020 21:00:50 +0100 Subject: [PATCH 149/523] Move Nginx temp folders to /tmp (#55) --- .github/ISSUE_TEMPLATE/bug_report.md | 1 + CHANGELOG.md | 4 ++++ LICENSE | 2 +- rootfs/etc/cont-init.d/02-fix-perms.sh | 3 +-- rootfs/tpls/etc/nginx/nginx.conf | 7 +++++++ 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 439078b..0435112 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -24,6 +24,7 @@ about: Create a report to help us improve * Docker version (type `docker --version`) : * Docker compose version if applicable (type `docker-compose --version`) : * Platform (Debian 9, Ubuntu 18.04, ...) : +* System info (type `uname -a`) : * Include all necessary configuration files : `docker-compose.yml`, `.env`, ... ### Docker info diff --git a/CHANGELOG.md b/CHANGELOG.md index a2136e6..0964637 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.58.1-RC6 (2020/01/23) + +* Move Nginx temp folders to `/tmp` (#55) + ## 1.58.1-RC5 (2019/12/20) * Add snmp-scan option for cron container (#53) diff --git a/LICENSE b/LICENSE index 8c81eb2..d24d55a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018-2019 CrazyMax +Copyright (c) 2018-2020 CrazyMax Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index 8ba87c0..bf334f1 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -10,5 +10,4 @@ chown -R librenms. \ /var/log/nginx \ /var/log/php7 \ /var/run/nginx \ - /var/run/php-fpm \ - /var/tmp/nginx + /var/run/php-fpm diff --git a/rootfs/tpls/etc/nginx/nginx.conf b/rootfs/tpls/etc/nginx/nginx.conf index bc4b36c..9513ff4 100644 --- a/rootfs/tpls/etc/nginx/nginx.conf +++ b/rootfs/tpls/etc/nginx/nginx.conf @@ -17,6 +17,13 @@ http { sendfile on; large_client_header_buffers 4 16k; + ## Temp folders + client_body_temp_path /tmp/nginx 1 2; + proxy_temp_path /tmp/nginx-proxy; + fastcgi_temp_path /tmp/nginx-fastcgi; + uwsgi_temp_path /tmp/nginx-uwsgi; + scgi_temp_path /tmp/nginx-scgi; + ## Timeouts client_body_timeout 60; client_header_timeout 60; From ad92ae4baef757e438c19d3cca1a7ff3c5453a78 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 4 Feb 2020 23:29:45 +0100 Subject: [PATCH 150/523] LibreNMS 1.60 --- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0964637..d0d4df7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.60-RC1 (2020/02/04) + +* LibreNMS 1.60 + ## 1.58.1-RC6 (2020/01/23) * Move Nginx temp folders to `/tmp` (#55) diff --git a/Dockerfile b/Dockerfile index 618963e..2bfae90 100644 --- a/Dockerfile +++ b/Dockerfile @@ -88,7 +88,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/sbin/fping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.58.1" \ + LIBRENMS_VERSION="1.60" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ From 21118128e53a54e1a4cc4c7149ace7af402d3dad Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 4 Feb 2020 23:32:47 +0100 Subject: [PATCH 151/523] Alpine Linux 3.11 --- CHANGELOG.md | 1 + Dockerfile | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d0d4df7..708beb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## 1.60-RC1 (2020/02/04) * LibreNMS 1.60 +* Alpine Linux 3.11 ## 1.58.1-RC6 (2020/01/23) diff --git a/Dockerfile b/Dockerfile index 2bfae90..7484110 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.10 +FROM alpine:3.11 ARG BUILD_DATE ARG VCS_REF From ae7ed078807b8dd7b461fa85013c71eba629bb3b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 4 Feb 2020 23:37:01 +0100 Subject: [PATCH 152/523] Revert "Alpine Linux 3.11" This reverts commit 21118128e53a54e1a4cc4c7149ace7af402d3dad. --- CHANGELOG.md | 1 - Dockerfile | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 708beb1..d0d4df7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,6 @@ ## 1.60-RC1 (2020/02/04) * LibreNMS 1.60 -* Alpine Linux 3.11 ## 1.58.1-RC6 (2020/01/23) diff --git a/Dockerfile b/Dockerfile index 7484110..2bfae90 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.11 +FROM alpine:3.10 ARG BUILD_DATE ARG VCS_REF From 260cbeef9eec0deac387fd34339ab81943d825d3 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 2 Mar 2020 11:54:06 +0100 Subject: [PATCH 153/523] LibreNMS 1.61 --- .github/CODEOWNERS | 1 + CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..f7b8e1d --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @crazy-max diff --git a/CHANGELOG.md b/CHANGELOG.md index d0d4df7..b0d7afb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.61-RC1 (2020/03/02) + +* LibreNMS 1.61 + ## 1.60-RC1 (2020/02/04) * LibreNMS 1.60 diff --git a/Dockerfile b/Dockerfile index 2bfae90..ffdfe2b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -88,7 +88,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/sbin/fping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.60" \ + LIBRENMS_VERSION="1.61" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ From 54624eb62cb57ce8858857c32e4133ae974afffb Mon Sep 17 00:00:00 2001 From: John Jensen Date: Thu, 5 Mar 2020 11:31:50 -0500 Subject: [PATCH 154/523] add php7-sockets to be installed to fix warnings --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index ffdfe2b..b007292 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,6 +61,7 @@ RUN apk --update --no-cache add \ php7-session \ php7-simplexml \ php7-snmp \ + php7-sockets \ php7-tokenizer \ php7-xml \ php7-zip \ From 75d5046430a230d571a8730760aa581ddcaa24ae Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 5 Mar 2020 18:38:31 +0100 Subject: [PATCH 155/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b0d7afb..9b90250 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.61-RC2 (2020/03/05) + +* Add `php7-sockets` extension (#61) + ## 1.61-RC1 (2020/03/02) * LibreNMS 1.61 From 624b15beb1f7fa65f709a83806d22bb08aa149c8 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 22 Mar 2020 16:48:13 +0100 Subject: [PATCH 156/523] Allow multi discovery workers through LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS env var (#59) --- CHANGELOG.md | 4 ++++ doc/docker/environment-variables.md | 1 + rootfs/etc/cont-init.d/05-svc-cron.sh | 3 +++ 3 files changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b90250..5cb576e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.61-RC3 (2020/03/22) + +* Allow multi discovery workers through `LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS` env var (#59) + ## 1.61-RC2 (2020/03/05) * Add `php7-sockets` extension (#61) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 7524e47..30f0789 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -28,6 +28,7 @@ * `SIDECAR_CRON`: Set to `1` to enable sidecar cron mode for this container (default `0`) * `LIBRENMS_CRON_DISCOVERY_ENABLE`: Enable LibreNMS discovery for this container cronjobs (default `true`) +* `LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS`: Spawn multiple discovery.php processes in parallel (default `1`) * `LIBRENMS_CRON_DAILY_ENABLE`: Enable LibreNMS daily script for this container cronjobs (default `true`) * `LIBRENMS_CRON_ALERTS_ENABLE`: Enable LibreNMS alerts generation for this container cronjobs (default `true`) * `LIBRENMS_CRON_BILLING_ENABLE`: Enable LibreNMS billing polling for this container cronjobs (default `true`) diff --git a/rootfs/etc/cont-init.d/05-svc-cron.sh b/rootfs/etc/cont-init.d/05-svc-cron.sh index fbe4c54..79a0b99 100644 --- a/rootfs/etc/cont-init.d/05-svc-cron.sh +++ b/rootfs/etc/cont-init.d/05-svc-cron.sh @@ -7,6 +7,7 @@ LIBRENMS_POLLER_THREADS=${LIBRENMS_POLLER_THREADS:-16} LIBRENMS_POLLER_INTERVAL=${LIBRENMS_POLLER_INTERVAL:-5} LIBRENMS_CRON_DISCOVERY_ENABLE=${LIBRENMS_CRON_DISCOVERY_ENABLE:-true} +LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS=${LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS:-1} LIBRENMS_CRON_DAILY_ENABLE=${LIBRENMS_CRON_DAILY_ENABLE:-true} LIBRENMS_CRON_ALERTS_ENABLE=${LIBRENMS_CRON_ALERTS_ENABLE:-true} LIBRENMS_CRON_BILLING_ENABLE=${LIBRENMS_CRON_BILLING_ENABLE:-true} @@ -40,9 +41,11 @@ sed -i -e "s/ librenms //" ${CRONTAB_PATH}/librenms if [ "$LIBRENMS_CRON_DISCOVERY_ENABLE" != "true" ]; then echo "Disable discovery cron" + sed -i "/discovery-wrapper.py/d" ${CRONTAB_PATH}/librenms sed -i "/discovery.php/d" ${CRONTAB_PATH}/librenms else echo "Enable discovery cron" + sed -i -e "s/discovery-wrapper.py 1/discovery-wrapper.py ${LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS}/" ${CRONTAB_PATH}/librenms fi if [ "$LIBRENMS_CRON_DAILY_ENABLE" != "true" ]; then From 457a6149776eee28c5ed9739113ff57baf71a570 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 22 Mar 2020 16:57:11 +0100 Subject: [PATCH 157/523] Fix links --- README.md | 2 +- doc/docker/environment-variables.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 24e424d..6d634c7 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * Run as non-root user * Cron tasks as a ["sidecar" container](doc/notes/crons.md) * Syslog-ng support through a ["sidecar" container](doc/notes/syslog-ng.md) -* Ability to configure [distributed polling](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) +* Ability to configure [distributed polling](https://docs.librenms.org/Extensions/Distributed-Poller/) * Ability to add custom Monitoring plugins (Nagios) * OPCache enabled to store precompiled script bytecode in shared memory * [s6-overlay](https://github.com/just-containers/s6-overlay/) as process supervisor diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 30f0789..350a048 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -15,7 +15,7 @@ ### (Distributed) Poller * `LIBRENMS_POLLER_THREADS`: Threads that `poller-wrapper.py` runs (default `16`) -* `LIBRENMS_POLLER_INTERVAL`: Interval in minutes at which `poller-wrapper.py` runs (defaults to `5`) [docs](https://docs.librenms.org/#Support/1-Minute-Polling/) +* `LIBRENMS_POLLER_INTERVAL`: Interval in minutes at which `poller-wrapper.py` runs (defaults to `5`) [docs](https://docs.librenms.org/Support/1-Minute-Polling/) * `LIBRENMS_DISTRIBUTED_POLLER_ENABLE`: Enable distributed poller functionality * `LIBRENMS_DISTRIBUTED_POLLER_NAME`: Optional name of poller (defaults to hostname) * `LIBRENMS_DISTRIBUTED_POLLER_GROUP`: By default, all hosts are shared and have the poller_group = 0. To pin a device to a poller, set it to a value greater than 0 and set the same value here. One can also specify a comma separated string of poller groups. The poller will then poll devices from any of the groups listed. [docs](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) From a31f2a8840843bd4be648bbf96a6881ad2208bf9 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 27 Mar 2020 14:25:03 +0100 Subject: [PATCH 158/523] Fix folder creation (#62) --- CHANGELOG.md | 4 ++++ Dockerfile | 3 +-- rootfs/etc/cont-init.d/02-fix-perms.sh | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cb576e..2b49fd5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.61-RC4 (2020/03/27) + +* Fix folder creation (#62) + ## 1.61-RC3 (2020/03/22) * Allow multi discovery workers through `LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS` env var (#59) diff --git a/Dockerfile b/Dockerfile index b007292..0fac21b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -115,8 +115,7 @@ RUN mkdir -p /opt \ COPY rootfs / RUN addgroup -g ${PGID} librenms \ - && adduser -D -h ${LIBRENMS_PATH} -u ${PUID} -G librenms -s /bin/sh -D librenms \ - && mkdir -p /data /var/run/nginx /var/run/php-fpm + && adduser -D -h ${LIBRENMS_PATH} -u ${PUID} -G librenms -s /bin/sh -D librenms EXPOSE 8000 514 514/udp WORKDIR ${LIBRENMS_PATH} diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index bf334f1..e763d7d 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -1,6 +1,9 @@ #!/usr/bin/with-contenv sh echo "Fixing perms..." +mkdir -p /data \ + /var/run/nginx \ + /var/run/php-fpm chown librenms. \ /data \ "${LIBRENMS_PATH}" From 345a8d9233878324d3fa5440f152a45bc07a21b4 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 27 Mar 2020 14:25:44 +0100 Subject: [PATCH 159/523] Update README --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6d634c7..61f93d9 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,6 @@ Docker Stars Docker Pulls Docker Repository on Quay - Code Quality
Become a sponsor Donate Paypal

From 062de7ff85cb96ceef736ce0ec956eaf87f6ecfe Mon Sep 17 00:00:00 2001 From: Ike Devolder Date: Sun, 29 Mar 2020 18:51:14 +0200 Subject: [PATCH 160/523] Fix docker-compose examples UID/GID settings (#64) when you change the PUID/PGID in the `.env` file, only the librenms containers UID/GID are changes which causes permission issues with rrdcached. rrdcached will still be running with UID=1000 and GID=1000. As a result of that, no graphs will be rendered. By adding: ``` - "PUID=${PUID}" - "PGID=${PGID}" ``` to the rrdcache service the graphs will rendered properly because rrdcached will also run with the same UID/GID as librenms Signed-off-by: BlackEagle --- examples/compose/docker-compose.yml | 2 ++ examples/traefik/docker-compose.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 2d568c8..7bb91f8 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -36,6 +36,8 @@ services: - "./rrd-journal:/data/journal" environment: - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" - "LOG_LEVEL=LOG_INFO" - "WRITE_TIMEOUT=1800" - "WRITE_JITTER=1800" diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 4a9010c..a495737 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -67,6 +67,8 @@ services: - "./rrd-journal:/data/journal" environment: - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" - "LOG_LEVEL=LOG_INFO" - "WRITE_TIMEOUT=1800" - "WRITE_JITTER=1800" From 8ea06f7624e1c0c300f4d9367f66a4d8f2564d3e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 4 Apr 2020 18:21:44 +0200 Subject: [PATCH 161/523] LibreNMS 1.62.2 --- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b49fd5..5dea738 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.62.2-RC1 (2020/04/04) + +* LibreNMS 1.62.2 + ## 1.61-RC4 (2020/03/27) * Fix folder creation (#62) diff --git a/Dockerfile b/Dockerfile index 0fac21b..3be72c4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -89,7 +89,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/sbin/fping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.61" \ + LIBRENMS_VERSION="1.62.2" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ From d982c7a74c746f0e0af7f3e88c5023e6b240702a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 6 Apr 2020 22:11:58 +0200 Subject: [PATCH 162/523] Fix compose (#65) --- examples/compose/docker-compose.yml | 2 -- examples/traefik/docker-compose.yml | 2 -- 2 files changed, 4 deletions(-) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 7bb91f8..5151188 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -48,8 +48,6 @@ services: smtp: image: juanluisbaptiste/postfix container_name: librenms_smtp - volumes: - - "/etc/localtime:/etc/localtime:ro" environment: - "SERVER_HOSTNAME=librenms.example.com" - "SMTP_SERVER=${SMTP_SERVER}" diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index a495737..4156478 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -79,8 +79,6 @@ services: smtp: image: juanluisbaptiste/postfix container_name: librenms_smtp - volumes: - - "/etc/localtime:/etc/localtime:ro" environment: - "SERVER_HOSTNAME=librenms.example.com" - "SMTP_SERVER=${SMTP_SERVER}" From 286cd8d31d113b5b4c20ca8d44f187a780b923fa Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 7 Apr 2020 20:01:29 +0200 Subject: [PATCH 163/523] Switch to Open Container Specification labels as label-schema.org ones are deprecated --- Dockerfile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3be72c4..b351481 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,15 +5,15 @@ ARG VCS_REF ARG VERSION LABEL maintainer="CrazyMax" \ - org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.name="librenms" \ - org.label-schema.description="LibreNMS" \ - org.label-schema.version=$VERSION \ - org.label-schema.url="https://github.com/librenms/docker" \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.vcs-url="https://github.com/librenms/docker" \ - org.label-schema.vendor="LibreNMS" \ - org.label-schema.schema-version="1.0" + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.url="https://github.com/librenms/docker" \ + org.opencontainers.image.source="https://github.com/librenms/docker" \ + org.opencontainers.image.version=$VERSION \ + org.opencontainers.image.revision=$VCS_REF \ + org.opencontainers.image.vendor="CrazyMax" \ + org.opencontainers.image.title="LibreNMS" \ + org.opencontainers.image.description="LibreNMS" \ + org.opencontainers.image.licenses="MIT" RUN apk --update --no-cache add \ busybox-extras \ From ca84dd49cb56fcbef2f00705d3c9a42d63fef8aa Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 13 Apr 2020 21:16:02 +0200 Subject: [PATCH 164/523] Fix log file permissions (#66) --- CHANGELOG.md | 4 ++++ rootfs/etc/cont-init.d/03-config.sh | 1 + 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5dea738..0362e7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.62.2-RC2 (2020/04/13) + +* Fix log file permissions (#66) + ## 1.62.2-RC1 (2020/04/04) * LibreNMS 1.62.2 diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index b316bb5..7dab5e2 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -85,6 +85,7 @@ sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.c # Init files and folders echo "Initializing LibreNMS files / folders..." mkdir -p /data/config /data/logs /data/monitoring-plugins /data/rrd +touch /data/logs/librenms.log rm -rf ${LIBRENMS_PATH}/logs rm -f ${LIBRENMS_PATH}/config.d/* From d911499a47d272dc17c2b37f954feda99b865a1c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 13 Apr 2020 21:16:40 +0200 Subject: [PATCH 165/523] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0362e7d..584d7f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## 1.62.2-RC2 (2020/04/13) * Fix log file permissions (#66) +* Switch to Open Container Specification labels as label-schema.org ones are deprecated ## 1.62.2-RC1 (2020/04/04) From 72692bce0622477aa0ebbd459781241b279eca53 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 8 May 2020 19:42:37 +0200 Subject: [PATCH 166/523] Update workflows --- .github/workflows/build.yml | 2 +- .github/workflows/labels.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index eb3189e..ff7d14e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ jobs: - # https://github.com/actions/checkout name: Checkout - uses: actions/checkout@v1 + uses: actions/checkout@v2 - name: Prepare id: prepare diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index dd984b6..9aa092e 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -15,11 +15,11 @@ jobs: - # https://github.com/actions/checkout name: Checkout - uses: actions/checkout@v1 + uses: actions/checkout@v2 - # https://github.com/crazy-max/ghaction-github-labeler name: Run Labeler if: success() - uses: crazy-max/ghaction-github-labeler@v1 + uses: crazy-max/ghaction-github-labeler@v2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 7693b6b44e9e8fa795467f2558fb98570c751f14 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 8 May 2020 21:39:29 +0200 Subject: [PATCH 167/523] Add LISTEN_IPV6 env var (#71) --- doc/docker/environment-variables.md | 1 + rootfs/etc/cont-init.d/03-config.sh | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 350a048..5e1408e 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -8,6 +8,7 @@ * `MEMORY_LIMIT`: PHP memory limit (default `256M`) * `UPLOAD_MAX_SIZE`: Upload max size (default `16M`) * `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](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) on Nginx. (default `remote_addr`) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 7dab5e2..9647c81 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -28,6 +28,7 @@ TZ=${TZ:-UTC} MEMORY_LIMIT=${MEMORY_LIMIT:-256M} UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-16M} OPCACHE_MEM_SIZE=${OPCACHE_MEM_SIZE:-128} +LISTEN_IPV6=${LISTEN_IPV6:-true} REAL_IP_FROM=${REAL_IP_FROM:-"0.0.0.0/32"} REAL_IP_HEADER=${REAL_IP_HEADER:-"X-Forwarded-For"} LOG_IP_VAR=${LOG_IP_VAR:-remote_addr} @@ -77,6 +78,10 @@ sed -e "s#@UPLOAD_MAX_SIZE@#$UPLOAD_MAX_SIZE#g" \ -e "s#@LOG_IP_VAR@#$LOG_IP_VAR#g" \ /tpls/etc/nginx/nginx.conf > /etc/nginx/nginx.conf +if [ "$LISTEN_IPV6" != "true" ]; then + sed -e '/listen \[::\]:/d' -i /etc/nginx/nginx.conf +fi + # SNMP echo "Updating SNMP community..." file_env 'LIBRENMS_SNMP_COMMUNITY' 'librenmsdocker' From 7daa8602b61668e64a50db7514ab2fc6d98c803d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 8 May 2020 21:40:24 +0200 Subject: [PATCH 168/523] LibreNMS 1.63 --- CHANGELOG.md | 5 +++++ Dockerfile | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 584d7f9..a5eea0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.63-RC1 (2020/05/08) + +* LibreNMS 1.63 +* Add `LISTEN_IPV6` env var (#71) + ## 1.62.2-RC2 (2020/04/13) * Fix log file permissions (#66) diff --git a/Dockerfile b/Dockerfile index b351481..e52a10f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -89,7 +89,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/sbin/fping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.62.2" \ + LIBRENMS_VERSION="1.63" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ From f74e790a14cbf4a6a348c32d138a93207894bc6e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 8 May 2020 22:23:38 +0200 Subject: [PATCH 169/523] Alpine Linux 3.11 --- CHANGELOG.md | 1 + Dockerfile | 3 +-- README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5eea0c..7f3a580 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ * LibreNMS 1.63 * Add `LISTEN_IPV6` env var (#71) +* Alpine Linux 3.11 ## 1.62.2-RC2 (2020/04/13) diff --git a/Dockerfile b/Dockerfile index e52a10f..34ddbad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.10 +FROM alpine:3.11 ARG BUILD_DATE ARG VCS_REF @@ -65,7 +65,6 @@ RUN apk --update --no-cache add \ php7-tokenizer \ php7-xml \ php7-zip \ - py-mysqldb \ python \ py2-pip \ python3 \ diff --git a/README.md b/README.md index 61f93d9..8c176f2 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * [Additional Monitoring plugins (Nagios)](doc/notes/additional-monitoring-plugins.md) * [Upgrade](doc/upgrade.md) -## How can I help ? +## How can I help? All kinds of contributions are welcome :raised_hands:! The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon: You can also support this project by [**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max) :clap: or by making a [Paypal donation](https://www.paypal.me/crazyws) to ensure this journey continues indefinitely! :rocket: From 7a2dfef43dee72fc73bb6a4fc04dc88f113d8b53 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 8 May 2020 22:26:08 +0200 Subject: [PATCH 170/523] Update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8c176f2..a7a20b1 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

Latest Version - Build Status + Build Status Docker Stars Docker Pulls Docker Repository on Quay From 3cdecd3e0003d8d55eb5c824e049669f070c8ff0 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Fri, 8 May 2020 22:35:43 +0200 Subject: [PATCH 171/523] Dispatcher service (#70) * Stop publishing Docker image on Quay Co-authored-by: CrazyMax --- .github/workflows/build.yml | 8 - README.md | 10 +- doc/docker/environment-variables.md | 43 +++-- doc/docker/ports.md | 2 +- doc/notes/crons.md | 2 + doc/notes/dispatcher-service.md | 16 ++ examples/dispatcher/.env | 11 ++ examples/dispatcher/docker-compose.yml | 149 ++++++++++++++++++ examples/dispatcher/librenms.env | 28 ++++ rootfs/etc/cont-init.d/03-config.sh | 3 - rootfs/etc/cont-init.d/04-svc-main.sh | 3 +- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 112 +++++++++++++ .../{05-svc-cron.sh => 06-svc-cron.sh} | 0 ...{06-svc-syslogng.sh => 07-svc-syslogng.sh} | 0 14 files changed, 358 insertions(+), 29 deletions(-) create mode 100644 doc/notes/dispatcher-service.md create mode 100644 examples/dispatcher/.env create mode 100644 examples/dispatcher/docker-compose.yml create mode 100644 examples/dispatcher/librenms.env create mode 100644 rootfs/etc/cont-init.d/05-svc-dispatcher.sh rename rootfs/etc/cont-init.d/{05-svc-cron.sh => 06-svc-cron.sh} (100%) rename rootfs/etc/cont-init.d/{06-svc-syslogng.sh => 07-svc-syslogng.sh} (100%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ff7d14e..db9403f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,8 +29,6 @@ jobs: echo ::set-output name=build_date::$(date -u +'%Y-%m-%dT%H:%M:%SZ') echo ::set-output name=docker_username::librenmsbot echo ::set-output name=docker_image::librenms/librenms - echo ::set-output name=quay_username::librenms+travis - echo ::set-output name=quay_image::quay.io/librenms/librenms - name: Docker Build run: | @@ -40,30 +38,24 @@ jobs: --build-arg "VERSION=${{ steps.prepare.outputs.version }}" \ --tag "${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }}" \ --tag "${{ steps.prepare.outputs.docker_image }}:latest" \ - --tag "${{ steps.prepare.outputs.quay_image }}:${{ steps.prepare.outputs.version }}" \ - --tag "${{ steps.prepare.outputs.quay_image }}:latest" \ --file Dockerfile . - name: Docker Login if: success() && startsWith(github.ref, 'refs/tags/') env: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }} run: | echo "${DOCKER_PASSWORD}" | docker login --username "${{ steps.prepare.outputs.docker_username }}" --password-stdin - echo "${QUAY_PASSWORD}" | docker login quay.io --username "${{ steps.prepare.outputs.quay_username }}" --password-stdin - name: Docker Push if: success() && startsWith(github.ref, 'refs/tags/') run: | docker push ${{ steps.prepare.outputs.docker_image }} - docker push ${{ steps.prepare.outputs.quay_image }} - name: Docker Check Manifest if: always() && startsWith(github.ref, 'refs/tags/') run: | docker run --rm mplatform/mquery ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }} - docker run --rm mplatform/mquery ${{ steps.prepare.outputs.quay_image }}:${{ steps.prepare.outputs.version }} - name: Clear if: always() && startsWith(github.ref, 'refs/tags/') diff --git a/README.md b/README.md index a7a20b1..9393545 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,6 @@ Build Status Docker Stars Docker Pulls - Docker Repository on Quay
Become a sponsor Donate Paypal

@@ -20,19 +19,17 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ ## Features * Run as non-root user -* Cron tasks as a ["sidecar" container](doc/notes/crons.md) -* Syslog-ng support through a ["sidecar" container](doc/notes/syslog-ng.md) +* [Dispatcher service](doc/docker/environment-variables.md#dispatcher-service-under-test) or legacy [cron jobs](doc/docker/environment-variables.md#cron) as "sidecar" containers +* Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng) * Ability to configure [distributed polling](https://docs.librenms.org/Extensions/Distributed-Poller/) * Ability to add custom Monitoring plugins (Nagios) * OPCache enabled to store precompiled script bytecode in shared memory * [s6-overlay](https://github.com/just-containers/s6-overlay/) as process supervisor * [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates (see [this template](examples/traefik)) * [Memcached](https://github.com/docker-library/memcached) image ready to use for better scalability -* [RRDcached](https://github.com/crazy-max/docker-rrdcached) image ready to use for better scalability +* [RRDcached](https://github.com/crazy-max/docker-rrdcached) image ready to use for data caching and graphs * [Postfix SMTP relay](https://github.com/juanluisbaptiste/docker-postfix) image to send emails * [MariaDB](https://github.com/docker-library/mariadb) image as database instance -* Cron jobs as a ["sidecar" container](doc/docker/environment-variables.md#cron) -* Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng) ## Documentation @@ -46,6 +43,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * [Add user](doc/notes/add-user.md) * [Validate](doc/notes/validate.md) * [Update database](doc/notes/update-database.md) + * [Dispatcher service](doc/notes/dispatcher-service.md) * [Crons](doc/notes/crons.md) * [Syslog-ng](doc/notes/syslog-ng.md) * [Additional Monitoring plugins (Nagios)](doc/notes/additional-monitoring-plugins.md) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 5e1408e..d754acf 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -13,19 +13,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](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) on Nginx. (default `remote_addr`) -### (Distributed) Poller +### Dispatcher service -* `LIBRENMS_POLLER_THREADS`: Threads that `poller-wrapper.py` runs (default `16`) -* `LIBRENMS_POLLER_INTERVAL`: Interval in minutes at which `poller-wrapper.py` runs (defaults to `5`) [docs](https://docs.librenms.org/Support/1-Minute-Polling/) -* `LIBRENMS_DISTRIBUTED_POLLER_ENABLE`: Enable distributed poller functionality -* `LIBRENMS_DISTRIBUTED_POLLER_NAME`: Optional name of poller (defaults to hostname) -* `LIBRENMS_DISTRIBUTED_POLLER_GROUP`: By default, all hosts are shared and have the poller_group = 0. To pin a device to a poller, set it to a value greater than 0 and set the same value here. One can also specify a comma separated string of poller groups. The poller will then poll devices from any of the groups listed. [docs](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) -* `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST`: Memcached server for poller synchronization (Defaults to `$MEMCACHED_HOST`) -* `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT`: Port of memcached server (Defaults to `$MEMCACHED_PORT`) +> :warning: Only used if you enable and run a [sidecar dispatcher container](../notes/crons.md) + +* `SIDECAR_DISPATCHER`: Set to `1` to enable sidecar dispatcher mode for this container (default `0`) +* `LIBRENMS_SERVICE_POLLER_WORKERS`: Processes spawned for polling (default `24`) +* `LIBRENMS_SERVICE_SERVICES_WORKERS`: Processes spawned for service polling (default `8`) +* `LIBRENMS_SERVICE_DISCOVERY_WORKERS`: Processes spawned for discovery (default `16`) +* `LIBRENMS_SERVICE_POLLER_FREQUENCY`: Seconds between polling attempts (default `300`) +* `LIBRENMS_SERVICE_SERVICES_FREQUENCY`: Seconds between service polling attempts (default `300`) +* `LIBRENMS_SERVICE_DISCOVERY_FREQUENCY`: Seconds between polling attempts (default `21600`) +* `LIBRENMS_SERVICE_BILLING_FREQUENCY`: Seconds between polling attempts (default `300`) +* `LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY`: Billing interval (default `60`) +* `LIBRENMS_SERVICE_POLLER_DOWN_RETRY`: Seconds between failed polling attempts (default `60`) +* `LIBRENMS_SERVICE_LOGLEVEL`: Must be one of 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL' (default `INFO`) +* `LIBRENMS_SERVICE_UPDATE_FREQUENCY`: Seconds between LibreNMS update checks (default `86400`) +* `LIBRENMS_SERVICE_PING_ENABLED`: Enable fast ping scheduler (default `false`) +* `LIBRENMS_SERVICE_WATCHDOG_ENABLED`: Enable watchdog scheduler (default `false`) +* `REDIS_HOST`: Redis host for poller synchronization (default `localhost`) +* `REDIS_PORT`: Redis port (default `6379`) +* `REDIS_PASSWORD`: Redis password +* `REDIS_DB`: Redis database (default `0`) ### Cron -> :warning: Only used if you enabled and run a [sidecar cron container](../notes/crons.md) +> :warning: Only used if you enable and run a [sidecar cron container](../notes/crons.md) * `SIDECAR_CRON`: Set to `1` to enable sidecar cron mode for this container (default `0`) * `LIBRENMS_CRON_DISCOVERY_ENABLE`: Enable LibreNMS discovery for this container cronjobs (default `true`) @@ -42,9 +55,19 @@ * `LIBRENMS_CRON_SNMPSCAN_THREADS`: SNMP network scanning threads to use (default `32`) * `LIBRENMS_CRON_SNMPSCAN_LOGFILE`: SNMP network scanning cron log file (default `/dev/null`) +### Distributed Poller + +* `LIBRENMS_POLLER_THREADS`: Threads that `poller-wrapper.py` runs (default `16`) +* `LIBRENMS_POLLER_INTERVAL`: Interval in minutes at which `poller-wrapper.py` runs (default `5`) [docs](https://docs.librenms.org/Support/1-Minute-Polling/) +* `LIBRENMS_DISTRIBUTED_POLLER_ENABLE`: Enable distributed poller functionality +* `LIBRENMS_DISTRIBUTED_POLLER_NAME`: Optional name of poller (default `$(hostname)`) +* `LIBRENMS_DISTRIBUTED_POLLER_GROUP`: By default, all hosts are shared and have the poller_group = 0. To pin a device to a poller, set it to a value greater than 0 and set the same value here. One can also specify a comma separated string of poller groups. The poller will then poll devices from any of the groups listed. [docs](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) +* `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST`: Memcached server for poller synchronization (default `$MEMCACHED_HOST`) +* `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT`: Port of memcached server (default `$MEMCACHED_PORT`) + ### Syslog-ng -> :warning: Only used if you enabled and run a [sidecar syslog-ng container](../notes/syslog-ng.md) +> :warning: Only used if you enable and run a [sidecar syslog-ng container](../notes/syslog-ng.md) * `SIDECAR_SYSLOGNG`: Set to `1` to enable sidecar syslog-ng mode for this container (default `0`) diff --git a/doc/docker/ports.md b/doc/docker/ports.md index 4ee5562..0e7b9f9 100644 --- a/doc/docker/ports.md +++ b/doc/docker/ports.md @@ -1,4 +1,4 @@ ### Ports * `8000`: HTTP port -* `514 514/udp`: Syslog ports (only used if you enabled and run a [sidecar syslog-ng container](../notes/syslog-ng.md)) +* `514 514/udp`: Syslog ports (only used if you enable and run a [sidecar syslog-ng container](../notes/syslog-ng.md)) diff --git a/doc/notes/crons.md b/doc/notes/crons.md index c89fd48..dcde7cc 100644 --- a/doc/notes/crons.md +++ b/doc/notes/crons.md @@ -12,3 +12,5 @@ docker run -d --name librenms_cron \ > `-v librenms:/data`
> :warning: `librenms` must be a valid volume already attached to a LibreNMS container + +> :no_entry: Can't be used with [sidecar dispatcher container](crons.md). diff --git a/doc/notes/dispatcher-service.md b/doc/notes/dispatcher-service.md new file mode 100644 index 0000000..bc73802 --- /dev/null +++ b/doc/notes/dispatcher-service.md @@ -0,0 +1,16 @@ +## Dispatcher service + +If you want to enable the new [Dispatcher service](https://docs.librenms.org/Extensions/Dispatcher-Service/), you have to run a "sidecar" container (see dispatcher service in [docker-compose.yml](../../examples/dispatcher/docker-compose.yml) example) or run a simple container like this: + +```bash +docker run -d --name librenms_dispatcher \ + --env-file $(pwd)/librenms.env \ + -e SIDECAR_DISPATCHER=1 \ + -v librenms:/data \ + librenms/librenms:latest +``` + +> `-v librenms:/data`
+> :warning: `librenms` must be a valid volume already attached to a LibreNMS container + +> :no_entry: Can't be used with [sidecar cron container](crons.md). diff --git a/examples/dispatcher/.env b/examples/dispatcher/.env new file mode 100644 index 0000000..a847768 --- /dev/null +++ b/examples/dispatcher/.env @@ -0,0 +1,11 @@ +MYSQL_DATABASE=librenms +MYSQL_USER=librenms +MYSQL_PASSWORD=asupersecretpassword + +SMTP_SERVER=smtp.example.com +SMTP_USERNAME=smtp@example.com +SMTP_PASSWORD= + +TZ=Europe/Paris +PUID=1000 +PGID=1000 diff --git a/examples/dispatcher/docker-compose.yml b/examples/dispatcher/docker-compose.yml new file mode 100644 index 0000000..47f61c6 --- /dev/null +++ b/examples/dispatcher/docker-compose.yml @@ -0,0 +1,149 @@ +version: "3.5" + +services: + db: + image: mariadb:10.2 + container_name: librenms_db + command: + - "mysqld" + - "--sql-mode=" + - "--innodb-file-per-table=1" + - "--lower-case-table-names=0" + - "--character-set-server=utf8" + - "--collation-server=utf8_unicode_ci" + volumes: + - "./db:/var/lib/mysql" + environment: + - "TZ=${TZ}" + - "MYSQL_ALLOW_EMPTY_PASSWORD=yes" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + restart: always + + memcached: + image: memcached:alpine + container_name: librenms_memcached + environment: + - "TZ=${TZ}" + restart: always + + redis: + image: redis:5.0-alpine + container_name: librenms_redis + environment: + - "TZ=${TZ}" + restart: always + + rrdcached: + image: crazymax/rrdcached + container_name: librenms_rrdcached + volumes: + - "./librenms/rrd:/data/db" + - "./rrd-journal:/data/journal" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "LOG_LEVEL=LOG_INFO" + - "WRITE_TIMEOUT=1800" + - "WRITE_JITTER=1800" + - "WRITE_THREADS=4" + - "FLUSH_DEAD_DATA_INTERVAL=3600" + restart: always + + smtp: + image: juanluisbaptiste/postfix + container_name: librenms_smtp + environment: + - "SERVER_HOSTNAME=librenms.example.com" + - "SMTP_SERVER=${SMTP_SERVER}" + - "SMTP_USERNAME=${SMTP_USERNAME}" + - "SMTP_PASSWORD=${SMTP_PASSWORD}" + restart: always + + librenms: + image: librenms/librenms:latest + container_name: librenms + domainname: example.com + hostname: librenms + ports: + - target: 8000 + published: 8000 + protocol: tcp + depends_on: + - db + - memcached + - rrdcached + - smtp + volumes: + - "./librenms:/data" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + env_file: + - "./librenms.env" + restart: always + + dispatcher: + image: librenms/librenms:latest + container_name: librenms_dispatcher + domainname: example.com + hostname: librenms + depends_on: + - librenms + - redis + volumes: + - "./librenms:/data" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" + - "SIDECAR_DISPATCHER=1" + env_file: + - "./librenms.env" + restart: always + + syslog-ng: + image: librenms/librenms:latest + container_name: librenms_syslog + domainname: example.com + hostname: librenms + depends_on: + - librenms + ports: + - target: 514 + published: 514 + protocol: tcp + - target: 514 + published: 514 + protocol: udp + volumes: + - "./librenms:/data" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "SIDECAR_SYSLOGNG=1" + env_file: + - "./librenms.env" + restart: always diff --git a/examples/dispatcher/librenms.env b/examples/dispatcher/librenms.env new file mode 100644 index 0000000..6b8655e --- /dev/null +++ b/examples/dispatcher/librenms.env @@ -0,0 +1,28 @@ +MEMORY_LIMIT=256M +UPLOAD_MAX_SIZE=16M +OPCACHE_MEM_SIZE=128 +REAL_IP_FROM=0.0.0.0/32 +REAL_IP_HEADER=X-Forwarded-For +LOG_IP_VAR=remote_addr + +LIBRENMS_SNMP_COMMUNITY=librenmsdocker +MEMCACHED_HOST=memcached +MEMCACHED_PORT=11211 +RRDCACHED_HOST=rrdcached +RRDCACHED_PORT=42217 + +LIBRENMS_SERVICE_POLLER_WORKERS=24 +LIBRENMS_SERVICE_SERVICES_WORKERS=8 +LIBRENMS_SERVICE_DISCOVERY_WORKERS=16 + +LIBRENMS_SERVICE_POLLER_FREQUENCY=300 +LIBRENMS_SERVICE_SERVICES_FREQUENCY=300 +LIBRENMS_SERVICE_DISCOVERY_FREQUENCY=21600 +LIBRENMS_SERVICE_BILLING_FREQUENCY=300 +LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY=60 +LIBRENMS_SERVICE_POLLER_DOWN_RETRY=60 +LIBRENMS_SERVICE_LOGLEVEL=INFO +LIBRENMS_SERVICE_UPDATE_FREQUENCY=86400 + +LIBRENMS_SERVICE_PING_ENABLED=false +LIBRENMS_SERVICE_WATCHDOG_ENABLED=false diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 9647c81..b26bd31 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -47,9 +47,6 @@ DB_NAME=${DB_NAME:-librenms} DB_USER=${DB_USER:-librenms} DB_TIMEOUT=${DB_TIMEOUT:-30} -SIDECAR_CRON=${SIDECAR_CRON:-0} -SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} - # Timezone echo "Setting timezone to ${TZ}..." ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index 16d70b5..5dda362 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -29,9 +29,10 @@ DB_USER=${DB_USER:-librenms} DB_TIMEOUT=${DB_TIMEOUT:-60} SIDECAR_CRON=${SIDECAR_CRON:-0} +SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} -if [ "$SIDECAR_CRON" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ]; then +if [ "$SIDECAR_CRON" = "1" ] || [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ]; then exit 0 fi diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh new file mode 100644 index 0000000..ebe8f02 --- /dev/null +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -0,0 +1,112 @@ +#!/usr/bin/with-contenv bash + +# From https://github.com/docker-library/mariadb/blob/master/docker-entrypoint.sh#L21-L41 +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +DB_PORT=${DB_PORT:-3306} +DB_DATABASE=${DB_DATABASE:-librenms} +DB_USERNAME=${DB_USERNAME:-librenms} +DB_TIMEOUT=${DB_TIMEOUT:-60} + +SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} + +LIBRENMS_SERVICE_POLLER_WORKERS=${LIBRENMS_SERVICE_POLLER_WORKERS:-24} +LIBRENMS_SERVICE_SERVICES_WORKERS=${LIBRENMS_SERVICE_SERVICES_WORKERS:-8} +LIBRENMS_SERVICE_DISCOVERY_WORKERS=${LIBRENMS_SERVICE_DISCOVERY_WORKERS:-16} + +LIBRENMS_SERVICE_POLLER_FREQUENCY=${LIBRENMS_SERVICE_POLLER_FREQUENCY:-300} +LIBRENMS_SERVICE_SERVICES_FREQUENCY=${LIBRENMS_SERVICE_SERVICES_FREQUENCY:-300} +LIBRENMS_SERVICE_DISCOVERY_FREQUENCY=${LIBRENMS_SERVICE_DISCOVERY_FREQUENCY:-21600} +LIBRENMS_SERVICE_BILLING_FREQUENCY=${LIBRENMS_SERVICE_BILLING_FREQUENCY:-300} +LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY=${LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY:-60} +LIBRENMS_SERVICE_POLLER_DOWN_RETRY=${LIBRENMS_SERVICE_POLLER_DOWN_RETRY:-60} +LIBRENMS_SERVICE_LOGLEVEL=${LIBRENMS_SERVICE_LOGLEVEL:-INFO} +LIBRENMS_SERVICE_UPDATE_FREQUENCY=${LIBRENMS_SERVICE_UPDATE_FREQUENCY:-86400} + +LIBRENMS_SERVICE_PING_ENABLED=${LIBRENMS_SERVICE_PING_ENABLED:-false} +LIBRENMS_SERVICE_WATCHDOG_ENABLED=${LIBRENMS_SERVICE_WATCHDOG_ENABLED:-false} + +REDIS_HOST=${REDIS_HOST:-localhost} +REDIS_PORT=${REDIS_PORT:-6379} +file_env 'REDIS_PASSWORD' +REDIS_DB=${REDIS_DB:-0} + +# Continue only if sidecar dispatcher container +if [ "$SIDECAR_DISPATCHER" != "1" ]; then + exit 0 +fi + +echo ">>" +echo ">> Sidecar dispatcher container detected" +echo ">>" + +file_env 'DB_PASSWORD' +if [ -z "$DB_PASSWORD" ]; then + >&2 echo "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined" + exit 1 +fi + +dbcmd="mysql -h ${DB_HOST} -P ${DB_PORT} -u "${DB_USERNAME}" "-p${DB_PASSWORD}"" +unset DB_PASSWORD + +echo "Waiting ${DB_TIMEOUT}s for database to be ready..." +counter=1 +while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do + sleep 1 + counter=$((counter + 1)) + if [ ${counter} -gt ${DB_TIMEOUT} ]; then + >&2 echo "ERROR: Failed to connect to database on $DB_HOST" + exit 1 + fi; +done +echo "Database ready!" +counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_DATABASE" | wc -l) + +# Configuration +cat > ${LIBRENMS_PATH}/config.d/dispatcher.php < /etc/services.d/dispatcher/run < Date: Fri, 8 May 2020 22:38:51 +0200 Subject: [PATCH 172/523] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f3a580..cf5e2c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## 1.63-RC1 (2020/05/08) * LibreNMS 1.63 +* Add sidecar dispatcher container (#70) * Add `LISTEN_IPV6` env var (#71) * Alpine Linux 3.11 From 7bd652f10a304e42c6c4bd2cb18a48c66c0a25fe Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 8 May 2020 23:10:27 +0200 Subject: [PATCH 173/523] Fix poller-wrapper --- CHANGELOG.md | 4 ++++ Dockerfile | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf5e2c6..7a9e3b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.63-RC2 (2020/05/08) + +* Fix poller-wrapper + ## 1.63-RC1 (2020/05/08) * LibreNMS 1.63 diff --git a/Dockerfile b/Dockerfile index 34ddbad..720ff3f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -77,12 +77,20 @@ RUN apk --update --no-cache add \ tzdata \ util-linux \ whois \ + && apk --update --no-cache add -t build-dependencies \ + gcc \ + make \ + mariadb-dev \ + musl-dev \ + python-dev \ + python3-dev \ && pip2 install --upgrade pip \ - && pip2 install python-memcached \ + && pip2 install python-memcached mysqlclient \ && pip3 install --upgrade pip \ - && pip3 install python-memcached \ + && pip3 install python-memcached mysqlclient \ && wget -q "https://github.com/just-containers/s6-overlay/releases/latest/download/s6-overlay-amd64.tar.gz" -qO "/tmp/s6-overlay-amd64.tar.gz" \ && tar xzf /tmp/s6-overlay-amd64.tar.gz -C / \ + && apk del build-dependencies \ && rm -rf /var/cache/apk/* /var/www/* /tmp/* \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping From 68c9b01c0f237930d9754841cd6d9c9c3d538c0c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 8 May 2020 23:33:07 +0200 Subject: [PATCH 174/523] Update compose and set crons sidecar as legacy --- doc/notes/crons.md | 4 +-- doc/notes/dispatcher-service.md | 2 +- examples/{dispatcher => compose-legacy}/.env | 0 .../docker-compose.yml | 17 ++--------- examples/compose-legacy/librenms.env | 26 ++++++++++++++++ examples/compose/docker-compose.yml | 17 +++++++++-- examples/compose/librenms.env | 30 ++++++++++--------- examples/dispatcher/librenms.env | 28 ----------------- 8 files changed, 62 insertions(+), 62 deletions(-) rename examples/{dispatcher => compose-legacy}/.env (100%) rename examples/{dispatcher => compose-legacy}/docker-compose.yml (91%) create mode 100644 examples/compose-legacy/librenms.env delete mode 100644 examples/dispatcher/librenms.env diff --git a/doc/notes/crons.md b/doc/notes/crons.md index dcde7cc..ed44718 100644 --- a/doc/notes/crons.md +++ b/doc/notes/crons.md @@ -1,6 +1,6 @@ -## Crons +## Crons (legacy) -If you want to enable the cronjob, you have to run a "sidecar" container (see cron service in [docker-compose.yml](../../examples/compose/docker-compose.yml) example) or run a simple container like this : +If you want to enable the old crons, you have to run a "sidecar" container (see cron service in [docker-compose.yml](../../examples/compose-legacy/docker-compose.yml) example) or run a simple container like this : ```bash docker run -d --name librenms_cron \ diff --git a/doc/notes/dispatcher-service.md b/doc/notes/dispatcher-service.md index bc73802..a25fc31 100644 --- a/doc/notes/dispatcher-service.md +++ b/doc/notes/dispatcher-service.md @@ -1,6 +1,6 @@ ## Dispatcher service -If you want to enable the new [Dispatcher service](https://docs.librenms.org/Extensions/Dispatcher-Service/), you have to run a "sidecar" container (see dispatcher service in [docker-compose.yml](../../examples/dispatcher/docker-compose.yml) example) or run a simple container like this: +If you want to enable the new [Dispatcher service](https://docs.librenms.org/Extensions/Dispatcher-Service/), you have to run a "sidecar" container (see dispatcher service in [docker-compose.yml](../../examples/compose/docker-compose.yml) example) or run a simple container like this: ```bash docker run -d --name librenms_dispatcher \ diff --git a/examples/dispatcher/.env b/examples/compose-legacy/.env similarity index 100% rename from examples/dispatcher/.env rename to examples/compose-legacy/.env diff --git a/examples/dispatcher/docker-compose.yml b/examples/compose-legacy/docker-compose.yml similarity index 91% rename from examples/dispatcher/docker-compose.yml rename to examples/compose-legacy/docker-compose.yml index 47f61c6..5151188 100644 --- a/examples/dispatcher/docker-compose.yml +++ b/examples/compose-legacy/docker-compose.yml @@ -28,13 +28,6 @@ services: - "TZ=${TZ}" restart: always - redis: - image: redis:5.0-alpine - container_name: librenms_redis - environment: - - "TZ=${TZ}" - restart: always - rrdcached: image: crazymax/rrdcached container_name: librenms_rrdcached @@ -91,14 +84,13 @@ services: - "./librenms.env" restart: always - dispatcher: + cron: image: librenms/librenms:latest - container_name: librenms_dispatcher + container_name: librenms_cron domainname: example.com hostname: librenms depends_on: - librenms - - redis volumes: - "./librenms:/data" environment: @@ -110,10 +102,7 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" - - "SIDECAR_DISPATCHER=1" + - "SIDECAR_CRON=1" env_file: - "./librenms.env" restart: always diff --git a/examples/compose-legacy/librenms.env b/examples/compose-legacy/librenms.env new file mode 100644 index 0000000..6a91910 --- /dev/null +++ b/examples/compose-legacy/librenms.env @@ -0,0 +1,26 @@ +MEMORY_LIMIT=256M +UPLOAD_MAX_SIZE=16M +OPCACHE_MEM_SIZE=128 +REAL_IP_FROM=0.0.0.0/32 +REAL_IP_HEADER=X-Forwarded-For +LOG_IP_VAR=remote_addr + +LIBRENMS_POLLER_THREADS=16 +LIBRENMS_POLLER_INTERVAL=5 + +LIBRENMS_CRON_DISCOVERY_ENABLE=true +LIBRENMS_CRON_DAILY_ENABLE=true +LIBRENMS_CRON_ALERTS_ENABLE=true +LIBRENMS_CRON_BILLING_ENABLE=true +LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=true +LIBRENMS_CRON_CHECK_SERVICES_ENABLE=true +LIBRENMS_CRON_POLLER_ENABLE=true +LIBRENMS_CRON_SNMPSCAN_ENABLE=true +LIBRENMS_CRON_SNMPSCAN_NETS=192.168.0.0/24,192.168.1.0/24 +LIBRENMS_CRON_SNMPSCAN_LOGFILE=/data/logs/snmp-scan.log + +LIBRENMS_SNMP_COMMUNITY=librenmsdocker +MEMCACHED_HOST=memcached +MEMCACHED_PORT=11211 +RRDCACHED_HOST=rrdcached +RRDCACHED_PORT=42217 diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 5151188..47f61c6 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -28,6 +28,13 @@ services: - "TZ=${TZ}" restart: always + redis: + image: redis:5.0-alpine + container_name: librenms_redis + environment: + - "TZ=${TZ}" + restart: always + rrdcached: image: crazymax/rrdcached container_name: librenms_rrdcached @@ -84,13 +91,14 @@ services: - "./librenms.env" restart: always - cron: + dispatcher: image: librenms/librenms:latest - container_name: librenms_cron + container_name: librenms_dispatcher domainname: example.com hostname: librenms depends_on: - librenms + - redis volumes: - "./librenms:/data" environment: @@ -102,7 +110,10 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "SIDECAR_CRON=1" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" + - "SIDECAR_DISPATCHER=1" env_file: - "./librenms.env" restart: always diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index 6a91910..6b8655e 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -5,22 +5,24 @@ REAL_IP_FROM=0.0.0.0/32 REAL_IP_HEADER=X-Forwarded-For LOG_IP_VAR=remote_addr -LIBRENMS_POLLER_THREADS=16 -LIBRENMS_POLLER_INTERVAL=5 - -LIBRENMS_CRON_DISCOVERY_ENABLE=true -LIBRENMS_CRON_DAILY_ENABLE=true -LIBRENMS_CRON_ALERTS_ENABLE=true -LIBRENMS_CRON_BILLING_ENABLE=true -LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=true -LIBRENMS_CRON_CHECK_SERVICES_ENABLE=true -LIBRENMS_CRON_POLLER_ENABLE=true -LIBRENMS_CRON_SNMPSCAN_ENABLE=true -LIBRENMS_CRON_SNMPSCAN_NETS=192.168.0.0/24,192.168.1.0/24 -LIBRENMS_CRON_SNMPSCAN_LOGFILE=/data/logs/snmp-scan.log - LIBRENMS_SNMP_COMMUNITY=librenmsdocker MEMCACHED_HOST=memcached MEMCACHED_PORT=11211 RRDCACHED_HOST=rrdcached RRDCACHED_PORT=42217 + +LIBRENMS_SERVICE_POLLER_WORKERS=24 +LIBRENMS_SERVICE_SERVICES_WORKERS=8 +LIBRENMS_SERVICE_DISCOVERY_WORKERS=16 + +LIBRENMS_SERVICE_POLLER_FREQUENCY=300 +LIBRENMS_SERVICE_SERVICES_FREQUENCY=300 +LIBRENMS_SERVICE_DISCOVERY_FREQUENCY=21600 +LIBRENMS_SERVICE_BILLING_FREQUENCY=300 +LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY=60 +LIBRENMS_SERVICE_POLLER_DOWN_RETRY=60 +LIBRENMS_SERVICE_LOGLEVEL=INFO +LIBRENMS_SERVICE_UPDATE_FREQUENCY=86400 + +LIBRENMS_SERVICE_PING_ENABLED=false +LIBRENMS_SERVICE_WATCHDOG_ENABLED=false diff --git a/examples/dispatcher/librenms.env b/examples/dispatcher/librenms.env deleted file mode 100644 index 6b8655e..0000000 --- a/examples/dispatcher/librenms.env +++ /dev/null @@ -1,28 +0,0 @@ -MEMORY_LIMIT=256M -UPLOAD_MAX_SIZE=16M -OPCACHE_MEM_SIZE=128 -REAL_IP_FROM=0.0.0.0/32 -REAL_IP_HEADER=X-Forwarded-For -LOG_IP_VAR=remote_addr - -LIBRENMS_SNMP_COMMUNITY=librenmsdocker -MEMCACHED_HOST=memcached -MEMCACHED_PORT=11211 -RRDCACHED_HOST=rrdcached -RRDCACHED_PORT=42217 - -LIBRENMS_SERVICE_POLLER_WORKERS=24 -LIBRENMS_SERVICE_SERVICES_WORKERS=8 -LIBRENMS_SERVICE_DISCOVERY_WORKERS=16 - -LIBRENMS_SERVICE_POLLER_FREQUENCY=300 -LIBRENMS_SERVICE_SERVICES_FREQUENCY=300 -LIBRENMS_SERVICE_DISCOVERY_FREQUENCY=21600 -LIBRENMS_SERVICE_BILLING_FREQUENCY=300 -LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY=60 -LIBRENMS_SERVICE_POLLER_DOWN_RETRY=60 -LIBRENMS_SERVICE_LOGLEVEL=INFO -LIBRENMS_SERVICE_UPDATE_FREQUENCY=86400 - -LIBRENMS_SERVICE_PING_ENABLED=false -LIBRENMS_SERVICE_WATCHDOG_ENABLED=false From 39c753d1e852e28201045432cecbbbfb22cf93b5 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 9 May 2020 15:01:58 +0200 Subject: [PATCH 175/523] Fix links --- README.md | 4 ++-- doc/docker/environment-variables.md | 6 +++--- doc/notes/{crons.md => cron.md} | 4 ++-- doc/notes/dispatcher-service.md | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) rename doc/notes/{crons.md => cron.md} (82%) diff --git a/README.md b/README.md index 9393545..5ae1fba 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ ## Features * Run as non-root user -* [Dispatcher service](doc/docker/environment-variables.md#dispatcher-service-under-test) or legacy [cron jobs](doc/docker/environment-variables.md#cron) as "sidecar" containers +* [Dispatcher service](doc/docker/environment-variables.md#dispatcher-service) or legacy [cron](doc/docker/environment-variables.md#cron-legacy) as "sidecar" containers * Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng) * Ability to configure [distributed polling](https://docs.librenms.org/Extensions/Distributed-Poller/) * Ability to add custom Monitoring plugins (Nagios) @@ -44,7 +44,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * [Validate](doc/notes/validate.md) * [Update database](doc/notes/update-database.md) * [Dispatcher service](doc/notes/dispatcher-service.md) - * [Crons](doc/notes/crons.md) + * [Cron (legacy)](doc/notes/cron.md) * [Syslog-ng](doc/notes/syslog-ng.md) * [Additional Monitoring plugins (Nagios)](doc/notes/additional-monitoring-plugins.md) * [Upgrade](doc/upgrade.md) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index d754acf..a975ed1 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -15,7 +15,7 @@ ### Dispatcher service -> :warning: Only used if you enable and run a [sidecar dispatcher container](../notes/crons.md) +> :warning: Only used if you enable and run a [sidecar dispatcher container](../notes/dispatcher-service.md) * `SIDECAR_DISPATCHER`: Set to `1` to enable sidecar dispatcher mode for this container (default `0`) * `LIBRENMS_SERVICE_POLLER_WORKERS`: Processes spawned for polling (default `24`) @@ -36,9 +36,9 @@ * `REDIS_PASSWORD`: Redis password * `REDIS_DB`: Redis database (default `0`) -### Cron +### Cron (legacy) -> :warning: Only used if you enable and run a [sidecar cron container](../notes/crons.md) +> :warning: Only used if you enable and run a [sidecar cron container](../notes/cron.md) * `SIDECAR_CRON`: Set to `1` to enable sidecar cron mode for this container (default `0`) * `LIBRENMS_CRON_DISCOVERY_ENABLE`: Enable LibreNMS discovery for this container cronjobs (default `true`) diff --git a/doc/notes/crons.md b/doc/notes/cron.md similarity index 82% rename from doc/notes/crons.md rename to doc/notes/cron.md index ed44718..ab40d91 100644 --- a/doc/notes/crons.md +++ b/doc/notes/cron.md @@ -1,4 +1,4 @@ -## Crons (legacy) +## Cron (legacy) If you want to enable the old crons, you have to run a "sidecar" container (see cron service in [docker-compose.yml](../../examples/compose-legacy/docker-compose.yml) example) or run a simple container like this : @@ -13,4 +13,4 @@ docker run -d --name librenms_cron \ > `-v librenms:/data`
> :warning: `librenms` must be a valid volume already attached to a LibreNMS container -> :no_entry: Can't be used with [sidecar dispatcher container](crons.md). +> :no_entry: Can't be used with [sidecar dispatcher container](dispatcher-service.md). diff --git a/doc/notes/dispatcher-service.md b/doc/notes/dispatcher-service.md index a25fc31..d34c4cb 100644 --- a/doc/notes/dispatcher-service.md +++ b/doc/notes/dispatcher-service.md @@ -13,4 +13,4 @@ docker run -d --name librenms_dispatcher \ > `-v librenms:/data`
> :warning: `librenms` must be a valid volume already attached to a LibreNMS container -> :no_entry: Can't be used with [sidecar cron container](crons.md). +> :no_entry: Can't be used with [sidecar cron container](cron.md). From 6acb3577a79c2bf282db0a2e856241e0fcb41d8f Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 9 May 2020 16:56:11 +0200 Subject: [PATCH 176/523] Update compose examples --- examples/compose-legacy/docker-compose.yml | 12 ++++----- examples/compose/docker-compose.yml | 12 ++++----- examples/traefik/docker-compose.yml | 29 +++++++++++++++------- examples/traefik/librenms.env | 27 ++++++++++++-------- 4 files changed, 48 insertions(+), 32 deletions(-) diff --git a/examples/compose-legacy/docker-compose.yml b/examples/compose-legacy/docker-compose.yml index 5151188..da38f5f 100644 --- a/examples/compose-legacy/docker-compose.yml +++ b/examples/compose-legacy/docker-compose.yml @@ -71,6 +71,8 @@ services: - smtp volumes: - "./librenms:/data" + env_file: + - "./librenms.env" environment: - "TZ=${TZ}" - "PUID=${PUID}" @@ -80,8 +82,6 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - env_file: - - "./librenms.env" restart: always cron: @@ -93,6 +93,8 @@ services: - librenms volumes: - "./librenms:/data" + env_file: + - "./librenms.env" environment: - "TZ=${TZ}" - "PUID=${PUID}" @@ -103,8 +105,6 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "SIDECAR_CRON=1" - env_file: - - "./librenms.env" restart: always syslog-ng: @@ -123,6 +123,8 @@ services: protocol: udp volumes: - "./librenms:/data" + env_file: + - "./librenms.env" environment: - "TZ=${TZ}" - "PUID=${PUID}" @@ -133,6 +135,4 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "SIDECAR_SYSLOGNG=1" - env_file: - - "./librenms.env" restart: always diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 47f61c6..0a7a12b 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -78,6 +78,8 @@ services: - smtp volumes: - "./librenms:/data" + env_file: + - "./librenms.env" environment: - "TZ=${TZ}" - "PUID=${PUID}" @@ -87,8 +89,6 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - env_file: - - "./librenms.env" restart: always dispatcher: @@ -101,6 +101,8 @@ services: - redis volumes: - "./librenms:/data" + env_file: + - "./librenms.env" environment: - "TZ=${TZ}" - "PUID=${PUID}" @@ -114,8 +116,6 @@ services: - "REDIS_PORT=6379" - "REDIS_DB=0" - "SIDECAR_DISPATCHER=1" - env_file: - - "./librenms.env" restart: always syslog-ng: @@ -134,6 +134,8 @@ services: protocol: udp volumes: - "./librenms:/data" + env_file: + - "./librenms.env" environment: - "TZ=${TZ}" - "PUID=${PUID}" @@ -144,6 +146,4 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "SIDECAR_SYSLOGNG=1" - env_file: - - "./librenms.env" restart: always diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 4156478..2c3624f 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -59,6 +59,13 @@ services: - "TZ=${TZ}" restart: always + redis: + image: redis:5.0-alpine + container_name: librenms_redis + environment: + - "TZ=${TZ}" + restart: always + rrdcached: image: crazymax/rrdcached container_name: librenms_rrdcached @@ -103,6 +110,8 @@ services: - "traefik.backend=librenms" - "traefik.port=8000" - "traefik.frontend.rule=Host:librenms.example.com" + env_file: + - "./librenms.env" environment: - "TZ=${TZ}" - "PUID=${PUID}" @@ -112,19 +121,20 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - env_file: - - "./librenms.env" restart: always - cron: + dispatcher: image: librenms/librenms:latest - container_name: librenms_cron + container_name: librenms_dispatcher domainname: example.com hostname: librenms depends_on: - librenms + - redis volumes: - "./librenms:/data" + env_file: + - "./librenms.env" environment: - "TZ=${TZ}" - "PUID=${PUID}" @@ -134,9 +144,10 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "SIDECAR_CRON=1" - env_file: - - "./librenms.env" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" + - "SIDECAR_DISPATCHER=1" restart: always syslog-ng: @@ -155,6 +166,8 @@ services: protocol: udp volumes: - "./librenms:/data" + env_file: + - "./librenms.env" environment: - "TZ=${TZ}" - "PUID=${PUID}" @@ -165,6 +178,4 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "SIDECAR_SYSLOGNG=1" - env_file: - - "./librenms.env" restart: always diff --git a/examples/traefik/librenms.env b/examples/traefik/librenms.env index d200733..bcc5fb3 100644 --- a/examples/traefik/librenms.env +++ b/examples/traefik/librenms.env @@ -5,19 +5,24 @@ REAL_IP_FROM=0.0.0.0/32 REAL_IP_HEADER=X-Forwarded-For LOG_IP_VAR=http_x_forwarded_for -LIBRENMS_POLLER_THREADS=16 -LIBRENMS_POLLER_INTERVAL=5 - -LIBRENMS_CRON_DISCOVERY_ENABLE=true -LIBRENMS_CRON_DAILY_ENABLE=true -LIBRENMS_CRON_ALERTS_ENABLE=true -LIBRENMS_CRON_BILLING_ENABLE=true -LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=true -LIBRENMS_CRON_CHECK_SERVICES_ENABLE=true -LIBRENMS_CRON_POLLER_ENABLE=true - LIBRENMS_SNMP_COMMUNITY=librenmsdocker MEMCACHED_HOST=memcached MEMCACHED_PORT=11211 RRDCACHED_HOST=rrdcached RRDCACHED_PORT=42217 + +LIBRENMS_SERVICE_POLLER_WORKERS=24 +LIBRENMS_SERVICE_SERVICES_WORKERS=8 +LIBRENMS_SERVICE_DISCOVERY_WORKERS=16 + +LIBRENMS_SERVICE_POLLER_FREQUENCY=300 +LIBRENMS_SERVICE_SERVICES_FREQUENCY=300 +LIBRENMS_SERVICE_DISCOVERY_FREQUENCY=21600 +LIBRENMS_SERVICE_BILLING_FREQUENCY=300 +LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY=60 +LIBRENMS_SERVICE_POLLER_DOWN_RETRY=60 +LIBRENMS_SERVICE_LOGLEVEL=INFO +LIBRENMS_SERVICE_UPDATE_FREQUENCY=86400 + +LIBRENMS_SERVICE_PING_ENABLED=false +LIBRENMS_SERVICE_WATCHDOG_ENABLED=false From 944e949d116e55a17f665b531fc3501f6926171b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 13 May 2020 13:25:20 +0200 Subject: [PATCH 177/523] Update workflows --- .github/workflows/build.yml | 1 - .github/workflows/labels.yml | 2 -- 2 files changed, 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index db9403f..c674532 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,6 @@ jobs: runs-on: ubuntu-latest steps: - - # https://github.com/actions/checkout name: Checkout uses: actions/checkout@v2 - diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 9aa092e..294c3b7 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -13,11 +13,9 @@ jobs: runs-on: ubuntu-latest steps: - - # https://github.com/actions/checkout name: Checkout uses: actions/checkout@v2 - - # https://github.com/crazy-max/ghaction-github-labeler name: Run Labeler if: success() uses: crazy-max/ghaction-github-labeler@v2 From e35df14d42fafa50a139580aa4b6cedf9cd82fbf Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 13 May 2020 13:26:22 +0200 Subject: [PATCH 178/523] Run librenms-service as librenms user (#76) --- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index ebe8f02..e3509a9 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -107,6 +107,7 @@ mkdir -p /etc/services.d/dispatcher cat > /etc/services.d/dispatcher/run < Date: Wed, 13 May 2020 13:29:35 +0200 Subject: [PATCH 179/523] Mark sidecar cron container as deprectated --- rootfs/etc/cont-init.d/06-svc-cron.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rootfs/etc/cont-init.d/06-svc-cron.sh b/rootfs/etc/cont-init.d/06-svc-cron.sh index 79a0b99..2a95e1d 100644 --- a/rootfs/etc/cont-init.d/06-svc-cron.sh +++ b/rootfs/etc/cont-init.d/06-svc-cron.sh @@ -27,9 +27,9 @@ if [ "$SIDECAR_CRON" != "1" ]; then exit 0 fi -echo ">>" -echo ">> Sidecar cron container detected" -echo ">>" +echo ">>> WARNING: Sidecar cron container is deprecated and will be removed soon." +echo ">>> Please switch to the dispatcher service." +echo ">>> https://github.com/librenms/docker/blob/master/doc/notes/dispatcher-service.md" rm -rf ${CRONTAB_PATH} mkdir -m 0644 -p ${CRONTAB_PATH} From d6336d4f5ee117214d9d9019196f0785a837020b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 13 May 2020 13:29:49 +0200 Subject: [PATCH 180/523] Update CHANGELOG --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a9e3b8..e731847 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.63-RC3 (2020/05/13) + +* Run librenms-service as librenms user (#76) +* Mark sidecar cron container as deprectated + ## 1.63-RC2 (2020/05/08) * Fix poller-wrapper From 86c3d3f4b224800b91988866185f104889101d8d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 14 May 2020 05:48:59 +0200 Subject: [PATCH 181/523] Add demo to PWD --- CHANGELOG.md | 2 +- README.md | 4 ++ examples/pwd/librenms.yml | 137 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 examples/pwd/librenms.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index e731847..74e89d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ## 1.63-RC3 (2020/05/13) * Run librenms-service as librenms user (#76) -* Mark sidecar cron container as deprectated +* Mark sidecar cron container as deprecated ## 1.63-RC2 (2020/05/08) diff --git a/README.md b/README.md index 5ae1fba..7829a7c 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,10 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ 💡 Want to be notified of new releases? Check out 🔔 [Diun (Docker Image Update Notifier)](https://github.com/crazy-max/diun) project! +## Demo + +[![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) + ## Features * Run as non-root user diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml new file mode 100644 index 0000000..6a42524 --- /dev/null +++ b/examples/pwd/librenms.yml @@ -0,0 +1,137 @@ +version: "3.5" + +x-env-global: &env-global + - &MYSQL_DATABASE "librenms" + - &MYSQL_USER "librenms" + - &MYSQL_PASSWORD "asupersecretpassword" + - &TZ "UTC" + - &PUID "1000" + - &PGID "1000" + +x-envlibrenms: &envlibrenms + MEMORY_LIMIT: "256M" + UPLOAD_MAX_SIZE: "16M" + OPCACHE_MEM_SIZE: "128" + REAL_IP_FROM: "0.0.0.0/32" + REAL_IP_HEADER: "X-Forwarded-For" + LOG_IP_VAR: "remote_addr" + LIBRENMS_SNMP_COMMUNITY: "librenmsdocker" + MEMCACHED_HOST: "memcached" + MEMCACHED_PORT: "11211" + RRDCACHED_HOST: "rrdcached" + RRDCACHED_PORT: "42217" + LIBRENMS_SERVICE_POLLER_WORKERS: "24" + LIBRENMS_SERVICE_SERVICES_WORKERS: "8" + LIBRENMS_SERVICE_DISCOVERY_WORKERS: "16" + LIBRENMS_SERVICE_POLLER_FREQUENCY: "300" + LIBRENMS_SERVICE_SERVICES_FREQUENCY: "300" + LIBRENMS_SERVICE_DISCOVERY_FREQUENCY: "21600" + LIBRENMS_SERVICE_BILLING_FREQUENCY: "300" + LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY: "60" + LIBRENMS_SERVICE_POLLER_DOWN_RETRY: "60" + LIBRENMS_SERVICE_LOGLEVEL: "INFO" + LIBRENMS_SERVICE_UPDATE_FREQUENCY: "86400" + LIBRENMS_SERVICE_PING_ENABLED: "false" + LIBRENMS_SERVICE_WATCHDOG_ENABLED: "false" + +services: + db: + image: mariadb:10.2 + command: + - "mysqld" + - "--sql-mode=" + - "--innodb-file-per-table=1" + - "--lower-case-table-names=0" + - "--character-set-server=utf8" + - "--collation-server=utf8_unicode_ci" + volumes: + - "db:/var/lib/mysql" + environment: + TZ: *TZ + MYSQL_ALLOW_EMPTY_PASSWORD: "yes" + MYSQL_DATABASE: *MYSQL_DATABASE + MYSQL_USER: *MYSQL_USER + MYSQL_PASSWORD: *MYSQL_PASSWORD + restart: always + + memcached: + image: memcached:alpine + environment: + TZ: *TZ + restart: always + + redis: + image: redis:5.0-alpine + environment: + TZ: *TZ + restart: always + + rrdcached: + image: crazymax/rrdcached + volumes: + - "librenms:/data" + - "rrd-db:/data/db" + - "rrd-journal:/data/journal" + environment: + TZ: *TZ + PUID: *PUID + PGID: *PGID + LOG_LEVEL: "LOG_INFO" + WRITE_TIMEOUT: "1800" + WRITE_JITTER: "1800" + WRITE_THREADS: "4" + FLUSH_DEAD_DATA_INTERVAL: "3600" + restart: always + + librenms: + image: librenms/librenms:latest + hostname: librenms + ports: + - "8000:8000" + depends_on: + - db + - memcached + - rrdcached + volumes: + - "librenms:/data" + environment: + <<: *envlibrenms + TZ: *TZ + PUID: *PUID + PGID: *PGID + DB_HOST: "db" + DB_NAME: *MYSQL_DATABASE + DB_USER: *MYSQL_USER + DB_PASSWORD: *MYSQL_PASSWORD + DB_TIMEOUT: "60" + restart: always + + dispatcher: + image: librenms/librenms:latest + hostname: librenms + depends_on: + - librenms + - redis + volumes: + - "librenms:/data" + environment: + <<: *envlibrenms + TZ: *TZ + PUID: *PUID + PGID: *PGID + DB_HOST: "db" + DB_NAME: *MYSQL_DATABASE + DB_USER: *MYSQL_USER + DB_PASSWORD: *MYSQL_PASSWORD + DB_TIMEOUT: "60" + REDIS_HOST: "redis" + REDIS_PORT: "6379" + REDIS_DB: "0" + SIDECAR_DISPATCHER: "1" + restart: always + +volumes: + db: + rrd-db: + rrd-journal: + librenms: From 08664d8802233d278d09360c94b71671f51c88e4 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 18 May 2020 18:36:51 +0200 Subject: [PATCH 182/523] Update pwd example --- examples/pwd/librenms.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index 6a42524..2dd9dbc 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -130,6 +130,26 @@ services: SIDECAR_DISPATCHER: "1" restart: always + syslogng: + image: librenms/librenms:latest + hostname: librenms + depends_on: + - librenms + volumes: + - "librenms:/data" + environment: + <<: *envlibrenms + TZ: *TZ + PUID: *PUID + PGID: *PGID + DB_HOST: "db" + DB_NAME: *MYSQL_DATABASE + DB_USER: *MYSQL_USER + DB_PASSWORD: *MYSQL_PASSWORD + DB_TIMEOUT: "60" + SIDECAR_SYSLOGNG: "1" + restart: always + volumes: db: rrd-db: From f33b3294d174f9071bf00bfb5ecf006d185c7ad8 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 18 May 2020 18:37:05 +0200 Subject: [PATCH 183/523] Fix links --- doc/docker/environment-variables.md | 2 +- doc/notes/edit-config.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index a975ed1..d93f76d 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -61,7 +61,7 @@ * `LIBRENMS_POLLER_INTERVAL`: Interval in minutes at which `poller-wrapper.py` runs (default `5`) [docs](https://docs.librenms.org/Support/1-Minute-Polling/) * `LIBRENMS_DISTRIBUTED_POLLER_ENABLE`: Enable distributed poller functionality * `LIBRENMS_DISTRIBUTED_POLLER_NAME`: Optional name of poller (default `$(hostname)`) -* `LIBRENMS_DISTRIBUTED_POLLER_GROUP`: By default, all hosts are shared and have the poller_group = 0. To pin a device to a poller, set it to a value greater than 0 and set the same value here. One can also specify a comma separated string of poller groups. The poller will then poll devices from any of the groups listed. [docs](https://docs.librenms.org/#Extensions/Distributed-Poller/#distributed-poller) +* `LIBRENMS_DISTRIBUTED_POLLER_GROUP`: By default, all hosts are shared and have the poller_group = 0. To pin a device to a poller, set it to a value greater than 0 and set the same value here. One can also specify a comma separated string of poller groups. The poller will then poll devices from any of the groups listed. [docs](https://docs.librenms.org/Extensions/Distributed-Poller/) * `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST`: Memcached server for poller synchronization (default `$MEMCACHED_HOST`) * `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT`: Port of memcached server (default `$MEMCACHED_PORT`) diff --git a/doc/notes/edit-config.md b/doc/notes/edit-config.md index 950fc29..102710a 100644 --- a/doc/notes/edit-config.md +++ b/doc/notes/edit-config.md @@ -1,6 +1,6 @@ ## Edit configuration -You can edit configuration of LibreNMS by placing `*.php` files inside `/data/config` folder. Let's say you want to edit the [WebUI config](https://docs.librenms.org/#Support/Configuration/#webui-settings). Create a file called for example `/data/config/webui.php` with this content : +You can edit configuration of LibreNMS by placing `*.php` files inside `/data/config` folder. Let's say you want to edit the [WebUI config](https://docs.librenms.org/Support/Configuration/#webui-settings). Create a file called for example `/data/config/webui.php` with this content : ```php Date: Mon, 18 May 2020 18:37:52 +0200 Subject: [PATCH 184/523] Unused --- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index e3509a9..320efb6 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -80,7 +80,6 @@ while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do fi; done echo "Database ready!" -counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_DATABASE" | wc -l) # Configuration cat > ${LIBRENMS_PATH}/config.d/dispatcher.php < Date: Mon, 18 May 2020 18:38:04 +0200 Subject: [PATCH 185/523] Use msmtpd SMTP relay --- README.md | 6 +++--- examples/compose-legacy/.env | 12 ++++-------- examples/compose-legacy/docker-compose.yml | 13 +++++-------- examples/compose-legacy/msmtpd.env | 10 ++++++++++ examples/compose/.env | 12 ++++-------- examples/compose/docker-compose.yml | 13 +++++-------- examples/compose/msmtpd.env | 10 ++++++++++ examples/traefik/.env | 12 ++++-------- examples/traefik/docker-compose.yml | 13 +++++-------- examples/traefik/msmtpd.env | 10 ++++++++++ 10 files changed, 60 insertions(+), 51 deletions(-) create mode 100644 examples/compose-legacy/msmtpd.env create mode 100644 examples/compose/msmtpd.env create mode 100644 examples/traefik/msmtpd.env diff --git a/README.md b/README.md index 7829a7c..214a44d 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,8 @@

Latest Version Build Status - Docker Stars - Docker Pulls + Docker Stars + Docker Pulls
Become a sponsor Donate Paypal

@@ -32,7 +32,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates (see [this template](examples/traefik)) * [Memcached](https://github.com/docker-library/memcached) image ready to use for better scalability * [RRDcached](https://github.com/crazy-max/docker-rrdcached) image ready to use for data caching and graphs -* [Postfix SMTP relay](https://github.com/juanluisbaptiste/docker-postfix) image to send emails +* [msmtpd SMTP relay](https://github.com/crazy-max/docker-msmtpd) image to send emails * [MariaDB](https://github.com/docker-library/mariadb) image as database instance ## Documentation diff --git a/examples/compose-legacy/.env b/examples/compose-legacy/.env index a847768..d6c0aed 100644 --- a/examples/compose-legacy/.env +++ b/examples/compose-legacy/.env @@ -1,11 +1,7 @@ -MYSQL_DATABASE=librenms -MYSQL_USER=librenms -MYSQL_PASSWORD=asupersecretpassword - -SMTP_SERVER=smtp.example.com -SMTP_USERNAME=smtp@example.com -SMTP_PASSWORD= - TZ=Europe/Paris PUID=1000 PGID=1000 + +MYSQL_DATABASE=librenms +MYSQL_USER=librenms +MYSQL_PASSWORD=asupersecretpassword diff --git a/examples/compose-legacy/docker-compose.yml b/examples/compose-legacy/docker-compose.yml index da38f5f..14ba392 100644 --- a/examples/compose-legacy/docker-compose.yml +++ b/examples/compose-legacy/docker-compose.yml @@ -45,14 +45,11 @@ services: - "FLUSH_DEAD_DATA_INTERVAL=3600" restart: always - smtp: - image: juanluisbaptiste/postfix - container_name: librenms_smtp - environment: - - "SERVER_HOSTNAME=librenms.example.com" - - "SMTP_SERVER=${SMTP_SERVER}" - - "SMTP_USERNAME=${SMTP_USERNAME}" - - "SMTP_PASSWORD=${SMTP_PASSWORD}" + msmtpd: + image: crazymax/msmtpd:latest + container_name: librenms_msmtpd + env_file: + - "./msmtpd.env" restart: always librenms: diff --git a/examples/compose-legacy/msmtpd.env b/examples/compose-legacy/msmtpd.env new file mode 100644 index 0000000..170bec9 --- /dev/null +++ b/examples/compose-legacy/msmtpd.env @@ -0,0 +1,10 @@ +# https://github.com/crazy-max/docker-msmtpd +SMTP_HOST=smtp.gmail.com +SMTP_PORT=587 +SMTP_TLS=on +SMTP_STARTTLS=on +SMTP_TLS_CHECKCERT=on +SMTP_AUTH=on +SMTP_USER=foo +SMTP_PASSWORD=bar +SMTP_FROM=foo@gmail.com diff --git a/examples/compose/.env b/examples/compose/.env index a847768..d6c0aed 100644 --- a/examples/compose/.env +++ b/examples/compose/.env @@ -1,11 +1,7 @@ -MYSQL_DATABASE=librenms -MYSQL_USER=librenms -MYSQL_PASSWORD=asupersecretpassword - -SMTP_SERVER=smtp.example.com -SMTP_USERNAME=smtp@example.com -SMTP_PASSWORD= - TZ=Europe/Paris PUID=1000 PGID=1000 + +MYSQL_DATABASE=librenms +MYSQL_USER=librenms +MYSQL_PASSWORD=asupersecretpassword diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 0a7a12b..b7efeee 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -52,14 +52,11 @@ services: - "FLUSH_DEAD_DATA_INTERVAL=3600" restart: always - smtp: - image: juanluisbaptiste/postfix - container_name: librenms_smtp - environment: - - "SERVER_HOSTNAME=librenms.example.com" - - "SMTP_SERVER=${SMTP_SERVER}" - - "SMTP_USERNAME=${SMTP_USERNAME}" - - "SMTP_PASSWORD=${SMTP_PASSWORD}" + msmtpd: + image: crazymax/msmtpd:latest + container_name: librenms_msmtpd + env_file: + - "./msmtpd.env" restart: always librenms: diff --git a/examples/compose/msmtpd.env b/examples/compose/msmtpd.env new file mode 100644 index 0000000..170bec9 --- /dev/null +++ b/examples/compose/msmtpd.env @@ -0,0 +1,10 @@ +# https://github.com/crazy-max/docker-msmtpd +SMTP_HOST=smtp.gmail.com +SMTP_PORT=587 +SMTP_TLS=on +SMTP_STARTTLS=on +SMTP_TLS_CHECKCERT=on +SMTP_AUTH=on +SMTP_USER=foo +SMTP_PASSWORD=bar +SMTP_FROM=foo@gmail.com diff --git a/examples/traefik/.env b/examples/traefik/.env index a847768..d6c0aed 100644 --- a/examples/traefik/.env +++ b/examples/traefik/.env @@ -1,11 +1,7 @@ -MYSQL_DATABASE=librenms -MYSQL_USER=librenms -MYSQL_PASSWORD=asupersecretpassword - -SMTP_SERVER=smtp.example.com -SMTP_USERNAME=smtp@example.com -SMTP_PASSWORD= - TZ=Europe/Paris PUID=1000 PGID=1000 + +MYSQL_DATABASE=librenms +MYSQL_USER=librenms +MYSQL_PASSWORD=asupersecretpassword diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 2c3624f..df9c0da 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -83,14 +83,11 @@ services: - "FLUSH_DEAD_DATA_INTERVAL=3600" restart: always - smtp: - image: juanluisbaptiste/postfix - container_name: librenms_smtp - environment: - - "SERVER_HOSTNAME=librenms.example.com" - - "SMTP_SERVER=${SMTP_SERVER}" - - "SMTP_USERNAME=${SMTP_USERNAME}" - - "SMTP_PASSWORD=${SMTP_PASSWORD}" + msmtpd: + image: crazymax/msmtpd:latest + container_name: librenms_msmtpd + env_file: + - "./msmtpd.env" restart: always librenms: diff --git a/examples/traefik/msmtpd.env b/examples/traefik/msmtpd.env new file mode 100644 index 0000000..170bec9 --- /dev/null +++ b/examples/traefik/msmtpd.env @@ -0,0 +1,10 @@ +# https://github.com/crazy-max/docker-msmtpd +SMTP_HOST=smtp.gmail.com +SMTP_PORT=587 +SMTP_TLS=on +SMTP_STARTTLS=on +SMTP_TLS_CHECKCERT=on +SMTP_AUTH=on +SMTP_USER=foo +SMTP_PASSWORD=bar +SMTP_FROM=foo@gmail.com From 986b7e7eafbe89916d29634f58a415b7fccfe9e7 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 18 May 2020 18:47:26 +0200 Subject: [PATCH 186/523] Fix syslogng version --- rootfs/etc/syslog-ng/syslog-ng.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rootfs/etc/syslog-ng/syslog-ng.conf b/rootfs/etc/syslog-ng/syslog-ng.conf index 6f45d41..d9710b3 100644 --- a/rootfs/etc/syslog-ng/syslog-ng.conf +++ b/rootfs/etc/syslog-ng/syslog-ng.conf @@ -1,4 +1,4 @@ -@version:3.19 +@version:3.22 options { chain_hostnames(off); From 1088d9cdb3b8173084b94e5fcca6a8cf6f13e85c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 18 May 2020 19:15:56 +0200 Subject: [PATCH 187/523] Fix syslogng version --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 720ff3f..b5e0084 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,8 @@ LABEL maintainer="CrazyMax" \ org.opencontainers.image.description="LibreNMS" \ org.opencontainers.image.licenses="MIT" +ENV SYSLOGNG_VERSION="3.22.1-r2" + RUN apk --update --no-cache add \ busybox-extras \ acl \ @@ -72,7 +74,7 @@ RUN apk --update --no-cache add \ runit \ shadow \ su-exec \ - syslog-ng \ + syslog-ng=${SYSLOGNG_VERSION} \ ttf-dejavu \ tzdata \ util-linux \ From 62a083f0085c1512f90b07478a8e9973f62999dc Mon Sep 17 00:00:00 2001 From: Alex Muthmann Date: Tue, 19 May 2020 14:25:54 +0200 Subject: [PATCH 188/523] Fix outdated depends_on (#78) --- examples/compose/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index b7efeee..e3f7ae1 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -72,7 +72,7 @@ services: - db - memcached - rrdcached - - smtp + - msmtpd volumes: - "./librenms:/data" env_file: From fee60a01c812d33cdf414393a09a35ba7996d344 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Thu, 21 May 2020 18:02:42 +0200 Subject: [PATCH 189/523] Add LibreNMS Weathermap plugin (#81) --- Dockerfile | 16 ++++++--- README.md | 1 + doc/docker/environment-variables.md | 2 ++ examples/compose-legacy/librenms.env | 3 ++ examples/compose/librenms.env | 3 ++ examples/pwd/librenms.yml | 2 ++ examples/traefik/librenms.env | 3 ++ rootfs/etc/cont-init.d/03-config.sh | 5 +-- rootfs/etc/cont-init.d/08-svc-weathermap.sh | 38 +++++++++++++++++++++ 9 files changed, 67 insertions(+), 6 deletions(-) create mode 100644 rootfs/etc/cont-init.d/08-svc-weathermap.sh diff --git a/Dockerfile b/Dockerfile index b5e0084..e6b5857 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,13 +27,12 @@ RUN apk --update --no-cache add \ coreutils \ curl \ fping \ - git \ graphviz \ imagemagick \ ipmitool \ + mariadb-client \ monitoring-plugins \ mtr \ - mysql-client \ net-snmp \ net-snmp-tools \ nginx \ @@ -105,7 +104,9 @@ ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ PUID="1000" \ PGID="1000" -RUN mkdir -p /opt \ +RUN apk --update --no-cache add -t build-dependencies \ + git \ + && mkdir -p /opt \ && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ && git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git ${LIBRENMS_PATH} \ && COMPOSER_CACHE_DIR="/tmp" composer install --no-dev --no-interaction --no-ansi --working-dir=${LIBRENMS_PATH} \ @@ -118,8 +119,15 @@ RUN mkdir -p /opt \ && echo "foreach (glob(\"/data/config/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ && pip3 install -r ${LIBRENMS_PATH}/requirements.txt \ + && git clone https://github.com/librenms-plugins/Weathermap.git ${LIBRENMS_PATH}/html/plugins/Weathermap \ && chown -R nobody.nogroup ${LIBRENMS_PATH} \ - && rm -rf ${LIBRENMS_PATH}/.git /tmp/* + && apk del build-dependencies \ + && rm -rf /var/cache/apk/* \ + ${LIBRENMS_PATH}/.git \ + ${LIBRENMS_PATH}/html/plugins/Test \ + ${LIBRENMS_PATH}/html/plugins/Weathermap/.git \ + ${LIBRENMS_PATH}/html/plugins/Weathermap/configs \ + /tmp/* COPY rootfs / diff --git a/README.md b/README.md index 214a44d..4ff5071 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * [Dispatcher service](doc/docker/environment-variables.md#dispatcher-service) or legacy [cron](doc/docker/environment-variables.md#cron-legacy) as "sidecar" containers * Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng) * Ability to configure [distributed polling](https://docs.librenms.org/Extensions/Distributed-Poller/) +* Built-in LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) * Ability to add custom Monitoring plugins (Nagios) * OPCache enabled to store precompiled script bytecode in shared memory * [s6-overlay](https://github.com/just-containers/s6-overlay/) as process supervisor diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index d93f76d..6906077 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -83,6 +83,8 @@ ### Misc * `LIBRENMS_SNMP_COMMUNITY`: This container's SNMP v2c community string (default `librenmsdocker`) +* `LIBRENMS_WEATHERMAP`: Enable LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) (default `false`) +* `LIBRENMS_WEATHERMAP_SCHEDULE`: CRON expression format (default `*/5 * * * *`) * `MEMCACHED_HOST`: Hostname / IP address of a Memcached server * `MEMCACHED_PORT`: Port of the Memcached server (default `11211`) * `RRDCACHED_HOST`: Hostname / IP address of a RRDcached server diff --git a/examples/compose-legacy/librenms.env b/examples/compose-legacy/librenms.env index 6a91910..e9b8a8d 100644 --- a/examples/compose-legacy/librenms.env +++ b/examples/compose-legacy/librenms.env @@ -24,3 +24,6 @@ MEMCACHED_HOST=memcached MEMCACHED_PORT=11211 RRDCACHED_HOST=rrdcached RRDCACHED_PORT=42217 + +LIBRENMS_WEATHERMAP=false +LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index 6b8655e..6fae16c 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -26,3 +26,6 @@ LIBRENMS_SERVICE_UPDATE_FREQUENCY=86400 LIBRENMS_SERVICE_PING_ENABLED=false LIBRENMS_SERVICE_WATCHDOG_ENABLED=false + +LIBRENMS_WEATHERMAP=false +LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index 2dd9dbc..e7dc364 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -33,6 +33,8 @@ x-envlibrenms: &envlibrenms LIBRENMS_SERVICE_UPDATE_FREQUENCY: "86400" LIBRENMS_SERVICE_PING_ENABLED: "false" LIBRENMS_SERVICE_WATCHDOG_ENABLED: "false" + LIBRENMS_WEATHERMAP: "true" + LIBRENMS_WEATHERMAP_SCHEDULE: "*/5 * * * *" services: db: diff --git a/examples/traefik/librenms.env b/examples/traefik/librenms.env index bcc5fb3..6cdca5c 100644 --- a/examples/traefik/librenms.env +++ b/examples/traefik/librenms.env @@ -26,3 +26,6 @@ LIBRENMS_SERVICE_UPDATE_FREQUENCY=86400 LIBRENMS_SERVICE_PING_ENABLED=false LIBRENMS_SERVICE_WATCHDOG_ENABLED=false + +LIBRENMS_WEATHERMAP=false +LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index b26bd31..c4b2247 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -86,7 +86,8 @@ sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.c # Init files and folders echo "Initializing LibreNMS files / folders..." -mkdir -p /data/config /data/logs /data/monitoring-plugins /data/rrd +mkdir -p /data/config /data/logs /data/monitoring-plugins /data/rrd /data/weathermap +ln -sf /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/configs touch /data/logs/librenms.log rm -rf ${LIBRENMS_PATH}/logs rm -f ${LIBRENMS_PATH}/config.d/* @@ -188,7 +189,7 @@ fi # Fix perms echo "Fixing perms..." -chown librenms. /data/config /data/monitoring-plugins /data/rrd +chown librenms. /data/config /data/monitoring-plugins /data/rrd /data/weathermap chown -R librenms. /data/logs ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage chmod ug+rw /data/logs /data/rrd ${LIBRENMS_PATH}/bootstrap/cache ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/storage/framework/* diff --git a/rootfs/etc/cont-init.d/08-svc-weathermap.sh b/rootfs/etc/cont-init.d/08-svc-weathermap.sh new file mode 100644 index 0000000..48a568e --- /dev/null +++ b/rootfs/etc/cont-init.d/08-svc-weathermap.sh @@ -0,0 +1,38 @@ +#!/usr/bin/with-contenv bash + +CRONTAB_PATH="/var/spool/cron/crontabs" + +LIBRENMS_WEATHERMAP=${LIBRENMS_WEATHERMAP:-false} +LIBRENMS_WEATHERMAP_SCHEDULE=${LIBRENMS_WEATHERMAP_SCHEDULE:-*/5 * * * *} + +SIDECAR_CRON=${SIDECAR_CRON:-0} +SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} +SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} + +if [ "$SIDECAR_CRON" = "1" ] || [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$LIBRENMS_WEATHERMAP" != "true" ]; then + exit 0 +fi + +# Init +rm -rf ${CRONTAB_PATH} +mkdir -m 0644 -p ${CRONTAB_PATH} +touch ${CRONTAB_PATH}/librenms + +# Cron +if [ -n "$LIBRENMS_WEATHERMAP_SCHEDULE" ]; then + echo "Creating LibreNMS Weathermap cron task with the following period fields: $LIBRENMS_WEATHERMAP_SCHEDULE" + echo "${LIBRENMS_WEATHERMAP_SCHEDULE} php -f /opt/librenms/html/plugins/Weathermap/map-poller.php" >> ${CRONTAB_PATH}/librenms +fi + +# Fix perms +echo "Fixing crontabs permissions..." +chmod -R 0644 ${CRONTAB_PATH} + +# Create service +mkdir -p /etc/services.d/weathermap +cat > /etc/services.d/weathermap/run < Date: Thu, 21 May 2020 18:04:35 +0200 Subject: [PATCH 190/523] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74e89d7..cbf7b7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 1.63-RC4 (2020/05/21) + +* Add LibreNMS Weathermap plugin (#81) +* Fix syslogng version +* Switch to [msmtpd SMTP relay](https://github.com/crazy-max/docker-msmtpd) Docker image + ## 1.63-RC3 (2020/05/13) * Run librenms-service as librenms user (#76) From 351d95299f0409d0aac41a6522aa33afbc9f7a34 Mon Sep 17 00:00:00 2001 From: Seti Date: Fri, 22 May 2020 16:53:14 +0200 Subject: [PATCH 191/523] Add missing dep and perms for Weathermap plugin (#82) --- Dockerfile | 1 + rootfs/etc/cont-init.d/02-fix-perms.sh | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e6b5857..ae44964 100644 --- a/Dockerfile +++ b/Dockerfile @@ -57,6 +57,7 @@ RUN apk --update --no-cache add \ php7-openssl \ php7-pdo \ php7-pdo_mysql \ + php7-pear \ php7-phar \ php7-posix \ php7-session \ diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index e763d7d..485c1de 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -6,7 +6,8 @@ mkdir -p /data \ /var/run/php-fpm chown librenms. \ /data \ - "${LIBRENMS_PATH}" + "${LIBRENMS_PATH}" \ + "${LIBRENMS_PATH}/html/plugins/Weathermap/output" chown -R librenms. \ /tpls \ /var/lib/nginx \ From de203f6f093443960a083169dbe2cf32cb059653 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 22 May 2020 16:54:32 +0200 Subject: [PATCH 192/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cbf7b7f..41a569a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.63-RC5 (2020/05/22) + +* Add missing dep and perms for Weathermap plugin (#82) + ## 1.63-RC4 (2020/05/21) * Add LibreNMS Weathermap plugin (#81) From 004364f7868dc9edf9bbab46e76c2684978e4028 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 24 May 2020 03:42:12 +0200 Subject: [PATCH 193/523] Bring back Git package --- CHANGELOG.md | 4 ++++ Dockerfile | 9 +++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41a569a..44f8b0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.63-RC6 (2020/05/24) + +* Bring back Git package + ## 1.63-RC5 (2020/05/22) * Add missing dep and perms for Weathermap plugin (#82) diff --git a/Dockerfile b/Dockerfile index ae44964..7749987 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,6 +27,7 @@ RUN apk --update --no-cache add \ coreutils \ curl \ fping \ + git \ graphviz \ imagemagick \ ipmitool \ @@ -105,9 +106,7 @@ ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ PUID="1000" \ PGID="1000" -RUN apk --update --no-cache add -t build-dependencies \ - git \ - && mkdir -p /opt \ +RUN mkdir -p /opt \ && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ && git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git ${LIBRENMS_PATH} \ && COMPOSER_CACHE_DIR="/tmp" composer install --no-dev --no-interaction --no-ansi --working-dir=${LIBRENMS_PATH} \ @@ -122,9 +121,7 @@ RUN apk --update --no-cache add -t build-dependencies \ && pip3 install -r ${LIBRENMS_PATH}/requirements.txt \ && git clone https://github.com/librenms-plugins/Weathermap.git ${LIBRENMS_PATH}/html/plugins/Weathermap \ && chown -R nobody.nogroup ${LIBRENMS_PATH} \ - && apk del build-dependencies \ - && rm -rf /var/cache/apk/* \ - ${LIBRENMS_PATH}/.git \ + && rm -rf ${LIBRENMS_PATH}/.git \ ${LIBRENMS_PATH}/html/plugins/Test \ ${LIBRENMS_PATH}/html/plugins/Weathermap/.git \ ${LIBRENMS_PATH}/html/plugins/Weathermap/configs \ From f877e307ebc9ba5a88f7053343bbc35c469cab19 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 28 May 2020 23:03:10 +0200 Subject: [PATCH 194/523] Remove --sql-mode and bump Mariadb to 10.4 --- examples/compose-legacy/docker-compose.yml | 3 +-- examples/compose/docker-compose.yml | 3 +-- examples/pwd/librenms.yml | 3 +-- examples/traefik/docker-compose.yml | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/examples/compose-legacy/docker-compose.yml b/examples/compose-legacy/docker-compose.yml index 14ba392..c5c9672 100644 --- a/examples/compose-legacy/docker-compose.yml +++ b/examples/compose-legacy/docker-compose.yml @@ -2,11 +2,10 @@ version: "3.5" services: db: - image: mariadb:10.2 + image: mariadb:10.4 container_name: librenms_db command: - "mysqld" - - "--sql-mode=" - "--innodb-file-per-table=1" - "--lower-case-table-names=0" - "--character-set-server=utf8" diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index e3f7ae1..ced679a 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -2,11 +2,10 @@ version: "3.5" services: db: - image: mariadb:10.2 + image: mariadb:10.4 container_name: librenms_db command: - "mysqld" - - "--sql-mode=" - "--innodb-file-per-table=1" - "--lower-case-table-names=0" - "--character-set-server=utf8" diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index e7dc364..77232e4 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -38,10 +38,9 @@ x-envlibrenms: &envlibrenms services: db: - image: mariadb:10.2 + image: mariadb:10.4 command: - "mysqld" - - "--sql-mode=" - "--innodb-file-per-table=1" - "--lower-case-table-names=0" - "--character-set-server=utf8" diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index df9c0da..1a5f477 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -33,11 +33,10 @@ services: restart: always db: - image: mariadb:10.2 + image: mariadb:10.4 container_name: librenms_db command: - "mysqld" - - "--sql-mode=" - "--innodb-file-per-table=1" - "--lower-case-table-names=0" - "--character-set-server=utf8" From 9fad63bea52ddf81b90002e1677f31e27917e852 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 28 May 2020 23:04:46 +0200 Subject: [PATCH 195/523] Use recommended lnms command --- Dockerfile | 3 ++- README.md | 3 +-- doc/notes/add-user.md | 15 --------------- doc/notes/lnms-command.md | 7 +++++++ doc/notes/update-database.md | 7 ------- doc/notes/validate.md | 2 +- doc/usage.md | 10 ++++++++++ rootfs/etc/cont-init.d/04-svc-main.sh | 4 ++-- rootfs/usr/local/bin/lnms | 3 +++ 9 files changed, 26 insertions(+), 28 deletions(-) delete mode 100644 doc/notes/add-user.md create mode 100644 doc/notes/lnms-command.md delete mode 100644 doc/notes/update-database.md create mode 100644 rootfs/usr/local/bin/lnms diff --git a/Dockerfile b/Dockerfile index 7749987..b207eaf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -130,7 +130,8 @@ RUN mkdir -p /opt \ COPY rootfs / RUN addgroup -g ${PGID} librenms \ - && adduser -D -h ${LIBRENMS_PATH} -u ${PUID} -G librenms -s /bin/sh -D librenms + && adduser -D -h ${LIBRENMS_PATH} -u ${PUID} -G librenms -s /bin/sh -D librenms \ + && chmod a+x /usr/local/bin/* EXPOSE 8000 514 514/udp WORKDIR ${LIBRENMS_PATH} diff --git a/README.md b/README.md index 4ff5071..ee2fcf7 100644 --- a/README.md +++ b/README.md @@ -45,9 +45,8 @@ It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/ * [Usage](doc/usage.md) * Notes * [Edit configuration](doc/notes/edit-config.md) - * [Add user](doc/notes/add-user.md) + * [LNMS command](doc/notes/lnms-command.md) * [Validate](doc/notes/validate.md) - * [Update database](doc/notes/update-database.md) * [Dispatcher service](doc/notes/dispatcher-service.md) * [Cron (legacy)](doc/notes/cron.md) * [Syslog-ng](doc/notes/syslog-ng.md) diff --git a/doc/notes/add-user.md b/doc/notes/add-user.md deleted file mode 100644 index 70c40e3..0000000 --- a/doc/notes/add-user.md +++ /dev/null @@ -1,15 +0,0 @@ -## Add user - -On first launch, an initial administrator user will be created : - -| Login | Password | -|------------|------------| -| `librenms` | `librenms` | - -You can create an other user using the commande line : - -```text -$ docker-compose exec --user librenms librenms php adduser.php 10 -``` - -> :warning: Substitute your desired username ``, password `` and email address `` diff --git a/doc/notes/lnms-command.md b/doc/notes/lnms-command.md new file mode 100644 index 0000000..fc9e142 --- /dev/null +++ b/doc/notes/lnms-command.md @@ -0,0 +1,7 @@ +## LNMS command + +If you want to use the `lnms` command to perform common server operations like manage users, database migration, and more, type: + +``` +$ docker-compose exec librenms lnms +``` diff --git a/doc/notes/update-database.md b/doc/notes/update-database.md deleted file mode 100644 index a89e05f..0000000 --- a/doc/notes/update-database.md +++ /dev/null @@ -1,7 +0,0 @@ -### Update database - -To update the database manually, type the following command : - -```bash -$ docker-compose exec --user librenms librenms php build-base.php -``` diff --git a/doc/notes/validate.md b/doc/notes/validate.md index 659dc55..1a0c97e 100644 --- a/doc/notes/validate.md +++ b/doc/notes/validate.md @@ -1,6 +1,6 @@ ### Validate -If you want to validate your installation from the CLI, type the following command : +If you want to validate your installation from the CLI, type the following command: ```text $ docker-compose exec --user librenms librenms php validate.php diff --git a/doc/usage.md b/doc/usage.md index 3974978..fb397db 100644 --- a/doc/usage.md +++ b/doc/usage.md @@ -22,3 +22,13 @@ docker run -d -p 8000:8000 --name librenms \ > `-e "DB_HOST=db"`
> :warning: `db` must be a running MySQL instance + +### First launch + +On first launch, an initial administrator user will be created: + +| Login | Password | +|------------|------------| +| `librenms` | `librenms` | + +You can create another one using the [`lnms` command](notes/lnms-command.md). diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index 5dda362..7972d14 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -59,11 +59,11 @@ echo "Database ready!" counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_NAME" | wc -l) echo "Updating database schema..." -su-exec librenms:librenms php build-base.php +lnms migrate --force --no-ansi --no-interaction if [ "${counttables}" -eq "0" ]; then echo "Creating admin user..." - su-exec librenms:librenms php adduser.php librenms librenms 10 librenms@librenms.docker + lnms user:add --password=librenms --email=librenms@librenms.docker --role=admin --no-ansi --no-interaction librenms fi mkdir -p /etc/services.d/nginx diff --git a/rootfs/usr/local/bin/lnms b/rootfs/usr/local/bin/lnms new file mode 100644 index 0000000..505acc4 --- /dev/null +++ b/rootfs/usr/local/bin/lnms @@ -0,0 +1,3 @@ +#!/bin/sh + +su-exec librenms:librenms php -f /opt/librenms/lnms "$@" From 4d1bdba9bbf524785870b23c5c340c5e59691b54 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 28 May 2020 23:12:15 +0200 Subject: [PATCH 196/523] Update CHANGELOG --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44f8b0f..5ff3352 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.63-RC7 (2020/05/28) + +* Use recommended `lnms` command +* Remove `--sql-mode` and bump Mariadb to 10.4 + ## 1.63-RC6 (2020/05/24) * Bring back Git package From 97099891e1923e679e58da09c53bd7268f70fc76 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 1 Jun 2020 10:11:21 +0200 Subject: [PATCH 197/523] LibreNMS 1.64 Python 2 removed (librenms/librenms#11531) --- CHANGELOG.md | 5 +++ Dockerfile | 56 +++++++++++--------------- README.md | 2 +- doc/notes/validate.md | 11 +++-- rootfs/etc/cont-init.d/02-fix-perms.sh | 1 + 5 files changed, 36 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ff3352..f3511a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.64-RC1 (2020/06/01) + +* LibreNMS 1.64 +* Python 2 removed (librenms/librenms#11531) + ## 1.63-RC7 (2020/05/28) * Use recommended `lnms` command diff --git a/Dockerfile b/Dockerfile index b207eaf..89fdb68 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,8 +15,6 @@ LABEL maintainer="CrazyMax" \ org.opencontainers.image.description="LibreNMS" \ org.opencontainers.image.licenses="MIT" -ENV SYSLOGNG_VERSION="3.22.1-r2" - RUN apk --update --no-cache add \ busybox-extras \ acl \ @@ -68,14 +66,12 @@ RUN apk --update --no-cache add \ php7-tokenizer \ php7-xml \ php7-zip \ - python \ - py2-pip \ python3 \ rrdtool \ runit \ shadow \ su-exec \ - syslog-ng=${SYSLOGNG_VERSION} \ + syslog-ng=3.22.1-r2 \ ttf-dejavu \ tzdata \ util-linux \ @@ -85,56 +81,52 @@ RUN apk --update --no-cache add \ make \ mariadb-dev \ musl-dev \ - python-dev \ python3-dev \ - && pip2 install --upgrade pip \ - && pip2 install python-memcached mysqlclient \ && pip3 install --upgrade pip \ - && pip3 install python-memcached mysqlclient \ + && pip3 install python-memcached mysqlclient --upgrade \ && wget -q "https://github.com/just-containers/s6-overlay/releases/latest/download/s6-overlay-amd64.tar.gz" -qO "/tmp/s6-overlay-amd64.tar.gz" \ && tar xzf /tmp/s6-overlay-amd64.tar.gz -C / \ + && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ && apk del build-dependencies \ && rm -rf /var/cache/apk/* /var/www/* /tmp/* \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.63" \ + LIBRENMS_VERSION="1.64" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ PUID="1000" \ PGID="1000" -RUN mkdir -p /opt \ - && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ - && git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git ${LIBRENMS_PATH} \ - && COMPOSER_CACHE_DIR="/tmp" composer install --no-dev --no-interaction --no-ansi --working-dir=${LIBRENMS_PATH} \ +RUN addgroup -g ${PGID} librenms \ + && adduser -D -h /home/librenms -u ${PUID} -G librenms -s /bin/sh -D librenms \ && curl -sSLk -q https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro -o /usr/bin/distro \ - && chmod +x /usr/bin/distro \ - && mkdir -p ${LIBRENMS_PATH}/config.d \ - && cp ${LIBRENMS_PATH}/config.php.default ${LIBRENMS_PATH}/config.php \ - && cp ${LIBRENMS_PATH}/snmpd.conf.example /etc/snmp/snmpd.conf \ - && sed -i "1s|.*|#!/usr/bin/env python3|" ${LIBRENMS_PATH}/snmp-scan.py \ - && echo "foreach (glob(\"/data/config/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ - && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> ${LIBRENMS_PATH}/config.php \ - && pip3 install -r ${LIBRENMS_PATH}/requirements.txt \ - && git clone https://github.com/librenms-plugins/Weathermap.git ${LIBRENMS_PATH}/html/plugins/Weathermap \ + && chmod +x /usr/bin/distro + +WORKDIR ${LIBRENMS_PATH} +RUN git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git . \ + && pip3 install -r requirements.txt --upgrade \ + && COMPOSER_CACHE_DIR="/tmp" composer install --no-dev --no-interaction --no-ansi \ + && mkdir config.d \ + && cp config.php.default config.php \ + && cp snmpd.conf.example /etc/snmp/snmpd.conf \ + && sed -i '/runningUser/d' lnms \ + && echo "foreach (glob(\"/data/config/*.php\") as \$filename) include \$filename;" >> config.php \ + && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> config.php \ + && git clone https://github.com/librenms-plugins/Weathermap.git ./html/plugins/Weathermap \ && chown -R nobody.nogroup ${LIBRENMS_PATH} \ - && rm -rf ${LIBRENMS_PATH}/.git \ - ${LIBRENMS_PATH}/html/plugins/Test \ - ${LIBRENMS_PATH}/html/plugins/Weathermap/.git \ - ${LIBRENMS_PATH}/html/plugins/Weathermap/configs \ + && rm -rf .git \ + html/plugins/Test \ + html/plugins/Weathermap/.git \ + html/plugins/Weathermap/configs \ /tmp/* COPY rootfs / - -RUN addgroup -g ${PGID} librenms \ - && adduser -D -h ${LIBRENMS_PATH} -u ${PUID} -G librenms -s /bin/sh -D librenms \ - && chmod a+x /usr/local/bin/* +RUN chmod a+x /usr/local/bin/* EXPOSE 8000 514 514/udp -WORKDIR ${LIBRENMS_PATH} VOLUME [ "/data" ] ENTRYPOINT [ "/init" ] diff --git a/README.md b/README.md index ee2fcf7..dee1dc5 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ ## About 🐳 [LibreNMS](https://www.librenms.org/) Docker image based on Alpine Linux and Nginx.
-It's a fork of [CrazyMax's LibreNMS Docker image repository](https://github.com/crazy-max/docker-librenms). If you are interested, [check out](https://hub.docker.com/r/crazymax/) his other 🐳 Docker images! +If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other Docker images! 💡 Want to be notified of new releases? Check out 🔔 [Diun (Docker Image Update Notifier)](https://github.com/crazy-max/diun) project! diff --git a/doc/notes/validate.md b/doc/notes/validate.md index 1a0c97e..38d85b5 100644 --- a/doc/notes/validate.md +++ b/doc/notes/validate.md @@ -7,10 +7,11 @@ $ docker-compose exec --user librenms librenms php validate.php ==================================== Component | Version --------- | ------- -LibreNMS | 1.58 -DB Schema | 2019_10_03_211702_serialize_config (147) -PHP | 7.3.11 -MySQL | 10.4.8-MariaDB-1:10.4.8+maria~bionic +LibreNMS | 1.64 +DB Schema | 2020_04_19_010532_eventlog_sensor_reference_cleanup (165) +PHP | 7.3.18 +Python | 3.8.2 +MySQL | 10.4.13-MariaDB-1:10.4.13+maria~bionic RRDTool | 1.7.2 SNMP | NET-SNMP 5.8 ==================================== @@ -18,8 +19,6 @@ SNMP | NET-SNMP 5.8 [OK] Installed from the official Docker image; no Composer required [OK] Database connection successful [OK] Database schema correct -[WARN] You have not added any devices yet. - [FIX] You can add a device in the webui or with ./addhost.php [WARN] IPv6 is disabled on your server, you will not be able to add IPv6 devices. [WARN] Updates are managed through the official Docker image ``` diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index 485c1de..f1eefda 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -9,6 +9,7 @@ chown librenms. \ "${LIBRENMS_PATH}" \ "${LIBRENMS_PATH}/html/plugins/Weathermap/output" chown -R librenms. \ + /home/librenms \ /tpls \ /var/lib/nginx \ /var/log/nginx \ From e00b3777d51067271ff3a49d873dae12235bf26c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 1 Jun 2020 10:27:49 +0200 Subject: [PATCH 198/523] Multi-platform image Publish edge and nightly images --- .github/workflows/build.yml | 75 ++++++++++++++++++++++++------------- CHANGELOG.md | 2 + Dockerfile | 20 ++++++++-- README.md | 18 +++++++++ doc/docker/ports.md | 2 +- 5 files changed, 87 insertions(+), 30 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c674532..216d07e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,11 +1,22 @@ name: build + on: - pull_request: - branches: 'master' + schedule: + - cron: '0 10 * * *' # everyday at 10am push: - branches: 'master' + branches: master tags: '*' + paths: + - '.github/workflows/build.yml' + - 'rootfs/**' + - 'Dockerfile' + pull_request: + branches: master + paths: + - '.github/workflows/build.yml' + - 'rootfs/**' + - 'Dockerfile' jobs: build: @@ -18,45 +29,57 @@ jobs: name: Prepare id: prepare run: | + DOCKER_USERNAME=librenmsbot + DOCKER_IMAGE=librenms/librenms + DOCKER_PLATFORMS=linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/386,linux/ppc64le + VERSION=edge + if [[ $GITHUB_REF == refs/tags/* ]]; then TAG=${GITHUB_REF#refs/tags/} - echo ::set-output name=tag_name::${TAG} - echo ::set-output name=version::${TAG%-*} - else - echo ::set-output name=version::snapshot + VERSION=${TAG%-*} fi - echo ::set-output name=build_date::$(date -u +'%Y-%m-%dT%H:%M:%SZ') - echo ::set-output name=docker_username::librenmsbot - echo ::set-output name=docker_image::librenms/librenms + if [ "${{ github.event_name }}" = "schedule" ]; then + VERSION=nightly + fi + + TAGS="--tag ${DOCKER_IMAGE}:${VERSION}" + if [ "$VERSION" != "edge" ] && [ "$VERSION" != "nightly" ]; then + TAGS="$TAGS --tag ${DOCKER_IMAGE}:latest" + fi + + echo ::set-output name=docker_username::${DOCKER_USERNAME} + echo ::set-output name=docker_image::${DOCKER_IMAGE} + echo ::set-output name=version::${VERSION} + echo ::set-output name=buildx_args::--platform ${DOCKER_PLATFORMS} \ + --build-arg VERSION=${VERSION} \ + --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \ + --build-arg VCS_REF=${GITHUB_SHA::8} \ + ${TAGS} --file Dockerfile . - - name: Docker Build + name: Set up Docker Buildx + uses: crazy-max/ghaction-docker-buildx@v2 + - + name: Docker Buildx (build) run: | - docker build \ - --build-arg "BUILD_DATE=${{ steps.prepare.outputs.build_date }}" \ - --build-arg "VCS_REF=${GITHUB_SHA::8}" \ - --build-arg "VERSION=${{ steps.prepare.outputs.version }}" \ - --tag "${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }}" \ - --tag "${{ steps.prepare.outputs.docker_image }}:latest" \ - --file Dockerfile . - - - name: Docker Login - if: success() && startsWith(github.ref, 'refs/tags/') + docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }} + - name: Docker Login + if: success() && github.event_name != 'pull_request' env: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} run: | echo "${DOCKER_PASSWORD}" | docker login --username "${{ steps.prepare.outputs.docker_username }}" --password-stdin - - name: Docker Push - if: success() && startsWith(github.ref, 'refs/tags/') + name: Docker Buildx (push) + if: success() && github.event_name != 'pull_request' run: | - docker push ${{ steps.prepare.outputs.docker_image }} + docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }} - name: Docker Check Manifest - if: always() && startsWith(github.ref, 'refs/tags/') + if: success() && github.event_name != 'pull_request' run: | docker run --rm mplatform/mquery ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }} - name: Clear - if: always() && startsWith(github.ref, 'refs/tags/') + if: always() && github.event_name != 'pull_request' run: | rm -f ${HOME}/.docker/config.json diff --git a/CHANGELOG.md b/CHANGELOG.md index f3511a9..2ef60db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ * LibreNMS 1.64 * Python 2 removed (librenms/librenms#11531) +* Multi-platform image +* Publish edge and nightly images ## 1.63-RC7 (2020/05/28) diff --git a/Dockerfile b/Dockerfile index 89fdb68..4b1912e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,13 @@ -FROM alpine:3.11 +FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine:3.11 ARG BUILD_DATE ARG VCS_REF ARG VERSION +ARG TARGETPLATFORM +ARG BUILDPLATFORM +RUN printf "I am running on ${BUILDPLATFORM:-linux/amd64}, building for ${TARGETPLATFORM:-linux/amd64}\n$(uname -a)\n" + LABEL maintainer="CrazyMax" \ org.opencontainers.image.created=$BUILD_DATE \ org.opencontainers.image.url="https://github.com/librenms/docker" \ @@ -82,10 +86,20 @@ RUN apk --update --no-cache add \ mariadb-dev \ musl-dev \ python3-dev \ + && S6_ARCH=$(case ${TARGETPLATFORM:-linux/amd64} in \ + "linux/amd64") echo "amd64" ;; \ + "linux/arm/v6") echo "arm" ;; \ + "linux/arm/v7") echo "armhf" ;; \ + "linux/arm64") echo "aarch64" ;; \ + "linux/386") echo "x86" ;; \ + "linux/ppc64le") echo "ppc64le" ;; \ + *) echo "" ;; esac) \ + && echo "S6_ARCH=$S6_ARCH" \ + && wget -q "https://github.com/just-containers/s6-overlay/releases/latest/download/s6-overlay-${S6_ARCH}.tar.gz" -qO "/tmp/s6-overlay-${S6_ARCH}.tar.gz" \ + && tar xzf /tmp/s6-overlay-${S6_ARCH}.tar.gz -C / \ + && s6-echo "s6-overlay installed" \ && pip3 install --upgrade pip \ && pip3 install python-memcached mysqlclient --upgrade \ - && wget -q "https://github.com/just-containers/s6-overlay/releases/latest/download/s6-overlay-amd64.tar.gz" -qO "/tmp/s6-overlay-amd64.tar.gz" \ - && tar xzf /tmp/s6-overlay-amd64.tar.gz -C / \ && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ && apk del build-dependencies \ && rm -rf /var/cache/apk/* /var/www/* /tmp/* \ diff --git a/README.md b/README.md index dee1dc5..7a1121b 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other ## Features * Run as non-root user +* Multi-platform image * [Dispatcher service](doc/docker/environment-variables.md#dispatcher-service) or legacy [cron](doc/docker/environment-variables.md#cron-legacy) as "sidecar" containers * Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng) * Ability to configure [distributed polling](https://docs.librenms.org/Extensions/Distributed-Poller/) @@ -36,6 +37,23 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * [msmtpd SMTP relay](https://github.com/crazy-max/docker-msmtpd) image to send emails * [MariaDB](https://github.com/docker-library/mariadb) image as database instance +## Multi-platform image + +Following platforms for this image are available: + +``` +$ docker run --rm mplatform/mquery librenms/librenms:latest +Image: librenms/librenms:latest + * Manifest List: Yes + * Supported platforms: + - linux/amd64 + - linux/arm/v6 + - linux/arm/v7 + - linux/arm64 + - linux/386 + - linux/ppc64le +``` + ## Documentation * Docker diff --git a/doc/docker/ports.md b/doc/docker/ports.md index 0e7b9f9..95040bd 100644 --- a/doc/docker/ports.md +++ b/doc/docker/ports.md @@ -1,4 +1,4 @@ -### Ports +## Ports * `8000`: HTTP port * `514 514/udp`: Syslog ports (only used if you enable and run a [sidecar syslog-ng container](../notes/syslog-ng.md)) From 0c5e47110980424be749854e4b93b26718bb2b20 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 1 Jun 2020 10:40:57 +0200 Subject: [PATCH 199/523] Edge on PWD --- examples/pwd/librenms.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index 77232e4..b938002 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -85,7 +85,7 @@ services: restart: always librenms: - image: librenms/librenms:latest + image: librenms/librenms:edge hostname: librenms ports: - "8000:8000" @@ -108,7 +108,7 @@ services: restart: always dispatcher: - image: librenms/librenms:latest + image: librenms/librenms:edge hostname: librenms depends_on: - librenms @@ -132,7 +132,7 @@ services: restart: always syslogng: - image: librenms/librenms:latest + image: librenms/librenms:edge hostname: librenms depends_on: - librenms From fd617cd7a2289a85781f8cccf2fdcfad5f6bd9c6 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 1 Jun 2020 20:18:10 +0200 Subject: [PATCH 200/523] LibreNMS 1.64.1 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4b1912e..a04610f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -107,7 +107,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/sbin/fping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.64" \ + LIBRENMS_VERSION="1.64.1" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ From 6a6252d894db5afcd6743fbe3bc71d372babf9a0 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 1 Jun 2020 20:27:24 +0200 Subject: [PATCH 201/523] Update CHANGELOG --- .github/workflows/build.yml | 7 +------ CHANGELOG.md | 6 +++++- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 216d07e..dc8e64a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,8 +2,6 @@ name: build on: - schedule: - - cron: '0 10 * * *' # everyday at 10am push: branches: master tags: '*' @@ -38,12 +36,9 @@ jobs: TAG=${GITHUB_REF#refs/tags/} VERSION=${TAG%-*} fi - if [ "${{ github.event_name }}" = "schedule" ]; then - VERSION=nightly - fi TAGS="--tag ${DOCKER_IMAGE}:${VERSION}" - if [ "$VERSION" != "edge" ] && [ "$VERSION" != "nightly" ]; then + if [ "$VERSION" != "edge" ]; then TAGS="$TAGS --tag ${DOCKER_IMAGE}:latest" fi diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ef60db..48524ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,15 @@ # Changelog +## 1.64.1-RC1 (2020/06/01) + +* LibreNMS 1.64.1 + ## 1.64-RC1 (2020/06/01) * LibreNMS 1.64 * Python 2 removed (librenms/librenms#11531) * Multi-platform image -* Publish edge and nightly images +* Publish edge image ## 1.63-RC7 (2020/05/28) From 3c3eec732693a53fca828be58256cdfc1c4b5c80 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 16 Jun 2020 02:23:20 +0200 Subject: [PATCH 202/523] Update labels --- .github/labels.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/labels.yml b/.github/labels.yml index 09d7750..12b4078 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -1,4 +1,4 @@ -## https://github.com/crazy-max/ghaction-github-labeler +## more info https://github.com/crazy-max/ghaction-github-labeler - # bot name: ":robot: bot" color: "69cde9" @@ -7,6 +7,10 @@ name: ":bug: bug" color: "b60205" description: "" +- # dependencies + name: ":game_die: dependencies" + color: "0366d6" + description: "" - # documentation name: ":memo: documentation" color: "c5def5" @@ -55,10 +59,18 @@ name: ":thinking: needs more info" color: "795548" description: "" +- # pinned + name: ":pushpin: pinned" + color: "28008e" + description: "" - # question name: ":question: question" color: "3f51b5" description: "" +- # stale + name: ":skull: stale" + color: "237da0" + description: "" - # upstream name: ":eyes: upstream" color: "fbca04" From 06f5b8caa4a52c4e3972227e1155e728eb2491eb Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 16 Jun 2020 02:23:27 +0200 Subject: [PATCH 203/523] Add dependabot --- .github/dependabot.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..556e0c1 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + time: "08:00" + timezone: "Europe/Paris" + labels: + - ":game_die: dependencies" + - ":robot: bot" From ab70d736256e5beb974f287655dca3fb7f4250fe Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 16 Jun 2020 02:23:42 +0200 Subject: [PATCH 204/523] Update workflow --- .github/workflows/build.yml | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index dc8e64a..9880398 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,20 +1,18 @@ name: build - on: push: - branches: master - tags: '*' - paths: - - '.github/workflows/build.yml' - - 'rootfs/**' - - 'Dockerfile' + branches: + - 'master' + tags: + - '*' + paths-ignore: + - '**.md' pull_request: - branches: master - paths: - - '.github/workflows/build.yml' - - 'rootfs/**' - - 'Dockerfile' + branches: + - 'master' + paths-ignore: + - '**.md' jobs: build: @@ -58,23 +56,23 @@ jobs: run: | docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }} - name: Docker Login - if: success() && github.event_name != 'pull_request' + if: success() && github.event_name != 'pull_request' && endsWith(github.ref, github.repository.default_branch) env: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} run: | echo "${DOCKER_PASSWORD}" | docker login --username "${{ steps.prepare.outputs.docker_username }}" --password-stdin - name: Docker Buildx (push) - if: success() && github.event_name != 'pull_request' + if: success() && github.event_name != 'pull_request' && endsWith(github.ref, github.repository.default_branch) run: | docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }} - name: Docker Check Manifest - if: success() && github.event_name != 'pull_request' + if: success() && github.event_name != 'pull_request' && endsWith(github.ref, github.repository.default_branch) run: | docker run --rm mplatform/mquery ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }} - name: Clear - if: always() && github.event_name != 'pull_request' + if: always() && github.event_name != 'pull_request' && endsWith(github.ref, github.repository.default_branch) run: | rm -f ${HOME}/.docker/config.json From 8ce8147f42521de646a87a0b0b6f1fca2193a6ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2020 00:44:58 +0000 Subject: [PATCH 205/523] Bump crazy-max/ghaction-docker-buildx from v2 to v3.1.0 (#85) Bumps [crazy-max/ghaction-docker-buildx](https://github.com/crazy-max/ghaction-docker-buildx) from v2 to v3.1.0. - [Release notes](https://github.com/crazy-max/ghaction-docker-buildx/releases) - [Changelog](https://github.com/crazy-max/ghaction-docker-buildx/blob/master/CHANGELOG.md) - [Commits](https://github.com/crazy-max/ghaction-docker-buildx/compare/v2...373dafb963e27afd52567f12584adb676f5fd647) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9880398..97fd378 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -50,7 +50,7 @@ jobs: ${TAGS} --file Dockerfile . - name: Set up Docker Buildx - uses: crazy-max/ghaction-docker-buildx@v2 + uses: crazy-max/ghaction-docker-buildx@v3.1.0 - name: Docker Buildx (build) run: | From 0b03e2e4176bac8ff74949f4563e0c2228cfc78d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 17 Jun 2020 19:21:02 +0200 Subject: [PATCH 206/523] Fix workflow --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 97fd378..f2c661b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -56,23 +56,23 @@ jobs: run: | docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }} - name: Docker Login - if: success() && github.event_name != 'pull_request' && endsWith(github.ref, github.repository.default_branch) + if: success() && github.event_name != 'pull_request' && endsWith(github.ref, github.event.repository.default_branch) env: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} run: | echo "${DOCKER_PASSWORD}" | docker login --username "${{ steps.prepare.outputs.docker_username }}" --password-stdin - name: Docker Buildx (push) - if: success() && github.event_name != 'pull_request' && endsWith(github.ref, github.repository.default_branch) + if: success() && github.event_name != 'pull_request' && endsWith(github.ref, github.event.repository.default_branch) run: | docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }} - name: Docker Check Manifest - if: success() && github.event_name != 'pull_request' && endsWith(github.ref, github.repository.default_branch) + if: success() && github.event_name != 'pull_request' && endsWith(github.ref, github.event.repository.default_branch) run: | docker run --rm mplatform/mquery ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }} - name: Clear - if: always() && github.event_name != 'pull_request' && endsWith(github.ref, github.repository.default_branch) + if: always() && github.event_name != 'pull_request' && endsWith(github.ref, github.event.repository.default_branch) run: | rm -f ${HOME}/.docker/config.json From e714a7aa1998f8d45da87aea8baa28a8feae4a14 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 19 Jun 2020 18:32:44 +0200 Subject: [PATCH 207/523] Update workflow --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f2c661b..141e3cf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -56,23 +56,23 @@ jobs: run: | docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }} - name: Docker Login - if: success() && github.event_name != 'pull_request' && endsWith(github.ref, github.event.repository.default_branch) + if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) env: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} run: | echo "${DOCKER_PASSWORD}" | docker login --username "${{ steps.prepare.outputs.docker_username }}" --password-stdin - name: Docker Buildx (push) - if: success() && github.event_name != 'pull_request' && endsWith(github.ref, github.event.repository.default_branch) + if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) run: | docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }} - name: Docker Check Manifest - if: success() && github.event_name != 'pull_request' && endsWith(github.ref, github.event.repository.default_branch) + if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) run: | docker run --rm mplatform/mquery ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }} - name: Clear - if: always() && github.event_name != 'pull_request' && endsWith(github.ref, github.event.repository.default_branch) + if: always() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) run: | rm -f ${HOME}/.docker/config.json From 1df9ee0ea9287c477fb2d5afa3b59f26e2e9e7ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 21 Jun 2020 04:46:25 +0000 Subject: [PATCH 208/523] Bump actions/checkout from v2 to v2.3.0 (#86) Bumps [actions/checkout](https://github.com/actions/checkout) from v2 to v2.3.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/master/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...b4483adec309c0d01a5435c5e24eb40de5773ad9) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/labels.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 141e3cf..44a5104 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v2.3.0 - name: Prepare id: prepare diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 294c3b7..bbf152b 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v2.3.0 - name: Run Labeler if: success() From 5275d5b53336e5f03418a648acac777b7a8a1a33 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2020 14:21:05 +0000 Subject: [PATCH 209/523] Bump actions/checkout from v2.3.0 to v2.3.1 (#88) Bumps [actions/checkout](https://github.com/actions/checkout) from v2.3.0 to v2.3.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/master/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.3.0...28c7f3d2b5162b5ddd3dfd9a45aa55eaf396478b) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/labels.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 44a5104..d4bb584 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2.3.0 + uses: actions/checkout@v2.3.1 - name: Prepare id: prepare diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index bbf152b..bdd13f2 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2.3.0 + uses: actions/checkout@v2.3.1 - name: Run Labeler if: success() From 72e5c1f0d2b539eb187e6fd89ac292f19cd1d6b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Jun 2020 17:43:01 +0000 Subject: [PATCH 210/523] Bump crazy-max/ghaction-docker-buildx from v3.1.0 to v3.2.0 (#89) Bumps [crazy-max/ghaction-docker-buildx](https://github.com/crazy-max/ghaction-docker-buildx) from v3.1.0 to v3.2.0. - [Release notes](https://github.com/crazy-max/ghaction-docker-buildx/releases) - [Changelog](https://github.com/crazy-max/ghaction-docker-buildx/blob/master/CHANGELOG.md) - [Commits](https://github.com/crazy-max/ghaction-docker-buildx/compare/v3.1.0...552c9de485482d9bbaa6fa035ee55e518e1e3cb9) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d4bb584..bc2eb51 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -50,7 +50,7 @@ jobs: ${TAGS} --file Dockerfile . - name: Set up Docker Buildx - uses: crazy-max/ghaction-docker-buildx@v3.1.0 + uses: crazy-max/ghaction-docker-buildx@v3.2.0 - name: Docker Buildx (build) run: | From a8eb4b605dde2393ab17c9f3ff994b1c116f536d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 28 Jun 2020 03:23:39 +0200 Subject: [PATCH 211/523] Fix examples (#87) --- examples/compose-legacy/docker-compose.yml | 2 +- examples/traefik/docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/compose-legacy/docker-compose.yml b/examples/compose-legacy/docker-compose.yml index c5c9672..ca43975 100644 --- a/examples/compose-legacy/docker-compose.yml +++ b/examples/compose-legacy/docker-compose.yml @@ -64,7 +64,7 @@ services: - db - memcached - rrdcached - - smtp + - msmtpd volumes: - "./librenms:/data" env_file: diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 1a5f477..8924007 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -98,7 +98,7 @@ services: - db - memcached - rrdcached - - smtp + - msmtpd volumes: - "./librenms:/data" labels: From f3769c4a9cede3227b02644df397862bfb2d7d86 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 2 Jul 2020 17:52:20 +0200 Subject: [PATCH 212/523] Alpine Linux 3.12 --- Dockerfile | 5 +++-- rootfs/etc/syslog-ng/syslog-ng.conf | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index a04610f..83b88cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine:3.11 +FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine:3.12 ARG BUILD_DATE ARG VCS_REF @@ -71,11 +71,12 @@ RUN apk --update --no-cache add \ php7-xml \ php7-zip \ python3 \ + py3-pip \ rrdtool \ runit \ shadow \ su-exec \ - syslog-ng=3.22.1-r2 \ + syslog-ng=3.27.1-r0 \ ttf-dejavu \ tzdata \ util-linux \ diff --git a/rootfs/etc/syslog-ng/syslog-ng.conf b/rootfs/etc/syslog-ng/syslog-ng.conf index d9710b3..1c7c003 100644 --- a/rootfs/etc/syslog-ng/syslog-ng.conf +++ b/rootfs/etc/syslog-ng/syslog-ng.conf @@ -1,4 +1,4 @@ -@version:3.22 +@version:3.27 options { chain_hostnames(off); From 43851cf36395a342fd7dc5aaea08e75f27e13a89 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 2 Jul 2020 17:59:46 +0200 Subject: [PATCH 213/523] Set user group config --- rootfs/etc/cont-init.d/03-config.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index c4b2247..a2efac6 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -126,6 +126,7 @@ EOL cat > ${LIBRENMS_PATH}/config.d/user.php < Date: Fri, 3 Jul 2020 11:31:15 +0200 Subject: [PATCH 214/523] Clear cache and reload config cache --- rootfs/etc/cont-init.d/04-svc-main.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index 7972d14..3c7329a 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -61,6 +61,10 @@ counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_NAME" | wc -l) echo "Updating database schema..." lnms migrate --force --no-ansi --no-interaction +echo "Clear cache" +su-exec librenms:librenms php artisan cache:clear --no-interaction +su-exec librenms:librenms php artisan config:cache --no-interaction + if [ "${counttables}" -eq "0" ]; then echo "Creating admin user..." lnms user:add --password=librenms --email=librenms@librenms.docker --role=admin --no-ansi --no-interaction librenms From 7bce19f26874b1db8fca660430ba317726e876b0 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 3 Jul 2020 16:02:13 +0200 Subject: [PATCH 215/523] Add artisan command --- rootfs/usr/local/bin/artisan | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 rootfs/usr/local/bin/artisan diff --git a/rootfs/usr/local/bin/artisan b/rootfs/usr/local/bin/artisan new file mode 100644 index 0000000..d6b7935 --- /dev/null +++ b/rootfs/usr/local/bin/artisan @@ -0,0 +1,4 @@ +#!/bin/sh + +cd /opt/librenms || exit 1 +su-exec librenms:librenms php artisan "$@" From 96b00b6f9c8809f2307dafe1492d6bee142857c7 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 3 Jul 2020 18:19:46 +0200 Subject: [PATCH 216/523] Handle APP_KEY and NODE_ID (#91 #93) --- doc/docker/environment-variables.md | 1 + examples/compose/docker-compose.yml | 12 ++++----- examples/pwd/librenms.yml | 30 +++++++++++++++++++-- examples/traefik/docker-compose.yml | 10 +++---- rootfs/etc/cont-init.d/02-fix-perms.sh | 1 + rootfs/etc/cont-init.d/03-config.sh | 12 ++++++++- rootfs/etc/cont-init.d/04-svc-main.sh | 4 +-- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 8 ++++++ 8 files changed, 60 insertions(+), 18 deletions(-) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 6906077..8de0c04 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -18,6 +18,7 @@ > :warning: Only used if you enable and run a [sidecar dispatcher container](../notes/dispatcher-service.md) * `SIDECAR_DISPATCHER`: Set to `1` to enable sidecar dispatcher mode for this container (default `0`) +* `LIBRENMS_SERVICE_NODE_ID`: Unique node ID for your dispatcher service * `LIBRENMS_SERVICE_POLLER_WORKERS`: Processes spawned for polling (default `24`) * `LIBRENMS_SERVICE_SERVICES_WORKERS`: Processes spawned for service polling (default `8`) * `LIBRENMS_SERVICE_DISCOVERY_WORKERS`: Processes spawned for discovery (default `16`) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index ced679a..45cb4f7 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -61,7 +61,6 @@ services: librenms: image: librenms/librenms:latest container_name: librenms - domainname: example.com hostname: librenms ports: - target: 8000 @@ -90,8 +89,7 @@ services: dispatcher: image: librenms/librenms:latest container_name: librenms_dispatcher - domainname: example.com - hostname: librenms + hostname: librenms-dispatcher depends_on: - librenms - redis @@ -108,17 +106,17 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "LIBRENMS_SERVICE_NODE_ID=dispatcher1" - "REDIS_HOST=redis" - "REDIS_PORT=6379" - "REDIS_DB=0" - "SIDECAR_DISPATCHER=1" restart: always - syslog-ng: + syslogng: image: librenms/librenms:latest - container_name: librenms_syslog - domainname: example.com - hostname: librenms + container_name: librenms_syslogng + hostname: librenms-syslogng depends_on: - librenms ports: diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index b938002..5dd15d4 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -109,7 +109,7 @@ services: dispatcher: image: librenms/librenms:edge - hostname: librenms + hostname: librenms-dispatcher-1234 depends_on: - librenms - redis @@ -125,6 +125,32 @@ services: DB_USER: *MYSQL_USER DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" + LIBRENMS_SERVICE_NODE_ID: "dispatcher1234" + REDIS_HOST: "redis" + REDIS_PORT: "6379" + REDIS_DB: "0" + SIDECAR_DISPATCHER: "1" + restart: always + + dispatcher2: + image: librenms/librenms:edge + hostname: librenms-dispatcher-5678 + depends_on: + - librenms + - redis + volumes: + - "librenms:/data" + environment: + <<: *envlibrenms + TZ: *TZ + PUID: *PUID + PGID: *PGID + DB_HOST: "db" + DB_NAME: *MYSQL_DATABASE + DB_USER: *MYSQL_USER + DB_PASSWORD: *MYSQL_PASSWORD + DB_TIMEOUT: "60" + LIBRENMS_SERVICE_NODE_ID: "dispatcher5678" REDIS_HOST: "redis" REDIS_PORT: "6379" REDIS_DB: "0" @@ -133,7 +159,7 @@ services: syslogng: image: librenms/librenms:edge - hostname: librenms + hostname: librenms-syslogng depends_on: - librenms volumes: diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 8924007..df5c073 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -92,7 +92,6 @@ services: librenms: image: librenms/librenms:latest container_name: librenms - domainname: example.com hostname: librenms depends_on: - db @@ -122,8 +121,7 @@ services: dispatcher: image: librenms/librenms:latest container_name: librenms_dispatcher - domainname: example.com - hostname: librenms + hostname: librenms-dispatcher depends_on: - librenms - redis @@ -140,17 +138,17 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "LIBRENMS_SERVICE_NODE_ID=dispatcher1" - "REDIS_HOST=redis" - "REDIS_PORT=6379" - "REDIS_DB=0" - "SIDECAR_DISPATCHER=1" restart: always - syslog-ng: + syslogng: image: librenms/librenms:latest container_name: librenms_syslog - domainname: example.com - hostname: librenms + hostname: librenms-syslogng depends_on: - librenms ports: diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index f1eefda..e0b290b 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -7,6 +7,7 @@ mkdir -p /data \ chown librenms. \ /data \ "${LIBRENMS_PATH}" \ + "${LIBRENMS_PATH}/.env" \ "${LIBRENMS_PATH}/html/plugins/Weathermap/output" chown -R librenms. \ /home/librenms \ diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index a2efac6..a9f4d8c 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -188,12 +188,22 @@ if [ ! -z "${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST}" -a ! -z "${RRDCACHED_H EOL fi - # Fix perms +# Fix perms echo "Fixing perms..." chown librenms. /data/config /data/monitoring-plugins /data/rrd /data/weathermap chown -R librenms. /data/logs ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage chmod ug+rw /data/logs /data/rrd ${LIBRENMS_PATH}/bootstrap/cache ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/storage/framework/* +# Handle .env +if [ ! -f "/data/.env" ]; then + artisan key:generate --no-interaction --force + sed -i "s|^NODE_ID=.*|NODE_ID=$(php -r "echo uniqid();")|g" "${LIBRENMS_PATH}/.env" + artisan optimize + cp -f "${LIBRENMS_PATH}/.env" /data/.env +fi +cp -f /data/.env "${LIBRENMS_PATH}/.env" +chown librenms. /data/.env "${LIBRENMS_PATH}/.env" + # Check additional Monitoring plugins echo "Checking additional Monitoring plugins..." mon_plugins=$(ls -l /data/monitoring-plugins | egrep '^-' | awk '{print $9}') diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index 3c7329a..fe332cb 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -62,8 +62,8 @@ echo "Updating database schema..." lnms migrate --force --no-ansi --no-interaction echo "Clear cache" -su-exec librenms:librenms php artisan cache:clear --no-interaction -su-exec librenms:librenms php artisan config:cache --no-interaction +artisan cache:clear --no-interaction +artisan config:cache --no-interaction if [ "${counttables}" -eq "0" ]; then echo "Creating admin user..." diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index 320efb6..08f3421 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -29,6 +29,7 @@ DB_USERNAME=${DB_USERNAME:-librenms} DB_TIMEOUT=${DB_TIMEOUT:-60} SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} +#LIBRENMS_SERVICE_NODE_ID=${LIBRENMS_SERVICE_NODE_ID:-dispatcher1} LIBRENMS_SERVICE_POLLER_WORKERS=${LIBRENMS_SERVICE_POLLER_WORKERS:-24} LIBRENMS_SERVICE_SERVICES_WORKERS=${LIBRENMS_SERVICE_SERVICES_WORKERS:-8} @@ -81,6 +82,13 @@ while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do done echo "Database ready!" +# Node ID +if [ -n "$LIBRENMS_SERVICE_NODE_ID" ]; then + echo "NODE_ID: $LIBRENMS_SERVICE_NODE_ID" + sed -i "s|^NODE_ID=.*|NODE_ID=$LIBRENMS_SERVICE_NODE_ID|g" "${LIBRENMS_PATH}/.env" + artisan optimize +fi + # Configuration cat > ${LIBRENMS_PATH}/config.d/dispatcher.php < Date: Fri, 3 Jul 2020 18:24:48 +0200 Subject: [PATCH 217/523] Remove deprecated sidecar cron container --- README.md | 3 +- doc/docker/environment-variables.md | 19 --- doc/notes/cron.md | 16 --- doc/notes/dispatcher-service.md | 2 - examples/compose-legacy/.env | 7 - examples/compose-legacy/docker-compose.yml | 134 ------------------ examples/compose-legacy/librenms.env | 29 ---- examples/compose-legacy/msmtpd.env | 10 -- rootfs/etc/cont-init.d/04-svc-main.sh | 3 +- rootfs/etc/cont-init.d/06-svc-cron.sh | 116 --------------- ...{07-svc-syslogng.sh => 06-svc-syslogng.sh} | 0 ...svc-weathermap.sh => 07-svc-weathermap.sh} | 3 +- 12 files changed, 3 insertions(+), 339 deletions(-) delete mode 100644 doc/notes/cron.md delete mode 100644 examples/compose-legacy/.env delete mode 100644 examples/compose-legacy/docker-compose.yml delete mode 100644 examples/compose-legacy/librenms.env delete mode 100644 examples/compose-legacy/msmtpd.env delete mode 100644 rootfs/etc/cont-init.d/06-svc-cron.sh rename rootfs/etc/cont-init.d/{07-svc-syslogng.sh => 06-svc-syslogng.sh} (100%) rename rootfs/etc/cont-init.d/{08-svc-weathermap.sh => 07-svc-weathermap.sh} (84%) diff --git a/README.md b/README.md index 7a1121b..2597bc7 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * Run as non-root user * Multi-platform image -* [Dispatcher service](doc/docker/environment-variables.md#dispatcher-service) or legacy [cron](doc/docker/environment-variables.md#cron-legacy) as "sidecar" containers +* [Dispatcher service](doc/docker/environment-variables.md#dispatcher-service) as "sidecar" container * Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng) * Ability to configure [distributed polling](https://docs.librenms.org/Extensions/Distributed-Poller/) * Built-in LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) @@ -66,7 +66,6 @@ Image: librenms/librenms:latest * [LNMS command](doc/notes/lnms-command.md) * [Validate](doc/notes/validate.md) * [Dispatcher service](doc/notes/dispatcher-service.md) - * [Cron (legacy)](doc/notes/cron.md) * [Syslog-ng](doc/notes/syslog-ng.md) * [Additional Monitoring plugins (Nagios)](doc/notes/additional-monitoring-plugins.md) * [Upgrade](doc/upgrade.md) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 8de0c04..018141f 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -37,25 +37,6 @@ * `REDIS_PASSWORD`: Redis password * `REDIS_DB`: Redis database (default `0`) -### Cron (legacy) - -> :warning: Only used if you enable and run a [sidecar cron container](../notes/cron.md) - -* `SIDECAR_CRON`: Set to `1` to enable sidecar cron mode for this container (default `0`) -* `LIBRENMS_CRON_DISCOVERY_ENABLE`: Enable LibreNMS discovery for this container cronjobs (default `true`) -* `LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS`: Spawn multiple discovery.php processes in parallel (default `1`) -* `LIBRENMS_CRON_DAILY_ENABLE`: Enable LibreNMS daily script for this container cronjobs (default `true`) -* `LIBRENMS_CRON_ALERTS_ENABLE`: Enable LibreNMS alerts generation for this container cronjobs (default `true`) -* `LIBRENMS_CRON_BILLING_ENABLE`: Enable LibreNMS billing polling for this container cronjobs (default `true`) -* `LIBRENMS_CRON_BILLING_CALCULATE_ENABLE`: Enable LibreNMS billing for this container cronjobs (default `true`) -* `LIBRENMS_CRON_CHECK_SERVICES_ENABLE`: Enable LibreNMS service checks for this container cronjobs (default `true`) -* `LIBRENMS_CRON_POLLER_ENABLE`: Enable LibreNMS polling for this container cronjobs (default `true`) -* `LIBRENMS_CRON_SNMPSCAN_ENABLE`: Enable LibreNMS SNMP network scanning for this container cronjobs (default `false`) -* `LIBRENMS_CRON_SNMPSCAN_INTERVAL`: SNMP network scanning cron interval (daily, in "Minute Hour", default `5 0`) -* `LIBRENMS_CRON_SNMPSCAN_NETS`: Networks to scan for SNMP network scanning, in CIDR notation. Multiple networks can be specified separated by a comma. If this is not set the default is to scan networks defined in `$config['nets']` -* `LIBRENMS_CRON_SNMPSCAN_THREADS`: SNMP network scanning threads to use (default `32`) -* `LIBRENMS_CRON_SNMPSCAN_LOGFILE`: SNMP network scanning cron log file (default `/dev/null`) - ### Distributed Poller * `LIBRENMS_POLLER_THREADS`: Threads that `poller-wrapper.py` runs (default `16`) diff --git a/doc/notes/cron.md b/doc/notes/cron.md deleted file mode 100644 index ab40d91..0000000 --- a/doc/notes/cron.md +++ /dev/null @@ -1,16 +0,0 @@ -## Cron (legacy) - -If you want to enable the old crons, you have to run a "sidecar" container (see cron service in [docker-compose.yml](../../examples/compose-legacy/docker-compose.yml) example) or run a simple container like this : - -```bash -docker run -d --name librenms_cron \ - --env-file $(pwd)/librenms.env \ - -e SIDECAR_CRON=1 \ - -v librenms:/data \ - librenms/librenms:latest -``` - -> `-v librenms:/data`
-> :warning: `librenms` must be a valid volume already attached to a LibreNMS container - -> :no_entry: Can't be used with [sidecar dispatcher container](dispatcher-service.md). diff --git a/doc/notes/dispatcher-service.md b/doc/notes/dispatcher-service.md index d34c4cb..c833a74 100644 --- a/doc/notes/dispatcher-service.md +++ b/doc/notes/dispatcher-service.md @@ -12,5 +12,3 @@ docker run -d --name librenms_dispatcher \ > `-v librenms:/data`
> :warning: `librenms` must be a valid volume already attached to a LibreNMS container - -> :no_entry: Can't be used with [sidecar cron container](cron.md). diff --git a/examples/compose-legacy/.env b/examples/compose-legacy/.env deleted file mode 100644 index d6c0aed..0000000 --- a/examples/compose-legacy/.env +++ /dev/null @@ -1,7 +0,0 @@ -TZ=Europe/Paris -PUID=1000 -PGID=1000 - -MYSQL_DATABASE=librenms -MYSQL_USER=librenms -MYSQL_PASSWORD=asupersecretpassword diff --git a/examples/compose-legacy/docker-compose.yml b/examples/compose-legacy/docker-compose.yml deleted file mode 100644 index ca43975..0000000 --- a/examples/compose-legacy/docker-compose.yml +++ /dev/null @@ -1,134 +0,0 @@ -version: "3.5" - -services: - db: - image: mariadb:10.4 - container_name: librenms_db - command: - - "mysqld" - - "--innodb-file-per-table=1" - - "--lower-case-table-names=0" - - "--character-set-server=utf8" - - "--collation-server=utf8_unicode_ci" - volumes: - - "./db:/var/lib/mysql" - environment: - - "TZ=${TZ}" - - "MYSQL_ALLOW_EMPTY_PASSWORD=yes" - - "MYSQL_DATABASE=${MYSQL_DATABASE}" - - "MYSQL_USER=${MYSQL_USER}" - - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" - restart: always - - memcached: - image: memcached:alpine - container_name: librenms_memcached - environment: - - "TZ=${TZ}" - restart: always - - rrdcached: - image: crazymax/rrdcached - container_name: librenms_rrdcached - volumes: - - "./librenms/rrd:/data/db" - - "./rrd-journal:/data/journal" - environment: - - "TZ=${TZ}" - - "PUID=${PUID}" - - "PGID=${PGID}" - - "LOG_LEVEL=LOG_INFO" - - "WRITE_TIMEOUT=1800" - - "WRITE_JITTER=1800" - - "WRITE_THREADS=4" - - "FLUSH_DEAD_DATA_INTERVAL=3600" - restart: always - - msmtpd: - image: crazymax/msmtpd:latest - container_name: librenms_msmtpd - env_file: - - "./msmtpd.env" - restart: always - - librenms: - image: librenms/librenms:latest - container_name: librenms - domainname: example.com - hostname: librenms - ports: - - target: 8000 - published: 8000 - protocol: tcp - depends_on: - - db - - memcached - - rrdcached - - msmtpd - volumes: - - "./librenms:/data" - env_file: - - "./librenms.env" - environment: - - "TZ=${TZ}" - - "PUID=${PUID}" - - "PGID=${PGID}" - - "DB_HOST=db" - - "DB_NAME=${MYSQL_DATABASE}" - - "DB_USER=${MYSQL_USER}" - - "DB_PASSWORD=${MYSQL_PASSWORD}" - - "DB_TIMEOUT=60" - restart: always - - cron: - image: librenms/librenms:latest - container_name: librenms_cron - domainname: example.com - hostname: librenms - depends_on: - - librenms - volumes: - - "./librenms:/data" - env_file: - - "./librenms.env" - environment: - - "TZ=${TZ}" - - "PUID=${PUID}" - - "PGID=${PGID}" - - "DB_HOST=db" - - "DB_NAME=${MYSQL_DATABASE}" - - "DB_USER=${MYSQL_USER}" - - "DB_PASSWORD=${MYSQL_PASSWORD}" - - "DB_TIMEOUT=60" - - "SIDECAR_CRON=1" - restart: always - - syslog-ng: - image: librenms/librenms:latest - container_name: librenms_syslog - domainname: example.com - hostname: librenms - depends_on: - - librenms - ports: - - target: 514 - published: 514 - protocol: tcp - - target: 514 - published: 514 - protocol: udp - volumes: - - "./librenms:/data" - env_file: - - "./librenms.env" - environment: - - "TZ=${TZ}" - - "PUID=${PUID}" - - "PGID=${PGID}" - - "DB_HOST=db" - - "DB_NAME=${MYSQL_DATABASE}" - - "DB_USER=${MYSQL_USER}" - - "DB_PASSWORD=${MYSQL_PASSWORD}" - - "DB_TIMEOUT=60" - - "SIDECAR_SYSLOGNG=1" - restart: always diff --git a/examples/compose-legacy/librenms.env b/examples/compose-legacy/librenms.env deleted file mode 100644 index e9b8a8d..0000000 --- a/examples/compose-legacy/librenms.env +++ /dev/null @@ -1,29 +0,0 @@ -MEMORY_LIMIT=256M -UPLOAD_MAX_SIZE=16M -OPCACHE_MEM_SIZE=128 -REAL_IP_FROM=0.0.0.0/32 -REAL_IP_HEADER=X-Forwarded-For -LOG_IP_VAR=remote_addr - -LIBRENMS_POLLER_THREADS=16 -LIBRENMS_POLLER_INTERVAL=5 - -LIBRENMS_CRON_DISCOVERY_ENABLE=true -LIBRENMS_CRON_DAILY_ENABLE=true -LIBRENMS_CRON_ALERTS_ENABLE=true -LIBRENMS_CRON_BILLING_ENABLE=true -LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=true -LIBRENMS_CRON_CHECK_SERVICES_ENABLE=true -LIBRENMS_CRON_POLLER_ENABLE=true -LIBRENMS_CRON_SNMPSCAN_ENABLE=true -LIBRENMS_CRON_SNMPSCAN_NETS=192.168.0.0/24,192.168.1.0/24 -LIBRENMS_CRON_SNMPSCAN_LOGFILE=/data/logs/snmp-scan.log - -LIBRENMS_SNMP_COMMUNITY=librenmsdocker -MEMCACHED_HOST=memcached -MEMCACHED_PORT=11211 -RRDCACHED_HOST=rrdcached -RRDCACHED_PORT=42217 - -LIBRENMS_WEATHERMAP=false -LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/examples/compose-legacy/msmtpd.env b/examples/compose-legacy/msmtpd.env deleted file mode 100644 index 170bec9..0000000 --- a/examples/compose-legacy/msmtpd.env +++ /dev/null @@ -1,10 +0,0 @@ -# https://github.com/crazy-max/docker-msmtpd -SMTP_HOST=smtp.gmail.com -SMTP_PORT=587 -SMTP_TLS=on -SMTP_STARTTLS=on -SMTP_TLS_CHECKCERT=on -SMTP_AUTH=on -SMTP_USER=foo -SMTP_PASSWORD=bar -SMTP_FROM=foo@gmail.com diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index fe332cb..a1861b2 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -28,11 +28,10 @@ DB_NAME=${DB_NAME:-librenms} DB_USER=${DB_USER:-librenms} DB_TIMEOUT=${DB_TIMEOUT:-60} -SIDECAR_CRON=${SIDECAR_CRON:-0} SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} -if [ "$SIDECAR_CRON" = "1" ] || [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ]; then +if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ]; then exit 0 fi diff --git a/rootfs/etc/cont-init.d/06-svc-cron.sh b/rootfs/etc/cont-init.d/06-svc-cron.sh deleted file mode 100644 index 2a95e1d..0000000 --- a/rootfs/etc/cont-init.d/06-svc-cron.sh +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/with-contenv sh - -CRONTAB_PATH="/var/spool/cron/crontabs" -SIDECAR_CRON=${SIDECAR_CRON:-0} - -LIBRENMS_POLLER_THREADS=${LIBRENMS_POLLER_THREADS:-16} -LIBRENMS_POLLER_INTERVAL=${LIBRENMS_POLLER_INTERVAL:-5} - -LIBRENMS_CRON_DISCOVERY_ENABLE=${LIBRENMS_CRON_DISCOVERY_ENABLE:-true} -LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS=${LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS:-1} -LIBRENMS_CRON_DAILY_ENABLE=${LIBRENMS_CRON_DAILY_ENABLE:-true} -LIBRENMS_CRON_ALERTS_ENABLE=${LIBRENMS_CRON_ALERTS_ENABLE:-true} -LIBRENMS_CRON_BILLING_ENABLE=${LIBRENMS_CRON_BILLING_ENABLE:-true} -LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=${LIBRENMS_CRON_BILLING_CALCULATE_ENABLE:-true} -LIBRENMS_CRON_CHECK_SERVICES_ENABLE=${LIBRENMS_CRON_CHECK_SERVICES_ENABLE:-true} -LIBRENMS_CRON_POLLER_ENABLE=${LIBRENMS_CRON_POLLER_ENABLE:-true} -LIBRENMS_CRON_SNMPSCAN_ENABLE=${LIBRENMS_CRON_SNMPSCAN_ENABLE:-false} -LIBRENMS_CRON_SNMPSCAN_INTERVAL=${LIBRENMS_CRON_SNMPSCAN_INTERVAL:-"5 0"} -LIBRENMS_CRON_SNMPSCAN_NETS=${LIBRENMS_CRON_SNMPSCAN_NETS:-""} -LIBRENMS_CRON_SNMPSCAN_NETS=${LIBRENMS_CRON_SNMPSCAN_NETS:+",$LIBRENMS_CRON_SNMPSCAN_NETS"} -LIBRENMS_CRON_SNMPSCAN_NETS=${LIBRENMS_CRON_SNMPSCAN_NETS//,/ -r } -LIBRENMS_CRON_SNMPSCAN_THREADS=${LIBRENMS_CRON_SNMPSCAN_THREADS:-32} -LIBRENMS_CRON_SNMPSCAN_LOGFILE=${LIBRENMS_CRON_SNMPSCAN_LOGFILE:-/dev/null} - -# Continue only if sidecar cron container -if [ "$SIDECAR_CRON" != "1" ]; then - exit 0 -fi - -echo ">>> WARNING: Sidecar cron container is deprecated and will be removed soon." -echo ">>> Please switch to the dispatcher service." -echo ">>> https://github.com/librenms/docker/blob/master/doc/notes/dispatcher-service.md" - -rm -rf ${CRONTAB_PATH} -mkdir -m 0644 -p ${CRONTAB_PATH} -touch ${CRONTAB_PATH}/librenms - -# Add crontab -cat "${LIBRENMS_PATH}/librenms.nonroot.cron" > ${CRONTAB_PATH}/librenms -sed -i -e "s/ librenms //" ${CRONTAB_PATH}/librenms - -if [ "$LIBRENMS_CRON_DISCOVERY_ENABLE" != "true" ]; then - echo "Disable discovery cron" - sed -i "/discovery-wrapper.py/d" ${CRONTAB_PATH}/librenms - sed -i "/discovery.php/d" ${CRONTAB_PATH}/librenms -else - echo "Enable discovery cron" - sed -i -e "s/discovery-wrapper.py 1/discovery-wrapper.py ${LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS}/" ${CRONTAB_PATH}/librenms -fi - -if [ "$LIBRENMS_CRON_DAILY_ENABLE" != "true" ]; then - echo "Disable daily script cron" - sed -i "/daily.sh/d" ${CRONTAB_PATH}/librenms -else - echo "Enable daily script cron" -fi - -if [ "$LIBRENMS_CRON_ALERTS_ENABLE" != "true" ]; then - echo "Disable alerts generation cron" - sed -i "/alerts.php/d" ${CRONTAB_PATH}/librenms -else - echo "Enable alerts generation cron" -fi - -if [ "$LIBRENMS_CRON_BILLING_ENABLE" != "true" ]; then - echo "Disable billing polling cron" - sed -i "/poll-billing.php/d" ${CRONTAB_PATH}/librenms -else - echo "Enable billing polling cron" -fi - -if [ "$LIBRENMS_CRON_BILLING_CALCULATE_ENABLE" != "true" ]; then - echo "Disable billing cron" - sed -i "/billing-calculate.php/d" ${CRONTAB_PATH}/librenms -else - echo "Enable billing cron" -fi - -if [ "$LIBRENMS_CRON_CHECK_SERVICES_ENABLE" != "true" ]; then - echo "Disable service checks cron" - sed -i "/check-services.php/d" ${CRONTAB_PATH}/librenms -else - echo "Enable service checks cron" -fi - -sed -i "/poller-wrapper.py/d" ${CRONTAB_PATH}/librenms -if [ "$LIBRENMS_CRON_POLLER_ENABLE" = "true" ]; then - echo "Enable polling cron" - cat >> ${CRONTAB_PATH}/librenms <> ${CRONTAB_PATH}/librenms <> ${LIBRENMS_CRON_SNMPSCAN_LOGFILE} 2>&1 -EOL -else - echo "Disable snmp-scan cron" -fi - -# Fix perms -echo "Fixing crontabs permissions..." -chmod -R 0644 ${CRONTAB_PATH} - -# Create service -mkdir -p /etc/services.d/cron -cat > /etc/services.d/cron/run < Date: Fri, 3 Jul 2020 18:27:27 +0200 Subject: [PATCH 218/523] Update doc --- doc/notes/dispatcher-service.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/notes/dispatcher-service.md b/doc/notes/dispatcher-service.md index c833a74..4b23423 100644 --- a/doc/notes/dispatcher-service.md +++ b/doc/notes/dispatcher-service.md @@ -5,6 +5,7 @@ If you want to enable the new [Dispatcher service](https://docs.librenms.org/Ext ```bash docker run -d --name librenms_dispatcher \ --env-file $(pwd)/librenms.env \ + -e LIBRENMS_SERVICE_NODE_ID=dispatcher1 \ -e SIDECAR_DISPATCHER=1 \ -v librenms:/data \ librenms/librenms:latest From c018f6a967ba31ea8efdbeebf40dbf0a725d2d92 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 3 Jul 2020 18:49:15 +0200 Subject: [PATCH 219/523] Check APP_KEY generation --- rootfs/etc/cont-init.d/03-config.sh | 10 ---------- rootfs/etc/cont-init.d/04-svc-main.sh | 10 ++++++++++ rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 6 ++++++ 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index a9f4d8c..0b58d43 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -194,16 +194,6 @@ chown librenms. /data/config /data/monitoring-plugins /data/rrd /data/weathermap chown -R librenms. /data/logs ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage chmod ug+rw /data/logs /data/rrd ${LIBRENMS_PATH}/bootstrap/cache ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/storage/framework/* -# Handle .env -if [ ! -f "/data/.env" ]; then - artisan key:generate --no-interaction --force - sed -i "s|^NODE_ID=.*|NODE_ID=$(php -r "echo uniqid();")|g" "${LIBRENMS_PATH}/.env" - artisan optimize - cp -f "${LIBRENMS_PATH}/.env" /data/.env -fi -cp -f /data/.env "${LIBRENMS_PATH}/.env" -chown librenms. /data/.env "${LIBRENMS_PATH}/.env" - # Check additional Monitoring plugins echo "Checking additional Monitoring plugins..." mon_plugins=$(ls -l /data/monitoring-plugins | egrep '^-' | awk '{print $9}') diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index a1861b2..93fee3a 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -35,6 +35,16 @@ if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ]; then exit 0 fi +# Handle .env +if [ ! -f "/data/.env" ]; then + artisan key:generate --no-interaction --force + sed -i "s|^NODE_ID=.*|NODE_ID=$(php -r "echo uniqid();")|g" "${LIBRENMS_PATH}/.env" + artisan optimize + cp -f "${LIBRENMS_PATH}/.env" /data/.env +fi +cp -f /data/.env "${LIBRENMS_PATH}/.env" +chown librenms. /data/.env "${LIBRENMS_PATH}/.env" + file_env 'DB_PASSWORD' if [ -z "$DB_PASSWORD" ]; then >&2 echo "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined" diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index 08f3421..364c339 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -83,6 +83,12 @@ done echo "Database ready!" # Node ID +if [ ! -f "/data/.env" ]; then + >&2 echo "ERROR: /data/.env file does not exist. Please run the main container first" + exit 1 +fi +cp -f /data/.env "${LIBRENMS_PATH}/.env" +chown librenms. "${LIBRENMS_PATH}/.env" if [ -n "$LIBRENMS_SERVICE_NODE_ID" ]; then echo "NODE_ID: $LIBRENMS_SERVICE_NODE_ID" sed -i "s|^NODE_ID=.*|NODE_ID=$LIBRENMS_SERVICE_NODE_ID|g" "${LIBRENMS_PATH}/.env" From 9cab07ce75efe0916ab17626026393f7b51aa58e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 3 Jul 2020 19:36:10 +0200 Subject: [PATCH 220/523] LibreNMS 1.65 --- Dockerfile | 2 +- rootfs/etc/cont-init.d/03-config.sh | 33 ++++++++++----------- rootfs/etc/cont-init.d/04-svc-main.sh | 11 +++---- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 4 +-- 4 files changed, 24 insertions(+), 26 deletions(-) diff --git a/Dockerfile b/Dockerfile index 83b88cb..428dbdd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -108,7 +108,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/sbin/fping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.64.1" \ + LIBRENMS_VERSION="1.65" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 0b58d43..41f5a3b 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -94,16 +94,7 @@ rm -f ${LIBRENMS_PATH}/config.d/* echo "Setting LibreNMS configuration..." -# Config : Directories - cat > ${LIBRENMS_PATH}/config.d/directories.php <&2 echo "ERROR: DB_HOST must be defined" exit 1 @@ -113,15 +104,23 @@ if [ -z "$DB_PASSWORD" ]; then >&2 echo "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined" exit 1 fi -cat > ${LIBRENMS_PATH}/config.d/database.php < ${LIBRENMS_PATH}/.env < ${LIBRENMS_PATH}/config.d/directories.php < ${LIBRENMS_PATH}/config.d/user.php < "/data/.env" <> "${LIBRENMS_PATH}/.env" chown librenms. /data/.env "${LIBRENMS_PATH}/.env" file_env 'DB_PASSWORD' diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index 364c339..cf750a0 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -87,12 +87,10 @@ if [ ! -f "/data/.env" ]; then >&2 echo "ERROR: /data/.env file does not exist. Please run the main container first" exit 1 fi -cp -f /data/.env "${LIBRENMS_PATH}/.env" -chown librenms. "${LIBRENMS_PATH}/.env" +cat "/data/.env" >> "${LIBRENMS_PATH}/.env" if [ -n "$LIBRENMS_SERVICE_NODE_ID" ]; then echo "NODE_ID: $LIBRENMS_SERVICE_NODE_ID" sed -i "s|^NODE_ID=.*|NODE_ID=$LIBRENMS_SERVICE_NODE_ID|g" "${LIBRENMS_PATH}/.env" - artisan optimize fi # Configuration From 9b875b5c42a09644e7108c2f6098890082e4c51f Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 3 Jul 2020 19:45:06 +0200 Subject: [PATCH 221/523] Handle Redis for dispatcher through .env --- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index cf750a0..e739f9b 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -47,7 +47,7 @@ LIBRENMS_SERVICE_UPDATE_FREQUENCY=${LIBRENMS_SERVICE_UPDATE_FREQUENCY:-86400} LIBRENMS_SERVICE_PING_ENABLED=${LIBRENMS_SERVICE_PING_ENABLED:-false} LIBRENMS_SERVICE_WATCHDOG_ENABLED=${LIBRENMS_SERVICE_WATCHDOG_ENABLED:-false} -REDIS_HOST=${REDIS_HOST:-localhost} +#REDIS_HOST=${REDIS_HOST:-localhost} REDIS_PORT=${REDIS_PORT:-6379} file_env 'REDIS_PASSWORD' REDIS_DB=${REDIS_DB:-0} @@ -93,6 +93,19 @@ if [ -n "$LIBRENMS_SERVICE_NODE_ID" ]; then sed -i "s|^NODE_ID=.*|NODE_ID=$LIBRENMS_SERVICE_NODE_ID|g" "${LIBRENMS_PATH}/.env" fi +# Redis +if [ -z "$REDIS_HOST" ]; then + >&2 echo "ERROR: REDIS_HOST must be defined" + exit 1 +fi +echo "Setting Redis" +cat >> ${LIBRENMS_PATH}/.env < ${LIBRENMS_PATH}/config.d/dispatcher.php < Date: Fri, 3 Jul 2020 20:04:52 +0200 Subject: [PATCH 222/523] Remove LIBRENMS_SERVICE_* env vars (now handle through WebUI) Check poller_cluster table exists before running dispatcher --- doc/docker/environment-variables.md | 17 +------ doc/notes/dispatcher-service.md | 2 +- examples/compose/docker-compose.yml | 2 +- examples/compose/librenms.env | 16 ------- examples/pwd/librenms.yml | 17 +------ examples/traefik/docker-compose.yml | 2 +- examples/traefik/librenms.env | 16 ------- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 52 +++++---------------- 8 files changed, 19 insertions(+), 105 deletions(-) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 018141f..230f468 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -18,21 +18,8 @@ > :warning: Only used if you enable and run a [sidecar dispatcher container](../notes/dispatcher-service.md) * `SIDECAR_DISPATCHER`: Set to `1` to enable sidecar dispatcher mode for this container (default `0`) -* `LIBRENMS_SERVICE_NODE_ID`: Unique node ID for your dispatcher service -* `LIBRENMS_SERVICE_POLLER_WORKERS`: Processes spawned for polling (default `24`) -* `LIBRENMS_SERVICE_SERVICES_WORKERS`: Processes spawned for service polling (default `8`) -* `LIBRENMS_SERVICE_DISCOVERY_WORKERS`: Processes spawned for discovery (default `16`) -* `LIBRENMS_SERVICE_POLLER_FREQUENCY`: Seconds between polling attempts (default `300`) -* `LIBRENMS_SERVICE_SERVICES_FREQUENCY`: Seconds between service polling attempts (default `300`) -* `LIBRENMS_SERVICE_DISCOVERY_FREQUENCY`: Seconds between polling attempts (default `21600`) -* `LIBRENMS_SERVICE_BILLING_FREQUENCY`: Seconds between polling attempts (default `300`) -* `LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY`: Billing interval (default `60`) -* `LIBRENMS_SERVICE_POLLER_DOWN_RETRY`: Seconds between failed polling attempts (default `60`) -* `LIBRENMS_SERVICE_LOGLEVEL`: Must be one of 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL' (default `INFO`) -* `LIBRENMS_SERVICE_UPDATE_FREQUENCY`: Seconds between LibreNMS update checks (default `86400`) -* `LIBRENMS_SERVICE_PING_ENABLED`: Enable fast ping scheduler (default `false`) -* `LIBRENMS_SERVICE_WATCHDOG_ENABLED`: Enable watchdog scheduler (default `false`) -* `REDIS_HOST`: Redis host for poller synchronization (default `localhost`) +* `DISPATCHER_NODE_ID`: Unique node ID for your dispatcher service +* `REDIS_HOST`: Redis host for poller synchronization * `REDIS_PORT`: Redis port (default `6379`) * `REDIS_PASSWORD`: Redis password * `REDIS_DB`: Redis database (default `0`) diff --git a/doc/notes/dispatcher-service.md b/doc/notes/dispatcher-service.md index 4b23423..1151319 100644 --- a/doc/notes/dispatcher-service.md +++ b/doc/notes/dispatcher-service.md @@ -5,8 +5,8 @@ If you want to enable the new [Dispatcher service](https://docs.librenms.org/Ext ```bash docker run -d --name librenms_dispatcher \ --env-file $(pwd)/librenms.env \ - -e LIBRENMS_SERVICE_NODE_ID=dispatcher1 \ -e SIDECAR_DISPATCHER=1 \ + -e DISPATCHER_NODE_ID=dispatcher1 \ -v librenms:/data \ librenms/librenms:latest ``` diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 45cb4f7..9018466 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -106,7 +106,7 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "LIBRENMS_SERVICE_NODE_ID=dispatcher1" + - "DISPATCHER_NODE_ID=dispatcher1" - "REDIS_HOST=redis" - "REDIS_PORT=6379" - "REDIS_DB=0" diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index 6fae16c..8454af4 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -11,21 +11,5 @@ MEMCACHED_PORT=11211 RRDCACHED_HOST=rrdcached RRDCACHED_PORT=42217 -LIBRENMS_SERVICE_POLLER_WORKERS=24 -LIBRENMS_SERVICE_SERVICES_WORKERS=8 -LIBRENMS_SERVICE_DISCOVERY_WORKERS=16 - -LIBRENMS_SERVICE_POLLER_FREQUENCY=300 -LIBRENMS_SERVICE_SERVICES_FREQUENCY=300 -LIBRENMS_SERVICE_DISCOVERY_FREQUENCY=21600 -LIBRENMS_SERVICE_BILLING_FREQUENCY=300 -LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY=60 -LIBRENMS_SERVICE_POLLER_DOWN_RETRY=60 -LIBRENMS_SERVICE_LOGLEVEL=INFO -LIBRENMS_SERVICE_UPDATE_FREQUENCY=86400 - -LIBRENMS_SERVICE_PING_ENABLED=false -LIBRENMS_SERVICE_WATCHDOG_ENABLED=false - LIBRENMS_WEATHERMAP=false LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index 5dd15d4..99b6a7e 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -20,19 +20,6 @@ x-envlibrenms: &envlibrenms MEMCACHED_PORT: "11211" RRDCACHED_HOST: "rrdcached" RRDCACHED_PORT: "42217" - LIBRENMS_SERVICE_POLLER_WORKERS: "24" - LIBRENMS_SERVICE_SERVICES_WORKERS: "8" - LIBRENMS_SERVICE_DISCOVERY_WORKERS: "16" - LIBRENMS_SERVICE_POLLER_FREQUENCY: "300" - LIBRENMS_SERVICE_SERVICES_FREQUENCY: "300" - LIBRENMS_SERVICE_DISCOVERY_FREQUENCY: "21600" - LIBRENMS_SERVICE_BILLING_FREQUENCY: "300" - LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY: "60" - LIBRENMS_SERVICE_POLLER_DOWN_RETRY: "60" - LIBRENMS_SERVICE_LOGLEVEL: "INFO" - LIBRENMS_SERVICE_UPDATE_FREQUENCY: "86400" - LIBRENMS_SERVICE_PING_ENABLED: "false" - LIBRENMS_SERVICE_WATCHDOG_ENABLED: "false" LIBRENMS_WEATHERMAP: "true" LIBRENMS_WEATHERMAP_SCHEDULE: "*/5 * * * *" @@ -125,7 +112,7 @@ services: DB_USER: *MYSQL_USER DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" - LIBRENMS_SERVICE_NODE_ID: "dispatcher1234" + DISPATCHER_NODE_ID: "dispatcher1234" REDIS_HOST: "redis" REDIS_PORT: "6379" REDIS_DB: "0" @@ -150,7 +137,7 @@ services: DB_USER: *MYSQL_USER DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" - LIBRENMS_SERVICE_NODE_ID: "dispatcher5678" + DISPATCHER_NODE_ID: "dispatcher5678" REDIS_HOST: "redis" REDIS_PORT: "6379" REDIS_DB: "0" diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index df5c073..cc0f83b 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -138,7 +138,7 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "LIBRENMS_SERVICE_NODE_ID=dispatcher1" + - "DISPATCHER_NODE_ID=dispatcher1" - "REDIS_HOST=redis" - "REDIS_PORT=6379" - "REDIS_DB=0" diff --git a/examples/traefik/librenms.env b/examples/traefik/librenms.env index 6cdca5c..b54dda2 100644 --- a/examples/traefik/librenms.env +++ b/examples/traefik/librenms.env @@ -11,21 +11,5 @@ MEMCACHED_PORT=11211 RRDCACHED_HOST=rrdcached RRDCACHED_PORT=42217 -LIBRENMS_SERVICE_POLLER_WORKERS=24 -LIBRENMS_SERVICE_SERVICES_WORKERS=8 -LIBRENMS_SERVICE_DISCOVERY_WORKERS=16 - -LIBRENMS_SERVICE_POLLER_FREQUENCY=300 -LIBRENMS_SERVICE_SERVICES_FREQUENCY=300 -LIBRENMS_SERVICE_DISCOVERY_FREQUENCY=21600 -LIBRENMS_SERVICE_BILLING_FREQUENCY=300 -LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY=60 -LIBRENMS_SERVICE_POLLER_DOWN_RETRY=60 -LIBRENMS_SERVICE_LOGLEVEL=INFO -LIBRENMS_SERVICE_UPDATE_FREQUENCY=86400 - -LIBRENMS_SERVICE_PING_ENABLED=false -LIBRENMS_SERVICE_WATCHDOG_ENABLED=false - LIBRENMS_WEATHERMAP=false LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index e739f9b..fa64374 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -29,23 +29,7 @@ DB_USERNAME=${DB_USERNAME:-librenms} DB_TIMEOUT=${DB_TIMEOUT:-60} SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} -#LIBRENMS_SERVICE_NODE_ID=${LIBRENMS_SERVICE_NODE_ID:-dispatcher1} - -LIBRENMS_SERVICE_POLLER_WORKERS=${LIBRENMS_SERVICE_POLLER_WORKERS:-24} -LIBRENMS_SERVICE_SERVICES_WORKERS=${LIBRENMS_SERVICE_SERVICES_WORKERS:-8} -LIBRENMS_SERVICE_DISCOVERY_WORKERS=${LIBRENMS_SERVICE_DISCOVERY_WORKERS:-16} - -LIBRENMS_SERVICE_POLLER_FREQUENCY=${LIBRENMS_SERVICE_POLLER_FREQUENCY:-300} -LIBRENMS_SERVICE_SERVICES_FREQUENCY=${LIBRENMS_SERVICE_SERVICES_FREQUENCY:-300} -LIBRENMS_SERVICE_DISCOVERY_FREQUENCY=${LIBRENMS_SERVICE_DISCOVERY_FREQUENCY:-21600} -LIBRENMS_SERVICE_BILLING_FREQUENCY=${LIBRENMS_SERVICE_BILLING_FREQUENCY:-300} -LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY=${LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY:-60} -LIBRENMS_SERVICE_POLLER_DOWN_RETRY=${LIBRENMS_SERVICE_POLLER_DOWN_RETRY:-60} -LIBRENMS_SERVICE_LOGLEVEL=${LIBRENMS_SERVICE_LOGLEVEL:-INFO} -LIBRENMS_SERVICE_UPDATE_FREQUENCY=${LIBRENMS_SERVICE_UPDATE_FREQUENCY:-86400} - -LIBRENMS_SERVICE_PING_ENABLED=${LIBRENMS_SERVICE_PING_ENABLED:-false} -LIBRENMS_SERVICE_WATCHDOG_ENABLED=${LIBRENMS_SERVICE_WATCHDOG_ENABLED:-false} +#DISPATCHER_NODE_ID=${DISPATCHER_NODE_ID:-dispatcher1} #REDIS_HOST=${REDIS_HOST:-localhost} REDIS_PORT=${REDIS_PORT:-6379} @@ -81,6 +65,14 @@ while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do fi; done echo "Database ready!" +while ! ${dbcmd} -e "desc $DB_DATABASE.poller_cluster;" > /dev/null 2>&1; do + sleep 1 + counter=$((counter + 1)) + if [ ${counter} -gt ${DB_TIMEOUT} ]; then + >&2 echo "ERROR: Table $DB_DATABASE.poller_cluster does not exist on $DB_HOST" + exit 1 + fi; +done # Node ID if [ ! -f "/data/.env" ]; then @@ -88,9 +80,9 @@ if [ ! -f "/data/.env" ]; then exit 1 fi cat "/data/.env" >> "${LIBRENMS_PATH}/.env" -if [ -n "$LIBRENMS_SERVICE_NODE_ID" ]; then - echo "NODE_ID: $LIBRENMS_SERVICE_NODE_ID" - sed -i "s|^NODE_ID=.*|NODE_ID=$LIBRENMS_SERVICE_NODE_ID|g" "${LIBRENMS_PATH}/.env" +if [ -n "$DISPATCHER_NODE_ID" ]; then + echo "NODE_ID: $DISPATCHER_NODE_ID" + sed -i "s|^NODE_ID=.*|NODE_ID=$DISPATCHER_NODE_ID|g" "${LIBRENMS_PATH}/.env" fi # Redis @@ -106,26 +98,6 @@ REDIS_PASSWORD=${REDIS_PASSWORD} REDIS_DB=${REDIS_DB} EOL -# Configuration -cat > ${LIBRENMS_PATH}/config.d/dispatcher.php < /etc/services.d/dispatcher/run < Date: Fri, 3 Jul 2020 20:20:43 +0200 Subject: [PATCH 223/523] Check database migration completed --- rootfs/etc/cont-init.d/04-svc-main.sh | 2 ++ rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index fbf4a0c..32c2162 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -34,6 +34,7 @@ SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ]; then exit 0 fi +echo 0 > "/data/.migrated" # Handle .env if [ ! -f "/data/.env" ]; then @@ -70,6 +71,7 @@ counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_NAME" | wc -l) echo "Updating database schema..." lnms migrate --force --no-ansi --no-interaction +echo 1 > "/data/.migrated" echo "Clear cache" artisan cache:clear --no-interaction diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index fa64374..4805239 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -64,6 +64,14 @@ while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do exit 1 fi; done +while ! grep "1" /data/.migrated > /dev/null 2>&1; do + sleep 1 + counter=$((counter + 1)) + if [ ${counter} -gt ${DB_TIMEOUT} ]; then + >&2 echo "ERROR: Database migration not processed on $DB_HOST" + exit 1 + fi; +done echo "Database ready!" while ! ${dbcmd} -e "desc $DB_DATABASE.poller_cluster;" > /dev/null 2>&1; do sleep 1 From 2734798d6cfe61a6894b0a4577e81462c5de9fcd Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 3 Jul 2020 20:21:09 +0200 Subject: [PATCH 224/523] Remove LIBRENMS_DISTRIBUTED_POLLER_* env vars (now handle through WebUI) --- README.md | 1 - doc/docker/environment-variables.md | 10 ---------- doc/upgrade.md | 1 + rootfs/etc/cont-init.d/03-config.sh | 18 ------------------ 4 files changed, 1 insertion(+), 29 deletions(-) diff --git a/README.md b/README.md index 2597bc7..3e541ff 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,6 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * Multi-platform image * [Dispatcher service](doc/docker/environment-variables.md#dispatcher-service) as "sidecar" container * Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng) -* Ability to configure [distributed polling](https://docs.librenms.org/Extensions/Distributed-Poller/) * Built-in LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) * Ability to add custom Monitoring plugins (Nagios) * OPCache enabled to store precompiled script bytecode in shared memory diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 230f468..322675a 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -24,16 +24,6 @@ * `REDIS_PASSWORD`: Redis password * `REDIS_DB`: Redis database (default `0`) -### Distributed Poller - -* `LIBRENMS_POLLER_THREADS`: Threads that `poller-wrapper.py` runs (default `16`) -* `LIBRENMS_POLLER_INTERVAL`: Interval in minutes at which `poller-wrapper.py` runs (default `5`) [docs](https://docs.librenms.org/Support/1-Minute-Polling/) -* `LIBRENMS_DISTRIBUTED_POLLER_ENABLE`: Enable distributed poller functionality -* `LIBRENMS_DISTRIBUTED_POLLER_NAME`: Optional name of poller (default `$(hostname)`) -* `LIBRENMS_DISTRIBUTED_POLLER_GROUP`: By default, all hosts are shared and have the poller_group = 0. To pin a device to a poller, set it to a value greater than 0 and set the same value here. One can also specify a comma separated string of poller groups. The poller will then poll devices from any of the groups listed. [docs](https://docs.librenms.org/Extensions/Distributed-Poller/) -* `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST`: Memcached server for poller synchronization (default `$MEMCACHED_HOST`) -* `LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT`: Port of memcached server (default `$MEMCACHED_PORT`) - ### Syslog-ng > :warning: Only used if you enable and run a [sidecar syslog-ng container](../notes/syslog-ng.md) diff --git a/doc/upgrade.md b/doc/upgrade.md index 712d7bf..970e3d8 100644 --- a/doc/upgrade.md +++ b/doc/upgrade.md @@ -3,6 +3,7 @@ To upgrade to the latest version of LibreNMS, pull the newer image and launch the container. LibreNMS will upgrade automatically: ```bash +docker-compose down docker-compose pull docker-compose up -d ``` diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 41f5a3b..98c1be4 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -36,12 +36,6 @@ LOG_IP_VAR=${LOG_IP_VAR:-remote_addr} MEMCACHED_PORT=${MEMCACHED_PORT:-11211} RRDCACHED_PORT=${RRDCACHED_PORT:-42217} -LIBRENMS_DISTRIBUTED_POLLER_ENABLE=${LIBRENMS_DISTRIBUTED_POLLER_ENABLE:-false} -LIBRENMS_DISTRIBUTED_POLLER_NAME=${LIBRENMS_DISTRIBUTED_POLLER_NAME:-$(hostname -f)} -LIBRENMS_DISTRIBUTED_POLLER_GROUP=${LIBRENMS_DISTRIBUTED_POLLER_GROUP:-'0'} -LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST:-${MEMCACHED_HOST}} -LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT=${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT:-${MEMCACHED_PORT}} - DB_PORT=${DB_PORT:-3306} DB_NAME=${DB_NAME:-librenms} DB_USER=${DB_USER:-librenms} @@ -175,18 +169,6 @@ if [ ! -z "${RRDCACHED_HOST}" ]; then EOL fi -# Config : Ditributed poller -if [ ! -z "${LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST}" -a ! -z "${RRDCACHED_HOST}" -a $LIBRENMS_DISTRIBUTED_POLLER_ENABLE = true ]; then - cat > ${LIBRENMS_PATH}/config.d/distributed_poller.php < Date: Fri, 3 Jul 2020 20:34:41 +0200 Subject: [PATCH 225/523] Update CHANGELOG --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 48524ec..4ff18f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 1.65-RC1 (2020/07/03) + +* LibreNMS 1.65 +* Remove `LIBRENMS_DISTRIBUTED_POLLER_*` env vars (now handle through WebUI) +* Check database migration completed +* Remove `LIBRENMS_SERVICE_*` env vars (now handle through WebUI) +* Check `poller_cluster` table exists before running dispatcher +* Handle Redis for dispatcher through `.env` +* Remove deprecated sidecar cron container +* Handle APP_KEY and NODE_ID (#91 #93) +* Add artisan command +* Clear cache and reload config cache +* Set user group config +* Alpine Linux 3.12 + ## 1.64.1-RC1 (2020/06/01) * LibreNMS 1.64.1 From 4be8d30631a7721a58e6a7527775f395321de8ff Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 4 Jul 2020 01:40:18 +0200 Subject: [PATCH 226/523] Update CHANGELOG (#95) --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ff18f0..53104f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,9 @@ * Set user group config * Alpine Linux 3.12 +> :warning: **UPGRADE NOTES** +> Fill in the "Specific URL" (`base_url`) at `https://librenms.example.com/settings/system/server` + ## 1.64.1-RC1 (2020/06/01) * LibreNMS 1.64.1 From 5c00943ddb0cee05535bdffea02911ef35662ca6 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 10 Jul 2020 22:17:46 +0200 Subject: [PATCH 227/523] LibreNMS 1.65.1 --- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 53104f7..c27fb6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.65.1-RC1 (2020/07/10) + +* LibreNMS 1.65.1 + ## 1.65-RC1 (2020/07/03) * LibreNMS 1.65 diff --git a/Dockerfile b/Dockerfile index 428dbdd..943a339 100644 --- a/Dockerfile +++ b/Dockerfile @@ -108,7 +108,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/sbin/fping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.65" \ + LIBRENMS_VERSION="1.65.1" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ From ee2d7dd04dc8d5bfd9a303551ecd9b462de2a856 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 10 Jul 2020 22:52:25 +0200 Subject: [PATCH 228/523] Add LIBRENMS_BASE_URL env var (#95 #99 #100) --- CHANGELOG.md | 4 ++++ doc/docker/environment-variables.md | 1 + rootfs/etc/cont-init.d/03-config.sh | 12 +++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c27fb6f..2472de1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.65.1-RC2 (2020/07/10) + +* Add `LIBRENMS_BASE_URL` env var (#95 #99 #100) + ## 1.65.1-RC1 (2020/07/10) * LibreNMS 1.65.1 diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 322675a..caa3fe2 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -41,6 +41,7 @@ ### Misc +* `LIBRENMS_BASE_URL`: URL of your LibreNMS instance (default `/`) * `LIBRENMS_SNMP_COMMUNITY`: This container's SNMP v2c community string (default `librenmsdocker`) * `LIBRENMS_WEATHERMAP`: Enable LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) (default `false`) * `LIBRENMS_WEATHERMAP_SCHEDULE`: CRON expression format (default `*/5 * * * *`) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 98c1be4..67d2d97 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -41,6 +41,8 @@ DB_NAME=${DB_NAME:-librenms} DB_USER=${DB_USER:-librenms} DB_TIMEOUT=${DB_TIMEOUT:-30} +LIBRENMS_BASE_URL=${LIBRENMS_BASE_URL:-/} + # Timezone echo "Setting timezone to ${TZ}..." ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime @@ -88,7 +90,7 @@ rm -f ${LIBRENMS_PATH}/config.d/* echo "Setting LibreNMS configuration..." -# Env : Database +# Env file if [ -z "$DB_HOST" ]; then >&2 echo "ERROR: DB_HOST must be defined" exit 1 @@ -99,6 +101,7 @@ if [ -z "$DB_PASSWORD" ]; then exit 1 fi cat > ${LIBRENMS_PATH}/.env < ${LIBRENMS_PATH}/config.d/server.php < ${LIBRENMS_PATH}/config.d/user.php < Date: Thu, 23 Jul 2020 20:31:11 +0000 Subject: [PATCH 229/523] Bump crazy-max/ghaction-github-labeler from v2 to v2.1.0 (#103) Bumps [crazy-max/ghaction-github-labeler](https://github.com/crazy-max/ghaction-github-labeler) from v2 to v2.1.0. - [Release notes](https://github.com/crazy-max/ghaction-github-labeler/releases) - [Changelog](https://github.com/crazy-max/ghaction-github-labeler/blob/master/CHANGELOG.md) - [Commits](https://github.com/crazy-max/ghaction-github-labeler/compare/v2...b3f4d1e403f6e029713a965ca1c5291c4cba0933) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/labels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index bdd13f2..8971148 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -18,6 +18,6 @@ jobs: - name: Run Labeler if: success() - uses: crazy-max/ghaction-github-labeler@v2 + uses: crazy-max/ghaction-github-labeler@v2.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From a858a4f5e27fdd37682fb0bcb791a7b414696434 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 30 Jul 2020 13:47:34 +0200 Subject: [PATCH 230/523] LibreNMS 1.66 --- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2472de1..c4c4870 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.66-RC1 (2020/07/30) + +* LibreNMS 1.66 + ## 1.65.1-RC2 (2020/07/10) * Add `LIBRENMS_BASE_URL` env var (#95 #99 #100) diff --git a/Dockerfile b/Dockerfile index 943a339..d3e9575 100644 --- a/Dockerfile +++ b/Dockerfile @@ -108,7 +108,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/sbin/fping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.65.1" \ + LIBRENMS_VERSION="1.66" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ From f21bdf7ef8ee2b2440a98b582b62753a29d95d03 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2020 17:52:35 +0000 Subject: [PATCH 231/523] Bump actions/checkout from v2.3.1 to v2.3.2 (#107) Bumps [actions/checkout](https://github.com/actions/checkout) from v2.3.1 to v2.3.2. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.3.1...2036a08e25fa78bbd946711a407b529a0a1204bf) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/labels.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bc2eb51..bc2d714 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2.3.1 + uses: actions/checkout@v2.3.2 - name: Prepare id: prepare diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 8971148..0c7a0ce 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2.3.1 + uses: actions/checkout@v2.3.2 - name: Run Labeler if: success() From 6e1ecbb5612a883a4affc8f49feea0a42c23ab50 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 15 Aug 2020 16:12:13 +0200 Subject: [PATCH 232/523] Use crazy-max/ghaction-docker-login action --- .github/workflows/build.yml | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bc2d714..359dcbb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,6 @@ jobs: name: Prepare id: prepare run: | - DOCKER_USERNAME=librenmsbot DOCKER_IMAGE=librenms/librenms DOCKER_PLATFORMS=linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/386,linux/ppc64le VERSION=edge @@ -40,7 +39,6 @@ jobs: TAGS="$TAGS --tag ${DOCKER_IMAGE}:latest" fi - echo ::set-output name=docker_username::${DOCKER_USERNAME} echo ::set-output name=docker_image::${DOCKER_IMAGE} echo ::set-output name=version::${VERSION} echo ::set-output name=buildx_args::--platform ${DOCKER_PLATFORMS} \ @@ -55,12 +53,12 @@ jobs: name: Docker Buildx (build) run: | docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }} - - name: Docker Login + - name: Login to DockerHub if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) - env: - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: | - echo "${DOCKER_PASSWORD}" | docker login --username "${{ steps.prepare.outputs.docker_username }}" --password-stdin + uses: crazy-max/ghaction-docker-login@v1.1.0 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} - name: Docker Buildx (push) if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) @@ -71,8 +69,3 @@ jobs: if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) run: | docker run --rm mplatform/mquery ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }} - - - name: Clear - if: always() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) - run: | - rm -f ${HOME}/.docker/config.json From 2f9215e36f694463c1ccfe78a983c5f725d91d94 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2020 13:25:52 +0000 Subject: [PATCH 233/523] Bump crazy-max/ghaction-docker-login from v1.1.0 to v1.1.1 (#113) Bumps [crazy-max/ghaction-docker-login](https://github.com/crazy-max/ghaction-docker-login) from v1.1.0 to v1.1.1. - [Release notes](https://github.com/crazy-max/ghaction-docker-login/releases) - [Changelog](https://github.com/crazy-max/ghaction-docker-login/blob/master/CHANGELOG.md) - [Commits](https://github.com/crazy-max/ghaction-docker-login/compare/v1.1.0...ef43051dd23cf490574212506f935361f3a15e9e) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 359dcbb..b1a3528 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,7 +55,7 @@ jobs: docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }} - name: Login to DockerHub if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) - uses: crazy-max/ghaction-docker-login@v1.1.0 + uses: crazy-max/ghaction-docker-login@v1.1.1 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} From 47c8bf2af002470389fa0536dd6939a3650ef657 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2020 11:59:57 +0000 Subject: [PATCH 234/523] Bump crazy-max/ghaction-docker-buildx from v3.2.0 to v3.3.0 (#114) Bumps [crazy-max/ghaction-docker-buildx](https://github.com/crazy-max/ghaction-docker-buildx) from v3.2.0 to v3.3.0. - [Release notes](https://github.com/crazy-max/ghaction-docker-buildx/releases) - [Changelog](https://github.com/crazy-max/ghaction-docker-buildx/blob/master/CHANGELOG.md) - [Commits](https://github.com/crazy-max/ghaction-docker-buildx/compare/v3.2.0...bb77f35f7a82f54fcda51000ea4e4467825014fd) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b1a3528..3f77051 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -48,7 +48,7 @@ jobs: ${TAGS} --file Dockerfile . - name: Set up Docker Buildx - uses: crazy-max/ghaction-docker-buildx@v3.2.0 + uses: crazy-max/ghaction-docker-buildx@v3.3.0 - name: Docker Buildx (build) run: | From 99b7d29203fe38a771e1a73eff91f3bd6a3c715e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 27 Aug 2020 15:24:17 +0200 Subject: [PATCH 235/523] Switch to docker/login-action --- .github/workflows/build.yml | 4 ++-- .github/workflows/labels.yml | 5 +---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3f77051..f04da3c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -48,14 +48,14 @@ jobs: ${TAGS} --file Dockerfile . - name: Set up Docker Buildx - uses: crazy-max/ghaction-docker-buildx@v3.3.0 + uses: crazy-max/ghaction-docker-buildx@v3.2.0 - name: Docker Buildx (build) run: | docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }} - name: Login to DockerHub if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) - uses: crazy-max/ghaction-docker-login@v1.1.1 + uses: docker/login-action@v1.3.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 0c7a0ce..03edd21 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -17,7 +17,4 @@ jobs: uses: actions/checkout@v2.3.2 - name: Run Labeler - if: success() - uses: crazy-max/ghaction-github-labeler@v2.1.0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: crazy-max/ghaction-github-labeler@v3.0.0 From edd80b0fc1ba99b6b7f3b7b367f16466131e3249 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 28 Aug 2020 07:56:27 +0200 Subject: [PATCH 236/523] Fix DB connection for dispatcher service (#108 #118 #119) --- rootfs/etc/cont-init.d/04-svc-main.sh | 2 -- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 18 +++++------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index 32c2162..fbf4a0c 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -34,7 +34,6 @@ SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ]; then exit 0 fi -echo 0 > "/data/.migrated" # Handle .env if [ ! -f "/data/.env" ]; then @@ -71,7 +70,6 @@ counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_NAME" | wc -l) echo "Updating database schema..." lnms migrate --force --no-ansi --no-interaction -echo 1 > "/data/.migrated" echo "Clear cache" artisan cache:clear --no-interaction diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index 4805239..ebb43ec 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -24,8 +24,8 @@ file_env() { } DB_PORT=${DB_PORT:-3306} -DB_DATABASE=${DB_DATABASE:-librenms} -DB_USERNAME=${DB_USERNAME:-librenms} +DB_NAME=${DB_NAME:-librenms} +DB_USER=${DB_USER:-librenms} DB_TIMEOUT=${DB_TIMEOUT:-60} SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} @@ -51,7 +51,7 @@ if [ -z "$DB_PASSWORD" ]; then exit 1 fi -dbcmd="mysql -h ${DB_HOST} -P ${DB_PORT} -u "${DB_USERNAME}" "-p${DB_PASSWORD}"" +dbcmd="mysql -h ${DB_HOST} -P ${DB_PORT} -u "${DB_USER}" "-p${DB_PASSWORD}"" unset DB_PASSWORD echo "Waiting ${DB_TIMEOUT}s for database to be ready..." @@ -64,20 +64,12 @@ while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do exit 1 fi; done -while ! grep "1" /data/.migrated > /dev/null 2>&1; do - sleep 1 - counter=$((counter + 1)) - if [ ${counter} -gt ${DB_TIMEOUT} ]; then - >&2 echo "ERROR: Database migration not processed on $DB_HOST" - exit 1 - fi; -done echo "Database ready!" -while ! ${dbcmd} -e "desc $DB_DATABASE.poller_cluster;" > /dev/null 2>&1; do +while ! ${dbcmd} -e "desc $DB_NAME.poller_cluster;" > /dev/null 2>&1; do sleep 1 counter=$((counter + 1)) if [ ${counter} -gt ${DB_TIMEOUT} ]; then - >&2 echo "ERROR: Table $DB_DATABASE.poller_cluster does not exist on $DB_HOST" + >&2 echo "ERROR: Table $DB_NAME.poller_cluster does not exist on $DB_HOST" exit 1 fi; done From 1a1c4899f8e1963dfda0b6354b182f507233ac61 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 28 Aug 2020 07:57:41 +0200 Subject: [PATCH 237/523] Add DISPATCHER_ARGS env var --- doc/docker/environment-variables.md | 1 + rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index caa3fe2..70a10cb 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -19,6 +19,7 @@ * `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](https://github.com/librenms/librenms/blob/master/librenms-service.py) * `REDIS_HOST`: Redis host for poller synchronization * `REDIS_PORT`: Redis port (default `6379`) * `REDIS_PASSWORD`: Redis password diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index ebb43ec..ef44d62 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -104,6 +104,6 @@ cat > /etc/services.d/dispatcher/run < Date: Fri, 28 Aug 2020 08:57:43 +0200 Subject: [PATCH 238/523] Update build workflow --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f04da3c..7e0e64f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -68,4 +68,4 @@ jobs: name: Docker Check Manifest if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) run: | - docker run --rm mplatform/mquery ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }} + docker buildx imagetools inspect ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }} From 5a37ac37dfe2eb13bed1cc7f644b5d46bfc5e90b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 28 Aug 2020 08:58:41 +0200 Subject: [PATCH 239/523] Run maintenance task through a dedicated process (#105) --- rootfs/etc/cont-init.d/03-config.sh | 7 +++++++ .../{07-svc-weathermap.sh => 07-svc-cron.sh} | 14 +++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) rename rootfs/etc/cont-init.d/{07-svc-weathermap.sh => 07-svc-cron.sh} (66%) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 67d2d97..be9b960 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -179,6 +179,13 @@ if [ ! -z "${RRDCACHED_HOST}" ]; then EOL fi +# Config : Dispatcher +cat > ${LIBRENMS_PATH}/config.d/dispatcher.php <> ${CRONTAB_PATH}/librenms + +if [ "$LIBRENMS_WEATHERMAP" = "true" ] && [ -n "$LIBRENMS_WEATHERMAP_SCHEDULE" ]; then echo "Creating LibreNMS Weathermap cron task with the following period fields: $LIBRENMS_WEATHERMAP_SCHEDULE" echo "${LIBRENMS_WEATHERMAP_SCHEDULE} php -f /opt/librenms/html/plugins/Weathermap/map-poller.php" >> ${CRONTAB_PATH}/librenms fi @@ -28,10 +32,10 @@ echo "Fixing crontabs permissions..." chmod -R 0644 ${CRONTAB_PATH} # Create service -mkdir -p /etc/services.d/weathermap -cat > /etc/services.d/weathermap/run < /etc/services.d/cron/run < Date: Fri, 28 Aug 2020 09:21:38 +0200 Subject: [PATCH 240/523] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4c4870..2e11991 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 1.66-RC2 (2020/08/28) + +* Fix DB connection for dispatcher service (#108 #118 #119) +* Run maintenance task through a dedicated process (#105) +* Add `DISPATCHER_ARGS` env var + ## 1.66-RC1 (2020/07/30) * LibreNMS 1.66 From 3323c616a7016a07b0443e36b70abe1b16e10812 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Aug 2020 07:21:57 +0000 Subject: [PATCH 241/523] Bump crazy-max/ghaction-docker-buildx from v3.2.0 to v3.3.0 (#120) Bumps [crazy-max/ghaction-docker-buildx](https://github.com/crazy-max/ghaction-docker-buildx) from v3.2.0 to v3.3.0. - [Release notes](https://github.com/crazy-max/ghaction-docker-buildx/releases) - [Changelog](https://github.com/crazy-max/ghaction-docker-buildx/blob/master/CHANGELOG.md) - [Commits](https://github.com/crazy-max/ghaction-docker-buildx/compare/v3.2.0...bb77f35f7a82f54fcda51000ea4e4467825014fd) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7e0e64f..7cb4561 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -48,7 +48,7 @@ jobs: ${TAGS} --file Dockerfile . - name: Set up Docker Buildx - uses: crazy-max/ghaction-docker-buildx@v3.2.0 + uses: crazy-max/ghaction-docker-buildx@v3.3.0 - name: Docker Buildx (build) run: | From 9646691bf21f9eb5829187d42d2c6789eaafa7e8 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 3 Sep 2020 22:31:53 +0200 Subject: [PATCH 242/523] Missing migration seed flag (#122) --- rootfs/etc/cont-init.d/04-svc-main.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index fbf4a0c..8198290 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -69,7 +69,7 @@ echo "Database ready!" counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_NAME" | wc -l) echo "Updating database schema..." -lnms migrate --force --no-ansi --no-interaction +lnms migrate --seed --force --no-ansi --no-interaction echo "Clear cache" artisan cache:clear --no-interaction From 163dcdbb23ccc8bd4877c9793a65e9f1a47b19ea Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 3 Sep 2020 22:33:25 +0200 Subject: [PATCH 243/523] LibreNMS 1.67 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d3e9575..17ed7b1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -108,7 +108,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/sbin/fping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.66" \ + LIBRENMS_VERSION="1.67" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ From eecc7d8a590ff1abecfa8b5ab308713f37e648d3 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 3 Sep 2020 22:35:39 +0200 Subject: [PATCH 244/523] Now based on Alpine Linux 3.12 with s6 overlay --- .github/workflows/build.yml | 2 +- Dockerfile | 14 +------------- README.md | 1 + 3 files changed, 3 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7cb4561..21036f9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,7 +26,7 @@ jobs: id: prepare run: | DOCKER_IMAGE=librenms/librenms - DOCKER_PLATFORMS=linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/386,linux/ppc64le + DOCKER_PLATFORMS=linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/386,linux/ppc64le,linux/s390x VERSION=edge if [[ $GITHUB_REF == refs/tags/* ]]; then diff --git a/Dockerfile b/Dockerfile index 17ed7b1..bfbd516 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=${TARGETPLATFORM:-linux/amd64} alpine:3.12 +FROM --platform=${TARGETPLATFORM:-linux/amd64} crazymax/alpine-s6:3.12 ARG BUILD_DATE ARG VCS_REF @@ -87,18 +87,6 @@ RUN apk --update --no-cache add \ mariadb-dev \ musl-dev \ python3-dev \ - && S6_ARCH=$(case ${TARGETPLATFORM:-linux/amd64} in \ - "linux/amd64") echo "amd64" ;; \ - "linux/arm/v6") echo "arm" ;; \ - "linux/arm/v7") echo "armhf" ;; \ - "linux/arm64") echo "aarch64" ;; \ - "linux/386") echo "x86" ;; \ - "linux/ppc64le") echo "ppc64le" ;; \ - *) echo "" ;; esac) \ - && echo "S6_ARCH=$S6_ARCH" \ - && wget -q "https://github.com/just-containers/s6-overlay/releases/latest/download/s6-overlay-${S6_ARCH}.tar.gz" -qO "/tmp/s6-overlay-${S6_ARCH}.tar.gz" \ - && tar xzf /tmp/s6-overlay-${S6_ARCH}.tar.gz -C / \ - && s6-echo "s6-overlay installed" \ && pip3 install --upgrade pip \ && pip3 install python-memcached mysqlclient --upgrade \ && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ diff --git a/README.md b/README.md index 3e541ff..602e533 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ Image: librenms/librenms:latest - linux/arm64 - linux/386 - linux/ppc64le + - linux/s390x ``` ## Documentation From c9e6bcfe5ad20729669490ce232b62f8517304d6 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 3 Sep 2020 22:35:49 +0200 Subject: [PATCH 245/523] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e11991..9b93055 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 1.67-RC1 (2020/09/03) + +* LibreNMS 1.67 +* Now based on [Alpine Linux 3.12 with s6 overlay](https://github.com/crazy-max/docker-alpine-s6/) +* Missing migration seed flag (#122) + ## 1.66-RC2 (2020/08/28) * Fix DB connection for dispatcher service (#108 #118 #119) From c94f69eb7dfac5bfc41fe52d4df6bdd66f48b6be Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 3 Sep 2020 23:43:29 +0200 Subject: [PATCH 246/523] Seed through artisan --- rootfs/etc/cont-init.d/04-svc-main.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index 8198290..829f85f 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -69,7 +69,8 @@ echo "Database ready!" counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_NAME" | wc -l) echo "Updating database schema..." -lnms migrate --seed --force --no-ansi --no-interaction +lnms migrate --force --no-ansi --no-interaction +artisan db:seed --force --no-ansi --no-interaction echo "Clear cache" artisan cache:clear --no-interaction From f68d1b28b8869ea55501c1ca391b2507899675f9 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 4 Sep 2020 00:08:36 +0200 Subject: [PATCH 247/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b93055..b9a9311 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.67-RC2 (2020/09/04) + +* Seed through artisan (#122) + ## 1.67-RC1 (2020/09/03) * LibreNMS 1.67 From 626b9ee4791d1fbbbc7a14cc542765e3aaa8db38 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 10 Sep 2020 00:09:11 +0200 Subject: [PATCH 248/523] Switch to Docker actions --- .github/workflows/build.yml | 50 +++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 21036f9..d190fc7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,49 +23,51 @@ jobs: uses: actions/checkout@v2.3.2 - name: Prepare - id: prepare + id: prep run: | DOCKER_IMAGE=librenms/librenms - DOCKER_PLATFORMS=linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/386,linux/ppc64le,linux/s390x VERSION=edge - if [[ $GITHUB_REF == refs/tags/* ]]; then TAG=${GITHUB_REF#refs/tags/} VERSION=${TAG%-*} fi - - TAGS="--tag ${DOCKER_IMAGE}:${VERSION}" + TAGS="${DOCKER_IMAGE}:${VERSION}" if [ "$VERSION" != "edge" ]; then - TAGS="$TAGS --tag ${DOCKER_IMAGE}:latest" + TAGS="$TAGS,${DOCKER_IMAGE}:latest" fi - echo ::set-output name=docker_image::${DOCKER_IMAGE} echo ::set-output name=version::${VERSION} - echo ::set-output name=buildx_args::--platform ${DOCKER_PLATFORMS} \ - --build-arg VERSION=${VERSION} \ - --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \ - --build-arg VCS_REF=${GITHUB_SHA::8} \ - ${TAGS} --file Dockerfile . + echo ::set-output name=tags::${TAGS} + echo ::set-output name=build_date::$(date -u +'%Y-%m-%dT%H:%M:%SZ') + echo ::set-output name=vcs_ref::${GITHUB_SHA::8} + - + name: Set up QEMU + uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx - uses: crazy-max/ghaction-docker-buildx@v3.3.0 + uses: docker/setup-buildx-action@v1 - - name: Docker Buildx (build) - run: | - docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }} - - name: Login to DockerHub - if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) + name: Login to DockerHub + if: github.event_name != 'pull_request' uses: docker/login-action@v1.3.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Docker Buildx (push) - if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) - run: | - docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }} + name: Build + uses: docker/build-push-action@v2 + with: + context: . + file: ./Dockerfile + platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/386,linux/ppc64le,linux/s390x + push: ${{ github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) }} + tags: ${{ steps.prep.outputs.tags }} + build-args: | + VERSION=${{ steps.prep.outputs.version }} + BUILD_DATE=${{ steps.prep.outputs.build_date }} + VCS_REF=${{ steps.prep.outputs.vcs_ref }} - - name: Docker Check Manifest + name: Check manifest if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) run: | - docker buildx imagetools inspect ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }} + docker buildx imagetools inspect ${{ steps.prep.outputs.docker_image }}:${{ steps.prep.outputs.version }} From 7e2a9f26c49944c9c0c80dba8f140bc14567a5d4 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 17 Sep 2020 19:43:22 +0200 Subject: [PATCH 249/523] Add debug steps --- .github/workflows/build.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d190fc7..9468bb0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,6 +46,8 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 + with: + buildkitd-flags: "--debug" - name: Login to DockerHub if: github.event_name != 'pull_request' @@ -68,6 +70,11 @@ jobs: VCS_REF=${{ steps.prep.outputs.vcs_ref }} - name: Check manifest - if: success() && github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) + if: github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) run: | docker buildx imagetools inspect ${{ steps.prep.outputs.docker_image }}:${{ steps.prep.outputs.version }} + - + name: Check pull + if: github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) + run: | + docker pull ${{ steps.prep.outputs.docker_image }}:${{ steps.prep.outputs.version }} From b3fdfb69202ae77c65bfa518ba9bb399f33d9af1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Sep 2020 18:59:54 +0000 Subject: [PATCH 250/523] Bump actions/checkout from v2.3.2 to v2.3.3 (#126) Bumps [actions/checkout](https://github.com/actions/checkout) from v2.3.2 to v2.3.3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.3.2...a81bbbf8298c0fa03ea29cdc473d45769f953675) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/labels.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9468bb0..68584cc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2.3.2 + uses: actions/checkout@v2.3.3 - name: Prepare id: prep diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 03edd21..15cea83 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2.3.2 + uses: actions/checkout@v2.3.3 - name: Run Labeler uses: crazy-max/ghaction-github-labeler@v3.0.0 From e0cd59c9eacb2e94ebfec06599b9320fd3b94b30 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Sep 2020 19:00:09 +0000 Subject: [PATCH 251/523] Bump docker/login-action from v1.3.0 to v1.4.0 (#127) Bumps [docker/login-action](https://github.com/docker/login-action) from v1.3.0 to v1.4.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v1.3.0...0f9fb804211da85ced11999754d75a8de9d612f8) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 68584cc..43b5c99 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,7 +51,7 @@ jobs: - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@v1.3.0 + uses: docker/login-action@v1.4.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} From 740a66509503b7acf94ab76bc09dc551accc57a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Sep 2020 21:32:44 +0000 Subject: [PATCH 252/523] Bump crazy-max/ghaction-github-labeler from v3.0.0 to v3.1.0 (#128) Bumps [crazy-max/ghaction-github-labeler](https://github.com/crazy-max/ghaction-github-labeler) from v3.0.0 to v3.1.0. - [Release notes](https://github.com/crazy-max/ghaction-github-labeler/releases) - [Changelog](https://github.com/crazy-max/ghaction-github-labeler/blob/master/CHANGELOG.md) - [Commits](https://github.com/crazy-max/ghaction-github-labeler/compare/v3.0.0...dbccbd0ebd1178b5942ba419c921b36525829588) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/labels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 15cea83..08d5675 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -17,4 +17,4 @@ jobs: uses: actions/checkout@v2.3.3 - name: Run Labeler - uses: crazy-max/ghaction-github-labeler@v3.0.0 + uses: crazy-max/ghaction-github-labeler@v3.1.0 From 89b35ec4a26449e4379078ef0c765a17efb41470 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 30 Sep 2020 23:34:48 +0200 Subject: [PATCH 253/523] LibreNMS 1.68 --- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b9a9311..8c320a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.68-RC1 (2020/09/30) + +* LibreNMS 1.68 + ## 1.67-RC2 (2020/09/04) * Seed through artisan (#122) diff --git a/Dockerfile b/Dockerfile index bfbd516..d6dbbe8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -96,7 +96,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/sbin/fping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.67" \ + LIBRENMS_VERSION="1.68" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ From f37e540817f93ceb150f2f19876841ba296575c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Oct 2020 13:22:48 +0000 Subject: [PATCH 254/523] Bump docker/login-action from v1.4.0 to v1.4.1 (#130) Bumps [docker/login-action](https://github.com/docker/login-action) from v1.4.0 to v1.4.1. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v1.4.0...34d5f75b0d6d0d22f06d83acf2fa1b144409ec83) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 43b5c99..f1a6416 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,7 +51,7 @@ jobs: - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@v1.4.0 + uses: docker/login-action@v1.4.1 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} From f15f998907bf294b41ac6eaafe6c26c0e39db2a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2020 22:42:04 +0000 Subject: [PATCH 255/523] Bump docker/login-action from v1.4.1 to v1.6.0 (#134) Bumps [docker/login-action](https://github.com/docker/login-action) from v1.4.1 to v1.6.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v1.4.1...adb73476b6e06caddec5db0bc1deacbec8cdd947) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f1a6416..9b07a8e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,7 +51,7 @@ jobs: - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@v1.4.1 + uses: docker/login-action@v1.6.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} From 84083b8a6d3de0cfe7c229b293e210bb1bd75719 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 14 Oct 2020 23:41:03 +0200 Subject: [PATCH 256/523] Replace RRDCACHED_HOST and RRDCACHED_PORT with RRDCACHED_SERVER env var --- {.res => .github}/docker-librenms.jpg | Bin README.md | 2 +- doc/docker/environment-variables.md | 3 +-- examples/compose/librenms.env | 3 +-- examples/pwd/librenms.yml | 3 +-- examples/traefik/librenms.env | 3 +-- rootfs/etc/cont-init.d/03-config.sh | 6 +++--- 7 files changed, 8 insertions(+), 12 deletions(-) rename {.res => .github}/docker-librenms.jpg (100%) diff --git a/.res/docker-librenms.jpg b/.github/docker-librenms.jpg similarity index 100% rename from .res/docker-librenms.jpg rename to .github/docker-librenms.jpg diff --git a/README.md b/README.md index 602e533..cf297c5 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ ## About -🐳 [LibreNMS](https://www.librenms.org/) Docker image based on Alpine Linux and Nginx.
+[LibreNMS](https://www.librenms.org/) Docker image based on Alpine Linux and Nginx.
If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other Docker images! 💡 Want to be notified of new releases? Check out 🔔 [Diun (Docker Image Update Notifier)](https://github.com/crazy-max/diun) project! diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 70a10cb..679d4ff 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -48,5 +48,4 @@ * `LIBRENMS_WEATHERMAP_SCHEDULE`: CRON expression format (default `*/5 * * * *`) * `MEMCACHED_HOST`: Hostname / IP address of a Memcached server * `MEMCACHED_PORT`: Port of the Memcached server (default `11211`) -* `RRDCACHED_HOST`: Hostname / IP address of a RRDcached server -* `RRDCACHED_PORT`: Port of the RRDcached server (default `42217`) +* `RRDCACHED_SERVER`: RRDcached server (default `rrdcached:42217`) diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index 8454af4..9c934af 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -8,8 +8,7 @@ LOG_IP_VAR=remote_addr LIBRENMS_SNMP_COMMUNITY=librenmsdocker MEMCACHED_HOST=memcached MEMCACHED_PORT=11211 -RRDCACHED_HOST=rrdcached -RRDCACHED_PORT=42217 +RRDCACHED_SERVER=rrdcached:42217 LIBRENMS_WEATHERMAP=false LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index 99b6a7e..80f6756 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -18,8 +18,7 @@ x-envlibrenms: &envlibrenms LIBRENMS_SNMP_COMMUNITY: "librenmsdocker" MEMCACHED_HOST: "memcached" MEMCACHED_PORT: "11211" - RRDCACHED_HOST: "rrdcached" - RRDCACHED_PORT: "42217" + RRDCACHED_SERVER: "rrdcached:42217" LIBRENMS_WEATHERMAP: "true" LIBRENMS_WEATHERMAP_SCHEDULE: "*/5 * * * *" diff --git a/examples/traefik/librenms.env b/examples/traefik/librenms.env index b54dda2..723ce6d 100644 --- a/examples/traefik/librenms.env +++ b/examples/traefik/librenms.env @@ -8,8 +8,7 @@ LOG_IP_VAR=http_x_forwarded_for LIBRENMS_SNMP_COMMUNITY=librenmsdocker MEMCACHED_HOST=memcached MEMCACHED_PORT=11211 -RRDCACHED_HOST=rrdcached -RRDCACHED_PORT=42217 +RRDCACHED_SERVER=rrdcached:42217 LIBRENMS_WEATHERMAP=false LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index be9b960..efff71e 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -34,7 +34,7 @@ REAL_IP_HEADER=${REAL_IP_HEADER:-"X-Forwarded-For"} LOG_IP_VAR=${LOG_IP_VAR:-remote_addr} MEMCACHED_PORT=${MEMCACHED_PORT:-11211} -RRDCACHED_PORT=${RRDCACHED_PORT:-42217} +RRDCACHED_SERVER=${RRDCACHED_SERVER:-rrdcached:42217} DB_PORT=${DB_PORT:-3306} DB_NAME=${DB_NAME:-librenms} @@ -171,10 +171,10 @@ EOL fi # Config : RRDcached -if [ ! -z "${RRDCACHED_HOST}" ]; then +if [ ! -z "${RRDCACHED_SERVER}" ]; then cat > ${LIBRENMS_PATH}/config.d/rrdcached.php < Date: Sun, 1 Nov 2020 20:49:39 +0100 Subject: [PATCH 257/523] Use Docker meta action --- Dockerfile | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index d6dbbe8..08f868e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,10 @@ FROM --platform=${TARGETPLATFORM:-linux/amd64} crazymax/alpine-s6:3.12 -ARG BUILD_DATE -ARG VCS_REF -ARG VERSION - ARG TARGETPLATFORM ARG BUILDPLATFORM RUN printf "I am running on ${BUILDPLATFORM:-linux/amd64}, building for ${TARGETPLATFORM:-linux/amd64}\n$(uname -a)\n" -LABEL maintainer="CrazyMax" \ - org.opencontainers.image.created=$BUILD_DATE \ - org.opencontainers.image.url="https://github.com/librenms/docker" \ - org.opencontainers.image.source="https://github.com/librenms/docker" \ - org.opencontainers.image.version=$VERSION \ - org.opencontainers.image.revision=$VCS_REF \ - org.opencontainers.image.vendor="CrazyMax" \ - org.opencontainers.image.title="LibreNMS" \ - org.opencontainers.image.description="LibreNMS" \ - org.opencontainers.image.licenses="MIT" +LABEL maintainer="CrazyMax" RUN apk --update --no-cache add \ busybox-extras \ From bf2eea9de50e0e66c665b94c115ab19bf2605c39 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 1 Nov 2020 20:50:17 +0100 Subject: [PATCH 258/523] Allow to clear env for FPM workers --- doc/docker/environment-variables.md | 1 + rootfs/etc/cont-init.d/03-config.sh | 2 ++ rootfs/tpls/etc/php7/php-fpm.d/www.conf | 1 + 3 files changed, 4 insertions(+) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 679d4ff..45552f2 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -7,6 +7,7 @@ * `PGID`: LibreNMS group id (default `1000`) * `MEMORY_LIMIT`: PHP memory limit (default `256M`) * `UPLOAD_MAX_SIZE`: Upload max size (default `16M`) +* `CLEAR_ENV`: Clear environment in FPM workers (default `yes`) * `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`) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index efff71e..33b90a2 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -27,6 +27,7 @@ TZ=${TZ:-UTC} MEMORY_LIMIT=${MEMORY_LIMIT:-256M} UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-16M} +CLEAR_ENV=${CLEAR_ENV:-yes} OPCACHE_MEM_SIZE=${OPCACHE_MEM_SIZE:-128} LISTEN_IPV6=${LISTEN_IPV6:-true} REAL_IP_FROM=${REAL_IP_FROM:-"0.0.0.0/32"} @@ -52,6 +53,7 @@ echo ${TZ} > /etc/timezone echo "Setting PHP-FPM configuration..." sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \ -e "s/@UPLOAD_MAX_SIZE@/$UPLOAD_MAX_SIZE/g" \ + -e "s/@CLEAR_ENV@/$CLEAR_ENV/g" \ /tpls/etc/php7/php-fpm.d/www.conf > /etc/php7/php-fpm.d/www.conf echo "Setting PHP INI configuration..." diff --git a/rootfs/tpls/etc/php7/php-fpm.d/www.conf b/rootfs/tpls/etc/php7/php-fpm.d/www.conf index a9228a1..b2301d7 100644 --- a/rootfs/tpls/etc/php7/php-fpm.d/www.conf +++ b/rootfs/tpls/etc/php7/php-fpm.d/www.conf @@ -13,6 +13,7 @@ pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 6 request_terminate_timeout = 0 +clear_env = @CLEAR_ENV@ php_admin_value[post_max_size] = @UPLOAD_MAX_SIZE@ php_admin_value[upload_max_filesize] = @UPLOAD_MAX_SIZE@ From 709240e29ac28c414977a29e282fc03acc83b197 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 1 Nov 2020 20:51:26 +0100 Subject: [PATCH 259/523] Update workflow --- .github/workflows/build.yml | 57 +++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9b07a8e..88d2d15 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,32 +14,25 @@ on: paths-ignore: - '**.md' +env: + DOCKERHUB_SLUG: librenms/librenms + jobs: build: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2.3.3 + uses: actions/checkout@v2.3.2 - - name: Prepare - id: prep - run: | - DOCKER_IMAGE=librenms/librenms - VERSION=edge - if [[ $GITHUB_REF == refs/tags/* ]]; then - TAG=${GITHUB_REF#refs/tags/} - VERSION=${TAG%-*} - fi - TAGS="${DOCKER_IMAGE}:${VERSION}" - if [ "$VERSION" != "edge" ]; then - TAGS="$TAGS,${DOCKER_IMAGE}:latest" - fi - echo ::set-output name=docker_image::${DOCKER_IMAGE} - echo ::set-output name=version::${VERSION} - echo ::set-output name=tags::${TAGS} - echo ::set-output name=build_date::$(date -u +'%Y-%m-%dT%H:%M:%SZ') - echo ::set-output name=vcs_ref::${GITHUB_SHA::8} + name: Docker meta + id: docker_meta + uses: crazy-max/ghaction-docker-meta@v1 + with: + images: ${{ env.DOCKERHUB_SLUG }} + tag-edge: true + tag-match: (.*)-RC + tag-match-group: 1 - name: Set up QEMU uses: docker/setup-qemu-action@v1 @@ -51,7 +44,7 @@ jobs: - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@v1.6.0 + uses: docker/login-action@v1.3.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} @@ -62,19 +55,21 @@ jobs: context: . file: ./Dockerfile platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/386,linux/ppc64le,linux/s390x - push: ${{ github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) }} - tags: ${{ steps.prep.outputs.tags }} - build-args: | - VERSION=${{ steps.prep.outputs.version }} - BUILD_DATE=${{ steps.prep.outputs.build_date }} - VCS_REF=${{ steps.prep.outputs.vcs_ref }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.docker_meta.outputs.tags }} + labels: | + ${{ steps.docker_meta.outputs.labels }} + org.opencontainers.image.title=LibreNMS + org.opencontainers.image.description=Fully featured network monitoring system + org.opencontainers.image.vendor=CrazyMax - name: Check manifest - if: github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) + if: github.event_name != 'pull_request' run: | - docker buildx imagetools inspect ${{ steps.prep.outputs.docker_image }}:${{ steps.prep.outputs.version }} + docker buildx imagetools inspect ${{ env.DOCKERHUB_SLUG }}:${{ steps.docker_meta.outputs.version }} - - name: Check pull - if: github.event_name != 'pull_request' && (endsWith(github.ref, github.event.repository.default_branch) || startsWith(github.ref, 'refs/tags/')) + name: Inspect + if: github.event_name != 'pull_request' run: | - docker pull ${{ steps.prep.outputs.docker_image }}:${{ steps.prep.outputs.version }} + docker pull ${{ env.DOCKERHUB_SLUG }}:${{ steps.docker_meta.outputs.version }} + docker image inspect ${{ env.DOCKERHUB_SLUG }}:${{ steps.docker_meta.outputs.version }} From af6ec63e7d3d183ba4c3128a6db87f5cfade23c2 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 1 Nov 2020 20:52:34 +0100 Subject: [PATCH 260/523] Update README --- .dockerignore | 1 - README.md | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.dockerignore b/.dockerignore index 30b8025..c4e9611 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,7 +4,6 @@ /.git /.github -/.res /doc /examples /.editorconfig diff --git a/README.md b/README.md index cf297c5..5b5a5c7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

+

Latest Version From 60927b8d9abb8909d75d153095db8b37ed98874a Mon Sep 17 00:00:00 2001 From: DerTFL Date: Sun, 1 Nov 2020 22:56:47 +0300 Subject: [PATCH 261/523] Update librenms.yml (#135) Add access to rrd files from librenms container. Co-authored-by: CrazyMax <1951866+crazy-max@users.noreply.github.com> --- examples/pwd/librenms.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index 80f6756..22fd549 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -81,6 +81,7 @@ services: - rrdcached volumes: - "librenms:/data" + - "rrd-db:/data/rrd" environment: <<: *envlibrenms TZ: *TZ From 3e15edd030cc19516918d3269cd61f03c024babd Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 1 Nov 2020 21:03:30 +0100 Subject: [PATCH 262/523] Update to Traefik v2 --- examples/traefik/docker-compose.yml | 44 ++++++++++++++++------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index cc0f83b..89300be 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -2,24 +2,27 @@ version: "3.5" services: traefik: - image: traefik:1.7-alpine + image: traefik:2.3 container_name: traefik command: - - "--logLevel=INFO" - - "--defaultentrypoints=http,https" - - "--entryPoints=Name:http Address::80 Redirect.EntryPoint:https" - - "--entryPoints=Name:https Address::443 TLS" - - "--docker" - - "--docker.exposedbydefault=false" - - "--docker.domain=example.com" - - "--acme=true" - - "--acme.acmelogging=true" - - "--acme.email=webmaster@example.com" - - "--acme.storage=acme.json" - - "--acme.entryPoint=https" - - "--acme.onhostrule=true" - - "--acme.httpchallenge=true" - - "--acme.httpchallenge.entrypoint=http" + - "--global.checknewversion=false" + - "--global.sendanonymoususage=false" + - "--log=true" + - "--log.level=INFO" + - "--entrypoints.http=true" + - "--entrypoints.http.address=:80" + - "--entrypoints.http.http.redirections.entrypoint.to=https" + - "--entrypoints.http.http.redirections.entrypoint.scheme=https" + - "--entrypoints.https=true" + - "--entrypoints.https.address=:443" + - "--certificatesresolvers.letsencrypt" + - "--certificatesresolvers.letsencrypt.acme.storage=acme.json" + - "--certificatesresolvers.letsencrypt.acme.email=webmaster@example.com" + - "--certificatesresolvers.letsencrypt.acme.httpchallenge" + - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=http" + - "--providers.docker" + - "--providers.docker.watch=true" + - "--providers.docker.exposedbydefault=false" ports: - target: 80 published: 80 @@ -102,9 +105,12 @@ services: - "./librenms:/data" labels: - "traefik.enable=true" - - "traefik.backend=librenms" - - "traefik.port=8000" - - "traefik.frontend.rule=Host:librenms.example.com" + - "traefik.http.routers.librenms.entrypoints=https" + - "traefik.http.routers.librenms.rule=Host(`librenms.example.com`)" + - "traefik.http.routers.librenms.tls=true" + - "traefik.http.routers.librenms.tls.certresolver=letsencrypt" + - "traefik.http.routers.librenms.tls.domains[0].main=librenms.example.com" + - "traefik.http.services.librenms.loadbalancer.server.port=8000" env_file: - "./librenms.env" environment: From 432801e7c91f5d4c466548e01f541a24b7f98f58 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Nov 2020 20:10:37 +0000 Subject: [PATCH 263/523] Bump docker/login-action from v1.3.0 to v1.6.0 (#137) Bumps [docker/login-action](https://github.com/docker/login-action) from v1.3.0 to v1.6.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v1.3.0...adb73476b6e06caddec5db0bc1deacbec8cdd947) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 88d2d15..93a373c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@v1.3.0 + uses: docker/login-action@v1.6.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} From 70c94d3b84b26c7d1af704e027d12966b44daad1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Nov 2020 20:12:21 +0000 Subject: [PATCH 264/523] Update actions/checkout requirement to v2.3.3 (#136) Updates the requirements on [actions/checkout](https://github.com/actions/checkout) to permit the latest version. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/commits/a81bbbf8298c0fa03ea29cdc473d45769f953675) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 93a373c..3a93e1a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2.3.2 + uses: actions/checkout@v2.3.3 - name: Docker meta id: docker_meta From 7ed4bc231f73b678060c35adc118efbbdb111aa8 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 3 Nov 2020 01:15:32 +0100 Subject: [PATCH 265/523] LibreNMS 1.69 --- CHANGELOG.md | 9 +++++++++ Dockerfile | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c320a6..cc32c18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 1.69-RC1 (2020/11/03) + +* LibreNMS 1.69 +* Update to Traefik v2 +* Update PWD example (#135) +* Allow to `clear` env for FPM workers +* Use Docker meta action to handle tags and labels +* Replace `RRDCACHED_HOST` and `RRDCACHED_PORT` with `RRDCACHED_SERVER` env var + ## 1.68-RC1 (2020/09/30) * LibreNMS 1.68 diff --git a/Dockerfile b/Dockerfile index 08f868e..678f7f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -83,7 +83,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/sbin/fping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.68" \ + LIBRENMS_VERSION="1.69" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ From 11d5a3acef9a91c9a5fb266ff561dfa6976fe4f2 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 3 Nov 2020 01:19:46 +0100 Subject: [PATCH 266/523] Update CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc32c18..f28ac03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ * LibreNMS 1.69 * Update to Traefik v2 * Update PWD example (#135) -* Allow to `clear` env for FPM workers +* Allow to clear env for FPM workers * Use Docker meta action to handle tags and labels * Replace `RRDCACHED_HOST` and `RRDCACHED_PORT` with `RRDCACHED_SERVER` env var From b410794a0a86f9c72d00e90bea143699ec773285 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 3 Nov 2020 01:38:17 +0100 Subject: [PATCH 267/523] Fix build dependencies --- Dockerfile | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 678f7f5..b8e4f79 100644 --- a/Dockerfile +++ b/Dockerfile @@ -69,7 +69,7 @@ RUN apk --update --no-cache add \ util-linux \ whois \ && apk --update --no-cache add -t build-dependencies \ - gcc \ + build-base \ make \ mariadb-dev \ musl-dev \ @@ -96,7 +96,12 @@ RUN addgroup -g ${PGID} librenms \ && chmod +x /usr/bin/distro WORKDIR ${LIBRENMS_PATH} -RUN git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git . \ +RUN apk --update --no-cache add -t build-dependencies \ + build-base \ + linux-headers \ + musl-dev \ + python3-dev \ + && git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git . \ && pip3 install -r requirements.txt --upgrade \ && COMPOSER_CACHE_DIR="/tmp" composer install --no-dev --no-interaction --no-ansi \ && mkdir config.d \ @@ -107,11 +112,13 @@ RUN git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms. && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> config.php \ && git clone https://github.com/librenms-plugins/Weathermap.git ./html/plugins/Weathermap \ && chown -R nobody.nogroup ${LIBRENMS_PATH} \ + && apk del build-dependencies \ && rm -rf .git \ html/plugins/Test \ html/plugins/Weathermap/.git \ html/plugins/Weathermap/configs \ - /tmp/* + /tmp/* \ + /var/cache/apk/* COPY rootfs / RUN chmod a+x /usr/local/bin/* From ea46055dab11666ead42bf08f76e41d2fb9cb69f Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 5 Nov 2020 10:17:52 +0100 Subject: [PATCH 268/523] Do not set default value for RRDCACHED_SERVER --- CHANGELOG.md | 4 ++++ doc/docker/environment-variables.md | 2 +- rootfs/etc/cont-init.d/03-config.sh | 7 +++---- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f28ac03..2168798 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.69-RC2 (2020/11/04) + +* Do not set default value for `RRDCACHED_SERVER` + ## 1.69-RC1 (2020/11/03) * LibreNMS 1.69 diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 45552f2..218451e 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -49,4 +49,4 @@ * `LIBRENMS_WEATHERMAP_SCHEDULE`: CRON expression format (default `*/5 * * * *`) * `MEMCACHED_HOST`: Hostname / IP address of a Memcached server * `MEMCACHED_PORT`: Port of the Memcached server (default `11211`) -* `RRDCACHED_SERVER`: RRDcached server (default `rrdcached:42217`) +* `RRDCACHED_SERVER`: RRDcached server (eg. `rrdcached:42217`) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 33b90a2..f5adada 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -35,7 +35,6 @@ REAL_IP_HEADER=${REAL_IP_HEADER:-"X-Forwarded-For"} LOG_IP_VAR=${LOG_IP_VAR:-remote_addr} MEMCACHED_PORT=${MEMCACHED_PORT:-11211} -RRDCACHED_SERVER=${RRDCACHED_SERVER:-rrdcached:42217} DB_PORT=${DB_PORT:-3306} DB_NAME=${DB_NAME:-librenms} @@ -163,7 +162,7 @@ cat > ${LIBRENMS_PATH}/config.d/services.php < ${LIBRENMS_PATH}/config.d/memcached.php < ${LIBRENMS_PATH}/config.d/rrdcached.php < Date: Fri, 6 Nov 2020 16:57:39 +0000 Subject: [PATCH 269/523] Bump actions/checkout from v2.3.3 to v2.3.4 (#138) Bumps [actions/checkout](https://github.com/actions/checkout) from v2.3.3 to v2.3.4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.3.3...5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/labels.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a93e1a..f583cf0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2.3.3 + uses: actions/checkout@v2.3.4 - name: Docker meta id: docker_meta diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 08d5675..fd24afc 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2.3.3 + uses: actions/checkout@v2.3.4 - name: Run Labeler uses: crazy-max/ghaction-github-labeler@v3.1.0 From da1cffdafe2df7d75e8e385b8d440e19266632d0 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 6 Nov 2020 18:31:04 +0100 Subject: [PATCH 270/523] Use major actions version --- .github/workflows/build.yml | 4 ++-- .github/workflows/labels.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f583cf0..92ea913 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2.3.4 + uses: actions/checkout@v2 - name: Docker meta id: docker_meta @@ -44,7 +44,7 @@ jobs: - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@v1.6.0 + uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index fd24afc..29eb111 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2.3.4 + uses: actions/checkout@v2 - name: Run Labeler - uses: crazy-max/ghaction-github-labeler@v3.1.0 + uses: crazy-max/ghaction-github-labeler@v3 From 06d918843aa919495272fcde691423cd5be215c9 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 8 Nov 2020 18:10:21 +0100 Subject: [PATCH 271/523] Update examples --- examples/compose/docker-compose.yml | 18 --- examples/compose/librenms.env | 1 - examples/pwd/librenms.yml | 22 --- examples/rrdcached-server/.env | 7 + examples/rrdcached-server/docker-compose.yml | 143 +++++++++++++++++++ examples/rrdcached-server/librenms.env | 14 ++ examples/rrdcached-server/msmtpd.env | 10 ++ examples/traefik/docker-compose.yml | 18 --- examples/traefik/librenms.env | 1 - 9 files changed, 174 insertions(+), 60 deletions(-) create mode 100644 examples/rrdcached-server/.env create mode 100644 examples/rrdcached-server/docker-compose.yml create mode 100644 examples/rrdcached-server/librenms.env create mode 100644 examples/rrdcached-server/msmtpd.env diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 9018466..1211b80 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -34,23 +34,6 @@ services: - "TZ=${TZ}" restart: always - rrdcached: - image: crazymax/rrdcached - container_name: librenms_rrdcached - volumes: - - "./librenms/rrd:/data/db" - - "./rrd-journal:/data/journal" - environment: - - "TZ=${TZ}" - - "PUID=${PUID}" - - "PGID=${PGID}" - - "LOG_LEVEL=LOG_INFO" - - "WRITE_TIMEOUT=1800" - - "WRITE_JITTER=1800" - - "WRITE_THREADS=4" - - "FLUSH_DEAD_DATA_INTERVAL=3600" - restart: always - msmtpd: image: crazymax/msmtpd:latest container_name: librenms_msmtpd @@ -69,7 +52,6 @@ services: depends_on: - db - memcached - - rrdcached - msmtpd volumes: - "./librenms:/data" diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index 9c934af..a1af74f 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -8,7 +8,6 @@ LOG_IP_VAR=remote_addr LIBRENMS_SNMP_COMMUNITY=librenmsdocker MEMCACHED_HOST=memcached MEMCACHED_PORT=11211 -RRDCACHED_SERVER=rrdcached:42217 LIBRENMS_WEATHERMAP=false LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index 22fd549..d229ace 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -18,7 +18,6 @@ x-envlibrenms: &envlibrenms LIBRENMS_SNMP_COMMUNITY: "librenmsdocker" MEMCACHED_HOST: "memcached" MEMCACHED_PORT: "11211" - RRDCACHED_SERVER: "rrdcached:42217" LIBRENMS_WEATHERMAP: "true" LIBRENMS_WEATHERMAP_SCHEDULE: "*/5 * * * *" @@ -53,23 +52,6 @@ services: TZ: *TZ restart: always - rrdcached: - image: crazymax/rrdcached - volumes: - - "librenms:/data" - - "rrd-db:/data/db" - - "rrd-journal:/data/journal" - environment: - TZ: *TZ - PUID: *PUID - PGID: *PGID - LOG_LEVEL: "LOG_INFO" - WRITE_TIMEOUT: "1800" - WRITE_JITTER: "1800" - WRITE_THREADS: "4" - FLUSH_DEAD_DATA_INTERVAL: "3600" - restart: always - librenms: image: librenms/librenms:edge hostname: librenms @@ -78,10 +60,8 @@ services: depends_on: - db - memcached - - rrdcached volumes: - "librenms:/data" - - "rrd-db:/data/rrd" environment: <<: *envlibrenms TZ: *TZ @@ -166,6 +146,4 @@ services: volumes: db: - rrd-db: - rrd-journal: librenms: diff --git a/examples/rrdcached-server/.env b/examples/rrdcached-server/.env new file mode 100644 index 0000000..d6c0aed --- /dev/null +++ b/examples/rrdcached-server/.env @@ -0,0 +1,7 @@ +TZ=Europe/Paris +PUID=1000 +PGID=1000 + +MYSQL_DATABASE=librenms +MYSQL_USER=librenms +MYSQL_PASSWORD=asupersecretpassword diff --git a/examples/rrdcached-server/docker-compose.yml b/examples/rrdcached-server/docker-compose.yml new file mode 100644 index 0000000..2d63ab2 --- /dev/null +++ b/examples/rrdcached-server/docker-compose.yml @@ -0,0 +1,143 @@ +version: "3.5" + +services: + db: + image: mariadb:10.4 + container_name: librenms_db + command: + - "mysqld" + - "--innodb-file-per-table=1" + - "--lower-case-table-names=0" + - "--character-set-server=utf8" + - "--collation-server=utf8_unicode_ci" + volumes: + - "./db:/var/lib/mysql" + environment: + - "TZ=${TZ}" + - "MYSQL_ALLOW_EMPTY_PASSWORD=yes" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + restart: always + + memcached: + image: memcached:alpine + container_name: librenms_memcached + environment: + - "TZ=${TZ}" + restart: always + + redis: + image: redis:5.0-alpine + container_name: librenms_redis + environment: + - "TZ=${TZ}" + restart: always + + rrdcached: + image: crazymax/rrdcached + container_name: librenms_rrdcached + volumes: + - "./rrd/db:/data/db" + - "./rrd/journal:/data/journal" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "LOG_LEVEL=LOG_INFO" + - "WRITE_TIMEOUT=1800" + - "WRITE_JITTER=1800" + - "WRITE_THREADS=4" + - "FLUSH_DEAD_DATA_INTERVAL=3600" + restart: always + + msmtpd: + image: crazymax/msmtpd:latest + container_name: librenms_msmtpd + env_file: + - "./msmtpd.env" + restart: always + + librenms: + image: librenms/librenms:latest + container_name: librenms + hostname: librenms + ports: + - target: 8000 + published: 8000 + protocol: tcp + depends_on: + - db + - memcached + - rrdcached + - msmtpd + volumes: + - "./librenms:/data" + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + restart: always + + dispatcher: + image: librenms/librenms:latest + container_name: librenms_dispatcher + hostname: librenms-dispatcher + depends_on: + - librenms + - redis + volumes: + - "./librenms:/data" + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "DISPATCHER_NODE_ID=dispatcher1" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" + - "SIDECAR_DISPATCHER=1" + restart: always + + syslogng: + image: librenms/librenms:latest + container_name: librenms_syslogng + hostname: librenms-syslogng + depends_on: + - librenms + ports: + - target: 514 + published: 514 + protocol: tcp + - target: 514 + published: 514 + protocol: udp + volumes: + - "./librenms:/data" + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "SIDECAR_SYSLOGNG=1" + restart: always diff --git a/examples/rrdcached-server/librenms.env b/examples/rrdcached-server/librenms.env new file mode 100644 index 0000000..9c934af --- /dev/null +++ b/examples/rrdcached-server/librenms.env @@ -0,0 +1,14 @@ +MEMORY_LIMIT=256M +UPLOAD_MAX_SIZE=16M +OPCACHE_MEM_SIZE=128 +REAL_IP_FROM=0.0.0.0/32 +REAL_IP_HEADER=X-Forwarded-For +LOG_IP_VAR=remote_addr + +LIBRENMS_SNMP_COMMUNITY=librenmsdocker +MEMCACHED_HOST=memcached +MEMCACHED_PORT=11211 +RRDCACHED_SERVER=rrdcached:42217 + +LIBRENMS_WEATHERMAP=false +LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/examples/rrdcached-server/msmtpd.env b/examples/rrdcached-server/msmtpd.env new file mode 100644 index 0000000..170bec9 --- /dev/null +++ b/examples/rrdcached-server/msmtpd.env @@ -0,0 +1,10 @@ +# https://github.com/crazy-max/docker-msmtpd +SMTP_HOST=smtp.gmail.com +SMTP_PORT=587 +SMTP_TLS=on +SMTP_STARTTLS=on +SMTP_TLS_CHECKCERT=on +SMTP_AUTH=on +SMTP_USER=foo +SMTP_PASSWORD=bar +SMTP_FROM=foo@gmail.com diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 89300be..7836152 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -68,23 +68,6 @@ services: - "TZ=${TZ}" restart: always - rrdcached: - image: crazymax/rrdcached - container_name: librenms_rrdcached - volumes: - - "./librenms/rrd:/data/db" - - "./rrd-journal:/data/journal" - environment: - - "TZ=${TZ}" - - "PUID=${PUID}" - - "PGID=${PGID}" - - "LOG_LEVEL=LOG_INFO" - - "WRITE_TIMEOUT=1800" - - "WRITE_JITTER=1800" - - "WRITE_THREADS=4" - - "FLUSH_DEAD_DATA_INTERVAL=3600" - restart: always - msmtpd: image: crazymax/msmtpd:latest container_name: librenms_msmtpd @@ -99,7 +82,6 @@ services: depends_on: - db - memcached - - rrdcached - msmtpd volumes: - "./librenms:/data" diff --git a/examples/traefik/librenms.env b/examples/traefik/librenms.env index 723ce6d..364b7d7 100644 --- a/examples/traefik/librenms.env +++ b/examples/traefik/librenms.env @@ -8,7 +8,6 @@ LOG_IP_VAR=http_x_forwarded_for LIBRENMS_SNMP_COMMUNITY=librenmsdocker MEMCACHED_HOST=memcached MEMCACHED_PORT=11211 -RRDCACHED_SERVER=rrdcached:42217 LIBRENMS_WEATHERMAP=false LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * From d933e76783f913eb5a04f8abc202a9ab0833d856 Mon Sep 17 00:00:00 2001 From: Hayden Date: Tue, 17 Nov 2020 13:38:26 -0800 Subject: [PATCH 272/523] Add alert templates (#142) --- README.md | 2 ++ doc/notes/alert-templates.md | 5 +++++ rootfs/etc/cont-init.d/03-config.sh | 20 ++++++++++++++++++-- 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 doc/notes/alert-templates.md diff --git a/README.md b/README.md index 5b5a5c7..0d0d73f 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng) * Built-in LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) * Ability to add custom Monitoring plugins (Nagios) +* Ability to add custom alert templates * OPCache enabled to store precompiled script bytecode in shared memory * [s6-overlay](https://github.com/just-containers/s6-overlay/) as process supervisor * [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates (see [this template](examples/traefik)) @@ -68,6 +69,7 @@ Image: librenms/librenms:latest * [Dispatcher service](doc/notes/dispatcher-service.md) * [Syslog-ng](doc/notes/syslog-ng.md) * [Additional Monitoring plugins (Nagios)](doc/notes/additional-monitoring-plugins.md) + * [Custom alert templates](doc/notes/alert-templates.md) * [Upgrade](doc/upgrade.md) ## How can I help? diff --git a/doc/notes/alert-templates.md b/doc/notes/alert-templates.md new file mode 100644 index 0000000..58023a7 --- /dev/null +++ b/doc/notes/alert-templates.md @@ -0,0 +1,5 @@ +## Alert templates + +You can add [Laravel alert templates](https://docs.librenms.org/Alerting/Templates/#base-templates) in `/data/alert-templates/`. + +> :warning: Container has to be restarted to propagate changes diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index f5adada..90378b3 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -83,7 +83,7 @@ sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.c # Init files and folders echo "Initializing LibreNMS files / folders..." -mkdir -p /data/config /data/logs /data/monitoring-plugins /data/rrd /data/weathermap +mkdir -p /data/config /data/logs /data/monitoring-plugins /data/rrd /data/weathermap /data/alert-templates ln -sf /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/configs touch /data/logs/librenms.log rm -rf ${LIBRENMS_PATH}/logs @@ -189,7 +189,7 @@ EOL # Fix perms echo "Fixing perms..." -chown librenms. /data/config /data/monitoring-plugins /data/rrd /data/weathermap +chown librenms. /data/config /data/monitoring-plugins /data/rrd /data/weathermap /data/alert-templates chown -R librenms. /data/logs ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage chmod ug+rw /data/logs /data/rrd ${LIBRENMS_PATH}/bootstrap/cache ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/storage/framework/* @@ -212,3 +212,19 @@ for mon_plugin in ${mon_plugins}; do echo " Adding ${mon_plugin} Monitoring plugin" ln -sf /data/monitoring-plugins/${mon_plugin} /usr/lib/monitoring-plugins/${mon_plugin} done + +# Check alert templates +echo "Checking alert templates..." +templates=$(ls -l /data/alert-templates | egrep '^-' | awk '{print $9}') +for template in ${templates}; do + if [ -f "${LIBRENMS_PATH}/resources/views/alerts/templates/${template}" ]; then + echo " WARNING: Default alert template ${template} cannot be overriden. Skipping..." + continue + fi + if [[ ${template} != *.php ]]; then + echo " WARNING: Alert template filename ${template} invalid. It must end with '.php'. Skipping..." + continue + fi + echo " Adding ${template} alert template" + ln -sf /data/alert-templates/${template} ${LIBRENMS_PATH}/resources/views/alerts/templates/${template} +done From 0c3e84d931f3c7d8f88674683bafafd702bb031d Mon Sep 17 00:00:00 2001 From: Hayden Date: Wed, 18 Nov 2020 18:38:54 -0800 Subject: [PATCH 273/523] add redis sentinel support (#141) * add redis sentinel support * update redis requirement warning to include REDIS_SENTINEL * update docs --- doc/docker/environment-variables.md | 2 ++ rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 28 +++++++++++++++------ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 218451e..88221c0 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -22,6 +22,8 @@ * `DISPATCHER_NODE_ID`: Unique node ID for your dispatcher service * `DISPATCHER_ARGS`: Additional args to pass to the [dispatcher service](https://github.com/librenms/librenms/blob/master/librenms-service.py) * `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_PORT`: Redis port (default `6379`) * `REDIS_PASSWORD`: Redis password * `REDIS_DB`: Redis database (default `0`) diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index ef44d62..b548311 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -33,6 +33,8 @@ SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} #REDIS_HOST=${REDIS_HOST:-localhost} REDIS_PORT=${REDIS_PORT:-6379} +#REDIS_SENTINEL=${REDIS_SENTINEL:-localhost} +REDIS_SENTINEL_SERVICE=${REDIS_SENTINEL_SERVICE:-librenms} file_env 'REDIS_PASSWORD' REDIS_DB=${REDIS_DB:-0} @@ -85,18 +87,30 @@ if [ -n "$DISPATCHER_NODE_ID" ]; then sed -i "s|^NODE_ID=.*|NODE_ID=$DISPATCHER_NODE_ID|g" "${LIBRENMS_PATH}/.env" fi -# Redis -if [ -z "$REDIS_HOST" ]; then - >&2 echo "ERROR: REDIS_HOST must be defined" - exit 1 -fi -echo "Setting Redis" -cat >> ${LIBRENMS_PATH}/.env <> ${LIBRENMS_PATH}/.env <&2 echo "ERROR: REDIS_HOST or REDIS_SENTINEL must be defined" + exit 1 + fi + echo "Setting Redis" + cat >> ${LIBRENMS_PATH}/.env < Date: Thu, 19 Nov 2020 03:39:37 +0100 Subject: [PATCH 274/523] Temp fix for tzdata package (#143) --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b8e4f79..8a2fea5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -65,9 +65,11 @@ RUN apk --update --no-cache add \ su-exec \ syslog-ng=3.27.1-r0 \ ttf-dejavu \ - tzdata \ util-linux \ whois \ + # FIXME: Remove when tzdata package updated on Alpine stable to 2020d-r0 (https://github.com/librenms/docker/issues/143) + && apk --update --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/main add \ + tzdata \ && apk --update --no-cache add -t build-dependencies \ build-base \ make \ From ea17037275b510a75c7e1dc5b7541c7bea7d703e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 22 Nov 2020 18:24:07 +0100 Subject: [PATCH 275/523] Fix tzdata issue with Alpine (#143) --- CHANGELOG.md | 4 ++++ Dockerfile | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2168798..6666add 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.69-RC3 (2020/11/22) + +* Fix tzdata issue with Alpine (#143) + ## 1.69-RC2 (2020/11/04) * Do not set default value for `RRDCACHED_SERVER` diff --git a/Dockerfile b/Dockerfile index 8a2fea5..7f9aaec 100644 --- a/Dockerfile +++ b/Dockerfile @@ -65,11 +65,9 @@ RUN apk --update --no-cache add \ su-exec \ syslog-ng=3.27.1-r0 \ ttf-dejavu \ + tzdata \ util-linux \ whois \ - # FIXME: Remove when tzdata package updated on Alpine stable to 2020d-r0 (https://github.com/librenms/docker/issues/143) - && apk --update --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/main add \ - tzdata \ && apk --update --no-cache add -t build-dependencies \ build-base \ make \ From 77f4c6104a26539bcd25137c950b0092c2f0a01e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 22 Nov 2020 18:25:25 +0100 Subject: [PATCH 276/523] Update CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6666add..34e3df4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ ## 1.69-RC3 (2020/11/22) * Fix tzdata issue with Alpine (#143) +* Add alert templates (#142) +* Add redis sentinel support (#141) ## 1.69-RC2 (2020/11/04) From 1d6627381cc4b55a0e401ab5aa8fa3fac194556c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 25 Nov 2020 13:27:23 +0100 Subject: [PATCH 277/523] Add NET_ADMIN capability and fix fping6 (#140) --- Dockerfile | 5 ++++- examples/compose/docker-compose.yml | 9 +++++++++ examples/pwd/librenms.yml | 12 ++++++++++++ examples/rrdcached-server/docker-compose.yml | 9 +++++++++ rootfs/etc/cont-init.d/03-config.sh | 2 -- 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7f9aaec..3ba0079 100644 --- a/Dockerfile +++ b/Dockerfile @@ -79,8 +79,11 @@ RUN apk --update --no-cache add \ && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ && apk del build-dependencies \ && rm -rf /var/cache/apk/* /var/www/* /tmp/* \ + && echo "/usr/sbin/fping -6 \$@" > /usr/sbin/fping6 \ + && chmod +x /usr/sbin/fping6 \ && setcap cap_net_raw+ep /usr/bin/nmap \ - && setcap cap_net_raw+ep /usr/sbin/fping + && setcap cap_net_raw+ep /usr/sbin/fping \ + && setcap cap_net_raw+ep /usr/sbin/fping6 ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ LIBRENMS_VERSION="1.69" \ diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 1211b80..d117070 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -45,6 +45,9 @@ services: image: librenms/librenms:latest container_name: librenms hostname: librenms + cap_add: + - NET_ADMIN + - NET_RAW ports: - target: 8000 published: 8000 @@ -72,6 +75,9 @@ services: image: librenms/librenms:latest container_name: librenms_dispatcher hostname: librenms-dispatcher + cap_add: + - NET_ADMIN + - NET_RAW depends_on: - librenms - redis @@ -99,6 +105,9 @@ services: image: librenms/librenms:latest container_name: librenms_syslogng hostname: librenms-syslogng + cap_add: + - NET_ADMIN + - NET_RAW depends_on: - librenms ports: diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index d229ace..937ae05 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -55,6 +55,9 @@ services: librenms: image: librenms/librenms:edge hostname: librenms + cap_add: + - NET_ADMIN + - NET_RAW ports: - "8000:8000" depends_on: @@ -77,6 +80,9 @@ services: dispatcher: image: librenms/librenms:edge hostname: librenms-dispatcher-1234 + cap_add: + - NET_ADMIN + - NET_RAW depends_on: - librenms - redis @@ -102,6 +108,9 @@ services: dispatcher2: image: librenms/librenms:edge hostname: librenms-dispatcher-5678 + cap_add: + - NET_ADMIN + - NET_RAW depends_on: - librenms - redis @@ -127,6 +136,9 @@ services: syslogng: image: librenms/librenms:edge hostname: librenms-syslogng + cap_add: + - NET_ADMIN + - NET_RAW depends_on: - librenms volumes: diff --git a/examples/rrdcached-server/docker-compose.yml b/examples/rrdcached-server/docker-compose.yml index 2d63ab2..d817f34 100644 --- a/examples/rrdcached-server/docker-compose.yml +++ b/examples/rrdcached-server/docker-compose.yml @@ -62,6 +62,9 @@ services: image: librenms/librenms:latest container_name: librenms hostname: librenms + cap_add: + - NET_ADMIN + - NET_RAW ports: - target: 8000 published: 8000 @@ -90,6 +93,9 @@ services: image: librenms/librenms:latest container_name: librenms_dispatcher hostname: librenms-dispatcher + cap_add: + - NET_ADMIN + - NET_RAW depends_on: - librenms - redis @@ -117,6 +123,9 @@ services: image: librenms/librenms:latest container_name: librenms_syslogng hostname: librenms-syslogng + cap_add: + - NET_ADMIN + - NET_RAW depends_on: - librenms ports: diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 90378b3..ef2bbc2 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -134,8 +134,6 @@ cat > ${LIBRENMS_PATH}/config.d/user.php < /usr/sbin/fping6 -chmod +x /usr/sbin/fping6 cat > ${LIBRENMS_PATH}/config.d/fping.php < Date: Wed, 2 Dec 2020 22:20:51 +0100 Subject: [PATCH 278/523] LibreNMS 1.70.1 --- CHANGELOG.md | 5 +++++ Dockerfile | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34e3df4..2d87efc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 1.70.1-RC1 (2020/12/02) + +* LibreNMS 1.70.1 +* Add NET_ADMIN capability and fix fping6 (#140) + ## 1.69-RC3 (2020/11/22) * Fix tzdata issue with Alpine (#143) diff --git a/Dockerfile b/Dockerfile index 3ba0079..8e33739 100644 --- a/Dockerfile +++ b/Dockerfile @@ -86,7 +86,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/sbin/fping6 ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.69" \ + LIBRENMS_VERSION="1.70.1" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ From aff5d43251913914b7d426646fce76e91b2f3329 Mon Sep 17 00:00:00 2001 From: Richard Kojedzinszky Date: Wed, 9 Dec 2020 09:51:11 +0100 Subject: [PATCH 279/523] Fix dispatcher container redis setup (#150) --- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index b548311..dcd3d9a 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -88,7 +88,7 @@ if [ -n "$DISPATCHER_NODE_ID" ]; then fi # Redis Sentinel -if [ -n "REDIS_SENTINEL" ]; then +if [ -n "$REDIS_SENTINEL" ]; then echo "Setting Redis Sentinel" cat >> ${LIBRENMS_PATH}/.env < Date: Thu, 10 Dec 2020 02:52:56 +0100 Subject: [PATCH 280/523] Fix Redis for dispatcher --- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 24 ++++++++++----------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index dcd3d9a..94a4b02 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -87,25 +87,23 @@ if [ -n "$DISPATCHER_NODE_ID" ]; then sed -i "s|^NODE_ID=.*|NODE_ID=$DISPATCHER_NODE_ID|g" "${LIBRENMS_PATH}/.env" fi -# Redis Sentinel -if [ -n "$REDIS_SENTINEL" ]; then - echo "Setting Redis Sentinel" +# Redis +if [ -z "$REDIS_HOST" ] && [ -z "$REDIS_SENTINEL" ]; then + >&2 echo "ERROR: REDIS_HOST or REDIS_SENTINEL must be defined" + exit 1 +elif [ -n "$REDIS_HOST" ]; then +echo "Setting Redis" cat >> ${LIBRENMS_PATH}/.env <&2 echo "ERROR: REDIS_HOST or REDIS_SENTINEL must be defined" - exit 1 - fi - echo "Setting Redis" +elif [ -n "$REDIS_SENTINEL" ]; then +echo "Setting Redis Sentinel" cat >> ${LIBRENMS_PATH}/.env < Date: Thu, 10 Dec 2020 02:53:59 +0100 Subject: [PATCH 281/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d87efc..44790c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.70.1-RC2 (2020/12/10) + +* Fix Redis for dispatcher + ## 1.70.1-RC1 (2020/12/02) * LibreNMS 1.70.1 From 8301f68750fe98bb57094b071714985fc38d09bf Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 11 Dec 2020 14:45:38 +0100 Subject: [PATCH 282/523] Add iputils and fix perms (#131) --- Dockerfile | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8e33739..6685487 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,6 +20,7 @@ RUN apk --update --no-cache add \ graphviz \ imagemagick \ ipmitool \ + iputils \ mariadb-client \ monitoring-plugins \ mtr \ @@ -81,9 +82,15 @@ RUN apk --update --no-cache add \ && rm -rf /var/cache/apk/* /var/www/* /tmp/* \ && echo "/usr/sbin/fping -6 \$@" > /usr/sbin/fping6 \ && chmod +x /usr/sbin/fping6 \ + && chmod u+s,g+s \ + /bin/ping \ + /bin/ping6 \ + /usr/lib/monitoring-plugins/check_icmp \ && setcap cap_net_raw+ep /usr/bin/nmap \ && setcap cap_net_raw+ep /usr/sbin/fping \ - && setcap cap_net_raw+ep /usr/sbin/fping6 + && setcap cap_net_raw+ep /usr/sbin/fping6 \ + && setcap cap_net_raw+ep /usr/lib/monitoring-plugins/check_icmp \ + && setcap cap_net_raw+ep /usr/lib/monitoring-plugins/check_ping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ LIBRENMS_VERSION="1.70.1" \ From 8b1707a946897a771b73094626e9567268ef6fa4 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 6 Jan 2021 18:59:15 +0100 Subject: [PATCH 283/523] 2021 --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index d24d55a..4870c39 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018-2020 CrazyMax +Copyright (c) 2018-2021 CrazyMax Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 263c47e895850e6c7a4cafedd73fadd43b870711 Mon Sep 17 00:00:00 2001 From: Amund Meling Date: Tue, 2 Feb 2021 09:54:09 +0100 Subject: [PATCH 284/523] Redis - Add scheme to allow TLS (#159) --- doc/docker/environment-variables.md | 1 + rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 88221c0..78a15fe 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -24,6 +24,7 @@ * `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`) diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index 94a4b02..d775ca5 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -32,6 +32,7 @@ SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} #DISPATCHER_NODE_ID=${DISPATCHER_NODE_ID:-dispatcher1} #REDIS_HOST=${REDIS_HOST:-localhost} +#REDIS_SCHEME=${REDIS_SCHEME:-tcp} REDIS_PORT=${REDIS_PORT:-6379} #REDIS_SENTINEL=${REDIS_SENTINEL:-localhost} REDIS_SENTINEL_SERVICE=${REDIS_SENTINEL_SERVICE:-librenms} @@ -95,6 +96,7 @@ elif [ -n "$REDIS_HOST" ]; then echo "Setting Redis" cat >> ${LIBRENMS_PATH}/.env < Date: Tue, 2 Feb 2021 10:15:37 +0100 Subject: [PATCH 285/523] Update labels --- .github/labels.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/labels.yml b/.github/labels.yml index 12b4078..b9ebdfb 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -43,10 +43,6 @@ name: ":pray: help wanted" color: "4caf50" description: "" -- # hold - name: ":hand: hold" - color: "24292f" - description: "" - # invalid name: ":no_entry_sign: invalid" color: "e6e6e6" From fbe6cf70874f60628fe651e7c95e093577f5011a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 2 Feb 2021 10:16:13 +0100 Subject: [PATCH 286/523] Do not fail on permission issue --- rootfs/etc/cont-init.d/00-fix-logs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/00-fix-logs.sh b/rootfs/etc/cont-init.d/00-fix-logs.sh index 51a558c..6d58949 100644 --- a/rootfs/etc/cont-init.d/00-fix-logs.sh +++ b/rootfs/etc/cont-init.d/00-fix-logs.sh @@ -1,4 +1,4 @@ #!/usr/bin/with-contenv sh # Fix access rights to stdout and stderr -chown ${PUID}:${PGID} /proc/self/fd/1 /proc/self/fd/2 +chown ${PUID}:${PGID} /proc/self/fd/1 /proc/self/fd/2 || true From 6cf225069d4371191e82f96bed12b221d2797b43 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 2 Feb 2021 10:24:49 +0100 Subject: [PATCH 287/523] LibreNMS 21.1.0 --- Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6685487..94b7005 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,6 @@ FROM --platform=${TARGETPLATFORM:-linux/amd64} crazymax/alpine-s6:3.12 - ARG TARGETPLATFORM ARG BUILDPLATFORM -RUN printf "I am running on ${BUILDPLATFORM:-linux/amd64}, building for ${TARGETPLATFORM:-linux/amd64}\n$(uname -a)\n" LABEL maintainer="CrazyMax" @@ -93,7 +91,7 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/lib/monitoring-plugins/check_ping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="1.70.1" \ + LIBRENMS_VERSION="21.1.0" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ From daa7f37f9c3ad834f1be7b5da4ce89b6a1331785 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 2 Feb 2021 10:31:26 +0100 Subject: [PATCH 288/523] Switch to buildx bake --- .github/workflows/build.yml | 23 ++++++++++------------- README.md | 18 +++++++++++++++++- docker-bake.hcl | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 14 deletions(-) create mode 100644 docker-bake.hcl diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 92ea913..c4ed85f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,16 +31,18 @@ jobs: with: images: ${{ env.DOCKERHUB_SLUG }} tag-edge: true - tag-match: (.*)-RC + tag-match: (.*)-r tag-match-group: 1 + label-custom: | + org.opencontainers.image.title=LibreNMS + org.opencontainers.image.description=Fully featured network monitoring system + org.opencontainers.image.vendor=CrazyMax - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - with: - buildkitd-flags: "--debug" - name: Login to DockerHub if: github.event_name != 'pull_request' @@ -50,18 +52,13 @@ jobs: password: ${{ secrets.DOCKER_PASSWORD }} - name: Build - uses: docker/build-push-action@v2 + uses: docker/bake-action@v1 with: - context: . - file: ./Dockerfile - platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/386,linux/ppc64le,linux/s390x + files: | + ./docker-bake.hcl + ${{ steps.docker_meta.outputs.bake-file }} + targets: image-all push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.docker_meta.outputs.tags }} - labels: | - ${{ steps.docker_meta.outputs.labels }} - org.opencontainers.image.title=LibreNMS - org.opencontainers.image.description=Fully featured network monitoring system - org.opencontainers.image.vendor=CrazyMax - name: Check manifest if: github.event_name != 'pull_request' diff --git a/README.md b/README.md index 0d0d73f..fdf0734 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,19 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * [msmtpd SMTP relay](https://github.com/crazy-max/docker-msmtpd) image to send emails * [MariaDB](https://github.com/docker-library/mariadb) image as database instance +## Build locally + +```shell +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 +``` + ## Multi-platform image Following platforms for this image are available: @@ -74,7 +87,10 @@ Image: librenms/librenms:latest ## How can I help? -All kinds of contributions are welcome :raised_hands:! The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon: You can also support this project by [**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max) :clap: or by making a [Paypal donation](https://www.paypal.me/crazyws) to ensure this journey continues indefinitely! :rocket: +All kinds of contributions are welcome :raised_hands:! The most basic way to show your support is to star +:star2: the project, or to raise issues :speech_balloon: You can also support this project by +[**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max) :clap: or by making a +[Paypal donation](https://www.paypal.me/crazyws) to ensure this journey continues indefinitely! :rocket: Thanks again for your support, it is much appreciated! :pray: diff --git a/docker-bake.hcl b/docker-bake.hcl new file mode 100644 index 0000000..d820568 --- /dev/null +++ b/docker-bake.hcl @@ -0,0 +1,35 @@ +variable "DEFAULT_TAG" { + default = "librenms:local" +} + +// Special target: https://github.com/crazy-max/ghaction-docker-meta#bake-definition +target "ghaction-docker-meta" { + tags = ["${DEFAULT_TAG}"] +} + +// Default target if none specified +group "default" { + targets = ["image-local"] +} + +target "image" { + inherits = ["ghaction-docker-meta"] +} + +target "image-local" { + inherits = ["image"] + output = ["type=docker"] +} + +target "image-all" { + inherits = ["image"] + platforms = [ + "linux/amd64", + "linux/arm/v6", + "linux/arm/v7", + "linux/arm64", + "linux/386", + "linux/ppc64le", + "linux/s390x" + ] +} From 85ef301e40a6b89fdf5c454edadda8c4927f28bd Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 2 Feb 2021 10:50:10 +0100 Subject: [PATCH 289/523] Update CHANGELOG --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44790c5..35f0010 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 21.1.0-r0 (2021/02/02) + +* LibreNMS 21.1.0 +* Switch to buildx bake +* Do not fail on permission issue +* Redis - Add scheme to allow TLS (#159) +* Add iputils and fix perms (#131) + ## 1.70.1-RC2 (2020/12/10) * Fix Redis for dispatcher From 03e71592a0593113f45e7b678b34162c785dae2d Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Mon, 15 Feb 2021 16:08:40 +0100 Subject: [PATCH 290/523] Move back to s6-overlay 2.1.0.2 (#164) (#165) Co-authored-by: CrazyMax --- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 35f0010..a2e1069 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.1.0-r1 (2021/02/13) + +* Move back to s6-overlay 2.1.0.2 (#164) + ## 21.1.0-r0 (2021/02/02) * LibreNMS 21.1.0 diff --git a/Dockerfile b/Dockerfile index 94b7005..0d36352 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=${TARGETPLATFORM:-linux/amd64} crazymax/alpine-s6:3.12 +FROM --platform=${TARGETPLATFORM:-linux/amd64} crazymax/alpine-s6:3.12-2.1.0.2 ARG TARGETPLATFORM ARG BUILDPLATFORM From ab027d7e853a702e49dfa09c42291ea6298a32ab Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 15 Feb 2021 16:26:29 +0100 Subject: [PATCH 291/523] No need to specify rrdtool_version (#166) --- rootfs/etc/cont-init.d/03-config.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index ef2bbc2..3988bd9 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -174,7 +174,6 @@ if [ -n "${RRDCACHED_SERVER}" ]; then cat > ${LIBRENMS_PATH}/config.d/rrdcached.php < Date: Mon, 15 Feb 2021 16:50:03 +0100 Subject: [PATCH 292/523] Update CHANGELOG --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2e1069..2ee5fc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ ## 21.1.0-r1 (2021/02/13) -* Move back to s6-overlay 2.1.0.2 (#164) +* Downgrade to `s6-overlay` 2.1.0.2 (#164) +* No need to specify `rrdtool_version` (#166) ## 21.1.0-r0 (2021/02/02) From a271596fc1aa8745e85ca81363b1489b8a8735c2 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 16 Feb 2021 13:43:57 +0100 Subject: [PATCH 293/523] Need to specify rrdtool_version (librenms/docker@ab027d7) --- CHANGELOG.md | 4 ++++ rootfs/etc/cont-init.d/03-config.sh | 1 + 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ee5fc9..a272143 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.1.0-r2 (2021/02/16) + +* Need to specify `rrdtool_version` (librenms/docker@ab027d7) + ## 21.1.0-r1 (2021/02/13) * Downgrade to `s6-overlay` 2.1.0.2 (#164) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 3988bd9..795655b 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -174,6 +174,7 @@ if [ -n "${RRDCACHED_SERVER}" ]; then cat > ${LIBRENMS_PATH}/config.d/rrdcached.php < Date: Tue, 16 Feb 2021 20:15:40 +0100 Subject: [PATCH 294/523] Alpine Linux 3.13 (#162) Co-authored-by: CrazyMax <1951866+crazy-max@users.noreply.github.com> --- Dockerfile | 4 ++-- rootfs/etc/syslog-ng/syslog-ng.conf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0d36352..2eae536 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=${TARGETPLATFORM:-linux/amd64} crazymax/alpine-s6:3.12-2.1.0.2 +FROM --platform=${TARGETPLATFORM:-linux/amd64} crazymax/alpine-s6:3.13-2.2.0.3 ARG TARGETPLATFORM ARG BUILDPLATFORM @@ -62,7 +62,7 @@ RUN apk --update --no-cache add \ runit \ shadow \ su-exec \ - syslog-ng=3.27.1-r0 \ + syslog-ng=3.30.1-r0 \ ttf-dejavu \ tzdata \ util-linux \ diff --git a/rootfs/etc/syslog-ng/syslog-ng.conf b/rootfs/etc/syslog-ng/syslog-ng.conf index 1c7c003..b112d16 100644 --- a/rootfs/etc/syslog-ng/syslog-ng.conf +++ b/rootfs/etc/syslog-ng/syslog-ng.conf @@ -1,4 +1,4 @@ -@version:3.27 +@version:3.30 options { chain_hostnames(off); From baca53ed29e78dc10608c1b66475dc19b33184a0 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Tue, 16 Feb 2021 21:55:30 +0100 Subject: [PATCH 295/523] LibreNMS 21.2.0 (#167) Co-authored-by: CrazyMax --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2eae536..1e596a7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,5 @@ +ARG LIBRENMS_VERSION="21.2.0" + FROM --platform=${TARGETPLATFORM:-linux/amd64} crazymax/alpine-s6:3.13-2.2.0.3 ARG TARGETPLATFORM ARG BUILDPLATFORM @@ -91,7 +93,6 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/lib/monitoring-plugins/check_ping ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ - LIBRENMS_VERSION="21.1.0" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ TZ="UTC" \ @@ -104,6 +105,7 @@ RUN addgroup -g ${PGID} librenms \ && chmod +x /usr/bin/distro WORKDIR ${LIBRENMS_PATH} +ARG LIBRENMS_VERSION RUN apk --update --no-cache add -t build-dependencies \ build-base \ linux-headers \ From 3efa499036241425317cfa173bec4634666b4071 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 16 Feb 2021 22:44:43 +0100 Subject: [PATCH 296/523] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a272143..7477ef9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 21.2.0-r0 (2021/02/16) + +* LibreNMS 21.2.0 (#167) +* `s6-overlay` 2.2.0.3 (#162) +* Alpine Linux 3.13 (#162) + ## 21.1.0-r2 (2021/02/16) * Need to specify `rrdtool_version` (librenms/docker@ab027d7) From cddc5e906a3e7f8a446829ad0a4d560739106060 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Thu, 4 Mar 2021 23:44:23 +0100 Subject: [PATCH 297/523] Switch to yasu (#170) Co-authored-by: CrazyMax --- CHANGELOG.md | 4 ++++ Dockerfile | 9 +++------ rootfs/usr/local/bin/artisan | 2 +- rootfs/usr/local/bin/lnms | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) mode change 100644 => 100755 rootfs/usr/local/bin/artisan mode change 100644 => 100755 rootfs/usr/local/bin/lnms diff --git a/CHANGELOG.md b/CHANGELOG.md index 7477ef9..1cde055 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.2.0-r1 (2021/03/04) + +* Switch to `yasu` + ## 21.2.0-r0 (2021/02/16) * LibreNMS 21.2.0 (#167) diff --git a/Dockerfile b/Dockerfile index 1e596a7..9223605 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,10 @@ ARG LIBRENMS_VERSION="21.2.0" -FROM --platform=${TARGETPLATFORM:-linux/amd64} crazymax/alpine-s6:3.13-2.2.0.3 -ARG TARGETPLATFORM -ARG BUILDPLATFORM - +FROM crazymax/yasu:latest AS yasu +FROM crazymax/alpine-s6:3.13-2.1.0.2 LABEL maintainer="CrazyMax" +COPY --from=yasu / / RUN apk --update --no-cache add \ busybox-extras \ acl \ @@ -63,7 +62,6 @@ RUN apk --update --no-cache add \ rrdtool \ runit \ shadow \ - su-exec \ syslog-ng=3.30.1-r0 \ ttf-dejavu \ tzdata \ @@ -131,7 +129,6 @@ RUN apk --update --no-cache add -t build-dependencies \ /var/cache/apk/* COPY rootfs / -RUN chmod a+x /usr/local/bin/* EXPOSE 8000 514 514/udp VOLUME [ "/data" ] diff --git a/rootfs/usr/local/bin/artisan b/rootfs/usr/local/bin/artisan old mode 100644 new mode 100755 index d6b7935..e9ab72f --- a/rootfs/usr/local/bin/artisan +++ b/rootfs/usr/local/bin/artisan @@ -1,4 +1,4 @@ #!/bin/sh cd /opt/librenms || exit 1 -su-exec librenms:librenms php artisan "$@" +yasu librenms:librenms php artisan "$@" diff --git a/rootfs/usr/local/bin/lnms b/rootfs/usr/local/bin/lnms old mode 100644 new mode 100755 index 505acc4..58c4236 --- a/rootfs/usr/local/bin/lnms +++ b/rootfs/usr/local/bin/lnms @@ -1,3 +1,3 @@ #!/bin/sh -su-exec librenms:librenms php -f /opt/librenms/lnms "$@" +yasu librenms:librenms php -f /opt/librenms/lnms "$@" From 96c67e92042747ebcebc085fb6206e0f9a1721d6 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Wed, 10 Mar 2021 23:58:45 +0100 Subject: [PATCH 298/523] Handle LibreNMS plugins (#175) Co-authored-by: CrazyMax --- CHANGELOG.md | 4 ++++ README.md | 1 + doc/docker/volumes.md | 5 +++-- doc/notes/plugins.md | 6 ++++++ rootfs/etc/cont-init.d/03-config.sh | 20 ++++++++++++++++++-- 5 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 doc/notes/plugins.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cde055..ccd3597 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.2.0-r2 (2021/03/10) + +* Handle LibreNMS plugins (#171) + ## 21.2.0-r1 (2021/03/04) * Switch to `yasu` diff --git a/README.md b/README.md index fdf0734..168f5d6 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,7 @@ Image: librenms/librenms:latest * [LNMS command](doc/notes/lnms-command.md) * [Validate](doc/notes/validate.md) * [Dispatcher service](doc/notes/dispatcher-service.md) + * [Add a LibreNMS plugin](doc/notes/plugins.md) * [Syslog-ng](doc/notes/syslog-ng.md) * [Additional Monitoring plugins (Nagios)](doc/notes/additional-monitoring-plugins.md) * [Custom alert templates](doc/notes/alert-templates.md) diff --git a/doc/docker/volumes.md b/doc/docker/volumes.md index 73a38aa..a32cea1 100644 --- a/doc/docker/volumes.md +++ b/doc/docker/volumes.md @@ -1,5 +1,6 @@ ## Volumes -* `/data`: Contains configuration, rrd database, logs, additional Monitoring plugins, additional syslog-ng config files +* `/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/group with the specified `PUID` and `PGID`. If you don't give the volume correct permissions, the container may not start. +> :warning: Note that the volume should be owned by the user/group with the specified `PUID` and `PGID`. If you don't +> give the volume correct permissions, the container may not start. diff --git a/doc/notes/plugins.md b/doc/notes/plugins.md new file mode 100644 index 0000000..09758aa --- /dev/null +++ b/doc/notes/plugins.md @@ -0,0 +1,6 @@ +## Add a LibreNMS plugin + +You can add [plugins for LibreNMS](https://docs.librenms.org/Extensions/Plugin-System/) in `/data/plugins/`. If you +add a plugin that already exists in LibreNMS, it will be removed and yours will be used (except for Weathermap). + +> ⚠️ Container has to be restarted to propagate changes diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 795655b..0c3866d 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -83,7 +83,7 @@ sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.c # Init files and folders echo "Initializing LibreNMS files / folders..." -mkdir -p /data/config /data/logs /data/monitoring-plugins /data/rrd /data/weathermap /data/alert-templates +mkdir -p /data/config /data/logs /data/monitoring-plugins /data/plugins /data/rrd /data/weathermap /data/alert-templates ln -sf /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/configs touch /data/logs/librenms.log rm -rf ${LIBRENMS_PATH}/logs @@ -185,9 +185,25 @@ cat > ${LIBRENMS_PATH}/config.d/dispatcher.php < Date: Thu, 18 Mar 2021 14:47:41 +0100 Subject: [PATCH 299/523] Upstream Alpine update (#177) Co-authored-by: CrazyMax --- .github/labels.yml | 14 +++++++++++--- .github/workflows/label-sponsor.yml | 21 +++++++++++++++++++++ CHANGELOG.md | 4 ++++ 3 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/label-sponsor.yml diff --git a/.github/labels.yml b/.github/labels.yml index b9ebdfb..ac87246 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -1,4 +1,8 @@ ## more info https://github.com/crazy-max/ghaction-github-labeler +- # automerge + name: ":bell: automerge" + color: "8f4fbc" + description: "" - # bot name: ":robot: bot" color: "69cde9" @@ -47,9 +51,9 @@ name: ":no_entry_sign: invalid" color: "e6e6e6" description: "" -- # maybe bug - name: ":interrobang: maybe bug" - color: "ff5722" +- # investigate + name: ":mag: investigate" + color: "e6625b" description: "" - # needs more info name: ":thinking: needs more info" @@ -63,6 +67,10 @@ name: ":question: question" color: "3f51b5" description: "" +- # sponsor + name: ":sparkling_heart: sponsor" + color: "fedbf0" + description: "" - # stale name: ":skull: stale" color: "237da0" diff --git a/.github/workflows/label-sponsor.yml b/.github/workflows/label-sponsor.yml new file mode 100644 index 0000000..749b9a6 --- /dev/null +++ b/.github/workflows/label-sponsor.yml @@ -0,0 +1,21 @@ +name: label-sponsor + +on: + pull_request: + types: + - 'opened' + issues: + types: + - 'opened' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - + name: Set sponsor label + uses: JasonEtco/is-sponsor-label-action@v1 + with: + label: ":sparkling_heart: sponsor" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index ccd3597..bea31d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.2.0-r3 (2021/03/18) + +* Upstream Alpine update + ## 21.2.0-r2 (2021/03/10) * Handle LibreNMS plugins (#171) From 48b8e4cd605dd9e10b0e328dfd3fe48623af881c Mon Sep 17 00:00:00 2001 From: Christopher Harrison Date: Thu, 18 Mar 2021 15:22:14 -0500 Subject: [PATCH 300/523] Update syslog-ng max-connections (#179) --- rootfs/etc/syslog-ng/syslog-ng.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rootfs/etc/syslog-ng/syslog-ng.conf b/rootfs/etc/syslog-ng/syslog-ng.conf index b112d16..24ea7b3 100644 --- a/rootfs/etc/syslog-ng/syslog-ng.conf +++ b/rootfs/etc/syslog-ng/syslog-ng.conf @@ -18,7 +18,7 @@ source s_sys { }; source s_net { - tcp(ip(0.0.0.0), port(514)); + tcp(ip(0.0.0.0), port(514), max-connections(300)); udp(ip(0.0.0.0), port(514)); unix-stream("/run/syslog-ng/syslog-ng.sock"); }; From 2be3ce55fc625de0522e05d4f278815f63e3a822 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 18 Mar 2021 22:31:01 +0100 Subject: [PATCH 301/523] Fix SHA --- .github/workflows/label-sponsor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/label-sponsor.yml b/.github/workflows/label-sponsor.yml index 749b9a6..233e91a 100644 --- a/.github/workflows/label-sponsor.yml +++ b/.github/workflows/label-sponsor.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Set sponsor label - uses: JasonEtco/is-sponsor-label-action@v1 + uses: JasonEtco/is-sponsor-label-action@bf60e2afe013f9d3d7656c3315bcb6993604ccf7 with: label: ":sparkling_heart: sponsor" env: From f9c04960211d51ed02156f4fa79f8182f43bcf75 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 19 Mar 2021 00:31:16 +0100 Subject: [PATCH 302/523] Fix SHA --- .github/workflows/label-sponsor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/label-sponsor.yml b/.github/workflows/label-sponsor.yml index 233e91a..beec442 100644 --- a/.github/workflows/label-sponsor.yml +++ b/.github/workflows/label-sponsor.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Set sponsor label - uses: JasonEtco/is-sponsor-label-action@bf60e2afe013f9d3d7656c3315bcb6993604ccf7 + uses: JasonEtco/is-sponsor-label-action@024ac24f8b170abce078cad4ee748852369853c8 with: label: ":sparkling_heart: sponsor" env: From 16fe2c050e5696632426c0dc4887b1d1ccbf688d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 21 Mar 2021 16:47:16 +0100 Subject: [PATCH 303/523] LibreNMS 21.3.0 --- CHANGELOG.md | 4 ++++ Dockerfile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bea31d2..496c9dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.3.0-r0 (2021/03/21) + +* LibreNMS 21.3.0 + ## 21.2.0-r3 (2021/03/18) * Upstream Alpine update diff --git a/Dockerfile b/Dockerfile index 9223605..ec737ca 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.2.0" +ARG LIBRENMS_VERSION="21.3.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.13-2.1.0.2 From 541c542bd32cb8fc3df8b34fb3f3afa63727664e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 21 Mar 2021 16:47:59 +0100 Subject: [PATCH 304/523] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 496c9dd..2d33546 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## 21.3.0-r0 (2021/03/21) * LibreNMS 21.3.0 +* Update syslog-ng max-connections (#179) ## 21.2.0-r3 (2021/03/18) From 491230f896559551111f9ef8aa613de2ea2dfae3 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 1 Apr 2021 19:25:52 +0200 Subject: [PATCH 305/523] Meta action v2 --- .github/workflows/build.yml | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c4ed85f..ae938dd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,17 +26,19 @@ jobs: uses: actions/checkout@v2 - name: Docker meta - id: docker_meta - uses: crazy-max/ghaction-docker-meta@v1 + id: meta + uses: crazy-max/ghaction-docker-meta@v2 with: - images: ${{ env.DOCKERHUB_SLUG }} - tag-edge: true - tag-match: (.*)-r - tag-match-group: 1 - label-custom: | + images: | + ${{ env.DOCKERHUB_SLUG }} + tags: | + type=match,pattern=(.*)-r,group=1 + type=ref,event=pr + type=edge + labels: | org.opencontainers.image.title=LibreNMS org.opencontainers.image.description=Fully featured network monitoring system - org.opencontainers.image.vendor=CrazyMax + org.opencontainers.image.vendor=LibreNMS - name: Set up QEMU uses: docker/setup-qemu-action@v1 @@ -56,17 +58,17 @@ jobs: with: files: | ./docker-bake.hcl - ${{ steps.docker_meta.outputs.bake-file }} + ${{ steps.meta.outputs.bake-file }} targets: image-all push: ${{ github.event_name != 'pull_request' }} - name: Check manifest if: github.event_name != 'pull_request' run: | - docker buildx imagetools inspect ${{ env.DOCKERHUB_SLUG }}:${{ steps.docker_meta.outputs.version }} + docker buildx imagetools inspect ${{ env.DOCKERHUB_SLUG }}:${{ steps.meta.outputs.version }} - name: Inspect if: github.event_name != 'pull_request' run: | - docker pull ${{ env.DOCKERHUB_SLUG }}:${{ steps.docker_meta.outputs.version }} - docker image inspect ${{ env.DOCKERHUB_SLUG }}:${{ steps.docker_meta.outputs.version }} + docker pull ${{ env.DOCKERHUB_SLUG }}:${{ steps.meta.outputs.version }} + docker image inspect ${{ env.DOCKERHUB_SLUG }}:${{ steps.meta.outputs.version }} From b54299f9501c373d0688733b26bd0b7fafa4b088 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 3 Apr 2021 18:51:53 +0200 Subject: [PATCH 306/523] Fix workflow --- .github/workflows/label-sponsor.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/label-sponsor.yml b/.github/workflows/label-sponsor.yml index beec442..15194f0 100644 --- a/.github/workflows/label-sponsor.yml +++ b/.github/workflows/label-sponsor.yml @@ -1,9 +1,6 @@ name: label-sponsor on: - pull_request: - types: - - 'opened' issues: types: - 'opened' From 4bb31cd6a50199aa76fe4768bcdbf5eb588091b7 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Sun, 18 Apr 2021 17:15:30 +0200 Subject: [PATCH 307/523] alpine-s6 3.13-2.2.0.3 (#189) Co-authored-by: CrazyMax --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ec737ca..076cd31 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ ARG LIBRENMS_VERSION="21.3.0" FROM crazymax/yasu:latest AS yasu -FROM crazymax/alpine-s6:3.13-2.1.0.2 +FROM crazymax/alpine-s6:3.13-2.2.0.3 LABEL maintainer="CrazyMax" COPY --from=yasu / / From 3640abdb7bb5beb6fbd663dd25b9144164a8fac9 Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Sun, 18 Apr 2021 10:29:39 -0500 Subject: [PATCH 308/523] All containers should connect to redis (#178) Co-authored-by: CrazyMax --- examples/compose/docker-compose.yml | 6 ++++++ examples/pwd/librenms.yml | 6 ++++++ examples/rrdcached-server/docker-compose.yml | 6 ++++++ examples/traefik/docker-compose.yml | 6 ++++++ 4 files changed, 24 insertions(+) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index d117070..cc15376 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -69,6 +69,9 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" restart: always dispatcher: @@ -130,5 +133,8 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" - "SIDECAR_SYSLOGNG=1" restart: always diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index 937ae05..8d0e0ca 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -75,6 +75,9 @@ services: DB_USER: *MYSQL_USER DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" + REDIS_HOST: "redis" + REDIS_PORT: "6379" + REDIS_DB: "0" restart: always dispatcher: @@ -153,6 +156,9 @@ services: DB_USER: *MYSQL_USER DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" + REDIS_HOST: "redis" + REDIS_PORT: "6379" + REDIS_DB: "0" SIDECAR_SYSLOGNG: "1" restart: always diff --git a/examples/rrdcached-server/docker-compose.yml b/examples/rrdcached-server/docker-compose.yml index d817f34..b1a0a05 100644 --- a/examples/rrdcached-server/docker-compose.yml +++ b/examples/rrdcached-server/docker-compose.yml @@ -87,6 +87,9 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" restart: always dispatcher: @@ -148,5 +151,8 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" - "SIDECAR_SYSLOGNG=1" restart: always diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 7836152..2636a91 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -104,6 +104,9 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" restart: always dispatcher: @@ -159,5 +162,8 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" - "SIDECAR_SYSLOGNG=1" restart: always From 9c5dc1ae5c18f75a4c7e54c601fdc396df28ad14 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Sun, 18 Apr 2021 17:37:06 +0200 Subject: [PATCH 309/523] Fix warnings (#190) Co-authored-by: CrazyMax --- rootfs/etc/cont-init.d/03-config.sh | 2 ++ rootfs/usr/{local => }/bin/lnms | 0 2 files changed, 2 insertions(+) rename rootfs/usr/{local => }/bin/lnms (100%) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 0c3866d..6c732f1 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -88,6 +88,8 @@ ln -sf /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/configs touch /data/logs/librenms.log rm -rf ${LIBRENMS_PATH}/logs rm -f ${LIBRENMS_PATH}/config.d/* +mkdir -p /etc/logrotate.d +touch /etc/logrotate.d/librenms echo "Setting LibreNMS configuration..." diff --git a/rootfs/usr/local/bin/lnms b/rootfs/usr/bin/lnms similarity index 100% rename from rootfs/usr/local/bin/lnms rename to rootfs/usr/bin/lnms From 957ca9e439b423b10db008f1895d8d4d4b54dace Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Sun, 18 Apr 2021 17:43:29 +0200 Subject: [PATCH 310/523] Fix weathermap output perms (#191) Co-authored-by: CrazyMax --- rootfs/etc/cont-init.d/02-fix-perms.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index e0b290b..71c5b31 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -7,9 +7,9 @@ mkdir -p /data \ chown librenms. \ /data \ "${LIBRENMS_PATH}" \ - "${LIBRENMS_PATH}/.env" \ - "${LIBRENMS_PATH}/html/plugins/Weathermap/output" + "${LIBRENMS_PATH}/.env" chown -R librenms. \ + "${LIBRENMS_PATH}/html/plugins/Weathermap/output" \ /home/librenms \ /tpls \ /var/lib/nginx \ From 3825abb2d82883573edd7db643a801c7c0d49473 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Sun, 18 Apr 2021 18:17:02 +0200 Subject: [PATCH 311/523] LibreNMS 21.4.0 (#192) Co-authored-by: CrazyMax --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 076cd31..5040282 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.3.0" +ARG LIBRENMS_VERSION="21.4.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.13-2.2.0.3 From 3dcc7d7a6910956ae07dcf358efeb266e960c003 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Sun, 18 Apr 2021 18:34:00 +0200 Subject: [PATCH 312/523] Update db service example (#193) Co-authored-by: CrazyMax --- examples/compose/docker-compose.yml | 6 +++--- examples/pwd/librenms.yml | 6 +++--- examples/rrdcached-server/docker-compose.yml | 6 +++--- examples/traefik/docker-compose.yml | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index cc15376..5789dd5 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -2,14 +2,14 @@ version: "3.5" services: db: - image: mariadb:10.4 + image: mariadb:10.5 container_name: librenms_db command: - "mysqld" - "--innodb-file-per-table=1" - "--lower-case-table-names=0" - - "--character-set-server=utf8" - - "--collation-server=utf8_unicode_ci" + - "--character-set-server=utf8mb4" + - "--collation-server=utf8mb4_unicode_ci" volumes: - "./db:/var/lib/mysql" environment: diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index 8d0e0ca..bf1f607 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -23,13 +23,13 @@ x-envlibrenms: &envlibrenms services: db: - image: mariadb:10.4 + image: mariadb:10.5 command: - "mysqld" - "--innodb-file-per-table=1" - "--lower-case-table-names=0" - - "--character-set-server=utf8" - - "--collation-server=utf8_unicode_ci" + - "--character-set-server=utf8mb4" + - "--collation-server=utf8mb4_unicode_ci" volumes: - "db:/var/lib/mysql" environment: diff --git a/examples/rrdcached-server/docker-compose.yml b/examples/rrdcached-server/docker-compose.yml index b1a0a05..cc52f48 100644 --- a/examples/rrdcached-server/docker-compose.yml +++ b/examples/rrdcached-server/docker-compose.yml @@ -2,14 +2,14 @@ version: "3.5" services: db: - image: mariadb:10.4 + image: mariadb:10.5 container_name: librenms_db command: - "mysqld" - "--innodb-file-per-table=1" - "--lower-case-table-names=0" - - "--character-set-server=utf8" - - "--collation-server=utf8_unicode_ci" + - "--character-set-server=utf8mb4" + - "--collation-server=utf8mb4_unicode_ci" volumes: - "./db:/var/lib/mysql" environment: diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 2636a91..d2c86c5 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -36,14 +36,14 @@ services: restart: always db: - image: mariadb:10.4 + image: mariadb:10.5 container_name: librenms_db command: - "mysqld" - "--innodb-file-per-table=1" - "--lower-case-table-names=0" - - "--character-set-server=utf8" - - "--collation-server=utf8_unicode_ci" + - "--character-set-server=utf8mb4" + - "--collation-server=utf8mb4_unicode_ci" volumes: - "./db:/var/lib/mysql" environment: From 47f7d161584dc18542a0865f4577585b948b936c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 18 Apr 2021 18:36:05 +0200 Subject: [PATCH 313/523] Update CHANGELOG --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d33546..d6cba36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 21.4.0-r0 (2021/04/18) + +* LibreNMS 21.4.0 (#192) +* Update db service example (#193) +* Fix weathermap output perms (#191) +* Fix warnings (#190) +* All containers should connect to redis (#178) +* alpine-s6 3.13-2.2.0.3 (#189) + ## 21.3.0-r0 (2021/03/21) * LibreNMS 21.3.0 From 08d98d38bf2b91205a67a4053994ad7778faee1b Mon Sep 17 00:00:00 2001 From: Kasper Simonsen <8589819+K4S1@users.noreply.github.com> Date: Tue, 20 Apr 2021 23:23:14 +0200 Subject: [PATCH 314/523] Add file package (#195) --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 5040282..ae3f7ac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,7 @@ RUN apk --update --no-cache add \ ca-certificates \ coreutils \ curl \ + file \ fping \ git \ graphviz \ From 36aa1601a4d349213b565cbbd7f441c88c1f9926 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Tue, 11 May 2021 00:03:55 +0200 Subject: [PATCH 315/523] Move to docker/metadata-action (#199) Co-authored-by: CrazyMax --- .github/workflows/build.yml | 2 +- docker-bake.hcl | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ae938dd..de2a5b0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,7 +27,7 @@ jobs: - name: Docker meta id: meta - uses: crazy-max/ghaction-docker-meta@v2 + uses: docker/metadata-action@v3 with: images: | ${{ env.DOCKERHUB_SLUG }} diff --git a/docker-bake.hcl b/docker-bake.hcl index d820568..233d686 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -2,8 +2,8 @@ variable "DEFAULT_TAG" { default = "librenms:local" } -// Special target: https://github.com/crazy-max/ghaction-docker-meta#bake-definition -target "ghaction-docker-meta" { +// Special target: https://github.com/docker/metadata-action#bake-definition +target "docker-metadata-action" { tags = ["${DEFAULT_TAG}"] } @@ -13,7 +13,7 @@ group "default" { } target "image" { - inherits = ["ghaction-docker-meta"] + inherits = ["docker-metadata-action"] } target "image-local" { From 19e3a269439b8414bed26507bdf9e2948aae298e Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Thu, 20 May 2021 10:42:01 +0200 Subject: [PATCH 316/523] LibreNMS 21.5.1 (#205) Co-authored-by: CrazyMax --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ae3f7ac..31598df 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.4.0" +ARG LIBRENMS_VERSION="21.5.1" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.13-2.2.0.3 From 5fc602e4a4a86264c7741af92553aed21bf0dde4 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 20 May 2021 10:44:44 +0200 Subject: [PATCH 317/523] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6cba36..54f02d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 21.5.1-r0 (2021/05/20) + +* LibreNMS 21.5.1 (#205) +* Move to `docker/metadata-action` (#199) +* Add `file` package (#195) + ## 21.4.0-r0 (2021/04/18) * LibreNMS 21.4.0 (#192) From 12bf6469808749400927e62c779fbb3fc20b7f1e Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Mon, 28 Jun 2021 00:31:11 +0200 Subject: [PATCH 318/523] LibreNMS 21.6.0 (#210) Co-authored-by: CrazyMax --- Dockerfile | 2 +- docker-bake.hcl | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 31598df..2cba619 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.5.1" +ARG LIBRENMS_VERSION="21.6.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.13-2.2.0.3 diff --git a/docker-bake.hcl b/docker-bake.hcl index 233d686..fddf4dc 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -29,7 +29,6 @@ target "image-all" { "linux/arm/v7", "linux/arm64", "linux/386", - "linux/ppc64le", "linux/s390x" ] } From 1111095afe541559cfcc725a769e6be6d015cf57 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 28 Jun 2021 04:24:56 +0200 Subject: [PATCH 319/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54f02d4..57763eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.6.0-r0 (2021/06/28) + +* LibreNMS 21.6.0 (#210) + ## 21.5.1-r0 (2021/05/20) * LibreNMS 21.5.1 (#205) From b2d4ddb2c1e3675db8b242daea726bcb5e27ef82 Mon Sep 17 00:00:00 2001 From: Anton Lundin Date: Sun, 1 Aug 2021 07:26:12 +0200 Subject: [PATCH 320/523] Create and enable a snmp trap handling container (#180) --- Dockerfile | 2 +- README.md | 1 + doc/docker/environment-variables.md | 6 ++++ doc/notes/snmptrapd.md | 12 ++++++++ examples/compose/docker-compose.yml | 32 ++++++++++++++++++++ examples/rrdcached-server/docker-compose.yml | 32 ++++++++++++++++++++ examples/traefik/docker-compose.yml | 29 ++++++++++++++++++ rootfs/etc/cont-init.d/04-svc-main.sh | 3 +- rootfs/etc/cont-init.d/07-svc-cron.sh | 3 +- rootfs/etc/cont-init.d/08-svc-snmptrapd.sh | 27 +++++++++++++++++ rootfs/etc/snmp/snmptrapd.conf | 3 ++ 11 files changed, 147 insertions(+), 3 deletions(-) create mode 100644 doc/notes/snmptrapd.md create mode 100644 rootfs/etc/cont-init.d/08-svc-snmptrapd.sh create mode 100644 rootfs/etc/snmp/snmptrapd.conf diff --git a/Dockerfile b/Dockerfile index 2cba619..844ec7d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -131,7 +131,7 @@ RUN apk --update --no-cache add -t build-dependencies \ COPY rootfs / -EXPOSE 8000 514 514/udp +EXPOSE 8000 514 514/udp 162 162/udp VOLUME [ "/data" ] ENTRYPOINT [ "/init" ] diff --git a/README.md b/README.md index 168f5d6..f73c9b6 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * Multi-platform image * [Dispatcher service](doc/docker/environment-variables.md#dispatcher-service) as "sidecar" container * Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng) +* Snmp-trap support through a ["sidecar" container](doc/docker/environment-variables.md#snmptrapd) * Built-in LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) * Ability to add custom Monitoring plugins (Nagios) * Ability to add custom alert templates diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 78a15fe..fc9a051 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -35,6 +35,12 @@ * `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](../notes/snmptrapd.md) + +* `SIDECAR_SNMPTRAPD`: Set to `1` to enable sidecar snmptrapd mode for this container (default `0`) + ### Database * `DB_HOST`: MySQL database hostname / IP address diff --git a/doc/notes/snmptrapd.md b/doc/notes/snmptrapd.md new file mode 100644 index 0000000..3a3b67d --- /dev/null +++ b/doc/notes/snmptrapd.md @@ -0,0 +1,12 @@ +## Snmptrapd + +If you want to enable snmptrapd, you have to run a "sidecar" container (see snmptrapd service in [docker-compose.yml](../../examples/compose/docker-compose.yml) example) or run a simple container like this : + +```bash +docker run -d --name librenms_snmptrapd \ + --env-file $(pwd)/librenms.env \ + -e SIDECAR_SNMPTRAPD=1 \ + -p 162 -p 162/udp \ + -v librenms:/data \ + librenms/librenms:latest +``` diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 5789dd5..cde6eae 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -138,3 +138,35 @@ services: - "REDIS_DB=0" - "SIDECAR_SYSLOGNG=1" restart: always + + snmptrapd: + image: librenms/librenms:latest + container_name: librenms_snmptrapd + hostname: librenms-snmptrapd + cap_add: + - NET_ADMIN + - NET_RAW + depends_on: + - librenms + ports: + - target: 162 + published: 162 + protocol: tcp + - target: 162 + published: 162 + protocol: udp + volumes: + - "./librenms:/data" + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "SIDECAR_SNNMPTRAPD=1" + restart: always diff --git a/examples/rrdcached-server/docker-compose.yml b/examples/rrdcached-server/docker-compose.yml index cc52f48..04ecbbe 100644 --- a/examples/rrdcached-server/docker-compose.yml +++ b/examples/rrdcached-server/docker-compose.yml @@ -156,3 +156,35 @@ services: - "REDIS_DB=0" - "SIDECAR_SYSLOGNG=1" restart: always + + snmptrapd: + image: librenms/librenms:latest + container_name: librenms_snmptrapd + hostname: librenms-snmptrapd + cap_add: + - NET_ADMIN + - NET_RAW + depends_on: + - librenms + ports: + - target: 162 + published: 162 + protocol: tcp + - target: 162 + published: 162 + protocol: udp + volumes: + - "./librenms:/data" + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "SIDECAR_SNNMPTRAPD=1" + restart: always diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index d2c86c5..4d77cd6 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -167,3 +167,32 @@ services: - "REDIS_DB=0" - "SIDECAR_SYSLOGNG=1" restart: always + + snmptrapd: + image: librenms/librenms:latest + container_name: librenms_snmptrapd + hostname: librenms-snmptrapd + depends_on: + - librenms + ports: + - target: 162 + published: 162 + protocol: tcp + - target: 162 + published: 162 + protocol: udp + volumes: + - "./librenms:/data" + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "SIDECAR_SNNMPTRAPD=1" + restart: always diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index 829f85f..8271cb5 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -30,8 +30,9 @@ DB_TIMEOUT=${DB_TIMEOUT:-60} SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} +SIDECAR_SNNMPTRAPD=${SIDECAR_SNNMPTRAPD:-0} -if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ]; then +if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$SIDECAR_SNNMPTRAPD" = "1" ]; then exit 0 fi diff --git a/rootfs/etc/cont-init.d/07-svc-cron.sh b/rootfs/etc/cont-init.d/07-svc-cron.sh index a05fbe4..508d80b 100644 --- a/rootfs/etc/cont-init.d/07-svc-cron.sh +++ b/rootfs/etc/cont-init.d/07-svc-cron.sh @@ -8,8 +8,9 @@ LIBRENMS_DAILY_SCHEDULE="15 0 * * *" SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} +SIDECAR_SNNMPTRAPD=${SIDECAR_SNNMPTRAPD:-0} -if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ]; then +if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$SIDECAR_SNNMPTRAPD" = "1" ]; then exit 0 fi diff --git a/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh b/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh new file mode 100644 index 0000000..eb6d282 --- /dev/null +++ b/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh @@ -0,0 +1,27 @@ +#!/usr/bin/with-contenv sh + +SIDECAR_SNNMPTRAPD=${SIDECAR_SNNMPTRAPD:-0} +LIBRENMS_SNMP_COMMUNITY=${LIBRENMS_SNMP_COMMUNITY:-librenmsdocker} + +# Continue only if sidecar snmptrapd container +if [ "$SIDECAR_SNNMPTRAPD" != "1" ]; then + exit 0 +fi + +echo ">>" +echo ">> Sidecar snmptrapd container detected" +echo ">>" + +mkdir -p /run/snmptrapd +chown -R librenms. /run/snmptrapd + +sed -ie "s/@LIBRENMS_SNMP_COMMUNITY@/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmptrapd.conf + +# Create service +mkdir -p /etc/services.d/snmptrapd +cat > /etc/services.d/snmptrapd/run < Date: Sun, 1 Aug 2021 07:57:10 +0200 Subject: [PATCH 321/523] LibreNMS 21.7.0 (#215) Co-authored-by: CrazyMax --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 844ec7d..f7ec5d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,7 @@ -ARG LIBRENMS_VERSION="21.6.0" +ARG LIBRENMS_VERSION="21.7.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.13-2.2.0.3 -LABEL maintainer="CrazyMax" COPY --from=yasu / / RUN apk --update --no-cache add \ From 21d52c31171b4d7e38620b4eedf37894d4564e6b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 1 Aug 2021 07:58:44 +0200 Subject: [PATCH 322/523] Update CHANGELOG --- CHANGELOG.md | 5 +++++ README.md | 9 ++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57763eb..ee6d266 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 21.7.0-r0 (2021/08/01) + +* LibreNMS 21.7.0 (#215) +* Create and enable a snmp trap handling container (#180) + ## 21.6.0-r0 (2021/06/28) * LibreNMS 21.6.0 (#210) diff --git a/README.md b/README.md index f73c9b6..7bd72f0 100644 --- a/README.md +++ b/README.md @@ -87,12 +87,11 @@ Image: librenms/librenms:latest * [Custom alert templates](doc/notes/alert-templates.md) * [Upgrade](doc/upgrade.md) -## How can I help? +## Contributing -All kinds of contributions are welcome :raised_hands:! The most basic way to show your support is to star -:star2: the project, or to raise issues :speech_balloon: You can also support this project by -[**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max) :clap: or by making a -[Paypal donation](https://www.paypal.me/crazyws) to ensure this journey continues indefinitely! :rocket: +Want to contribute? Awesome! The most basic way to show your support is to star the project, or to raise issues. You +can also support this project by [**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max) or by making +a [Paypal donation](https://www.paypal.me/crazyws) to ensure this journey continues indefinitely! Thanks again for your support, it is much appreciated! :pray: From 0fe44f1d4634e85cce24233fd7be1cd61525e58c Mon Sep 17 00:00:00 2001 From: MarlinMr <51798819+MarlinMr@users.noreply.github.com> Date: Sat, 7 Aug 2021 17:38:40 +0200 Subject: [PATCH 323/523] Add SNMP config (#216) --- doc/docker/environment-variables.md | 9 +++++++++ rootfs/etc/cont-init.d/08-svc-snmptrapd.sh | 18 ++++++++++++++++++ rootfs/etc/snmp/snmptrapd.conf | 6 ++++-- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index fc9a051..4e7383d 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -40,6 +40,15 @@ > :warning: Only used if you enable and run a [sidecar snmptrapd container](../notes/snmptrapd.md) * `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`) ### Database diff --git a/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh b/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh index eb6d282..fc4ed54 100644 --- a/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh +++ b/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh @@ -2,6 +2,15 @@ SIDECAR_SNNMPTRAPD=${SIDECAR_SNNMPTRAPD:-0} LIBRENMS_SNMP_COMMUNITY=${LIBRENMS_SNMP_COMMUNITY:-librenmsdocker} +SNMP_PROCESSING_TYPE=${SNMP_PROCESSING_TYPE:-log,execute,net} +SNMP_USER=${SNMP_USER:-librenms_user} +SNMP_AUTH=${SNMP_AUTH:-auth_pass} +SNMP_PRIV=${SNMP_PRIV:-priv_pass} +SNMP_AUTH_PROTO=${SNMP_AUTH_PROTO:-SHA} +SNMP_PRIV_PROTO=${SNMP_PRIV_PROTO:-AES} +SNMP_SECURITY_LEVEL=${SNMP_SECURITY_LEVEL:-priv} +SNMP_ENGINEID=${SNMP_ENGINEID:-1234567890} +SNMP_DISABLE_AUTHORIZATION=${SNMP_DISABLE_AUTHORIZATION:-yes} # Continue only if sidecar snmptrapd container if [ "$SIDECAR_SNNMPTRAPD" != "1" ]; then @@ -16,6 +25,15 @@ mkdir -p /run/snmptrapd chown -R librenms. /run/snmptrapd sed -ie "s/@LIBRENMS_SNMP_COMMUNITY@/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmptrapd.conf +sed -ie "s/@SNMP_PROCESSING_TYPE@/${SNMP_PROCESSING_TYPE}/" /etc/snmp/snmptrapd.conf' +sed -ie "s/@SNMP_USER@/${SNMP_USER}/" /etc/snmp/snmptrapd.conf +sed -ie "s/@SNMP_AUTH@/${SNMP_AUTH}/" /etc/snmp/snmptrapd.conf +sed -ie "s/@SNMP_PRIV@/${SNMP_PRIV}/" /etc/snmp/snmptrapd.conf +sed -ie "s/@SNMP_AUTH_PROTO@/${SNMP_AUTH_PROTO}/" /etc/snmp/snmptrapd.conf +sed -ie "s/@SNMP_PRIV_PROTO@/${SNMP_PRIV_PROTO}/" /etc/snmp/snmptrapd.conf +sed -ie "s/@SNMP_SECURITY_LEVEL@/${SNMP_SECURITY_LEVEL}/" /etc/snmp/snmptrapd.conf +sed -ie "s/@SNMP_ENGINEID@/${SNMP_ENGINEID}/" /etc/snmp/snmptrapd.conf +sed -ie "s/@SNMP_DISABLE_AUTHORIZATION@/${SNMP_DISABLE_AUTHORIZATION}/" /etc/snmp/snmptrapd.conf # Create service mkdir -p /etc/services.d/snmptrapd diff --git a/rootfs/etc/snmp/snmptrapd.conf b/rootfs/etc/snmp/snmptrapd.conf index 1b1d16c..fe57eac 100644 --- a/rootfs/etc/snmp/snmptrapd.conf +++ b/rootfs/etc/snmp/snmptrapd.conf @@ -1,3 +1,5 @@ -disableAuthorization yes -authCommunity log,execute,net @LIBRENMS_SNMP_COMMUNITY@ +disableAuthorization @SNMP_DISABLE_AUTHORIZATION@ +createUser -e 0x@SNMP_ENGINEID@ @SNMP_USER@ @SNMP_AUTH_PROTO@ @SNMP_AUTH@ @SNMP_PRIV_PROTO@ @SNMP_PRIV@ +authUser @SNMP_PROCESSING_TYPE@ @SNMP_USER@ @SNMP_SECURITY_LEVEL@ +authCommunity @SNMP_PROCESSING_TYPE@ @LIBRENMS_SNMP_COMMUNITY@ traphandle default /opt/librenms/snmptrap.php From 6b9029dfcde375f03932e2bda23d80a3f8f20be9 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 7 Aug 2021 17:58:29 +0200 Subject: [PATCH 324/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee6d266..f80dc2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.7.0-r1 (2021/08/07) + +* Add SNMP config (#216) + ## 21.7.0-r0 (2021/08/01) * LibreNMS 21.7.0 (#215) From a701a1d0fa764de599d4733973fb4141bd6fe6d3 Mon Sep 17 00:00:00 2001 From: MarlinMr <51798819+MarlinMr@users.noreply.github.com> Date: Mon, 9 Aug 2021 14:06:55 +0200 Subject: [PATCH 325/523] Fix librenms_snmptrapd service typo (#219) --- rootfs/etc/cont-init.d/08-svc-snmptrapd.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh b/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh index fc4ed54..6659203 100644 --- a/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh +++ b/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh @@ -25,7 +25,7 @@ mkdir -p /run/snmptrapd chown -R librenms. /run/snmptrapd sed -ie "s/@LIBRENMS_SNMP_COMMUNITY@/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmptrapd.conf -sed -ie "s/@SNMP_PROCESSING_TYPE@/${SNMP_PROCESSING_TYPE}/" /etc/snmp/snmptrapd.conf' +sed -ie "s/@SNMP_PROCESSING_TYPE@/${SNMP_PROCESSING_TYPE}/" /etc/snmp/snmptrapd.conf sed -ie "s/@SNMP_USER@/${SNMP_USER}/" /etc/snmp/snmptrapd.conf sed -ie "s/@SNMP_AUTH@/${SNMP_AUTH}/" /etc/snmp/snmptrapd.conf sed -ie "s/@SNMP_PRIV@/${SNMP_PRIV}/" /etc/snmp/snmptrapd.conf From 57b1df6596cb23b15acdd5692adc073765f362f8 Mon Sep 17 00:00:00 2001 From: MarlinMr <51798819+MarlinMr@users.noreply.github.com> Date: Tue, 10 Aug 2021 13:23:05 +0200 Subject: [PATCH 326/523] Misspelling of environment variable (#220) --- examples/compose/docker-compose.yml | 2 +- examples/rrdcached-server/docker-compose.yml | 2 +- examples/traefik/docker-compose.yml | 2 +- rootfs/etc/cont-init.d/04-svc-main.sh | 4 ++-- rootfs/etc/cont-init.d/07-svc-cron.sh | 4 ++-- rootfs/etc/cont-init.d/08-svc-snmptrapd.sh | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index cde6eae..b6b6e0b 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -168,5 +168,5 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "SIDECAR_SNNMPTRAPD=1" + - "SIDECAR_SNMPTRAPD=1" restart: always diff --git a/examples/rrdcached-server/docker-compose.yml b/examples/rrdcached-server/docker-compose.yml index 04ecbbe..b952bd9 100644 --- a/examples/rrdcached-server/docker-compose.yml +++ b/examples/rrdcached-server/docker-compose.yml @@ -186,5 +186,5 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "SIDECAR_SNNMPTRAPD=1" + - "SIDECAR_SNMPTRAPD=1" restart: always diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 4d77cd6..7d7a146 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -194,5 +194,5 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "SIDECAR_SNNMPTRAPD=1" + - "SIDECAR_SNMPTRAPD=1" restart: always diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index 8271cb5..20268bb 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -30,9 +30,9 @@ DB_TIMEOUT=${DB_TIMEOUT:-60} SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} -SIDECAR_SNNMPTRAPD=${SIDECAR_SNNMPTRAPD:-0} +SIDECAR_SNMPTRAPD=${SIDECAR_SNMPTRAPD:-0} -if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$SIDECAR_SNNMPTRAPD" = "1" ]; then +if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$SIDECAR_SNMPTRAPD" = "1" ]; then exit 0 fi diff --git a/rootfs/etc/cont-init.d/07-svc-cron.sh b/rootfs/etc/cont-init.d/07-svc-cron.sh index 508d80b..aa42af0 100644 --- a/rootfs/etc/cont-init.d/07-svc-cron.sh +++ b/rootfs/etc/cont-init.d/07-svc-cron.sh @@ -8,9 +8,9 @@ LIBRENMS_DAILY_SCHEDULE="15 0 * * *" SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0} -SIDECAR_SNNMPTRAPD=${SIDECAR_SNNMPTRAPD:-0} +SIDECAR_SNMPTRAPD=${SIDECAR_SNMPTRAPD:-0} -if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$SIDECAR_SNNMPTRAPD" = "1" ]; then +if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$SIDECAR_SNMPTRAPD" = "1" ]; then exit 0 fi diff --git a/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh b/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh index 6659203..5ea6fee 100644 --- a/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh +++ b/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh @@ -1,6 +1,6 @@ #!/usr/bin/with-contenv sh -SIDECAR_SNNMPTRAPD=${SIDECAR_SNNMPTRAPD:-0} +SIDECAR_SNMPTRAPD=${SIDECAR_SNMPTRAPD:-0} LIBRENMS_SNMP_COMMUNITY=${LIBRENMS_SNMP_COMMUNITY:-librenmsdocker} SNMP_PROCESSING_TYPE=${SNMP_PROCESSING_TYPE:-log,execute,net} SNMP_USER=${SNMP_USER:-librenms_user} @@ -13,7 +13,7 @@ SNMP_ENGINEID=${SNMP_ENGINEID:-1234567890} SNMP_DISABLE_AUTHORIZATION=${SNMP_DISABLE_AUTHORIZATION:-yes} # Continue only if sidecar snmptrapd container -if [ "$SIDECAR_SNNMPTRAPD" != "1" ]; then +if [ "$SIDECAR_SNMPTRAPD" != "1" ]; then exit 0 fi From 9c27463bbf62e03655cbde244f0cc00d1fca17fc Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 10 Aug 2021 13:26:36 +0200 Subject: [PATCH 327/523] Update CHANGELOG --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f80dc2d..5164bf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 21.7.0-r2 (2021/08/10) + +* Misspelling of `SIDECAR_SNMPTRAPD` environment variable (#220) +* Fix `librenms_snmptrapd` service typo (#219) + ## 21.7.0-r1 (2021/08/07) * Add SNMP config (#216) From f8b18336f823336d91569f3085bcc2094084516a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 19 Aug 2021 12:53:41 +0200 Subject: [PATCH 328/523] Alpine Linux 3.14 (#221) Co-authored-by: CrazyMax --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index f7ec5d5..142ec14 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ ARG LIBRENMS_VERSION="21.7.0" FROM crazymax/yasu:latest AS yasu -FROM crazymax/alpine-s6:3.13-2.2.0.3 +FROM crazymax/alpine-s6:3.14-2.2.0.3 COPY --from=yasu / / RUN apk --update --no-cache add \ @@ -62,7 +62,7 @@ RUN apk --update --no-cache add \ rrdtool \ runit \ shadow \ - syslog-ng=3.30.1-r0 \ + syslog-ng=3.30.1-r1 \ ttf-dejavu \ tzdata \ util-linux \ From b4f921c300c3aad54e56ffc3ecd5c927ed385250 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 1 Sep 2021 14:56:47 +0200 Subject: [PATCH 329/523] LibreNMS 21.8.0 (#222) Co-authored-by: CrazyMax --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 142ec14..4d827d2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.7.0" +ARG LIBRENMS_VERSION="21.8.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.14-2.2.0.3 From a453611d8ee0597022b4e4c8344d4dd47c478f4a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 1 Sep 2021 14:58:13 +0200 Subject: [PATCH 330/523] Update CHANGELOG --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5164bf9..4f2fd69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 21.8.0-r0 (2021/09/01) + +* LibreNMS 21.8.0 (#222) +* Alpine Linux 3.14 (#221) + ## 21.7.0-r2 (2021/08/10) * Misspelling of `SIDECAR_SNMPTRAPD` environment variable (#220) From d95a775dea880460aa6f70fabdca6490fffa2620 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 20 Sep 2021 02:08:39 +0200 Subject: [PATCH 331/523] LibreNMS 21.9.0 (#224) Co-authored-by: CrazyMax --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4d827d2..92e4e98 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.8.0" +ARG LIBRENMS_VERSION="21.9.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.14-2.2.0.3 From b719b231e2c5cf7dd83570390e6471488430b717 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 20 Sep 2021 02:11:08 +0200 Subject: [PATCH 332/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f2fd69..dafe81b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.9.0-r0 (2021/09/20) + +* LibreNMS 21.9.0 (#224) + ## 21.8.0-r0 (2021/09/01) * LibreNMS 21.8.0 (#222) From 13474c860f31e348bb1a56efc69f4a02068c3f5b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 28 Sep 2021 12:40:29 +0200 Subject: [PATCH 333/523] LibreNMS 21.9.1 (#230) Co-authored-by: CrazyMax --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 92e4e98..2869bb8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.9.0" +ARG LIBRENMS_VERSION="21.9.1" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.14-2.2.0.3 From 8ecb62da9080d112ea33d9b1aa9ec87125344c59 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 28 Sep 2021 12:41:46 +0200 Subject: [PATCH 334/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dafe81b..180d79c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.9.1-r0 (2021/09/28) + +* LibreNMS 21.9.1 (#230) + ## 21.9.0-r0 (2021/09/20) * LibreNMS 21.9.0 (#224) From c7e0f9f0c04f1551cfe7970aba5133d2a92f4ef9 Mon Sep 17 00:00:00 2001 From: Nash Kaminski <36900518+gs-kamnas@users.noreply.github.com> Date: Mon, 18 Oct 2021 17:22:35 -0500 Subject: [PATCH 335/523] Update LibreNMS to version 21.10.0 (#235) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2869bb8..e9027d2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.9.1" +ARG LIBRENMS_VERSION="21.10.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.14-2.2.0.3 From 7201be4290e9e51da2410ef62c5737e35ac02a19 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 19 Oct 2021 00:23:31 +0200 Subject: [PATCH 336/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 180d79c..3f575b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.10.0-r0 (2021/10/18) + +* LibreNMS 21.10.0 (#235) + ## 21.9.1-r0 (2021/09/28) * LibreNMS 21.9.1 (#230) From 6c90a3c8892b9a505ebb86b8093e2e62484b8a94 Mon Sep 17 00:00:00 2001 From: Nash Kaminski <36900518+gs-kamnas@users.noreply.github.com> Date: Tue, 19 Oct 2021 04:10:52 -0500 Subject: [PATCH 337/523] Update LibreNMS to version 21.10.1 due to discovery bug (#236) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e9027d2..821dcc8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.10.0" +ARG LIBRENMS_VERSION="21.10.1" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.14-2.2.0.3 From d44fa13ea586584ce1f333af7dc72b9d25e85f31 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 19 Oct 2021 13:47:31 +0200 Subject: [PATCH 338/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f575b8..920f530 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.10.1-r0 (2021/10/19) + +* LibreNMS 21.10.1 (#236) + ## 21.10.0-r0 (2021/10/18) * LibreNMS 21.10.0 (#235) From 179f453c09d8cd7f12104900f987bf49c0fe9a45 Mon Sep 17 00:00:00 2001 From: MarlinMr <51798819+MarlinMr@users.noreply.github.com> Date: Thu, 21 Oct 2021 19:16:11 +0200 Subject: [PATCH 339/523] Removing references to Nagios because of confiusion (#237) --- README.md | 4 ++-- doc/notes/additional-monitoring-plugins.md | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7bd72f0..fcd2d9d 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng) * Snmp-trap support through a ["sidecar" container](doc/docker/environment-variables.md#snmptrapd) * Built-in LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) -* Ability to add custom Monitoring plugins (Nagios) +* Ability to add custom Monitoring plugins * Ability to add custom alert templates * OPCache enabled to store precompiled script bytecode in shared memory * [s6-overlay](https://github.com/just-containers/s6-overlay/) as process supervisor @@ -83,7 +83,7 @@ Image: librenms/librenms:latest * [Dispatcher service](doc/notes/dispatcher-service.md) * [Add a LibreNMS plugin](doc/notes/plugins.md) * [Syslog-ng](doc/notes/syslog-ng.md) - * [Additional Monitoring plugins (Nagios)](doc/notes/additional-monitoring-plugins.md) + * [Additional Monitoring plugins](doc/notes/additional-monitoring-plugins.md) * [Custom alert templates](doc/notes/alert-templates.md) * [Upgrade](doc/upgrade.md) diff --git a/doc/notes/additional-monitoring-plugins.md b/doc/notes/additional-monitoring-plugins.md index 1a2429a..2a04693 100644 --- a/doc/notes/additional-monitoring-plugins.md +++ b/doc/notes/additional-monitoring-plugins.md @@ -1,5 +1,7 @@ -## Additional Monitoring plugins (Nagios) +## Additional Monitoring plugins -You can add a custom Monitoring (Nagios) plugin in `/data/monitoring-plugins/`. +You can add a custom Monitoring plugin in `/data/monitoring-plugins/`. > :warning: Container has to be restarted to propagate changes + +Some plugins can be found in the [Monitoring Plugins](https://github.com/monitoring-plugins/monitoring-plugins#readme) repo, or in the [unofficial fork for Nagios](https://github.com/nagios-plugins/nagios-plugins#readme). From c4c065d39e3646f339563c2b7d7cdf8486e2d995 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 21 Oct 2021 22:14:23 +0200 Subject: [PATCH 340/523] LibreNMS 21.10.2 (#239) Co-authored-by: CrazyMax --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 821dcc8..8464539 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.10.1" +ARG LIBRENMS_VERSION="21.10.2" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.14-2.2.0.3 From 97485a60c9d2322f013311e25c9675558b41b983 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 21 Oct 2021 22:15:35 +0200 Subject: [PATCH 341/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 920f530..948bf1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.10.2-r0 (2021/10/21) + +* LibreNMS 21.10.2 (#239) + ## 21.10.1-r0 (2021/10/19) * LibreNMS 21.10.1 (#236) From aeeacf3cd6b7a76cab626996813fe72c094a1ddd Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 14 Nov 2021 23:46:36 +0100 Subject: [PATCH 342/523] LibreNMS 21.11.0 (#242) Co-authored-by: CrazyMax --- Dockerfile | 2 +- examples/traefik/docker-compose.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8464539..949d567 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.10.2" +ARG LIBRENMS_VERSION="21.11.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.14-2.2.0.3 diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 7d7a146..81bc7f8 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.5" services: traefik: - image: traefik:2.3 + image: traefik:2.5 container_name: traefik command: - "--global.checknewversion=false" From 8768a75b9bf769887f7bacc1c455f0253ae81887 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 14 Nov 2021 23:47:31 +0100 Subject: [PATCH 343/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 948bf1b..73988fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 21.11.0-r0 (2021/11/14) + +* LibreNMS 21.11.0 (#242) + ## 21.10.2-r0 (2021/10/21) * LibreNMS 21.10.2 (#239) From 7f07e2ba8f51efc8e2c98e38cb719855ac52891b Mon Sep 17 00:00:00 2001 From: Richard Kojedzinszky Date: Thu, 30 Dec 2021 03:11:37 +0100 Subject: [PATCH 344/523] nginx: increase fastcgi buffer size (#246) --- rootfs/tpls/etc/nginx/nginx.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/rootfs/tpls/etc/nginx/nginx.conf b/rootfs/tpls/etc/nginx/nginx.conf index 9513ff4..1bfd13b 100644 --- a/rootfs/tpls/etc/nginx/nginx.conf +++ b/rootfs/tpls/etc/nginx/nginx.conf @@ -91,6 +91,7 @@ http { fastcgi_index index.php; fastcgi_pass unix:/var/run/php-fpm/php-fpm7.sock; fastcgi_buffers 256 4k; + fastcgi_buffer_size 32k; fastcgi_intercept_errors on; fastcgi_read_timeout 14400; } From 7cbf636263b1d0a3b4aeec1ab788419ccbf184af Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 5 Jan 2022 22:11:11 +0100 Subject: [PATCH 345/523] Fix pip pkgs (#249) Co-authored-by: CrazyMax --- Dockerfile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 949d567..ef5b15b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -77,7 +77,7 @@ RUN apk --update --no-cache add \ && pip3 install python-memcached mysqlclient --upgrade \ && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ && apk del build-dependencies \ - && rm -rf /var/cache/apk/* /var/www/* /tmp/* \ + && rm -rf /var/www/* /tmp/* \ && echo "/usr/sbin/fping -6 \$@" > /usr/sbin/fping6 \ && chmod +x /usr/sbin/fping6 \ && chmod u+s,g+s \ @@ -110,7 +110,7 @@ RUN apk --update --no-cache add -t build-dependencies \ musl-dev \ python3-dev \ && git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git . \ - && pip3 install -r requirements.txt --upgrade \ + && pip3 install --ignore-installed -r requirements.txt --upgrade \ && COMPOSER_CACHE_DIR="/tmp" composer install --no-dev --no-interaction --no-ansi \ && mkdir config.d \ && cp config.php.default config.php \ @@ -125,8 +125,7 @@ RUN apk --update --no-cache add -t build-dependencies \ html/plugins/Test \ html/plugins/Weathermap/.git \ html/plugins/Weathermap/configs \ - /tmp/* \ - /var/cache/apk/* + /tmp/* COPY rootfs / From 00f8def153c4b9384c5249ff94f6bddc4ea594c3 Mon Sep 17 00:00:00 2001 From: hjcday <59719860+hjcday@users.noreply.github.com> Date: Thu, 6 Jan 2022 09:33:44 +1100 Subject: [PATCH 346/523] LibreNMS 21.12.1 (#247) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ef5b15b..a7edb1d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.11.0" +ARG LIBRENMS_VERSION="21.12.1" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.14-2.2.0.3 From 582edd1d2f01e16ed638de0ab2bbe1e01c01f4cf Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 5 Jan 2022 23:51:25 +0100 Subject: [PATCH 347/523] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73988fd..8e7c001 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 21.12.1-r0 (2022/01/05) + +* LibreNMS 21.12.1 (#247) +* Fix pip pkgs (#249) +* nginx: increase fastcgi buffer size (#246) + ## 21.11.0-r0 (2021/11/14) * LibreNMS 21.11.0 (#242) From b4836dca32fca81225fcb8fa1922b19b8c60996d Mon Sep 17 00:00:00 2001 From: La Date: Wed, 26 Jan 2022 21:37:40 +0800 Subject: [PATCH 348/523] Up to 22.1.0 (#250) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a7edb1d..9bb99bc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="21.12.1" +ARG LIBRENMS_VERSION="22.1.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.14-2.2.0.3 From 21ba60b288cca358d4c7f04724608bcaad9eaeae Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 26 Jan 2022 14:38:37 +0100 Subject: [PATCH 349/523] Update LICENSE --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 4870c39..96730a0 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018-2021 CrazyMax +Copyright (c) 2018-2022 CrazyMax Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 1fbca7d447a9e9bdf32d353d03e8541a40beab3c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 26 Jan 2022 14:39:54 +0100 Subject: [PATCH 350/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e7c001..e1831e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 22.1.0-r0 (2022/01/26) + +* LibreNMS 22.1.0 (#250) + ## 21.12.1-r0 (2022/01/05) * LibreNMS 21.12.1 (#247) From 768ba78da3360dc3059e33bcb71a5abbb44fb4b9 Mon Sep 17 00:00:00 2001 From: La Date: Thu, 17 Feb 2022 18:41:31 +0800 Subject: [PATCH 351/523] LibreNMS 22.2.0 (#252) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9bb99bc..e7aee42 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="22.1.0" +ARG LIBRENMS_VERSION="22.2.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.14-2.2.0.3 From 81c09252bf13bb7b580208be43f36a727c822341 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 18 Feb 2022 14:16:36 +0100 Subject: [PATCH 352/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1831e9..03b4560 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 22.2.0-r0 (2022/02/18) + +* LibreNMS 22.2.0 (#252) + ## 22.1.0-r0 (2022/01/26) * LibreNMS 22.1.0 (#250) From 766c8a6e81f0d51e14eceb0cdf8e8aacdd3224d6 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Feb 2022 01:59:08 +0100 Subject: [PATCH 353/523] Alpine Linux 3.15 (#253) Co-authored-by: CrazyMax --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index e7aee42..aebf628 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ ARG LIBRENMS_VERSION="22.2.0" FROM crazymax/yasu:latest AS yasu -FROM crazymax/alpine-s6:3.14-2.2.0.3 +FROM crazymax/alpine-s6:3.15-2.2.0.3 COPY --from=yasu / / RUN apk --update --no-cache add \ @@ -62,7 +62,7 @@ RUN apk --update --no-cache add \ rrdtool \ runit \ shadow \ - syslog-ng=3.30.1-r1 \ + syslog-ng=3.30.1-r3 \ ttf-dejavu \ tzdata \ util-linux \ From 1d2fb41abaf414706ce45b7eb84daf9e199ee1f0 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Feb 2022 02:58:26 +0100 Subject: [PATCH 354/523] LibreNMS 22.2.1 (#254) Co-authored-by: CrazyMax --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index aebf628..5670141 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="22.2.0" +ARG LIBRENMS_VERSION="22.2.1" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.15-2.2.0.3 From a3ca4625fafbbab0186e2aac93fd0efc0dd715ca Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Feb 2022 03:00:36 +0100 Subject: [PATCH 355/523] Update CHANGELOG --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03b4560..173ad14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 22.2.1-r0 (2022/02/20) + +* LibreNMS 22.2.1 (#254) +* Alpine Linux 3.15 (#253) + ## 22.2.0-r0 (2022/02/18) * LibreNMS 22.2.0 (#252) From 17733a097b5c9c75eef11a2397943fcea9531e45 Mon Sep 17 00:00:00 2001 From: La Date: Mon, 14 Mar 2022 01:22:42 +0800 Subject: [PATCH 356/523] update to 22.2.2 (#257) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5670141..4c4fdf6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="22.2.1" +ARG LIBRENMS_VERSION="22.2.2" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.15-2.2.0.3 From e4e5748a3c69b7c793511d4c757bacbf496cf47f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 13 Mar 2022 18:23:09 +0100 Subject: [PATCH 357/523] Bump actions/checkout from 2 to 3 (#256) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/labels.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index de2a5b0..6e6ebc2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Docker meta id: meta diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 29eb111..f5b8163 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Run Labeler uses: crazy-max/ghaction-github-labeler@v3 From 41b329016f37412dbaa34b04627d0fc901f95c3e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 13 Mar 2022 18:24:08 +0100 Subject: [PATCH 358/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 173ad14..38317ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 22.2.2-r0 (2022/03/13) + +* LibreNMS 22.2.2 (#257) + ## 22.2.1-r0 (2022/02/20) * LibreNMS 22.2.1 (#254) From 0be2eaf77d3f46b3df98a711a14f11164f2c15d6 Mon Sep 17 00:00:00 2001 From: La Date: Sun, 20 Mar 2022 21:36:01 +0800 Subject: [PATCH 359/523] LibreNMS 22.3.0 (#258) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4c4fdf6..8971d56 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="22.2.2" +ARG LIBRENMS_VERSION="22.3.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.15-2.2.0.3 From 4a9b6a27d10d323e6783a5cb880aa3c2f4b194b2 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 20 Mar 2022 14:37:19 +0100 Subject: [PATCH 360/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38317ae..75560bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 22.3.0-r0 (2022/03/20) + +* LibreNMS 22.3.0 (#258) + ## 22.2.2-r0 (2022/03/13) * LibreNMS 22.2.2 (#257) From 28e64d92ee83bf152a761512f54b32d478163649 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 24 Apr 2022 16:12:38 +0200 Subject: [PATCH 361/523] LibreNMS 22.4.1 (#261) * LibreNMS 22.4.1 (cherry picked from commit a51fa799839bfb945c43edfd3b28fe09b1537a81) # Conflicts: # Dockerfile * Fix syslog-ng Co-authored-by: La Co-authored-by: CrazyMax --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8971d56..ee00a35 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="22.3.0" +ARG LIBRENMS_VERSION="22.4.1" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.15-2.2.0.3 @@ -62,7 +62,7 @@ RUN apk --update --no-cache add \ rrdtool \ runit \ shadow \ - syslog-ng=3.30.1-r3 \ + syslog-ng=3.30.1-r4 \ ttf-dejavu \ tzdata \ util-linux \ From 5f699da7e93ad0c648dcfd20c6d0449374bdaf9a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 24 Apr 2022 16:22:09 +0200 Subject: [PATCH 362/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 75560bf..222e662 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 22.4.1-r0 (2022/04/24) + +* LibreNMS 22.4.1 (#261) + ## 22.3.0-r0 (2022/03/20) * LibreNMS 22.3.0 (#258) From 4735fdba20cb573c9d6255ed4380d81d5ade540e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 7 May 2022 22:06:33 +0200 Subject: [PATCH 363/523] Bump Docker actions (#269) Co-authored-by: CrazyMax --- .github/workflows/build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6e6ebc2..f867e51 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,7 +27,7 @@ jobs: - name: Docker meta id: meta - uses: docker/metadata-action@v3 + uses: docker/metadata-action@v4 with: images: | ${{ env.DOCKERHUB_SLUG }} @@ -41,20 +41,20 @@ jobs: org.opencontainers.image.vendor=LibreNMS - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build - uses: docker/bake-action@v1 + uses: docker/bake-action@v2 with: files: | ./docker-bake.hcl From 9316b6a0815e0ce360d84fbebf654b061fb7e6b5 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 7 May 2022 22:09:28 +0200 Subject: [PATCH 364/523] ci: add concurrency check --- .github/workflows/build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f867e51..4b6575c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,5 +1,9 @@ name: build +concurrency: + group: build-${{ github.ref }} + cancel-in-progress: true + on: push: branches: From 47df3999ac6cf7e045493d93672d0695ef59eddf Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 26 May 2022 09:33:09 +0200 Subject: [PATCH 365/523] cleanup workflow --- .github/workflows/label-sponsor.yml | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 .github/workflows/label-sponsor.yml diff --git a/.github/workflows/label-sponsor.yml b/.github/workflows/label-sponsor.yml deleted file mode 100644 index 15194f0..0000000 --- a/.github/workflows/label-sponsor.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: label-sponsor - -on: - issues: - types: - - 'opened' - -jobs: - build: - runs-on: ubuntu-latest - steps: - - - name: Set sponsor label - uses: JasonEtco/is-sponsor-label-action@024ac24f8b170abce078cad4ee748852369853c8 - with: - label: ":sparkling_heart: sponsor" - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From b102459a211e0f4e983de88457ba3202d26641b6 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 26 May 2022 18:40:49 +0200 Subject: [PATCH 366/523] Bump action to latest major --- .github/workflows/labels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index f5b8163..d9f607a 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -17,4 +17,4 @@ jobs: uses: actions/checkout@v3 - name: Run Labeler - uses: crazy-max/ghaction-github-labeler@v3 + uses: crazy-max/ghaction-github-labeler@v4 From 7dc07198969d4af115c70d384231dfb7e8b3baaf Mon Sep 17 00:00:00 2001 From: La Date: Sun, 29 May 2022 04:24:54 +0800 Subject: [PATCH 367/523] LibreNMS 22.5.0 (#272) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ee00a35..4591cfb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="22.4.1" +ARG LIBRENMS_VERSION="22.5.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.15-2.2.0.3 From 17c9bd63ed47434a634fee63d822591c6a565163 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 28 May 2022 22:26:11 +0200 Subject: [PATCH 368/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 222e662..43abd66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 22.5.0-r0 (2022/05/28) + +* LibreNMS 22.5.0 (#272) + ## 22.4.1-r0 (2022/04/24) * LibreNMS 22.4.1 (#261) From 6ad66f6007ebc558ab370972d37820d42cc5a9da Mon Sep 17 00:00:00 2001 From: hjcday <59719860+hjcday@users.noreply.github.com> Date: Thu, 16 Jun 2022 18:05:37 +1000 Subject: [PATCH 369/523] LibreNMS 22.6.0 (#275) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4591cfb..cc7c510 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="22.5.0" +ARG LIBRENMS_VERSION="22.6.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.15-2.2.0.3 From c8f4901ee3b6066c1e7366bdcba0fd7f4f9503ff Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 17 Jun 2022 15:39:42 +0200 Subject: [PATCH 370/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43abd66..81742b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 22.6.0-r0 (2022/06/17) + +* LibreNMS 22.6.0 (#275) + ## 22.5.0-r0 (2022/05/28) * LibreNMS 22.5.0 (#272) From 708131fe872eaa9e16eec57eeb9a08c7a8b9beb1 Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Sat, 9 Jul 2022 02:04:54 -0500 Subject: [PATCH 371/523] Reduce image size by about 200MB Remove test data that is not used in production --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index cc7c510..06a9c7f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -125,6 +125,8 @@ RUN apk --update --no-cache add -t build-dependencies \ html/plugins/Test \ html/plugins/Weathermap/.git \ html/plugins/Weathermap/configs \ + doc/ \ + tests/ \ /tmp/* COPY rootfs / From 675c93441d111cc51367ed329de5596db278f7bb Mon Sep 17 00:00:00 2001 From: d-k-7 <63383694+d-k-7@users.noreply.github.com> Date: Tue, 12 Jul 2022 20:01:51 -0400 Subject: [PATCH 372/523] Add MAX_INPUT_VARS env var (#271) --- doc/docker/environment-variables.md | 1 + examples/compose/librenms.env | 1 + examples/pwd/librenms.yml | 1 + examples/rrdcached-server/librenms.env | 1 + examples/traefik/librenms.env | 1 + rootfs/etc/cont-init.d/03-config.sh | 2 ++ 6 files changed, 7 insertions(+) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 4e7383d..2c3e0aa 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -6,6 +6,7 @@ * `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`) * `OPCACHE_MEM_SIZE`: PHP OpCache memory consumption (default `128`) diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index a1af74f..d63137c 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -1,4 +1,5 @@ MEMORY_LIMIT=256M +MAX_INPUT_VARS=1000 UPLOAD_MAX_SIZE=16M OPCACHE_MEM_SIZE=128 REAL_IP_FROM=0.0.0.0/32 diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index bf1f607..e8ebc6a 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -10,6 +10,7 @@ x-env-global: &env-global x-envlibrenms: &envlibrenms MEMORY_LIMIT: "256M" + MAX_INPUT_VARS: "1000" UPLOAD_MAX_SIZE: "16M" OPCACHE_MEM_SIZE: "128" REAL_IP_FROM: "0.0.0.0/32" diff --git a/examples/rrdcached-server/librenms.env b/examples/rrdcached-server/librenms.env index 9c934af..b9d3908 100644 --- a/examples/rrdcached-server/librenms.env +++ b/examples/rrdcached-server/librenms.env @@ -1,4 +1,5 @@ MEMORY_LIMIT=256M +MAX_INPUT_VARS=1000 UPLOAD_MAX_SIZE=16M OPCACHE_MEM_SIZE=128 REAL_IP_FROM=0.0.0.0/32 diff --git a/examples/traefik/librenms.env b/examples/traefik/librenms.env index 364b7d7..fa9ee04 100644 --- a/examples/traefik/librenms.env +++ b/examples/traefik/librenms.env @@ -1,4 +1,5 @@ MEMORY_LIMIT=256M +MAX_INPUT_VARS=1000 UPLOAD_MAX_SIZE=16M OPCACHE_MEM_SIZE=128 REAL_IP_FROM=0.0.0.0/32 diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 6c732f1..95544b5 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -33,6 +33,7 @@ LISTEN_IPV6=${LISTEN_IPV6:-true} REAL_IP_FROM=${REAL_IP_FROM:-"0.0.0.0/32"} REAL_IP_HEADER=${REAL_IP_HEADER:-"X-Forwarded-For"} LOG_IP_VAR=${LOG_IP_VAR:-remote_addr} +MAX_INPUT_VARS=${MAX_INPUT_VARS:-1000} MEMCACHED_PORT=${MEMCACHED_PORT:-11211} @@ -58,6 +59,7 @@ sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \ echo "Setting PHP INI configuration..." sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php7/php.ini sed -i "s|;date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php7/php.ini +sed -i "s|;max_input_vars.*|max_input_vars = ${MAX_INPUT_VARS}|g" /etc/php7/php.ini # OpCache echo "Setting OpCache configuration..." From b1c2fd7423cf9cd651f300fc9a50c23c44d14c0b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 13 Jul 2022 03:02:55 +0200 Subject: [PATCH 373/523] Ensure scripts exit early on error and set shellcheck (#283) Co-authored-by: CrazyMax --- rootfs/etc/cont-init.d/00-fix-logs.sh | 1 + rootfs/etc/cont-init.d/01-fix-uidgid.sh | 2 ++ rootfs/etc/cont-init.d/02-fix-perms.sh | 2 ++ rootfs/etc/cont-init.d/03-config.sh | 38 +++++++++++---------- rootfs/etc/cont-init.d/04-svc-main.sh | 22 ++++++------ rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 34 +++++++++--------- rootfs/etc/cont-init.d/06-svc-syslogng.sh | 4 ++- rootfs/etc/cont-init.d/07-svc-cron.sh | 8 +++-- rootfs/etc/cont-init.d/08-svc-snmptrapd.sh | 4 ++- rootfs/usr/bin/lnms | 2 +- rootfs/usr/local/bin/artisan | 2 +- 11 files changed, 68 insertions(+), 51 deletions(-) diff --git a/rootfs/etc/cont-init.d/00-fix-logs.sh b/rootfs/etc/cont-init.d/00-fix-logs.sh index 6d58949..d83c6af 100644 --- a/rootfs/etc/cont-init.d/00-fix-logs.sh +++ b/rootfs/etc/cont-init.d/00-fix-logs.sh @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv sh +# shellcheck shell=sh # Fix access rights to stdout and stderr chown ${PUID}:${PGID} /proc/self/fd/1 /proc/self/fd/2 || true diff --git a/rootfs/etc/cont-init.d/01-fix-uidgid.sh b/rootfs/etc/cont-init.d/01-fix-uidgid.sh index d8f58a4..44e7ab0 100644 --- a/rootfs/etc/cont-init.d/01-fix-uidgid.sh +++ b/rootfs/etc/cont-init.d/01-fix-uidgid.sh @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv sh +# shellcheck shell=sh +set -e if [ -n "${PGID}" ] && [ "${PGID}" != "$(id -g librenms)" ]; then echo "Switching to PGID ${PGID}..." diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index 71c5b31..44f20c1 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv sh +# shellcheck shell=sh +set -e echo "Fixing perms..." mkdir -p /data \ diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 95544b5..5829d1d 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -1,4 +1,6 @@ #!/usr/bin/with-contenv bash +# shellcheck shell=bash +set -e # From https://github.com/docker-library/mariadb/blob/master/docker-entrypoint.sh#L21-L41 # usage: file_env VAR [DEFAULT] @@ -17,7 +19,7 @@ file_env() { if [ "${!var:-}" ]; then val="${!var}" elif [ "${!fileVar:-}" ]; then - val="$(< "${!fileVar}")" + val="$(<"${!fileVar}")" fi export "$var"="$val" unset "$fileVar" @@ -47,14 +49,14 @@ LIBRENMS_BASE_URL=${LIBRENMS_BASE_URL:-/} # Timezone echo "Setting timezone to ${TZ}..." ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime -echo ${TZ} > /etc/timezone +echo ${TZ} >/etc/timezone # PHP echo "Setting PHP-FPM configuration..." sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \ -e "s/@UPLOAD_MAX_SIZE@/$UPLOAD_MAX_SIZE/g" \ -e "s/@CLEAR_ENV@/$CLEAR_ENV/g" \ - /tpls/etc/php7/php-fpm.d/www.conf > /etc/php7/php-fpm.d/www.conf + /tpls/etc/php7/php-fpm.d/www.conf >/etc/php7/php-fpm.d/www.conf echo "Setting PHP INI configuration..." sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php7/php.ini @@ -64,7 +66,7 @@ sed -i "s|;max_input_vars.*|max_input_vars = ${MAX_INPUT_VARS}|g" /etc/php7/php. # OpCache echo "Setting OpCache configuration..." sed -e "s/@OPCACHE_MEM_SIZE@/$OPCACHE_MEM_SIZE/g" \ - /tpls/etc/php7/conf.d/opcache.ini > /etc/php7/conf.d/opcache.ini + /tpls/etc/php7/conf.d/opcache.ini >/etc/php7/conf.d/opcache.ini # Nginx echo "Setting Nginx configuration..." @@ -72,7 +74,7 @@ sed -e "s#@UPLOAD_MAX_SIZE@#$UPLOAD_MAX_SIZE#g" \ -e "s#@REAL_IP_FROM@#$REAL_IP_FROM#g" \ -e "s#@REAL_IP_HEADER@#$REAL_IP_HEADER#g" \ -e "s#@LOG_IP_VAR@#$LOG_IP_VAR#g" \ - /tpls/etc/nginx/nginx.conf > /etc/nginx/nginx.conf + /tpls/etc/nginx/nginx.conf >/etc/nginx/nginx.conf if [ "$LISTEN_IPV6" != "true" ]; then sed -e '/listen \[::\]:/d' -i /etc/nginx/nginx.conf @@ -97,15 +99,15 @@ echo "Setting LibreNMS configuration..." # Env file if [ -z "$DB_HOST" ]; then - >&2 echo "ERROR: DB_HOST must be defined" + echo >&2 "ERROR: DB_HOST must be defined" exit 1 fi file_env 'DB_PASSWORD' if [ -z "$DB_PASSWORD" ]; then - >&2 echo "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined" + echo >&2 "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined" exit 1 fi -cat > ${LIBRENMS_PATH}/.env <${LIBRENMS_PATH}/.env < ${LIBRENMS_PATH}/config.d/directories.php <${LIBRENMS_PATH}/config.d/directories.php < ${LIBRENMS_PATH}/config.d/server.php <${LIBRENMS_PATH}/config.d/server.php < ${LIBRENMS_PATH}/config.d/user.php <${LIBRENMS_PATH}/config.d/user.php < ${LIBRENMS_PATH}/config.d/fping.php <${LIBRENMS_PATH}/config.d/fping.php < ${LIBRENMS_PATH}/config.d/ipmitool.php <${LIBRENMS_PATH}/config.d/ipmitool.php < ${LIBRENMS_PATH}/config.d/autoupdate.php <${LIBRENMS_PATH}/config.d/autoupdate.php < ${LIBRENMS_PATH}/config.d/services.php <${LIBRENMS_PATH}/config.d/services.php < ${LIBRENMS_PATH}/config.d/memcached.php <${LIBRENMS_PATH}/config.d/memcached.php < ${LIBRENMS_PATH}/config.d/rrdcached.php <${LIBRENMS_PATH}/config.d/rrdcached.php < ${LIBRENMS_PATH}/config.d/dispatcher.php <${LIBRENMS_PATH}/config.d/dispatcher.php < "/data/.env" <"/data/.env" <> "${LIBRENMS_PATH}/.env" +cat "/data/.env" >>"${LIBRENMS_PATH}/.env" chown librenms. /data/.env "${LIBRENMS_PATH}/.env" file_env 'DB_PASSWORD' if [ -z "$DB_PASSWORD" ]; then - >&2 echo "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined" + echo >&2 "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined" exit 1 fi @@ -58,13 +60,13 @@ unset DB_PASSWORD echo "Waiting ${DB_TIMEOUT}s for database to be ready..." counter=1 -while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do +while ! ${dbcmd} -e "show databases;" >/dev/null 2>&1; do sleep 1 counter=$((counter + 1)) if [ ${counter} -gt ${DB_TIMEOUT} ]; then - >&2 echo "ERROR: Failed to connect to database on $DB_HOST" + echo >&2 "ERROR: Failed to connect to database on $DB_HOST" exit 1 - fi; + fi done echo "Database ready!" counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_NAME" | wc -l) @@ -83,7 +85,7 @@ if [ "${counttables}" -eq "0" ]; then fi mkdir -p /etc/services.d/nginx -cat > /etc/services.d/nginx/run </etc/services.d/nginx/run < /etc/services.d/php-fpm/run </etc/services.d/php-fpm/run < /etc/services.d/snmpd/run </etc/services.d/snmpd/run <>" file_env 'DB_PASSWORD' if [ -z "$DB_PASSWORD" ]; then - >&2 echo "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined" + echo >&2 "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined" exit 1 fi @@ -59,30 +61,30 @@ unset DB_PASSWORD echo "Waiting ${DB_TIMEOUT}s for database to be ready..." counter=1 -while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do +while ! ${dbcmd} -e "show databases;" >/dev/null 2>&1; do sleep 1 counter=$((counter + 1)) if [ ${counter} -gt ${DB_TIMEOUT} ]; then - >&2 echo "ERROR: Failed to connect to database on $DB_HOST" + echo >&2 "ERROR: Failed to connect to database on $DB_HOST" exit 1 - fi; + fi done echo "Database ready!" -while ! ${dbcmd} -e "desc $DB_NAME.poller_cluster;" > /dev/null 2>&1; do +while ! ${dbcmd} -e "desc $DB_NAME.poller_cluster;" >/dev/null 2>&1; do sleep 1 counter=$((counter + 1)) if [ ${counter} -gt ${DB_TIMEOUT} ]; then - >&2 echo "ERROR: Table $DB_NAME.poller_cluster does not exist on $DB_HOST" + echo >&2 "ERROR: Table $DB_NAME.poller_cluster does not exist on $DB_HOST" exit 1 - fi; + fi done # Node ID if [ ! -f "/data/.env" ]; then - >&2 echo "ERROR: /data/.env file does not exist. Please run the main container first" + echo >&2 "ERROR: /data/.env file does not exist. Please run the main container first" exit 1 fi -cat "/data/.env" >> "${LIBRENMS_PATH}/.env" +cat "/data/.env" >>"${LIBRENMS_PATH}/.env" if [ -n "$DISPATCHER_NODE_ID" ]; then echo "NODE_ID: $DISPATCHER_NODE_ID" sed -i "s|^NODE_ID=.*|NODE_ID=$DISPATCHER_NODE_ID|g" "${LIBRENMS_PATH}/.env" @@ -90,11 +92,11 @@ fi # Redis if [ -z "$REDIS_HOST" ] && [ -z "$REDIS_SENTINEL" ]; then - >&2 echo "ERROR: REDIS_HOST or REDIS_SENTINEL must be defined" + echo >&2 "ERROR: REDIS_HOST or REDIS_SENTINEL must be defined" exit 1 elif [ -n "$REDIS_HOST" ]; then -echo "Setting Redis" - cat >> ${LIBRENMS_PATH}/.env <>${LIBRENMS_PATH}/.env <> ${LIBRENMS_PATH}/.env <>${LIBRENMS_PATH}/.env < /etc/services.d/dispatcher/run </etc/services.d/dispatcher/run < /etc/services.d/syslogng/run </etc/services.d/syslogng/run <> ${CRONTAB_PATH}/librenms +echo "${LIBRENMS_DAILY_SCHEDULE} cd /opt/librenms/ && bash daily.sh" >>${CRONTAB_PATH}/librenms if [ "$LIBRENMS_WEATHERMAP" = "true" ] && [ -n "$LIBRENMS_WEATHERMAP_SCHEDULE" ]; then echo "Creating LibreNMS Weathermap cron task with the following period fields: $LIBRENMS_WEATHERMAP_SCHEDULE" - echo "${LIBRENMS_WEATHERMAP_SCHEDULE} php -f /opt/librenms/html/plugins/Weathermap/map-poller.php" >> ${CRONTAB_PATH}/librenms + echo "${LIBRENMS_WEATHERMAP_SCHEDULE} php -f /opt/librenms/html/plugins/Weathermap/map-poller.php" >>${CRONTAB_PATH}/librenms fi # Fix perms @@ -34,7 +36,7 @@ chmod -R 0644 ${CRONTAB_PATH} # Create service mkdir -p /etc/services.d/cron -cat > /etc/services.d/cron/run </etc/services.d/cron/run < /etc/services.d/snmptrapd/run </etc/services.d/snmptrapd/run < Date: Wed, 13 Jul 2022 03:14:34 +0200 Subject: [PATCH 374/523] ci: test workflow (#284) Co-authored-by: CrazyMax --- .github/workflows/test.yml | 81 ++++++++++++++++++ test/.env | 7 ++ test/docker-compose.yml | 168 +++++++++++++++++++++++++++++++++++++ test/librenms.env | 14 ++++ 4 files changed, 270 insertions(+) create mode 100644 .github/workflows/test.yml create mode 100644 test/.env create mode 100644 test/docker-compose.yml create mode 100644 test/librenms.env diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..f46e9ef --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,81 @@ +name: test + +concurrency: + group: test-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - 'master' + paths-ignore: + - '**.md' + pull_request: + paths-ignore: + - '**.md' + +env: + BUILD_TAG: librenms-test + CONTAINER_NAME: librenms + RUNNING_TIMEOUT: 120 + RUNNING_LOG_CHECK: ready to handle connections + +jobs: + test: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v2 + - + name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - + name: Build + uses: docker/bake-action@v2 + with: + targets: image-local + env: + DEFAULT_TAG: ${{ env.BUILD_TAG }} + - + name: Start + run: | + docker compose up -d + working-directory: test + env: + LIBRENMS_IMAGE: ${{ env.BUILD_TAG }} + LIBRENMS_CONTAINER: ${{ env.CONTAINER_NAME }} + - + name: Test run + run: | + TIMEOUT=$((SECONDS + ${{ env.RUNNING_TIMEOUT }})) + while read LOGLINE; do + echo ${LOGLINE} + if [[ ${LOGLINE} == *"${{ env.RUNNING_LOG_CHECK }}"* ]]; then + echo "🎉 Container up!" + break + fi + if [[ $SECONDS -gt ${TIMEOUT} ]]; then + >&2 echo "❌ Failed to run ${{ env.CONTAINER_NAME }} container" + exit 1 + fi + done < <(docker logs -f ${{ env.CONTAINER_NAME }} 2>&1) + + CONTAINER_STATUS=$(docker container inspect --format "{{.State.Status}}" ${{ env.CONTAINER_NAME }}) + if [[ ${CONTAINER_STATUS} != "running" ]]; then + >&2 echo "❌ Container ${{ env.CONTAINER_NAME }} returned status '$CONTAINER_STATUS'" + exit 1 + fi + - + name: Logs + if: always() + run: | + docker compose logs + docker compose down --volumes > /dev/null 2>&1 || true + working-directory: test + env: + LIBRENMS_IMAGE: ${{ env.BUILD_TAG }} + LIBRENMS_CONTAINER: ${{ env.CONTAINER_NAME }} diff --git a/test/.env b/test/.env new file mode 100644 index 0000000..d6c0aed --- /dev/null +++ b/test/.env @@ -0,0 +1,7 @@ +TZ=Europe/Paris +PUID=1000 +PGID=1000 + +MYSQL_DATABASE=librenms +MYSQL_USER=librenms +MYSQL_PASSWORD=asupersecretpassword diff --git a/test/docker-compose.yml b/test/docker-compose.yml new file mode 100644 index 0000000..46a6abb --- /dev/null +++ b/test/docker-compose.yml @@ -0,0 +1,168 @@ +version: "3.5" + +services: + db: + image: mariadb:10.5 + container_name: librenms_db + command: + - "mysqld" + - "--innodb-file-per-table=1" + - "--lower-case-table-names=0" + - "--character-set-server=utf8mb4" + - "--collation-server=utf8mb4_unicode_ci" + volumes: + - "librenms-db:/var/lib/mysql" + environment: + - "TZ=${TZ}" + - "MYSQL_ALLOW_EMPTY_PASSWORD=yes" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + restart: always + + memcached: + image: memcached:alpine + container_name: librenms_memcached + environment: + - "TZ=${TZ}" + restart: always + + redis: + image: redis:5.0-alpine + container_name: librenms_redis + environment: + - "TZ=${TZ}" + restart: always + + librenms: + image: ${LIBRENMS_IMAGE:-librenms/librenms:latest} + container_name: ${LIBRENMS_CONTAINER:-librenms} + hostname: librenms + cap_add: + - NET_ADMIN + - NET_RAW + ports: + - target: 8000 + published: 8000 + protocol: tcp + depends_on: + - db + - memcached + volumes: + - "librenms-data:/data" + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" + restart: always + + dispatcher: + image: ${LIBRENMS_IMAGE:-librenms/librenms:latest} + container_name: librenms_dispatcher + hostname: librenms-dispatcher + cap_add: + - NET_ADMIN + - NET_RAW + depends_on: + - librenms + - redis + volumes: + - "librenms-data:/data" + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "DISPATCHER_NODE_ID=dispatcher1" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" + - "SIDECAR_DISPATCHER=1" + restart: always + + syslogng: + image: ${LIBRENMS_IMAGE:-librenms/librenms:latest} + container_name: librenms_syslogng + hostname: librenms-syslogng + cap_add: + - NET_ADMIN + - NET_RAW + depends_on: + - librenms + ports: + - target: 514 + published: 514 + protocol: tcp + - target: 514 + published: 514 + protocol: udp + volumes: + - "librenms-data:/data" + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "REDIS_PORT=6379" + - "REDIS_DB=0" + - "SIDECAR_SYSLOGNG=1" + restart: always + + snmptrapd: + image: ${LIBRENMS_IMAGE:-librenms/librenms:latest} + container_name: librenms_snmptrapd + hostname: librenms-snmptrapd + cap_add: + - NET_ADMIN + - NET_RAW + depends_on: + - librenms + ports: + - target: 162 + published: 162 + protocol: tcp + - target: 162 + published: 162 + protocol: udp + volumes: + - "librenms-data:/data" + env_file: + - "./librenms.env" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "SIDECAR_SNMPTRAPD=1" + restart: always + +volumes: + librenms-db: + librenms-data: diff --git a/test/librenms.env b/test/librenms.env new file mode 100644 index 0000000..d63137c --- /dev/null +++ b/test/librenms.env @@ -0,0 +1,14 @@ +MEMORY_LIMIT=256M +MAX_INPUT_VARS=1000 +UPLOAD_MAX_SIZE=16M +OPCACHE_MEM_SIZE=128 +REAL_IP_FROM=0.0.0.0/32 +REAL_IP_HEADER=X-Forwarded-For +LOG_IP_VAR=remote_addr + +LIBRENMS_SNMP_COMMUNITY=librenmsdocker +MEMCACHED_HOST=memcached +MEMCACHED_PORT=11211 + +LIBRENMS_WEATHERMAP=false +LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * From f6a7b495c4790c9bb41d48182268eac8e97a9278 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 13 Jul 2022 03:48:37 +0200 Subject: [PATCH 375/523] Merge documentation (#285) Co-authored-by: CrazyMax --- README.md | 363 +++++++++++++++++++-- doc/docker/environment-variables.md | 71 ---- doc/docker/ports.md | 4 - doc/docker/volumes.md | 6 - doc/notes/additional-monitoring-plugins.md | 7 - doc/notes/alert-templates.md | 5 - doc/notes/dispatcher-service.md | 15 - doc/notes/edit-config.md | 11 - doc/notes/lnms-command.md | 7 - doc/notes/plugins.md | 6 - doc/notes/snmptrapd.md | 12 - doc/notes/syslog-ng.md | 19 -- doc/notes/validate.md | 24 -- doc/upgrade.md | 9 - doc/usage.md | 34 -- 15 files changed, 336 insertions(+), 257 deletions(-) delete mode 100644 doc/docker/environment-variables.md delete mode 100644 doc/docker/ports.md delete mode 100644 doc/docker/volumes.md delete mode 100644 doc/notes/additional-monitoring-plugins.md delete mode 100644 doc/notes/alert-templates.md delete mode 100644 doc/notes/dispatcher-service.md delete mode 100644 doc/notes/edit-config.md delete mode 100644 doc/notes/lnms-command.md delete mode 100644 doc/notes/plugins.md delete mode 100644 doc/notes/snmptrapd.md delete mode 100644 doc/notes/syslog-ng.md delete mode 100644 doc/notes/validate.md delete mode 100644 doc/upgrade.md delete mode 100644 doc/usage.md diff --git a/README.md b/README.md index fcd2d9d..0e9a55a 100644 --- a/README.md +++ b/README.md @@ -16,17 +16,46 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other 💡 Want to be notified of new releases? Check out 🔔 [Diun (Docker Image Update Notifier)](https://github.com/crazy-max/diun) project! -## Demo +___ -[![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) +* [Features](#features) +* [Demo](#demo) +* [Build locally](#build-locally) +* [Image](#image) +* [Environment variables](#environment-variables) + * [General](#general) + * [Dispatcher service](#dispatcher-service) + * [Syslog-ng](#syslog-ng) + * [Snmptrapd](#snmptrapd) + * [Database](#database) + * [Misc](#misc) +* [Volumes](#volumes) +* [Ports](#ports) +* [Usage](#usage) + * [Docker Compose](#docker-compose) + * [Command line](#command-line) + * [First launch](#first-launch) +* [Upgrade](#upgrade) +* [Notes](#notes) + * [Edit configuration](#edit-configuration) + * [LNMS command](#lnms-command) + * [Validate](#validate) + * [Dispatcher service container](#dispatcher-service-container) + * [Syslog-ng container](#syslog-ng-container) + * [Snmptrapd container](#snmptrapd-container) + * [Add a LibreNMS plugin](#add-a-librenms-plugin) + * [Additional Monitoring plugins](#additional-monitoring-plugins) + * [Custom alert templates](#custom-alert-templates) +* [Contributing](#contributing) +* [License](#license) ## Features * Run as non-root user * Multi-platform image -* [Dispatcher service](doc/docker/environment-variables.md#dispatcher-service) as "sidecar" container -* Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng) -* Snmp-trap support through a ["sidecar" container](doc/docker/environment-variables.md#snmptrapd) +* [Dispatcher service](#dispatcher-service) as "sidecar" container +* Syslog-ng support through a ["sidecar" container](#syslog-ng) +* Snmp-trap support through a ["sidecar" container](#snmptrapd) * Built-in LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) * Ability to add custom Monitoring plugins * Ability to add custom alert templates @@ -38,20 +67,24 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other * [msmtpd SMTP relay](https://github.com/crazy-max/docker-msmtpd) image to send emails * [MariaDB](https://github.com/docker-library/mariadb) image as database instance +## Demo + +[![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) + ## Build locally -```shell -git clone https://github.com/librenms/docker.git docker-librenms -cd docker-librenms +```console +$ git clone https://github.com/librenms/docker.git docker-librenms +$ cd docker-librenms # Build image and output to docker (default) -docker buildx bake +$ docker buildx bake # Build multi-platform image -docker buildx bake image-all +$ docker buildx bake image-all ``` -## Multi-platform image +## Image Following platforms for this image are available: @@ -69,23 +102,299 @@ Image: librenms/librenms:latest - linux/s390x ``` -## Documentation +## Environment variables -* Docker - * [Environment variables](doc/docker/environment-variables.md) - * [Volumes](doc/docker/volumes.md) - * [Ports](doc/docker/ports.md) -* [Usage](doc/usage.md) -* Notes - * [Edit configuration](doc/notes/edit-config.md) - * [LNMS command](doc/notes/lnms-command.md) - * [Validate](doc/notes/validate.md) - * [Dispatcher service](doc/notes/dispatcher-service.md) - * [Add a LibreNMS plugin](doc/notes/plugins.md) - * [Syslog-ng](doc/notes/syslog-ng.md) - * [Additional Monitoring plugins](doc/notes/additional-monitoring-plugins.md) - * [Custom alert templates](doc/notes/alert-templates.md) -* [Upgrade](doc/upgrade.md) +### 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`) +* `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](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) on Nginx. (default `remote_addr`) + +### Dispatcher service + +> **Warning** +> +> Only used if you enable and run a [sidecar dispatcher container](#dispatcher-service-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](https://github.com/librenms/librenms/blob/master/librenms-service.py) +* `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`) + +### Syslog-ng + +> **Warning** +> +> Only used if you enable and run a [sidecar syslog-ng container](#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](#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`) + +### 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`) +* `LIBRENMS_WEATHERMAP`: Enable LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) (default `false`) +* `LIBRENMS_WEATHERMAP_SCHEDULE`: CRON expression format (default `*/5 * * * *`) +* `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/group with the specified +> `PUID` and `PGID`. If you don't give the volume correct permissions, the +> container may not start. + +## Ports + +* `8000`: HTTP port +* `514 514/udp`: Syslog ports (only used if you enable and run a [sidecar syslog-ng container](#syslog-ng-container)) +* `162 162/udp`: Snmptrapd ports (only used if you enable and run a [sidecar snmptrapd container](#snmptrapd-container)) + +## Usage + +### Docker Compose + +Docker compose is the recommended way to run this image. Copy the content of +folder [examples/compose](examples/compose) in `/var/librenms/` on your host +for example. Edit the compose and env files with your preferences and run the +following commands: + +```console +$ docker-compose up -d +$ docker-compose logs -f +``` + +### Command line + +You can also use the following minimal command: + +```console +$ docker run -d -p 8000:8000 --name librenms \ + -v $(pwd)/data:/data \ + -e "DB_HOST=db" \ + librenms/librenms:latest +``` + +> **Warning** +> +> `db` must be a running MySQL instance. + +### First launch + +On first launch, an initial administrator user will be created: + +| Login | Password | +|------------|------------| +| `librenms` | `librenms` | + +> **Note** +> +> You can create another one using the [`lnms` command](#lnms-command). + +## Upgrade + +To upgrade to the latest version of LibreNMS, pull the newer image and launch the container. LibreNMS will upgrade automatically: + +```console +$ docker-compose down +$ docker-compose pull +$ docker-compose up -d +``` + +## Notes + +### Edit configuration + +You can edit configuration of LibreNMS by placing `*.php` files inside +`/data/config` folder. Let's say you want to edit the [WebUI config](https://docs.librenms.org/Support/Configuration/#webui-settings). +Create a file called for example `/data/config/webui.php` with this content: + +```php + **Warning** +> +> `librenms` must be a valid volume already attached to a LibreNMS container. + +### Syslog-ng container + +If you want to enable syslog-ng, you have to run a "sidecar" container (see +syslog-ng service in [docker-compose.yml](examples/compose/docker-compose.yml) +example) or run a simple container like this: + +```console +$ docker run -d --name librenms_syslog \ + --env-file $(pwd)/librenms.env \ + -e SIDECAR_SYSLOGNG=1 \ + -p 514 -p 514/udp \ + -v librenms:/data \ + librenms/librenms:latest +``` + +> **Warning** +> +> `librenms` must be a valid volume already attached to a LibreNMS container. + +You have to create a configuration file to enable syslog in LibreNMS too. Create +a file called for example `/data/config/syslog.php` with this content: + +```php + **Warning** +> +> `librenms` must be a valid volume already attached to a LibreNMS container. + +### Add a LibreNMS plugin + +You can add [plugins for LibreNMS](https://docs.librenms.org/Extensions/Plugin-System/) +in `/data/plugins/`. If you add a plugin that already exists in LibreNMS, it +will be removed and yours will be used (except for Weathermap). + +> **Warning** +> +> Container has to be restarted to propagate changes. + +### Additional Monitoring plugins + +You can add a custom Monitoring plugin in `/data/monitoring-plugins/`. + +Some plugins can be found in the [Monitoring Plugins](https://github.com/monitoring-plugins/monitoring-plugins#readme) +repo, or in the [unofficial fork for Nagios](https://github.com/nagios-plugins/nagios-plugins#readme). + +> **Warning** +> +> Container has to be restarted to propagate changes. + +### Custom alert templates + +You can add [Laravel alert templates](https://docs.librenms.org/Alerting/Templates/#base-templates) +in `/data/alert-templates/`. + +> **Warning** +> +> Container has to be restarted to propagate changes. ## Contributing diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md deleted file mode 100644 index 2c3e0aa..0000000 --- a/doc/docker/environment-variables.md +++ /dev/null @@ -1,71 +0,0 @@ -## 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`) -* `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](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) on Nginx. (default `remote_addr`) - -### Dispatcher service - -> :warning: Only used if you enable and run a [sidecar dispatcher container](../notes/dispatcher-service.md) - -* `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](https://github.com/librenms/librenms/blob/master/librenms-service.py) -* `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`) - -### Syslog-ng - -> :warning: Only used if you enable and run a [sidecar syslog-ng container](../notes/syslog-ng.md) - -* `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](../notes/snmptrapd.md) - -* `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`) - -### 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`) -* `LIBRENMS_WEATHERMAP`: Enable LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) (default `false`) -* `LIBRENMS_WEATHERMAP_SCHEDULE`: CRON expression format (default `*/5 * * * *`) -* `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`) diff --git a/doc/docker/ports.md b/doc/docker/ports.md deleted file mode 100644 index 95040bd..0000000 --- a/doc/docker/ports.md +++ /dev/null @@ -1,4 +0,0 @@ -## Ports - -* `8000`: HTTP port -* `514 514/udp`: Syslog ports (only used if you enable and run a [sidecar syslog-ng container](../notes/syslog-ng.md)) diff --git a/doc/docker/volumes.md b/doc/docker/volumes.md deleted file mode 100644 index a32cea1..0000000 --- a/doc/docker/volumes.md +++ /dev/null @@ -1,6 +0,0 @@ -## 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/group with the specified `PUID` and `PGID`. If you don't -> give the volume correct permissions, the container may not start. diff --git a/doc/notes/additional-monitoring-plugins.md b/doc/notes/additional-monitoring-plugins.md deleted file mode 100644 index 2a04693..0000000 --- a/doc/notes/additional-monitoring-plugins.md +++ /dev/null @@ -1,7 +0,0 @@ -## Additional Monitoring plugins - -You can add a custom Monitoring plugin in `/data/monitoring-plugins/`. - -> :warning: Container has to be restarted to propagate changes - -Some plugins can be found in the [Monitoring Plugins](https://github.com/monitoring-plugins/monitoring-plugins#readme) repo, or in the [unofficial fork for Nagios](https://github.com/nagios-plugins/nagios-plugins#readme). diff --git a/doc/notes/alert-templates.md b/doc/notes/alert-templates.md deleted file mode 100644 index 58023a7..0000000 --- a/doc/notes/alert-templates.md +++ /dev/null @@ -1,5 +0,0 @@ -## Alert templates - -You can add [Laravel alert templates](https://docs.librenms.org/Alerting/Templates/#base-templates) in `/data/alert-templates/`. - -> :warning: Container has to be restarted to propagate changes diff --git a/doc/notes/dispatcher-service.md b/doc/notes/dispatcher-service.md deleted file mode 100644 index 1151319..0000000 --- a/doc/notes/dispatcher-service.md +++ /dev/null @@ -1,15 +0,0 @@ -## Dispatcher service - -If you want to enable the new [Dispatcher service](https://docs.librenms.org/Extensions/Dispatcher-Service/), you have to run a "sidecar" container (see dispatcher service in [docker-compose.yml](../../examples/compose/docker-compose.yml) example) or run a simple container like this: - -```bash -docker run -d --name librenms_dispatcher \ - --env-file $(pwd)/librenms.env \ - -e SIDECAR_DISPATCHER=1 \ - -e DISPATCHER_NODE_ID=dispatcher1 \ - -v librenms:/data \ - librenms/librenms:latest -``` - -> `-v librenms:/data`
-> :warning: `librenms` must be a valid volume already attached to a LibreNMS container diff --git a/doc/notes/edit-config.md b/doc/notes/edit-config.md deleted file mode 100644 index 102710a..0000000 --- a/doc/notes/edit-config.md +++ /dev/null @@ -1,11 +0,0 @@ -## Edit configuration - -You can edit configuration of LibreNMS by placing `*.php` files inside `/data/config` folder. Let's say you want to edit the [WebUI config](https://docs.librenms.org/Support/Configuration/#webui-settings). Create a file called for example `/data/config/webui.php` with this content : - -```php - ⚠️ Container has to be restarted to propagate changes diff --git a/doc/notes/snmptrapd.md b/doc/notes/snmptrapd.md deleted file mode 100644 index 3a3b67d..0000000 --- a/doc/notes/snmptrapd.md +++ /dev/null @@ -1,12 +0,0 @@ -## Snmptrapd - -If you want to enable snmptrapd, you have to run a "sidecar" container (see snmptrapd service in [docker-compose.yml](../../examples/compose/docker-compose.yml) example) or run a simple container like this : - -```bash -docker run -d --name librenms_snmptrapd \ - --env-file $(pwd)/librenms.env \ - -e SIDECAR_SNMPTRAPD=1 \ - -p 162 -p 162/udp \ - -v librenms:/data \ - librenms/librenms:latest -``` diff --git a/doc/notes/syslog-ng.md b/doc/notes/syslog-ng.md deleted file mode 100644 index 7e6d736..0000000 --- a/doc/notes/syslog-ng.md +++ /dev/null @@ -1,19 +0,0 @@ -## Syslog-ng - -If you want to enable syslog-ng, you have to run a "sidecar" container (see syslog-ng service in [docker-compose.yml](../../examples/compose/docker-compose.yml) example) or run a simple container like this : - -```bash -docker run -d --name librenms_syslog \ - --env-file $(pwd)/librenms.env \ - -e SIDECAR_SYSLOGNG=1 \ - -p 514 -p 514/udp \ - -v librenms:/data \ - librenms/librenms:latest -``` - -You have to create a configuration file to enable syslog in LibreNMS too. Create a file called for example `/data/config/syslog.php` with this content : - -```php - `-e "DB_HOST=db"`
-> :warning: `db` must be a running MySQL instance - -### First launch - -On first launch, an initial administrator user will be created: - -| Login | Password | -|------------|------------| -| `librenms` | `librenms` | - -You can create another one using the [`lnms` command](notes/lnms-command.md). From a552bf285d70781066b31e0a0e2b3cd90a23638d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 13 Jul 2022 03:50:57 +0200 Subject: [PATCH 376/523] Fix README --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0e9a55a..ec84018 100644 --- a/README.md +++ b/README.md @@ -182,8 +182,7 @@ Image: librenms/librenms:latest ## Volumes -* `/data`: Contains configuration, plugins, rrd database, logs, additional -* Monitoring plugins, additional syslog-ng config files +* `/data`: Contains configuration, plugins, rrd database, logs, additional Monitoring plugins, additional syslog-ng config files > **Warning** > @@ -240,7 +239,8 @@ On first launch, an initial administrator user will be created: ## Upgrade -To upgrade to the latest version of LibreNMS, pull the newer image and launch the container. LibreNMS will upgrade automatically: +To upgrade to the latest version of LibreNMS, pull the newer image and launch +the container. LibreNMS will upgrade automatically: ```console $ docker-compose down From 951008d69ead23601638a40de528de248ff409c0 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 14 Jul 2022 14:04:41 +0200 Subject: [PATCH 377/523] add PHP GMP extension (#288) Co-authored-by: CrazyMax --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 06a9c7f..ba7e23c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,6 +37,7 @@ RUN apk --update --no-cache add \ php7-fileinfo \ php7-fpm \ php7-gd \ + php7-gmp \ php7-json \ php7-ldap \ php7-mbstring \ From b48e1dc6e1573bd508e4bf18b74721725398fa33 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 14 Jul 2022 14:07:45 +0200 Subject: [PATCH 378/523] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81742b5..bcdd51c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 22.6.0-r1 (2022/07/14) + +* Add PHP GMP extension (#288) +* Ensure scripts exit early on error and set shellcheck (#283) +* Add `MAX_INPUT_VARS` env var (#271) + ## 22.6.0-r0 (2022/06/17) * LibreNMS 22.6.0 (#275) From a290b46d5d727763512986bf53e434f9114c3b2b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 14 Jul 2022 14:10:00 +0200 Subject: [PATCH 379/523] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcdd51c..3a6deee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * Add PHP GMP extension (#288) * Ensure scripts exit early on error and set shellcheck (#283) * Add `MAX_INPUT_VARS` env var (#271) +* Remove test data that is not used in production (#281) ## 22.6.0-r0 (2022/06/17) From cedde585f67f885d67db1e3e2b2dce9e145f64de Mon Sep 17 00:00:00 2001 From: PJGuyTen <81108571+PJGuyTen@users.noreply.github.com> Date: Thu, 14 Jul 2022 09:14:39 -0400 Subject: [PATCH 380/523] Verifying user and group in lnms script (#278) --- rootfs/usr/bin/lnms | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rootfs/usr/bin/lnms b/rootfs/usr/bin/lnms index 99695c1..3176e66 100755 --- a/rootfs/usr/bin/lnms +++ b/rootfs/usr/bin/lnms @@ -1,3 +1,7 @@ #!/usr/bin/env sh -yasu librenms:librenms php -f /opt/librenms/lnms "$@" +if [ "$(id -u -n)" = "librenms" -a "$(id -g -n)" = "librenms" ]; then + php -f /opt/librenms/lnms "$@" +else + yasu librenms:librenms php -f /opt/librenms/lnms "$@" +fi From 6cece230dafcb86f9df68d4a85f16b4e4705a64c Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Thu, 14 Jul 2022 08:18:47 -0500 Subject: [PATCH 381/523] Remove memcached and use redis fully (#286) --- README.md | 24 ++++++++++++------ examples/compose/docker-compose.yml | 24 ++++++++---------- examples/compose/librenms.env | 2 -- examples/pwd/librenms.yml | 26 +++++++------------- examples/rrdcached-server/docker-compose.yml | 24 ++++++++---------- examples/rrdcached-server/librenms.env | 2 -- examples/traefik/docker-compose.yml | 24 ++++++++---------- examples/traefik/librenms.env | 2 -- rootfs/etc/cont-init.d/03-config.sh | 10 -------- test/docker-compose.yml | 9 +------ test/librenms.env | 2 -- 11 files changed, 56 insertions(+), 93 deletions(-) diff --git a/README.md b/README.md index ec84018..b39d621 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ ___ * OPCache enabled to store precompiled script bytecode in shared memory * [s6-overlay](https://github.com/just-containers/s6-overlay/) as process supervisor * [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates (see [this template](examples/traefik)) -* [Memcached](https://github.com/docker-library/memcached) image ready to use for better scalability +* [Redis](https://github.com/docker-library/redis) image ready to use for better scalability * [RRDcached](https://github.com/crazy-max/docker-rrdcached) image ready to use for data caching and graphs * [msmtpd SMTP relay](https://github.com/crazy-max/docker-msmtpd) image to send emails * [MariaDB](https://github.com/docker-library/mariadb) image as database instance @@ -119,6 +119,21 @@ Image: librenms/librenms:latest * `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](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) on Nginx. (default `remote_addr`) +### Redis Settings + + > 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`) +* `SESSION_DRIVER`: [Driver to use for session storage](https://github.com/librenms/librenms/blob/master/config/session.php) (default `file`) +* `CACHE_DRIVER`: [Driver to use for cache and locks](https://github.com/librenms/librenms/blob/master/config/cache.php) (default `database`) + ### Dispatcher service > **Warning** @@ -128,13 +143,6 @@ Image: librenms/librenms:latest * `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](https://github.com/librenms/librenms/blob/master/librenms-service.py) -* `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`) ### Syslog-ng diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index b6b6e0b..4192133 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -20,13 +20,6 @@ services: - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" restart: always - memcached: - image: memcached:alpine - container_name: librenms_memcached - environment: - - "TZ=${TZ}" - restart: always - redis: image: redis:5.0-alpine container_name: librenms_redis @@ -54,7 +47,7 @@ services: protocol: tcp depends_on: - db - - memcached + - redis - msmtpd volumes: - "./librenms:/data" @@ -70,8 +63,8 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" restart: always dispatcher: @@ -99,8 +92,8 @@ services: - "DB_TIMEOUT=60" - "DISPATCHER_NODE_ID=dispatcher1" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_DISPATCHER=1" restart: always @@ -134,8 +127,8 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_SYSLOGNG=1" restart: always @@ -168,5 +161,8 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_SNMPTRAPD=1" restart: always diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index d63137c..3494da9 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -7,8 +7,6 @@ REAL_IP_HEADER=X-Forwarded-For LOG_IP_VAR=remote_addr LIBRENMS_SNMP_COMMUNITY=librenmsdocker -MEMCACHED_HOST=memcached -MEMCACHED_PORT=11211 LIBRENMS_WEATHERMAP=false LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index e8ebc6a..e2296c7 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -17,8 +17,6 @@ x-envlibrenms: &envlibrenms REAL_IP_HEADER: "X-Forwarded-For" LOG_IP_VAR: "remote_addr" LIBRENMS_SNMP_COMMUNITY: "librenmsdocker" - MEMCACHED_HOST: "memcached" - MEMCACHED_PORT: "11211" LIBRENMS_WEATHERMAP: "true" LIBRENMS_WEATHERMAP_SCHEDULE: "*/5 * * * *" @@ -41,12 +39,6 @@ services: MYSQL_PASSWORD: *MYSQL_PASSWORD restart: always - memcached: - image: memcached:alpine - environment: - TZ: *TZ - restart: always - redis: image: redis:5.0-alpine environment: @@ -63,7 +55,7 @@ services: - "8000:8000" depends_on: - db - - memcached + - redis volumes: - "librenms:/data" environment: @@ -77,8 +69,8 @@ services: DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" REDIS_HOST: "redis" - REDIS_PORT: "6379" - REDIS_DB: "0" + CACHE_DRIVER: "redis" + SESSION_DRIVER: "redis" restart: always dispatcher: @@ -104,8 +96,8 @@ services: DB_TIMEOUT: "60" DISPATCHER_NODE_ID: "dispatcher1234" REDIS_HOST: "redis" - REDIS_PORT: "6379" - REDIS_DB: "0" + CACHE_DRIVER: "redis" + SESSION_DRIVER: "redis" SIDECAR_DISPATCHER: "1" restart: always @@ -132,8 +124,8 @@ services: DB_TIMEOUT: "60" DISPATCHER_NODE_ID: "dispatcher5678" REDIS_HOST: "redis" - REDIS_PORT: "6379" - REDIS_DB: "0" + CACHE_DRIVER: "redis" + SESSION_DRIVER: "redis" SIDECAR_DISPATCHER: "1" restart: always @@ -158,8 +150,8 @@ services: DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" REDIS_HOST: "redis" - REDIS_PORT: "6379" - REDIS_DB: "0" + CACHE_DRIVER: "redis" + SESSION_DRIVER: "redis" SIDECAR_SYSLOGNG: "1" restart: always diff --git a/examples/rrdcached-server/docker-compose.yml b/examples/rrdcached-server/docker-compose.yml index b952bd9..c3a21c9 100644 --- a/examples/rrdcached-server/docker-compose.yml +++ b/examples/rrdcached-server/docker-compose.yml @@ -20,13 +20,6 @@ services: - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" restart: always - memcached: - image: memcached:alpine - container_name: librenms_memcached - environment: - - "TZ=${TZ}" - restart: always - redis: image: redis:5.0-alpine container_name: librenms_redis @@ -71,7 +64,7 @@ services: protocol: tcp depends_on: - db - - memcached + - redis - rrdcached - msmtpd volumes: @@ -88,8 +81,8 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" restart: always dispatcher: @@ -117,8 +110,8 @@ services: - "DB_TIMEOUT=60" - "DISPATCHER_NODE_ID=dispatcher1" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_DISPATCHER=1" restart: always @@ -152,8 +145,8 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_SYSLOGNG=1" restart: always @@ -186,5 +179,8 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_SNMPTRAPD=1" restart: always diff --git a/examples/rrdcached-server/librenms.env b/examples/rrdcached-server/librenms.env index b9d3908..9424710 100644 --- a/examples/rrdcached-server/librenms.env +++ b/examples/rrdcached-server/librenms.env @@ -7,8 +7,6 @@ REAL_IP_HEADER=X-Forwarded-For LOG_IP_VAR=remote_addr LIBRENMS_SNMP_COMMUNITY=librenmsdocker -MEMCACHED_HOST=memcached -MEMCACHED_PORT=11211 RRDCACHED_SERVER=rrdcached:42217 LIBRENMS_WEATHERMAP=false diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 81bc7f8..c6c5966 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -54,13 +54,6 @@ services: - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" restart: always - memcached: - image: memcached:alpine - container_name: librenms_memcached - environment: - - "TZ=${TZ}" - restart: always - redis: image: redis:5.0-alpine container_name: librenms_redis @@ -81,7 +74,7 @@ services: hostname: librenms depends_on: - db - - memcached + - redis - msmtpd volumes: - "./librenms:/data" @@ -105,8 +98,8 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" restart: always dispatcher: @@ -131,8 +124,8 @@ services: - "DB_TIMEOUT=60" - "DISPATCHER_NODE_ID=dispatcher1" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_DISPATCHER=1" restart: always @@ -163,8 +156,8 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_SYSLOGNG=1" restart: always @@ -194,5 +187,8 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_SNMPTRAPD=1" restart: always diff --git a/examples/traefik/librenms.env b/examples/traefik/librenms.env index fa9ee04..5627e0d 100644 --- a/examples/traefik/librenms.env +++ b/examples/traefik/librenms.env @@ -7,8 +7,6 @@ REAL_IP_HEADER=X-Forwarded-For LOG_IP_VAR=http_x_forwarded_for LIBRENMS_SNMP_COMMUNITY=librenmsdocker -MEMCACHED_HOST=memcached -MEMCACHED_PORT=11211 LIBRENMS_WEATHERMAP=false LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 5829d1d..fc5b7d6 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -165,16 +165,6 @@ cat >${LIBRENMS_PATH}/config.d/services.php <${LIBRENMS_PATH}/config.d/memcached.php <${LIBRENMS_PATH}/config.d/rrdcached.php < Date: Thu, 14 Jul 2022 15:21:03 +0200 Subject: [PATCH 382/523] Fix README --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b39d621..ebf21e2 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ ___ * [Image](#image) * [Environment variables](#environment-variables) * [General](#general) + * [Redis](#redis) * [Dispatcher service](#dispatcher-service) * [Syslog-ng](#syslog-ng) * [Snmptrapd](#snmptrapd) @@ -119,9 +120,12 @@ Image: librenms/librenms:latest * `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](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) on Nginx. (default `remote_addr`) -### Redis Settings +### Redis - > Redis variables should be set on all containers and are required when running more than one dispatcher. +> **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 From fc9666248d259650abfa7d50fdc1e40cbca408b0 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 14 Jul 2022 16:12:07 +0200 Subject: [PATCH 383/523] Update to PHP 8 and Alpine Linux 3.16 (#289) Co-authored-by: CrazyMax --- Dockerfile | 64 +++++++++---------- rootfs/etc/cont-init.d/02-fix-perms.sh | 6 +- rootfs/etc/cont-init.d/03-config.sh | 16 ++--- rootfs/etc/cont-init.d/04-svc-main.sh | 4 +- rootfs/etc/cont-init.d/06-svc-syslogng.sh | 4 +- rootfs/etc/cont-init.d/08-svc-snmptrapd.sh | 2 +- rootfs/etc/syslog-ng/syslog-ng.conf | 2 +- rootfs/tpls/etc/nginx/nginx.conf | 2 +- .../etc/{php7 => php8}/conf.d/opcache.ini | 0 .../etc/{php7 => php8}/php-fpm.d/www.conf | 4 +- 10 files changed, 52 insertions(+), 52 deletions(-) rename rootfs/tpls/etc/{php7 => php8}/conf.d/opcache.ini (100%) rename rootfs/tpls/etc/{php7 => php8}/php-fpm.d/www.conf (87%) diff --git a/Dockerfile b/Dockerfile index ba7e23c..c00f68f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ ARG LIBRENMS_VERSION="22.6.0" FROM crazymax/yasu:latest AS yasu -FROM crazymax/alpine-s6:3.15-2.2.0.3 +FROM crazymax/alpine-s6:3.16-2.2.0.3 COPY --from=yasu / / RUN apk --update --no-cache add \ @@ -29,41 +29,41 @@ RUN apk --update --no-cache add \ nmap \ openssl \ perl \ - php7 \ - php7-cli \ - php7-ctype \ - php7-curl \ - php7-dom \ - php7-fileinfo \ - php7-fpm \ - php7-gd \ - php7-gmp \ - php7-json \ - php7-ldap \ - php7-mbstring \ - php7-mcrypt \ - php7-memcached \ - php7-mysqlnd \ - php7-opcache \ - php7-openssl \ - php7-pdo \ - php7-pdo_mysql \ - php7-pear \ - php7-phar \ - php7-posix \ - php7-session \ - php7-simplexml \ - php7-snmp \ - php7-sockets \ - php7-tokenizer \ - php7-xml \ - php7-zip \ + php8 \ + php8-cli \ + php8-ctype \ + php8-curl \ + php8-dom \ + php8-fileinfo \ + php8-fpm \ + php8-gd \ + php8-gmp \ + php8-json \ + php8-ldap \ + php8-mbstring \ + php8-mysqlnd \ + php8-opcache \ + php8-openssl \ + php8-pdo \ + php8-pdo_mysql \ + php8-pecl-mcrypt \ + php8-pecl-memcached \ + php8-pear \ + php8-phar \ + php8-posix \ + php8-session \ + php8-simplexml \ + php8-snmp \ + php8-sockets \ + php8-tokenizer \ + php8-xml \ + php8-zip \ python3 \ py3-pip \ rrdtool \ runit \ shadow \ - syslog-ng=3.30.1-r4 \ + syslog-ng=3.36.1-r0 \ ttf-dejavu \ tzdata \ util-linux \ @@ -120,7 +120,7 @@ RUN apk --update --no-cache add -t build-dependencies \ && echo "foreach (glob(\"/data/config/*.php\") as \$filename) include \$filename;" >> config.php \ && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> config.php \ && git clone https://github.com/librenms-plugins/Weathermap.git ./html/plugins/Weathermap \ - && chown -R nobody.nogroup ${LIBRENMS_PATH} \ + && chown -R nobody:nogroup ${LIBRENMS_PATH} \ && apk del build-dependencies \ && rm -rf .git \ html/plugins/Test \ diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index 44f20c1..dd490c4 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -6,16 +6,16 @@ echo "Fixing perms..." mkdir -p /data \ /var/run/nginx \ /var/run/php-fpm -chown librenms. \ +chown librenms:librenms \ /data \ "${LIBRENMS_PATH}" \ "${LIBRENMS_PATH}/.env" -chown -R librenms. \ +chown -R librenms:librenms \ "${LIBRENMS_PATH}/html/plugins/Weathermap/output" \ /home/librenms \ /tpls \ /var/lib/nginx \ /var/log/nginx \ - /var/log/php7 \ + /var/log/php8 \ /var/run/nginx \ /var/run/php-fpm diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index fc5b7d6..1f80cf9 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -56,17 +56,17 @@ echo "Setting PHP-FPM configuration..." sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \ -e "s/@UPLOAD_MAX_SIZE@/$UPLOAD_MAX_SIZE/g" \ -e "s/@CLEAR_ENV@/$CLEAR_ENV/g" \ - /tpls/etc/php7/php-fpm.d/www.conf >/etc/php7/php-fpm.d/www.conf + /tpls/etc/php8/php-fpm.d/www.conf >/etc/php8/php-fpm.d/www.conf echo "Setting PHP INI configuration..." -sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php7/php.ini -sed -i "s|;date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php7/php.ini -sed -i "s|;max_input_vars.*|max_input_vars = ${MAX_INPUT_VARS}|g" /etc/php7/php.ini +sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php8/php.ini +sed -i "s|;date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php8/php.ini +sed -i "s|;max_input_vars.*|max_input_vars = ${MAX_INPUT_VARS}|g" /etc/php8/php.ini # OpCache echo "Setting OpCache configuration..." sed -e "s/@OPCACHE_MEM_SIZE@/$OPCACHE_MEM_SIZE/g" \ - /tpls/etc/php7/conf.d/opcache.ini >/etc/php7/conf.d/opcache.ini + /tpls/etc/php8/conf.d/opcache.ini >/etc/php8/conf.d/opcache.ini # Nginx echo "Setting Nginx configuration..." @@ -194,13 +194,13 @@ for plugin in ${plugins}; do rm -rf "${LIBRENMS_PATH}/html/plugins/${plugin}" fi ln -sf "/data/plugins/${plugin}" "${LIBRENMS_PATH}/html/plugins/${plugin}" - chown -h librenms. "${LIBRENMS_PATH}/html/plugins/${plugin}" + chown -h librenms:librenms "${LIBRENMS_PATH}/html/plugins/${plugin}" done # Fix perms echo "Fixing perms..." -chown librenms. /data/config /data/monitoring-plugins /data/plugins /data/rrd /data/weathermap /data/alert-templates -chown -R librenms. /data/logs ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage +chown librenms:librenms /data/config /data/monitoring-plugins /data/plugins /data/rrd /data/weathermap /data/alert-templates +chown -R librenms:librenms /data/logs ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage chmod ug+rw /data/logs /data/rrd ${LIBRENMS_PATH}/bootstrap/cache ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/storage/framework/* # Check additional Monitoring plugins diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index 4747823..6d6c8ba 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -47,7 +47,7 @@ NODE_ID=$(php -r "echo uniqid();") EOL fi cat "/data/.env" >>"${LIBRENMS_PATH}/.env" -chown librenms. /data/.env "${LIBRENMS_PATH}/.env" +chown librenms:librenms /data/.env "${LIBRENMS_PATH}/.env" file_env 'DB_PASSWORD' if [ -z "$DB_PASSWORD" ]; then @@ -98,7 +98,7 @@ cat >/etc/services.d/php-fpm/run <> Sidecar syslog-ng container detected" echo ">>" mkdir -p /data/syslog-ng /run/syslog-ng -chown librenms. /data/syslog-ng -chown -R librenms. /run/syslog-ng +chown librenms:librenms /data/syslog-ng +chown -R librenms:librenms /run/syslog-ng # Create service mkdir -p /etc/services.d/syslogng diff --git a/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh b/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh index 8d723e8..4837606 100644 --- a/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh +++ b/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh @@ -24,7 +24,7 @@ echo ">> Sidecar snmptrapd container detected" echo ">>" mkdir -p /run/snmptrapd -chown -R librenms. /run/snmptrapd +chown -R librenms:librenms /run/snmptrapd sed -ie "s/@LIBRENMS_SNMP_COMMUNITY@/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmptrapd.conf sed -ie "s/@SNMP_PROCESSING_TYPE@/${SNMP_PROCESSING_TYPE}/" /etc/snmp/snmptrapd.conf diff --git a/rootfs/etc/syslog-ng/syslog-ng.conf b/rootfs/etc/syslog-ng/syslog-ng.conf index 24ea7b3..7cd247e 100644 --- a/rootfs/etc/syslog-ng/syslog-ng.conf +++ b/rootfs/etc/syslog-ng/syslog-ng.conf @@ -1,4 +1,4 @@ -@version:3.30 +@version:3.36 options { chain_hostnames(off); diff --git a/rootfs/tpls/etc/nginx/nginx.conf b/rootfs/tpls/etc/nginx/nginx.conf index 1bfd13b..31b0daa 100644 --- a/rootfs/tpls/etc/nginx/nginx.conf +++ b/rootfs/tpls/etc/nginx/nginx.conf @@ -89,7 +89,7 @@ http { fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $path_info; fastcgi_index index.php; - fastcgi_pass unix:/var/run/php-fpm/php-fpm7.sock; + fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_buffers 256 4k; fastcgi_buffer_size 32k; fastcgi_intercept_errors on; diff --git a/rootfs/tpls/etc/php7/conf.d/opcache.ini b/rootfs/tpls/etc/php8/conf.d/opcache.ini similarity index 100% rename from rootfs/tpls/etc/php7/conf.d/opcache.ini rename to rootfs/tpls/etc/php8/conf.d/opcache.ini diff --git a/rootfs/tpls/etc/php7/php-fpm.d/www.conf b/rootfs/tpls/etc/php8/php-fpm.d/www.conf similarity index 87% rename from rootfs/tpls/etc/php7/php-fpm.d/www.conf rename to rootfs/tpls/etc/php8/php-fpm.d/www.conf index b2301d7..a120cea 100644 --- a/rootfs/tpls/etc/php7/php-fpm.d/www.conf +++ b/rootfs/tpls/etc/php8/php-fpm.d/www.conf @@ -1,10 +1,10 @@ [global] -pid = /var/run/php-fpm/php-fpm7.pid +pid = /var/run/php-fpm/php-fpm.pid daemonize = no error_log = /proc/self/fd/2 [www] -listen = /var/run/php-fpm/php-fpm7.sock +listen = /var/run/php-fpm/php-fpm.sock access.log = /dev/null pm = dynamic From d9dab05eb0b68f9b233cab45f56941a5f363dd38 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 14 Jul 2022 16:27:47 +0200 Subject: [PATCH 384/523] Move REDIS env vars in librenms.env file (#290) Co-authored-by: CrazyMax --- README.md | 4 ++-- examples/compose/docker-compose.yml | 14 ++------------ examples/compose/librenms.env | 4 ++++ examples/pwd/librenms.yml | 16 ++++------------ examples/rrdcached-server/docker-compose.yml | 14 ++------------ examples/rrdcached-server/librenms.env | 4 ++++ examples/traefik/docker-compose.yml | 14 ++------------ examples/traefik/librenms.env | 4 ++++ test/docker-compose.yml | 11 ++--------- test/librenms.env | 4 ++++ 10 files changed, 30 insertions(+), 59 deletions(-) diff --git a/README.md b/README.md index ebf21e2..3267b38 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,8 @@ Image: librenms/librenms:latest * `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](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) on Nginx. (default `remote_addr`) +* `SESSION_DRIVER`: [Driver to use for session storage](https://github.com/librenms/librenms/blob/master/config/session.php) (default `file`) +* `CACHE_DRIVER`: [Driver to use for cache and locks](https://github.com/librenms/librenms/blob/master/config/cache.php) (default `database`) ### Redis @@ -135,8 +137,6 @@ Image: librenms/librenms:latest * `REDIS_PASSWORD`: Redis password * `REDIS_DB`: Redis database (default `0`) * `REDIS_CACHE_DB`: Redis cache database (default `1`) -* `SESSION_DRIVER`: [Driver to use for session storage](https://github.com/librenms/librenms/blob/master/config/session.php) (default `file`) -* `CACHE_DRIVER`: [Driver to use for cache and locks](https://github.com/librenms/librenms/blob/master/config/cache.php) (default `database`) ### Dispatcher service diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 4192133..585cf4c 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -62,9 +62,6 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "REDIS_HOST=redis" - - "CACHE_DRIVER=redis" - - "SESSION_DRIVER=redis" restart: always dispatcher: @@ -91,9 +88,6 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "DISPATCHER_NODE_ID=dispatcher1" - - "REDIS_HOST=redis" - - "CACHE_DRIVER=redis" - - "SESSION_DRIVER=redis" - "SIDECAR_DISPATCHER=1" restart: always @@ -106,6 +100,7 @@ services: - NET_RAW depends_on: - librenms + - redis ports: - target: 514 published: 514 @@ -126,9 +121,6 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "REDIS_HOST=redis" - - "CACHE_DRIVER=redis" - - "SESSION_DRIVER=redis" - "SIDECAR_SYSLOGNG=1" restart: always @@ -141,6 +133,7 @@ services: - NET_RAW depends_on: - librenms + - redis ports: - target: 162 published: 162 @@ -161,8 +154,5 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "REDIS_HOST=redis" - - "CACHE_DRIVER=redis" - - "SESSION_DRIVER=redis" - "SIDECAR_SNMPTRAPD=1" restart: always diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index 3494da9..a1d0492 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -6,6 +6,10 @@ REAL_IP_FROM=0.0.0.0/32 REAL_IP_HEADER=X-Forwarded-For LOG_IP_VAR=remote_addr +CACHE_DRIVER=redis +SESSION_DRIVER=redis +REDIS_HOST=redis + LIBRENMS_SNMP_COMMUNITY=librenmsdocker LIBRENMS_WEATHERMAP=false diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index e2296c7..c22fcc0 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -16,6 +16,9 @@ x-envlibrenms: &envlibrenms REAL_IP_FROM: "0.0.0.0/32" REAL_IP_HEADER: "X-Forwarded-For" LOG_IP_VAR: "remote_addr" + CACHE_DRIVER: "redis" + SESSION_DRIVER: "redis" + REDIS_HOST: "redis" LIBRENMS_SNMP_COMMUNITY: "librenmsdocker" LIBRENMS_WEATHERMAP: "true" LIBRENMS_WEATHERMAP_SCHEDULE: "*/5 * * * *" @@ -68,9 +71,6 @@ services: DB_USER: *MYSQL_USER DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" - REDIS_HOST: "redis" - CACHE_DRIVER: "redis" - SESSION_DRIVER: "redis" restart: always dispatcher: @@ -95,9 +95,6 @@ services: DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" DISPATCHER_NODE_ID: "dispatcher1234" - REDIS_HOST: "redis" - CACHE_DRIVER: "redis" - SESSION_DRIVER: "redis" SIDECAR_DISPATCHER: "1" restart: always @@ -123,9 +120,6 @@ services: DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" DISPATCHER_NODE_ID: "dispatcher5678" - REDIS_HOST: "redis" - CACHE_DRIVER: "redis" - SESSION_DRIVER: "redis" SIDECAR_DISPATCHER: "1" restart: always @@ -137,6 +131,7 @@ services: - NET_RAW depends_on: - librenms + - redis volumes: - "librenms:/data" environment: @@ -149,9 +144,6 @@ services: DB_USER: *MYSQL_USER DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" - REDIS_HOST: "redis" - CACHE_DRIVER: "redis" - SESSION_DRIVER: "redis" SIDECAR_SYSLOGNG: "1" restart: always diff --git a/examples/rrdcached-server/docker-compose.yml b/examples/rrdcached-server/docker-compose.yml index c3a21c9..727cdd5 100644 --- a/examples/rrdcached-server/docker-compose.yml +++ b/examples/rrdcached-server/docker-compose.yml @@ -80,9 +80,6 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "REDIS_HOST=redis" - - "CACHE_DRIVER=redis" - - "SESSION_DRIVER=redis" restart: always dispatcher: @@ -109,9 +106,6 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "DISPATCHER_NODE_ID=dispatcher1" - - "REDIS_HOST=redis" - - "CACHE_DRIVER=redis" - - "SESSION_DRIVER=redis" - "SIDECAR_DISPATCHER=1" restart: always @@ -124,6 +118,7 @@ services: - NET_RAW depends_on: - librenms + - redis ports: - target: 514 published: 514 @@ -144,9 +139,6 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "REDIS_HOST=redis" - - "CACHE_DRIVER=redis" - - "SESSION_DRIVER=redis" - "SIDECAR_SYSLOGNG=1" restart: always @@ -159,6 +151,7 @@ services: - NET_RAW depends_on: - librenms + - redis ports: - target: 162 published: 162 @@ -179,8 +172,5 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "REDIS_HOST=redis" - - "CACHE_DRIVER=redis" - - "SESSION_DRIVER=redis" - "SIDECAR_SNMPTRAPD=1" restart: always diff --git a/examples/rrdcached-server/librenms.env b/examples/rrdcached-server/librenms.env index 9424710..44da1f5 100644 --- a/examples/rrdcached-server/librenms.env +++ b/examples/rrdcached-server/librenms.env @@ -6,6 +6,10 @@ REAL_IP_FROM=0.0.0.0/32 REAL_IP_HEADER=X-Forwarded-For LOG_IP_VAR=remote_addr +CACHE_DRIVER=redis +SESSION_DRIVER=redis +REDIS_HOST=redis + LIBRENMS_SNMP_COMMUNITY=librenmsdocker RRDCACHED_SERVER=rrdcached:42217 diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index c6c5966..1aedfce 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -97,9 +97,6 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "REDIS_HOST=redis" - - "CACHE_DRIVER=redis" - - "SESSION_DRIVER=redis" restart: always dispatcher: @@ -123,9 +120,6 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "DISPATCHER_NODE_ID=dispatcher1" - - "REDIS_HOST=redis" - - "CACHE_DRIVER=redis" - - "SESSION_DRIVER=redis" - "SIDECAR_DISPATCHER=1" restart: always @@ -135,6 +129,7 @@ services: hostname: librenms-syslogng depends_on: - librenms + - redis ports: - target: 514 published: 514 @@ -155,9 +150,6 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "REDIS_HOST=redis" - - "CACHE_DRIVER=redis" - - "SESSION_DRIVER=redis" - "SIDECAR_SYSLOGNG=1" restart: always @@ -167,6 +159,7 @@ services: hostname: librenms-snmptrapd depends_on: - librenms + - redis ports: - target: 162 published: 162 @@ -187,8 +180,5 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "REDIS_HOST=redis" - - "CACHE_DRIVER=redis" - - "SESSION_DRIVER=redis" - "SIDECAR_SNMPTRAPD=1" restart: always diff --git a/examples/traefik/librenms.env b/examples/traefik/librenms.env index 5627e0d..d650129 100644 --- a/examples/traefik/librenms.env +++ b/examples/traefik/librenms.env @@ -6,6 +6,10 @@ REAL_IP_FROM=0.0.0.0/32 REAL_IP_HEADER=X-Forwarded-For LOG_IP_VAR=http_x_forwarded_for +CACHE_DRIVER=redis +SESSION_DRIVER=redis +REDIS_HOST=redis + LIBRENMS_SNMP_COMMUNITY=librenmsdocker LIBRENMS_WEATHERMAP=false diff --git a/test/docker-compose.yml b/test/docker-compose.yml index 4438dc7..e4b092c 100644 --- a/test/docker-compose.yml +++ b/test/docker-compose.yml @@ -54,9 +54,6 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" restart: always dispatcher: @@ -83,9 +80,6 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "DISPATCHER_NODE_ID=dispatcher1" - - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" - "SIDECAR_DISPATCHER=1" restart: always @@ -98,6 +92,7 @@ services: - NET_RAW depends_on: - librenms + - redis ports: - target: 514 published: 514 @@ -118,9 +113,6 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" - "SIDECAR_SYSLOGNG=1" restart: always @@ -133,6 +125,7 @@ services: - NET_RAW depends_on: - librenms + - redis ports: - target: 162 published: 162 diff --git a/test/librenms.env b/test/librenms.env index 3494da9..a1d0492 100644 --- a/test/librenms.env +++ b/test/librenms.env @@ -6,6 +6,10 @@ REAL_IP_FROM=0.0.0.0/32 REAL_IP_HEADER=X-Forwarded-For LOG_IP_VAR=remote_addr +CACHE_DRIVER=redis +SESSION_DRIVER=redis +REDIS_HOST=redis + LIBRENMS_SNMP_COMMUNITY=librenmsdocker LIBRENMS_WEATHERMAP=false From 9c30554e810f1c29b89e4f310e16d03a7a1a87d4 Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Thu, 14 Jul 2022 23:23:36 -0500 Subject: [PATCH 385/523] YAML based config (#225) --- README.md | 53 +++++++++++++++++++++------ rootfs/etc/cont-init.d/03-config.sh | 57 +++++++++++++---------------- 2 files changed, 67 insertions(+), 43 deletions(-) diff --git a/README.md b/README.md index 3267b38..f764685 100644 --- a/README.md +++ b/README.md @@ -37,8 +37,12 @@ ___ * [Command line](#command-line) * [First launch](#first-launch) * [Upgrade](#upgrade) +* [Configuration Management](#configuration-management) + * [Initial Configuration](#initial-configuration) + * [Live Configuration](#live-configuration) + * [Re-Apply YAML Config](#re-apply-yaml-config) + * [Live Config](#live-config) * [Notes](#notes) - * [Edit configuration](#edit-configuration) * [LNMS command](#lnms-command) * [Validate](#validate) * [Dispatcher service container](#dispatcher-service-container) @@ -260,13 +264,40 @@ $ docker-compose pull $ docker-compose up -d ``` -## Notes +## Configuration Management -### Edit configuration +### Initial Configuration -You can edit configuration of LibreNMS by placing `*.php` files inside -`/data/config` folder. Let's say you want to edit the [WebUI config](https://docs.librenms.org/Support/Configuration/#webui-settings). -Create a file called for example `/data/config/webui.php` with this content: +You 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). +Create a file called for example `/data/config/webui.yaml` with this content : + +```yaml +page_refresh: 300 +webui.default_dashboard_id: 0 +``` + +This configuration will be seeded into the LibreNMS database when it is first deployed +and will override the default values. + +### Live Configuration + +You can edit the running configuration via the LibreNMS web UI or `lnms config:set` + +```bash +docker-compose exec librenms lnms config:set page_refresh 300 +``` + +### Re-Apply YAML Config + +Set `REAPPLY_YAML_CONFIG=1` to overwrite any settings that are set during initial config +or via user config back to their initial values every time the container is deployed. + +### Live Config + +Using this config method, configuration changes will be reflected live on the containers, BUT +you will be unable to edit the configured settings from within the LibreNMS web UI or lnms config:set. + +The same example using PHP `/data/config/webui.php` ```php `librenms` must be a valid volume already attached to a LibreNMS container. You have to create a configuration file to enable syslog in LibreNMS too. Create -a file called for example `/data/config/syslog.php` with this content: +a file called for example `/data/config/syslog.yaml` with this content : -```php -${LIBRENMS_PATH}/config.d/directories.php <${LIBRENMS_PATH}/database/seeders/config/directories.yaml <${LIBRENMS_PATH}/config.d/server.php <${LIBRENMS_PATH}/database/seeders/config/server.yaml <${LIBRENMS_PATH}/config.d/user.php <${LIBRENMS_PATH}/database/seeders/config/user.yaml <${LIBRENMS_PATH}/config.d/fping.php <${LIBRENMS_PATH}/database/seeders/config/fping.yaml <${LIBRENMS_PATH}/config.d/ipmitool.php <${LIBRENMS_PATH}/database/seeders/config/ipmitool.yaml <${LIBRENMS_PATH}/config.d/autoupdate.php <${LIBRENMS_PATH}/config.d/services.php <${LIBRENMS_PATH}/database/seeders/config/services.yaml <${LIBRENMS_PATH}/config.d/rrdcached.php <${LIBRENMS_PATH}/database/seeders/config/rrdcached.yaml <${LIBRENMS_PATH}/config.d/dispatcher.php <${LIBRENMS_PATH}/database/seeders/config/dispatcher.yaml < Date: Fri, 15 Jul 2022 14:01:24 -0500 Subject: [PATCH 386/523] Shallow clone to reduce build time (#291) --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index c00f68f..926846d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -110,7 +110,7 @@ RUN apk --update --no-cache add -t build-dependencies \ linux-headers \ musl-dev \ python3-dev \ - && git clone --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git . \ + && git clone --depth=1 --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git . \ && pip3 install --ignore-installed -r requirements.txt --upgrade \ && COMPOSER_CACHE_DIR="/tmp" composer install --no-dev --no-interaction --no-ansi \ && mkdir config.d \ @@ -119,7 +119,7 @@ RUN apk --update --no-cache add -t build-dependencies \ && sed -i '/runningUser/d' lnms \ && echo "foreach (glob(\"/data/config/*.php\") as \$filename) include \$filename;" >> config.php \ && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> config.php \ - && git clone https://github.com/librenms-plugins/Weathermap.git ./html/plugins/Weathermap \ + && git clone --depth=1 https://github.com/librenms-plugins/Weathermap.git ./html/plugins/Weathermap \ && chown -R nobody:nogroup ${LIBRENMS_PATH} \ && apk del build-dependencies \ && rm -rf .git \ From 27c4be0b7c3217ef4eca732f26ed46823b0cf96d Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Sat, 16 Jul 2022 08:16:52 -0500 Subject: [PATCH 387/523] Always set rrdtool version (#292) --- rootfs/etc/cont-init.d/03-config.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 201b3b6..ab662f0 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -165,10 +165,10 @@ if [ -n "${RRDCACHED_SERVER}" ]; then ${LIBRENMS_PATH}/database/seeders/config/rrdcached.yaml <${LIBRENMS_PATH}/database/seeders/config/rrdtool.yaml <${LIBRENMS_PATH}/database/seeders/config/dispatcher.yaml < Date: Sat, 16 Jul 2022 15:57:08 +0200 Subject: [PATCH 388/523] test-edge workflow to test librenms master branch (#293) Co-authored-by: CrazyMax --- .github/workflows/test-edge.yml | 84 +++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 .github/workflows/test-edge.yml diff --git a/.github/workflows/test-edge.yml b/.github/workflows/test-edge.yml new file mode 100644 index 0000000..6a098db --- /dev/null +++ b/.github/workflows/test-edge.yml @@ -0,0 +1,84 @@ +name: test-edge + +concurrency: + group: test-edge-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - 'master' + paths-ignore: + - '**.md' + pull_request: + paths-ignore: + - '**.md' + +env: + BUILD_TAG: librenms-test + CONTAINER_NAME: librenms + RUNNING_TIMEOUT: 120 + RUNNING_LOG_CHECK: ready to handle connections + +jobs: + test: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - + name: Checkout + uses: actions/checkout@v2 + - + name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - + name: Build + uses: docker/bake-action@v2 + with: + targets: image-local + set: | + *.args.LIBRENMS_VERSION=master + env: + DEFAULT_TAG: ${{ env.BUILD_TAG }} + - + name: Start + run: | + docker compose up -d + working-directory: test + env: + LIBRENMS_IMAGE: ${{ env.BUILD_TAG }} + LIBRENMS_CONTAINER: ${{ env.CONTAINER_NAME }} + - + name: Test run + run: | + TIMEOUT=$((SECONDS + ${{ env.RUNNING_TIMEOUT }})) + while read LOGLINE; do + echo ${LOGLINE} + if [[ ${LOGLINE} == *"${{ env.RUNNING_LOG_CHECK }}"* ]]; then + echo "🎉 Container up!" + break + fi + if [[ $SECONDS -gt ${TIMEOUT} ]]; then + >&2 echo "❌ Failed to run ${{ env.CONTAINER_NAME }} container" + exit 1 + fi + done < <(docker logs -f ${{ env.CONTAINER_NAME }} 2>&1) + + CONTAINER_STATUS=$(docker container inspect --format "{{.State.Status}}" ${{ env.CONTAINER_NAME }}) + if [[ ${CONTAINER_STATUS} != "running" ]]; then + >&2 echo "❌ Container ${{ env.CONTAINER_NAME }} returned status '$CONTAINER_STATUS'" + exit 1 + fi + - + name: Logs + if: always() + run: | + docker compose logs + docker compose down --volumes > /dev/null 2>&1 || true + working-directory: test + env: + LIBRENMS_IMAGE: ${{ env.BUILD_TAG }} + LIBRENMS_CONTAINER: ${{ env.CONTAINER_NAME }} From afba3150123e809d0ae32d93f06b9980b0975456 Mon Sep 17 00:00:00 2001 From: La Date: Mon, 25 Jul 2022 03:16:16 +0800 Subject: [PATCH 389/523] LibreNMS 22.7.0 (#295) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 926846d..f09a150 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="22.6.0" +ARG LIBRENMS_VERSION="22.7.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.16-2.2.0.3 From 07f3baab8e8a5c017d80b596e47897c33272797e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 24 Jul 2022 21:22:38 +0200 Subject: [PATCH 390/523] Update CHANGELOG --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a6deee..2f0e223 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## 22.7.0-r0 (2022/07/24) + +* LibreNMS 22.7.0 (#295) +* Add workflow to test librenms master branch (#293) +* Always set `rrdtool` version (#292) +* Shallow clone to reduce build time (#291) +* YAML based config (#225) +* Move Redis env vars in `librenms.env` file (#290) +* Remove memcached and use Redis fully (#286) +* Verifying user and group in `lnms` script (#278) +* Update to PHP 8 and Alpine Linux 3.16 (#289) + ## 22.6.0-r1 (2022/07/14) * Add PHP GMP extension (#288) From 3c84a0a6b505e155165ddbb698c1f0c025559c02 Mon Sep 17 00:00:00 2001 From: Aterfax Date: Fri, 12 Aug 2022 23:55:30 +0100 Subject: [PATCH 391/523] Fix issue with alerts not functioning correctly. (#298) This should address the issues mentioned in https://github.com/librenms/docker/issues/297 --- examples/compose/librenms.env | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index a1d0492..79a770a 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -9,6 +9,7 @@ LOG_IP_VAR=remote_addr CACHE_DRIVER=redis SESSION_DRIVER=redis REDIS_HOST=redis +REDIS_SCHEME=tcp LIBRENMS_SNMP_COMMUNITY=librenmsdocker From dc731efce3182a260366d87b458ec51ffcb352c7 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 13 Aug 2022 01:28:11 +0200 Subject: [PATCH 392/523] Ensure REDIS_SCHEME is set with default value (#300) Co-authored-by: CrazyMax --- examples/compose/librenms.env | 1 - rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index 79a770a..a1d0492 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -9,7 +9,6 @@ LOG_IP_VAR=remote_addr CACHE_DRIVER=redis SESSION_DRIVER=redis REDIS_HOST=redis -REDIS_SCHEME=tcp LIBRENMS_SNMP_COMMUNITY=librenmsdocker diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index ff9ac61..a043999 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -34,7 +34,7 @@ SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} #DISPATCHER_NODE_ID=${DISPATCHER_NODE_ID:-dispatcher1} #REDIS_HOST=${REDIS_HOST:-localhost} -#REDIS_SCHEME=${REDIS_SCHEME:-tcp} +REDIS_SCHEME=${REDIS_SCHEME:-tcp} REDIS_PORT=${REDIS_PORT:-6379} #REDIS_SENTINEL=${REDIS_SENTINEL:-localhost} REDIS_SENTINEL_SERVICE=${REDIS_SENTINEL_SERVICE:-librenms} @@ -108,6 +108,7 @@ elif [ -n "$REDIS_SENTINEL" ]; then cat >>${LIBRENMS_PATH}/.env < Date: Sat, 13 Aug 2022 01:46:30 +0200 Subject: [PATCH 393/523] Fix symlink and perms for weathermap plugin configs folder (#301) Co-authored-by: CrazyMax --- rootfs/etc/cont-init.d/03-config.sh | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index ab662f0..aa30aa7 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -88,7 +88,21 @@ sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.c # Init files and folders echo "Initializing LibreNMS files / folders..." mkdir -p /data/config /data/logs /data/monitoring-plugins /data/plugins /data/rrd /data/weathermap /data/alert-templates -ln -sf /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/configs + +if [ -d "${LIBRENMS_PATH}/html/plugins/Weathermap/configs" ] && [ ! -L "${LIBRENMS_PATH}/html/plugins/Weathermap/configs" ]; then + rm -rf ${LIBRENMS_PATH}/html/plugins/Weathermap/configs +fi +if [ ! -L "${LIBRENMS_PATH}/html/plugins/Weathermap/configs" ]; then + ln -sf /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/configs +fi +chown -h librenms:librenms ${LIBRENMS_PATH}/html/plugins/Weathermap/configs +chown -R librenms:librenms /data/weathermap + +# cleanup bad symlink: https://github.com/librenms/docker/issues/294#issuecomment-1190389960 +if [ -L "/data/weathermap/weathermap" ]; then + rm /data/weathermap/weathermap +fi + touch /data/logs/librenms.log rm -rf ${LIBRENMS_PATH}/logs rm -f ${LIBRENMS_PATH}/config.d/* From 2516b309d9322f33272a85ffb47d084cc4168d92 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 13 Aug 2022 02:10:41 +0200 Subject: [PATCH 394/523] Remove Weathermap plugin while waiting for a fix upstream (#302) Co-authored-by: CrazyMax --- rootfs/etc/cont-init.d/03-config.sh | 4 ++++ rootfs/etc/cont-init.d/07-svc-cron.sh | 3 +++ 2 files changed, 7 insertions(+) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index aa30aa7..de0d3ba 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -103,6 +103,10 @@ if [ -L "/data/weathermap/weathermap" ]; then rm /data/weathermap/weathermap fi +# FIXME: bring back when weathermap plugin compatible with PHP 8 +# https://github.com/librenms/docker/issues/296 +rm -rf ${LIBRENMS_PATH}/html/plugins/Weathermap + touch /data/logs/librenms.log rm -rf ${LIBRENMS_PATH}/logs rm -f ${LIBRENMS_PATH}/config.d/* diff --git a/rootfs/etc/cont-init.d/07-svc-cron.sh b/rootfs/etc/cont-init.d/07-svc-cron.sh index dd9269c..6d302ad 100644 --- a/rootfs/etc/cont-init.d/07-svc-cron.sh +++ b/rootfs/etc/cont-init.d/07-svc-cron.sh @@ -16,6 +16,9 @@ if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$SIDEC exit 0 fi +# FIXME: remove this line when weathermap plugin compatible with PHP 8 +LIBRENMS_WEATHERMAP=false + # Init rm -rf ${CRONTAB_PATH} mkdir -m 0644 -p ${CRONTAB_PATH} From e95987bcf2239e48042d07948ab059d67ac382c1 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 13 Aug 2022 02:12:15 +0200 Subject: [PATCH 395/523] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f0e223..dd8767e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 22.7.0-r1 (2022/08/13) + +* Remove Weathermap plugin while waiting for a fix upstream (#302) +* Fix symlink and perms for weathermap plugin configs folder (#301) +* Ensure `REDIS_SCHEME` is set with default value (#300) + ## 22.7.0-r0 (2022/07/24) * LibreNMS 22.7.0 (#295) From d7496bbadef4f69b3db7d099f14222d9600b97a6 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 14 Aug 2022 15:29:29 +0200 Subject: [PATCH 396/523] Fix container restart state with Weathermap (#304) Co-authored-by: CrazyMax --- rootfs/etc/cont-init.d/02-fix-perms.sh | 1 - rootfs/etc/cont-init.d/03-config.sh | 24 +++++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index dd490c4..f6ff9e5 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -11,7 +11,6 @@ chown librenms:librenms \ "${LIBRENMS_PATH}" \ "${LIBRENMS_PATH}/.env" chown -R librenms:librenms \ - "${LIBRENMS_PATH}/html/plugins/Weathermap/output" \ /home/librenms \ /tpls \ /var/lib/nginx \ diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index de0d3ba..7f438f9 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -89,24 +89,26 @@ sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.c echo "Initializing LibreNMS files / folders..." mkdir -p /data/config /data/logs /data/monitoring-plugins /data/plugins /data/rrd /data/weathermap /data/alert-templates -if [ -d "${LIBRENMS_PATH}/html/plugins/Weathermap/configs" ] && [ ! -L "${LIBRENMS_PATH}/html/plugins/Weathermap/configs" ]; then - rm -rf ${LIBRENMS_PATH}/html/plugins/Weathermap/configs +if [ -d "${LIBRENMS_PATH}/html/plugins/Weathermap" ]; then + if [ -d "${LIBRENMS_PATH}/html/plugins/Weathermap/configs" ] && [ ! -L "${LIBRENMS_PATH}/html/plugins/Weathermap/configs" ]; then + rm -rf ${LIBRENMS_PATH}/html/plugins/Weathermap/configs + fi + if [ ! -L "${LIBRENMS_PATH}/html/plugins/Weathermap/configs" ]; then + ln -sf /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/configs + fi + chown -h librenms:librenms ${LIBRENMS_PATH}/html/plugins/Weathermap/configs + chown -R librenms:librenms /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/output + + # FIXME: bring back when weathermap plugin compatible with PHP 8 + # https://github.com/librenms/docker/issues/296 + rm -rf ${LIBRENMS_PATH}/html/plugins/Weathermap fi -if [ ! -L "${LIBRENMS_PATH}/html/plugins/Weathermap/configs" ]; then - ln -sf /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/configs -fi -chown -h librenms:librenms ${LIBRENMS_PATH}/html/plugins/Weathermap/configs -chown -R librenms:librenms /data/weathermap # cleanup bad symlink: https://github.com/librenms/docker/issues/294#issuecomment-1190389960 if [ -L "/data/weathermap/weathermap" ]; then rm /data/weathermap/weathermap fi -# FIXME: bring back when weathermap plugin compatible with PHP 8 -# https://github.com/librenms/docker/issues/296 -rm -rf ${LIBRENMS_PATH}/html/plugins/Weathermap - touch /data/logs/librenms.log rm -rf ${LIBRENMS_PATH}/logs rm -f ${LIBRENMS_PATH}/config.d/* From 803f8a8cffced97fe931900b25017e19e36b1e29 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 14 Aug 2022 15:31:06 +0200 Subject: [PATCH 397/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd8767e..e881d8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 22.7.0-r2 (2022/08/14) + +* Fix container restart state with Weathermap (#304) + ## 22.7.0-r1 (2022/08/13) * Remove Weathermap plugin while waiting for a fix upstream (#302) From 479e03be24a11c19986f98189360c4585bd1803d Mon Sep 17 00:00:00 2001 From: La Date: Tue, 23 Aug 2022 10:01:14 +0800 Subject: [PATCH 398/523] LibreNMS 22.8.0 (#306) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f09a150..2377809 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG LIBRENMS_VERSION="22.7.0" +ARG LIBRENMS_VERSION="22.8.0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:3.16-2.2.0.3 From 528545688de5e03cfe129b9920baef1514e8406a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 23 Aug 2022 04:08:57 +0200 Subject: [PATCH 399/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ README.md | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e881d8a..eac1ec0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 22.8.0-r0 (2022/08/23) + +* LibreNMS 22.8.0 (#306) + ## 22.7.0-r2 (2022/08/14) * Fix container restart state with Weathermap (#304) diff --git a/README.md b/README.md index f764685..bb9684a 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,11 @@ ___ * [msmtpd SMTP relay](https://github.com/crazy-max/docker-msmtpd) image to send emails * [MariaDB](https://github.com/docker-library/mariadb) image as database instance +> **Note** +> +> Weathermap plugin is not compatible since LibreNMS 22.7.0 Docker image and +> has been temporarily removed. More info: https://github.com/librenms/docker/issues/296 + ## Demo [![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) From 38791ad0af540f9869ab3212d3741f70ee78a36f Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 23 Aug 2022 20:03:24 +0200 Subject: [PATCH 400/523] Update weathermap plugin to 697ac3c (#309) Co-authored-by: CrazyMax --- Dockerfile | 14 +++++++++++--- rootfs/etc/cont-init.d/03-config.sh | 4 ---- rootfs/etc/cont-init.d/07-svc-cron.sh | 3 --- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2377809..597531e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,11 @@ +# syntax=docker/dockerfile:1 + ARG LIBRENMS_VERSION="22.8.0" +ARG WEATHERMAP_PLUGIN_COMMIT="697ac3cdb517aedc81d3b0b2e9ae5582234dca54" +ARG ALPINE_VERSION="3.16" FROM crazymax/yasu:latest AS yasu -FROM crazymax/alpine-s6:3.16-2.2.0.3 - +FROM crazymax/alpine-s6:${ALPINE_VERSION}-2.2.0.3 COPY --from=yasu / / RUN apk --update --no-cache add \ busybox-extras \ @@ -105,6 +108,7 @@ RUN addgroup -g ${PGID} librenms \ WORKDIR ${LIBRENMS_PATH} ARG LIBRENMS_VERSION +ARG WEATHERMAP_PLUGIN_COMMIT RUN apk --update --no-cache add -t build-dependencies \ build-base \ linux-headers \ @@ -119,7 +123,11 @@ RUN apk --update --no-cache add -t build-dependencies \ && sed -i '/runningUser/d' lnms \ && echo "foreach (glob(\"/data/config/*.php\") as \$filename) include \$filename;" >> config.php \ && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> config.php \ - && git clone --depth=1 https://github.com/librenms-plugins/Weathermap.git ./html/plugins/Weathermap \ + && ( \ + git clone --depth=1 https://github.com/librenms-plugins/Weathermap.git ./html/plugins/Weathermap \ + && cd ./html/plugins/Weathermap \ + && git reset --hard $WEATHERMAP_PLUGIN_COMMIT \ + ) \ && chown -R nobody:nogroup ${LIBRENMS_PATH} \ && apk del build-dependencies \ && rm -rf .git \ diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 7f438f9..dd2fc40 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -98,10 +98,6 @@ if [ -d "${LIBRENMS_PATH}/html/plugins/Weathermap" ]; then fi chown -h librenms:librenms ${LIBRENMS_PATH}/html/plugins/Weathermap/configs chown -R librenms:librenms /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/output - - # FIXME: bring back when weathermap plugin compatible with PHP 8 - # https://github.com/librenms/docker/issues/296 - rm -rf ${LIBRENMS_PATH}/html/plugins/Weathermap fi # cleanup bad symlink: https://github.com/librenms/docker/issues/294#issuecomment-1190389960 diff --git a/rootfs/etc/cont-init.d/07-svc-cron.sh b/rootfs/etc/cont-init.d/07-svc-cron.sh index 6d302ad..dd9269c 100644 --- a/rootfs/etc/cont-init.d/07-svc-cron.sh +++ b/rootfs/etc/cont-init.d/07-svc-cron.sh @@ -16,9 +16,6 @@ if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$SIDEC exit 0 fi -# FIXME: remove this line when weathermap plugin compatible with PHP 8 -LIBRENMS_WEATHERMAP=false - # Init rm -rf ${CRONTAB_PATH} mkdir -m 0644 -p ${CRONTAB_PATH} From 5d5c4fe6dc2d712318386019f938440366dfad02 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 23 Aug 2022 20:04:28 +0200 Subject: [PATCH 401/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index eac1ec0..c14d78b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 22.8.0-r1 (2022/08/23) + +* Update weathermap plugin to `697ac3c` (#309) + ## 22.8.0-r0 (2022/08/23) * LibreNMS 22.8.0 (#306) From aa962b1ba9bfc38c05cf29eeceaca134e3a7c68e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 23 Aug 2022 20:09:46 +0200 Subject: [PATCH 402/523] Update README --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index bb9684a..f764685 100644 --- a/README.md +++ b/README.md @@ -72,11 +72,6 @@ ___ * [msmtpd SMTP relay](https://github.com/crazy-max/docker-msmtpd) image to send emails * [MariaDB](https://github.com/docker-library/mariadb) image as database instance -> **Note** -> -> Weathermap plugin is not compatible since LibreNMS 22.7.0 Docker image and -> has been temporarily removed. More info: https://github.com/librenms/docker/issues/296 - ## Demo [![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) From cabd8e407c8be447485bacab1f9108bf10bc0852 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Sep 2022 06:53:15 +0000 Subject: [PATCH 403/523] Bump actions/checkout from 2 to 3 Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/test-edge.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-edge.yml b/.github/workflows/test-edge.yml index 6a098db..534685c 100644 --- a/.github/workflows/test-edge.yml +++ b/.github/workflows/test-edge.yml @@ -27,7 +27,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f46e9ef..6e5cea4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 From 0d2a2e38646030adcf70899d8654aaea5450f091 Mon Sep 17 00:00:00 2001 From: La Date: Thu, 22 Sep 2022 08:15:56 +0800 Subject: [PATCH 404/523] update to 22.9.0 (#314) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 597531e..472fca4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="22.8.0" +ARG LIBRENMS_VERSION="22.9.0" ARG WEATHERMAP_PLUGIN_COMMIT="697ac3cdb517aedc81d3b0b2e9ae5582234dca54" ARG ALPINE_VERSION="3.16" From 00fa54010b81f7418218a82714c09ea1ba5cecb7 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 22 Sep 2022 23:43:38 +0200 Subject: [PATCH 405/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c14d78b..5d099aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 22.9.0-r0 (2022/09/22) + +* LibreNMS 22.9.0 (#314) + ## 22.8.0-r1 (2022/08/23) * Update weathermap plugin to `697ac3c` (#309) From e35fa8e60095aacd59e1541219b8c7721e720884 Mon Sep 17 00:00:00 2001 From: Seti Date: Thu, 22 Sep 2022 23:48:11 +0200 Subject: [PATCH 406/523] Add openssh-client for the check_by_ssh plugin (#312) --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 472fca4..ea5d61d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,6 +31,7 @@ RUN apk --update --no-cache add \ nginx \ nmap \ openssl \ + openssh-client \ perl \ php8 \ php8-cli \ From ee333d43572517b4a0901640927913466f6e65e2 Mon Sep 17 00:00:00 2001 From: La Date: Sat, 22 Oct 2022 14:52:43 +0800 Subject: [PATCH 407/523] LibreNMS 22.10.0 (#318) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ea5d61d..15fa9ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="22.9.0" +ARG LIBRENMS_VERSION="22.10.0" ARG WEATHERMAP_PLUGIN_COMMIT="697ac3cdb517aedc81d3b0b2e9ae5582234dca54" ARG ALPINE_VERSION="3.16" From 7cf09447a56a0e5c0d3e0e119d452be8bae0141f Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Sat, 22 Oct 2022 02:20:36 -0500 Subject: [PATCH 408/523] Enable the First Run Wizard (#280) Use the first run wizard instead of creating an admin user with a known password. --- README.md | 8 ++------ rootfs/etc/cont-init.d/04-svc-main.sh | 11 ++++++----- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index f764685..7c5e225 100644 --- a/README.md +++ b/README.md @@ -243,15 +243,11 @@ $ docker run -d -p 8000:8000 --name librenms \ ### First launch -On first launch, an initial administrator user will be created: - -| Login | Password | -|------------|------------| -| `librenms` | `librenms` | +When you first access the webui, you will be prompted to create an admin user. > **Note** > -> You can create another one using the [`lnms` command](#lnms-command). +> If you lose access, you can create another one using the [`lnms` command](#lnms-command). ## Upgrade diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index 6d6c8ba..29df329 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -69,7 +69,13 @@ while ! ${dbcmd} -e "show databases;" >/dev/null 2>&1; do fi done echo "Database ready!" + +# Enable first run wizard if db is empty counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_NAME" | wc -l) +if [ "${counttables}" -eq "0" ]; then + echo "Enabling First Run Wizard..." + echo "INSTALL=user,finish">> ${LIBRENMS_PATH}/.env +fi echo "Updating database schema..." lnms migrate --force --no-ansi --no-interaction @@ -79,11 +85,6 @@ echo "Clear cache" artisan cache:clear --no-interaction artisan config:cache --no-interaction -if [ "${counttables}" -eq "0" ]; then - echo "Creating admin user..." - lnms user:add --password=librenms --email=librenms@librenms.docker --role=admin --no-ansi --no-interaction librenms -fi - mkdir -p /etc/services.d/nginx cat >/etc/services.d/nginx/run < Date: Sat, 22 Oct 2022 09:23:07 +0200 Subject: [PATCH 409/523] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d099aa..8cc6ae3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 22.10.0-r0 (2022/10/22) + +* LibreNMS 22.10.0 (#314) +* Enable the First Run Wizard (#280) +* Add `openssh-client` package for the `check_by_ssh` plugin (#312) + ## 22.9.0-r0 (2022/09/22) * LibreNMS 22.9.0 (#314) From 4c05fc80c340d02a67f1890aed65130eaa8da402 Mon Sep 17 00:00:00 2001 From: Santiago Z Date: Sun, 23 Oct 2022 15:20:18 -0300 Subject: [PATCH 410/523] Update CHANGELOG.md (#319) Fix id PR --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8cc6ae3..c11e292 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## 22.10.0-r0 (2022/10/22) -* LibreNMS 22.10.0 (#314) +* LibreNMS 22.10.0 (#318) * Enable the First Run Wizard (#280) * Add `openssh-client` package for the `check_by_ssh` plugin (#312) From 938828f65b2a390c32dd68e9fc6270a43e0af352 Mon Sep 17 00:00:00 2001 From: olivierbouffet Date: Sat, 26 Nov 2022 16:53:51 +0100 Subject: [PATCH 411/523] Add ability to configure php-fpm (#320) --- README.md | 4 ++++ rootfs/etc/cont-init.d/03-config.sh | 8 ++++++++ rootfs/tpls/etc/php8/php-fpm.d/www.conf | 8 ++++---- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7c5e225..1cb50ce 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,10 @@ Image: librenms/librenms:latest * `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`) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index dd2fc40..cc0fe32 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -30,6 +30,10 @@ TZ=${TZ:-UTC} MEMORY_LIMIT=${MEMORY_LIMIT:-256M} UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-16M} CLEAR_ENV=${CLEAR_ENV:-yes} +FPM_PM_MAX_CHILDREN=${FPM_PM_MAX_CHILDREN:-15} +FPM_PM_START_SERVERS=${FPM_PM_START_SERVERS:-2} +FPM_PM_MIN_SPARE_SERVERS=${FPM_PM_MIN_SPARE_SERVERS:-1} +FPM_PM_MAX_SPARE_SERVERS=${FPM_PM_MAX_SPARE_SERVERS:-6} OPCACHE_MEM_SIZE=${OPCACHE_MEM_SIZE:-128} LISTEN_IPV6=${LISTEN_IPV6:-true} REAL_IP_FROM=${REAL_IP_FROM:-"0.0.0.0/32"} @@ -56,6 +60,10 @@ echo "Setting PHP-FPM configuration..." sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \ -e "s/@UPLOAD_MAX_SIZE@/$UPLOAD_MAX_SIZE/g" \ -e "s/@CLEAR_ENV@/$CLEAR_ENV/g" \ + -e "s/@FPM_PM_MAX_CHILDREN@/$FPM_PM_MAX_CHILDREN/g" \ + -e "s/@FPM_PM_START_SERVERS@/$FPM_PM_START_SERVERS/g" \ + -e "s/@FPM_PM_MIN_SPARE_SERVERS@/$FPM_PM_MIN_SPARE_SERVERS/g" \ + -e "s/@FPM_PM_MAX_SPARE_SERVERS@/$FPM_PM_MAX_SPARE_SERVERS/g" \ /tpls/etc/php8/php-fpm.d/www.conf >/etc/php8/php-fpm.d/www.conf echo "Setting PHP INI configuration..." diff --git a/rootfs/tpls/etc/php8/php-fpm.d/www.conf b/rootfs/tpls/etc/php8/php-fpm.d/www.conf index a120cea..865f511 100644 --- a/rootfs/tpls/etc/php8/php-fpm.d/www.conf +++ b/rootfs/tpls/etc/php8/php-fpm.d/www.conf @@ -8,10 +8,10 @@ listen = /var/run/php-fpm/php-fpm.sock access.log = /dev/null pm = dynamic -pm.max_children = 15 -pm.start_servers = 2 -pm.min_spare_servers = 1 -pm.max_spare_servers = 6 +pm.max_children = @FPM_PM_MAX_CHILDREN@ +pm.start_servers = @FPM_PM_START_SERVERS@ +pm.min_spare_servers = @FPM_PM_MIN_SPARE_SERVERS@ +pm.max_spare_servers = @FPM_PM_MAX_SPARE_SERVERS@ request_terminate_timeout = 0 clear_env = @CLEAR_ENV@ From 1d0c26d203ec114c6b5b63b6aa54af92f1922400 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 26 Nov 2022 16:57:31 +0100 Subject: [PATCH 412/523] Update to PHP 8.1 --- Dockerfile | 58 +++++++++---------- rootfs/etc/cont-init.d/02-fix-perms.sh | 2 +- rootfs/etc/cont-init.d/03-config.sh | 10 ++-- rootfs/etc/cont-init.d/04-svc-main.sh | 2 +- .../etc/{php8 => php81}/conf.d/opcache.ini | 0 .../etc/{php8 => php81}/php-fpm.d/www.conf | 0 6 files changed, 36 insertions(+), 36 deletions(-) rename rootfs/tpls/etc/{php8 => php81}/conf.d/opcache.ini (100%) rename rootfs/tpls/etc/{php8 => php81}/php-fpm.d/www.conf (100%) diff --git a/Dockerfile b/Dockerfile index 15fa9ea..61c7241 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,35 +33,34 @@ RUN apk --update --no-cache add \ openssl \ openssh-client \ perl \ - php8 \ - php8-cli \ - php8-ctype \ - php8-curl \ - php8-dom \ - php8-fileinfo \ - php8-fpm \ - php8-gd \ - php8-gmp \ - php8-json \ - php8-ldap \ - php8-mbstring \ - php8-mysqlnd \ - php8-opcache \ - php8-openssl \ - php8-pdo \ - php8-pdo_mysql \ - php8-pecl-mcrypt \ - php8-pecl-memcached \ - php8-pear \ - php8-phar \ - php8-posix \ - php8-session \ - php8-simplexml \ - php8-snmp \ - php8-sockets \ - php8-tokenizer \ - php8-xml \ - php8-zip \ + php81 \ + php81-cli \ + php81-ctype \ + php81-curl \ + php81-dom \ + php81-fileinfo \ + php81-fpm \ + php81-gd \ + php81-gmp \ + php81-json \ + php81-ldap \ + php81-mbstring \ + php81-mysqlnd \ + php81-opcache \ + php81-openssl \ + php81-pdo \ + php81-pdo_mysql \ + php81-pecl-memcached \ + php81-pear \ + php81-phar \ + php81-posix \ + php81-session \ + php81-simplexml \ + php81-snmp \ + php81-sockets \ + php81-tokenizer \ + php81-xml \ + php81-zip \ python3 \ py3-pip \ rrdtool \ @@ -72,6 +71,7 @@ RUN apk --update --no-cache add \ tzdata \ util-linux \ whois \ + && ln -s /usr/bin/php81 /usr/bin/php \ && apk --update --no-cache add -t build-dependencies \ build-base \ make \ diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index f6ff9e5..51786fa 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -15,6 +15,6 @@ chown -R librenms:librenms \ /tpls \ /var/lib/nginx \ /var/log/nginx \ - /var/log/php8 \ + /var/log/php81 \ /var/run/nginx \ /var/run/php-fpm diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index cc0fe32..18402aa 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -64,17 +64,17 @@ sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \ -e "s/@FPM_PM_START_SERVERS@/$FPM_PM_START_SERVERS/g" \ -e "s/@FPM_PM_MIN_SPARE_SERVERS@/$FPM_PM_MIN_SPARE_SERVERS/g" \ -e "s/@FPM_PM_MAX_SPARE_SERVERS@/$FPM_PM_MAX_SPARE_SERVERS/g" \ - /tpls/etc/php8/php-fpm.d/www.conf >/etc/php8/php-fpm.d/www.conf + /tpls/etc/php81/php-fpm.d/www.conf >/etc/php81/php-fpm.d/www.conf echo "Setting PHP INI configuration..." -sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php8/php.ini -sed -i "s|;date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php8/php.ini -sed -i "s|;max_input_vars.*|max_input_vars = ${MAX_INPUT_VARS}|g" /etc/php8/php.ini +sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php81/php.ini +sed -i "s|;date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php81/php.ini +sed -i "s|;max_input_vars.*|max_input_vars = ${MAX_INPUT_VARS}|g" /etc/php81/php.ini # OpCache echo "Setting OpCache configuration..." sed -e "s/@OPCACHE_MEM_SIZE@/$OPCACHE_MEM_SIZE/g" \ - /tpls/etc/php8/conf.d/opcache.ini >/etc/php8/conf.d/opcache.ini + /tpls/etc/php81/conf.d/opcache.ini >/etc/php81/conf.d/opcache.ini # Nginx echo "Setting Nginx configuration..." diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index 29df329..b4ff0f1 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -99,7 +99,7 @@ cat >/etc/services.d/php-fpm/run < Date: Sat, 26 Nov 2022 16:57:55 +0100 Subject: [PATCH 413/523] LibreNMS 22.11.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 61c7241..fe33607 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="22.10.0" +ARG LIBRENMS_VERSION="22.11.0" ARG WEATHERMAP_PLUGIN_COMMIT="697ac3cdb517aedc81d3b0b2e9ae5582234dca54" ARG ALPINE_VERSION="3.16" From e44f17b4ecc6ed6a780c9f89f7b3ff9224786ac4 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 26 Nov 2022 17:52:31 +0100 Subject: [PATCH 414/523] Update CHANGELOG.md --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c11e292..7988af2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 22.11.0-r0 (2022/11/26) + +* LibreNMS 22.11.0 (#324) +* Update to PHP 8.1 (#324) +* Add ability to configure php-fpm (#320) + ## 22.10.0-r0 (2022/10/22) * LibreNMS 22.10.0 (#318) From 72e9f47e7f7df71f94782205cf690e4f1a3e448d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 21 Dec 2022 00:42:31 +0100 Subject: [PATCH 415/523] readme: fix badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1cb50ce..f23ee49 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

Latest Version - Build Status + Build Status Docker Stars Docker Pulls
Become a sponsor From fbde75c3c8896ec48ea6f092edf455d401e6a1f1 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 21 Dec 2022 01:12:11 +0100 Subject: [PATCH 416/523] readme: update about section --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f23ee49..a411c18 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,13 @@ ## About -[LibreNMS](https://www.librenms.org/) Docker image based on Alpine Linux and Nginx.
-If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other Docker images! +Docker image for [LibreNMS](https://www.librenms.org/), a fully featured network +monitoring system that provides a wealth of features and device support. -💡 Want to be notified of new releases? Check out 🔔 [Diun (Docker Image Update Notifier)](https://github.com/crazy-max/diun) project! +> **Note** +> +> Want to be notified of new releases? Check out 🔔 [Diun (Docker Image Update Notifier)](https://github.com/crazy-max/diun) +> project! ___ From 9c1e7f46c31a60d382cf2457acd459d455b13418 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 30 Dec 2022 08:10:48 +0100 Subject: [PATCH 417/523] Alpine Linux 3.17 --- Dockerfile | 6 +++--- rootfs/etc/syslog-ng/syslog-ng.conf | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index fe33607..288a257 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ ARG LIBRENMS_VERSION="22.11.0" ARG WEATHERMAP_PLUGIN_COMMIT="697ac3cdb517aedc81d3b0b2e9ae5582234dca54" -ARG ALPINE_VERSION="3.16" +ARG ALPINE_VERSION="3.17" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:${ALPINE_VERSION}-2.2.0.3 @@ -23,6 +23,7 @@ RUN apk --update --no-cache add \ imagemagick \ ipmitool \ iputils \ + libcap-utils \ mariadb-client \ monitoring-plugins \ mtr \ @@ -66,12 +67,11 @@ RUN apk --update --no-cache add \ rrdtool \ runit \ shadow \ - syslog-ng=3.36.1-r0 \ + syslog-ng=3.38.1-r0 \ ttf-dejavu \ tzdata \ util-linux \ whois \ - && ln -s /usr/bin/php81 /usr/bin/php \ && apk --update --no-cache add -t build-dependencies \ build-base \ make \ diff --git a/rootfs/etc/syslog-ng/syslog-ng.conf b/rootfs/etc/syslog-ng/syslog-ng.conf index 7cd247e..e7009ec 100644 --- a/rootfs/etc/syslog-ng/syslog-ng.conf +++ b/rootfs/etc/syslog-ng/syslog-ng.conf @@ -1,4 +1,4 @@ -@version:3.36 +@version:3.38 options { chain_hostnames(off); From deb81175df0e8b5acd7ff2d41fe70e2cb344c4d8 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 30 Dec 2022 08:53:44 +0100 Subject: [PATCH 418/523] LibreNMS 22.12.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 288a257..4496d1c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="22.11.0" +ARG LIBRENMS_VERSION="22.12.0" ARG WEATHERMAP_PLUGIN_COMMIT="697ac3cdb517aedc81d3b0b2e9ae5582234dca54" ARG ALPINE_VERSION="3.17" From 453b31cc641a5ebb4984fe976ca6ef3b1d133c36 Mon Sep 17 00:00:00 2001 From: Brian Candler Date: Fri, 16 Dec 2022 09:29:27 +0000 Subject: [PATCH 419/523] Add 'name' top-level attribute to docker-compose.yml This changes the project name from "compose" to "librenms". Also remove "version" top-level attribute as this is no longer required by the compose spec. Fixes #325 --- examples/compose/docker-compose.yml | 2 +- examples/rrdcached-server/docker-compose.yml | 2 +- examples/traefik/docker-compose.yml | 2 +- test/docker-compose.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 585cf4c..6bdef18 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.5" +name: librenms services: db: diff --git a/examples/rrdcached-server/docker-compose.yml b/examples/rrdcached-server/docker-compose.yml index 727cdd5..30dedfc 100644 --- a/examples/rrdcached-server/docker-compose.yml +++ b/examples/rrdcached-server/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.5" +name: librenms services: db: diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 1aedfce..43a286c 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.5" +name: librenms services: traefik: diff --git a/test/docker-compose.yml b/test/docker-compose.yml index e4b092c..8c2b0b8 100644 --- a/test/docker-compose.yml +++ b/test/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.5" +name: librenms services: db: From d6d3971d3d74573ffb73029eaeb4a420b23c5b81 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 30 Dec 2022 10:14:02 +0100 Subject: [PATCH 420/523] Update CHANGELOG --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7988af2..f87d2ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 22.12.0-r0 (2022/12/30) + +* LibreNMS 22.12.0 (#329) +* Alpine Linux 3.17 (#328) + ## 22.11.0-r0 (2022/11/26) * LibreNMS 22.11.0 (#324) From d56b8e75410c7a8f68524ed821fd95d4c999f027 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 6 Feb 2023 21:51:50 +0100 Subject: [PATCH 421/523] New year --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 96730a0..51b9b71 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018-2022 CrazyMax +Copyright (c) 2018-2023 CrazyMax Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From bccc520273fbde556114a11368c001cc4a8bed7e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 6 Feb 2023 21:54:14 +0100 Subject: [PATCH 422/523] LibreNMS 23.1.1 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4496d1c..ef7d26b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="22.12.0" +ARG LIBRENMS_VERSION="23.1.1" ARG WEATHERMAP_PLUGIN_COMMIT="697ac3cdb517aedc81d3b0b2e9ae5582234dca54" ARG ALPINE_VERSION="3.17" From 3cd6d96bc6243f59b878621c1ed6b8194b0c3d34 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 6 Feb 2023 22:02:12 +0100 Subject: [PATCH 423/523] Update Weathermap plugin --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ef7d26b..42808ba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 ARG LIBRENMS_VERSION="23.1.1" -ARG WEATHERMAP_PLUGIN_COMMIT="697ac3cdb517aedc81d3b0b2e9ae5582234dca54" +ARG WEATHERMAP_PLUGIN_COMMIT="4ce6ad1aa1b6fadda25b42042a9603212a27c386" ARG ALPINE_VERSION="3.17" FROM crazymax/yasu:latest AS yasu From 9556df64ca33ff85e317acdb8cc13a59bc7c01de Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 9 Feb 2023 20:30:51 +0100 Subject: [PATCH 424/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f87d2ed..c08eaec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 23.1.1-r0 (2023/02/09) + +* LibreNMS 23.1.1 (#335) + ## 22.12.0-r0 (2022/12/30) * LibreNMS 22.12.0 (#329) From bdaf7628277d3052285ec689547410b96fbf8154 Mon Sep 17 00:00:00 2001 From: Sasha Date: Sun, 19 Mar 2023 13:18:31 +0200 Subject: [PATCH 425/523] Update to 23.2.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 42808ba..c5a2b06 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="23.1.1" +ARG LIBRENMS_VERSION="23.2.0" ARG WEATHERMAP_PLUGIN_COMMIT="4ce6ad1aa1b6fadda25b42042a9603212a27c386" ARG ALPINE_VERSION="3.17" From 0540fd9512885f4f48c5a4c6c7212ed17f6a9223 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 24 Mar 2023 12:42:51 +0100 Subject: [PATCH 426/523] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c08eaec..90e7ccc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 23.2.0-r0 (2023/03/24) + +* LibreNMS 23.2.0 (#340) + ## 23.1.1-r0 (2023/02/09) * LibreNMS 23.1.1 (#335) From d36fd1e9e3fd6d86116586d4d4ec3f583a2c8319 Mon Sep 17 00:00:00 2001 From: hetlelid Date: Wed, 19 Apr 2023 22:00:34 +0200 Subject: [PATCH 427/523] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a411c18..29d703f 100644 --- a/README.md +++ b/README.md @@ -229,8 +229,8 @@ for example. Edit the compose and env files with your preferences and run the following commands: ```console -$ docker-compose up -d -$ docker-compose logs -f +$ docker compose up -d +$ docker compose logs -f ``` ### Command line From 23c3e7559d793c37629c1dab077f02e102602c67 Mon Sep 17 00:00:00 2001 From: duhow Date: Thu, 20 Apr 2023 15:33:41 +0200 Subject: [PATCH 428/523] Fetch all Weathermap commits --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c5a2b06..67fdc22 100644 --- a/Dockerfile +++ b/Dockerfile @@ -125,7 +125,7 @@ RUN apk --update --no-cache add -t build-dependencies \ && echo "foreach (glob(\"/data/config/*.php\") as \$filename) include \$filename;" >> config.php \ && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> config.php \ && ( \ - git clone --depth=1 https://github.com/librenms-plugins/Weathermap.git ./html/plugins/Weathermap \ + git clone https://github.com/librenms-plugins/Weathermap.git ./html/plugins/Weathermap \ && cd ./html/plugins/Weathermap \ && git reset --hard $WEATHERMAP_PLUGIN_COMMIT \ ) \ From 74c391fe44f224a1799abff35a4cff7837a1b618 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Apr 2023 13:51:10 +0000 Subject: [PATCH 429/523] Bump docker/bake-action from 2 to 3 Bumps [docker/bake-action](https://github.com/docker/bake-action) from 2 to 3. - [Release notes](https://github.com/docker/bake-action/releases) - [Commits](https://github.com/docker/bake-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/bake-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 2 +- .github/workflows/test-edge.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4b6575c..4938e6e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -58,7 +58,7 @@ jobs: password: ${{ secrets.DOCKER_PASSWORD }} - name: Build - uses: docker/bake-action@v2 + uses: docker/bake-action@v3 with: files: | ./docker-bake.hcl diff --git a/.github/workflows/test-edge.yml b/.github/workflows/test-edge.yml index 534685c..253e0e0 100644 --- a/.github/workflows/test-edge.yml +++ b/.github/workflows/test-edge.yml @@ -36,7 +36,7 @@ jobs: uses: docker/setup-buildx-action@v2 - name: Build - uses: docker/bake-action@v2 + uses: docker/bake-action@v3 with: targets: image-local set: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6e5cea4..c781609 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -35,7 +35,7 @@ jobs: uses: docker/setup-buildx-action@v2 - name: Build - uses: docker/bake-action@v2 + uses: docker/bake-action@v3 with: targets: image-local env: From 7ce699ce922413425a625df091c77145dee55d2e Mon Sep 17 00:00:00 2001 From: duhow Date: Thu, 20 Apr 2023 15:42:58 +0200 Subject: [PATCH 430/523] Update LibreNMS to v23.4.1 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 67fdc22..1d89bfe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="23.2.0" +ARG LIBRENMS_VERSION="23.4.1" ARG WEATHERMAP_PLUGIN_COMMIT="4ce6ad1aa1b6fadda25b42042a9603212a27c386" ARG ALPINE_VERSION="3.17" From 229e794557a736e4e50dadc851c6beb86ce3bf41 Mon Sep 17 00:00:00 2001 From: duhow Date: Thu, 20 Apr 2023 15:43:40 +0200 Subject: [PATCH 431/523] Update plugin Weathermap to 2023.04.17 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 1d89bfe..7ae7a70 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 ARG LIBRENMS_VERSION="23.4.1" -ARG WEATHERMAP_PLUGIN_COMMIT="4ce6ad1aa1b6fadda25b42042a9603212a27c386" +ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.17" FROM crazymax/yasu:latest AS yasu From 90f247963904fe53d88617734d18f5a8e9e0a7d7 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 4 May 2023 23:08:09 +0200 Subject: [PATCH 432/523] chore: remove gitignore and dockerignore --- .dockerignore | 14 -------------- .gitignore | 4 ---- 2 files changed, 18 deletions(-) delete mode 100644 .dockerignore delete mode 100644 .gitignore diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index c4e9611..0000000 --- a/.dockerignore +++ /dev/null @@ -1,14 +0,0 @@ -/.dev -/.idea -/*.iml - -/.git -/.github -/doc -/examples -/.editorconfig -/.gitattributes -/.gitignore -/CHANGELOG.md -/LICENSE -/README.md diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 9b9ce6b..0000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/.dev -/.idea -/.vscode -/*.iml From 16eaaf4fc0d3deb6baec0dfc6a76d53fc1bec9f8 Mon Sep 17 00:00:00 2001 From: Hugh Day Date: Mon, 15 May 2023 07:14:03 +1000 Subject: [PATCH 433/523] Add extra SNMP Trap MIB Dirs via Env Vars --- README.md | 1 + rootfs/etc/cont-init.d/08-svc-snmptrapd.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 29d703f..ad22787 100644 --- a/README.md +++ b/README.md @@ -183,6 +183,7 @@ Image: librenms/librenms:latest * `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](https://docs.librenms.org/Extensions/SNMP-Trap-Handler/#option-2) (example `/opt/librenms/mibs/veeam`) ### Database diff --git a/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh b/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh index 4837606..2d0bc65 100644 --- a/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh +++ b/rootfs/etc/cont-init.d/08-svc-snmptrapd.sh @@ -42,6 +42,6 @@ mkdir -p /etc/services.d/snmptrapd cat >/etc/services.d/snmptrapd/run < Date: Tue, 23 May 2023 15:48:51 +0800 Subject: [PATCH 434/523] Update to 23.5.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7ae7a70..1ac09de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="23.4.1" +ARG LIBRENMS_VERSION="23.5.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.17" From 6c8286c0c683ade4ae08a4c9490cebbc22d9af0f Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Thu, 15 Jun 2023 04:48:33 +0200 Subject: [PATCH 435/523] Update CHANGELOG --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90e7ccc..1daafcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 23.5.0-r0 (2023/06/15) + +* LibreNMS 23.5.0 (#357) +* Add extra SNMP Trap MIB dirs via env var (#355) + ## 23.2.0-r0 (2023/03/24) * LibreNMS 23.2.0 (#340) From 6c07c0f4bb12b33b84b3cd5aee77f587fccee13e Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 21 Jul 2023 23:52:14 +0200 Subject: [PATCH 436/523] remove arm/v6 arch support --- README.md | 1 - docker-bake.hcl | 1 - 2 files changed, 2 deletions(-) diff --git a/README.md b/README.md index ad22787..ea16a56 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,6 @@ Image: librenms/librenms:latest * Manifest List: Yes * Supported platforms: - linux/amd64 - - linux/arm/v6 - linux/arm/v7 - linux/arm64 - linux/386 diff --git a/docker-bake.hcl b/docker-bake.hcl index fddf4dc..8d72716 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -25,7 +25,6 @@ target "image-all" { inherits = ["image"] platforms = [ "linux/amd64", - "linux/arm/v6", "linux/arm/v7", "linux/arm64", "linux/386", From cb5206846d6a275af30d4127c90194fe039ce206 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 22 Jul 2023 00:22:10 +0200 Subject: [PATCH 437/523] handle artisan schedule:run --- rootfs/etc/cont-init.d/07-svc-cron.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rootfs/etc/cont-init.d/07-svc-cron.sh b/rootfs/etc/cont-init.d/07-svc-cron.sh index dd9269c..96ffc70 100644 --- a/rootfs/etc/cont-init.d/07-svc-cron.sh +++ b/rootfs/etc/cont-init.d/07-svc-cron.sh @@ -30,6 +30,9 @@ if [ "$LIBRENMS_WEATHERMAP" = "true" ] && [ -n "$LIBRENMS_WEATHERMAP_SCHEDULE" ] echo "${LIBRENMS_WEATHERMAP_SCHEDULE} php -f /opt/librenms/html/plugins/Weathermap/map-poller.php" >>${CRONTAB_PATH}/librenms fi +echo "Creating LibreNMS cron artisan schedule:run" +echo "* * * * * php /opt/librenms/artisan schedule:run --no-ansi --no-interaction > /dev/null 2>&1" >>${CRONTAB_PATH}/librenms + # Fix perms echo "Fixing crontabs permissions..." chmod -R 0644 ${CRONTAB_PATH} From ce5e99478533a7ae808c3373b8ba0c32726a468d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 22 Jul 2023 10:09:26 +0200 Subject: [PATCH 438/523] ci: missing concurrency check --- .github/workflows/build.yml | 4 +--- .github/workflows/labels.yml | 4 ++++ .github/workflows/test-edge.yml | 2 +- .github/workflows/test.yml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4938e6e..9cd58dc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,7 +1,7 @@ name: build concurrency: - group: build-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true on: @@ -13,8 +13,6 @@ on: paths-ignore: - '**.md' pull_request: - branches: - - 'master' paths-ignore: - '**.md' diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index d9f607a..91ec703 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -1,5 +1,9 @@ name: labels +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + on: push: branches: diff --git a/.github/workflows/test-edge.yml b/.github/workflows/test-edge.yml index 253e0e0..9baf1cf 100644 --- a/.github/workflows/test-edge.yml +++ b/.github/workflows/test-edge.yml @@ -1,7 +1,7 @@ name: test-edge concurrency: - group: test-edge-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true on: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c781609..83b37d4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,7 +1,7 @@ name: test concurrency: - group: test-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true on: From 3874a7b5050cf2aa419570d5ad14930e18ce1e2b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 22 Jul 2023 10:17:03 +0200 Subject: [PATCH 439/523] ci: merge test workflows --- .github/workflows/test-edge.yml | 84 --------------------------------- .github/workflows/test.yml | 12 +++++ Dockerfile | 1 + docker-bake.hcl | 7 +++ 4 files changed, 20 insertions(+), 84 deletions(-) delete mode 100644 .github/workflows/test-edge.yml diff --git a/.github/workflows/test-edge.yml b/.github/workflows/test-edge.yml deleted file mode 100644 index 9baf1cf..0000000 --- a/.github/workflows/test-edge.yml +++ /dev/null @@ -1,84 +0,0 @@ -name: test-edge - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -on: - push: - branches: - - 'master' - paths-ignore: - - '**.md' - pull_request: - paths-ignore: - - '**.md' - -env: - BUILD_TAG: librenms-test - CONTAINER_NAME: librenms - RUNNING_TIMEOUT: 120 - RUNNING_LOG_CHECK: ready to handle connections - -jobs: - test: - runs-on: ubuntu-latest - continue-on-error: true - steps: - - - name: Checkout - uses: actions/checkout@v3 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Build - uses: docker/bake-action@v3 - with: - targets: image-local - set: | - *.args.LIBRENMS_VERSION=master - env: - DEFAULT_TAG: ${{ env.BUILD_TAG }} - - - name: Start - run: | - docker compose up -d - working-directory: test - env: - LIBRENMS_IMAGE: ${{ env.BUILD_TAG }} - LIBRENMS_CONTAINER: ${{ env.CONTAINER_NAME }} - - - name: Test run - run: | - TIMEOUT=$((SECONDS + ${{ env.RUNNING_TIMEOUT }})) - while read LOGLINE; do - echo ${LOGLINE} - if [[ ${LOGLINE} == *"${{ env.RUNNING_LOG_CHECK }}"* ]]; then - echo "🎉 Container up!" - break - fi - if [[ $SECONDS -gt ${TIMEOUT} ]]; then - >&2 echo "❌ Failed to run ${{ env.CONTAINER_NAME }} container" - exit 1 - fi - done < <(docker logs -f ${{ env.CONTAINER_NAME }} 2>&1) - - CONTAINER_STATUS=$(docker container inspect --format "{{.State.Status}}" ${{ env.CONTAINER_NAME }}) - if [[ ${CONTAINER_STATUS} != "running" ]]; then - >&2 echo "❌ Container ${{ env.CONTAINER_NAME }} returned status '$CONTAINER_STATUS'" - exit 1 - fi - - - name: Logs - if: always() - run: | - docker compose logs - docker compose down --volumes > /dev/null 2>&1 || true - working-directory: test - env: - LIBRENMS_IMAGE: ${{ env.BUILD_TAG }} - LIBRENMS_CONTAINER: ${{ env.CONTAINER_NAME }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 83b37d4..00c1a0d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,19 @@ env: jobs: test: runs-on: ubuntu-latest + continue-on-error: ${{ matrix.version == 'master' }} + strategy: + fail-fast: false + matrix: + version: + - '' + - master steps: + - + name: Prepare + if: matrix.version != '' + run: | + echo "LIBRENMS_VERSION=${{ matrix.version }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 diff --git a/Dockerfile b/Dockerfile index 1ac09de..2111034 100644 --- a/Dockerfile +++ b/Dockerfile @@ -115,6 +115,7 @@ RUN apk --update --no-cache add -t build-dependencies \ linux-headers \ musl-dev \ python3-dev \ + && echo "Installing LibreNMS https://github.com/librenms/librenms.git#${LIBRENMS_VERSION}..." \ && git clone --depth=1 --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git . \ && pip3 install --ignore-installed -r requirements.txt --upgrade \ && COMPOSER_CACHE_DIR="/tmp" composer install --no-dev --no-interaction --no-ansi \ diff --git a/docker-bake.hcl b/docker-bake.hcl index fddf4dc..4d97692 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -2,9 +2,16 @@ variable "DEFAULT_TAG" { default = "librenms:local" } +variable "LIBRENMS_VERSION" { + default = null +} + // Special target: https://github.com/docker/metadata-action#bake-definition target "docker-metadata-action" { tags = ["${DEFAULT_TAG}"] + args = { + LIBRENMS_VERSION = LIBRENMS_VERSION + } } // Default target if none specified From e03b505d081153a996c34a64d6940f86c69fdd30 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 22 Jul 2023 10:18:11 +0200 Subject: [PATCH 440/523] test: use composite container-logs-check action --- .github/workflows/test.yml | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 00c1a0d..cb014dc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,10 +15,8 @@ on: - '**.md' env: - BUILD_TAG: librenms-test + BUILD_TAG: librenms:test CONTAINER_NAME: librenms - RUNNING_TIMEOUT: 120 - RUNNING_LOG_CHECK: ready to handle connections jobs: test: @@ -61,32 +59,17 @@ jobs: LIBRENMS_IMAGE: ${{ env.BUILD_TAG }} LIBRENMS_CONTAINER: ${{ env.CONTAINER_NAME }} - - name: Test run - run: | - TIMEOUT=$((SECONDS + ${{ env.RUNNING_TIMEOUT }})) - while read LOGLINE; do - echo ${LOGLINE} - if [[ ${LOGLINE} == *"${{ env.RUNNING_LOG_CHECK }}"* ]]; then - echo "🎉 Container up!" - break - fi - if [[ $SECONDS -gt ${TIMEOUT} ]]; then - >&2 echo "❌ Failed to run ${{ env.CONTAINER_NAME }} container" - exit 1 - fi - done < <(docker logs -f ${{ env.CONTAINER_NAME }} 2>&1) - - CONTAINER_STATUS=$(docker container inspect --format "{{.State.Status}}" ${{ env.CONTAINER_NAME }}) - if [[ ${CONTAINER_STATUS} != "running" ]]; then - >&2 echo "❌ Container ${{ env.CONTAINER_NAME }} returned status '$CONTAINER_STATUS'" - exit 1 - fi + name: Check container logs + uses: crazy-max/.github/.github/actions/container-logs-check@main + with: + container_name: ${{ env.CONTAINER_NAME }} + log_check: "ready to handle connections" + timeout: 120 - name: Logs if: always() run: | docker compose logs - docker compose down --volumes > /dev/null 2>&1 || true working-directory: test env: LIBRENMS_IMAGE: ${{ env.BUILD_TAG }} From 8d9cf3e991ab240df44380ce183ac8ab1ee4cd4b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 22 Jul 2023 10:21:09 +0200 Subject: [PATCH 441/523] switch to compose v2 cmd --- CHANGELOG.md | 8 +++---- README.md | 24 +++++++++---------- .../{docker-compose.yml => compose.yml} | 0 .../{docker-compose.yml => compose.yml} | 0 .../{docker-compose.yml => compose.yml} | 0 test/{docker-compose.yml => compose.yml} | 0 6 files changed, 16 insertions(+), 16 deletions(-) rename examples/compose/{docker-compose.yml => compose.yml} (100%) rename examples/rrdcached-server/{docker-compose.yml => compose.yml} (100%) rename examples/traefik/{docker-compose.yml => compose.yml} (100%) rename test/{docker-compose.yml => compose.yml} (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1daafcd..1408c13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -407,10 +407,10 @@ > :warning: **UPGRADE NOTES** > As the Docker container now runs as a non-root user, you have to first stop the container and change permissions to `data` volume: > ``` -> docker-compose stop +> docker compose stop > chown -R ${PUID}:${PGID} data/ -> docker-compose pull -> docker-compose up -d +> docker compose pull +> docker compose up -d > ``` ## 1.57-RC1 (2019/10/30) @@ -470,7 +470,7 @@ > :warning: **UPGRADE NOTES** > Sidecar cron and syslog-ng are now respectively handled with `SIDECAR_CRON` and `SIDECAR_SYSLOGNG` env vars -> See docker-compose example and README for more info. +> See compose example and README for more info. ## 1.51-RC1 (2019/05/01) diff --git a/README.md b/README.md index ad22787..4a98ce0 100644 --- a/README.md +++ b/README.md @@ -263,9 +263,9 @@ To upgrade to the latest version of LibreNMS, pull the newer image and launch the container. LibreNMS will upgrade automatically: ```console -$ docker-compose down -$ docker-compose pull -$ docker-compose up -d +$ docker compose down +$ docker compose pull +$ docker compose up -d ``` ## Configuration Management @@ -288,7 +288,7 @@ and will override the default values. You can edit the running configuration via the LibreNMS web UI or `lnms config:set` ```bash -docker-compose exec librenms lnms config:set page_refresh 300 +docker compose exec librenms lnms config:set page_refresh 300 ``` ### Re-Apply YAML Config @@ -317,7 +317,7 @@ If you want to use the `lnms` command to perform common server operations like manage users, database migration, and more, type: ```console -$ docker-compose exec librenms lnms +$ docker compose exec librenms lnms ``` ### Validate @@ -326,7 +326,7 @@ If you want to validate your installation from the CLI, type the following command: ```console -$ docker-compose exec --user librenms librenms php validate.php +$ docker compose exec --user librenms librenms php validate.php ==================================== Component | Version --------- | ------- @@ -350,8 +350,8 @@ SNMP | NET-SNMP 5.8 If you want to enable the new [Dispatcher service](https://docs.librenms.org/Extensions/Dispatcher-Service/), you have to run a "sidecar" container (see dispatcher service in -[docker-compose.yml](examples/compose/docker-compose.yml) example) or run a -simple container like this: +[compose.yml](examples/compose/compose.yml) example) or run a simple container +like this: ```console $ docker run -d --name librenms_dispatcher \ @@ -369,8 +369,8 @@ $ docker run -d --name librenms_dispatcher \ ### Syslog-ng container If you want to enable syslog-ng, you have to run a "sidecar" container (see -syslog-ng service in [docker-compose.yml](examples/compose/docker-compose.yml) -example) or run a simple container like this: +syslog-ng service in [compose.yml](examples/compose/compose.yml) example) or +run a simple container like this: ```console $ docker run -d --name librenms_syslog \ @@ -395,8 +395,8 @@ enable_syslog: true ### Snmptrapd container If you want to enable snmptrapd, you have to run a "sidecar" container (see -snmptrapd service in [docker-compose.yml](examples/compose/docker-compose.yml) -example) or run a simple container like this: +snmptrapd service in [compose.yml](examples/compose/compose.yml) example) or +run a simple container like this: ```console $ docker run -d --name librenms_snmptrapd \ diff --git a/examples/compose/docker-compose.yml b/examples/compose/compose.yml similarity index 100% rename from examples/compose/docker-compose.yml rename to examples/compose/compose.yml diff --git a/examples/rrdcached-server/docker-compose.yml b/examples/rrdcached-server/compose.yml similarity index 100% rename from examples/rrdcached-server/docker-compose.yml rename to examples/rrdcached-server/compose.yml diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/compose.yml similarity index 100% rename from examples/traefik/docker-compose.yml rename to examples/traefik/compose.yml diff --git a/test/docker-compose.yml b/test/compose.yml similarity index 100% rename from test/docker-compose.yml rename to test/compose.yml From 01fed7dfe0d49ff70bca0239190f13d8287a212c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 22 Jul 2023 10:26:53 +0200 Subject: [PATCH 442/523] chore: update labels --- .github/dependabot.yml | 4 +- .github/labels.yml | 147 ++++++++++++++++++----------------- .github/workflows/labels.yml | 6 ++ 3 files changed, 83 insertions(+), 74 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 556e0c1..7ac65bb 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -7,5 +7,5 @@ updates: time: "08:00" timezone: "Europe/Paris" labels: - - ":game_die: dependencies" - - ":robot: bot" + - "kind/dependencies" + - "bot" diff --git a/.github/labels.yml b/.github/labels.yml index ac87246..0d4a6c3 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -1,85 +1,88 @@ ## more info https://github.com/crazy-max/ghaction-github-labeler -- # automerge - name: ":bell: automerge" - color: "8f4fbc" - description: "" -- # bot - name: ":robot: bot" +- + name: "bot" color: "69cde9" description: "" -- # bug - name: ":bug: bug" - color: "b60205" - description: "" -- # dependencies - name: ":game_die: dependencies" - color: "0366d6" - description: "" -- # documentation - name: ":memo: documentation" - color: "c5def5" - description: "" -- # duplicate - name: ":busts_in_silhouette: duplicate" - color: "cccccc" - description: "" -- # enhancement - name: ":sparkles: enhancement" - color: "0054ca" - description: "" -- # feature request - name: ":bulb: feature request" - color: "0e8a16" - description: "" -- # feedback - name: ":mega: feedback" - color: "03a9f4" - description: "" -- # future maybe - name: ":rocket: future maybe" - color: "fef2c0" - description: "" -- # good first issue - name: ":hatching_chick: good first issue" + from_name: ":robot: bot" +- + name: "good first issue" color: "7057ff" description: "" -- # help wanted - name: ":pray: help wanted" + from_name: ":hatching_chick: good first issue" +- + name: "help wanted" color: "4caf50" description: "" -- # invalid - name: ":no_entry_sign: invalid" + from_name: ":pray: help wanted" +- + name: "area/ci" + color: "ed9ca9" + description: "" +- + name: "area/dockerfile" + color: "03a9f4" + description: "" +- + name: "kind/bug" + color: "b60205" + description: "" + from_name: ":bug: bug" +- + name: "kind/dependencies" + color: "0366d6" + description: "" + from_name: ":game_die: dependencies" +- + name: "kind/docs" + color: "c5def5" + description: "" + from_name: ":memo: documentation" +- + name: "kind/duplicate" + color: "cccccc" + description: "" + from_name: ":busts_in_silhouette: duplicate" +- + name: "kind/enhancement" + color: "0054ca" + description: "" + from_name: ":sparkles: enhancement" +- + name: "kind/invalid" color: "e6e6e6" description: "" -- # investigate - name: ":mag: investigate" - color: "e6625b" - description: "" -- # needs more info - name: ":thinking: needs more info" - color: "795548" - description: "" -- # pinned - name: ":pushpin: pinned" - color: "28008e" - description: "" -- # question - name: ":question: question" - color: "3f51b5" - description: "" -- # sponsor - name: ":sparkling_heart: sponsor" - color: "fedbf0" - description: "" -- # stale - name: ":skull: stale" - color: "237da0" - description: "" -- # upstream - name: ":eyes: upstream" + from_name: ":no_entry_sign: invalid" +- + name: "kind/upstream" color: "fbca04" description: "" -- # wontfix - name: ":coffin: wontfix" + from_name: ":eyes: upstream" +- + name: "kind/wontfix" color: "ffffff" description: "" + from_name: ":coffin: wontfix" +- + name: "status/automerge" + color: "8f4fbc" + description: "" + from_name: ":bell: automerge" +- + name: "status/needs-investigation" + color: "e6625b" + description: "" + from_name: ":mag: investigate" +- + name: "status/needs-more-info" + color: "795548" + description: "" + from_name: ":thinking: needs more info" +- + name: "status/stale" + color: "237da0" + description: "" + from_name: ":skull: stale" +- + name: "status/triage" + color: "dde4b7" + description: "" diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 91ec703..c3e0637 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -11,6 +11,10 @@ on: paths: - '.github/labels.yml' - '.github/workflows/labels.yml' + pull_request: + paths: + - '.github/labels.yml' + - '.github/workflows/labels.yml' jobs: labeler: @@ -22,3 +26,5 @@ jobs: - name: Run Labeler uses: crazy-max/ghaction-github-labeler@v4 + with: + dry-run: ${{ github.event_name == 'pull_request' }} From f4b894b26f73b55f882364701b02abc3a672611a Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 22 Jul 2023 10:37:08 +0200 Subject: [PATCH 443/523] chore: cleanup labels config --- .github/labels.yml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/.github/labels.yml b/.github/labels.yml index 0d4a6c3..b5d2b8c 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -3,17 +3,14 @@ name: "bot" color: "69cde9" description: "" - from_name: ":robot: bot" - name: "good first issue" color: "7057ff" description: "" - from_name: ":hatching_chick: good first issue" - name: "help wanted" color: "4caf50" description: "" - from_name: ":pray: help wanted" - name: "area/ci" color: "ed9ca9" @@ -26,62 +23,50 @@ name: "kind/bug" color: "b60205" description: "" - from_name: ":bug: bug" - name: "kind/dependencies" color: "0366d6" description: "" - from_name: ":game_die: dependencies" - name: "kind/docs" color: "c5def5" description: "" - from_name: ":memo: documentation" - name: "kind/duplicate" color: "cccccc" description: "" - from_name: ":busts_in_silhouette: duplicate" - name: "kind/enhancement" color: "0054ca" description: "" - from_name: ":sparkles: enhancement" - name: "kind/invalid" color: "e6e6e6" description: "" - from_name: ":no_entry_sign: invalid" - name: "kind/upstream" color: "fbca04" description: "" - from_name: ":eyes: upstream" - name: "kind/wontfix" color: "ffffff" description: "" - from_name: ":coffin: wontfix" - name: "status/automerge" color: "8f4fbc" description: "" - from_name: ":bell: automerge" - name: "status/needs-investigation" color: "e6625b" description: "" - from_name: ":mag: investigate" - name: "status/needs-more-info" color: "795548" description: "" - from_name: ":thinking: needs more info" - name: "status/stale" color: "237da0" description: "" - from_name: ":skull: stale" - name: "status/triage" color: "dde4b7" From c9e3f1b26e2889f7d898ef88849b5baba5e919f4 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 22 Jul 2023 10:38:44 +0200 Subject: [PATCH 444/523] chore: github form templates --- .github/ISSUE_TEMPLATE/bug.yml | 91 ++++++++++++++++++++++++++++ .github/ISSUE_TEMPLATE/bug_report.md | 40 ------------ .github/ISSUE_TEMPLATE/config.yml | 6 ++ .github/ISSUE_TEMPLATE/feature.yml | 15 +++++ 4 files changed, 112 insertions(+), 40 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug.yml delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature.yml diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000..2013f88 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,91 @@ +# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema +name: Bug Report +description: Report a bug +labels: + - kind/bug + - status/triage + +body: + - type: checkboxes + attributes: + label: Support guidelines + description: Please read the support guidelines before proceeding. + options: + - label: I've read the [support guidelines](https://github.com/librenms/docker/blob/master/.github/SUPPORT.md) + required: true + + - type: checkboxes + attributes: + label: I've found a bug and checked that ... + description: | + Make sure that your request fulfills all of the following requirements. If one requirement cannot be satisfied, explain in detail why. + options: + - label: ... the documentation does not mention anything about my problem + - label: ... there are no open or closed issues that are related to my problem + + - type: textarea + attributes: + label: Description + description: | + Please provide a brief description of the bug in 1-2 sentences. + validations: + required: true + + - type: textarea + attributes: + label: Expected behaviour + description: | + Please describe precisely what you'd expect to happen. + validations: + required: true + + - type: textarea + attributes: + label: Actual behaviour + description: | + Please describe precisely what is actually happening. + validations: + required: true + + - type: textarea + attributes: + label: Steps to reproduce + description: | + Please describe the steps to reproduce the bug. + placeholder: | + 1. ... + 2. ... + 3. ... + validations: + required: true + + - type: textarea + attributes: + label: Docker info + description: | + Output of `docker info` command. + render: text + validations: + required: true + + - type: textarea + attributes: + label: Docker Compose config + description: | + Output of `docker compose config` command. + render: yaml + + - type: textarea + attributes: + label: Logs + description: | + Please provide the container logs (set `LOG_LEVEL=debug` if applicable). + render: text + validations: + required: true + + - type: textarea + attributes: + label: Additional info + description: | + Please provide any additional information that seem useful. diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 0435112..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve ---- - -### Behaviour - -#### Steps to reproduce this issue - -1. -2. -3. - -#### Expected behaviour - -> Tell me what should happen - -#### Actual behaviour - -> Tell me what happens instead - -### Configuration - -* Docker version (type `docker --version`) : -* Docker compose version if applicable (type `docker-compose --version`) : -* Platform (Debian 9, Ubuntu 18.04, ...) : -* System info (type `uname -a`) : -* Include all necessary configuration files : `docker-compose.yml`, `.env`, ... - -### Docker info - -``` -> Output of command `docker info` -``` - -### Logs - -``` -> Container logs (set LOG_LEVEL to debug if applicable) -``` diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..8f929f1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,6 @@ +# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser +blank_issues_enabled: true +contact_links: + - name: Questions and Discussions + url: https://github.com/librenms/docker/discussions/new + about: Use Github Discussions to ask questions and/or open discussion topics. diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 0000000..6ab7568 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,15 @@ +# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema +name: Feature request +description: Missing functionality? Come tell us about it! +labels: + - kind/enhancement + - status/triage + +body: + - type: textarea + id: description + attributes: + label: Description + description: What is the feature you want to see? + validations: + required: true From a88f2d0b1c2e4bd3d9604fb8f54efbd65bb726cb Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 22 Jul 2023 10:43:21 +0200 Subject: [PATCH 445/523] remove CHANGELOG --- CHANGELOG.md | 600 --------------------------------------------------- 1 file changed, 600 deletions(-) delete mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 1408c13..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,600 +0,0 @@ -# Changelog - -## 23.5.0-r0 (2023/06/15) - -* LibreNMS 23.5.0 (#357) -* Add extra SNMP Trap MIB dirs via env var (#355) - -## 23.2.0-r0 (2023/03/24) - -* LibreNMS 23.2.0 (#340) - -## 23.1.1-r0 (2023/02/09) - -* LibreNMS 23.1.1 (#335) - -## 22.12.0-r0 (2022/12/30) - -* LibreNMS 22.12.0 (#329) -* Alpine Linux 3.17 (#328) - -## 22.11.0-r0 (2022/11/26) - -* LibreNMS 22.11.0 (#324) -* Update to PHP 8.1 (#324) -* Add ability to configure php-fpm (#320) - -## 22.10.0-r0 (2022/10/22) - -* LibreNMS 22.10.0 (#318) -* Enable the First Run Wizard (#280) -* Add `openssh-client` package for the `check_by_ssh` plugin (#312) - -## 22.9.0-r0 (2022/09/22) - -* LibreNMS 22.9.0 (#314) - -## 22.8.0-r1 (2022/08/23) - -* Update weathermap plugin to `697ac3c` (#309) - -## 22.8.0-r0 (2022/08/23) - -* LibreNMS 22.8.0 (#306) - -## 22.7.0-r2 (2022/08/14) - -* Fix container restart state with Weathermap (#304) - -## 22.7.0-r1 (2022/08/13) - -* Remove Weathermap plugin while waiting for a fix upstream (#302) -* Fix symlink and perms for weathermap plugin configs folder (#301) -* Ensure `REDIS_SCHEME` is set with default value (#300) - -## 22.7.0-r0 (2022/07/24) - -* LibreNMS 22.7.0 (#295) -* Add workflow to test librenms master branch (#293) -* Always set `rrdtool` version (#292) -* Shallow clone to reduce build time (#291) -* YAML based config (#225) -* Move Redis env vars in `librenms.env` file (#290) -* Remove memcached and use Redis fully (#286) -* Verifying user and group in `lnms` script (#278) -* Update to PHP 8 and Alpine Linux 3.16 (#289) - -## 22.6.0-r1 (2022/07/14) - -* Add PHP GMP extension (#288) -* Ensure scripts exit early on error and set shellcheck (#283) -* Add `MAX_INPUT_VARS` env var (#271) -* Remove test data that is not used in production (#281) - -## 22.6.0-r0 (2022/06/17) - -* LibreNMS 22.6.0 (#275) - -## 22.5.0-r0 (2022/05/28) - -* LibreNMS 22.5.0 (#272) - -## 22.4.1-r0 (2022/04/24) - -* LibreNMS 22.4.1 (#261) - -## 22.3.0-r0 (2022/03/20) - -* LibreNMS 22.3.0 (#258) - -## 22.2.2-r0 (2022/03/13) - -* LibreNMS 22.2.2 (#257) - -## 22.2.1-r0 (2022/02/20) - -* LibreNMS 22.2.1 (#254) -* Alpine Linux 3.15 (#253) - -## 22.2.0-r0 (2022/02/18) - -* LibreNMS 22.2.0 (#252) - -## 22.1.0-r0 (2022/01/26) - -* LibreNMS 22.1.0 (#250) - -## 21.12.1-r0 (2022/01/05) - -* LibreNMS 21.12.1 (#247) -* Fix pip pkgs (#249) -* nginx: increase fastcgi buffer size (#246) - -## 21.11.0-r0 (2021/11/14) - -* LibreNMS 21.11.0 (#242) - -## 21.10.2-r0 (2021/10/21) - -* LibreNMS 21.10.2 (#239) - -## 21.10.1-r0 (2021/10/19) - -* LibreNMS 21.10.1 (#236) - -## 21.10.0-r0 (2021/10/18) - -* LibreNMS 21.10.0 (#235) - -## 21.9.1-r0 (2021/09/28) - -* LibreNMS 21.9.1 (#230) - -## 21.9.0-r0 (2021/09/20) - -* LibreNMS 21.9.0 (#224) - -## 21.8.0-r0 (2021/09/01) - -* LibreNMS 21.8.0 (#222) -* Alpine Linux 3.14 (#221) - -## 21.7.0-r2 (2021/08/10) - -* Misspelling of `SIDECAR_SNMPTRAPD` environment variable (#220) -* Fix `librenms_snmptrapd` service typo (#219) - -## 21.7.0-r1 (2021/08/07) - -* Add SNMP config (#216) - -## 21.7.0-r0 (2021/08/01) - -* LibreNMS 21.7.0 (#215) -* Create and enable a snmp trap handling container (#180) - -## 21.6.0-r0 (2021/06/28) - -* LibreNMS 21.6.0 (#210) - -## 21.5.1-r0 (2021/05/20) - -* LibreNMS 21.5.1 (#205) -* Move to `docker/metadata-action` (#199) -* Add `file` package (#195) - -## 21.4.0-r0 (2021/04/18) - -* LibreNMS 21.4.0 (#192) -* Update db service example (#193) -* Fix weathermap output perms (#191) -* Fix warnings (#190) -* All containers should connect to redis (#178) -* alpine-s6 3.13-2.2.0.3 (#189) - -## 21.3.0-r0 (2021/03/21) - -* LibreNMS 21.3.0 -* Update syslog-ng max-connections (#179) - -## 21.2.0-r3 (2021/03/18) - -* Upstream Alpine update - -## 21.2.0-r2 (2021/03/10) - -* Handle LibreNMS plugins (#171) - -## 21.2.0-r1 (2021/03/04) - -* Switch to `yasu` - -## 21.2.0-r0 (2021/02/16) - -* LibreNMS 21.2.0 (#167) -* `s6-overlay` 2.2.0.3 (#162) -* Alpine Linux 3.13 (#162) - -## 21.1.0-r2 (2021/02/16) - -* Need to specify `rrdtool_version` (librenms/docker@ab027d7) - -## 21.1.0-r1 (2021/02/13) - -* Downgrade to `s6-overlay` 2.1.0.2 (#164) -* No need to specify `rrdtool_version` (#166) - -## 21.1.0-r0 (2021/02/02) - -* LibreNMS 21.1.0 -* Switch to buildx bake -* Do not fail on permission issue -* Redis - Add scheme to allow TLS (#159) -* Add iputils and fix perms (#131) - -## 1.70.1-RC2 (2020/12/10) - -* Fix Redis for dispatcher - -## 1.70.1-RC1 (2020/12/02) - -* LibreNMS 1.70.1 -* Add NET_ADMIN capability and fix fping6 (#140) - -## 1.69-RC3 (2020/11/22) - -* Fix tzdata issue with Alpine (#143) -* Add alert templates (#142) -* Add redis sentinel support (#141) - -## 1.69-RC2 (2020/11/04) - -* Do not set default value for `RRDCACHED_SERVER` - -## 1.69-RC1 (2020/11/03) - -* LibreNMS 1.69 -* Update to Traefik v2 -* Update PWD example (#135) -* Allow to clear env for FPM workers -* Use Docker meta action to handle tags and labels -* Replace `RRDCACHED_HOST` and `RRDCACHED_PORT` with `RRDCACHED_SERVER` env var - -## 1.68-RC1 (2020/09/30) - -* LibreNMS 1.68 - -## 1.67-RC2 (2020/09/04) - -* Seed through artisan (#122) - -## 1.67-RC1 (2020/09/03) - -* LibreNMS 1.67 -* Now based on [Alpine Linux 3.12 with s6 overlay](https://github.com/crazy-max/docker-alpine-s6/) -* Missing migration seed flag (#122) - -## 1.66-RC2 (2020/08/28) - -* Fix DB connection for dispatcher service (#108 #118 #119) -* Run maintenance task through a dedicated process (#105) -* Add `DISPATCHER_ARGS` env var - -## 1.66-RC1 (2020/07/30) - -* LibreNMS 1.66 - -## 1.65.1-RC2 (2020/07/10) - -* Add `LIBRENMS_BASE_URL` env var (#95 #99 #100) - -## 1.65.1-RC1 (2020/07/10) - -* LibreNMS 1.65.1 - -## 1.65-RC1 (2020/07/03) - -* LibreNMS 1.65 -* Remove `LIBRENMS_DISTRIBUTED_POLLER_*` env vars (now handle through WebUI) -* Check database migration completed -* Remove `LIBRENMS_SERVICE_*` env vars (now handle through WebUI) -* Check `poller_cluster` table exists before running dispatcher -* Handle Redis for dispatcher through `.env` -* Remove deprecated sidecar cron container -* Handle APP_KEY and NODE_ID (#91 #93) -* Add artisan command -* Clear cache and reload config cache -* Set user group config -* Alpine Linux 3.12 - -> :warning: **UPGRADE NOTES** -> Fill in the "Specific URL" (`base_url`) at `https://librenms.example.com/settings/system/server` - -## 1.64.1-RC1 (2020/06/01) - -* LibreNMS 1.64.1 - -## 1.64-RC1 (2020/06/01) - -* LibreNMS 1.64 -* Python 2 removed (librenms/librenms#11531) -* Multi-platform image -* Publish edge image - -## 1.63-RC7 (2020/05/28) - -* Use recommended `lnms` command -* Remove `--sql-mode` and bump Mariadb to 10.4 - -## 1.63-RC6 (2020/05/24) - -* Bring back Git package - -## 1.63-RC5 (2020/05/22) - -* Add missing dep and perms for Weathermap plugin (#82) - -## 1.63-RC4 (2020/05/21) - -* Add LibreNMS Weathermap plugin (#81) -* Fix syslogng version -* Switch to [msmtpd SMTP relay](https://github.com/crazy-max/docker-msmtpd) Docker image - -## 1.63-RC3 (2020/05/13) - -* Run librenms-service as librenms user (#76) -* Mark sidecar cron container as deprecated - -## 1.63-RC2 (2020/05/08) - -* Fix poller-wrapper - -## 1.63-RC1 (2020/05/08) - -* LibreNMS 1.63 -* Add sidecar dispatcher container (#70) -* Add `LISTEN_IPV6` env var (#71) -* Alpine Linux 3.11 - -## 1.62.2-RC2 (2020/04/13) - -* Fix log file permissions (#66) -* Switch to Open Container Specification labels as label-schema.org ones are deprecated - -## 1.62.2-RC1 (2020/04/04) - -* LibreNMS 1.62.2 - -## 1.61-RC4 (2020/03/27) - -* Fix folder creation (#62) - -## 1.61-RC3 (2020/03/22) - -* Allow multi discovery workers through `LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS` env var (#59) - -## 1.61-RC2 (2020/03/05) - -* Add `php7-sockets` extension (#61) - -## 1.61-RC1 (2020/03/02) - -* LibreNMS 1.61 - -## 1.60-RC1 (2020/02/04) - -* LibreNMS 1.60 - -## 1.58.1-RC6 (2020/01/23) - -* Move Nginx temp folders to `/tmp` (#55) - -## 1.58.1-RC5 (2019/12/20) - -* Add snmp-scan option for cron container (#53) - -## 1.58.1-RC4 (2019/12/06) - -* Fix timezone php.ini - -## 1.58.1-RC3 (2019/12/06) - -* Bring back timezone management through symlink (#49) - -## 1.58.1-RC2 (2019/11/29) - -* Fix php date timezone (#49) -* `MEMCACHED_PORT` default port not working (#48) - -## 1.58.1-RC1 (2019/11/27) - -* LibreNMS 1.58.1 - -## 1.58-RC1 (2019/11/25) - -* LibreNMS 1.58 -* Remove useless `.git` folder -* Add `LIBRENMS_DOCKER` env (librenms/librenms#10879) - -## 1.57-RC2 (2019/11/19) - -* :warning: Run as non-root user (#6) -* Switch to [s6-overlay](https://github.com/just-containers/s6-overlay/) as process supervisor -* Prevent exposing Nginx and PHP version -* :warning: Bind to unprivileged port (8000) -* Remove php-fpm access log (already mirrored by nginx) - -> :warning: **UPGRADE NOTES** -> As the Docker container now runs as a non-root user, you have to first stop the container and change permissions to `data` volume: -> ``` -> docker compose stop -> chown -R ${PUID}:${PGID} data/ -> docker compose pull -> docker compose up -d -> ``` - -## 1.57-RC1 (2019/10/30) - -* LibreNMS 1.57 - -## 1.56-RC3 (2019/10/26) - -* Base image update - -## 1.56-RC2 (2019/10/25) - -* Fix CVE-2019-11043 - -## 1.56-RC1 (2019/09/30) - -* LibreNMS 1.56 - -## 1.55-RC2 (2019/09/14) - -* Review data permissions -* Remove usermod/groupmod (Issue #38) - -## 1.55-RC1 (2019/09/04) - -* LibreNMS 1.55 - -## 1.54-RC2 (2019/08/28) - -* Add python3 modules required for new [Dispatcher Service](https://docs.librenms.org/Extensions/Dispatcher-Service/) (PR #36) - -## 1.54-RC1 (2019/07/29) - -* LibreNMS 1.54 - -## 1.53.1-RC2 (2019/07/25) - -* Add ipmitool location (Issue #34) - -## 1.53.1-RC1 (2019/07/02) - -* LibreNMS 1.53.1 - -## 1.53-RC1 (2019/07/01) - -* LibreNMS 1.53 -* Alpine Linux 3.10 - -## 1.52-RC1 (2019/05/28) - -* LibreNMS 1.52 - -## 1.51-RC2 (2019/05/01) - -* Sidecar cron and syslog-ng are now respectively enabled through `SIDECAR_CRON` and `SIDECAR_SYSLOGNG` env vars -* Fix snmpd command - -> :warning: **UPGRADE NOTES** -> Sidecar cron and syslog-ng are now respectively handled with `SIDECAR_CRON` and `SIDECAR_SYSLOGNG` env vars -> See compose example and README for more info. - -## 1.51-RC1 (2019/05/01) - -* LibreNMS 1.51 - -## 1.50.1-RC3 (2019/04/28) - -* Add `large_client_header_buffers` Nginx config - -## 1.50.1-RC2 (2019/04/21) - -* Add ipmitool (PR #29) - -## 1.50.1-RC1 (2019/04/17) - -* LibreNMS 1.50.1 - -## 1.50-RC5 (2019/04/15) - -* Bind IPv6 (Issue #28) - -## 1.50-RC4 (2019/04/13) - -* Add `LOG_IP_VAR` environment variable (Issue #22) - -## 1.50-RC3 (2019/04/07) - -* Use python3 for snmp-scan (Issue #25) -* Add `REAL_IP_FROM` and `REAL_IP_HEADER` environment variables (Issue #22) - -## 1.50-RC2 (2019/04/03) - -* MEMORY_LIMIT not used by poller (PR #24) - -## 1.50-RC1 (2019/04/01) - -* LibreNMS 1.50 - -## 1.49-RC1 (2019/03/06) - -* LibreNMS 1.49 - -## 1.48.1-RC1 (2019/01/31) - -* LibreNMS 1.48.1 -* Alpine Linux 3.9 - -## 1.48-RC1 (2019/01/28) - -* LibreNMS 1.48 - -## 1.47-RC1 (2018/12/30) - -* LibreNMS 1.47 - -## 1.46-RC3 (2018/12/29) - -* Missing Python 2 memcached module for poller (Issue #9) - -## 1.46-RC2 (2018/12/14) - -* Add Python 3 (Issue #7) - -## 1.46-RC1 (2018/12/02) - -* LibreNMS 1.46 - -## 1.45-RC3 (2018/11/25) - -* Fix dbcmd in entrypoint -* Optimize layers - -## 1.45-RC2 (2018/11/21) - -* Add `php7-ldap` package - -## 1.45-RC1 (2018/10/28) - -* LibreNMS 1.45 - -## 1.44-RC1 (2018/10/17) - -* LibreNMS 1.44 -* Add `busybox-extras` and `bind-tools` packages - -## 1.43-RC5 (2018/09/29) - -* Ability to add custom Monitoring plugins through `/data/monitoring-plugins` -* Install [Monitoring Plugins](https://www.monitoring-plugins.org/) package -* Services enabled by default - -## 1.43-RC4 (2018/09/26) - -* Add `ttf-dejavu` package - -## 1.43-RC3 (2018/09/24) - -* Set default port for `MEMCACHED_PORT` and `RRDCACHED_PORT` - -## 1.43-RC2 (2018/09/24) - -* Add CAP_NET_RAW on nmap and fping -* Fixes for `validate.php` nologin errors and missing setfacl binaries -* Add fping6 support -* Add `rrdtool_version` -* Ability to configure distributed polling -* Adding python-memcached module required for distributed poller setup -* Configurable DB_TIMEOUT -* Allow setting sensible variables through files -* Ability to override Memcached and RRD ports - -## 1.43-RC1 (2018/09/10) - -* LibreNMS 1.43 - -## 1.42.01-RC1 (2018/08/05) - -* LibreNMS 1.42.01 - -## 1.42-RC1 (2018/08/02) - -* LibreNMS 1.42 -* Add syslog-ng support - -## 1.41-RC1 (2018/07/07) - -* Initial version based on LibreNMS 1.41 From ce0f4d9a5febc46386030fbc96175e5776da1e77 Mon Sep 17 00:00:00 2001 From: Carl Mercier Date: Sat, 19 Aug 2023 23:50:22 -0400 Subject: [PATCH 446/523] Install GNU sed (#385) To be compatible with check_mrpe and other scripts expecting GNU sed. --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 2111034..ba76829 100644 --- a/Dockerfile +++ b/Dockerfile @@ -66,6 +66,7 @@ RUN apk --update --no-cache add \ py3-pip \ rrdtool \ runit \ + sed \ shadow \ syslog-ng=3.38.1-r0 \ ttf-dejavu \ From 9d50911922b84bd7144f153956facb8ae0a26ac4 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 21 Aug 2023 12:23:26 +0200 Subject: [PATCH 447/523] LibreNMS 23.8.1 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ba76829..2f2a7a3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="23.5.0" +ARG LIBRENMS_VERSION="23.8.1" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.17" From 97ff0fe6d8406aed1f1be40de982b121e700732c Mon Sep 17 00:00:00 2001 From: jacobw Date: Wed, 23 Aug 2023 05:52:16 +1200 Subject: [PATCH 448/523] LibreNMS 23.8.2 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2f2a7a3..962dc92 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="23.8.1" +ARG LIBRENMS_VERSION="23.8.2" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.17" From 2f114b035c30bd5f89e2bedeabc6c819e20bace1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 06:39:42 +0000 Subject: [PATCH 449/523] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 2 +- .github/workflows/labels.yml | 2 +- .github/workflows/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9cd58dc..1dbb4b8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Docker meta id: meta diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index c3e0637..3d91fd1 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run Labeler uses: crazy-max/ghaction-github-labeler@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cb014dc..6e2f4f6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -36,7 +36,7 @@ jobs: echo "LIBRENMS_VERSION=${{ matrix.version }}" >> $GITHUB_ENV - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v2 From 0850de591da3d02c2123a7cb214e72e04e7591ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 06:43:50 +0000 Subject: [PATCH 450/523] Bump crazy-max/ghaction-github-labeler from 4 to 5 Bumps [crazy-max/ghaction-github-labeler](https://github.com/crazy-max/ghaction-github-labeler) from 4 to 5. - [Release notes](https://github.com/crazy-max/ghaction-github-labeler/releases) - [Commits](https://github.com/crazy-max/ghaction-github-labeler/compare/v4...v5) --- updated-dependencies: - dependency-name: crazy-max/ghaction-github-labeler dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/labels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index c3e0637..35657b1 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -25,6 +25,6 @@ jobs: uses: actions/checkout@v3 - name: Run Labeler - uses: crazy-max/ghaction-github-labeler@v4 + uses: crazy-max/ghaction-github-labeler@v5 with: dry-run: ${{ github.event_name == 'pull_request' }} From a9a54b1512a288da32c13f5e7802f9f25a02a4d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Sep 2023 06:56:18 +0000 Subject: [PATCH 451/523] Bump docker/setup-buildx-action from 2 to 3 Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9cd58dc..6d97611 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -46,7 +46,7 @@ jobs: uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub if: github.event_name != 'pull_request' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cb014dc..5ea795c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,7 +42,7 @@ jobs: uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Build uses: docker/bake-action@v3 From c5451c1ece80eaa3b3c66627a9b6b0370beb23cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Sep 2023 06:56:21 +0000 Subject: [PATCH 452/523] Bump docker/setup-qemu-action from 2 to 3 Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2 to 3. - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9cd58dc..8764b6c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,7 +43,7 @@ jobs: org.opencontainers.image.vendor=LibreNMS - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cb014dc..54af151 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -39,7 +39,7 @@ jobs: uses: actions/checkout@v3 - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 From 9ad6692bb2613697928467f1c97ea203025b9ff3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Sep 2023 06:56:24 +0000 Subject: [PATCH 453/523] Bump docker/metadata-action from 4 to 5 Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5. - [Release notes](https://github.com/docker/metadata-action/releases) - [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md) - [Commits](https://github.com/docker/metadata-action/compare/v4...v5) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9cd58dc..6b8e8e2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,7 +29,7 @@ jobs: - name: Docker meta id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: | ${{ env.DOCKERHUB_SLUG }} From 8ac8978614920061c9883e4eb18fda68ef8f6d66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 06:30:46 +0000 Subject: [PATCH 454/523] Bump docker/login-action from 2 to 3 Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7ad8ee9..1a00561 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -50,7 +50,7 @@ jobs: - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} From f0229dfab4beb4d6d4c18dcf9a1b1ce3235d698d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 06:30:50 +0000 Subject: [PATCH 455/523] Bump docker/bake-action from 3 to 4 Bumps [docker/bake-action](https://github.com/docker/bake-action) from 3 to 4. - [Release notes](https://github.com/docker/bake-action/releases) - [Commits](https://github.com/docker/bake-action/compare/v3...v4) --- updated-dependencies: - dependency-name: docker/bake-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7ad8ee9..2a147ed 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -56,7 +56,7 @@ jobs: password: ${{ secrets.DOCKER_PASSWORD }} - name: Build - uses: docker/bake-action@v3 + uses: docker/bake-action@v4 with: files: | ./docker-bake.hcl diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 96071f2..ac1caee 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -45,7 +45,7 @@ jobs: uses: docker/setup-buildx-action@v3 - name: Build - uses: docker/bake-action@v3 + uses: docker/bake-action@v4 with: targets: image-local env: From 5a69b6d497add7d47e4ba6428285e3b299a99b25 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 29 Sep 2023 15:23:57 +0200 Subject: [PATCH 456/523] update README --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 96d234f..6ea2918 100644 --- a/README.md +++ b/README.md @@ -442,9 +442,10 @@ in `/data/alert-templates/`. ## Contributing -Want to contribute? Awesome! The most basic way to show your support is to star the project, or to raise issues. You -can also support this project by [**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max) or by making -a [Paypal donation](https://www.paypal.me/crazyws) to ensure this journey continues indefinitely! +Want to contribute? Awesome! The most basic way to show your support is to star +the project, or to raise issues. You can also support this project by [**becoming a sponsor on GitHub**](https://github.com/sponsors/crazy-max) +or by making a [PayPal donation](https://www.paypal.me/crazyws) to ensure this +journey continues indefinitely! Thanks again for your support, it is much appreciated! :pray: From d2fbcb10c50d6e8cc0c1f1cbfa79b5699f8c8233 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 29 Sep 2023 15:24:57 +0200 Subject: [PATCH 457/523] LibreNMS 23.9.1 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 962dc92..dcd2d73 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="23.8.2" +ARG LIBRENMS_VERSION="23.9.1" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.17" From d0ed3bb7d3b2232cfb6f75222f3b6a09eb9d671d Mon Sep 17 00:00:00 2001 From: Nico <588438+rybnico@users.noreply.github.com> Date: Sat, 25 Nov 2023 19:53:10 +0100 Subject: [PATCH 458/523] LibreNMS 23.11.0 (#405) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index dcd2d73..e00be3f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="23.9.1" +ARG LIBRENMS_VERSION="23.11.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.17" From ded183b473588075133938a6016a87f6f59f65c8 Mon Sep 17 00:00:00 2001 From: Jason Costomiris Date: Sun, 31 Dec 2023 12:37:59 -0500 Subject: [PATCH 459/523] test fix for /opt/librenms/cache ownership --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index e00be3f..e859d53 100644 --- a/Dockerfile +++ b/Dockerfile @@ -132,6 +132,7 @@ RUN apk --update --no-cache add -t build-dependencies \ && git reset --hard $WEATHERMAP_PLUGIN_COMMIT \ ) \ && chown -R nobody:nogroup ${LIBRENMS_PATH} \ + && chown -R librenms:librenms ${LIBRENMS_PATH}/cache \ && apk del build-dependencies \ && rm -rf .git \ html/plugins/Test \ From 99fee57d6ddf9f805f02b54f220074f4c24bdfff Mon Sep 17 00:00:00 2001 From: Jason Costomiris Date: Mon, 1 Jan 2024 14:00:25 -0500 Subject: [PATCH 460/523] Remove cache perms fix from Dockerfile, move to script --- Dockerfile | 1 - rootfs/etc/cont-init.d/02-fix-perms.sh | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index e859d53..e00be3f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -132,7 +132,6 @@ RUN apk --update --no-cache add -t build-dependencies \ && git reset --hard $WEATHERMAP_PLUGIN_COMMIT \ ) \ && chown -R nobody:nogroup ${LIBRENMS_PATH} \ - && chown -R librenms:librenms ${LIBRENMS_PATH}/cache \ && apk del build-dependencies \ && rm -rf .git \ html/plugins/Test \ diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index 51786fa..3b54519 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -9,7 +9,8 @@ mkdir -p /data \ chown librenms:librenms \ /data \ "${LIBRENMS_PATH}" \ - "${LIBRENMS_PATH}/.env" + "${LIBRENMS_PATH}/.env" \ + "${LIBRENMS_PATH}/cache" chown -R librenms:librenms \ /home/librenms \ /tpls \ From bf27d28777822ea45966649ef5efe3c3cb6aae18 Mon Sep 17 00:00:00 2001 From: Santiago Z Date: Sun, 7 Jan 2024 20:48:13 -0300 Subject: [PATCH 461/523] Update to LibreNMS 24.1.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e00be3f..d959c92 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="23.11.0" +ARG LIBRENMS_VERSION="24.1.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.17" From ed3aa87814782bea1c0ea2f301f8f6b25894655e Mon Sep 17 00:00:00 2001 From: Santiago Z Date: Wed, 28 Feb 2024 14:34:15 -0300 Subject: [PATCH 462/523] Update to LibreNMS 24.2.0 Update LibreNMS to Version 24.2.0, released 2024-02-27 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d959c92..4024b8c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="24.1.0" +ARG LIBRENMS_VERSION="24.2.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.17" From aa9fd2c1d7267090f33b081daf64077a7b4ac4ac Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Fri, 1 Mar 2024 10:37:08 +0100 Subject: [PATCH 463/523] new year --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 51b9b71..92c78af 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018-2023 CrazyMax +Copyright (c) 2018-2024 CrazyMax Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From b823f6bc47ef7eb0e03305e94783a622043b9906 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Fri, 1 Mar 2024 10:39:15 +0100 Subject: [PATCH 464/523] Alpine Linux 3.19 --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4024b8c..d2d4ffa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ ARG LIBRENMS_VERSION="24.2.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" -ARG ALPINE_VERSION="3.17" +ARG ALPINE_VERSION="3.19" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:${ALPINE_VERSION}-2.2.0.3 @@ -79,8 +79,8 @@ RUN apk --update --no-cache add \ mariadb-dev \ musl-dev \ python3-dev \ - && pip3 install --upgrade pip \ - && pip3 install python-memcached mysqlclient --upgrade \ + && pip3 install --upgrade --break-system-packages pip \ + && pip3 install python-memcached mysqlclient --upgrade --break-system-packages \ && curl -sSL https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ && apk del build-dependencies \ && rm -rf /var/www/* /tmp/* \ @@ -118,7 +118,7 @@ RUN apk --update --no-cache add -t build-dependencies \ python3-dev \ && echo "Installing LibreNMS https://github.com/librenms/librenms.git#${LIBRENMS_VERSION}..." \ && git clone --depth=1 --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git . \ - && pip3 install --ignore-installed -r requirements.txt --upgrade \ + && pip3 install --ignore-installed -r requirements.txt --upgrade --break-system-packages \ && COMPOSER_CACHE_DIR="/tmp" composer install --no-dev --no-interaction --no-ansi \ && mkdir config.d \ && cp config.php.default config.php \ From 8b789d36f4968da1f272909220af8af85182ffed Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 16 Jul 2023 23:21:55 +0200 Subject: [PATCH 465/523] Update syslogng to 4.5.0-r0 --- Dockerfile | 5 ++++- rootfs/etc/syslog-ng/syslog-ng.conf | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d2d4ffa..d4279d6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,6 +3,7 @@ ARG LIBRENMS_VERSION="24.2.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" +ARG SYSLOGNG_VERSION="4.5.0-r0" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:${ALPINE_VERSION}-2.2.0.3 @@ -68,7 +69,6 @@ RUN apk --update --no-cache add \ runit \ sed \ shadow \ - syslog-ng=3.38.1-r0 \ ttf-dejavu \ tzdata \ util-linux \ @@ -96,6 +96,9 @@ RUN apk --update --no-cache add \ && setcap cap_net_raw+ep /usr/lib/monitoring-plugins/check_icmp \ && setcap cap_net_raw+ep /usr/lib/monitoring-plugins/check_ping +ARG SYSLOGNG_VERSION +RUN apk --update --no-cache add syslog-ng=${SYSLOGNG_VERSION} + ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \ LIBRENMS_PATH="/opt/librenms" \ LIBRENMS_DOCKER="1" \ diff --git a/rootfs/etc/syslog-ng/syslog-ng.conf b/rootfs/etc/syslog-ng/syslog-ng.conf index e7009ec..840c535 100644 --- a/rootfs/etc/syslog-ng/syslog-ng.conf +++ b/rootfs/etc/syslog-ng/syslog-ng.conf @@ -1,4 +1,4 @@ -@version:3.38 +@version:4.5 options { chain_hostnames(off); From fe485f877a01ea6057f0d3e60208786f5793cd07 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Fri, 1 Mar 2024 10:49:13 +0100 Subject: [PATCH 466/523] PHP 8.2 --- Dockerfile | 56 +++++++++---------- rootfs/etc/cont-init.d/02-fix-perms.sh | 2 +- rootfs/etc/cont-init.d/03-config.sh | 10 ++-- rootfs/etc/cont-init.d/04-svc-main.sh | 2 +- .../etc/{php81 => php82}/conf.d/opcache.ini | 0 .../etc/{php81 => php82}/php-fpm.d/www.conf | 0 6 files changed, 35 insertions(+), 35 deletions(-) rename rootfs/tpls/etc/{php81 => php82}/conf.d/opcache.ini (100%) rename rootfs/tpls/etc/{php81 => php82}/php-fpm.d/www.conf (100%) diff --git a/Dockerfile b/Dockerfile index d4279d6..c0d3784 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,34 +35,34 @@ RUN apk --update --no-cache add \ openssl \ openssh-client \ perl \ - php81 \ - php81-cli \ - php81-ctype \ - php81-curl \ - php81-dom \ - php81-fileinfo \ - php81-fpm \ - php81-gd \ - php81-gmp \ - php81-json \ - php81-ldap \ - php81-mbstring \ - php81-mysqlnd \ - php81-opcache \ - php81-openssl \ - php81-pdo \ - php81-pdo_mysql \ - php81-pecl-memcached \ - php81-pear \ - php81-phar \ - php81-posix \ - php81-session \ - php81-simplexml \ - php81-snmp \ - php81-sockets \ - php81-tokenizer \ - php81-xml \ - php81-zip \ + php82 \ + php82-cli \ + php82-ctype \ + php82-curl \ + php82-dom \ + php82-fileinfo \ + php82-fpm \ + php82-gd \ + php82-gmp \ + php82-json \ + php82-ldap \ + php82-mbstring \ + php82-mysqlnd \ + php82-opcache \ + php82-openssl \ + php82-pdo \ + php82-pdo_mysql \ + php82-pecl-memcached \ + php82-pear \ + php82-phar \ + php82-posix \ + php82-session \ + php82-simplexml \ + php82-snmp \ + php82-sockets \ + php82-tokenizer \ + php82-xml \ + php82-zip \ python3 \ py3-pip \ rrdtool \ diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index 3b54519..4f43ab6 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -16,6 +16,6 @@ chown -R librenms:librenms \ /tpls \ /var/lib/nginx \ /var/log/nginx \ - /var/log/php81 \ + /var/log/php82 \ /var/run/nginx \ /var/run/php-fpm diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 18402aa..d9b4534 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -64,17 +64,17 @@ sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \ -e "s/@FPM_PM_START_SERVERS@/$FPM_PM_START_SERVERS/g" \ -e "s/@FPM_PM_MIN_SPARE_SERVERS@/$FPM_PM_MIN_SPARE_SERVERS/g" \ -e "s/@FPM_PM_MAX_SPARE_SERVERS@/$FPM_PM_MAX_SPARE_SERVERS/g" \ - /tpls/etc/php81/php-fpm.d/www.conf >/etc/php81/php-fpm.d/www.conf + /tpls/etc/php82/php-fpm.d/www.conf >/etc/php82/php-fpm.d/www.conf echo "Setting PHP INI configuration..." -sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php81/php.ini -sed -i "s|;date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php81/php.ini -sed -i "s|;max_input_vars.*|max_input_vars = ${MAX_INPUT_VARS}|g" /etc/php81/php.ini +sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php82/php.ini +sed -i "s|;date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php82/php.ini +sed -i "s|;max_input_vars.*|max_input_vars = ${MAX_INPUT_VARS}|g" /etc/php82/php.ini # OpCache echo "Setting OpCache configuration..." sed -e "s/@OPCACHE_MEM_SIZE@/$OPCACHE_MEM_SIZE/g" \ - /tpls/etc/php81/conf.d/opcache.ini >/etc/php81/conf.d/opcache.ini + /tpls/etc/php82/conf.d/opcache.ini >/etc/php82/conf.d/opcache.ini # Nginx echo "Setting Nginx configuration..." diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index b4ff0f1..f81d824 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -99,7 +99,7 @@ cat >/etc/services.d/php-fpm/run < Date: Mon, 1 Apr 2024 18:50:33 -0300 Subject: [PATCH 467/523] Update to LibreNMS 24.3.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c0d3784..b2a38f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="24.2.0" +ARG LIBRENMS_VERSION="24.3.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" ARG SYSLOGNG_VERSION="4.5.0-r0" From d4242ab6998b7bdb64049f62b3047063196f06a3 Mon Sep 17 00:00:00 2001 From: Hayden Seitz Date: Tue, 2 Apr 2024 17:40:09 -0700 Subject: [PATCH 468/523] fix: allow DB_PASSWORD with # character --- rootfs/etc/cont-init.d/03-config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index d9b4534..f6e1bf6 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -137,7 +137,7 @@ DB_HOST=${DB_HOST} DB_PORT=${DB_PORT} DB_DATABASE=${DB_NAME} DB_USERNAME=${DB_USER} -DB_PASSWORD=${DB_PASSWORD} +DB_PASSWORD="${DB_PASSWORD}" EOL # Config : Directories From 93eb528cbb6ff4dce04c3128311a332f8fe6c4cc Mon Sep 17 00:00:00 2001 From: Andy Norwood <2754635+bonzo81@users.noreply.github.com> Date: Tue, 16 Apr 2024 10:10:56 +0100 Subject: [PATCH 469/523] Update 02-fix-perms.sh for rrd folder Since Librenms 23.10.0 each poller needs to create a folder in /rrd. See https://github.com/librenms/librenms/pull/15457. Without this permission the eventlog creates message "Failed to create rrd directory: /opt/librenms/rrd/x.x.x.x/" with every device poll. --- rootfs/etc/cont-init.d/02-fix-perms.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index 4f43ab6..07858f2 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -10,7 +10,8 @@ chown librenms:librenms \ /data \ "${LIBRENMS_PATH}" \ "${LIBRENMS_PATH}/.env" \ - "${LIBRENMS_PATH}/cache" + "${LIBRENMS_PATH}/cache" \ + "${LIBRENMS_PATH}/rrd" chown -R librenms:librenms \ /home/librenms \ /tpls \ From 15400f77e1b6430e59b839c6336ea166a63529c7 Mon Sep 17 00:00:00 2001 From: Santiago Z Date: Sat, 20 Apr 2024 18:18:33 -0300 Subject: [PATCH 470/523] Update to LibreNMS 24.4.1 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b2a38f8..28b1769 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="24.3.0" +ARG LIBRENMS_VERSION="24.4.1" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" ARG SYSLOGNG_VERSION="4.5.0-r0" From caf846857af355db15113bf7d45d36b050de5d04 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Mon, 29 Apr 2024 10:37:12 +0200 Subject: [PATCH 471/523] update README --- README.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6ea2918..fc2147c 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,7 @@ Docker image for [LibreNMS](https://www.librenms.org/), a fully featured network monitoring system that provides a wealth of features and device support. -> **Note** -> +> [!TIP] > Want to be notified of new releases? Check out 🔔 [Diun (Docker Image Update Notifier)](https://github.com/crazy-max/diun) > project! @@ -134,8 +133,7 @@ Image: librenms/librenms:latest ### Redis -> **Note** -> +> [!NOTE] > Redis variables should be set on all containers and are required when running > more than one dispatcher. @@ -252,8 +250,7 @@ $ docker run -d -p 8000:8000 --name librenms \ When you first access the webui, you will be prompted to create an admin user. -> **Note** -> +> [!NOTE] > If you lose access, you can create another one using the [`lnms` command](#lnms-command). ## Upgrade From 9bbe8f1d1dd55691cceddbef7c34da0fde04bebd Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Wed, 1 May 2024 14:57:29 +0200 Subject: [PATCH 472/523] update README --- README.md | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index fc2147c..3eb69f1 100644 --- a/README.md +++ b/README.md @@ -148,8 +148,7 @@ Image: librenms/librenms:latest ### Dispatcher service -> **Warning** -> +> [!WARNING] > Only used if you enable and run a [sidecar dispatcher container](#dispatcher-service-container). * `SIDECAR_DISPATCHER`: Set to `1` to enable sidecar dispatcher mode for this container (default `0`) @@ -158,16 +157,14 @@ Image: librenms/librenms:latest ### Syslog-ng -> **Warning** -> +> [!WARNING] > Only used if you enable and run a [sidecar syslog-ng container](#syslog-ng-container). * `SIDECAR_SYSLOGNG`: Set to `1` to enable sidecar syslog-ng mode for this container (default `0`) ### Snmptrapd -> **Warning** -> +> [!WARNING] > Only used if you enable and run a [sidecar snmptrapd container](#snmptrapd-container). * `SIDECAR_SNMPTRAPD`: Set to `1` to enable sidecar snmptrapd mode for this container (default `0`) @@ -205,8 +202,7 @@ Image: librenms/librenms:latest * `/data`: Contains configuration, plugins, rrd database, logs, additional Monitoring plugins, additional syslog-ng config files -> **Warning** -> +> [!WARNING] > Note that the volume should be owned by the user/group with the specified > `PUID` and `PGID`. If you don't give the volume correct permissions, the > container may not start. @@ -242,8 +238,7 @@ $ docker run -d -p 8000:8000 --name librenms \ librenms/librenms:latest ``` -> **Warning** -> +> [!WARNING] > `db` must be a running MySQL instance. ### First launch @@ -358,8 +353,7 @@ $ docker run -d --name librenms_dispatcher \ librenms/librenms:latest ``` -> **Warning** -> +> [!WARNING] > `librenms` must be a valid volume already attached to a LibreNMS container. ### Syslog-ng container @@ -377,8 +371,7 @@ $ docker run -d --name librenms_syslog \ librenms/librenms:latest ``` -> **Warning** -> +> [!WARNING] > `librenms` must be a valid volume already attached to a LibreNMS container. You have to create a configuration file to enable syslog in LibreNMS too. Create @@ -403,8 +396,7 @@ $ docker run -d --name librenms_snmptrapd \ librenms/librenms:latest ``` -> **Warning** -> +> [!WARNING] > `librenms` must be a valid volume already attached to a LibreNMS container. ### Add a LibreNMS plugin @@ -413,8 +405,7 @@ You can add [plugins for LibreNMS](https://docs.librenms.org/Extensions/Plugin-S in `/data/plugins/`. If you add a plugin that already exists in LibreNMS, it will be removed and yours will be used (except for Weathermap). -> **Warning** -> +> [!WARNING] > Container has to be restarted to propagate changes. ### Additional Monitoring plugins @@ -424,8 +415,7 @@ You can add a custom Monitoring plugin in `/data/monitoring-plugins/`. Some plugins can be found in the [Monitoring Plugins](https://github.com/monitoring-plugins/monitoring-plugins#readme) repo, or in the [unofficial fork for Nagios](https://github.com/nagios-plugins/nagios-plugins#readme). -> **Warning** -> +> [!WARNING] > Container has to be restarted to propagate changes. ### Custom alert templates @@ -433,8 +423,7 @@ repo, or in the [unofficial fork for Nagios](https://github.com/nagios-plugins/n You can add [Laravel alert templates](https://docs.librenms.org/Alerting/Templates/#base-templates) in `/data/alert-templates/`. -> **Warning** -> +> [!WARNING] > Container has to be restarted to propagate changes. ## Contributing From 6c185cd3e3946db7e04cc400b342f1a89610cb27 Mon Sep 17 00:00:00 2001 From: Santiago Z Date: Mon, 20 May 2024 21:58:44 -0300 Subject: [PATCH 473/523] Update to LibreNMS 24.5.0 https://github.com/librenms/librenms/releases/tag/24.5.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 28b1769..c340a26 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="24.4.1" +ARG LIBRENMS_VERSION="24.5.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" ARG SYSLOGNG_VERSION="4.5.0-r0" From 3131ae9f5bfe325a1159f6d28b22429d3db870f0 Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Wed, 22 May 2024 08:30:07 -0500 Subject: [PATCH 474/523] Update MariaDB and Redis MariaDB 10 picked because 11 renames some binaries and requires further changes (10.7->10.11) Redis 7.2 picked as the last version with a good license --- examples/compose/compose.yml | 4 ++-- examples/pwd/librenms.yml | 4 ++-- examples/rrdcached-server/compose.yml | 4 ++-- examples/traefik/compose.yml | 4 ++-- test/compose.yml | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/compose/compose.yml b/examples/compose/compose.yml index 6bdef18..f1f5a86 100644 --- a/examples/compose/compose.yml +++ b/examples/compose/compose.yml @@ -2,7 +2,7 @@ name: librenms services: db: - image: mariadb:10.5 + image: mariadb:10 container_name: librenms_db command: - "mysqld" @@ -21,7 +21,7 @@ services: restart: always redis: - image: redis:5.0-alpine + image: redis:7.2-alpine container_name: librenms_redis environment: - "TZ=${TZ}" diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index c22fcc0..5256847 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -25,7 +25,7 @@ x-envlibrenms: &envlibrenms services: db: - image: mariadb:10.5 + image: mariadb:10.11 command: - "mysqld" - "--innodb-file-per-table=1" @@ -43,7 +43,7 @@ services: restart: always redis: - image: redis:5.0-alpine + image: redis:7.2-alpine environment: TZ: *TZ restart: always diff --git a/examples/rrdcached-server/compose.yml b/examples/rrdcached-server/compose.yml index 30dedfc..14b273f 100644 --- a/examples/rrdcached-server/compose.yml +++ b/examples/rrdcached-server/compose.yml @@ -2,7 +2,7 @@ name: librenms services: db: - image: mariadb:10.5 + image: mariadb:10 container_name: librenms_db command: - "mysqld" @@ -21,7 +21,7 @@ services: restart: always redis: - image: redis:5.0-alpine + image: redis:7.2-alpine container_name: librenms_redis environment: - "TZ=${TZ}" diff --git a/examples/traefik/compose.yml b/examples/traefik/compose.yml index 43a286c..1d26ae4 100644 --- a/examples/traefik/compose.yml +++ b/examples/traefik/compose.yml @@ -36,7 +36,7 @@ services: restart: always db: - image: mariadb:10.5 + image: mariadb:10 container_name: librenms_db command: - "mysqld" @@ -55,7 +55,7 @@ services: restart: always redis: - image: redis:5.0-alpine + image: redis:7.2-alpine container_name: librenms_redis environment: - "TZ=${TZ}" diff --git a/test/compose.yml b/test/compose.yml index 8c2b0b8..3747ff0 100644 --- a/test/compose.yml +++ b/test/compose.yml @@ -2,7 +2,7 @@ name: librenms services: db: - image: mariadb:10.5 + image: mariadb:10 container_name: librenms_db command: - "mysqld" @@ -21,7 +21,7 @@ services: restart: always redis: - image: redis:5.0-alpine + image: redis:7.2-alpine container_name: librenms_redis environment: - "TZ=${TZ}" From eced9ae955391bf48f71392a5ebd07b319aa03f5 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Mon, 27 May 2024 10:51:28 +0200 Subject: [PATCH 475/523] examples: generate random password for db root --- examples/compose/compose.yml | 2 +- examples/pwd/librenms.yml | 2 +- examples/rrdcached-server/compose.yml | 2 +- examples/traefik/compose.yml | 2 +- test/compose.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/compose/compose.yml b/examples/compose/compose.yml index f1f5a86..c090df4 100644 --- a/examples/compose/compose.yml +++ b/examples/compose/compose.yml @@ -14,7 +14,7 @@ services: - "./db:/var/lib/mysql" environment: - "TZ=${TZ}" - - "MYSQL_ALLOW_EMPTY_PASSWORD=yes" + - "MARIADB_RANDOM_ROOT_PASSWORD=yes" - "MYSQL_DATABASE=${MYSQL_DATABASE}" - "MYSQL_USER=${MYSQL_USER}" - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index 5256847..07abe40 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -36,7 +36,7 @@ services: - "db:/var/lib/mysql" environment: TZ: *TZ - MYSQL_ALLOW_EMPTY_PASSWORD: "yes" + MARIADB_RANDOM_ROOT_PASSWORD: "yes" MYSQL_DATABASE: *MYSQL_DATABASE MYSQL_USER: *MYSQL_USER MYSQL_PASSWORD: *MYSQL_PASSWORD diff --git a/examples/rrdcached-server/compose.yml b/examples/rrdcached-server/compose.yml index 14b273f..dc8891a 100644 --- a/examples/rrdcached-server/compose.yml +++ b/examples/rrdcached-server/compose.yml @@ -14,7 +14,7 @@ services: - "./db:/var/lib/mysql" environment: - "TZ=${TZ}" - - "MYSQL_ALLOW_EMPTY_PASSWORD=yes" + - "MARIADB_RANDOM_ROOT_PASSWORD=yes" - "MYSQL_DATABASE=${MYSQL_DATABASE}" - "MYSQL_USER=${MYSQL_USER}" - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" diff --git a/examples/traefik/compose.yml b/examples/traefik/compose.yml index 1d26ae4..3b3a4fc 100644 --- a/examples/traefik/compose.yml +++ b/examples/traefik/compose.yml @@ -48,7 +48,7 @@ services: - "./db:/var/lib/mysql" environment: - "TZ=${TZ}" - - "MYSQL_ALLOW_EMPTY_PASSWORD=yes" + - "MARIADB_RANDOM_ROOT_PASSWORD=yes" - "MYSQL_DATABASE=${MYSQL_DATABASE}" - "MYSQL_USER=${MYSQL_USER}" - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" diff --git a/test/compose.yml b/test/compose.yml index 3747ff0..c63305f 100644 --- a/test/compose.yml +++ b/test/compose.yml @@ -14,7 +14,7 @@ services: - "librenms-db:/var/lib/mysql" environment: - "TZ=${TZ}" - - "MYSQL_ALLOW_EMPTY_PASSWORD=yes" + - "MARIADB_RANDOM_ROOT_PASSWORD=yes" - "MYSQL_DATABASE=${MYSQL_DATABASE}" - "MYSQL_USER=${MYSQL_USER}" - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" From 7828d6d2e08ba3dd1d0ce95b8d17bd19bdb59a63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 06:18:16 +0000 Subject: [PATCH 476/523] Bump docker/bake-action from 4 to 5 Bumps [docker/bake-action](https://github.com/docker/bake-action) from 4 to 5. - [Release notes](https://github.com/docker/bake-action/releases) - [Commits](https://github.com/docker/bake-action/compare/v4...v5) --- updated-dependencies: - dependency-name: docker/bake-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a79d3c5..e17db78 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -56,7 +56,7 @@ jobs: password: ${{ secrets.DOCKER_PASSWORD }} - name: Build - uses: docker/bake-action@v4 + uses: docker/bake-action@v5 with: files: | ./docker-bake.hcl diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ac1caee..b46cfce 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -45,7 +45,7 @@ jobs: uses: docker/setup-buildx-action@v3 - name: Build - uses: docker/bake-action@v4 + uses: docker/bake-action@v5 with: targets: image-local env: From 000bf44183e6d6fcfa96f233ebf34d417c95c0f9 Mon Sep 17 00:00:00 2001 From: Jochem Date: Fri, 5 Jul 2024 16:44:41 +0200 Subject: [PATCH 477/523] Update LibreNMS version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c340a26..8f41673 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="24.5.0" +ARG LIBRENMS_VERSION="24.6.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" ARG SYSLOGNG_VERSION="4.5.0-r0" From 94ba2e52a4e75b6b3d6544995a6910ae8823bc30 Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Mon, 5 Aug 2024 21:53:17 -0500 Subject: [PATCH 478/523] Dispatcher sidecar is required --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3eb69f1..8a671c2 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,7 @@ Image: librenms/librenms:latest ### Dispatcher service > [!WARNING] -> Only used if you enable and run a [sidecar dispatcher container](#dispatcher-service-container). +> You need at least one dispatcher sidecar, otherwise poller will not run [sidecar dispatcher container](#dispatcher-service-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 From 7a13807ea5110146f3f2b0a5ee51836cd23b8385 Mon Sep 17 00:00:00 2001 From: Michael <35783820+mib1185@users.noreply.github.com> Date: Mon, 19 Aug 2024 15:34:23 +0200 Subject: [PATCH 479/523] bump libreNMS to 24.8.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8f41673..504dc60 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="24.6.0" +ARG LIBRENMS_VERSION="24.8.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" ARG SYSLOGNG_VERSION="4.5.0-r0" From 02b30caeca7688118633addbffdc67ed17398d43 Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Sun, 25 Aug 2024 16:13:51 -0500 Subject: [PATCH 480/523] Bump to 24.8.1 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 504dc60..0958809 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="24.8.0" +ARG LIBRENMS_VERSION="24.8.1" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" ARG SYSLOGNG_VERSION="4.5.0-r0" From b211ecaa743d56ec960c12d6474b6790b1e58eb0 Mon Sep 17 00:00:00 2001 From: Ilmari Aho Date: Mon, 7 Oct 2024 12:59:12 +0300 Subject: [PATCH 481/523] feat(php83): update to php8.3 --- Dockerfile | 57 ++++++++++--------- rootfs/etc/cont-init.d/02-fix-perms.sh | 2 +- rootfs/etc/cont-init.d/03-config.sh | 12 ++-- rootfs/etc/cont-init.d/04-svc-main.sh | 4 +- .../etc/{php82 => php83}/conf.d/opcache.ini | 0 .../etc/{php82 => php83}/php-fpm.d/www.conf | 0 6 files changed, 38 insertions(+), 37 deletions(-) rename rootfs/tpls/etc/{php82 => php83}/conf.d/opcache.ini (100%) rename rootfs/tpls/etc/{php82 => php83}/php-fpm.d/www.conf (100%) diff --git a/Dockerfile b/Dockerfile index 0958809..494e4f0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,34 +35,34 @@ RUN apk --update --no-cache add \ openssl \ openssh-client \ perl \ - php82 \ - php82-cli \ - php82-ctype \ - php82-curl \ - php82-dom \ - php82-fileinfo \ - php82-fpm \ - php82-gd \ - php82-gmp \ - php82-json \ - php82-ldap \ - php82-mbstring \ - php82-mysqlnd \ - php82-opcache \ - php82-openssl \ - php82-pdo \ - php82-pdo_mysql \ - php82-pecl-memcached \ - php82-pear \ - php82-phar \ - php82-posix \ - php82-session \ - php82-simplexml \ - php82-snmp \ - php82-sockets \ - php82-tokenizer \ - php82-xml \ - php82-zip \ + php83 \ + php83-cli \ + php83-ctype \ + php83-curl \ + php83-dom \ + php83-fileinfo \ + php83-fpm \ + php83-gd \ + php83-gmp \ + php83-json \ + php83-ldap \ + php83-mbstring \ + php83-mysqlnd \ + php83-opcache \ + php83-openssl \ + php83-pdo \ + php83-pdo_mysql \ + php83-pecl-memcached \ + php83-pear \ + php83-phar \ + php83-posix \ + php83-session \ + php83-simplexml \ + php83-snmp \ + php83-sockets \ + php83-tokenizer \ + php83-xml \ + php83-zip \ python3 \ py3-pip \ rrdtool \ @@ -73,6 +73,7 @@ RUN apk --update --no-cache add \ tzdata \ util-linux \ whois \ + && ln -s /usr/bin/php83 /usr/bin/php \ && apk --update --no-cache add -t build-dependencies \ build-base \ make \ diff --git a/rootfs/etc/cont-init.d/02-fix-perms.sh b/rootfs/etc/cont-init.d/02-fix-perms.sh index 07858f2..93203df 100644 --- a/rootfs/etc/cont-init.d/02-fix-perms.sh +++ b/rootfs/etc/cont-init.d/02-fix-perms.sh @@ -17,6 +17,6 @@ chown -R librenms:librenms \ /tpls \ /var/lib/nginx \ /var/log/nginx \ - /var/log/php82 \ + /var/log/php83 \ /var/run/nginx \ /var/run/php-fpm diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index f6e1bf6..fdc48fc 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -64,17 +64,17 @@ sed -e "s/@MEMORY_LIMIT@/$MEMORY_LIMIT/g" \ -e "s/@FPM_PM_START_SERVERS@/$FPM_PM_START_SERVERS/g" \ -e "s/@FPM_PM_MIN_SPARE_SERVERS@/$FPM_PM_MIN_SPARE_SERVERS/g" \ -e "s/@FPM_PM_MAX_SPARE_SERVERS@/$FPM_PM_MAX_SPARE_SERVERS/g" \ - /tpls/etc/php82/php-fpm.d/www.conf >/etc/php82/php-fpm.d/www.conf + /tpls/etc/php83/php-fpm.d/www.conf >/etc/php83/php-fpm.d/www.conf echo "Setting PHP INI configuration..." -sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php82/php.ini -sed -i "s|;date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php82/php.ini -sed -i "s|;max_input_vars.*|max_input_vars = ${MAX_INPUT_VARS}|g" /etc/php82/php.ini +sed -i "s|memory_limit.*|memory_limit = ${MEMORY_LIMIT}|g" /etc/php83/php.ini +sed -i "s|;date\.timezone.*|date\.timezone = ${TZ}|g" /etc/php83/php.ini +sed -i "s|;max_input_vars.*|max_input_vars = ${MAX_INPUT_VARS}|g" /etc/php83/php.ini # OpCache echo "Setting OpCache configuration..." sed -e "s/@OPCACHE_MEM_SIZE@/$OPCACHE_MEM_SIZE/g" \ - /tpls/etc/php82/conf.d/opcache.ini >/etc/php82/conf.d/opcache.ini + /tpls/etc/php83/conf.d/opcache.ini >/etc/php83/conf.d/opcache.ini # Nginx echo "Setting Nginx configuration..." @@ -256,4 +256,4 @@ for template in ${templates}; do fi echo " Adding ${template} alert template" ln -sf /data/alert-templates/${template} ${LIBRENMS_PATH}/resources/views/alerts/templates/${template} -done +done \ No newline at end of file diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index f81d824..f03ca69 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -74,7 +74,7 @@ echo "Database ready!" counttables=$(echo 'SHOW TABLES' | ${dbcmd} "$DB_NAME" | wc -l) if [ "${counttables}" -eq "0" ]; then echo "Enabling First Run Wizard..." - echo "INSTALL=user,finish">> ${LIBRENMS_PATH}/.env + echo "INSTALL=user,finish" >>${LIBRENMS_PATH}/.env fi echo "Updating database schema..." @@ -99,7 +99,7 @@ cat >/etc/services.d/php-fpm/run < Date: Mon, 7 Oct 2024 13:29:06 +0300 Subject: [PATCH 482/523] feat(php83): fix nit --- rootfs/etc/cont-init.d/03-config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index fdc48fc..b868945 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -256,4 +256,4 @@ for template in ${templates}; do fi echo " Adding ${template} alert template" ln -sf /data/alert-templates/${template} ${LIBRENMS_PATH}/resources/views/alerts/templates/${template} -done \ No newline at end of file +done From 5cb724210defac11e4404bfe1063cbc19eb6cb05 Mon Sep 17 00:00:00 2001 From: Ilmari Aho Date: Mon, 7 Oct 2024 14:23:52 +0300 Subject: [PATCH 483/523] feat(update): update librenms to 24.9.1 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 494e4f0..fee2bb2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="24.8.1" +ARG LIBRENMS_VERSION="24.9.1" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" ARG SYSLOGNG_VERSION="4.5.0-r0" From 09717b7e27d39cc074c52f3732c17b4605d041cb Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Sun, 3 Nov 2024 20:46:42 +0100 Subject: [PATCH 484/523] update README --- README.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 8a671c2..b2e0191 100644 --- a/README.md +++ b/README.md @@ -96,16 +96,15 @@ $ docker buildx bake image-all Following platforms for this image are available: ``` -$ docker run --rm mplatform/mquery librenms/librenms:latest -Image: librenms/librenms:latest - * Manifest List: Yes - * Supported platforms: - - linux/amd64 - - linux/arm/v7 - - linux/arm64 - - linux/386 - - linux/ppc64le - - linux/s390x +$ 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 From c05069b90a15e9d1c09162e1818c7e74e3a9d569 Mon Sep 17 00:00:00 2001 From: Roman Pertl Date: Wed, 20 Nov 2024 15:58:54 +0100 Subject: [PATCH 485/523] feat(update): update librenms to 24.10.1 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index fee2bb2..f5ccb0b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="24.9.1" +ARG LIBRENMS_VERSION="24.10.1" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" ARG SYSLOGNG_VERSION="4.5.0-r0" From 146a28d0982f0ab0eb05feb52201acb91050f598 Mon Sep 17 00:00:00 2001 From: Roman Pertl Date: Mon, 2 Dec 2024 16:09:59 +0100 Subject: [PATCH 486/523] chore: update to librenms 24.11.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f5ccb0b..89f42f6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="24.10.1" +ARG LIBRENMS_VERSION="24.11.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" ARG SYSLOGNG_VERSION="4.5.0-r0" From 5004ab3263a7917af46c4b56d2c88e2f25c46e66 Mon Sep 17 00:00:00 2001 From: Cas de Reuver Date: Wed, 18 Dec 2024 17:01:50 +0100 Subject: [PATCH 487/523] chore: update to librenms 24.12.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 89f42f6..fcba7ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG LIBRENMS_VERSION="24.11.0" +ARG LIBRENMS_VERSION="24.12.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" ARG SYSLOGNG_VERSION="4.5.0-r0" From b5a5b431c61c47487e58f8e7ad582008a0934cf6 Mon Sep 17 00:00:00 2001 From: Cas de Reuver Date: Wed, 18 Dec 2024 17:44:30 +0100 Subject: [PATCH 488/523] feat(updates): configure renovate --- .github/renovate.json | 16 ++++++++++++++++ Dockerfile | 1 + 2 files changed, 17 insertions(+) create mode 100644 .github/renovate.json diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 0000000..67a8c1f --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended" + ], + "customManagers": [ + { + "customType": "regex", + "description": "Update _VERSION variables in Dockerfiles", + "fileMatch": ["(^|/|\\.)Dockerfile$", "(^|/)Dockerfile\\.[^/]*$"], + "matchStrings": [ + "# renovate: datasource=(?[a-z-]+?)(?: depName=(?.+?))? packageName=(?.+?)(?: versioning=(?[a-z-]+?))?\\s(?:ENV|ARG) .+?_VERSION=\"(?.+?)\"\\s" + ] + } + ] +} diff --git a/Dockerfile b/Dockerfile index 89f42f6..7ad2bd1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,6 @@ # syntax=docker/dockerfile:1 +# renovate: datasource=github-releases packageName=librenms/librenms versioning=semver ARG LIBRENMS_VERSION="24.11.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" From 7632ef4601b0781e2f0ac945283e593a22eb1e73 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:44:58 +0000 Subject: [PATCH 489/523] chore(deps): update dependency librenms/librenms to v24.12.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7ad2bd1..b6c09e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="24.11.0" +ARG LIBRENMS_VERSION="24.12.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.19" ARG SYSLOGNG_VERSION="4.5.0-r0" From d7b059db7934f38afb9959c48777e41f50c12a66 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Sat, 4 Jan 2025 14:26:28 +0100 Subject: [PATCH 490/523] Alpine Linux 3.21 --- Dockerfile | 5 ++--- rootfs/etc/cont-init.d/04-svc-main.sh | 2 +- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 2 +- rootfs/etc/my.cnf.d/skip-ssl.cnf | 2 ++ rootfs/etc/syslog-ng/syslog-ng.conf | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 rootfs/etc/my.cnf.d/skip-ssl.cnf diff --git a/Dockerfile b/Dockerfile index fcba7ab..d02b31a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,8 +2,8 @@ ARG LIBRENMS_VERSION="24.12.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" -ARG ALPINE_VERSION="3.19" -ARG SYSLOGNG_VERSION="4.5.0-r0" +ARG ALPINE_VERSION="3.21" +ARG SYSLOGNG_VERSION="4.8.1-r1" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:${ALPINE_VERSION}-2.2.0.3 @@ -73,7 +73,6 @@ RUN apk --update --no-cache add \ tzdata \ util-linux \ whois \ - && ln -s /usr/bin/php83 /usr/bin/php \ && apk --update --no-cache add -t build-dependencies \ build-base \ make \ diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index f03ca69..5ac92f9 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -55,7 +55,7 @@ if [ -z "$DB_PASSWORD" ]; then exit 1 fi -dbcmd="mysql -h ${DB_HOST} -P ${DB_PORT} -u "${DB_USER}" "-p${DB_PASSWORD}"" +dbcmd="mariadb -h ${DB_HOST} -P ${DB_PORT} -u "${DB_USER}" "-p${DB_PASSWORD}"" unset DB_PASSWORD echo "Waiting ${DB_TIMEOUT}s for database to be ready..." diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index a043999..ba9754f 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -56,7 +56,7 @@ if [ -z "$DB_PASSWORD" ]; then exit 1 fi -dbcmd="mysql -h ${DB_HOST} -P ${DB_PORT} -u "${DB_USER}" "-p${DB_PASSWORD}"" +dbcmd="mariadb -h ${DB_HOST} -P ${DB_PORT} -u "${DB_USER}" "-p${DB_PASSWORD}"" unset DB_PASSWORD echo "Waiting ${DB_TIMEOUT}s for database to be ready..." diff --git a/rootfs/etc/my.cnf.d/skip-ssl.cnf b/rootfs/etc/my.cnf.d/skip-ssl.cnf new file mode 100644 index 0000000..bcb4270 --- /dev/null +++ b/rootfs/etc/my.cnf.d/skip-ssl.cnf @@ -0,0 +1,2 @@ +[client] +skip-ssl = true diff --git a/rootfs/etc/syslog-ng/syslog-ng.conf b/rootfs/etc/syslog-ng/syslog-ng.conf index 840c535..0ee0f05 100644 --- a/rootfs/etc/syslog-ng/syslog-ng.conf +++ b/rootfs/etc/syslog-ng/syslog-ng.conf @@ -1,4 +1,4 @@ -@version:4.5 +@version:4.8 options { chain_hostnames(off); From 7130dce0acf78f8dc8e999712629dea383085104 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 22:49:39 +0000 Subject: [PATCH 491/523] chore(deps): update dependency librenms/librenms to v25 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8c48a38..4bf0864 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="24.12.0" +ARG LIBRENMS_VERSION="25.1.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.21" ARG SYSLOGNG_VERSION="4.8.1-r1" From 1885d81fc3de65cc4909b679ebcd29257c2b5646 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Mon, 20 Jan 2025 23:57:41 +0100 Subject: [PATCH 492/523] ci: update bake-action to v6 --- .github/workflows/build.yml | 19 ++++++++----------- .github/workflows/test.yml | 3 ++- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e17db78..ad1f27b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,8 +24,12 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 + name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} - name: Docker meta id: meta @@ -47,20 +51,13 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - - name: Login to DockerHub - if: github.event_name != 'pull_request' - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - name: Build - uses: docker/bake-action@v5 + uses: docker/bake-action@v6 with: files: | ./docker-bake.hcl - ${{ steps.meta.outputs.bake-file }} + cwd://${{ steps.meta.outputs.bake-file }} targets: image-all push: ${{ github.event_name != 'pull_request' }} - diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b46cfce..9b1adb6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -45,8 +45,9 @@ jobs: uses: docker/setup-buildx-action@v3 - name: Build - uses: docker/bake-action@v5 + uses: docker/bake-action@v6 with: + source: . targets: image-local env: DEFAULT_TAG: ${{ env.BUILD_TAG }} From b881060ada208b1119b9ce797a178bbc5ce4bb84 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Tue, 21 Jan 2025 00:17:11 +0100 Subject: [PATCH 493/523] chore: remove dependabot --- .github/dependabot.yml | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 7ac65bb..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" - time: "08:00" - timezone: "Europe/Paris" - labels: - - "kind/dependencies" - - "bot" From d611af74cfa31b0208efec35af97b41bc023cfce Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Sat, 8 Feb 2025 15:06:51 +0100 Subject: [PATCH 494/523] ci: set contents read as default workflow permissions --- .github/workflows/build.yml | 4 ++++ .github/workflows/labels.yml | 9 +++++++++ .github/workflows/test.yml | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ad1f27b..f824740 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,6 +4,10 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions +permissions: + contents: read + on: push: branches: diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 1342d9e..c0900a8 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -4,6 +4,10 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions +permissions: + contents: read + on: push: branches: @@ -19,6 +23,11 @@ on: jobs: labeler: runs-on: ubuntu-latest + permissions: + # same as global permissions + contents: read + # required to update labels + issues: write steps: - name: Checkout diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9b1adb6..300bc34 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,6 +4,10 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions +permissions: + contents: read + on: push: branches: From 415dff89079002aa4b344ac21ea04458962b2435 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Sat, 8 Feb 2025 15:58:06 +0100 Subject: [PATCH 495/523] ci: switch to ubuntu-22.04 runner --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f824740..02a3043 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ env: jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - name: Login to DockerHub From db3cc0803a7880c022e0ae709a21e3d385db9b00 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Feb 2025 12:28:48 +0000 Subject: [PATCH 496/523] chore(deps): update dependency librenms/librenms to v25.2.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4bf0864..e7e5535 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="25.1.0" +ARG LIBRENMS_VERSION="25.2.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.21" ARG SYSLOGNG_VERSION="4.8.1-r1" From bf1674d489fbd446f3d6eda2a2c1a2b07166306e Mon Sep 17 00:00:00 2001 From: Mike <586280+dot-mike@users.noreply.github.com> Date: Thu, 27 Feb 2025 16:18:23 +0100 Subject: [PATCH 497/523] Prioritize REDIS_SENTINEL over REDIS_HOST --- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index ba9754f..7bab042 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -94,15 +94,6 @@ fi if [ -z "$REDIS_HOST" ] && [ -z "$REDIS_SENTINEL" ]; then echo >&2 "ERROR: REDIS_HOST or REDIS_SENTINEL must be defined" exit 1 -elif [ -n "$REDIS_HOST" ]; then - echo "Setting Redis" - cat >>${LIBRENMS_PATH}/.env <>${LIBRENMS_PATH}/.env <>${LIBRENMS_PATH}/.env < Date: Mon, 17 Mar 2025 03:05:13 +0000 Subject: [PATCH 498/523] chore(deps): update dependency librenms/librenms to v25.3.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e7e5535..8c4dfc8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="25.2.0" +ARG LIBRENMS_VERSION="25.3.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.21" ARG SYSLOGNG_VERSION="4.8.1-r1" From afbddbc9f486a1e5698f783ce935b70b1faa6863 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Apr 2025 13:12:06 +0000 Subject: [PATCH 499/523] chore(deps): update dependency librenms/librenms to v25.4.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8c4dfc8..0df0882 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="25.3.0" +ARG LIBRENMS_VERSION="25.4.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.21" ARG SYSLOGNG_VERSION="4.8.1-r1" From 0c842f183bb6ba49647422ab5ca3155d04aa3c9f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 May 2025 19:32:12 +0000 Subject: [PATCH 500/523] chore(deps): update dependency librenms/librenms to v25.5.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0df0882..20dcaae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="25.4.0" +ARG LIBRENMS_VERSION="25.5.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.21" ARG SYSLOGNG_VERSION="4.8.1-r1" From 785109c30e4df18fbe57047c43485c5efffb2873 Mon Sep 17 00:00:00 2001 From: akadoya Date: Mon, 19 May 2025 13:38:52 -0700 Subject: [PATCH 501/523] added missing ext-xmlwriter and permissions --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 20dcaae..f01737e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -63,6 +63,7 @@ RUN apk --update --no-cache add \ php83-sockets \ php83-tokenizer \ php83-xml \ + php83-xmlwriter \ php83-zip \ python3 \ py3-pip \ @@ -135,7 +136,7 @@ RUN apk --update --no-cache add -t build-dependencies \ && cd ./html/plugins/Weathermap \ && git reset --hard $WEATHERMAP_PLUGIN_COMMIT \ ) \ - && chown -R nobody:nogroup ${LIBRENMS_PATH} \ + && chown -R ${PUID}:${PGID} ${LIBRENMS_PATH} \ && apk del build-dependencies \ && rm -rf .git \ html/plugins/Test \ From eb7f5f601bd3766475c40d2a0c9a3080f4f8bb07 Mon Sep 17 00:00:00 2001 From: akadoya Date: Mon, 19 May 2025 15:23:58 -0700 Subject: [PATCH 502/523] minimized permission change --- Dockerfile | 2 +- rootfs/etc/cont-init.d/03-config.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index f01737e..fbb6e5f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -136,7 +136,7 @@ RUN apk --update --no-cache add -t build-dependencies \ && cd ./html/plugins/Weathermap \ && git reset --hard $WEATHERMAP_PLUGIN_COMMIT \ ) \ - && chown -R ${PUID}:${PGID} ${LIBRENMS_PATH} \ + && chown -R nobody:nogroup ${LIBRENMS_PATH} \ && apk del build-dependencies \ && rm -rf .git \ html/plugins/Test \ diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index b868945..8d29435 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -219,7 +219,7 @@ done # Fix perms echo "Fixing perms..." chown librenms:librenms /data/config /data/monitoring-plugins /data/plugins /data/rrd /data/weathermap /data/alert-templates -chown -R librenms:librenms /data/logs ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage +chown -R librenms:librenms /data/logs ${LIBRENMS_PATH}/composer* ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/vendor chmod ug+rw /data/logs /data/rrd ${LIBRENMS_PATH}/bootstrap/cache ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/storage/framework/* # Check additional Monitoring plugins From add33c7dc3544b0f3695e1427bb2ee10d3a57382 Mon Sep 17 00:00:00 2001 From: Orest Worhacz Date: Mon, 16 Jun 2025 17:52:17 +0200 Subject: [PATCH 503/523] Bump syslog-ng package to 4.8.3 Fixes pipeline for 25.6.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 20dcaae..be37136 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ ARG LIBRENMS_VERSION="25.5.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.21" -ARG SYSLOGNG_VERSION="4.8.1-r1" +ARG SYSLOGNG_VERSION="4.8.3-r1" FROM crazymax/yasu:latest AS yasu FROM crazymax/alpine-s6:${ALPINE_VERSION}-2.2.0.3 From df3e2cc119e30d4862b39c24570f3da8fb173c1c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Jun 2025 16:57:33 +0000 Subject: [PATCH 504/523] chore(deps): update dependency librenms/librenms to v25.6.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index be37136..ccde709 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="25.5.0" +ARG LIBRENMS_VERSION="25.6.0" ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.21" ARG SYSLOGNG_VERSION="4.8.3-r1" From 88c46f68f54bffddc89cb6919c6a0e649c6a9e44 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Mon, 16 Jun 2025 19:01:58 +0200 Subject: [PATCH 505/523] Fix missing php83-iconv dependency --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index ccde709..b0aa25a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,6 +45,7 @@ RUN apk --update --no-cache add \ php83-fpm \ php83-gd \ php83-gmp \ + php83-iconv \ php83-json \ php83-ldap \ php83-mbstring \ From 8c1baafeef602bc1acfcca831b074828c0f238a6 Mon Sep 17 00:00:00 2001 From: Santiago Z Date: Mon, 16 Jun 2025 16:00:50 -0300 Subject: [PATCH 506/523] Remove Network-WeatherMap --- Dockerfile | 8 -------- README.md | 5 +---- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/Dockerfile b/Dockerfile index b0aa25a..22c5e47 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,6 @@ # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver ARG LIBRENMS_VERSION="25.6.0" -ARG WEATHERMAP_PLUGIN_COMMIT="0b2ff643b65ee4948e4f74bb5cad5babdaddef27" ARG ALPINE_VERSION="3.21" ARG SYSLOGNG_VERSION="4.8.3-r1" @@ -131,17 +130,10 @@ RUN apk --update --no-cache add -t build-dependencies \ && sed -i '/runningUser/d' lnms \ && echo "foreach (glob(\"/data/config/*.php\") as \$filename) include \$filename;" >> config.php \ && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> config.php \ - && ( \ - git clone https://github.com/librenms-plugins/Weathermap.git ./html/plugins/Weathermap \ - && cd ./html/plugins/Weathermap \ - && git reset --hard $WEATHERMAP_PLUGIN_COMMIT \ - ) \ && chown -R nobody:nogroup ${LIBRENMS_PATH} \ && apk del build-dependencies \ && rm -rf .git \ html/plugins/Test \ - html/plugins/Weathermap/.git \ - html/plugins/Weathermap/configs \ doc/ \ tests/ \ /tmp/* diff --git a/README.md b/README.md index b2e0191..39f06e0 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,6 @@ ___ * [Dispatcher service](#dispatcher-service) as "sidecar" container * Syslog-ng support through a ["sidecar" container](#syslog-ng) * Snmp-trap support through a ["sidecar" container](#snmptrapd) -* Built-in LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) * Ability to add custom Monitoring plugins * Ability to add custom alert templates * OPCache enabled to store precompiled script bytecode in shared memory @@ -191,8 +190,6 @@ linux/s390x * `LIBRENMS_BASE_URL`: URL of your LibreNMS instance (default `/`) * `LIBRENMS_SNMP_COMMUNITY`: This container's SNMP v2c community string (default `librenmsdocker`) -* `LIBRENMS_WEATHERMAP`: Enable LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/) (default `false`) -* `LIBRENMS_WEATHERMAP_SCHEDULE`: CRON expression format (default `*/5 * * * *`) * `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`) @@ -402,7 +399,7 @@ $ docker run -d --name librenms_snmptrapd \ You can add [plugins for LibreNMS](https://docs.librenms.org/Extensions/Plugin-System/) in `/data/plugins/`. If you add a plugin that already exists in LibreNMS, it -will be removed and yours will be used (except for Weathermap). +will be removed and yours will be used. > [!WARNING] > Container has to be restarted to propagate changes. From 6d49dfa1bb0d34add90b4e66c87acab13d95e74c Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Fri, 20 Jun 2025 12:31:44 +0200 Subject: [PATCH 507/523] new year --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 92c78af..4bc99d2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018-2024 CrazyMax +Copyright (c) 2018-2025 CrazyMax Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 5a588581869eeaa281d5a20fb2fc6721c3204d8c Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Sat, 21 Jun 2025 16:22:43 +0200 Subject: [PATCH 508/523] Alpine Linux 3.22 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 22c5e47..435999f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver ARG LIBRENMS_VERSION="25.6.0" -ARG ALPINE_VERSION="3.21" +ARG ALPINE_VERSION="3.22" ARG SYSLOGNG_VERSION="4.8.3-r1" FROM crazymax/yasu:latest AS yasu From 1ed08504ea42887770f3e0cb42a34f8557930dc1 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Sun, 22 Jun 2025 11:32:45 +0200 Subject: [PATCH 509/523] ci: update runner --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 02a3043..f824740 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ env: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - name: Login to DockerHub From 3b386b40d92b340445cfaabb2ecdaff02bf2cfe2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Jul 2025 13:04:25 +0000 Subject: [PATCH 510/523] chore(deps): update dependency librenms/librenms to v25.7.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 435999f..d9f0c87 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="25.6.0" +ARG LIBRENMS_VERSION="25.7.0" ARG ALPINE_VERSION="3.22" ARG SYSLOGNG_VERSION="4.8.3-r1" From 4e8d991e9b0d7a660495fc92d360a24400369486 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 14:44:11 +0000 Subject: [PATCH 511/523] chore(deps): update actions/checkout action to v5 --- .github/workflows/labels.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index c0900a8..60892a5 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -31,7 +31,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run Labeler uses: crazy-max/ghaction-github-labeler@v5 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 300bc34..cf84dc9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,7 +40,7 @@ jobs: echo "LIBRENMS_VERSION=${{ matrix.version }}" >> $GITHUB_ENV - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up QEMU uses: docker/setup-qemu-action@v3 From d1c96e0326fe59ff97565657e47e73f07c793855 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Aug 2025 06:46:37 +0000 Subject: [PATCH 512/523] chore(deps): update dependency librenms/librenms to v25.8.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 56acfe6..174eb7a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="25.7.0" +ARG LIBRENMS_VERSION="25.8.0" ARG ALPINE_VERSION="3.22" ARG SYSLOGNG_VERSION="4.8.3-r1" From 752ee95d5d019c7f7f78727af8f551f3a422d536 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Sep 2025 17:23:14 +0000 Subject: [PATCH 513/523] chore(deps): update dependency librenms/librenms to v25.9.1 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 174eb7a..cac8e2e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="25.8.0" +ARG LIBRENMS_VERSION="25.9.1" ARG ALPINE_VERSION="3.22" ARG SYSLOGNG_VERSION="4.8.3-r1" From 8aa4cdcbb41ced7309138b137feca20da7663e41 Mon Sep 17 00:00:00 2001 From: Jason Berry <1776037+skyblaster@users.noreply.github.com> Date: Sat, 8 Nov 2025 17:59:02 -0800 Subject: [PATCH 514/523] Change ownership to the librenms user --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index cac8e2e..3ea18a7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -124,14 +124,14 @@ RUN apk --update --no-cache add -t build-dependencies \ && echo "Installing LibreNMS https://github.com/librenms/librenms.git#${LIBRENMS_VERSION}..." \ && git clone --depth=1 --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git . \ && pip3 install --ignore-installed -r requirements.txt --upgrade --break-system-packages \ - && COMPOSER_CACHE_DIR="/tmp" composer install --no-dev --no-interaction --no-ansi \ && mkdir config.d \ && cp config.php.default config.php \ && cp snmpd.conf.example /etc/snmp/snmpd.conf \ && sed -i '/runningUser/d' lnms \ && echo "foreach (glob(\"/data/config/*.php\") as \$filename) include \$filename;" >> config.php \ && echo "foreach (glob(\"${LIBRENMS_PATH}/config.d/*.php\") as \$filename) include \$filename;" >> config.php \ - && chown -R nobody:nogroup ${LIBRENMS_PATH} \ + && chown -R librenms:librenms ${LIBRENMS_PATH} \ + && su librenms -s /bin/sh -c "COMPOSER_CACHE_DIR=/tmp composer install --no-dev --no-interaction --no-ansi" \ && apk del build-dependencies \ && rm -rf .git \ html/plugins/Test \ From ef86f21ba761d488f878b6278d931484f81da0eb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 16:31:26 +0000 Subject: [PATCH 515/523] chore(deps): update dependency librenms/librenms to v25.11.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 3ea18a7..b4f7b5f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="25.9.1" +ARG LIBRENMS_VERSION="25.11.0" ARG ALPINE_VERSION="3.22" ARG SYSLOGNG_VERSION="4.8.3-r1" From 92966a6d559c862a1fae12ec5bf22e6518ea7bbc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 18:02:31 +0000 Subject: [PATCH 516/523] chore(deps): update dependency librenms/librenms to v25.12.0 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b4f7b5f..c63a9e4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="25.11.0" +ARG LIBRENMS_VERSION="25.12.0" ARG ALPINE_VERSION="3.22" ARG SYSLOGNG_VERSION="4.8.3-r1" From b1c0b87ed78b7960b0076e993286fa3c8069c8c3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Dec 2025 22:07:46 +0000 Subject: [PATCH 517/523] chore(deps): update actions/checkout action to v6 --- .github/workflows/labels.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 60892a5..00c6675 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -31,7 +31,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Run Labeler uses: crazy-max/ghaction-github-labeler@v5 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cf84dc9..40a0e32 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,7 +40,7 @@ jobs: echo "LIBRENMS_VERSION=${{ matrix.version }}" >> $GITHUB_ENV - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up QEMU uses: docker/setup-qemu-action@v3 From e656df0d069954a9991c4242eb478cb72af7c70e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 13:49:25 +0000 Subject: [PATCH 518/523] chore(deps): update dependency librenms/librenms to v26 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c63a9e4..36d0490 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="25.12.0" +ARG LIBRENMS_VERSION="26.1.0" ARG ALPINE_VERSION="3.22" ARG SYSLOGNG_VERSION="4.8.3-r1" From 5b2223cb12709a31aa52e1f9c21800f218fdc494 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Jan 2026 00:42:27 +0000 Subject: [PATCH 519/523] chore(deps): update dependency librenms/librenms to v26.1.1 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 36d0490..623e097 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # renovate: datasource=github-releases packageName=librenms/librenms versioning=semver -ARG LIBRENMS_VERSION="26.1.0" +ARG LIBRENMS_VERSION="26.1.1" ARG ALPINE_VERSION="3.22" ARG SYSLOGNG_VERSION="4.8.3-r1" From 9e69ad4b34d61d71babd78202cc79b524bcda40c Mon Sep 17 00:00:00 2001 From: Xazziri <96234911+Xazziri@users.noreply.github.com> Date: Fri, 16 Jan 2026 16:09:20 +0100 Subject: [PATCH 520/523] Exchange chown lines for Find (#524) Change chown lines to fix delayed startup due to long running chown (issue #524) --- rootfs/etc/cont-init.d/03-config.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 8d29435..973b6b4 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -105,7 +105,7 @@ if [ -d "${LIBRENMS_PATH}/html/plugins/Weathermap" ]; then ln -sf /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/configs fi chown -h librenms:librenms ${LIBRENMS_PATH}/html/plugins/Weathermap/configs - chown -R librenms:librenms /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/output + find /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/output -not \( -user librenms -group librenms \) -print0 | xargs -0 -r chown librenms:librenms fi # cleanup bad symlink: https://github.com/librenms/docker/issues/294#issuecomment-1190389960 @@ -219,7 +219,7 @@ done # Fix perms echo "Fixing perms..." chown librenms:librenms /data/config /data/monitoring-plugins /data/plugins /data/rrd /data/weathermap /data/alert-templates -chown -R librenms:librenms /data/logs ${LIBRENMS_PATH}/composer* ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/vendor +find /data/logs ${LIBRENMS_PATH}/composer* ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/vendor -not \( -user librenms -group librenms \) -print0 | xargs -0 -r chown librenms:librenms chmod ug+rw /data/logs /data/rrd ${LIBRENMS_PATH}/bootstrap/cache ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/storage/framework/* # Check additional Monitoring plugins From 7cf198beb83669ace4f74cd6659b76b4ddd815a2 Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Thu, 22 Jan 2026 12:49:55 -0600 Subject: [PATCH 521/523] Run dispatcher in the correct directory --- rootfs/etc/cont-init.d/05-svc-dispatcher.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index 7bab042..157ff56 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -121,6 +121,7 @@ cat >/etc/services.d/dispatcher/run < Date: Thu, 22 Jan 2026 13:22:53 -0600 Subject: [PATCH 522/523] remove xargs and clear ownership logic --- rootfs/etc/cont-init.d/03-config.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 973b6b4..f7ab725 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -105,7 +105,7 @@ if [ -d "${LIBRENMS_PATH}/html/plugins/Weathermap" ]; then ln -sf /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/configs fi chown -h librenms:librenms ${LIBRENMS_PATH}/html/plugins/Weathermap/configs - find /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/output -not \( -user librenms -group librenms \) -print0 | xargs -0 -r chown librenms:librenms + find /data/weathermap ${LIBRENMS_PATH}/html/plugins/Weathermap/output \( ! -user librenms -o ! -group librenms \) -exec chown librenms:librenms {} + fi # cleanup bad symlink: https://github.com/librenms/docker/issues/294#issuecomment-1190389960 @@ -219,7 +219,7 @@ done # Fix perms echo "Fixing perms..." chown librenms:librenms /data/config /data/monitoring-plugins /data/plugins /data/rrd /data/weathermap /data/alert-templates -find /data/logs ${LIBRENMS_PATH}/composer* ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/vendor -not \( -user librenms -group librenms \) -print0 | xargs -0 -r chown librenms:librenms +find /data/logs ${LIBRENMS_PATH}/composer* ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/vendor \( ! -user librenms -o ! -group librenms \) -exec chown librenms:librenms {} + chmod ug+rw /data/logs /data/rrd ${LIBRENMS_PATH}/bootstrap/cache ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/storage/framework/* # Check additional Monitoring plugins From 13776f56bc68575cc224057ddafcf425ecfd573d Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Thu, 22 Jan 2026 13:23:29 -0600 Subject: [PATCH 523/523] remove extra space --- rootfs/etc/cont-init.d/03-config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index f7ab725..013c15c 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -219,7 +219,7 @@ done # Fix perms echo "Fixing perms..." chown librenms:librenms /data/config /data/monitoring-plugins /data/plugins /data/rrd /data/weathermap /data/alert-templates -find /data/logs ${LIBRENMS_PATH}/composer* ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/vendor \( ! -user librenms -o ! -group librenms \) -exec chown librenms:librenms {} + +find /data/logs ${LIBRENMS_PATH}/composer* ${LIBRENMS_PATH}/config.d ${LIBRENMS_PATH}/bootstrap ${LIBRENMS_PATH}/logs ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/vendor \( ! -user librenms -o ! -group librenms \) -exec chown librenms:librenms {} + chmod ug+rw /data/logs /data/rrd ${LIBRENMS_PATH}/bootstrap/cache ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/storage/framework/* # Check additional Monitoring plugins