{"id":47699427,"url":"https://github.com/peeklapp/peekl","last_synced_at":"2026-05-16T23:24:24.751Z","repository":{"id":344479579,"uuid":"1154820016","full_name":"peeklapp/peekl","owner":"peeklapp","description":"The main repository for the Peekl project","archived":false,"fork":false,"pushed_at":"2026-03-28T15:28:48.000Z","size":150,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-28T17:49:10.366Z","etag":null,"topics":["configuration-management","golang","infrastructure-as-code","linux"],"latest_commit_sha":null,"homepage":"https://peekl.dev","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peeklapp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-10T20:13:32.000Z","updated_at":"2026-03-28T15:28:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/peeklapp/peekl","commit_stats":null,"previous_names":["peeklapp/peekl"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/peeklapp/peekl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peeklapp%2Fpeekl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peeklapp%2Fpeekl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peeklapp%2Fpeekl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peeklapp%2Fpeekl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peeklapp","download_url":"https://codeload.github.com/peeklapp/peekl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peeklapp%2Fpeekl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31311030,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["configuration-management","golang","infrastructure-as-code","linux"],"created_at":"2026-04-02T17:02:34.783Z","updated_at":"2026-04-02T17:03:16.994Z","avatar_url":"https://github.com/peeklapp.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Peekl\n\n![Logo of Peekl](media/peekl_logo.jpg)\n\n\u003e [!CAUTION]\n\u003e This project is still under active development. Expect breaking changes at any time. Use on your servers at your own risk.\n\nPeekl is a simple yet powerful configuration management tool ! It's a more modern and highly opinionated solution at how tools such as Ansible and Puppet works.\n\n1. [Getting started](#getting-started)\n\t1. [Installing the server](#installing-the-server)\n\t2. [Installing the agent](#installing-the-agent)\n2. [Documentation](#documentation)\n3. [Contributing](#contributing)\n4. [License](#license)\n\n## Getting started\n\nPeekl is composed of two main components :\n- The agent, that you install on each node that you want to manage.\n- The server, that the agent will communicate with to get their catalog.\n\n### Installing the server\n\nThe first step you will have to follow is to install the server. For that you can download the latest version of Peekl on GitHub.\n\nBy default the certificate generated by the server during it's bootstrap will only contains `peekl` as the domain name.\nIf you want to use a custom domain name, such as `example.peekl.dev`, you should add a configuration file at path `/etc/peekl/config/server.yml` with the following content.\n\n```yaml\ncertificates:\n  bootstrap_dns_names:\n    - 'example.peekl.dev'\n```\nThen you can proceed and start the installation\n\n```bash\nexport PEEKL_VERSION=0.1.0\nexport PEEKL_ARCH=amd64\nwget https://github.com/peeklapp/peekl/releases/download/${PEEKL_VERSION}/peekl-server_${PEEKL_VERSION}_linux_${PEEKL_ARCH}.deb\napt install ./peekl-server_${PEEKL_VERSION}_linux_${PEEKL_ARCH}.deb\n```\n\nThe server should automatically start, bootstrap himself, and be ready to receive queries.\nYou can validate that everything is working correctly using the following command.\n\n```bash\nsystemctl status peekl-server.service\n```\n\nBy default, and for security purpose, Peekl will only listen on host `127.0.0.1` and port `9040`.\nYou can change this behavior by adding the following configuration to the configuration file.\n\n```yaml\nlisten:\n  host: 0.0.0.0\n  port: 9040\n```\n\n### Installing the agent\n\nBy default the agent will try to contact the Peekl server using `https://peekl:9040`\nTo work with this, you have two solutions : \n\nEither make use of the `peekl` DNS name by adding it to the `/etc/hosts` file, using the command `echo '192.168.121.10 peekl' \u003e\u003e /etc/hosts` (update the IP accordingly to your case).\n\nOr create a configuration file at path `/etc/peekl/config/agent.yml` and add the following content to it :\n\n```yaml\nserver:\n  host: 192.168.121.10\n  port: 9040\n```\n\nIn this case, also remember to update the IP address according to your situation.\n\nOnce this is done, you can proceed by just installing the agent using the Debian packages\n\n```bash\nexport PEEKL_VERSION=0.1.0\nexport PEEKL_ARCH=amd64\nwget https://github.com/peeklapp/peekl/releases/download/${PEEKL_VERSION}/peekl-agent_${PEEKL_VERSION}_linux_${PEEKL_ARCH}.deb\napt install ./peekl-agent_${PEEKL_VERSION}_linux_${PEEKL_ARCH}.deb\n```\n\nThe agent should be up and running at this point.\n```bash\nsystemctl status peekl-agent.service\n```\n\nBut you will still have to sign the certificate on the server side\n\nStart by listing the pending certificates, your agent should be there\n```bash\npeekl-server ca list pending\n```\n\nAnd use the found name to sign the certificate\n```bash\npeekl-server ca sign --certname name_of_the_node\n```\n\nAfter a little bit of time the agent should download it's certificate. You can go faster by running it by hand\n\n```bash\npeekl-agent run\n```\n\n# Documentation\n\nYou find extensive documentation on the dedicated documentation website : [docs.peekl.dev](https://docs.peekl.dev)\n\n# Contributing\n\nContributions are more than welcome. But please note that supporting every little use-case is not something feasible. In order to keep the project into a maintainable state, we might refuse improvements or features suggestions, if they're deemed incompatible with the ideas of what Peekl should be : simple and efficient.\n\nAsking for help is always ok, and reporting bug even more.\n\n# License\n\nThis software is distributed with the [MIT License](https://opensource.org/license/mit)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeeklapp%2Fpeekl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeeklapp%2Fpeekl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeeklapp%2Fpeekl/lists"}