The Puppet Dashboard is a web interface providing node classification and reporting features for Puppet, an open source system configuration management tool
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
acceptance/tests Remove selenium acceptance tests Feb 22, 2014
app Remove puppetlabs references (#384) Dec 10, 2018
bin cleanup old script folder May 25, 2018
config Mix local setting according to the post update message Jan 30, 2019
db Add support for report format 9 Aug 22, 2018
docs/manual Remove puppetlabs references (#384) Dec 10, 2018
ext dont remove the database.yml.example and settings.yml.example files (#… Aug 24, 2018
lib Change call method to list mysql tables in optimize task Sep 11, 2018
log Add some gitkeeps. Mar 7, 2013
public Delete rails.png Feb 19, 2014
spec fix raw yaml upload in rspec tests Jan 30, 2019
tmp (#8745) Update gitignore to not exlucde tmp during tarball creation Aug 3, 2011
.gitignore Add simplecov for coverage reporting May 4, 2018
.haml-lint.yml Add haml-lint and generated todo list Aug 27, 2018
.rubocop.yml Add rubocop and generated todo list Aug 27, 2018
.rubocop_todo.yml Regenerate rubocop todo list to account for new or updated cops Jan 30, 2019
.travis.yml Codeclimate integration Sep 6, 2018 fix the CLA link Mar 25, 2013 Update README and CONTRIBUTORS Sep 11, 2018
Gemfile.lock Update all gems Jan 30, 2019
LICENSE (#7568) Relicense to Apache-2.0 License Jul 15, 2011 Added some documentation on writing plugins. Dec 20, 2011
README.markdown Make Puppet Dashboard manual accessible Oct 31, 2018
Rakefile Make rubocop and haml_lint tasks optional Oct 30, 2018
VERSION change version to match latets beta release. (#310) Aug 22, 2018


Puppet Dashboard

Puppet Dashboard is a web interface for Puppet. It can view and analyze Puppet reports, assign Puppet classes and parameters to nodes, and view inventory data and backed-up file contents.

Build Status Maintainability Test Coverage


  • Ruby 2.3, 2.4, 2.5
  • MySQL/MariaDB >= 5.5 or PostgreSQL >= 9.2

Puppet Report Format Support

Puppet Format Documentation

Format Version Puppet Version Dashboard Version
0 0.25.x >= 1.0.0
1 2.6.0 - 2.6.4 >= 1.0.0
2 2.6.5 - 2.7.11 >= 1.0.0
3 2.7.13 - 3.2.4 >= 1.0.0
4 3.3.0 - 4.3.2 >= 2.0.0
5 4.4.0 - 4.5.3 >= 3.0.0
6 4.6.0 - 4.10.x >= 3.0.0
7 5.0.0 - 5.3.x >= 3.0.0
8 5.4.0 - 5.4.x >= 3.0.0
9 5.5.0 - 5.5.x >= 3.0.0

Future Puppet Report formats may work automatically if no required fields are removed. If there is a new Format available which is not yet supported please let us know by creating a new issue.

Fast Install

  • Install prerequisites:
apt-get install git libmysqlclient-dev libpq-dev libsqlite3-dev ruby-dev libxml2-dev libxslt-dev nodejs
  • Check out the code:
cd /usr/share && \
git clone && \
cd puppet-dashboard
  • Create a MySQL database and user
mysql -p -e"CREATE DATABASE dashboard_production CHARACTER SET utf8;" && \
mysql -p -e"CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'my_password';" && \
mysql -p -e"GRANT ALL PRIVILEGES ON dashboard_production.* TO 'dashboard'@'localhost';"
  • Set max_allowed_packet = 32M in your MySQL configuration
vim /etc/mysql/my.cnf
  • Edit your config/settings.yml and config/database.yml files.
cp config/settings.yml.example config/settings.yml && \
cp config/database.yml.example config/database.yml && \
vim config/database.yml
  • Install Puppet Dashboard Dependencies
gem install bundler && \
bundle install --deployment
  • You need to create a secret for production and either set it via environment variable: export SECRET_KEY_BASE=$(bundle exec rails secret) or follow the instructions in config/secrets.yml to setup an encrypted secret.
  • Setup database and pre-compile assets
RAILS_ENV=production bundle exec rake db:setup && \
RAILS_ENV=production bundle exec rake assets:precompile
  • Start Puppet Dashboard manually
RAILS_ENV=production bundle exec rails server
  • Set up Puppet to be Dashboard-aware.
  • Start the delayed job worker processes.
  • You will find an initscript and other useful files for Debian in ext/debian

Production Environment

Dashboard is currently configured to serve static assets when RAILS_ENV=production. In high-traffic environments, you may wish to farm this out to Apache or nginx. Additionally, you must explicitly precompile assets for production using:

  • SECRET_KEY_BASE=none RAILS_ENV=production bundle exec rails assets:precompile

Dashboard will keep all reports in the database. If your infrastructure is big the database will eventually become very large (more than 50GB). To periodically purge old reports (~ once per day) and optimize the database tables (~ once per month) it is recommended to run the following tasks periodically:

  • SECRET_KEY_BASE=none RAILS_ENV=production bundle exec rails reports:prune upto=20 unit=day
  • SECRET_KEY_BASE=none RAILS_ENV=production bundle exec rails db:raw:optimize

Puppet Dashboard Manual

The Puppet Dashboard manual is an extracted version of the Puppet Dashboard documentation which was hosted on the Puppetlabs homepage.


To contribute to this project, please read CONTRIBUTING. A list of contributors is found in CONTRIBUTORS. Thanks! This project uses the Silk icons by Mark James. Thank you!