{"id":15510673,"url":"https://github.com/dalen/puppetexplorer","last_synced_at":"2025-12-18T01:37:02.727Z","repository":{"id":18244797,"uuid":"21395619","full_name":"dalen/puppetexplorer","owner":"dalen","description":"Puppet web interface written in CoffeeScript using AngularJS","archived":false,"fork":false,"pushed_at":"2021-08-02T04:13:33.000Z","size":6930,"stargazers_count":413,"open_issues_count":65,"forks_count":44,"subscribers_count":29,"default_branch":"master","last_synced_at":"2024-04-13T19:25:55.348Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"demo.puppetexplorer.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dalen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-01T16:58:27.000Z","updated_at":"2023-09-30T19:28:07.000Z","dependencies_parsed_at":"2022-09-12T07:51:40.128Z","dependency_job_id":null,"html_url":"https://github.com/dalen/puppetexplorer","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalen%2Fpuppetexplorer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalen%2Fpuppetexplorer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalen%2Fpuppetexplorer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dalen%2Fpuppetexplorer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dalen","download_url":"https://codeload.github.com/dalen/puppetexplorer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247393569,"owners_count":20931812,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T09:50:20.427Z","updated_at":"2025-12-18T01:36:57.674Z","avatar_url":"https://github.com/dalen.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Puppet Explorer - Never sailed straighter\n\n### Overview\n\nPuppet Explorer is a web application for PuppetDB that lets you explore your\nPuppet data.\nIt is made using AngularJS and runs entirely on the client\nside, so the only backend that is needed is PuppetDB itself and a web server to\nshare the static resources.\n\nIt has the same query language as the popular Puppet module\n[dalen-puppetdbquery](https://forge.puppetlabs.com/dalen/puppetdbquery).\nThis lets you easily filter for a selection of nodes and show the events or\nfacts for only them. So you can handle hosts as groups without needing to have\npredefined groups, just make them up as you need and click on the pie charts to\ndrill down further. The JavaScript version of this query parser is available as\na separate component so you can use it in your own projects easily,\n[node-puppetdbquery](https://github.com/dalen/node-puppetdbquery).\n\nAll views in the application are made to be able to link directly to them, so\nit is easy to share information you find with coworkers.\n\nIt has support for multiple PuppetDB servers.\n\n### Screenshots\n\n##### The dashboard:\n![The dashboard](screenshots/dashboard.png)\n\n##### Node search:\n![Node search](screenshots/nodelist.png)\n\n##### Events view and filtering:\n![Events view](screenshots/events.png)\n\n##### Facts view:\n![Facts view](screenshots/facts.png)\n\n### Demo\n\nTry it out live with some made up AWS data at\n[demo.puppetexplorer.io](http://demo.puppetexplorer.io)\n\n### Installation\n\nThe recommended way to install it is on the same host as your PuppetDB instance.\nThen proxy /api to port 8080 of your PuppetDB instance (except the /commands\nendpoint). This avoids the need for any\n[CORS](http://en.wikipedia.org/wiki/Cross-origin_resource_sharing) headers.\n\nIt is possible to have it on a separate domain from your PuppetDB though. If you\ndo, make sure you have the correct `Access-Control-Allow-Origin` header and a\n`Access-Control-Expose-Headers: X-Records` header.\n\nYou need to copy config.js.example to config.js and modify it for your needs.\n\nTo simplify installation you can use the\n[spotify-puppetexplorer](https://forge.puppetlabs.com/spotify/puppetexplorer)\nPuppet module.\n\n### Dependencies\n\nIt is using the V4 PuppetDB API from PuppetDB 3.2. Version 1.5.0 works with\nPuppetDB 2.3.x, but the current version only works with PuppetDB 3.x.\n\nVersions of Puppet prior to 4.0, converted Facter's facts to string, limiting the\npuppetexplorer's ability to compare them.  The\n[stringifyfacts](https://docs.puppetlabs.com/puppet/3.8/reference/configuration.html#stringifyfacts)\nPuppet parameter permits to disable this old behaviour.  Please note that Facter\n2.3.0 or newer is required for this setting to take effect.\n\n### Development and local testing\n\nInstall all required dependencies using `npm install` and the grunt cli tool\nglobally using `npm install -g grunt-cli`. Then you can build the\napplication using `grunt`. The results will be located in the `dist` directory.\n\nUse `grunt serve` to start a local web server pointing to the demo site PuppetDB\ninstance.\n\nOptionally you can use the `--puppetdb=url` option to specify a URL to proxy\nPuppetDB connections to. Another way is to create a SSH tunnel to your PuppetDB\nserver, `ssh -L 8080:localhost:8080 puppetdb.example.com` and\n`grunt serve --puppetdb=http://localhost:8080/`.\n\nWith `grunt dev` it will start a development server rebuild any source files that\nchanges and put the results in the `dist` directory.\n\nTo build a Debian package use `grunt build_debian`, this requires the\n`devscripts` and `debhelper` packages to be installed.\n\nTo build a RPM use `grunt build rpm:snapshot`, this requires the `rpm-build`\npackage to be installed. The resulting RPM will be in `rpm/RPMS/noarch`.\n\n### See also\n\n * [Puppetboard](https://github.com/voxpupuli/puppetboard)\n * [Foreman](http://theforeman.org/)\n * [Puppet Enterprise](http://puppetlabs.com/puppet/puppet-enterprise)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdalen%2Fpuppetexplorer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdalen%2Fpuppetexplorer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdalen%2Fpuppetexplorer/lists"}