{"id":15103542,"url":"https://github.com/jacobbrewer1/puppet-summary","last_synced_at":"2025-09-19T10:50:53.932Z","repository":{"id":214033072,"uuid":"733214312","full_name":"Jacobbrewer1/puppet-summary","owner":"Jacobbrewer1","description":"Visualizes Puppet reports with ease.","archived":false,"fork":false,"pushed_at":"2024-04-15T12:39:15.000Z","size":11247,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-17T15:24:31.677Z","etag":null,"topics":["golang","puppet","puppet-dashboard","puppet-master","puppet-server","puppet-summary"],"latest_commit_sha":null,"homepage":"https://puppet-summary.bthree.uk","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jacobbrewer1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-12-18T20:26:26.000Z","updated_at":"2024-04-19T14:42:54.510Z","dependencies_parsed_at":"2024-04-15T14:10:13.715Z","dependency_job_id":null,"html_url":"https://github.com/Jacobbrewer1/puppet-summary","commit_stats":null,"previous_names":["jacobbrewer1/puppet-summary"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jacobbrewer1%2Fpuppet-summary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jacobbrewer1%2Fpuppet-summary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jacobbrewer1%2Fpuppet-summary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jacobbrewer1%2Fpuppet-summary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jacobbrewer1","download_url":"https://codeload.github.com/Jacobbrewer1/puppet-summary/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247332596,"owners_count":20921854,"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":["golang","puppet","puppet-dashboard","puppet-master","puppet-server","puppet-summary"],"created_at":"2024-09-25T19:40:22.893Z","updated_at":"2025-09-19T10:50:48.875Z","avatar_url":"https://github.com/Jacobbrewer1.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Puppet Summary\n\nThis is an application that helps you sort through the Puppet reports that are generated by your Puppet infrastructure.\nThe summary will give you a quick overview of the state of your infrastructure and will help you identify any issues\nthat may have occurred. There is an API and web interface that you can use to view the reports. The application will\nalso allow you to upload the raw reports from Puppet to the application, which will then be processed and stored in\nthe database. The application will also allow you to purge the database of old reports. The application is written in\nGO and uses the gorilla/mux router for the API and the web interface.\n\n## Usage\n\nThere are multiple ways to run the application. You can either run the application directly on your host or you can\nrun the application within a Docker container. The application will listen on port `8080` by default.\n\nWhen running the application, the app will default to using the local filesystem to store the raw reports, the default\ndatabase is SQLite. These can be changed by using the flags that are available (Listed below).\n\n### Commands\n\nThe application has the following commands:\n\n#### Serve\n\nThe `serve` command will start the application and listen on port `8080`. This is the primary command that you will\nuse to run the application.\n\nYou can view the help for this command by running:\n\n```shell\n./puppet-summary serve --help\n```\n\n#### Purge\n\nThe `purge` command will purge the database of data older than the specified number of days. This is useful if you\nwant to keep the database size down.\n\nYou can view the help for this command by running:\n\n```shell\n./puppet-summary purge --help\n```\n\n#### Version\n\nThe `version` command will print the version of the application.\n\nThis command does not have any flags and can be run by running:\n\n```shell\n./puppet-summary version\n```\n\n## Setup\n\n#### MySQL\n\nWhen using MySQL, you will be required to specify a `DB_CONN_STR` environment variable with the connection string\nto your MySQL database. For example:\n\n```text\nDB_CONN_STR=\"root:Password01@tcp(localhost:3306)/puppet-summary?timeout=90s\u0026multiStatements=true\u0026parseTime=true\"\n```\n\n#### MongoDB\n\nWhen using MongoDB, you will be required to specify a `DB_CONN_STR` environment variable with the connection URI to your\nMongoDB database. For example:\n\n```text\nDB_CONN_STR=\"mongodb+srv://user:password@host/?retryWrites=true\"\n```\n\n#### Google Cloud Storage\n\n```shell\n./puppet-summary -gcs \u003cbucket\u003e\n```\n\nThis will allow the `/upload` endpoint to push the raw reports from Puppet to Google Cloud Storage. For this, you will\nbe required to specify a `gcs-bucket` flag with the name of the bucket to upload to; you will also need\nthe `GCS_CREDENTIALS` environment variable with the contents of the JSON credentials file. For example:\n\n```text\nGCS_CREDENTIALS=\u003cjson-contents\u003e\n```\n\n#### S3 Storage\n\n_Coming soon_\n\n#### Endpoint Authentication\n\n```shell\n./puppet-summary -auth-token \u003ctoken\u003e\n```\n\nThis will enable the security on the endpoints that use the authentication method `AuthOptionRequired`. This includes\nthe `/upload`. If the token is not provided, there will be no security on the endpoints.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobbrewer1%2Fpuppet-summary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacobbrewer1%2Fpuppet-summary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobbrewer1%2Fpuppet-summary/lists"}