All apps · 0 apps
Grafana-Image-Renderer
OfficialDocker app from yayitazale's Repository
Overview
A Grafana remote image renderer that handles rendering panels & dashboards to PNGs using headless chrome.
Read Grafana Image Renderer documentation and see usage instructions at readme link.
In order to use this as a plugin of your Grafana docker instance you must add this enviromental arguments to that container:
- GF_RENDERING_SERVER_URL: http://renderer-ip:8081/render
- GF_RENDERING_CALLBACK_URL: http://grafana-ip:3000/
Change the IP (and the ports) to suit your configuration.
Readme
View on GitHubgrafana-image-renderer
A backend service for Grafana. It provides panel and dashboard rendering with a headless browser (Chromium). You can get your favourite dashboards as PDFs, PNGs, or with Grafana Enterprise, CSVs and even over emails with Grafana Reports.
Installation
You can find installation details in the docs.
Compile
To compile the Go service, run:
$ go build -buildvcs -o grafana-image-renderer .
To compile the Docker image, run:
$ docker build .
The following tools are also useful for engineers:
$ go tool goimports # our code formatter of choice
$ golangci-lint run # our linter of choice
$ IMAGE=tag-here go test ./tests/acceptance/... -count=1 # run acceptance tests
Release
When you are ready to make a release, tag it in Git (git tag vX.Y.Z; remember the v prefix), then push it.
GitHub Actions deals with the build and deployment.
Updating Chromium
One of the quick ways you can check the latest version available is by going to https://packages.debian.org/trixie/chromium (change trixie for the codename of the current Debian version we use in the Dockerfile, as of writing 13).
Make sure that the build for amd64 and arm64 are both available first (scroll down to the bottom of the page and check that there are no red backgrounds), and ignore anything after the - in the version, this is what we'll use.
In the Dockerfile, update the cachebuster date to today's date. Then find CHROMIUM_VERSION= and update that to the version found in the website.
Open a PR, merge it, and create a new GitHub release. You're done!
Updating Go
For a new minor N, only update to a .0 patch if there are security vulnerabilities that are fixed and not present in the N-1 minor. Otherwise try to stick with the N-1 minor until the N minor is at least on a .1 patch.
- Change the
godirective to the new version ingo.mod. - Update the image at the top of the
Dockerfilestarting withFROM golang:...with the new version. Don't forget to pin it with the sha256!- You can find it by going to DockerHub, or pulling the image yourself you can see a
Digest: ...line with the value.
- You can find it by going to DockerHub, or pulling the image yourself you can see a
Note: On minor updates, golangci-lint might break. Also update the CI action to use the latest version, once that is available with support for the new minor.
Updating Debian
It is good to update whenever a new image is tagged, as it mainly contains package updates or potential security fixes which are always nice to have.
- Update the image in the
Dockerfilestarting withFROM debian:...with the new version. Don't forget to pin it with the sha256!- You can find it by going to DockerHub, or pulling the image yourself you can see a
Digest: ...line with the value.
- You can find it by going to DockerHub, or pulling the image yourself you can see a
- Bust the cache. Changing the base image will invalidate it anyways but for good manners set it to today's date.
Install Grafana-Image-Renderer on Unraid in a few clicks.
Find Grafana-Image-Renderer in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
- GF_RENDERING_SERVER_URL: http://renderer-ip:8081/render
- GF_RENDERING_CALLBACK_URL: http://grafana-ip:3000/
Categories
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allDetails
grafana/grafana-image-rendererRuntime arguments
- Network
bridge- Shell
sh- Privileged
- false
Template configuration
- Target
- 8081
- Default
- 8081
- Value
- 8081