1
0
Fork 0
mirror of https://github.com/librenms/docker.git synced 2026-01-23 18:25:09 +00:00

Compare commits

..

585 commits

Author SHA1 Message Date
Tony Murray
f45cd5726f
Merge pull request #540 from Xazziri/master
Improve startup speeds in some situations by using find before chown
2026-01-22 13:43:35 -06:00
Tony Murray
c8216efc47
Merge pull request #541 from librenms/murrant-patch-1
Run dispatcher in the correct directory
2026-01-22 13:27:41 -06:00
Tony Murray
13776f56bc
remove extra space 2026-01-22 13:23:29 -06:00
Tony Murray
6120a5356f
remove xargs and clear ownership logic 2026-01-22 13:22:53 -06:00
Tony Murray
7cf198beb8
Run dispatcher in the correct directory 2026-01-22 12:49:55 -06:00
Xazziri
9e69ad4b34
Exchange chown lines for Find (#524)
Change chown lines to fix delayed startup due to long running chown (issue #524)
2026-01-16 16:09:20 +01:00
CrazyMax
937a473821
Merge pull request #539 from librenms/renovate/librenms-librenms-26.x
chore(deps): update dependency librenms/librenms to v26.1.1
2026-01-13 09:08:54 +01:00
renovate[bot]
5b2223cb12
chore(deps): update dependency librenms/librenms to v26.1.1 2026-01-13 00:42:27 +00:00
Neil Lathwood
334b5424b2
Merge pull request #538 from librenms/renovate/librenms-librenms-26.x
chore(deps): update dependency librenms/librenms to v26
2026-01-12 23:00:21 +00:00
renovate[bot]
e656df0d06
chore(deps): update dependency librenms/librenms to v26 2026-01-12 13:49:25 +00:00
Neil Lathwood
423576751e
Merge pull request #531 from librenms/renovate/actions-checkout-6.x
chore(deps): update actions/checkout action to v6
2026-01-08 07:34:50 +00:00
renovate[bot]
b1c0b87ed7
chore(deps): update actions/checkout action to v6 2025-12-19 22:07:46 +00:00
Neil Lathwood
a5da060384
Merge pull request #535 from librenms/renovate/librenms-librenms-25.x
chore(deps): update dependency librenms/librenms to v25.12.0
2025-12-19 22:07:19 +00:00
renovate[bot]
92966a6d55
chore(deps): update dependency librenms/librenms to v25.12.0 2025-12-15 18:02:31 +00:00
Neil Lathwood
b0fa29b1b8
Merge pull request #528 from librenms/renovate/librenms-librenms-25.x
chore(deps): update dependency librenms/librenms to v25.11.0
2025-11-19 17:31:42 +01:00
renovate[bot]
ef86f21ba7
chore(deps): update dependency librenms/librenms to v25.11.0 2025-11-19 16:31:26 +00:00
Neil Lathwood
9626a79b83
Merge pull request #530 from skyblaster/master
Change ownership of /opt/librenms and run composer as the librenms user
2025-11-19 17:29:41 +01:00
Jason Berry
8aa4cdcbb4
Change ownership to the librenms user 2025-11-08 17:59:02 -08:00
CrazyMax
4959802e5a
Merge pull request #526 from librenms/renovate/librenms-librenms-25.x
chore(deps): update dependency librenms/librenms to v25.9.1
2025-09-25 20:47:52 +02:00
renovate[bot]
752ee95d5d
chore(deps): update dependency librenms/librenms to v25.9.1 2025-09-17 17:23:14 +00:00
CrazyMax
9ae0056841
Merge pull request #522 from librenms/renovate/librenms-librenms-25.x
chore(deps): update dependency librenms/librenms to v25.8.0
2025-08-20 19:06:57 +02:00
renovate[bot]
d1c96e0326
chore(deps): update dependency librenms/librenms to v25.8.0 2025-08-18 06:46:37 +00:00
CrazyMax
11b253c23e
Merge pull request #510 from akadoya/master
Add missing ext-xmlwriter extension and fix permissions
2025-08-17 15:42:58 +02:00
CrazyMax
23fa3ab820
Merge pull request #519 from librenms/renovate/actions-checkout-5.x
chore(deps): update actions/checkout action to v5
2025-08-13 22:57:27 +02:00
renovate[bot]
4e8d991e9b
chore(deps): update actions/checkout action to v5 2025-08-11 14:44:11 +00:00
CrazyMax
66e8b6113e
Merge pull request #517 from librenms/renovate/librenms-librenms-25.x
chore(deps): update dependency librenms/librenms to v25.7.0
2025-07-24 15:38:35 +02:00
renovate[bot]
3b386b40d9
chore(deps): update dependency librenms/librenms to v25.7.0 2025-07-16 13:04:25 +00:00
CrazyMax
e3e8e4e98c
Merge pull request #516 from crazy-max/update-runner
ci: update runner
2025-06-22 12:57:47 +02:00
CrazyMax
1ed08504ea
ci: update runner 2025-06-22 11:32:45 +02:00
CrazyMax
aa5f718980
Merge pull request #515 from crazy-max/alpine-3.22
Alpine Linux 3.22
2025-06-21 16:48:31 +02:00
CrazyMax
5a58858186
Alpine Linux 3.22 2025-06-21 16:22:43 +02:00
CrazyMax
6d49dfa1bb
new year 2025-06-20 12:31:44 +02:00
CrazyMax
ba3a99ac18
Merge pull request #514 from santiag0z/master
Remove Network-WeatherMap
2025-06-17 00:26:06 +02:00
Santiago Z
8c1baafeef Remove Network-WeatherMap 2025-06-16 16:00:50 -03:00
CrazyMax
d26f4c4db6
Merge pull request #512 from librenms/renovate/librenms-librenms-25.x
chore(deps): update dependency librenms/librenms to v25.6.0
2025-06-16 19:12:50 +02:00
CrazyMax
88c46f68f5
Fix missing php83-iconv dependency 2025-06-16 19:01:58 +02:00
renovate[bot]
df3e2cc119
chore(deps): update dependency librenms/librenms to v25.6.0 2025-06-16 16:57:33 +00:00
CrazyMax
669535c9e6
Merge pull request #513 from AreYouLoco/fix-pipeline-25.6.0
Bump syslog-ng package to 4.8.3
2025-06-16 18:56:41 +02:00
Orest Worhacz
add33c7dc3
Bump syslog-ng package to 4.8.3
Fixes pipeline for 25.6.0
2025-06-16 17:52:17 +02:00
akadoya
eb7f5f601b minimized permission change 2025-05-19 15:23:58 -07:00
akadoya
785109c30e added missing ext-xmlwriter and permissions 2025-05-19 13:38:52 -07:00
CrazyMax
e1cbd62804
Merge pull request #498 from dot-mike/patch-1
Prioritize REDIS_SENTINEL over REDIS_HOST
2025-05-16 23:26:47 +02:00
CrazyMax
6d85c3055d
Merge pull request #509 from librenms/renovate/librenms-librenms-25.x
chore(deps): update dependency librenms/librenms to v25.5.0
2025-05-16 23:21:43 +02:00
renovate[bot]
0c842f183b
chore(deps): update dependency librenms/librenms to v25.5.0 2025-05-16 19:32:12 +00:00
Neil Lathwood
a902ff5172
Merge pull request #506 from librenms/renovate/librenms-librenms-25.x
chore(deps): update dependency librenms/librenms to v25.4.0
2025-04-15 15:11:41 +01:00
renovate[bot]
afbddbc9f4
chore(deps): update dependency librenms/librenms to v25.4.0 2025-04-14 13:12:06 +00:00
Neil Lathwood
5c9ff72471
Merge pull request #502 from librenms/renovate/librenms-librenms-25.x
chore(deps): update dependency librenms/librenms to v25.3.0
2025-03-17 09:24:06 +00:00
renovate[bot]
eeb552f9d4
chore(deps): update dependency librenms/librenms to v25.3.0 2025-03-17 03:05:13 +00:00
Mike
bf1674d489
Prioritize REDIS_SENTINEL over REDIS_HOST 2025-02-27 16:18:23 +01:00
CrazyMax
4c3b0172b0
Merge pull request #496 from librenms/renovate/librenms-librenms-25.x
chore(deps): update dependency librenms/librenms to v25.2.0
2025-02-23 13:58:27 +01:00
renovate[bot]
db3cc0803a
chore(deps): update dependency librenms/librenms to v25.2.0 2025-02-20 12:28:48 +00:00
CrazyMax
3d3c0e5412
Merge pull request #493 from crazy-max/ci-fix-build
ci: switch to ubuntu-22.04 runner
2025-02-08 16:30:09 +01:00
CrazyMax
415dff8907
ci: switch to ubuntu-22.04 runner 2025-02-08 15:58:06 +01:00
CrazyMax
b6023d6e92
Merge pull request #492 from crazy-max/gha-perms
ci: set contents read as default workflow permissions
2025-02-08 15:43:49 +01:00
CrazyMax
d611af74cf
ci: set contents read as default workflow permissions 2025-02-08 15:06:51 +01:00
CrazyMax
def2fe31b0
Merge pull request #491 from crazy-max/remove-dependabot
chore: remove dependabot
2025-01-21 00:30:57 +01:00
CrazyMax
b881060ada
chore: remove dependabot 2025-01-21 00:17:11 +01:00
CrazyMax
f461572af6
Merge pull request #490 from crazy-max/bake-v6
ci: update bake-action to v6
2025-01-21 00:12:59 +01:00
Neil Lathwood
ebe7f5076d
Merge pull request #486 from librenms/renovate/librenms-librenms-25.x
chore(deps): update dependency librenms/librenms to v25
2025-01-20 23:01:12 +00:00
CrazyMax
1885d81fc3
ci: update bake-action to v6 2025-01-20 23:57:41 +01:00
renovate[bot]
7130dce0ac
chore(deps): update dependency librenms/librenms to v25 2025-01-20 22:49:39 +00:00
Neil Lathwood
5b5927ba9d
Merge pull request #478 from casdr/master
feat(updates): configure renovate
2025-01-20 22:49:13 +00:00
Cas de Reuver
54bd47c374
Merge branch 'master' into master 2025-01-09 10:43:10 +01:00
CrazyMax
74d179c244
Merge pull request #479 from crazy-max/alpine-3.21
Alpine Linux 3.21
2025-01-04 16:20:43 +01:00
CrazyMax
d7b059db79
Alpine Linux 3.21 2025-01-04 15:33:00 +01:00
CrazyMax
fdfd4c3d20
Merge pull request #477 from casdr/cdr/librenms-241200
chore: update to librenms 24.12.0
2025-01-04 14:23:48 +01:00
Cas de Reuver
ac9e0329cb
Merge pull request #3 from casdr/renovate/librenms-librenms-24.x
chore(deps): update dependency librenms/librenms to v24.12.0
2024-12-21 17:24:26 +01:00
renovate[bot]
7632ef4601
chore(deps): update dependency librenms/librenms to v24.12.0 2024-12-18 16:44:58 +00:00
Cas de Reuver
b5a5b431c6
feat(updates): configure renovate 2024-12-18 17:44:30 +01:00
Cas de Reuver
5004ab3263
chore: update to librenms 24.12.0 2024-12-18 17:01:50 +01:00
CrazyMax
1d7c972fab
Merge pull request #473 from roock/roock_24_11_0
chore: update to librenms 24.11.0
2024-12-02 16:27:40 +01:00
Roman Pertl
146a28d098
chore: update to librenms 24.11.0 2024-12-02 16:09:59 +01:00
CrazyMax
de9185e18a
Merge pull request #468 from roock/roock_24_10_1
feat(update): update librenms to 24.10.1
2024-11-27 21:12:27 +01:00
Roman Pertl
c05069b90a
feat(update): update librenms to 24.10.1 2024-11-20 15:58:54 +01:00
CrazyMax
09717b7e27
update README 2024-11-03 20:46:46 +01:00
CrazyMax
ab00dbd2a5
Merge pull request #460 from ohai89/update-24.9.1
update librenms to 24.9.1
2024-10-07 15:50:20 +02:00
Ilmari Aho
5cb724210d feat(update): update librenms to 24.9.1 2024-10-07 14:23:52 +03:00
CrazyMax
e0a9d145b1
Merge pull request #459 from ohai89/update-php83
PHP 8.3
2024-10-07 13:04:48 +02:00
Ilmari Aho
515d15ba5a feat(php83): fix nit 2024-10-07 13:29:06 +03:00
Ilmari Aho
b211ecaa74 feat(php83): update to php8.3 2024-10-07 12:59:47 +03:00
CrazyMax
1366d51a2d
Merge pull request #453 from mib1185/patch-1
Bump libreNMS to 24.8.1
2024-08-25 23:43:43 +02:00
Tony Murray
02b30caeca
Bump to 24.8.1 2024-08-25 16:13:51 -05:00
CrazyMax
aeb4e238e3
Merge pull request #451 from librenms/murrant-patch-1
Dispatcher sidecar is required
2024-08-25 21:06:48 +02:00
Michael
7a13807ea5
bump libreNMS to 24.8.0 2024-08-19 15:34:23 +02:00
Tony Murray
94ba2e52a4
Dispatcher sidecar is required 2024-08-05 21:53:17 -05:00
Tony Murray
9c06661a73
Merge pull request #442 from librenms/dependabot/github_actions/docker/bake-action-5
Bump docker/bake-action from 4 to 5
2024-07-30 22:02:54 -05:00
Tony Murray
df553f096e
Merge pull request #446 from jochbru/master
Update LibreNMS version
2024-07-30 22:02:19 -05:00
Jochem
000bf44183 Update LibreNMS version 2024-07-05 16:44:45 +02:00
dependabot[bot]
7828d6d2e0
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] <support@github.com>
2024-06-18 06:18:16 +00:00
CrazyMax
bb454d0b23
Merge pull request #437 from crazy-max/compose-update
examples: generate random password for db root
2024-05-27 16:23:44 +02:00
CrazyMax
eced9ae955
examples: generate random password for db root 2024-05-27 10:51:28 +02:00
CrazyMax
94b57ba456
Merge pull request #435 from santiag0z/patch-4
Update to LibreNMS 24.5.0
2024-05-22 16:19:16 +02:00
CrazyMax
993bd17cb2
Merge pull request #436 from murrant/mariadb-redis-updates
Update MariaDB and Redis
2024-05-22 16:18:46 +02:00
Tony Murray
3131ae9f5b 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
2024-05-22 08:31:34 -05:00
Santiago Z
6c185cd3e3
Update to LibreNMS 24.5.0
https://github.com/librenms/librenms/releases/tag/24.5.0
2024-05-20 21:58:44 -03:00
CrazyMax
3fdcc0b230
Merge pull request #430 from bonzo81/patch-1
Update 02-fix-perms.sh for rrd folder
2024-05-05 00:22:13 +02:00
CrazyMax
68df0eb101
Merge pull request #433 from santiag0z/patch-4
Update to LibreNMS 24.4.1
2024-05-05 00:21:21 +02:00
CrazyMax
9bbe8f1d1d
update README 2024-05-01 14:57:29 +02:00
CrazyMax
caf846857a
update README 2024-04-29 10:37:12 +02:00
Santiago Z
15400f77e1
Update to LibreNMS 24.4.1 2024-04-20 18:18:33 -03:00
Andy Norwood
93eb528cbb
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.
2024-04-16 10:10:56 +01:00
CrazyMax
fd34218028
Merge pull request #429 from haydenseitz/fix/db-password
allow DB_PASSWORD with # character
2024-04-06 13:23:10 +02:00
Hayden Seitz
d4242ab699 fix: allow DB_PASSWORD with # character 2024-04-03 08:14:15 -07:00
CrazyMax
bc167c4f8d
Merge pull request #428 from santiag0z/patch-3
Update to LibreNMS 24.3.0
2024-04-02 07:54:59 +02:00
Santiago Z
0f167f7062
Update to LibreNMS 24.3.0 2024-04-01 18:50:33 -03:00
CrazyMax
57ae77c697
Merge pull request #361 from crazy-max/alpine318
Alpine Linux 3.19
2024-03-01 11:02:45 +01:00
CrazyMax
fe485f877a
PHP 8.2 2024-03-01 10:53:05 +01:00
CrazyMax
8b789d36f4
Update syslogng to 4.5.0-r0 2024-03-01 10:50:42 +01:00
CrazyMax
b823f6bc47
Alpine Linux 3.19 2024-03-01 10:50:42 +01:00
CrazyMax
aa9fd2c1d7
new year 2024-03-01 10:37:32 +01:00
CrazyMax
b8493f7d1c
Merge pull request #424 from santiag0z/patch-2
Update to LibreNMS 24.2.0
2024-02-28 22:53:48 +01:00
Santiago Z
ed3aa87814
Update to LibreNMS 24.2.0
Update LibreNMS to Version 24.2.0, released 2024-02-27
2024-02-28 14:34:15 -03:00
Jellyfrog
e5b09b6dde
Merge pull request #417 from santiag0z/patch-1
Update to LibreNMS 24.1.0
2024-01-28 02:01:01 +01:00
Jellyfrog
78ef9bd4b7
Merge pull request #414 from jcostom/master
Fix for /opt/librenms/cache ownership
2024-01-28 02:00:10 +01:00
Santiago Z
bf27d28777
Update to LibreNMS 24.1.0 2024-01-07 20:48:13 -03:00
Jason Costomiris
99fee57d6d
Remove cache perms fix from Dockerfile, move to script 2024-01-01 14:00:25 -05:00
Jason Costomiris
ded183b473
test fix for /opt/librenms/cache ownership 2023-12-31 12:37:59 -05:00
Nico
d0ed3bb7d3
LibreNMS 23.11.0 (#405) 2023-11-25 19:53:10 +01:00
CrazyMax
846881f816
Merge pull request #400 from crazy-max/update
LibreNMS 23.9.1
2023-09-29 16:32:04 +02:00
CrazyMax
d2fbcb10c5
LibreNMS 23.9.1 2023-09-29 15:24:57 +02:00
CrazyMax
5a69b6d497
update README 2023-09-29 15:23:57 +02:00
CrazyMax
4c8af274ec
Merge pull request #399 from librenms/dependabot/github_actions/docker/bake-action-4
Bump docker/bake-action from 3 to 4
2023-09-29 15:23:00 +02:00
CrazyMax
73ea05916e
Merge pull request #398 from librenms/dependabot/github_actions/docker/login-action-3
Bump docker/login-action from 2 to 3
2023-09-29 15:22:53 +02:00
dependabot[bot]
f0229dfab4
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] <support@github.com>
2023-09-25 06:30:50 +00:00
dependabot[bot]
8ac8978614
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] <support@github.com>
2023-09-25 06:30:46 +00:00
CrazyMax
498db0b86b
Merge pull request #393 from librenms/dependabot/github_actions/docker/metadata-action-5
Bump docker/metadata-action from 4 to 5
2023-09-24 00:01:01 +02:00
CrazyMax
bf4de1e754
Merge pull request #392 from librenms/dependabot/github_actions/docker/setup-qemu-action-3
Bump docker/setup-qemu-action from 2 to 3
2023-09-24 00:00:56 +02:00
CrazyMax
93a2e0df01
Merge pull request #391 from librenms/dependabot/github_actions/docker/setup-buildx-action-3
Bump docker/setup-buildx-action from 2 to 3
2023-09-24 00:00:49 +02:00
CrazyMax
7db9e84cfa
Merge pull request #390 from librenms/dependabot/github_actions/crazy-max/ghaction-github-labeler-5
Bump crazy-max/ghaction-github-labeler from 4 to 5
2023-09-24 00:00:42 +02:00
CrazyMax
e4fb7633d3
Merge pull request #389 from librenms/dependabot/github_actions/actions/checkout-4
Bump actions/checkout from 3 to 4
2023-09-24 00:00:34 +02:00
dependabot[bot]
9ad6692bb2
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] <support@github.com>
2023-09-13 06:56:24 +00:00
dependabot[bot]
c5451c1ece
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] <support@github.com>
2023-09-13 06:56:21 +00:00
dependabot[bot]
a9a54b1512
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] <support@github.com>
2023-09-13 06:56:18 +00:00
dependabot[bot]
0850de591d
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] <support@github.com>
2023-09-11 06:43:50 +00:00
dependabot[bot]
2f114b035c
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] <support@github.com>
2023-09-05 06:39:42 +00:00
CrazyMax
20018068b0
Merge pull request #387 from jacobw/master
LibreNMS 23.8.2
2023-08-24 16:23:52 +02:00
jacobw
97ff0fe6d8 LibreNMS 23.8.2 2023-08-23 05:52:16 +12:00
CrazyMax
af099d4cbe
Merge pull request #386 from crazy-max/update
LibreNMS 23.8.1
2023-08-21 12:42:21 +02:00
CrazyMax
9d50911922
LibreNMS 23.8.1 2023-08-21 12:23:26 +02:00
CrazyMax
7abac7fb0c
Merge pull request #362 from crazy-max/rm-armv6
remove arm/v6 arch support
2023-08-21 12:22:12 +02:00
Carl Mercier
ce0f4d9a5f
Install GNU sed (#385)
To be compatible with check_mrpe and other scripts expecting GNU sed.
2023-08-20 05:50:22 +02:00
CrazyMax
a88f2d0b1c
remove CHANGELOG 2023-07-22 10:43:21 +02:00
CrazyMax
b314a0d911
Merge pull request #379 from crazy-max/form-templates
chore: github form templates
2023-07-22 10:39:32 +02:00
CrazyMax
775fb7c5be
Merge pull request #378 from crazy-max/align-labels
chore: cleanup labels config
2023-07-22 10:39:16 +02:00
CrazyMax
c9e3f1b26e
chore: github form templates 2023-07-22 10:38:44 +02:00
CrazyMax
f4b894b26f
chore: cleanup labels config 2023-07-22 10:37:08 +02:00
CrazyMax
01adc2c3fd
Merge pull request #365 from crazy-max/update-labels
chore: update labels
2023-07-22 10:36:26 +02:00
CrazyMax
01fed7dfe0
chore: update labels 2023-07-22 10:26:53 +02:00
CrazyMax
c25f5076e5
Merge pull request #364 from crazy-max/container-logs-check
test: use composite container-logs-check action
2023-07-22 10:25:03 +02:00
CrazyMax
8d9cf3e991
switch to compose v2 cmd 2023-07-22 10:21:09 +02:00
CrazyMax
e03b505d08
test: use composite container-logs-check action 2023-07-22 10:18:11 +02:00
CrazyMax
3874a7b505
ci: merge test workflows 2023-07-22 10:17:03 +02:00
CrazyMax
ce5e994785
ci: missing concurrency check 2023-07-22 10:09:26 +02:00
CrazyMax
1168e59a3e
Merge pull request #363 from crazy-max/artisan-schedule
handle artisan schedule:run
2023-07-22 01:00:35 +02:00
CrazyMax
cb5206846d
handle artisan schedule:run 2023-07-22 00:22:10 +02:00
CrazyMax
6c07c0f4bb
remove arm/v6 arch support 2023-07-22 00:00:40 +02:00
CrazyMax
6c8286c0c6
Update CHANGELOG 2023-06-15 04:48:33 +02:00
CrazyMax
8046ebe588
Merge pull request #357 from Laplacence/master
Update to 23.5.0
2023-06-15 04:41:39 +02:00
La
3e1aacbe7a
Update to 23.5.0 2023-05-23 15:48:51 +08:00
CrazyMax
aecf0a2648
Merge pull request #355 from hjcday/master
Add extra SNMP Trap MIB Dirs via Env Vars
2023-05-15 00:00:08 +02:00
Hugh Day
16eaaf4fc0 Add extra SNMP Trap MIB Dirs via Env Vars 2023-05-15 07:14:03 +10:00
CrazyMax
c14d721377
Merge pull request #349 from midokura/update-librenms
Update LibreNMS to v23.4.1
2023-05-10 04:06:19 +02:00
CrazyMax
90f2479639
chore: remove gitignore and dockerignore 2023-05-04 23:08:09 +02:00
duhow
229e794557 Update plugin Weathermap to 2023.04.17 2023-04-20 15:55:28 +02:00
duhow
7ce699ce92 Update LibreNMS to v23.4.1 2023-04-20 15:55:28 +02:00
CrazyMax
e62dc957ac
Merge pull request #345 from librenms/dependabot/github_actions/docker/bake-action-3
Bump docker/bake-action from 2 to 3
2023-04-20 15:54:45 +02:00
dependabot[bot]
74c391fe44
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] <support@github.com>
2023-04-20 13:51:10 +00:00
CrazyMax
0ff799585b
Merge pull request #348 from midokura/fix-weathermap
fix: fetch all Weathermap commits
2023-04-20 15:47:55 +02:00
duhow
23c3e7559d Fetch all Weathermap commits 2023-04-20 15:33:41 +02:00
Tony Murray
a8481e1339
Merge pull request #346 from hetlelid/patch-1
Docs: Use modern docker compose
2023-04-19 17:25:47 -05:00
hetlelid
d36fd1e9e3
Update README.md 2023-04-19 22:00:34 +02:00
CrazyMax
0540fd9512
Update CHANGELOG 2023-03-24 12:42:51 +01:00
CrazyMax
d659c3d42e
Merge pull request #340 from scamp/update-23.2.0
Update to 23.2.0
2023-03-24 12:05:13 +01:00
Sasha
bdaf762827 Update to 23.2.0 2023-03-19 13:21:31 +02:00
CrazyMax
9556df64ca
Update CHANGELOG 2023-02-09 20:30:51 +01:00
CrazyMax
18ef13c27c
Merge pull request #335 from crazy-max/update
LibreNMS 23.1.1
2023-02-09 20:19:11 +01:00
CrazyMax
3cd6d96bc6
Update Weathermap plugin 2023-02-06 22:02:12 +01:00
CrazyMax
bccc520273
LibreNMS 23.1.1 2023-02-06 21:56:57 +01:00
CrazyMax
d56b8e7541
New year 2023-02-06 21:51:50 +01:00
CrazyMax
d6d3971d3d
Update CHANGELOG 2022-12-30 10:14:02 +01:00
CrazyMax
663fa6db11
Merge pull request #327 from candlerb/candlerb/325
Add 'name' top-level attribute to docker-compose.yml
2022-12-30 10:09:44 +01:00
Brian Candler
453b31cc64 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
2022-12-30 08:46:12 +00:00
CrazyMax
3ff31b4f6c
Merge pull request #329 from crazy-max/update
LibreNMS 22.12.0
2022-12-30 09:41:31 +01:00
CrazyMax
deb81175df
LibreNMS 22.12.0 2022-12-30 08:53:44 +01:00
CrazyMax
c70e3d3f0f
Merge pull request #328 from crazy-max/update-alpine
Alpine Linux 3.17
2022-12-30 08:52:30 +01:00
CrazyMax
9c1e7f46c3
Alpine Linux 3.17 2022-12-30 08:38:48 +01:00
CrazyMax
fbde75c3c8
readme: update about section 2022-12-21 01:12:11 +01:00
CrazyMax
72e9f47e7f
readme: fix badge 2022-12-21 00:42:31 +01:00
CrazyMax
e44f17b4ec
Update CHANGELOG.md 2022-11-26 17:52:31 +01:00
CrazyMax
b97cdbd53f
Merge pull request #324 from crazy-max/update
LibreNMS 22.11.0
2022-11-26 17:48:55 +01:00
CrazyMax
61507ca225
LibreNMS 22.11.0 2022-11-26 17:07:29 +01:00
CrazyMax
1d0c26d203
Update to PHP 8.1 2022-11-26 17:07:29 +01:00
olivierbouffet
938828f65b
Add ability to configure php-fpm (#320) 2022-11-26 16:53:51 +01:00
Santiago Z
4c05fc80c3
Update CHANGELOG.md (#319)
Fix id PR
2022-10-23 20:20:18 +02:00
CrazyMax
b2e30bf75f
Update CHANGELOG 2022-10-22 09:23:07 +02:00
Tony Murray
7cf09447a5
Enable the First Run Wizard (#280)
Use the first run wizard instead of creating an admin user with a known password.
2022-10-22 09:20:36 +02:00
La
ee333d4357
LibreNMS 22.10.0 (#318) 2022-10-22 08:52:43 +02:00
Seti
e35fa8e600
Add openssh-client for the check_by_ssh plugin (#312) 2022-09-22 23:48:11 +02:00
CrazyMax
00fa54010b
Update CHANGELOG 2022-09-22 23:43:38 +02:00
La
0d2a2e3864
update to 22.9.0 (#314) 2022-09-22 02:15:56 +02:00
Tony Murray
48251ee063
Merge pull request #313 from librenms/dependabot/github_actions/actions/checkout-3
Bump actions/checkout from 2 to 3
2022-09-21 19:12:10 -05:00
dependabot[bot]
cabd8e407c
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] <support@github.com>
2022-09-21 06:53:15 +00:00
CrazyMax
aa962b1ba9
Update README 2022-08-23 20:09:46 +02:00
CrazyMax
5d5c4fe6dc
Update CHANGELOG 2022-08-23 20:04:28 +02:00
CrazyMax
38791ad0af
Update weathermap plugin to 697ac3c (#309)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-23 20:03:24 +02:00
CrazyMax
528545688d
Update CHANGELOG 2022-08-23 04:08:57 +02:00
La
479e03be24
LibreNMS 22.8.0 (#306) 2022-08-23 04:01:14 +02:00
CrazyMax
803f8a8cff
Update CHANGELOG 2022-08-14 15:31:06 +02:00
CrazyMax
d7496bbade
Fix container restart state with Weathermap (#304)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-14 15:29:29 +02:00
CrazyMax
e95987bcf2
Update CHANGELOG 2022-08-13 02:12:15 +02:00
CrazyMax
2516b309d9
Remove Weathermap plugin while waiting for a fix upstream (#302)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-13 02:10:41 +02:00
CrazyMax
0af72265d4
Fix symlink and perms for weathermap plugin configs folder (#301)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-13 01:46:30 +02:00
CrazyMax
dc731efce3
Ensure REDIS_SCHEME is set with default value (#300)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-08-13 01:28:11 +02:00
Aterfax
3c84a0a6b5
Fix issue with alerts not functioning correctly. (#298)
This should address the issues mentioned in https://github.com/librenms/docker/issues/297
2022-08-13 00:55:30 +02:00
CrazyMax
07f3baab8e
Update CHANGELOG 2022-07-24 21:22:38 +02:00
La
afba315012
LibreNMS 22.7.0 (#295) 2022-07-24 21:16:16 +02:00
CrazyMax
d57413a9cf
test-edge workflow to test librenms master branch (#293)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-16 15:57:08 +02:00
Tony Murray
27c4be0b7c
Always set rrdtool version (#292) 2022-07-16 15:16:52 +02:00
Tony Murray
3ec606df05
Shallow clone to reduce build time (#291) 2022-07-15 21:01:24 +02:00
Tony Murray
9c30554e81
YAML based config (#225) 2022-07-15 06:23:36 +02:00
CrazyMax
d9dab05eb0
Move REDIS env vars in librenms.env file (#290)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-14 16:27:47 +02:00
CrazyMax
fc9666248d
Update to PHP 8 and Alpine Linux 3.16 (#289)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-14 16:12:07 +02:00
CrazyMax
a9e2bbf252
Fix README 2022-07-14 15:21:03 +02:00
Tony Murray
6cece230da
Remove memcached and use redis fully (#286) 2022-07-14 15:18:47 +02:00
PJGuyTen
cedde585f6
Verifying user and group in lnms script (#278) 2022-07-14 15:14:39 +02:00
CrazyMax
a290b46d5d
Update CHANGELOG 2022-07-14 14:10:00 +02:00
CrazyMax
b48e1dc6e1
Update CHANGELOG 2022-07-14 14:07:45 +02:00
CrazyMax
951008d69e
add PHP GMP extension (#288)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-14 14:04:41 +02:00
CrazyMax
a552bf285d
Fix README 2022-07-13 03:50:57 +02:00
CrazyMax
f6a7b495c4
Merge documentation (#285)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-13 03:48:37 +02:00
CrazyMax
2c4abe5f34
ci: test workflow (#284)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-13 03:14:34 +02:00
CrazyMax
b1c2fd7423
Ensure scripts exit early on error and set shellcheck (#283)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-13 03:02:55 +02:00
d-k-7
675c93441d
Add MAX_INPUT_VARS env var (#271) 2022-07-13 02:01:51 +02:00
Tony Murray
c95e0d57b6
Merge pull request #281 from murrant/trim_image
Reduce image size by about 200MB
2022-07-09 02:48:17 -05:00
Tony Murray
708131fe87
Reduce image size by about 200MB
Remove test data that is not used in production
2022-07-09 02:04:54 -05:00
CrazyMax
c8f4901ee3
Update CHANGELOG 2022-06-17 15:39:42 +02:00
hjcday
6ad66f6007
LibreNMS 22.6.0 (#275) 2022-06-16 10:05:37 +02:00
CrazyMax
17c9bd63ed
Update CHANGELOG 2022-05-28 22:26:11 +02:00
La
7dc0719896
LibreNMS 22.5.0 (#272) 2022-05-28 22:24:54 +02:00
CrazyMax
b102459a21
Bump action to latest major 2022-05-26 18:40:49 +02:00
CrazyMax
47df3999ac
cleanup workflow 2022-05-26 09:33:09 +02:00
CrazyMax
9316b6a081
ci: add concurrency check 2022-05-07 22:09:28 +02:00
CrazyMax
4735fdba20
Bump Docker actions (#269)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-05-07 22:06:33 +02:00
CrazyMax
5f699da7e9
Update CHANGELOG 2022-04-24 16:22:09 +02:00
CrazyMax
28e64d92ee
LibreNMS 22.4.1 (#261)
* LibreNMS 22.4.1

(cherry picked from commit a51fa79983)

# Conflicts:
#	Dockerfile

* Fix syslog-ng

Co-authored-by: La <Miyamatsu@foxmail.com>
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-04-24 16:12:38 +02:00
CrazyMax
4a9b6a27d1
Update CHANGELOG 2022-03-20 14:37:19 +01:00
La
0be2eaf77d
LibreNMS 22.3.0 (#258) 2022-03-20 14:36:01 +01:00
CrazyMax
41b329016f
Update CHANGELOG 2022-03-13 18:24:08 +01:00
dependabot[bot]
e4e5748a3c
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-13 18:23:09 +01:00
La
17733a097b
update to 22.2.2 (#257) 2022-03-13 18:22:42 +01:00
CrazyMax
a3ca4625fa
Update CHANGELOG 2022-02-20 03:00:36 +01:00
CrazyMax
1d2fb41aba
LibreNMS 22.2.1 (#254)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-02-20 02:58:26 +01:00
CrazyMax
766c8a6e81
Alpine Linux 3.15 (#253)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-02-20 01:59:08 +01:00
CrazyMax
81c09252bf
Update CHANGELOG 2022-02-18 14:16:36 +01:00
La
768ba78da3
LibreNMS 22.2.0 (#252) 2022-02-17 11:41:31 +01:00
CrazyMax
1fbca7d447
Update CHANGELOG 2022-01-26 14:39:54 +01:00
CrazyMax
21ba60b288
Update LICENSE 2022-01-26 14:38:37 +01:00
La
b4836dca32
Up to 22.1.0 (#250) 2022-01-26 14:37:40 +01:00
CrazyMax
582edd1d2f
Update CHANGELOG 2022-01-05 23:51:25 +01:00
hjcday
00f8def153
LibreNMS 21.12.1 (#247) 2022-01-05 23:33:44 +01:00
CrazyMax
7cbf636263
Fix pip pkgs (#249)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-01-05 22:11:11 +01:00
Richard Kojedzinszky
7f07e2ba8f
nginx: increase fastcgi buffer size (#246) 2021-12-30 03:11:37 +01:00
CrazyMax
8768a75b9b
Update CHANGELOG 2021-11-14 23:47:31 +01:00
CrazyMax
aeeacf3cd6
LibreNMS 21.11.0 (#242)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-11-14 23:46:36 +01:00
CrazyMax
97485a60c9
Update CHANGELOG 2021-10-21 22:15:35 +02:00
CrazyMax
c4c065d39e
LibreNMS 21.10.2 (#239)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-10-21 22:14:23 +02:00
MarlinMr
179f453c09
Removing references to Nagios because of confiusion (#237) 2021-10-21 19:16:11 +02:00
CrazyMax
d44fa13ea5
Update CHANGELOG 2021-10-19 13:47:31 +02:00
Nash Kaminski
6c90a3c889
Update LibreNMS to version 21.10.1 due to discovery bug (#236) 2021-10-19 11:10:52 +02:00
CrazyMax
7201be4290
Update CHANGELOG 2021-10-19 00:23:31 +02:00
Nash Kaminski
c7e0f9f0c0
Update LibreNMS to version 21.10.0 (#235) 2021-10-19 00:22:35 +02:00
CrazyMax
8ecb62da90
Update CHANGELOG 2021-09-28 12:41:46 +02:00
CrazyMax
13474c860f
LibreNMS 21.9.1 (#230)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-09-28 12:40:29 +02:00
CrazyMax
b719b231e2
Update CHANGELOG 2021-09-20 02:11:08 +02:00
CrazyMax
d95a775dea
LibreNMS 21.9.0 (#224)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-09-20 02:08:39 +02:00
CrazyMax
a453611d8e
Update CHANGELOG 2021-09-01 14:58:13 +02:00
CrazyMax
b4f921c300
LibreNMS 21.8.0 (#222)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-09-01 14:56:47 +02:00
CrazyMax
f8b18336f8
Alpine Linux 3.14 (#221)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-08-19 12:53:41 +02:00
CrazyMax
9c27463bbf
Update CHANGELOG 2021-08-10 13:26:36 +02:00
MarlinMr
57b1df6596
Misspelling of environment variable (#220) 2021-08-10 13:23:05 +02:00
MarlinMr
a701a1d0fa
Fix librenms_snmptrapd service typo (#219) 2021-08-09 14:06:55 +02:00
CrazyMax
6b9029dfcd
Update CHANGELOG 2021-08-07 17:58:29 +02:00
MarlinMr
0fe44f1d46
Add SNMP config (#216) 2021-08-07 17:38:40 +02:00
CrazyMax
21d52c3117
Update CHANGELOG 2021-08-01 07:58:44 +02:00
CrazyMax
d4b08e69fb
LibreNMS 21.7.0 (#215)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-08-01 07:57:10 +02:00
Anton Lundin
b2d4ddb2c1
Create and enable a snmp trap handling container (#180) 2021-08-01 07:26:12 +02:00
CrazyMax
1111095afe
Update CHANGELOG 2021-06-28 04:24:56 +02:00
CrazyMax
12bf646980
LibreNMS 21.6.0 (#210)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-06-28 00:31:11 +02:00
CrazyMax
5fc602e4a4
Update CHANGELOG 2021-05-20 10:44:44 +02:00
CrazyMax
19e3a26943
LibreNMS 21.5.1 (#205)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-05-20 10:42:01 +02:00
CrazyMax
36aa1601a4
Move to docker/metadata-action (#199)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-05-11 00:03:55 +02:00
Kasper Simonsen
08d98d38bf
Add file package (#195) 2021-04-20 23:23:14 +02:00
CrazyMax
47f7d16158
Update CHANGELOG 2021-04-18 18:36:05 +02:00
CrazyMax
3dcc7d7a69
Update db service example (#193)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-04-18 18:34:00 +02:00
CrazyMax
3825abb2d8
LibreNMS 21.4.0 (#192)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-04-18 18:17:02 +02:00
CrazyMax
957ca9e439
Fix weathermap output perms (#191)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-04-18 17:43:29 +02:00
CrazyMax
9c5dc1ae5c
Fix warnings (#190)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-04-18 17:37:06 +02:00
Tony Murray
3640abdb7b
All containers should connect to redis (#178)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-04-18 17:29:39 +02:00
CrazyMax
4bb31cd6a5
alpine-s6 3.13-2.2.0.3 (#189)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-04-18 17:15:30 +02:00
CrazyMax
b54299f950
Fix workflow 2021-04-03 18:51:53 +02:00
CrazyMax
491230f896
Meta action v2 2021-04-01 19:25:52 +02:00
CrazyMax
541c542bd3
Update CHANGELOG 2021-03-21 16:47:59 +01:00
CrazyMax
16fe2c050e
LibreNMS 21.3.0 2021-03-21 16:47:16 +01:00
CrazyMax
f9c0496021
Fix SHA 2021-03-19 00:31:16 +01:00
CrazyMax
2be3ce55fc
Fix SHA 2021-03-18 22:31:06 +01:00
Christopher Harrison
48b8e4cd60
Update syslog-ng max-connections (#179) 2021-03-18 21:22:14 +01:00
CrazyMax
93be32f715
Upstream Alpine update (#177)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-03-18 14:47:41 +01:00
CrazyMax
96c67e9204
Handle LibreNMS plugins (#175)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-03-10 23:58:45 +01:00
CrazyMax
cddc5e906a
Switch to yasu (#170)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-03-04 23:44:23 +01:00
CrazyMax
3efa499036
Update CHANGELOG 2021-02-16 22:44:43 +01:00
CrazyMax
baca53ed29
LibreNMS 21.2.0 (#167)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-02-16 20:55:30 +00:00
Jellyfrog
f50355af7e
Alpine Linux 3.13 (#162)
Co-authored-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2021-02-16 19:15:40 +00:00
CrazyMax
a271596fc1
Need to specify rrdtool_version (librenms/docker@ab027d7) 2021-02-16 13:43:57 +01:00
CrazyMax
6bacd24dea
Update CHANGELOG 2021-02-15 16:50:03 +01:00
CrazyMax
ab027d7e85
No need to specify rrdtool_version (#166) 2021-02-15 16:27:03 +01:00
CrazyMax
03e71592a0
Move back to s6-overlay 2.1.0.2 (#164) (#165)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-02-15 15:08:40 +00:00
CrazyMax
85ef301e40
Update CHANGELOG 2021-02-02 10:50:10 +01:00
CrazyMax
daa7f37f9c
Switch to buildx bake 2021-02-02 10:31:32 +01:00
CrazyMax
6cf225069d
LibreNMS 21.1.0 2021-02-02 10:31:32 +01:00
CrazyMax
fbe6cf7087
Do not fail on permission issue 2021-02-02 10:31:32 +01:00
CrazyMax
e612494bde
Update labels 2021-02-02 10:31:32 +01:00
Amund Meling
263c47e895
Redis - Add scheme to allow TLS (#159) 2021-02-02 08:54:09 +00:00
CrazyMax
8b1707a946
2021 2021-01-06 18:59:15 +01:00
CrazyMax
8301f68750
Add iputils and fix perms (#131) 2020-12-11 14:45:43 +01:00
CrazyMax
42fb44b987
Update CHANGELOG 2020-12-10 02:53:59 +01:00
CrazyMax
55b5f93ef4
Fix Redis for dispatcher 2020-12-10 02:52:56 +01:00
Richard Kojedzinszky
aff5d43251
Fix dispatcher container redis setup (#150) 2020-12-09 08:51:11 +00:00
CrazyMax
fe9af3323e
LibreNMS 1.70.1 2020-12-02 22:20:51 +01:00
CrazyMax
1d6627381c
Add NET_ADMIN capability and fix fping6 (#140) 2020-12-02 22:19:58 +01:00
CrazyMax
77f4c6104a
Update CHANGELOG 2020-11-22 18:25:25 +01:00
CrazyMax
ea17037275
Fix tzdata issue with Alpine (#143) 2020-11-22 18:24:07 +01:00
CrazyMax
49b492579b
Temp fix for tzdata package (#143) 2020-11-19 03:39:37 +01:00
Hayden
0c3e84d931
add redis sentinel support (#141)
* add redis sentinel support

* update redis requirement warning to include REDIS_SENTINEL

* update docs
2020-11-19 02:38:54 +00:00
Hayden
d933e76783
Add alert templates (#142) 2020-11-17 21:38:26 +00:00
CrazyMax
06d918843a
Update examples 2020-11-08 18:10:21 +01:00
CrazyMax
da1cffdafe
Use major actions version 2020-11-06 18:31:04 +01:00
dependabot[bot]
6477bd0c4e
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-06 16:57:39 +00:00
CrazyMax
ea46055dab
Do not set default value for RRDCACHED_SERVER 2020-11-05 10:17:52 +01:00
CrazyMax
b410794a0a
Fix build dependencies 2020-11-03 01:38:17 +01:00
CrazyMax
11d5a3acef
Update CHANGELOG 2020-11-03 01:19:46 +01:00
CrazyMax
7ed4bc231f
LibreNMS 1.69 2020-11-03 01:15:38 +01:00
dependabot[bot]
70c94d3b84
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-02 20:12:21 +00:00
dependabot[bot]
432801e7c9
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-02 20:10:37 +00:00
CrazyMax
3e15edd030
Update to Traefik v2 2020-11-01 21:03:36 +01:00
DerTFL
60927b8d9a
Update librenms.yml (#135)
Add access to rrd files from librenms container.

Co-authored-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2020-11-01 19:56:47 +00:00
CrazyMax
af6ec63e7d
Update README 2020-11-01 20:52:34 +01:00
CrazyMax
709240e29a
Update workflow 2020-11-01 20:51:26 +01:00
CrazyMax
bf2eea9de5
Allow to clear env for FPM workers 2020-11-01 20:51:01 +01:00
CrazyMax
4a61bf26b7
Use Docker meta action 2020-11-01 20:51:01 +01:00
CrazyMax
84083b8a6d
Replace RRDCACHED_HOST and RRDCACHED_PORT with RRDCACHED_SERVER env var 2020-11-01 20:50:22 +01:00
dependabot[bot]
f15f998907
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-23 22:42:04 +00:00
dependabot[bot]
f37e540817
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-09 13:22:48 +00:00
CrazyMax
89b35ec4a2
LibreNMS 1.68 2020-09-30 23:35:05 +02:00
dependabot[bot]
740a665095
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-29 21:32:44 +00:00
dependabot[bot]
e0cd59c9ea
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-28 19:00:09 +00:00
dependabot[bot]
b3fdfb6920
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-28 18:59:54 +00:00
CrazyMax
7e2a9f26c4
Add debug steps 2020-09-17 19:43:22 +02:00
CrazyMax
626b9ee479
Switch to Docker actions 2020-09-10 00:09:11 +02:00
CrazyMax
f68d1b28b8
Update CHANGELOG 2020-09-04 00:08:36 +02:00
CrazyMax
c94f69eb7d
Seed through artisan 2020-09-03 23:43:29 +02:00
CrazyMax
c9e6bcfe5a
Update CHANGELOG 2020-09-03 22:35:49 +02:00
CrazyMax
eecc7d8a59
Now based on Alpine Linux 3.12 with s6 overlay 2020-09-03 22:35:39 +02:00
CrazyMax
163dcdbb23
LibreNMS 1.67 2020-09-03 22:33:25 +02:00
CrazyMax
9646691bf2
Missing migration seed flag (#122) 2020-09-03 22:31:53 +02:00
dependabot[bot]
3323c616a7
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-28 07:21:57 +00:00
CrazyMax
3c0309b43a
Update CHANGELOG 2020-08-28 09:21:38 +02:00
CrazyMax
5a37ac37df
Run maintenance task through a dedicated process (#105) 2020-08-28 08:58:41 +02:00
CrazyMax
1d2733b051
Update build workflow 2020-08-28 08:57:43 +02:00
CrazyMax
1a1c4899f8
Add DISPATCHER_ARGS env var 2020-08-28 07:57:41 +02:00
CrazyMax
edd80b0fc1
Fix DB connection for dispatcher service (#108 #118 #119) 2020-08-28 07:56:27 +02:00
CrazyMax
99b7d29203
Switch to docker/login-action 2020-08-27 15:24:17 +02:00
dependabot[bot]
47c8bf2af0
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-18 11:59:57 +00:00
dependabot[bot]
2f9215e36f
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-17 13:25:52 +00:00
CrazyMax
6e1ecbb561
Use crazy-max/ghaction-docker-login action 2020-08-15 16:12:18 +02:00
dependabot[bot]
f21bdf7ef8
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-10 17:52:35 +00:00
CrazyMax
a858a4f5e2
LibreNMS 1.66 2020-07-30 13:47:34 +02:00
dependabot[bot]
d7e92cf497
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-23 20:31:11 +00:00
CrazyMax
ee2d7dd04d
Add LIBRENMS_BASE_URL env var (#95 #99 #100) 2020-07-10 22:52:25 +02:00
CrazyMax
5c00943ddb
LibreNMS 1.65.1 2020-07-10 22:17:46 +02:00
CrazyMax
4be8d30631
Update CHANGELOG (#95) 2020-07-04 01:40:18 +02:00
CrazyMax
418a9e293c
Update CHANGELOG 2020-07-03 20:34:41 +02:00
CrazyMax
2734798d6c
Remove LIBRENMS_DISTRIBUTED_POLLER_* env vars (now handle through WebUI) 2020-07-03 20:21:09 +02:00
CrazyMax
248c47b998
Check database migration completed 2020-07-03 20:20:43 +02:00
CrazyMax
db32c6e043
Remove LIBRENMS_SERVICE_* env vars (now handle through WebUI)
Check poller_cluster table exists before running dispatcher
2020-07-03 20:04:52 +02:00
CrazyMax
9b875b5c42
Handle Redis for dispatcher through .env 2020-07-03 19:45:06 +02:00
CrazyMax
9cab07ce75
LibreNMS 1.65 2020-07-03 19:36:10 +02:00
CrazyMax
c018f6a967
Check APP_KEY generation 2020-07-03 18:49:15 +02:00
CrazyMax
b6d48fa176
Update doc 2020-07-03 18:27:27 +02:00
CrazyMax
67e6921060
Remove deprecated sidecar cron container 2020-07-03 18:24:48 +02:00
CrazyMax
96b00b6f9c
Handle APP_KEY and NODE_ID (#91 #93) 2020-07-03 18:19:46 +02:00
CrazyMax
7bce19f268
Add artisan command 2020-07-03 16:02:13 +02:00
CrazyMax
efd41624b0
Clear cache and reload config cache 2020-07-03 11:31:15 +02:00
CrazyMax
43851cf363
Set user group config 2020-07-02 18:00:06 +02:00
CrazyMax
f3769c4a9c
Alpine Linux 3.12 2020-07-02 17:52:20 +02:00
CrazyMax
a8eb4b605d
Fix examples (#87) 2020-06-28 03:23:46 +02:00
dependabot[bot]
72e5c1f0d2
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-06-26 17:43:01 +00:00
dependabot[bot]
5275d5b533
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-06-22 14:21:05 +00:00
dependabot[bot]
1df9ee0ea9
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-06-21 04:46:25 +00:00
CrazyMax
e714a7aa19
Update workflow 2020-06-19 18:32:44 +02:00
CrazyMax
0b03e2e417
Fix workflow 2020-06-17 19:21:02 +02:00
dependabot[bot]
8ce8147f42
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-06-16 00:44:58 +00:00
CrazyMax
ab70d73625
Update workflow 2020-06-16 02:23:42 +02:00
CrazyMax
06f5b8caa4
Add dependabot 2020-06-16 02:23:27 +02:00
CrazyMax
3c3eec7326
Update labels 2020-06-16 02:23:20 +02:00
CrazyMax
6a6252d894
Update CHANGELOG 2020-06-01 20:27:24 +02:00
CrazyMax
fd617cd7a2
LibreNMS 1.64.1 2020-06-01 20:18:10 +02:00
CrazyMax
0c5e471109
Edge on PWD 2020-06-01 10:40:57 +02:00
CrazyMax
e00b3777d5
Multi-platform image
Publish edge and nightly images
2020-06-01 10:27:49 +02:00
CrazyMax
97099891e1
LibreNMS 1.64
Python 2 removed (librenms/librenms#11531)
2020-06-01 10:11:21 +02:00
CrazyMax
4d1bdba9bb
Update CHANGELOG 2020-05-28 23:12:15 +02:00
CrazyMax
9fad63bea5
Use recommended lnms command 2020-05-28 23:04:46 +02:00
CrazyMax
f877e307eb
Remove --sql-mode and bump Mariadb to 10.4 2020-05-28 23:03:18 +02:00
CrazyMax
004364f786
Bring back Git package 2020-05-24 03:42:12 +02:00
CrazyMax
de203f6f09
Update CHANGELOG 2020-05-22 16:54:32 +02:00
Seti
351d95299f
Add missing dep and perms for Weathermap plugin (#82) 2020-05-22 16:53:14 +02:00
CrazyMax
785f8b4d93
Update CHANGELOG 2020-05-21 18:04:35 +02:00
CrazyMax
fee60a01c8
Add LibreNMS Weathermap plugin (#81) 2020-05-21 18:02:42 +02:00
Alex Muthmann
62a083f008
Fix outdated depends_on (#78) 2020-05-19 14:25:54 +02:00
CrazyMax
1088d9cdb3
Fix syslogng version 2020-05-18 19:15:56 +02:00
CrazyMax
986b7e7eaf
Fix syslogng version 2020-05-18 18:47:26 +02:00
CrazyMax
721ce2815c
Use msmtpd SMTP relay 2020-05-18 18:38:04 +02:00
CrazyMax
155262e0d5
Unused 2020-05-18 18:37:52 +02:00
CrazyMax
f33b3294d1
Fix links 2020-05-18 18:37:05 +02:00
CrazyMax
08664d8802
Update pwd example 2020-05-18 18:36:51 +02:00
CrazyMax
86c3d3f4b2
Add demo to PWD 2020-05-14 05:48:59 +02:00
CrazyMax
d6336d4f5e
Update CHANGELOG 2020-05-13 13:29:49 +02:00
CrazyMax
4b2c678d99
Mark sidecar cron container as deprectated 2020-05-13 13:29:35 +02:00
CrazyMax
e35df14d42
Run librenms-service as librenms user (#76) 2020-05-13 13:26:22 +02:00
CrazyMax
944e949d11
Update workflows 2020-05-13 13:25:20 +02:00
CrazyMax
6acb3577a7
Update compose examples 2020-05-09 16:56:11 +02:00
CrazyMax
39c753d1e8
Fix links 2020-05-09 15:01:58 +02:00
CrazyMax
68c9b01c0f
Update compose and set crons sidecar as legacy 2020-05-08 23:33:07 +02:00
CrazyMax
7bd652f10a
Fix poller-wrapper 2020-05-08 23:10:27 +02:00
CrazyMax
617a41f05b
Update CHANGELOG 2020-05-08 22:38:51 +02:00
CrazyMax
3cdecd3e00
Dispatcher service (#70)
* Stop publishing Docker image on Quay

Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
2020-05-08 22:35:43 +02:00
CrazyMax
7a2dfef43d
Update README 2020-05-08 22:26:08 +02:00
CrazyMax
f74e790a14
Alpine Linux 3.11 2020-05-08 22:23:38 +02:00
CrazyMax
7daa8602b6
LibreNMS 1.63 2020-05-08 21:40:24 +02:00
CrazyMax
7693b6b44e
Add LISTEN_IPV6 env var (#71) 2020-05-08 21:39:29 +02:00
CrazyMax
72692bce06
Update workflows 2020-05-08 19:42:37 +02:00
CrazyMax
d911499a47
Update CHANGELOG 2020-04-13 21:16:40 +02:00
CrazyMax
ca84dd49cb
Fix log file permissions (#66) 2020-04-13 21:16:02 +02:00
CrazyMax
286cd8d31d
Switch to Open Container Specification labels as label-schema.org ones are deprecated 2020-04-07 20:01:29 +02:00
CrazyMax
d982c7a74c
Fix compose (#65) 2020-04-06 22:11:58 +02:00
CrazyMax
8ea06f7624
LibreNMS 1.62.2 2020-04-04 18:21:49 +02:00
Ike Devolder
062de7ff85
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 <ike.devolder@gmail.com>
2020-03-29 18:51:14 +02:00
CrazyMax
345a8d9233
Update README 2020-03-27 14:25:44 +01:00
CrazyMax
a31f2a8840
Fix folder creation (#62) 2020-03-27 14:25:03 +01:00
CrazyMax
457a614977
Fix links 2020-03-22 16:57:11 +01:00
CrazyMax
624b15beb1
Allow multi discovery workers through LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS env var (#59) 2020-03-22 16:48:13 +01:00
CrazyMax
75d5046430
Update CHANGELOG 2020-03-05 18:38:31 +01:00
CrazyMax
af768511f2
Add php7-sockets to be installed to fix warnings (#61) 2020-03-05 18:36:03 +01:00
John Jensen
54624eb62c add php7-sockets to be installed to fix warnings 2020-03-05 11:31:50 -05:00
CrazyMax
260cbeef9e
LibreNMS 1.61 2020-03-02 11:54:06 +01:00
CrazyMax
ae7ed07880
Revert "Alpine Linux 3.11"
This reverts commit 21118128e5.
2020-02-04 23:37:01 +01:00
CrazyMax
21118128e5
Alpine Linux 3.11 2020-02-04 23:32:47 +01:00
CrazyMax
ad92ae4bae
LibreNMS 1.60 2020-02-04 23:29:45 +01:00
CrazyMax
a0c4a93c53
Move Nginx temp folders to /tmp (#55) 2020-01-23 21:00:50 +01:00
CrazyMax
b3c296eb21
Update CHANGELOG 2019-12-20 23:26:11 +01:00
CrazyMax
027e9f48ae
Fix compose config 2019-12-20 23:25:15 +01:00
Peter Pletcher
2f0af5d859 Add snmp-scan option for cron container (#53) 2019-12-20 23:22:35 +01:00
CrazyMax
6ccfedd2a7
Update CHANGELOG 2019-12-06 10:45:26 +01:00
CrazyMax
7935d50371
Fix timezone php.ini 2019-12-06 10:44:45 +01:00
CrazyMax
0f38a58bfe
Update CHANGELOG 2019-12-06 10:10:06 +01:00
CrazyMax
ee909221a8
Bring back timezone management through symlink (#49) 2019-12-06 10:09:27 +01:00
CrazyMax
4797423cae
Update CHANGELOG 2019-11-29 15:47:17 +01:00
CrazyMax
aeb070d3fc
MEMCACHED_PORT default port not working (#48) 2019-11-29 15:46:28 +01:00
CrazyMax
81106a65f4
Fix php date timezone (#49) 2019-11-29 15:45:33 +01:00
CrazyMax
705a44d9ad
LibreNMS 1.58.1 2019-11-27 16:36:14 +01:00
CrazyMax
3156efff73
LibreNMS 1.58 2019-11-25 11:54:52 +01:00
CrazyMax
1ba2014e4d
Rename to rootfs 2019-11-19 14:10:17 +01:00
CrazyMax
3a92d62e86
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)
2019-11-19 14:09:34 +01:00
CrazyMax
fbb387d0da
Update README 2019-11-15 11:40:42 +01:00
CrazyMax
1229a66464
LibreNMS 1.57 2019-10-30 16:56:34 +01:00
CrazyMax
4a5f8a0f4c
Dedicated example for Traefik (#44) 2019-10-30 16:53:11 +01:00
CrazyMax
66abae2189
Base image update 2019-10-26 17:13:46 +02:00
CrazyMax
616d2b901e
Fix CVE-2019-11043 (#43) 2019-10-25 15:15:35 +02:00
CrazyMax
31594a783f
Remove workflow test for now
* Fix test workflow

* Fix test workflow

* Fix test workflow

* Update labels workflow

* Remove workflow test for now
2019-10-20 19:35:11 +02:00
CrazyMax
3313743ddb
Final labels 2019-10-20 18:18:27 +02:00
CrazyMax
34d842341e
Fix test workflow 2019-10-20 18:18:21 +02:00
CrazyMax
a95e1ab194
Add ghaction-github-labeler 2019-10-20 18:13:12 +02:00
CrazyMax
8dae33ad08
Fix test workflow 2019-10-20 18:13:04 +02:00
CrazyMax
f333dd5c52
Fix test 2019-10-20 18:07:27 +02:00
CrazyMax
62ba88cf8b
Fix rrdcached compose 2019-10-20 18:03:07 +02:00
CrazyMax
2176933574
Update README 2019-10-20 17:56:51 +02:00
CrazyMax
48e1c8343e
Fix Docker labels 2019-10-20 17:56:42 +02:00
CrazyMax
d30292ec28
Fix test workflow 2019-09-30 15:31:56 +02:00
CrazyMax
70403bfaf7
Remove travis 2019-09-30 15:30:40 +02:00
CrazyMax
0377027362
Switch to GitHub Actions (#39) 2019-09-30 15:29:19 +02:00
CrazyMax
e86031faf6
LibreNMS 1.56 2019-09-30 15:03:53 +02:00
CrazyMax
62cb36c280
Move doc 2019-09-14 23:45:53 +02:00
CrazyMax
ce51083aaf
Review data permissions
Remove usermod/groupmod (Issue #38)
2019-09-14 23:02:43 +02:00
CrazyMax
177b486e84
Update compose since latest rrdcached image 2019-09-14 22:18:44 +02:00
CrazyMax
d627abc406
LibreNMS 1.55 2019-09-04 02:56:23 +02:00
CrazyMax
1fd872b086
Update README 2019-09-04 02:47:49 +02:00
CrazyMax
7ba2b21ee7
Update CHANGELOG 2019-08-28 20:31:12 +02:00
bewing
a5f1e8412f Add Python3 modules (#36)
Add python3 modules required for new Dispatcher Service
2019-08-28 19:42:47 +02:00
CrazyMax
2e663c5c54
Update compose 2019-08-17 23:03:36 +02:00
CrazyMax
9c77746198
Update README 2019-08-17 22:54:52 +02:00
CrazyMax
55b58c96ab
LibreNMS 1.54 2019-07-29 06:28:39 +02:00
CrazyMax
a9ed7ab954
Update README 2019-07-29 06:28:22 +02:00
CrazyMax
ec94498f6b
Add ipmitool location (Issue #34) 2019-07-25 19:09:12 +02:00
CrazyMax
7cca9695e4
Update README 2019-07-25 18:44:17 +02:00
CrazyMax
5ec49deacd
LibreNMS 1.53.1 2019-07-02 14:44:42 +02:00
CrazyMax
5feee28958
LibreNMS 1.53 2019-07-01 22:31:47 +02:00
CrazyMax
d4851e8a9d
Alpine Linux 3.10 2019-07-01 22:31:02 +02:00
CrazyMax
a8dbf33c9e
Add FUNDING 2019-06-24 21:40:53 +02:00
CrazyMax
383885ef52
LibreNMS 1.52 2019-05-28 09:31:25 +02:00
CrazyMax
589e681bf1
Update README 2019-05-01 22:15:36 +02:00
CrazyMax
41c5748799
Fix supervisord conf 2019-05-01 22:13:08 +02:00
CrazyMax
539a10f233
Sidecar cron and syslog-ng are now respectively enabled through SIDECAR_CRON and SIDECAR_SYSLOGNG env vars 2019-05-01 21:43:30 +02:00
CrazyMax
85df683447
Fix snmpd command 2019-05-01 20:51:48 +02:00
CrazyMax
d801cf45ce
LibreNMS 1.51 2019-05-01 17:49:38 +02:00
CrazyMax
9be7ec161b
Remove MicroBadger 2019-05-01 17:43:09 +02:00
CrazyMax
40e2a5b999
GitHub bug report tpl 2019-04-28 20:36:11 +02:00
CrazyMax
e997d7c152
Add large_client_header_buffers Nginx config 2019-04-28 20:35:50 +02:00
CrazyMax
d1784efc3e
Update CHANGELOG 2019-04-21 02:45:54 +02:00
Johann Richard
dab6b5eaad Update Dockerfile (#29)
* install `ipmitool`
2019-04-21 02:44:17 +02:00
CrazyMax
7b65d4b8b7
LibreNMS 1.50.1 2019-04-17 20:31:49 +02:00
CrazyMax
adf440e0b0
Update CHANGELOG 2019-04-15 23:38:57 +02:00
Matus Kral
cc09f8a105 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: <LOOPBACK,UP,LOWER_UP> 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: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1000
    link/tunnel6 :: brd ::
4: eth0@if246: <BROADCAST,MULTICAST,UP,LOWER_UP> 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💯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)
```
2019-04-15 23:36:50 +02:00
CrazyMax
68d3c1030e
Add LOG_IP_VAR environment variable (Issue #22) 2019-04-13 02:47:24 +02:00
CrazyMax
cd44876e09
Update CHANGELOG 2019-04-07 18:15:37 +02:00
CrazyMax
e909687d3e
Use python3 for snmp-scan (Issue #25) 2019-04-07 18:08:52 +02:00
CrazyMax
85c491fe32
Add REAL_IP_FROM and REAL_IP_HEADER environment variables 2019-04-07 18:04:31 +02:00
CrazyMax
8b9d2d1e59
Update CHANGELOG 2019-04-03 13:36:31 +02:00
Jens Forstmann
46da123304 Set memory limit in php.ini (#24) 2019-04-03 13:34:42 +02:00
CrazyMax
034a9b2606
LibreNMS 1.50 2019-04-02 00:12:13 +02:00
CrazyMax
e8a67d632f
Linguist 2019-03-20 00:19:34 +01:00
CrazyMax
a511cb1953
Upgrade to LibreNMS 1.49 2019-03-06 02:37:50 +01:00
CrazyMax
23611c44ae
Merge pull request #19 from k0a1a/patch-1
use utf8 charset and collation in mariadb
2019-02-12 19:54:44 +01:00
Danja Vasiliev
9edf8d11a3
use utf8 charset and collation in mariandb
use utf8 charset and collation in mariandb in order to prevent FAIL message on /validate page
2019-02-12 00:50:00 +01:00
CrazyMax
ef409c8a03
Upgrade to LibreNMS 1.48.1
Alpine Linux 3.9
2019-01-31 20:25:25 +01:00
CrazyMax
9a16c32fa3
Upgrade to LibreNMS 1.48 2019-01-28 19:07:53 +01:00
CrazyMax
ca16ae895b
Fix vcs ref 2019-01-18 00:53:30 +01:00
CrazyMax
648aab4497
Update instructions (Issue #11) 2019-01-06 23:57:24 +01:00
CrazyMax
0e25067138
New year 2019-01-06 23:56:58 +01:00
CrazyMax
4da1d9d0b7
Upgrade to LibreNMS 1.47 2018-12-30 16:56:37 +01:00
CrazyMax
72e623be89
Update CHANGELOG 2018-12-29 16:06:50 +01:00
CrazyMax
ca1f2de88b
Update README 2018-12-29 16:06:32 +01:00
CrazyMax
750260e05f
Update build script 2018-12-29 16:06:05 +01:00
CrazyMax
bb6d4365e3
Merge pull request #10 from jsenecal/patch-1
Fix for missing python-memcached on python2
2018-12-29 16:03:07 +01:00
Jonathan Senecal
54186fb3ee
Fix for missing python-memcached on python2
This is a fix for changes introduced in commit 513ec328e4 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
2018-12-27 12:36:59 -05:00
CrazyMax
9ef067c1aa
Fix #8 2018-12-20 20:59:12 +01:00
CrazyMax
849713e691
Update CHANGELOG 2018-12-14 14:39:08 +01:00
CrazyMax
513ec328e4
Add Python3 (Issue #7) 2018-12-14 14:38:17 +01:00
CrazyMax
b5d1ddbbe2
Update build script 2018-12-14 14:27:02 +01:00
CrazyMax
07f4d778d8
Coding style 2018-12-14 14:26:39 +01:00
CrazyMax
c49f850be0
Update CHANGELOG 2018-12-02 22:43:20 +01:00
CrazyMax
29e944b897
Update travis build 2018-12-02 22:42:47 +01:00
CrazyMax
83237bcb6c
Update travis build 2018-12-02 22:42:40 +01:00
CrazyMax
61485e9e3f
Typo 2018-12-02 22:41:39 +01:00
CrazyMax
93bec093c9
Update travis 2018-11-25 20:47:50 +01:00
CrazyMax
0750f30865
Typo 2018-11-25 07:33:11 +01:00
CrazyMax
226b8495b6
Update CHANGELOG 2018-11-25 07:12:53 +01:00
CrazyMax
3f433e2d2f
Optimize layers 2018-11-25 07:12:25 +01:00
CrazyMax
b455610746
Fix dbcmd in entrypoint 2018-11-25 07:01:18 +01:00
CrazyMax
c2f269e19e
Update CHANGELOG 2018-11-21 21:00:46 +01:00
CrazyMax
2ed2b7639b
Merge pull request #5 from shamsway/master
Add php7-ldap
2018-11-21 20:57:56 +01:00
Matt Elliott
952f0ca7f1
Update Dockerfile
Remove musl and libldap
2018-11-21 13:13:04 -05:00
CrazyMax
8fb36fbb16
Coding style 2018-11-18 17:08:50 +01:00
CrazyMax
f393bec0cc
Codacy 2018-11-18 17:08:10 +01:00
Matt Elliott
33ed56acca
Add php7-ldap 2018-11-13 15:53:26 -08:00
CrazyMax
c86ef44695
Merge pull request #2 from librenms/laf-patch-1
Updated to 1.45
2018-10-29 02:11:25 +01:00
Neil Lathwood
cbc5144290
Update Dockerfile 2018-10-28 23:07:23 +00:00
Neil Lathwood
73d1ac1e43
Update CHANGELOG.md 2018-10-28 23:06:55 +00:00
Neil Lathwood
5a7a17dc2b
Update .travis.yml 2018-10-28 23:06:24 +00:00
CrazyMax
758814586e
Add MicroBadger hook 2018-10-23 10:41:04 +02:00
CrazyMax
bb201eeb32
Update since migration to LibreNMS organization 2018-10-23 10:30:19 +02:00
CrazyMax
b79a632064
Update PHP extensions 2018-10-17 15:05:51 +02:00
CrazyMax
6173a6ccd9
Merge pull request #8 from crazy-max/develop
Upgrade to LibreNMS 1.44
2018-10-17 15:00:33 +02:00
CrazyMax
d2f94c7368
Upgrade to LibreNMS 1.44
Add busybox-extras and bind-tools packages
2018-10-17 14:59:20 +02:00
CrazyMax
75a29d365c
Merge pull request #6 from crazy-max/develop
Update compose config
2018-10-04 13:40:42 +02:00
CrazyMax
d126d5bbfa
Update compose config 2018-10-04 13:39:23 +02:00
CrazyMax
40db93e32f
Replace Nagios with Monitoring Plugins 2018-09-29 05:00:56 +02:00
CrazyMax
645f76d350
Small typo 2018-09-29 04:01:33 +02:00
CrazyMax
4cf15d866d
Typo 2018-09-29 03:56:22 +02:00
CrazyMax
2dd37e345c
Update README 2018-09-29 03:51:42 +02:00
CrazyMax
23c4d47f1d
Check if nagios plugin executable 2018-09-29 03:49:38 +02:00
CrazyMax
e1bbb37f2d
Typo 2018-09-29 03:44:58 +02:00
CrazyMax
486e371fd4
Ability to add custom nagios plugins through /data/nagios-plugins
Install official nagios-plugins package
Services enabled by default
2018-09-29 03:38:09 +02:00
CrazyMax
e53856e09f
Update CHANGELOG 2018-09-26 01:11:56 +02:00
CrazyMax
76a68aa562
Merge pull request #5 from laf/patch-1
Added ttf-dejavu to Dockerfile
2018-09-26 01:09:02 +02:00
Neil Lathwood
8798b73934
Added ttf-dejavu to Dockerfile
Fixes: #4
2018-09-25 21:50:34 +01:00
CrazyMax
6bd6385a10
Set default port for MEMCACHED_PORT and RRDCACHED_PORT 2018-09-24 23:15:47 +02:00
64 changed files with 2615 additions and 868 deletions

View file

@ -1,13 +0,0 @@
/.dev
/.idea
/*.iml
/.git
/.res
/examples
/.editorconfig
/.gitignore
/.travis.yml
/CHANGELOG.md
/LICENSE
/README.md

View file

@ -3,16 +3,13 @@ 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/**]
[rootfs/**]
insert_final_newline = false
[*.md]

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
/*.sh linguist-detectable=false
/rootfs/** linguist-detectable=false

1
.github/CODEOWNERS vendored Normal file
View file

@ -0,0 +1 @@
* @crazy-max

2
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,2 @@
github: crazy-max
custom: https://www.paypal.me/crazyws

91
.github/ISSUE_TEMPLATE/bug.yml vendored Normal file
View file

@ -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.

6
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View file

@ -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.

15
.github/ISSUE_TEMPLATE/feature.yml vendored Normal file
View file

@ -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

29
.github/SUPPORT.md vendored Normal file
View file

@ -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.

View file

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Before After
Before After

73
.github/labels.yml vendored Normal file
View file

@ -0,0 +1,73 @@
## more info https://github.com/crazy-max/ghaction-github-labeler
-
name: "bot"
color: "69cde9"
description: ""
-
name: "good first issue"
color: "7057ff"
description: ""
-
name: "help wanted"
color: "4caf50"
description: ""
-
name: "area/ci"
color: "ed9ca9"
description: ""
-
name: "area/dockerfile"
color: "03a9f4"
description: ""
-
name: "kind/bug"
color: "b60205"
description: ""
-
name: "kind/dependencies"
color: "0366d6"
description: ""
-
name: "kind/docs"
color: "c5def5"
description: ""
-
name: "kind/duplicate"
color: "cccccc"
description: ""
-
name: "kind/enhancement"
color: "0054ca"
description: ""
-
name: "kind/invalid"
color: "e6e6e6"
description: ""
-
name: "kind/upstream"
color: "fbca04"
description: ""
-
name: "kind/wontfix"
color: "ffffff"
description: ""
-
name: "status/automerge"
color: "8f4fbc"
description: ""
-
name: "status/needs-investigation"
color: "e6625b"
description: ""
-
name: "status/needs-more-info"
color: "795548"
description: ""
-
name: "status/stale"
color: "237da0"
description: ""
-
name: "status/triage"
color: "dde4b7"
description: ""

16
.github/renovate.json vendored Normal file
View file

@ -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=(?<datasource>[a-z-]+?)(?: depName=(?<depName>.+?))? packageName=(?<packageName>.+?)(?: versioning=(?<versioning>[a-z-]+?))?\\s(?:ENV|ARG) .+?_VERSION=\"(?<currentValue>.+?)\"\\s"
]
}
]
}

77
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,77 @@
name: build
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:
- 'master'
tags:
- '*'
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
env:
DOCKERHUB_SLUG: librenms/librenms
jobs:
build:
runs-on: ubuntu-latest
steps:
-
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
uses: docker/metadata-action@v5
with:
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=LibreNMS
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Build
uses: docker/bake-action@v6
with:
files: |
./docker-bake.hcl
cwd://${{ 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.meta.outputs.version }}
-
name: Inspect
if: github.event_name != 'pull_request'
run: |
docker pull ${{ env.DOCKERHUB_SLUG }}:${{ steps.meta.outputs.version }}
docker image inspect ${{ env.DOCKERHUB_SLUG }}:${{ steps.meta.outputs.version }}

39
.github/workflows/labels.yml vendored Normal file
View file

@ -0,0 +1,39 @@
name: labels
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:
- 'master'
paths:
- '.github/labels.yml'
- '.github/workflows/labels.yml'
pull_request:
paths:
- '.github/labels.yml'
- '.github/workflows/labels.yml'
jobs:
labeler:
runs-on: ubuntu-latest
permissions:
# same as global permissions
contents: read
# required to update labels
issues: write
steps:
-
name: Checkout
uses: actions/checkout@v6
-
name: Run Labeler
uses: crazy-max/ghaction-github-labeler@v5
with:
dry-run: ${{ github.event_name == 'pull_request' }}

81
.github/workflows/test.yml vendored Normal file
View file

@ -0,0 +1,81 @@
name: test
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:
- 'master'
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
env:
BUILD_TAG: librenms:test
CONTAINER_NAME: librenms
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@v6
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
-
name: Build
uses: docker/bake-action@v6
with:
source: .
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: 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
working-directory: test
env:
LIBRENMS_IMAGE: ${{ env.BUILD_TAG }}
LIBRENMS_CONTAINER: ${{ env.CONTAINER_NAME }}

9
.gitignore vendored
View file

@ -1,9 +0,0 @@
# Jetbrains
/.idea
/*.iml
# Visual Studio Code
/.vscode
# App
/.dev

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

View file

@ -1,62 +0,0 @@
sudo: required
services:
- docker
env:
global:
- VERSION=1.43
- GITHUB_REPO=crazy-max/docker-librenms
- DOCKER_USERNAME=crazymax
- DOCKER_REPONAME=librenms
- QUAY_USERNAME=crazymax
- 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
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_USERNAME/$DOCKER_REPONAME .
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
- sleep 20
- docker logs $DOCKER_REPONAME
script:
- docker ps | grep $DOCKER_REPONAME
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 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 push quay.io/$QUAY_USERNAME/$QUAY_REPONAME \
&& curl -X POST $MICROBADGER_HOOK
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=

View file

@ -1,30 +0,0 @@
# 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
## 1.42.01-RC1 (2018/08/05)
* Upgrade to LibreNMS 1.42.01
## 1.42-RC1 (2018/08/02)
* Upgrade to LibreNMS 1.42
* Add syslog-ng support
## 1.41-RC1 (2018/07/07)
* Initial version based on LibreNMS 1.41

View file

@ -1,111 +1,147 @@
FROM alpine:3.8
# syntax=docker/dockerfile:1
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 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.vcs-ref=$VCS_REF \
org.label-schema.vcs-url="https://github.com/crazy-max/docker-librenms" \
org.label-schema.vendor="CrazyMax" \
org.label-schema.schema-version="1.0"
# renovate: datasource=github-releases packageName=librenms/librenms versioning=semver
ARG LIBRENMS_VERSION="26.1.1"
ARG ALPINE_VERSION="3.22"
ARG SYSLOGNG_VERSION="4.8.3-r1"
FROM crazymax/yasu:latest AS yasu
FROM crazymax/alpine-s6:${ALPINE_VERSION}-2.2.0.3
COPY --from=yasu / /
RUN apk --update --no-cache add \
busybox-extras \
acl \
bash \
bind-tools \
binutils \
ca-certificates \
coreutils \
curl \
file \
fping \
git \
graphviz \
imagemagick \
ipmitool \
iputils \
libcap-utils \
mariadb-client \
monitoring-plugins \
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 \
openssh-client \
perl \
php83 \
php83-cli \
php83-ctype \
php83-curl \
php83-dom \
php83-fileinfo \
php83-fpm \
php83-gd \
php83-gmp \
php83-iconv \
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-xmlwriter \
php83-zip \
python3 \
py3-pip \
rrdtool \
runit \
sed \
shadow \
supervisor \
syslog-ng \
tzdata \
ttf-dejavu \
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/* \
&& apk --update --no-cache add -t build-dependencies \
build-base \
make \
mariadb-dev \
musl-dev \
python3-dev \
&& 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/* \
&& 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/fping \
&& 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 LIBRENMS_VERSION="1.43" \
ARG SYSLOGNG_VERSION
RUN apk --update --no-cache add syslog-ng=${SYSLOGNG_VERSION}
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS="2" \
LIBRENMS_PATH="/opt/librenms" \
DATA_PATH="/data" \
CRONTAB_PATH="/var/spool/cron/crontabs"
LIBRENMS_DOCKER="1" \
TZ="UTC" \
PUID="1000" \
PGID="1000"
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 -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 -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/*
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
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
EXPOSE 80 514 514/udp
WORKDIR ${LIBRENMS_PATH}
VOLUME [ "${DATA_PATH}" ]
ARG LIBRENMS_VERSION
ARG WEATHERMAP_PLUGIN_COMMIT
RUN apk --update --no-cache add -t build-dependencies \
build-base \
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 --break-system-packages \
&& 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 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 \
doc/ \
tests/ \
/tmp/*
ENTRYPOINT [ "/entrypoint.sh" ]
CMD [ "/usr/bin/supervisord", "-c", "/etc/supervisord.conf" ]
COPY rootfs /
EXPOSE 8000 514 514/udp 162 162/udp
VOLUME [ "/data" ]
ENTRYPOINT [ "/init" ]

View file

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2018 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

488
README.md
View file

@ -1,114 +1,294 @@
<p align="center"><a href="https://github.com/crazy-max/docker-librenms" target="_blank"><img height="128"src="https://raw.githubusercontent.com/crazy-max/docker-librenms/master/.res/docker-librenms.jpg"></a></p>
<p align="center"><a href="https://github.com/librenms/docker" target="_blank"><img height="128" src="https://raw.githubusercontent.com/librenms/docker/master/.github/docker-librenms.jpg"></a></p>
<p align="center">
<a href="https://microbadger.com/images/crazymax/librenms"><img src="https://images.microbadger.com/badges/version/crazymax/librenms.svg?style=flat-square" alt="Version"></a>
<a href="https://travis-ci.org/crazy-max/docker-librenms"><img src="https://img.shields.io/travis/crazy-max/docker-librenms/master.svg?style=flat-square" alt="Build Status"></a>
<a href="https://hub.docker.com/r/crazymax/librenms/"><img src="https://img.shields.io/docker/stars/crazymax/librenms.svg?style=flat-square" alt="Docker Stars"></a>
<a href="https://hub.docker.com/r/crazymax/librenms/"><img src="https://img.shields.io/docker/pulls/crazymax/librenms.svg?style=flat-square" alt="Docker Pulls"></a>
<a href="https://quay.io/repository/crazymax/librenms"><img src="https://quay.io/repository/crazymax/librenms/status?style=flat-square" alt="Docker Repository on Quay"></a>
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=962TPYQKMQ2UE"><img src="https://img.shields.io/badge/donate-paypal-7057ff.svg?style=flat-square" alt="Donate Paypal"></a>
<a href="https://hub.docker.com/r/librenms/librenms/tags?page=1&ordering=last_updated"><img src="https://img.shields.io/github/v/tag/librenms/docker?label=version&style=flat-square" alt="Latest Version"></a>
<a href="https://github.com/librenms/docker/actions?workflow=build"><img src="https://img.shields.io/github/actions/workflow/status/librenms/docker/build.yml?branch=master&label=build&logo=github&style=flat-square" alt="Build Status"></a>
<a href="https://hub.docker.com/r/librenms/librenms/"><img src="https://img.shields.io/docker/stars/librenms/librenms.svg?style=flat-square&logo=docker" alt="Docker Stars"></a>
<a href="https://hub.docker.com/r/librenms/librenms/"><img src="https://img.shields.io/docker/pulls/librenms/librenms.svg?style=flat-square&logo=docker" alt="Docker Pulls"></a>
<br /><a href="https://github.com/sponsors/crazy-max"><img src="https://img.shields.io/badge/sponsor-crazy--max-181717.svg?logo=github&style=flat-square" alt="Become a sponsor"></a>
<a href="https://www.paypal.me/crazyws"><img src="https://img.shields.io/badge/donate-paypal-00457c.svg?logo=paypal&style=flat-square" alt="Donate Paypal"></a>
</p>
## About
🐳 [LibreNMS](https://www.librenms.org/) Docker image based on Alpine Linux and Nginx.<br />
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.
> [!TIP]
> Want to be notified of new releases? Check out 🔔 [Diun (Docker Image Update Notifier)](https://github.com/crazy-max/diun)
> project!
___
* [Features](#features)
* [Demo](#demo)
* [Build locally](#build-locally)
* [Image](#image)
* [Environment variables](#environment-variables)
* [General](#general)
* [Redis](#redis)
* [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)
* [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)
* [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
### Included
* Alpine Linux 3.8, Nginx, PHP 7.2
* Cron tasks as a ["sidecar" container](#cron)
* Run as non-root user
* Multi-platform image
* [Dispatcher service](#dispatcher-service) as "sidecar" container
* Syslog-ng support through a ["sidecar" container](#syslog-ng)
* Snmp-trap support through a ["sidecar" container](#snmptrapd)
* Ability to add custom Monitoring plugins
* Ability to add custom alert templates
* 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
* [Postfix SMTP relay](https://github.com/juanluisbaptiste/docker-postfix) image to send emails
* [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))
* [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
* Cron jobs as a ["sidecar" container](#cron)
* Syslog-ng support through a ["sidecar" container](#syslog-ng)
## Docker
## Demo
### Environment variables
[![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)
* `TZ` : The timezone assigned to the container (default `UTC`)
* `PUID` : LibreNMS user id (default `1000`)
## Build locally
```console
$ git clone https://github.com/librenms/docker.git docker-librenms
$ cd docker-librenms
# Build image and output to docker (default)
$ docker buildx bake
# Build multi-platform image
$ docker buildx bake image-all
```
## Image
Following platforms for this image are available:
```
$ docker buildx imagetools inspect librenms/librenms --format "{{json .Manifest}}" | \
jq -r '.manifests[] | select(.platform.os != null and .platform.os != "unknown") | .platform | "\(.os)/\(.architecture)\(if .variant then "/" + .variant else "" end)"'
linux/386
linux/amd64
linux/arm/v7
linux/arm64
linux/ppc64le
linux/s390x
```
## Environment variables
### General
* `TZ`: The timezone assigned to the container (default `UTC`)
* `PUID`: LibreNMS user id (default `1000`)
* `PGID`: LibreNMS group id (default `1000`)
* `MEMORY_LIMIT` : PHP memory limit (default `256M`)
* `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_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 (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
* `RRDCACHED_PORT` : Port of the RRDcached server
* `MEMORY_LIMIT`: PHP memory limit (default `256M`)
* `MAX_INPUT_VARS`: PHP max input vars (default `1000`)
* `UPLOAD_MAX_SIZE`: Upload max size (default `16M`)
* `CLEAR_ENV`: Clear environment in FPM workers (default `yes`)
* `FPM_PM_MAX_CHILDREN`: FPM max Children (default: `15`)
* `FPM_PM_START_SERVERS`: FPM start servers (default: `2`)
* `FPM_PM_MIN_SPARE_SERVERS`: FPM min spare servers (default: `1`)
* `FPM_PM_MAX_SPARE_SERVERS`: FPM max spare servers (default: `6`)
* `OPCACHE_MEM_SIZE`: PHP OpCache memory consumption (default `128`)
* `LISTEN_IPV6`: Enable IPv6 for Nginx (default `true`)
* `REAL_IP_FROM`: Trusted addresses that are known to send correct replacement addresses (default `0.0.0.0/32`)
* `REAL_IP_HEADER`: Request header field whose value will be used to replace the client address (default `X-Forwarded-For`)
* `LOG_IP_VAR`: Use another variable to retrieve the remote IP address for access [log_format](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`)
### Volumes
### Redis
* `/data` : Contains configuration, rrd database, logs, additional syslog-ng config files
> [!NOTE]
> Redis variables should be set on all containers and are required when running
> more than one dispatcher.
### Ports
* `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`)
* `80` : HTTP port
### Dispatcher service
## Use this image
> [!WARNING]
> 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
* `DISPATCHER_ARGS`: Additional args to pass to the [dispatcher service](https://github.com/librenms/librenms/blob/master/librenms-service.py)
### 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`)
* `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
* `DB_HOST`: MySQL database hostname / IP address
* `DB_PORT`: MySQL database port (default `3306`)
* `DB_NAME`: MySQL database name (default `librenms`)
* `DB_USER`: MySQL user (default `librenms`)
* `DB_PASSWORD`: MySQL password (default `librenms`)
* `DB_TIMEOUT`: Time in seconds after which we stop trying to reach the MySQL server (useful for clusters, default `60`)
### Misc
* `LIBRENMS_BASE_URL`: URL of your LibreNMS instance (default `/`)
* `LIBRENMS_SNMP_COMMUNITY`: This container's SNMP v2c community string (default `librenmsdocker`)
* `MEMCACHED_HOST`: Hostname / IP address of a Memcached server
* `MEMCACHED_PORT`: Port of the Memcached server (default `11211`)
* `RRDCACHED_SERVER`: RRDcached server (eg. `rrdcached:42217`)
## Volumes
* `/data`: Contains configuration, plugins, rrd database, logs, additional Monitoring plugins, additional syslog-ng config files
> [!WARNING]
> Note that the volume should be owned by the user/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 :
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
```console
$ docker compose up -d
$ docker compose logs -f
```
### Command line
You can also use the following minimal command :
You can also use the following minimal command:
```bash
docker run -d -p 80:80 --name librenms \
```console
$ docker run -d -p 8000:8000 --name librenms \
-v $(pwd)/data:/data \
-e "DB_HOST=db" \
crazymax/librenms:latest
librenms/librenms:latest
```
> `-e "DB_HOST=db"`<br />
> :warning: `db` must be a running MySQL instance
> [!WARNING]
> `db` must be a running MySQL instance.
## Notes
### First launch
### Edit configuration
When you first access the webui, you will be prompted to create an admin user.
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 :
> [!NOTE]
> If you lose access, 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
```
## Configuration Management
### Initial Configuration
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
<?php
@ -116,112 +296,140 @@ $config['page_refresh'] = "300";
$config['webui']['default_dashboard_id'] = 0;
```
This configuration will be included in LibreNMS and will override the default values.
## Notes
### Add user
### LNMS command
On first launch, an initial administrator user will be created :
If you want to use the `lnms` command to perform common server operations like
manage users, database migration, and more, type:
| Login | Password |
|------------|------------|
| `librenms` | `librenms` |
You can create an other user using the commande line :
```text
$ docker exec -it --user librenms librenms php adduser.php <name> <pass> 10 <email>
```console
$ docker compose exec librenms lnms
```
> :warning: Substitute your desired username `<name>`, password `<pass>` and email address `<email>`
### 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 exec -it --user librenms librenms php validate.php
```console
$ 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.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
====================================
[OK] Composer Version: 1.6.5
[OK] Dependencies up-to-date.
[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
[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.
[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] Updates are managed through the official Docker image
```
### Update database
### Dispatcher service container
To update the database manually, type the following command :
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
[compose.yml](examples/compose/compose.yml) example) or run a simple container
like this:
```bash
$ docker exec -it --user librenms librenms php build-base.php
```
### Cron
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 :
```bash
docker run -d --name librenms-cron \
```console
$ docker run -d --name librenms_dispatcher \
--env-file $(pwd)/librenms.env \
-e SIDECAR_DISPATCHER=1 \
-e DISPATCHER_NODE_ID=dispatcher1 \
-v librenms:/data \
crazymax/librenms:latest /usr/local/bin/cron
librenms/librenms:latest
```
> `-v librenms:/data`<br />
> :warning: `librenms` must be a valid volume already attached to a LibreNMS container
> [!WARNING]
> `librenms` must be a valid volume already attached to a LibreNMS container.
### Syslog-ng
### Syslog-ng container
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 [compose.yml](examples/compose/compose.yml) example) or
run a simple container like this:
```bash
docker run -d --name librenms-syslog-ng \
```console
$ docker run -d --name librenms_syslog \
--env-file $(pwd)/librenms.env \
-e SIDECAR_SYSLOGNG=1 \
-p 514 -p 514/udp \
-v librenms:/data \
crazymax/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 :
> [!WARNING]
> `librenms` must be a valid volume already attached to a LibreNMS container.
```php
<?php
$config['enable_syslog'] = 1;
You have to create a configuration file to enable syslog in LibreNMS too. Create
a file called for example `/data/config/syslog.yaml` with this content :
```yaml
enable_syslog: true
```
## Upgrade
### Snmptrapd container
To upgrade to the latest version of LibreNMS, pull the newer image and launch the container. LibreNMS will upgrade automatically :
If you want to enable snmptrapd, you have to run a "sidecar" container (see
snmptrapd service in [compose.yml](examples/compose/compose.yml) example) or
run a simple container like this:
```bash
docker-compose pull
docker-compose up -d
```console
$ 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
```
## How can I help ?
> [!WARNING]
> `librenms` must be a valid volume already attached to a LibreNMS container.
All kinds of contributions are welcome :raised_hands:!<br />
The most basic way to show your support is to star :star2: the project, or to raise issues :speech_balloon:<br />
But we're not gonna lie to each other, I'd rather you buy me a beer or two :beers:!
### Add a LibreNMS plugin
[![Paypal](.res/paypal.png)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=962TPYQKMQ2UE)
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.
> [!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
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:
## License

View file

@ -1,21 +0,0 @@
[supervisord]
nodaemon = true
user = root
logfile = /var/log/supervisord/supervisord.log
pidfile = /var/run/supervisord.pid
childlogdir = /var/log/supervisord/
logfile_maxbytes = 50MB
logfile_backups = 10
loglevel = info
[supervisorctl]
serverurl = unix:///var/run/supervisor.sock
[unix_http_server]
file = /var/run/supervisor.sock
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[include]
files = /etc/supervisord/*.conf

View file

@ -1,8 +0,0 @@
[program:nginx]
command = /usr/sbin/nginx
stdout_logfile = /dev/stdout
stdout_logfile_maxbytes = 0
stderr_logfile = /dev/stderr
stderr_logfile_maxbytes = 0
autorestart = false
startentries = 0

View file

@ -1,8 +0,0 @@
[program:php]
command = /usr/sbin/php-fpm7
stdout_logfile = /dev/stdout
stdout_logfile_maxbytes = 0
stderr_logfile = /dev/stderr
stderr_logfile_maxbytes = 0
autorestart = false
startentries = 0

View file

@ -1,7 +0,0 @@
[program:snmpd]
command = /usr/sbin/snmpd -f -c /etc/snmpd.conf
startentries = 0
stdout_logfile = /proc/1/fd/1
stdout_logfile_maxbytes = 0
stderr_logfile = /proc/1/fd/2
stderr_logfile_maxbytes = 0

View file

@ -1,28 +0,0 @@
[global]
daemonize = no
error_log = /proc/self/fd/2
[www]
user = librenms
group = librenms
listen = /run/php-fpm7.sock
listen.owner = librenms
listen.group = librenms
pm = dynamic
pm.max_children = 15
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 6
request_terminate_timeout = 0
; if we send this to /proc/self/fd/1, it never appears
access.log = /proc/self/fd/2
php_admin_value[post_max_size] = @UPLOAD_MAX_SIZE@
php_admin_value[upload_max_filesize] = @UPLOAD_MAX_SIZE@
php_admin_value[max_execution_time] = 10800
php_admin_value[max_input_time] = 3600
php_admin_value[expose_php] = Off
php_admin_value[memory_limit] = @MEMORY_LIMIT@

View file

@ -1,5 +0,0 @@
#!/bin/sh
set -e
exec busybox crond -f -L /dev/stdout

40
docker-bake.hcl Normal file
View file

@ -0,0 +1,40 @@
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
group "default" {
targets = ["image-local"]
}
target "image" {
inherits = ["docker-metadata-action"]
}
target "image-local" {
inherits = ["image"]
output = ["type=docker"]
}
target "image-all" {
inherits = ["image"]
platforms = [
"linux/amd64",
"linux/arm/v7",
"linux/arm64",
"linux/386",
"linux/s390x"
]
}

View file

@ -1,287 +0,0 @@
#!/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"}
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:-"${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}
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"}
# 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"
}
# 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 \
# Change librenms UID / GID
echo "Checking if librenms UID / GID has changed..."
if [ $(id -u librenms) != ${PUID} ]; then
usermod -u ${PUID} librenms
fi
if [ $(id -g librenms) != ${PGID} ]; then
groupmod -g ${PGID} librenms
fi
# PHP
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
# 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
# Nginx
echo "Setting Nginx configuration..."
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'
sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.conf
# Init files and folders
echo "Initializing LibreNMS files / folders..."
mkdir -p ${DATA_PATH}/config \
${DATA_PATH}/logs \
${DATA_PATH}/rrd
rm -f ${LIBRENMS_PATH}/config.d/*
echo "Setting LibreNMS configuration..."
# Config : Directories
cat > ${LIBRENMS_PATH}/config.d/directories.php <<EOL
<?php
\$config['install_dir'] = '${LIBRENMS_PATH}';
\$config['log_dir'] = '${DATA_PATH}/logs';
\$config['rrd_dir'] = '${DATA_PATH}/rrd';
EOL
# Config : Database
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 <<EOL
<?php
\$config['db_host'] = '${DB_HOST}';
\$config['db_port'] = ${DB_PORT};
\$config['db_user'] = '${DB_USER}';
\$config['db_pass'] = '${DB_PASSWORD}';
\$config['db_name'] = '${DB_NAME}';
EOL
dbcmd="mysql -h ${DB_HOST} -P ${DB_PORT} -u "${DB_USER}" "-p${DB_PASSWORD}""
unset DB_PASSWORD
# Config : User
cat > ${LIBRENMS_PATH}/config.d/user.php <<EOL
<?php
\$config['user'] = "librenms";
EOL
# Config : Fping
echo "/usr/sbin/fping -6 \$@" > /usr/sbin/fping6
chmod +x /usr/sbin/fping6
cat > ${LIBRENMS_PATH}/config.d/fping.php <<EOL
<?php
\$config['fping'] = "/usr/sbin/fping";
\$config['fping6'] = "/usr/sbin/fping6";
EOL
# Config : Disable autoupdate
cat > ${LIBRENMS_PATH}/config.d/autoupdate.php <<EOL
<?php
\$config['update'] = 0;
EOL
# Config : Memcached
if [ ! -z "${MEMCACHED_HOST}" ]; then
cat > ${LIBRENMS_PATH}/config.d/memcached.php <<EOL
<?php
\$config['memcached']['enable'] = true;
\$config['memcached']['host'] = '$MEMCACHED_HOST';
\$config['memcached']['port'] = $MEMCACHED_PORT;
EOL
fi
# Config : RRDcached
if [ ! -z "${RRDCACHED_HOST}" ]; then
cat > ${LIBRENMS_PATH}/config.d/rrdcached.php <<EOL
<?php
\$config['rrdcached'] = "${RRDCACHED_HOST}:${RRDCACHED_PORT}";
\$config['rrdtool_version'] = '1.7.0';
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 <<EOL
<?php
\$config['distributed_poller'] = true;
\$config['distributed_poller_name'] = '$LIBRENMS_DISTRIBUTED_POLLER_NAME';
\$config['distributed_poller_group'] = '$LIBRENMS_DISTRIBUTED_POLLER_GROUP';
\$config['distributed_poller_memcached_host'] = '$LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_HOST';
\$config['distributed_poller_memcached_port'] = $LIBRENMS_DISTRIBUTED_POLLER_MEMCACHED_PORT;
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 ">>"
echo ">> Sidecar cron container detected"
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
# 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 <<EOL
*/${LIBRENMS_POLLER_INTERVAL} * * * * /opt/librenms/cronic /opt/librenms/poller-wrapper.py ${LIBRENMS_POLLER_THREADS}
EOL
fi
# Fix crontab perms
echo "Fixing crontab permissions..."
chmod -R 0644 ${CRONTAB_PATH}
elif [ "$1" == "/usr/sbin/syslog-ng" ]; then
echo ">>"
echo ">> Sidecar syslog-ng container detected"
echo ">>"
# Init
mkdir -p ${DATA_PATH}/syslog-ng /run/syslog-ng
chown -R librenms. ${DATA_PATH}/syslog-ng /run/syslog-ng
else
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 ${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 "$@"

7
examples/compose/.env Normal file
View file

@ -0,0 +1,7 @@
TZ=Europe/Paris
PUID=1000
PGID=1000
MYSQL_DATABASE=librenms
MYSQL_USER=librenms
MYSQL_PASSWORD=asupersecretpassword

View file

@ -0,0 +1,158 @@
name: librenms
services:
db:
image: mariadb:10
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:
- "./db:/var/lib/mysql"
environment:
- "TZ=${TZ}"
- "MARIADB_RANDOM_ROOT_PASSWORD=yes"
- "MYSQL_DATABASE=${MYSQL_DATABASE}"
- "MYSQL_USER=${MYSQL_USER}"
- "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
restart: always
redis:
image: redis:7.2-alpine
container_name: librenms_redis
environment:
- "TZ=${TZ}"
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
cap_add:
- NET_ADMIN
- NET_RAW
ports:
- target: 8000
published: 8000
protocol: tcp
depends_on:
- db
- redis
- 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
cap_add:
- NET_ADMIN
- NET_RAW
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"
- "SIDECAR_DISPATCHER=1"
restart: always
syslogng:
image: librenms/librenms:latest
container_name: librenms_syslogng
hostname: librenms-syslogng
cap_add:
- NET_ADMIN
- NET_RAW
depends_on:
- librenms
- redis
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
snmptrapd:
image: librenms/librenms:latest
container_name: librenms_snmptrapd
hostname: librenms-snmptrapd
cap_add:
- NET_ADMIN
- NET_RAW
depends_on:
- librenms
- redis
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_SNMPTRAPD=1"
restart: always

View file

@ -1,134 +0,0 @@
version: "3.2"
services:
traefik:
image: traefik:1.6-alpine
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
command:
- "mysqld"
- "--sql-mode="
- "--innodb-file-per-table=1"
- "--lower-case-table-names=0"
volumes:
- "./db:/var/lib/mysql"
environment:
- "TZ=Europe/Paris"
- "MYSQL_ALLOW_EMPTY_PASSWORD=yes"
- "MYSQL_DATABASE=librenms"
- "MYSQL_USER=librenms"
- "MYSQL_PASSWORD=asupersecretpassword"
restart: always
memcached:
image: memcached:alpine
environment:
- "TZ=Europe/Paris"
restart: always
rrdcached:
image: crazymax/rrdcached
volumes:
- "./librenms/rrd:/data/db"
- "./rrd-journal:/data/journal"
environment:
- "TZ=Europe/Paris"
- "PUID=1000"
- "PGID=1000"
- "LOG_LEVEL=LOG_INFO"
- "WRITE_TIMEOUT=1800"
- "WRITE_JITTER=1800"
- "WRITE_THREADS=4"
- "FLUSH_DEAD_DATA_INTERVAL=3600"
restart: always
smtp:
image: juanluisbaptiste/postfix
volumes:
- "/etc/localtime:/etc/localtime:ro"
environment:
- "SERVER_HOSTNAME=librenms.example.com"
- "SMTP_SERVER=smtp.example.com"
- "SMTP_USERNAME=smtp@example.com"
- "SMTP_PASSWORD="
restart: always
app:
image: crazymax/librenms:latest
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"
env_file:
- "./librenms.env"
restart: always
cron:
image: crazymax/librenms:latest
command:
- "/usr/local/bin/cron"
depends_on:
- app
volumes:
- "./librenms:/data"
env_file:
- "./librenms.env"
restart: always
syslog-ng:
image: crazymax/librenms:latest
command:
- "/usr/sbin/syslog-ng"
- "-F"
depends_on:
- app
ports:
- target: 514
published: 514
protocol: tcp
- target: 514
published: 514
protocol: udp
volumes:
- "./librenms:/data"
env_file:
- "./librenms.env"
restart: always

View file

@ -1,16 +1,16 @@
TZ=Europe/Paris
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
CACHE_DRIVER=redis
SESSION_DRIVER=redis
REDIS_HOST=redis
LIBRENMS_POLLER_THREADS=16
LIBRENMS_SNMP_COMMUNITY=librenmsdocker
DB_HOST=db
DB_NAME=librenms
DB_USER=librenms
DB_PASSWORD=asupersecretpassword
MEMCACHED_HOST=memcached
RRDCACHED_HOST=rrdcached
LIBRENMS_WEATHERMAP=false
LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * *

View file

@ -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

152
examples/pwd/librenms.yml Normal file
View file

@ -0,0 +1,152 @@
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"
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"
CACHE_DRIVER: "redis"
SESSION_DRIVER: "redis"
REDIS_HOST: "redis"
LIBRENMS_SNMP_COMMUNITY: "librenmsdocker"
LIBRENMS_WEATHERMAP: "true"
LIBRENMS_WEATHERMAP_SCHEDULE: "*/5 * * * *"
services:
db:
image: mariadb:10.11
command:
- "mysqld"
- "--innodb-file-per-table=1"
- "--lower-case-table-names=0"
- "--character-set-server=utf8mb4"
- "--collation-server=utf8mb4_unicode_ci"
volumes:
- "db:/var/lib/mysql"
environment:
TZ: *TZ
MARIADB_RANDOM_ROOT_PASSWORD: "yes"
MYSQL_DATABASE: *MYSQL_DATABASE
MYSQL_USER: *MYSQL_USER
MYSQL_PASSWORD: *MYSQL_PASSWORD
restart: always
redis:
image: redis:7.2-alpine
environment:
TZ: *TZ
restart: always
librenms:
image: librenms/librenms:edge
hostname: librenms
cap_add:
- NET_ADMIN
- NET_RAW
ports:
- "8000:8000"
depends_on:
- db
- 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"
restart: always
dispatcher:
image: librenms/librenms:edge
hostname: librenms-dispatcher-1234
cap_add:
- NET_ADMIN
- NET_RAW
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"
DISPATCHER_NODE_ID: "dispatcher1234"
SIDECAR_DISPATCHER: "1"
restart: always
dispatcher2:
image: librenms/librenms:edge
hostname: librenms-dispatcher-5678
cap_add:
- NET_ADMIN
- NET_RAW
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"
DISPATCHER_NODE_ID: "dispatcher5678"
SIDECAR_DISPATCHER: "1"
restart: always
syslogng:
image: librenms/librenms:edge
hostname: librenms-syslogng
cap_add:
- NET_ADMIN
- NET_RAW
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"
SIDECAR_SYSLOGNG: "1"
restart: always
volumes:
db:
librenms:

View file

@ -0,0 +1,7 @@
TZ=Europe/Paris
PUID=1000
PGID=1000
MYSQL_DATABASE=librenms
MYSQL_USER=librenms
MYSQL_PASSWORD=asupersecretpassword

View file

@ -0,0 +1,176 @@
name: librenms
services:
db:
image: mariadb:10
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:
- "./db:/var/lib/mysql"
environment:
- "TZ=${TZ}"
- "MARIADB_RANDOM_ROOT_PASSWORD=yes"
- "MYSQL_DATABASE=${MYSQL_DATABASE}"
- "MYSQL_USER=${MYSQL_USER}"
- "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
restart: always
redis:
image: redis:7.2-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
cap_add:
- NET_ADMIN
- NET_RAW
ports:
- target: 8000
published: 8000
protocol: tcp
depends_on:
- db
- redis
- 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
cap_add:
- NET_ADMIN
- NET_RAW
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"
- "SIDECAR_DISPATCHER=1"
restart: always
syslogng:
image: librenms/librenms:latest
container_name: librenms_syslogng
hostname: librenms-syslogng
cap_add:
- NET_ADMIN
- NET_RAW
depends_on:
- librenms
- redis
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
snmptrapd:
image: librenms/librenms:latest
container_name: librenms_snmptrapd
hostname: librenms-snmptrapd
cap_add:
- NET_ADMIN
- NET_RAW
depends_on:
- librenms
- redis
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_SNMPTRAPD=1"
restart: always

View file

@ -0,0 +1,17 @@
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
CACHE_DRIVER=redis
SESSION_DRIVER=redis
REDIS_HOST=redis
LIBRENMS_SNMP_COMMUNITY=librenmsdocker
RRDCACHED_SERVER=rrdcached:42217
LIBRENMS_WEATHERMAP=false
LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * *

View file

@ -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

7
examples/traefik/.env Normal file
View file

@ -0,0 +1,7 @@
TZ=Europe/Paris
PUID=1000
PGID=1000
MYSQL_DATABASE=librenms
MYSQL_USER=librenms
MYSQL_PASSWORD=asupersecretpassword

View file

@ -0,0 +1,184 @@
name: librenms
services:
traefik:
image: traefik:2.5
container_name: traefik
command:
- "--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
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
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:
- "./db:/var/lib/mysql"
environment:
- "TZ=${TZ}"
- "MARIADB_RANDOM_ROOT_PASSWORD=yes"
- "MYSQL_DATABASE=${MYSQL_DATABASE}"
- "MYSQL_USER=${MYSQL_USER}"
- "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
restart: always
redis:
image: redis:7.2-alpine
container_name: librenms_redis
environment:
- "TZ=${TZ}"
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
depends_on:
- db
- redis
- msmtpd
volumes:
- "./librenms:/data"
labels:
- "traefik.enable=true"
- "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:
- "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"
- "SIDECAR_DISPATCHER=1"
restart: always
syslogng:
image: librenms/librenms:latest
container_name: librenms_syslog
hostname: librenms-syslogng
depends_on:
- librenms
- redis
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
snmptrapd:
image: librenms/librenms:latest
container_name: librenms_snmptrapd
hostname: librenms-snmptrapd
depends_on:
- librenms
- redis
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_SNMPTRAPD=1"
restart: always

View file

@ -0,0 +1,16 @@
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=http_x_forwarded_for
CACHE_DRIVER=redis
SESSION_DRIVER=redis
REDIS_HOST=redis
LIBRENMS_SNMP_COMMUNITY=librenmsdocker
LIBRENMS_WEATHERMAP=false
LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * *

View file

@ -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

View file

@ -0,0 +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

View file

@ -0,0 +1,13 @@
#!/usr/bin/with-contenv sh
# shellcheck shell=sh
set -e
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

View file

@ -0,0 +1,22 @@
#!/usr/bin/with-contenv sh
# shellcheck shell=sh
set -e
echo "Fixing perms..."
mkdir -p /data \
/var/run/nginx \
/var/run/php-fpm
chown librenms:librenms \
/data \
"${LIBRENMS_PATH}" \
"${LIBRENMS_PATH}/.env" \
"${LIBRENMS_PATH}/cache" \
"${LIBRENMS_PATH}/rrd"
chown -R librenms:librenms \
/home/librenms \
/tpls \
/var/lib/nginx \
/var/log/nginx \
/var/log/php83 \
/var/run/nginx \
/var/run/php-fpm

View file

@ -0,0 +1,259 @@
#!/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]
# 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"
}
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"}
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}
DB_PORT=${DB_PORT:-3306}
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
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" \
-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/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/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/php83/conf.d/opcache.ini >/etc/php83/conf.d/opcache.ini
# Nginx
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
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'
sed -i -e "s/RANDOMSTRINGGOESHERE/${LIBRENMS_SNMP_COMMUNITY}/" /etc/snmp/snmpd.conf
# 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
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
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
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/*
mkdir -p /etc/logrotate.d
touch /etc/logrotate.d/librenms
echo "Setting LibreNMS configuration..."
# Env file
if [ -z "$DB_HOST" ]; then
echo >&2 "ERROR: DB_HOST must be defined"
exit 1
fi
file_env 'DB_PASSWORD'
if [ -z "$DB_PASSWORD" ]; then
echo >&2 "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined"
exit 1
fi
cat >${LIBRENMS_PATH}/.env <<EOL
APP_URL=${LIBRENMS_BASE_URL}
DB_HOST=${DB_HOST}
DB_PORT=${DB_PORT}
DB_DATABASE=${DB_NAME}
DB_USERNAME=${DB_USER}
DB_PASSWORD="${DB_PASSWORD}"
EOL
# Config : Directories
cat >${LIBRENMS_PATH}/database/seeders/config/directories.yaml <<EOL
install_dir: '${LIBRENMS_PATH}'
log_dir: /data/logs
rrd_dir: /data/rrd
EOL
ln -sf /data/logs ${LIBRENMS_PATH}/logs
# Config : Server
cat >${LIBRENMS_PATH}/database/seeders/config/server.yaml <<EOL
own_hostname: '$(hostname)'
base_url: '${LIBRENMS_BASE_URL}'
EOL
# Config : User
cat >${LIBRENMS_PATH}/database/seeders/config/user.yaml <<EOL
user: librenms
group: librenms
EOL
# Config : Fping
cat >${LIBRENMS_PATH}/database/seeders/config/fping.yaml <<EOL
fping: /usr/sbin/fping
fping6: /usr/sbin/fping6
EOL
# Config : ipmitool
cat >${LIBRENMS_PATH}/database/seeders/config/ipmitool.yaml <<EOL
ipmitool: /usr/sbin/ipmitool
EOL
# Config : Disable autoupdate (set in config.php so it cannot be overridden in the webui)
cat >${LIBRENMS_PATH}/config.d/autoupdate.php <<EOL
<?php
\$config['update'] = 0;
EOL
# Config : Services
cat >${LIBRENMS_PATH}/database/seeders/config/services.yaml <<EOL
show_services: true
nagios_plugins: /usr/lib/monitoring-plugins
EOL
# Config : RRDCached, apply RRDCACHED_SERVER as php as it would be expected to change with the variable
if [ -n "${RRDCACHED_SERVER}" ]; then
cat >${LIBRENMS_PATH}/config.d/rrdcached.php <<EOL
<?php
\$config['rrdcached'] = "${RRDCACHED_SERVER}";
EOL
fi
cat >${LIBRENMS_PATH}/database/seeders/config/rrdtool.yaml <<EOL
rrdtool_version: "1.7.2"
EOL
# Config : Dispatcher
cat >${LIBRENMS_PATH}/database/seeders/config/dispatcher.yaml <<EOL
service_update_enabled: false
service_watchdog_enabled: false
EOL
# Check plugins
echo "Checking LibreNMS plugins..."
plugins=$(ls -l /data/plugins | egrep '^d' | awk '{print $9}')
for plugin in ${plugins}; do
if [ "${plugin}" == "Weathermap" ]; then
echo " WARNING: Plugin Weathermap cannot be overriden. Skipping..."
continue
fi
echo " Linking plugin ${plugin}..."
if [ -d "${LIBRENMS_PATH}/html/plugins/${plugin}" ]; then
rm -rf "${LIBRENMS_PATH}/html/plugins/${plugin}"
fi
ln -sf "/data/plugins/${plugin}" "${LIBRENMS_PATH}/html/plugins/${plugin}"
chown -h librenms:librenms "${LIBRENMS_PATH}/html/plugins/${plugin}"
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 {} +
chmod ug+rw /data/logs /data/rrd ${LIBRENMS_PATH}/bootstrap/cache ${LIBRENMS_PATH}/storage ${LIBRENMS_PATH}/storage/framework/*
# Check additional Monitoring plugins
echo "Checking additional Monitoring plugins..."
mon_plugins=$(ls -l /data/monitoring-plugins | egrep '^-' | awk '{print $9}')
for mon_plugin in ${mon_plugins}; do
if [ -f "/usr/lib/monitoring-plugins/${mon_plugin}" ]; then
echo " WARNING: Official Monitoring plugin ${mon_plugin} cannot be overriden. Skipping..."
continue
fi
if [[ ${mon_plugin} != check_* ]]; then
echo " WARNING: Monitoring plugin filename ${mon_plugin} invalid. It must start with 'check_'. Skipping..."
continue
fi
if [[ ! -x "/data/monitoring-plugins/${mon_plugin}" ]]; then
echo " WARNING: Monitoring plugin file ${mon_plugin} has to be executable. Skipping..."
continue
fi
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

View file

@ -0,0 +1,112 @@
#!/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]
# 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_DISPATCHER=${SIDECAR_DISPATCHER:-0}
SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0}
SIDECAR_SNMPTRAPD=${SIDECAR_SNMPTRAPD:-0}
if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$SIDECAR_SNMPTRAPD" = "1" ]; then
exit 0
fi
# Handle .env
if [ ! -f "/data/.env" ]; then
echo "Generating APP_KEY and unique NODE_ID"
cat >"/data/.env" <<EOL
APP_KEY=$(artisan key:generate --no-interaction --force --show)
NODE_ID=$(php -r "echo uniqid();")
EOL
fi
cat "/data/.env" >>"${LIBRENMS_PATH}/.env"
chown librenms:librenms /data/.env "${LIBRENMS_PATH}/.env"
file_env 'DB_PASSWORD'
if [ -z "$DB_PASSWORD" ]; then
echo >&2 "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined"
exit 1
fi
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..."
counter=1
while ! ${dbcmd} -e "show databases;" >/dev/null 2>&1; do
sleep 1
counter=$((counter + 1))
if [ ${counter} -gt ${DB_TIMEOUT} ]; then
echo >&2 "ERROR: Failed to connect to database on $DB_HOST"
exit 1
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
artisan db:seed --force --no-ansi --no-interaction
echo "Clear cache"
artisan cache:clear --no-interaction
artisan config:cache --no-interaction
mkdir -p /etc/services.d/nginx
cat >/etc/services.d/nginx/run <<EOL
#!/usr/bin/execlineb -P
with-contenv
s6-setuidgid ${PUID}:${PGID}
nginx -g "daemon off;"
EOL
chmod +x /etc/services.d/nginx/run
mkdir -p /etc/services.d/php-fpm
cat >/etc/services.d/php-fpm/run <<EOL
#!/usr/bin/execlineb -P
with-contenv
s6-setuidgid ${PUID}:${PGID}
php-fpm83 -F
EOL
chmod +x /etc/services.d/php-fpm/run
mkdir -p /etc/services.d/snmpd
cat >/etc/services.d/snmpd/run <<EOL
#!/usr/bin/execlineb -P
with-contenv
/usr/sbin/snmpd -f -c /etc/snmp/snmpd.conf
EOL
chmod +x /etc/services.d/snmpd/run

View file

@ -0,0 +1,127 @@
#!/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]
# 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_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}
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
echo >&2 "ERROR: Either DB_PASSWORD or DB_PASSWORD_FILE must be defined"
exit 1
fi
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..."
counter=1
while ! ${dbcmd} -e "show databases;" >/dev/null 2>&1; do
sleep 1
counter=$((counter + 1))
if [ ${counter} -gt ${DB_TIMEOUT} ]; then
echo >&2 "ERROR: Failed to connect to database on $DB_HOST"
exit 1
fi
done
echo "Database ready!"
while ! ${dbcmd} -e "desc $DB_NAME.poller_cluster;" >/dev/null 2>&1; do
sleep 1
counter=$((counter + 1))
if [ ${counter} -gt ${DB_TIMEOUT} ]; then
echo >&2 "ERROR: Table $DB_NAME.poller_cluster does not exist on $DB_HOST"
exit 1
fi
done
# Node ID
if [ ! -f "/data/.env" ]; then
echo >&2 "ERROR: /data/.env file does not exist. Please run the main container first"
exit 1
fi
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"
fi
# Redis
if [ -z "$REDIS_HOST" ] && [ -z "$REDIS_SENTINEL" ]; then
echo >&2 "ERROR: REDIS_HOST or REDIS_SENTINEL must be defined"
exit 1
elif [ -n "$REDIS_SENTINEL" ]; then
echo "Setting Redis Sentinel"
cat >>${LIBRENMS_PATH}/.env <<EOL
REDIS_SENTINEL=${REDIS_SENTINEL}
REDIS_SENTINEL_SERVICE=${REDIS_SENTINEL_SERVICE}
REDIS_SCHEME=${REDIS_SCHEME}
REDIS_PORT=${REDIS_PORT}
REDIS_PASSWORD=${REDIS_PASSWORD}
REDIS_DB=${REDIS_DB}
EOL
elif [ -n "$REDIS_HOST" ]; then
echo "Setting Redis"
cat >>${LIBRENMS_PATH}/.env <<EOL
REDIS_HOST=${REDIS_HOST}
REDIS_SCHEME=${REDIS_SCHEME}
REDIS_PORT=${REDIS_PORT}
REDIS_PASSWORD=${REDIS_PASSWORD}
REDIS_DB=${REDIS_DB}
EOL
fi
# Create service
mkdir -p /etc/services.d/dispatcher
cat >/etc/services.d/dispatcher/run <<EOL
#!/usr/bin/execlineb -P
with-contenv
s6-setuidgid ${PUID}:${PGID}
cd /opt/librenms
./librenms-service.py ${DISPATCHER_ARGS}
EOL
chmod +x /etc/services.d/dispatcher/run

View file

@ -0,0 +1,27 @@
#!/usr/bin/with-contenv sh
# shellcheck shell=sh
set -e
SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0}
# Continue only if sidecar syslogng container
if [ "$SIDECAR_SYSLOGNG" != "1" ]; then
exit 0
fi
echo ">>"
echo ">> Sidecar syslog-ng container detected"
echo ">>"
mkdir -p /data/syslog-ng /run/syslog-ng
chown librenms:librenms /data/syslog-ng
chown -R librenms:librenms /run/syslog-ng
# Create service
mkdir -p /etc/services.d/syslogng
cat >/etc/services.d/syslogng/run <<EOL
#!/usr/bin/execlineb -P
with-contenv
/usr/sbin/syslog-ng -F
EOL
chmod +x /etc/services.d/syslogng/run

View file

@ -0,0 +1,47 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
set -e
CRONTAB_PATH="/var/spool/cron/crontabs"
LIBRENMS_WEATHERMAP=${LIBRENMS_WEATHERMAP:-false}
LIBRENMS_WEATHERMAP_SCHEDULE=${LIBRENMS_WEATHERMAP_SCHEDULE:-*/5 * * * *}
LIBRENMS_DAILY_SCHEDULE="15 0 * * *"
SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0}
SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0}
SIDECAR_SNMPTRAPD=${SIDECAR_SNMPTRAPD:-0}
if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$SIDECAR_SNMPTRAPD" = "1" ]; then
exit 0
fi
# Init
rm -rf ${CRONTAB_PATH}
mkdir -m 0644 -p ${CRONTAB_PATH}
touch ${CRONTAB_PATH}/librenms
# Cron
echo "Creating LibreNMS daily.sh cron task with the following period fields: $LIBRENMS_DAILY_SCHEDULE"
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
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}
# Create service
mkdir -p /etc/services.d/cron
cat >/etc/services.d/cron/run <<EOL
#!/usr/bin/execlineb -P
with-contenv
exec busybox crond -f -L /dev/stdout
EOL
chmod +x /etc/services.d/cron/run

View file

@ -0,0 +1,47 @@
#!/usr/bin/with-contenv sh
# shellcheck shell=sh
set -e
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}
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_SNMPTRAPD" != "1" ]; then
exit 0
fi
echo ">>"
echo ">> Sidecar snmptrapd container detected"
echo ">>"
mkdir -p /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
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
cat >/etc/services.d/snmptrapd/run <<EOL
#!/usr/bin/execlineb -P
with-contenv
/usr/sbin/snmptrapd -f -m ALL -M /opt/librenms/mibs:/opt/librenms/mibs/cisco:${SNMP_EXTRA_MIB_DIRS} udp:162 tcp:162
EOL
chmod +x /etc/services.d/snmptrapd/run

View file

@ -0,0 +1,2 @@
[client]
skip-ssl = true

View file

@ -0,0 +1,5 @@
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

View file

@ -1,4 +1,4 @@
@version:3.13
@version:4.8
options {
chain_hostnames(off);
@ -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");
};

View file

@ -1,8 +1,6 @@
daemon off;
user nginx;
pid /run/nginx.pid;
pid /var/run/nginx/nginx.pid;
worker_processes auto;
error_log /proc/1/fd/2 info;
error_log /proc/self/fd/2 info;
worker_rlimit_nofile 8192;
events {
@ -14,10 +12,17 @@ events {
http {
include mime.types;
default_type application/octet-stream;
access_log /proc/1/fd/1;
aio threads;
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;
@ -30,8 +35,14 @@ 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@;
# Log
log_format main '$@LOG_IP_VAR@ - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
access_log /proc/self/fd/1 main;
## Hide the Nginx version number
server_tokens off;
@ -54,17 +65,9 @@ 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 8000;
listen [::]:8000;
root /opt/librenms/html;
index index.php;
@ -78,7 +81,19 @@ http {
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm7.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SERVER_SOFTWARE "";
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-fpm.sock;
fastcgi_buffers 256 4k;
fastcgi_buffer_size 32k;
fastcgi_intercept_errors on;
fastcgi_read_timeout 14400;
}
location ~ /\.ht {

View file

@ -0,0 +1,23 @@
[global]
pid = /var/run/php-fpm/php-fpm.pid
daemonize = no
error_log = /proc/self/fd/2
[www]
listen = /var/run/php-fpm/php-fpm.sock
access.log = /dev/null
pm = dynamic
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@
php_admin_value[post_max_size] = @UPLOAD_MAX_SIZE@
php_admin_value[upload_max_filesize] = @UPLOAD_MAX_SIZE@
php_admin_value[max_execution_time] = 10800
php_admin_value[max_input_time] = 3600
php_admin_value[expose_php] = Off
php_admin_value[memory_limit] = @MEMORY_LIMIT@

7
rootfs/usr/bin/lnms Executable file
View file

@ -0,0 +1,7 @@
#!/usr/bin/env sh
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

4
rootfs/usr/local/bin/artisan Executable file
View file

@ -0,0 +1,4 @@
#!/usr/bin/env sh
cd /opt/librenms || exit 1
yasu librenms:librenms php artisan "$@"

7
test/.env Normal file
View file

@ -0,0 +1,7 @@
TZ=Europe/Paris
PUID=1000
PGID=1000
MYSQL_DATABASE=librenms
MYSQL_USER=librenms
MYSQL_PASSWORD=asupersecretpassword

154
test/compose.yml Normal file
View file

@ -0,0 +1,154 @@
name: librenms
services:
db:
image: mariadb:10
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}"
- "MARIADB_RANDOM_ROOT_PASSWORD=yes"
- "MYSQL_DATABASE=${MYSQL_DATABASE}"
- "MYSQL_USER=${MYSQL_USER}"
- "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
restart: always
redis:
image: redis:7.2-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
- 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"
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"
- "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
- redis
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"
- "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
- redis
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:

16
test/librenms.env Normal file
View file

@ -0,0 +1,16 @@
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
CACHE_DRIVER=redis
SESSION_DRIVER=redis
REDIS_HOST=redis
LIBRENMS_SNMP_COMMUNITY=librenmsdocker
LIBRENMS_WEATHERMAP=false
LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * *