{"id":37667,"date":"2019-10-31T22:18:58","date_gmt":"2019-10-31T19:18:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/podderzhka-monorepo-i-multirepo-v-werf-i-pri-chyom-zdes-docker-registry\/"},"modified":"2019-10-31T22:18:58","modified_gmt":"2019-10-31T19:18:58","slug":"podderzhka-monorepo-i-multirepo-v-werf-i-pri-chyom-zdes-docker-registry","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/podderzhka-monorepo-i-multirepo-v-werf-i-pri-chyom-zdes-docker-registry","title":{"rendered":"Underst\u00f8ttelse af monorepo og multirepo i werf og hvad Docker Registry har at g\u00f8re med det","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Underst\u00f8ttelse af monorepo og multirepo i werf og hvad Docker Registry har at g\u00f8re med det\" src=\"\/wp-content\/uploads\/2019\/09\/7bd2036d8e53b04965212698a209d4c7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEmnet af monorepo er blevet diskuteret mange gange og skaber som regel en del aktive debatter. N\u00e5r vi skaber <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\">werf<\/a><\/noindex> som et open source-v\u00e6rkt\u00f8j designet til at forbedre byggeprocesserne af applikationskode fra Git til Docker-images (og deres efterf\u00f8lgende levering til Kubernetes), t\u00e6nker vi sj\u00e6ldent over, hvilket valg der er bedst. For os er det prim\u00e6rt at sikre alt det n\u00f8dvendige for tilh\u00e6ngere af forskellige meninger (hvis det selvf\u00f8lgelig ikke strider imod sund fornuft).<\/p>\n<p>Den nyligt tilf\u00f8jede st\u00f8tte til mono-repo i werf er et godt eksempel p\u00e5 dette. Men f\u00f8rst lad os tage et kig p\u00e5, hvordan denne st\u00f8tte overhovedet h\u00e6nger sammen med brugen af werf og hvilken rolle Docker Registry spiller...<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Problematikken<\/h2>\n<p>\nForestil dig f\u00f8lgende situation. Virksomheden har mange udviklingsteams, der arbejder p\u00e5 uafh\u00e6ngige projekter. De fleste applikationer k\u00f8rer p\u00e5 Kubernetes og er derfor containeriserede. For opbevaring af containere og billeder kr\u00e6ves der et register. Virksomheden bruger Docker Hub med en enkelt konto <code>COMPANY<\/code>. Ligesom de fleste systems til opbevaring af kildekode, <b>tillader Docker Hub ikke oprettelse af indlejrede hierarkier af repositories<\/b>, som f.eks. <code>COMPANY\/PROJECT\/IMAGE<\/code>. I s\u00e5 fald\u2026 hvordan opbevarer man ikke-monolitiske applikationer i registreret uden at oprette en separat konto for hvert projekt? <\/p>\n<p><img decoding=\"async\" alt=\"Underst\u00f8ttelse af monorepo og multirepo i werf og hvad Docker Registry har at g\u00f8re med det\" src=\"\/wp-content\/uploads\/2019\/09\/b7905fab48723a123bee536e1fe56c5a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nM\u00e5ske er den beskrevne situation velkendt for nogle, men lad os se p\u00e5 sp\u00f8rgsm\u00e5let om organisering af opbevaring af applikationer generelt, alts\u00e5 uden at knytte det til det ovenfor beskrevne eksempel og Docker Hub.<\/p>\n<h3>Muligheder for l\u00f8sning<\/h3>\n<p>\nHvis en applikation <b>er monolitisk<\/b>, leveres i \u00e9t billede, opst\u00e5r der ikke sp\u00f8rgsm\u00e5l, og vi gemmer blot billederne i projektets containerregister.<\/p>\n<p>N\u00e5r applikationen er pr\u00e6senteret som flere komponenter, <b>mikrotjenester<\/b>, kr\u00e6ves der at v\u00e6lge en bestemt tilgang. Tag et typisk web-applikations eksempel, der best\u00e5r af to billeder: <code>frontend<\/code> og <code>backend<\/code> \u2014 mulige muligheder er:<\/p>\n<ol>\n<li> Opbevar billeder i separate indlejrede repositories:\n<p><img decoding=\"async\" alt=\"Underst\u00f8ttelse af monorepo og multirepo i werf og hvad Docker Registry har at g\u00f8re med det\" src=\"\/wp-content\/uploads\/2019\/09\/a05bfdaec10ea7b4542200c6a2bb4939.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li> Opbevar alt i \u00e9t repository, og s\u00f8rg for at tage billednavnet i betragtning i tagget, for eksempel p\u00e5 f\u00f8lgende m\u00e5de:\n<p><img decoding=\"async\" alt=\"Underst\u00f8ttelse af monorepo og multirepo i werf og hvad Docker Registry har at g\u00f8re med det\" src=\"\/wp-content\/uploads\/2019\/09\/83498b5bcdf7a57dfe933295e78fc785.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ol>\n<p>\n<i><b>NB<\/b>: Faktisk er der ogs\u00e5 en mulighed for at gemme i forskellige repositories, <code>PROJECT-frontend<\/code> og <code>PROJECT-backend<\/code>, men den vil vi ikke overveje p\u00e5 grund af kompleksiteten ved support, organisering og fordeling af rettigheder blandt brugerne.<\/i><\/p>\n<h2>St\u00f8tte i werf<\/h2>\n<p>\nOprindeligt begr\u00e6nsede werf sig til nestede repositories - heldigvis underst\u00f8tter de fleste registre denne mulighed. Fra version <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/releases\/tag\/v1.0.4-alpha.3\">v1.0.4-alpha.3<\/a><\/noindex>, er der tilf\u00f8jet support for registre, der <b>ikke underst\u00f8tter indlejring<\/b>, herunder Docker Hub. Fra dette tidspunkt havde brugeren valget om, hvordan applikationsbilleder skulle opbevares.<\/p>\n<p>Implementeringen er tilg\u00e6ngelig under indstillingen <code>--images-repo-mode=multirepo|monorepo<\/code> (som standard <code>multirepo<\/code>, dvs. opbevaring i nestede repositories). Den definerer skabelonerne, hvormed billeder opbevares i registrene. Det er tilstr\u00e6kkeligt at v\u00e6lge den \u00f8nskede tilstand ved brug af hovedkommandoerne, mens alt andet forbliver u\u00e6ndret.<\/p>\n<p>Da de fleste werf-indstillinger kan angives <b>via milj\u00f8variabler<\/b>, kan opbevaringsmetoden i CI\/CD-systemer typisk let indstilles globalt for hele projektet. For eksempel, <b>i tilf\u00e6lde af GitLab.<\/b> Det er tilstr\u00e6kkeligt at tilf\u00f8je en milj\u00f8variabel i projektindstillingerne: <i>Indstillinger -&gt; CI \/ CD -&gt; Variabler: <code>WERF_IMAGES_REPO_MODE: multirepo|monorepo<\/code><\/i>.<\/p>\n<p>N\u00e5r man taler om publicering af billeder og udrulning af applikationer (disse processer kan l\u00e6ses detaljeret i de relevante artikler i dokumentationen: <noindex><a rel=\"nofollow\" href=\"https:\/\/werf.io\/documentation\/reference\/publish_process.html\">Publiceringsproces<\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"https:\/\/werf.io\/documentation\/reference\/deploy_process\/deploy_into_kubernetes.html\">Udrulningsproces<\/a><\/noindex>), s\u00e5 definerer tilstanden udelukkende skabelonen, hvormed man kan arbejde med et billede.<\/p>\n<h3>Dj\u00e6vlen ligger i detaljerne<\/h3>\n<p>\nForskellen og den prim\u00e6re kompleksitet ved at tilf\u00f8je en ny opbevaringsmetode ligger i processen med at rense registry. <i>(mulighederne for reng\u00f8ring, der underst\u00f8ttes i werf, se i <noindex><a rel=\"nofollow\" href=\"https:\/\/werf.io\/documentation\/reference\/cleaning_process.html\">Reng\u00f8ringsproces<\/a><\/noindex>)<\/i>.<\/p>\n<p>Ved oprydning tager werf hensyn til de billeder, der bruges i Kubernetes-klynger, samt de politikker, der er konfigureret af brugeren. Grundlaget for politikkerne best\u00e5r i opdelingen af tags i strategier. Strategier, der i \u00f8jeblikket underst\u00f8ttes:<\/p>\n<ol>\n<li> 3 strategier relateret til Git-primitiver som tag, gren og commit;<\/li>\n<li> 1 strategi til vilk\u00e5rlige brugerdefinerede tags.<\/li>\n<\/ol>\n<p>\nInformation om tag-strategien gemmes, n\u00e5r der publiceres et billede i etiketterne p\u00e5 det f\u00e6rdige billede. Selve v\u00e6rdien - den s\u00e5kaldte <b>metatag<\/b> - er n\u00f8dvendig for at anvende nogle politikker. For eksempel, n\u00e5r man sletter en gren eller tag fra Git-repositoriet, giver det mening at slette de relaterede <i>ubrugte<\/i> billeder fra registrene, hvilket d\u00e6kkes af dele af vores politikker.<\/p>\n<p>N\u00e5r man gemmer i \u00e9t repository (<code>monorepo<\/code>), kan der i billedtagget, udover metatagget, ogs\u00e5 gemmes navnet p\u00e5 billedet: <code>PROJEKT:<b>frontend<\/b>-META-TAG<\/code>. For deres adskillelse anvendte vi ikke en specifik separator, men tilf\u00f8jede blot den n\u00f8dvendige v\u00e6rdi til etiketten af det endelige billede ved offentligg\u00f8relsen.<\/p>\n<p><i><b>NB<\/b>: Hvis du er interesseret i at se p\u00e5 alt det, der er beskrevet i kildekoden til werf, kan udgangspunktet v\u00e6re <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/pull\/1684\/files\">PR 1684<\/a><\/noindex>.<\/i><\/p>\n<p>I denne artikel vil vi ikke bruge mere tid p\u00e5 problematikken og begrundelsen for vores tilgang: strategier for tagging, datalagring i etiketter og selve publiceringsprocessen \u2014 alt dette er beskrevet i en nylig rapport af Dmitriy Stolyarov: \"<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/460351\/\">werf \u2014 vores v\u00e6rkt\u00f8j til CI\/CD i Kubernetes<\/a><\/noindex>\u00bb.<\/p>\n<h2>Sammenfatning<\/h2>\n<p>\nManglen p\u00e5 underst\u00f8ttelse af registreringer uden indlejring var ikke en blocker for os eller de kendte brugere af werf \u2014 for man kan altid oprette et separat billedregister (eller skifte til en type Container Registry i Google Cloud)\u2026 Men at fjerne en s\u00e5dan begr\u00e6nsning virkede logisk for at g\u00f8re v\u00e6rkt\u00f8jet mere anvendeligt for det bredere DevOps-samfund. Mens vi implementerede det, st\u00f8dte vi p\u00e5 den st\u00f8rste udfordring ved at omarbejde mekanismen til reng\u00f8ring af containerregisteret. Nu, hvor alt er klar, er det rart at vide, at det er blevet lettere for nogen, og at vi (som de prim\u00e6re udviklere af projektet) ikke ser nogen v\u00e6sentlige vanskeligheder i at st\u00f8tte denne funktion fremover.<\/p>\n<p>Bliv hos os, og snart vil vi fort\u00e6lle om andre nye funktioner i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\">werf<\/a><\/noindex>!<\/p>\n<h2>P.S.<\/h2>\n<p>\nL\u00e6s ogs\u00e5 p\u00e5 vores blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/463613\/\">Byg Docker-billeder i werf kan nu ogs\u00e5 g\u00f8res med en almindelig Dockerfile<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/460351\/\">werf \u2014 vores v\u00e6rkt\u00f8j til CI\/CD i Kubernetes (oversigt og video af pr\u00e6sentationen)<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/465131\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0422\u0435\u043c\u0430 \u043c\u043e\u043d\u043e\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0430\u0441\u044c \u0443\u0436\u0435 \u043d\u0435 \u0440\u0430\u0437 \u0438, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u043f\u043e\u0440\u044b. \u0421\u043e\u0437\u0434\u0430\u0432\u0430\u044f werf \u043a\u0430\u043a Open Source-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043f\u0440\u0438\u0437\u0432\u0430\u043d\u043d\u044b\u0439 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0441\u0431\u043e\u0440\u043a\u0438 \u043a\u043e\u0434\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438\u0437 Git \u0432 Docker-\u043e\u0431\u0440\u0430\u0437\u044b (\u0438 \u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0432 Kubernetes), \u043c\u044b \u043c\u0430\u043b\u043e \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u044f\u0435\u043c \u043d\u0430 \u0442\u0435\u043c\u0443 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u043e\u0439 \u0432\u044b\u0431\u043e\u0440 \u043b\u0443\u0447\u0448\u0435. \u0414\u043b\u044f \u043d\u0430\u0441 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0432\u0441\u0451 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043a\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u043d\u0435\u043d\u0438\u0439 (\u0435\u0441\u043b\u0438 \u044d\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28270,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37667","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0422\u0435\u043c\u0430 \u043c\u043e\u043d\u043e\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/podderzhka-monorepo-i-multirepo-v-werf-i-pri-chyom-zdes-docker-registry\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 monorepo \u0438 multirepo \u0432 werf \u0438 \u043f\u0440\u0438 \u0447\u0451\u043c \u0437\u0434\u0435\u0441\u044c Docker Registry | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0422\u0435\u043c\u0430 \u043c\u043e\u043d\u043e\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/podderzhka-monorepo-i-multirepo-v-werf-i-pri-chyom-zdes-docker-registry\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:18:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:18:58+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Support til monorepo og multirepo i werf og hvad Docker Registry har med det at g\u00f8re | ProHoster","description":"Emnet om monorepository.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/podderzhka-monorepo-i-multirepo-v-werf-i-pri-chyom-zdes-docker-registry","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 monorepo \u0438 multirepo \u0432 werf \u0438 \u043f\u0440\u0438 \u0447\u0451\u043c \u0437\u0434\u0435\u0441\u044c Docker Registry | ProHoster","og:description":"\u0422\u0435\u043c\u0430 \u043c\u043e\u043d\u043e\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f.","og:url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/podderzhka-monorepo-i-multirepo-v-werf-i-pri-chyom-zdes-docker-registry","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:18:58+00:00","article:modified_time":"2019-10-31T19:18:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37667","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 18:48:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:22:29","updated":"2026-01-23 18:48:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/37667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=37667"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/37667\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/28270"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=37667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=37667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=37667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}