{"id":213668,"date":"2021-03-29T15:00:57","date_gmt":"2021-03-29T12:00:57","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-enable-gitlabs-dependency-proxy-for-docker-images-cloudsavvy-it\/"},"modified":"2021-03-29T15:00:57","modified_gmt":"2021-03-29T12:00:57","slug":"how-to-enable-gitlabs-dependency-proxy-for-docker-images-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-enable-gitlabs-dependency-proxy-for-docker-images-cloudsavvy-it\/","title":{"rendered":"#How to Enable GitLab\u2019s Dependency Proxy for Docker Images \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2c29fd7139d\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2c29fd7139d\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-enable-gitlabs-dependency-proxy-for-docker-images-cloudsavvy-it\/#Enabling_The_Dependency_Proxy\" >Enabling The Dependency Proxy<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-enable-gitlabs-dependency-proxy-for-docker-images-cloudsavvy-it\/#Using_the_Dependency_Proxy\" >Using the Dependency Proxy<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-enable-gitlabs-dependency-proxy-for-docker-images-cloudsavvy-it\/#How_The_Dependency_Proxy_Works\" >How The Dependency Proxy Works<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-enable-gitlabs-dependency-proxy-for-docker-images-cloudsavvy-it\/#Configuring_Dependency_Proxy_Settings\" >Configuring Dependency Proxy Settings<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-enable-gitlabs-dependency-proxy-for-docker-images-cloudsavvy-it\/#Freeing_Up_Storage\" >Freeing Up Storage<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-enable-gitlabs-dependency-proxy-for-docker-images-cloudsavvy-it\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#How to Enable GitLab\u2019s Dependency Proxy for Docker Images \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-9546\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/02\/266bb4cf.jpg?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Graphic showing the GitLab logo, a stylised fox head\" width=\"1602\" height=\"902\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>GitLab has an integrated Dependency Proxy which caches upstream Docker images. Formerly a premium feature, Dependency Proxy was open-sourced and made available to all GitLab versions in November 2020 as part of <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/about.gitlab.com\/blog\/2020\/10\/30\/minor-breaking-change-dependency-proxy\">GitLab 13.6<\/a>.<\/p>\n<p>The Dependency Proxy behaves as a pull-through cache for Docker images stored on Docker Hub. Setting up the Dependency Proxy can accelerate your pipelines and helps you stay within <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.docker.com\/increase-rate-limits\">Docker\u2019s rate limits<\/a>.<\/p>\n<h2 id=\"enabling-the-dependency-proxy\"><span class=\"ez-toc-section\" id=\"Enabling_The_Dependency_Proxy\"><\/span>Enabling The Dependency Proxy<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Dependency Proxy\u2019s availability is controlled by an instance-level setting. Enabling the Dependency Proxy requires GitLab to be reconfigured. This will cause a brief period of downtime.<\/p>\n<p>To enable the feature, add the following line to your installation\u2019s <code>\/etc\/gitlab\/gitlab.rb<\/code> file:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"ruby\">\n<pre class=\"de1\">gitlab_rails<span class=\"br0\">[<\/span><span class=\"st0\">\"dependency_proxy_enabled\"<\/span><span class=\"br0\">]<\/span> = <span class=\"kw2\">true<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Save the file and run the following command in your terminal:<\/p>\n<pre>sudo gitlab-ctl reconfigure<\/pre>\n<p>The instructions above are for GitLab Omnibus installations. If you installed from source, the dependency proxy <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.gitlab.com\/ee\/administration\/packages\/dependency_proxy.html\">must be enabled within<\/a> your <code>config\/gitlab.yml<\/code> file.<\/p>\n<h2 id=\"using-the-dependency-proxy\"><span class=\"ez-toc-section\" id=\"Using_the_Dependency_Proxy\"><\/span>Using the Dependency Proxy<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Dependency Proxy only works with GitLab groups. You can\u2019t currently use it with standalone personal projects.<\/p>\n<p>The feature is normally used within CI pipeline <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">script<\/a>s. When referencing an image within a pipeline, <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.gitlab.com\/ee\/user\/packages\/dependency_proxy\">prefix the image\u2019s<\/a> Docker Hub name with the <code>CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX<\/code> variable. This variable automatically resolves to the Dependency Proxy URL for your active GitLab group.<\/p>\n<pre>image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}\/nodejs:latest<\/pre>\n<p>This pipeline will run its job within a <code>nodejs:latest<\/code> container. The image will be pulled through the Dependency Proxy. Subsequent pipeline runs won\u2019t need to hit Docker Hub unless the upstream image actually changes.<\/p>\n<p>You can also access the Dependency Proxy manually, outside of GitLab CI. You must authenticate with <code>docker login<\/code> first. You\u2019ll need to use your GitLab username and password, or your username and a personal access token.<\/p>\n<pre>docker login gitlab.example.com --username username --password password<\/pre>\n<p>Once authenticated, you can <code>docker pull<\/code> using the GitLab Dependency Proxy. Replace <code>example-group<\/code> in the URL below with the name of the group you want to use. The pulled image will be cached into that group\u2019s Dependency Proxy.<\/p>\n<pre>docker pull gitlab.example.com\/example-group\/dependency_proxy\/containers\/nodejs:latest<\/pre>\n<p>If you also use GitLab\u2019s Container Registry (to store images <em>you<\/em> build), take note that Dependency Proxy is entirely separate and has a different URL. Whereas Container Registry is normally exposed on its own subdomain (e.g.\u00a0<code>registry.example.com<\/code>), Dependency Proxy is accessed via the same hostname as the GitLab web UI.<\/p>\n<h2 id=\"how-the-dependency-proxy-works\"><span class=\"ez-toc-section\" id=\"How_The_Dependency_Proxy_Works\"><\/span>How The Dependency Proxy Works<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The Dependency Proxy presents itself as another Docker registry. When you want to use the proxy, you <code>docker login<\/code> to it and then <code>docker pull<\/code> as normal.<\/p>\n<p>If the Dependency Proxy has already cached the image, it\u2019ll return it directly without using Docker Hub. Otherwise, the image is pulled from Docker Hub, cached in the proxy and returned to your Docker CLI.<\/p>\n<p>GitLab will try to contact Docker Hub for every <code>docker pull<\/code>, even if a cached image is available. This is because the proxy must check whether the image has been updated on Docker Hub.<\/p>\n<p>This procedure does not affect Docker\u2019s rate limiting. Docker <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.docker.com\/docker-hub\/download-rate-limit\">permits free<\/a> <code>HEAD<\/code> requests to compare image manifest versions. If Docker indicates the cached image is outdated, GitLab will pull the fresh version (incurring a rate limit hit). Otherwise, the cached image will be returned, without adding to your Docker Hub rate limit tally.<\/p>\n<p>These characteristics make the Dependency Proxy ideal for CI pipelines. By logging into the proxy, you can safely <code>docker pull<\/code> on every pipeline run, without hitting the Docker Hub rate limit.<\/p>\n<h2 id=\"configuring-dependency-proxy-settings\"><span class=\"ez-toc-section\" id=\"Configuring_Dependency_Proxy_Settings\"><\/span>Configuring Dependency Proxy Settings<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Dependency Proxy can use a substantial amount of storage over time. You\u2019re caching images from Docker Hub; those images might be quite large depending on what you\u2019re using.<\/p>\n<p>GitLab lets you customise the storage location. Set the <code>dependency_proxy_storage_path<\/code> setting in <code>\/etc\/gitlab\/gitlab.rb<\/code> if you want to use a dedicated storage drive.<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"ruby\">\n<pre class=\"de1\">gitlab_rails<span class=\"br0\">[<\/span><span class=\"st0\">\"dependency_proxy_storage_path\"<\/span><span class=\"br0\">]<\/span> = <span class=\"st0\">\"\/mnt\/my-storage-drive\"<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Source installations should set the <code>storage_path<\/code> property within the <code>dependency_proxy<\/code> section of <code>config\/gitlab.yml<\/code> instead.<\/p>\n<p>You can also store your cached images <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.gitlab.com\/ee\/administration\/packages\/dependency_proxy.html\">on an object storage<\/a> service such as Amazon S3. Here\u2019s an example Omnibus configuration in <code>\/etc\/gitlab\/gitlab.rb<\/code>:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"ruby\">\n<pre class=\"de1\">gitlab_rails<span class=\"br0\">[<\/span><span class=\"st0\">\"dependency_proxy_object_store_enabled\"<\/span><span class=\"br0\">]<\/span> = <span class=\"kw2\">true<\/span>\n\u00a0\n<span class=\"co1\"># This is the S3 bucket name<\/span>\ngitlab_rails<span class=\"br0\">[<\/span><span class=\"st0\">\"dependency_proxy_object_store_remote_directory\"<\/span><span class=\"br0\">]<\/span> = <span class=\"st0\">\"gitlab-dependency-proxy\"<\/span>\n\u00a0\ngitlab_rails<span class=\"br0\">[<\/span><span class=\"st0\">\"dependency_proxy_object_store_connection\"<\/span><span class=\"br0\">]<\/span> = <span class=\"br0\">{<\/span>\n    <span class=\"st0\">\"provider\"<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"st0\">\"AWS\"<\/span>,\n    <span class=\"st0\">\"region\"<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"st0\">\"eu-west-1\"<\/span>,\n    <span class=\"st0\">\"aws_access_key_id\"<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"st0\">\"AWS_ACCESS_KEY_ID\"<\/span>,\n    <span class=\"st0\">\"aws_secret_access_key\"<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"st0\">\"AWS_SECRET_ACCESS_KEY\"<\/span>\n<span class=\"br0\">}<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>To improve performance, GitLab will cache images locally and then upload them to S3 in the background. If you\u2019d rather upload directly to S3, set the <code>dependency_proxy_object_store_direct_upload<\/code> setting to <code>true<\/code>.<\/p>\n<p>You must reconfigure GitLab (<code>sudo gitlab-ctl reconfigure<\/code>) after making changes to the storage settings. The Dependency Proxy will then store cached images using your new configuration.<\/p>\n<h2 id=\"freeing-up-storage\"><span class=\"ez-toc-section\" id=\"Freeing_Up_Storage\"><\/span>Freeing Up Storage<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>GitLab <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.gitlab.com\/ee\/user\/packages\/dependency_proxy\">never deletes<\/a> cached Dependency Proxy data. You can view the contents of a groups cache by selecting Packages &amp; Registries &gt; Dependency Proxy from its sidebar. This screen lets you enable or disable the Dependency Proxy for the group and see the total size of the stored data. However, you can\u2019t use the UI to clear old blobs.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10398\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/03\/35ccd606.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1268\" height=\"658\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>If you need to free up storage, you must use the GitLab API. There\u2019s a single endpoint which lets you clear all the Dependency Proxy data stored for a specific group.<\/p>\n<p>Create a personal access token by clicking your profile in the top-right, clicking \u201cAccess Tokens\u201d in the left sidebar and adding a new access token with the <code>api<\/code> scope.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10399\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/03\/9c1a4001.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1268\" height=\"459\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Next, use <code>curl<\/code> to delete a group\u2019s Dependency Proxy cache:<\/p>\n<pre>curl --request DELETE --header \"PRIVATE-TOKEN: &lt;Access-Token&gt;\" https:\/\/gitlab.example.com\/api\/v4\/groups\/&lt;Group-Id&gt;\/dependency_proxy\/cache<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10400\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/03\/16c60eb8.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1268\" height=\"261\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>To find your group ID, visit the homepage of the group you want to cleanup. The group\u2019s ID will be shown next to its name.<\/p>\n<h2 id=\"conclusion\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Enabling the Dependency Proxy is a straightforward step which improves the resiliency of your pipelines. If Docker Hub goes down, the proxy will still provide your pipeline with cached image versions.<\/p>\n<p>The Dependency Proxy also helps you stay within Docker Hub\u2019s rate limits. You\u2019ll only need to pull images from Docker Hub when they actually change. For an active team running many pipelines each day, this can help you avoid having to upgrade to a premium Docker Hub plan.\n<\/p><\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/10394\/how-to-enable-gitlabs-dependency-proxy-for-docker-images\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#How to Enable GitLab\u2019s Dependency Proxy for Docker Images \u2013 CloudSavvy IT&#8221; GitLab has an integrated Dependency Proxy which caches upstream Docker images. Formerly a premium feature, Dependency Proxy was open-sourced and made available to all GitLab versions in November 2020 as part of GitLab 13.6. The Dependency Proxy behaves as a pull-through cache for&#8230;<\/p>\n","protected":false},"author":1,"featured_media":213669,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/02\/266bb4cf.jpg","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-213668","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/213668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=213668"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/213668\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/213669"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=213668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=213668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=213668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}