{"id":8330,"date":"2026-09-02T21:34:45","date_gmt":"2026-09-02T21:34:45","guid":{"rendered":"https:\/\/kutia.net\/project-deployment-process-2\/"},"modified":"2026-09-02T21:34:45","modified_gmt":"2026-09-02T21:34:45","slug":"project-deployment-process","status":"publish","type":"post","link":"https:\/\/kutia.net\/sv\/project-deployment-process\/","title":{"rendered":"Projektinstallationsprocess"},"content":{"rendered":"<p class=\"wp-block-paragraph\">We at Kutia have 3 environments for each project: <\/p>\n<ul class=\"wp-block-list\">\n<li>Local (Developer&#8217;s PC)<\/li>\n<li>Staging\/Testing (Our in-house staging server)<\/li>\n<li>Production<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">We also use git to control\/keep track of our code.<\/p>\n<p class=\"wp-block-paragraph\">In order for the developers to push their code to the Staging server, we use a deployment process to enable the developers to only run <code>git push staging<\/code> or as we like to refer to it as <code>kutia84<\/code> \ud83d\ude1b  , and have their latest code running on an actual server and ready to be tested.<\/p>\n<p class=\"wp-block-paragraph\">To make that command work we have a setup process.<\/p>\n<p class=\"wp-block-paragraph\"><em><strong>I used a Laravel Application as a project example, it is basically the same process for other types of projects as well. <\/strong><\/em><\/p>\n<h3 class=\"wp-block-heading\" id=\"h-server-setup\">Server Setup:<\/h3>\n<p class=\"wp-block-paragraph\">First we need a server, ours is running on (This will be our Staging server):<br \/>Ubuntu 18.04.2 LTS.<\/p>\n<p class=\"wp-block-paragraph\">Currently we use PHP(Laravel and WordPress) and Javascript(Node.JS, React.js,&#8230;) on our projects. So we will need Nginx\/Apache Server, PHP and Node installed on our Server.<\/p>\n<p class=\"wp-block-paragraph\">As for the databases side we mostly use SQL databases so we have MySQL and PostgreSQL installed.<\/p>\n<p class=\"wp-block-paragraph\">Here is a link on how to get up and running with NGINX, PHP and MySQL on your server:<\/p>\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>How To Install Linux, Nginx, MySQL, PHP (LEMP stack) on Ubuntu 18.04<\/strong><\/a><\/p>\n<h3 class=\"wp-block-heading\" id=\"h-setup-git-push-staging\">Setup <code>git push staging<\/code>:<\/h3>\n<p class=\"wp-block-paragraph\">First you need to <code>ssh<\/code> into your server:<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ ssh root@[SERVER_IP]<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Now we need to install <code>git<\/code> on the server if you don&#8217;t already have it:<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ sudo apt update\n$ sudo apt install git<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Then we need to clone our repository to our server&#8217;s <code>public_html<\/code> usually located under <code>\/var\/www\/public_html<\/code> :<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ cd \/var\/www\/public_html<\/code><\/pre>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ git clone [REPOSITORY_URL_HERE]<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Now that we have cloned our repository, we will run our necessary setup commands. In our case, since this is a laravel, app we will need to run:<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ composer install<\/code><\/pre>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ npm install<\/code><\/pre>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ npm run development \n\/\/ development or production depending on your environment<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Now that we have setup our Laravel App, we will create the bare repository so we can push the changes from our local PC.<\/p>\n<p class=\"wp-block-paragraph\">Usually, we at Kutia, put our Bare repos under <code>\/var\/www\/deploy<\/code> .<\/p>\n<p class=\"wp-block-paragraph\">Create the deploy directory:<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ mkdir \/var\/www\/deploy\n$ cd \/var\/www\/deploy<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Clone the bare repo:<\/p>\n<p class=\"wp-block-paragraph\"><em>Repositories cloned with&nbsp;<code>git cloned [URL] --bare<\/code>&nbsp;are called bare repos. They are structured a bit differently from working directories. First off, they contain no working or checked out copy of your source files.<\/em> [<a href=\"http:\/\/www.saintsjd.com\/2011\/01\/what-is-a-bare-git-repository\/#:~:text=Repositories%20created%20with%20git%20init,copy%20of%20your%20source%20files.&amp;text=bare%20repositories%20are%20customarily%20given%20a%20.\" target=\"_blank\" rel=\"noreferrer noopener\">LINK<\/a>]<\/p>\n<div class=\"wp-block-group\">\n<div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ git clone [REPOSITORY_URL_HERE] --bare<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"wp-block-paragraph\">This will create a directory inside of <code>\/var\/www\/deploy<\/code>with the repositories name ending with <code>.git<\/code>.<\/p>\n<p class=\"wp-block-paragraph\">Now, for this repo to receive the commits when you do<code>git push staging<\/code>, we need to a create <code>post-receive<\/code> file which tells where the work tree is and checkout.<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ cd \/var\/www\/deploy\/[YOUR_BARE_REPO]\/hooks<\/code><\/pre>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ vi post-receive<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Add this inside the <code>post-receive<\/code> file:<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">#!\/bin\/sh\n# The GIT_WORK_TREE path will be the path of your project root\nGIT_WORK_TREE=\/var\/www\/public_html\/[REPO] git checkout -f<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Then, save it <strong>\ud83e\udd1e<\/strong>. <br \/>If you have problems closing vim \ud83d\ude02 (we all did at some point), here is a link: <a rel=\"noreferrer noopener\" href=\"https:\/\/www.cyberciti.biz\/faq\/save-file-in-vi-vim-linux-apple-macos-unix-bsd\/\" target=\"_blank\">CLOSE VIM editor<\/a><\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kutia.net-content\/uploads\/2020\/06\/image.png\" alt=\"\" class=\"wp-image-1338\" width=\"524\" height=\"204\"\/><\/figure>\n<\/div>\n<p class=\"wp-block-paragraph\">Nice job \ud83d\ude02\ud83d\ude02. <br \/>WOW! FUNNY GUY.<\/p>\n<p class=\"wp-block-paragraph\">Now we need to allow execution of this script:<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ chmod +x \/var\/www\/deploy\/[YOUR_BARE_REPO]\/hooks\/post-receive<\/code><\/pre>\n<p class=\"wp-block-paragraph\"><strong>Finally you are done on the server side \ud83e\udd1e.<\/strong><\/p>\n<p class=\"wp-block-paragraph\">Now, on you local pc, go to your repository:<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ cd [YOUR repository path]<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Add the new staging remote:<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ git remote add staging root@[YOUR_IP]:\/var\/www\/deploy\/[YOUR_BARE_REPO]<\/code><\/pre>\n<p class=\"wp-block-paragraph\">\ud83c\udf89\ud83c\udf89\ud83c\udf89\ud83c\udf89<\/p>\n<p class=\"wp-block-paragraph\">Now you should be able to simply do:<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ git push staging<\/code><\/pre>\n<p class=\"wp-block-paragraph\">And your local commits will be pushed to the staging server.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-extra-detect-asset-changes-on-push\"><strong>Extra<\/strong>&#8230; detect asset changes on push<\/h3>\n<p class=\"wp-block-paragraph\">On our deployment process we also use one more hook so that when we push our commits to staging, we can check if there are changes on <code>composer.json<\/code> or <code>package.json<\/code> to run <code>composer install<\/code> or <code>npm install<\/code> respectively.<\/p>\n<p class=\"wp-block-paragraph\">We also check if we have changes on the javascript files so we can run <code>npm run development<\/code> or <code>production<\/code> to compile our assets.<\/p>\n<h4 class=\"wp-block-heading\" id=\"h-checking-for-src-file-changes\">Checking for <code>src<\/code> file changes<\/h4>\n<p class=\"wp-block-paragraph\">First <code>ssh<\/code> into the server.<\/p>\n<p class=\"wp-block-paragraph\">We need to create 2 more hooks on the bare repo: <code>post-merge<\/code> and <code>post-checkout<\/code> but they will contain the same content.<\/p>\n<p class=\"wp-block-paragraph\">First, we will check if we actually have <code>node_modules<\/code> on our project:<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"># This checks if node_modules directory exists, if not it runs npm install\n# this usually runs only the first time.\n\nWORK_TREE_DIR=\"\/var\/www\/public_html\/[REPO]\"\n\nif [ ! -d \"$WORK_TREE_DIR\/node_modules\" ]; then\n    echo \"Running npm install\"\n    npm install\n    echo \"npm install DONE.\"\nfi<\/code><\/pre>\n<p class=\"wp-block-paragraph\">We also need to know if there are any changes on the <code>\/src<\/code> files or in Laravel&#8217;s case <code>\/resources\/assets<\/code>.<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"># This will check if there are any changes on the 'resources\/assets',\n# and the run the compile script 'npm run development'\n\nchanged_files=\"$(git diff-tree -r --name-only --no-commit-id HEAD~ HEAD)\"\n\necho \"$changed_files\" | grep --quiet \"resources\/assets\" &amp;&amp;\necho \"Changes to 'resources\/assets' detected\" &amp;&amp;\ncd \"$WORK_TREE_DIR\" &amp;&amp;\nnpm run development &amp;&amp;\necho \"Assets compiled\"<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Here is the complete file:<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">#!\/bin\/sh\n\nchanged_files=\"$(git diff-tree -r --name-only --no-commit-id HEAD~ HEAD)\"\nWORK_TREE_DIR=\"\/var\/www\/public_html\/[REPO]\"\n\nrun_npm_on_resources_folder_change() {\n    echo \"$changed_files\" | grep --quiet \"resources\/assets\" &amp;&amp;\n    echo \"Changes to 'resources\/assets' detected\" &amp;&amp;\n    cd \"$WORK_TREE_DIR\" &amp;&amp;\n    check_if_node_modules_exist &amp;&amp;\n    echo \"Started compiling assets...\" &amp;&amp;\n    npm run development &amp;&amp;\n    echo \"Assets compiled\"\n}\n\ncheck_if_node_modules_exist() {\n    if [ ! -d \"$WORK_TREE_DIR\/node_modules\" ]; then\n        echo \"Running npm install\"\n        npm install\n        echo \"npm install DONE.\"\n    fi\n}\n\nrun_gulp_on_src_folder_change\n\nexit 0;<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Put that inside of:<\/p>\n<ul class=\"wp-block-list\">\n<li><code>\/var\/www\/deploy\/[YOUR_BARE_REPO]\/hooks\/post-merge<\/code> and<\/li>\n<li><code>\/var\/www\/deploy\/[YOUR_BARE_REPO]\/hooks\/post-checkout<\/code><\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">Run:<\/p>\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">$ chmod +x \/var\/www\/deploy\/[YOUR_BARE_REPO]\/hooks\/post-merge\n$ chmod +x \/var\/www\/deploy\/[YOUR_BARE_REPO]\/hooks\/post-checkout<\/code><\/pre>\n<p class=\"wp-block-paragraph\">To allow execution of these 2 files.<\/p>\n<p class=\"wp-block-paragraph\">Now you&#8217;re all setup so when you do <code>git push staging<\/code> on your local PC:<\/p>\n<ul class=\"wp-block-list\">\n<li>Your commits will be pushed to the staging server<\/li>\n<li>If the <code>node_modules<\/code> directory doesn&#8217;t exist on the server <code>npm install<\/code> will run.<\/li>\n<li>If there are any asset changes <code>npm run development<\/code> will run to compile the assets.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">You can put your checks for <code>package.json<\/code> or <code>composer.json<\/code> changes in the <code>post-merge<\/code> and <code>post-checkout<\/code> files.<\/p>\n<p class=\"wp-block-paragraph\">\n<h3 class=\"has-text-align-center wp-block-heading\" id=\"h-if-you-think-you-can-help-us-build-a-better-deployment-process-we-are-looking-for-a-devops-engineer\">If you think you can help us build a better deployment process, we are looking for a DevOps Engineer. <\/h3>\n<h3 class=\"has-text-align-center wp-block-heading\" id=\"h-apply-here\"><a href=\"https:\/\/kutia.net\/devops-engineer\/\" target=\"_blank\" rel=\"noreferrer noopener\">Apply here <\/a>  \ud83d\ude42<\/h3>\n<p class=\"wp-block-paragraph\">\n","protected":false},"excerpt":{"rendered":"<p>Vi p\u00e5 Kutia har 3 milj\u00f6er f\u00f6r varje projekt: Lokal (Utvecklarens PC) Staging\/Test (V\u00e5r in-house staging-server) Produktion Vi anv\u00e4nder \u00e4ven git f\u00f6r att kontrollera\/h\u00e5lla koll p\u00e5 v\u00e5r kod. <\/p>\n","protected":false},"author":0,"featured_media":3042,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[50],"tags":[],"class_list":["post-8330","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-okategoriserad"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Project Deployment Process - Kutia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kutia.net\/project-deployment-process-2\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Project Deployment Process - Kutia\" \/>\n<meta property=\"og:description\" content=\"Vi p\u00e5 Kutia har 3 milj\u00f6er f\u00f6r varje projekt: Lokal (Utvecklarens PC) Staging\/Test (V\u00e5r in-house staging-server) Produktion Vi anv\u00e4nder \u00e4ven git f\u00f6r att kontrollera\/h\u00e5lla koll p\u00e5 v\u00e5r kod.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kutia.net\/project-deployment-process-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Kutia\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-02T21:34:45+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kutia.net\\\/project-deployment-process-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kutia.net\\\/project-deployment-process-2\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Projektinstallationsprocess\",\"datePublished\":\"2026-09-02T21:34:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kutia.net\\\/project-deployment-process-2\\\/\"},\"wordCount\":3,\"image\":{\"@id\":\"https:\\\/\\\/kutia.net\\\/project-deployment-process-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/kutia.net\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/service_thumb.87d43bd9.webp\",\"articleSection\":[\"Okategoriserad\"],\"inLanguage\":\"sv-SE\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kutia.net\\\/project-deployment-process-2\\\/\",\"url\":\"https:\\\/\\\/kutia.net\\\/project-deployment-process-2\\\/\",\"name\":\"Project Deployment Process - Kutia\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kutia.net\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/kutia.net\\\/project-deployment-process-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/kutia.net\\\/project-deployment-process-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/kutia.net\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/service_thumb.87d43bd9.webp\",\"datePublished\":\"2026-09-02T21:34:45+00:00\",\"author\":{\"@id\":\"\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kutia.net\\\/project-deployment-process-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\\\/\\\/kutia.net\\\/project-deployment-process-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/kutia.net\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/service_thumb.87d43bd9.webp\",\"contentUrl\":\"https:\\\/\\\/kutia.net\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/service_thumb.87d43bd9.webp\",\"width\":1201,\"height\":375,\"caption\":\"Solving problems through digital solutions\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kutia.net\\\/#website\",\"url\":\"https:\\\/\\\/kutia.net\\\/\",\"name\":\"Kutia\",\"description\":\"Custom software, team augmentation, IT recruitment\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kutia.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Project Deployment Process - Kutia","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kutia.net\/project-deployment-process-2\/","og_locale":"sv_SE","og_type":"article","og_title":"Project Deployment Process - Kutia","og_description":"Vi p\u00e5 Kutia har 3 milj\u00f6er f\u00f6r varje projekt: Lokal (Utvecklarens PC) Staging\/Test (V\u00e5r in-house staging-server) Produktion Vi anv\u00e4nder \u00e4ven git f\u00f6r att kontrollera\/h\u00e5lla koll p\u00e5 v\u00e5r kod.","og_url":"https:\/\/kutia.net\/project-deployment-process-2\/","og_site_name":"Kutia","article_published_time":"2026-09-02T21:34:45+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kutia.net\/project-deployment-process-2\/#article","isPartOf":{"@id":"https:\/\/kutia.net\/project-deployment-process-2\/"},"author":{"name":"","@id":""},"headline":"Projektinstallationsprocess","datePublished":"2026-09-02T21:34:45+00:00","mainEntityOfPage":{"@id":"https:\/\/kutia.net\/project-deployment-process-2\/"},"wordCount":3,"image":{"@id":"https:\/\/kutia.net\/project-deployment-process-2\/#primaryimage"},"thumbnailUrl":"https:\/\/kutia.net\/wp-content\/uploads\/2020\/06\/service_thumb.87d43bd9.webp","articleSection":["Okategoriserad"],"inLanguage":"sv-SE"},{"@type":"WebPage","@id":"https:\/\/kutia.net\/project-deployment-process-2\/","url":"https:\/\/kutia.net\/project-deployment-process-2\/","name":"Project Deployment Process - Kutia","isPartOf":{"@id":"https:\/\/kutia.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kutia.net\/project-deployment-process-2\/#primaryimage"},"image":{"@id":"https:\/\/kutia.net\/project-deployment-process-2\/#primaryimage"},"thumbnailUrl":"https:\/\/kutia.net\/wp-content\/uploads\/2020\/06\/service_thumb.87d43bd9.webp","datePublished":"2026-09-02T21:34:45+00:00","author":{"@id":""},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kutia.net\/project-deployment-process-2\/"]}]},{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kutia.net\/project-deployment-process-2\/#primaryimage","url":"https:\/\/kutia.net\/wp-content\/uploads\/2020\/06\/service_thumb.87d43bd9.webp","contentUrl":"https:\/\/kutia.net\/wp-content\/uploads\/2020\/06\/service_thumb.87d43bd9.webp","width":1201,"height":375,"caption":"Solving problems through digital solutions"},{"@type":"WebSite","@id":"https:\/\/kutia.net\/#website","url":"https:\/\/kutia.net\/","name":"Kutia","description":"Custom software, team augmentation, IT recruitment","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kutia.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"}]}},"_links":{"self":[{"href":"https:\/\/kutia.net\/sv\/wp-json\/wp\/v2\/posts\/8330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kutia.net\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kutia.net\/sv\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/kutia.net\/sv\/wp-json\/wp\/v2\/comments?post=8330"}],"version-history":[{"count":0,"href":"https:\/\/kutia.net\/sv\/wp-json\/wp\/v2\/posts\/8330\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kutia.net\/sv\/wp-json\/wp\/v2\/media\/3042"}],"wp:attachment":[{"href":"https:\/\/kutia.net\/sv\/wp-json\/wp\/v2\/media?parent=8330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kutia.net\/sv\/wp-json\/wp\/v2\/categories?post=8330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kutia.net\/sv\/wp-json\/wp\/v2\/tags?post=8330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}