{"id":18832608,"url":"https://github.com/linka-cloud/artifact-registry","last_synced_at":"2026-01-03T13:16:47.778Z","repository":{"id":197840688,"uuid":"699468506","full_name":"linka-cloud/artifact-registry","owner":"linka-cloud","description":"Host packages inside a OCI Registry","archived":false,"fork":false,"pushed_at":"2024-05-18T13:25:00.000Z","size":844,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-30T07:20:57.766Z","etag":null,"topics":["artifacts","artifacts-repository","cloud","cloud-native","go","golang","oci","oci-im","stateless"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linka-cloud.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}},"created_at":"2023-10-02T17:37:22.000Z","updated_at":"2024-11-26T11:27:41.000Z","dependencies_parsed_at":"2023-11-24T20:31:04.368Z","dependency_job_id":"5d4d78bf-3b47-41d7-8cc9-43749416719c","html_url":"https://github.com/linka-cloud/artifact-registry","commit_stats":{"total_commits":93,"total_committers":1,"mean_commits":93.0,"dds":0.0,"last_synced_commit":"ad689bf8e7db126a0fe1442f6370ce25da35fc6f"},"previous_names":["linka-cloud/artifact-registry"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linka-cloud%2Fartifact-registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linka-cloud%2Fartifact-registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linka-cloud%2Fartifact-registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linka-cloud%2Fartifact-registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linka-cloud","download_url":"https://codeload.github.com/linka-cloud/artifact-registry/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239768927,"owners_count":19693763,"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":["artifacts","artifacts-repository","cloud","cloud-native","go","golang","oci","oci-im","stateless"],"created_at":"2024-11-08T01:58:21.557Z","updated_at":"2026-01-03T13:16:47.729Z","avatar_url":"https://github.com/linka-cloud.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"LK Artifact Registry\" src=\"docs/assets/lkar-no-background.png\" width='720px'/\u003e\n\u003c/p\u003e\n\n\n# LK Artifact Registry\n\n[![PkgGoDev](https://pkg.go.dev/badge/go.linka.cloud/artifact-registry)](https://pkg.go.dev/go.linka.cloud/artifact-registry)\n[![Go Report Card](https://goreportcard.com/badge/go.linka.cloud/artifact-registry)](https://goreportcard.com/report/go.linka.cloud/artifact-registry)\n\n*Distribute your artifacts to your end users without any additional administration or maintenance costs.*\n\nArtifact Registry is a 100% stateless enterprise ready artifact registry.\n\nIt uses any compatible oci-registry as backend, for both storage, authentication and authorization, making it easy to deploy and maintain.\n\nIt can host as many repositories as you want, all being backed by a single oci-repository (docker image).\n\nFor each repository type, it will create an OCI image tag that will reference all the packages and metadata required to serve the packages.\nThe tag name will be the repository type, e.g. `deb`, `rpm`, `apk`, `helm`, ...\n\nIt has two main parts:\n- lkard: the registry server which expose a small web-ui\n- lkar: the command line client\n\n## Packages formats\n\nThe following package formats are supported:\n\n- \u003cimg alt=\"deb packages\" style=\"vertical-align:middle\" src=\"docs/assets/deb.svg\" width='32px'/\u003e \u003ca href='docs/packages/deb.md'\u003edeb\u003c/a\u003e\n\n- \u003cimg alt=\"rpm packages\" style=\"vertical-align:middle\" src=\"docs/assets/rpm.png\" width='32px'/\u003e \u003ca href='docs/packages/rpm.md'\u003erpm\u003c/a\u003e\n\n- \u003cimg alt=\"apk packages\" style=\"vertical-align:middle\" src=\"docs/assets/apk.png\" width='32px'/\u003e \u003ca href='docs/packages/apk.md'\u003eapk\u003c/a\u003e\n\n- \u003cimg alt=\"helm packages\" style=\"vertical-align:middle\" src=\"docs/assets/helm.svg\" width='32px'/\u003e \u003ca href='docs/packages/helm.md'\u003ehelm\u003c/a\u003e\n\n- ... more to come\n\n## Features\n\n### Deployment Modes\n\nThe registry can be configured in different modes:\n\n- Multi Repository Mode (default):\n\n  The multi-repositories mode uses one oci-image per repository.\n  It is useful when you are you want to have a different repository for each of your projects.\n\n\n- Single Repository Mode:\n\n  The single-repository mode uses only one oci-image as storage backend.\n  It is useful when you want to distribute all your packages from a single place.\n\n  \u003e To configure this mode, you need to set the `lkard --repo` flag or the `config.backend.repo` helm value to the name of the repository you want to use.\n\nIt can also be configured to serve the repositories as sub-path or sub-domain.\n\n- Sub-path Mode (default):\n  The sub-path mode uses a different sub-path for each repository types.\n  For example, the *deb* repository will be served from `example.com/deb` and the *rpm* repository from `example.com/rpm`.\n\n\n- Sub-domain Mode:\n\n  The sub-domain mode uses a different sub-domain for each repository types.\n  For example, the *deb* repository will be served from `deb.example.com` and the *rpm* repository from `rpm.example.com`.\n\n  \u003e To configure this mode, you need to set the `lkard --domain` flag or the `config.domain` helm value to the domain name you want to use\n  and create the DNS entries pointing to the registry.\n\n### Registry Proxy support\n\nThe artifact-registry has built-in support for registry proxies.\n\n\u003e ⚠️ If you intend to use the registry with `docker.io` as backend, it is highly recommended to use a registry pull-through cache/proxy like [docker.io/registry](https://hub.docker.com/_/registry) or [harbor](https://goharbor.io/)...\n\u003e otherwise you can be sure that the artifact-registry ip will be banned.\n\n\nCommand line:\n\n    The proxy is configuratble using the following flags:\n\n    ```\n    --proxy string             proxy backend registry hostname (and port if not 443 or 80) [$ARTIFACT_REGISTRY_PROXY]\n    --proxy-client-ca string   proxy tls client certificate authority [$ARTIFACT_REGISTRY_PROXY_CLIENT_CA]\n    --proxy-insecure           disable proxy registry client tls verification [$ARTIFACT_REGISTRY_PROXY_INSECURE]\n    --proxy-no-https           disable proxy registry client https [$ARTIFACT_REGISTRY_PROXY_NO_HTTPS]\n    --proxy-password string    proxy registry password [$ARTIFACT_REGISTRY_PROXY_PASSWORD]\n    --proxy-user string        proxy registry user [$ARTIFACT_REGISTRY_PROXY_USER]\n    ```\n\nHelm:\n\n    The proxy is configuratble using the following helm values:\n\n    | Key                                        | Description                 |\n    |--------------------------------------------|-----------------------------|\n    | config.proxy.host                          | Proxy hostname              |\n    | config.proxy.insecure                      | Disable proxy TLS verify    |\n    | config.proxy.plainHTTP                     | Use HTTP for proxy          |\n    | config.proxy.clientCA                      | Proxy CA secret             |\n    | config.proxy.username                      | Proxy username              |\n    | config.proxy.password                      | Proxy password              |\n\n\nFor more information, see the [lkard reference](docs/reference/lkard/lkard.md) and the [helm chart's README](helm/artifact-registry/README.md).\n\n\n## Getting started\n\n### Evaluating the registry\n\nSee the [Getting Started](./docs/getting-started.md) guide for a quick introduction to the registry.\n\n### Deploying the registry\n\nDeploy the registry using helm:\n\n```bash\nhelm repo add linka-cloud https://helm.linka.cloud\n\nREGISTRY=registry.example.org\n\nhelm upgrade \\\n    --install \\\n    --create-namespace \\\n    --namespace artifact-registry \\\n    --set config.backend.host=$REGISTRY \\\n    artifact-registry \\\n    linka-cloud/artifact-registry\n```\n\nSee the [Chart's README](./helm/artifact-registry/README.md) for the available configuration options.\n\n\n### Install lkar (the command line client)\n\n#### Using the pre-built binaries\n\nDownload the pre-built binaries from the [releases page](https://github.com/linka-cloud/artifact-registry/releases/latest) and install it in your PATH.\n\n```bash\nVERSION=$(git ls-remote --tags https://github.com/linka-cloud/artifact-registry |cut -d'/' -f 3|grep -v helm|tail -n 1)\ncurl -sL \"https://github.com/linka-cloud/artifact-registry/releases/download/${VERSION}/lkar_$(uname -s)_$(uname -m).tar.gz\" | tar -xvz lkar\nsudo mv lkar /usr/local/bin/\n```\n\n#### Using add-apt-repository\n\n```bash\nsudo apt install -y software-properties-common\nwget -O - https://deb.linka.cloud/repository.key | sudo apt-key add -\nsudo add-apt-repository -y https://deb.linka.cloud\nsudo apt update\nsudo apt install -y lkar\n```\n\n#### Using brew\n\n```bash\nbrew install linka-cloud/tap/lkar\n```\n\n### Using the registry\n\nSee the [documentation](docs/README.md) for more information about the registry usage.\n\n\u003c!--- TODO(adphi): no seriously... add some minimal presentation... ---\u003e\n\n\n## Acknowledgements\n\nThis package formats implementations are based on the amazing work done of the [Gitea](https://gitea.io) team.\n\nMany thanks to them for their work, especially to [@KN4CK3R](https://github.com/KN4CK3R).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinka-cloud%2Fartifact-registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinka-cloud%2Fartifact-registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinka-cloud%2Fartifact-registry/lists"}