{"id":15517042,"url":"https://github.com/deric/puppet-zot","last_synced_at":"2026-06-01T03:31:31.934Z","repository":{"id":211577963,"uuid":"729503460","full_name":"deric/puppet-zot","owner":"deric","description":"Zot registry management","archived":false,"fork":false,"pushed_at":"2025-04-15T10:40:16.000Z","size":90,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-12T23:16:54.025Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deric.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2023-12-09T12:46:16.000Z","updated_at":"2025-04-15T10:40:20.000Z","dependencies_parsed_at":"2024-01-15T15:31:10.303Z","dependency_job_id":"b88050df-276c-4866-9748-2f361cc8f294","html_url":"https://github.com/deric/puppet-zot","commit_stats":null,"previous_names":["deric/puppet-zot"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/deric/puppet-zot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-zot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-zot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-zot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-zot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deric","download_url":"https://codeload.github.com/deric/puppet-zot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deric%2Fpuppet-zot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33759178,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-10-02T10:11:01.179Z","updated_at":"2026-06-01T03:31:31.909Z","avatar_url":"https://github.com/deric.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# puppet-zot\n[![Puppet Forge](http://img.shields.io/puppetforge/v/deric/zot.svg)](https://forge.puppet.com/modules/deric/zot) [![Tests](https://github.com/deric/puppet-zot/actions/workflows/test.yml/badge.svg)](https://github.com/deric/puppet-zot/actions/workflows/test.yml)\n\nPuppet module to manage [zot registry](https://zotregistry.io/).\n\n## Usage\n\nFollowing code would start `zot` registry based on configuration values defined in [in Hiera common.yaml](./data/common.yaml).\n\n```puppet\ninclude zot\n```\n\n## Examples\n\nOverride installed version, see [zot releases](https://github.com/project-zot/zot/releases).\n```yaml\nzot::version: 2.0.0-rc7\n```\n\nBind on all interfaces and port `8080`\n```yaml\nzot::config:\n  http:\n    address: 0.0.0.0\n    port: 8080\n```\nTurn on debugging:\n```yaml\nzot::config:\n  log:\n    level: debug\n```\n\nPrometheus metrics:\n\n```yaml\nzot::config:\n  extensions:\n    metrics:\n      enable: true\n      prometheus:\n        path: /metrics\n```\n\nFull example:\n```yaml\n---\nzot::version: 1.4.3\nzot::log_dir: /var/log/zot\nzot::data_dir: /var/lib/zot\nzot::config:\n  distSpecVersion: 1.0.1\n  http:\n    address: 0.0.0.0\n    port: 5000\n    realm: zot\n    tls:\n      cert: /etc/letsencrypt/live/my.registry/fullchain.pem\n      key: /etc/letsencrypt/live/my.registry/privkey.pem\n  storage:\n    dedupe: true\n    gc: true\n    gcDelay: 1h\n    gcInterval: 6h\n  log:\n    level: info\n  extensions:\n    metrics:\n      enable: true\n      prometheus:\n        path: /metrics\n    search:\n      enable: true\n      cve:\n        updateInterval: 24h\n    sync:\n      enable: true\n      registries:\n        - urls:\n            - https://docker.io/library\n          onDemand: true  # only requested images will be cached\n          maxRetries: 3\n          retryDelay: 5m\n          pollInterval: 6h\n    scrub:\n      interval: 24h\n    ui:\n      enable: true\n\n```\n\nretention:\n```yaml\nzot::data_dir: /tmp/zot\nzot::config:\n  distSpecVersion: 1.1.0-dev\n  storage:\n    gc: true\n    gcDelay: 2h\n    gcInterval: 1h\n    retention:\n      dryRun: false\n      delay: 24h\n      policies:\n        - repositories:\n            - infra/*\n            - prod/*\n          deleteReferrers: false\n          keepTags:\n            - patterns:\n                - v2.*\n                - .*-prod\n            - patterns:\n                - v3.*\n                - .*-prod\n              pulledWithin: 168h\n        - repositories:\n            - tmp/**\n          deleteReferrers: true\n          deleteUntagged: true\n          keepTags:\n            - patterns:\n                - v1.*\n              pulledWithin: 168h\n              pushedWithin: 168h\n        - repositories:\n            - '**'\n          deleteReferrers: true\n          deleteUntagged: true\n          keepTags:\n            - mostRecentlyPushedCount: 10\n              mostRecentlyPulledCount: 10\n              pulledWithin: 720h\n              pushedWithin: 720h\n    subPaths:\n      /a:\n        rootDirectory: /tmp/zot1\n        dedupe: true\n        retention:\n          policies:\n            - repositories:\n                - infra/*\n                - prod/*\n              deleteReferrers: false\n  http:\n    address: 127.0.0.1\n    port: 8080\n  log:\n    level: debug\n```\n\n## Configuration\n\nFor full parameter reference see [the official documentation for the installed version](https://zotregistry.io/v1.4.3/admin-guide/admin-configuration/). This module doesn't attempt to validate registry config specification. Merged configuration is serialized to JSON which will be syntactically correct but the config should be validated against `distSpecVersion` using e.g. `zot verify /etc/zot/config.json`.\n\nChange storage directory:\n```yaml\nzot::data_dir: /srv/zot\n```\n\nChange log directory:\n```yaml\nzot::log_dir: /srv/log\n```\n\nIn order to bind the `zot` service on ports \u003c 1024, you'll need either `root` priviledges or configure bind capabilities, e.g. using [file_capability](https://github.com/smoeding/puppet-file_capability)\n\n```yaml\nfile_capability::file_capabilities:\n  \"/usr/bin/zot-%{lookup('zot::version')}\":\n    ensure: present\n    capability: 'cap_net_bind_service=eip'\n```\n\nAll Puppet variables are documented in [REFERENCE.md](./REFERENCE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderic%2Fpuppet-zot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderic%2Fpuppet-zot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderic%2Fpuppet-zot/lists"}