{"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,\"publisher\":{\"@id\":\"https:\\\/\\\/kutia.net\\\/#organization\"},\"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\",\"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\",\"publisher\":{\"@id\":\"https:\\\/\\\/kutia.net\\\/#organization\"},\"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\"},{\"@type\":[\"Organization\",\"ProfessionalService\"],\"@id\":\"https:\\\/\\\/kutia.net\\\/#organization\",\"name\":\"Kutia\",\"url\":\"https:\\\/\\\/kutia.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sv-SE\",\"@id\":\"https:\\\/\\\/kutia.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/kutia.net\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/android-chrome-512x512-1.png\",\"contentUrl\":\"https:\\\/\\\/kutia.net\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Kutia\"},\"image\":{\"@id\":\"https:\\\/\\\/kutia.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"alternateName\":\"Kutia Software Company\",\"description\":\"Kutia is a software development company founded in 2013 and headquartered in Pristina, Kosovo, that builds custom software, web and mobile applications and AI systems in production, and provides dedicated engineering teams to companies and public institutions in Europe and the United States.\",\"slogan\":\"We build the systems companies run on.\",\"foundingDate\":\"2013\",\"foundingLocation\":{\"@type\":\"Place\",\"name\":\"Pristina, Kosovo\"},\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"St. C, Sima Com Complex, Building B, No. 7\",\"addressLocality\":\"Pristina\",\"postalCode\":\"10000\",\"addressCountry\":\"XK\"},\"location\":[{\"@type\":\"Place\",\"name\":\"Kutia headquarters, Pristina\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"St. C, Sima Com Complex, Building B, No. 7\",\"addressLocality\":\"Pristina\",\"postalCode\":\"10000\",\"addressCountry\":\"XK\"}},{\"@type\":\"Place\",\"name\":\"Kutia Albania\",\"address\":{\"@type\":\"PostalAddress\",\"addressCountry\":\"AL\"}},{\"@type\":\"Place\",\"name\":\"Kutia USA\",\"address\":{\"@type\":\"PostalAddress\",\"addressCountry\":\"US\"}}],\"email\":\"sales@kutia.net\",\"contactPoint\":[{\"@type\":\"ContactPoint\",\"contactType\":\"sales\",\"email\":\"sales@kutia.net\",\"url\":\"https:\\\/\\\/kutia.net\\\/estimate-your-project\\\/\",\"availableLanguage\":\"English\"},{\"@type\":\"ContactPoint\",\"contactType\":\"careers\",\"email\":\"careers@kutia.net\",\"url\":\"https:\\\/\\\/kutia.net\\\/open-positions\\\/\"}],\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":60},\"areaServed\":[{\"@type\":\"Place\",\"name\":\"Europe\"},{\"@type\":\"Country\",\"name\":\"United States\"}],\"knowsAbout\":[\"Custom software development\",\"Dedicated development teams\",\"AI in production\",\"Web application development\",\"Mobile application development\",\"E-commerce development\",\"UX\\\/UI design\",\"Cloud infrastructure on AWS\",\"DevOps\",\"Quality assurance\",\"Legacy modernisation\",\"Software for the public sector\",\"Healthcare software\",\"Fintech and payments software\",\"iGaming software\",\"Energy and utilities software\",\"React\",\"Node.js\",\"TypeScript\",\"PHP\",\"Laravel\",\"React Native\",\"Flutter\"],\"hasCertification\":[{\"@type\":\"Certification\",\"name\":\"ISO 9001\"},{\"@type\":\"Certification\",\"name\":\"ISO\\\/IEC 27001\"},{\"@type\":\"Certification\",\"name\":\"ISO\\\/IEC 20000\"}],\"award\":[\"Impact Stars laureate, Deloitte Technology Fast 50 Central Europe\",\"Most Supportive Business of the Year, TOKA\"],\"founder\":{\"@type\":\"Person\",\"name\":\"Arianit Fazliu\",\"jobTitle\":\"CEO\"},\"owns\":{\"@type\":\"SoftwareApplication\",\"@id\":\"https:\\\/\\\/kutia.net\\\/#sixops\",\"name\":\"sixops\",\"url\":\"https:\\\/\\\/sixops.ai\\\/\",\"applicationCategory\":\"BusinessApplication\",\"operatingSystem\":\"Web\",\"description\":\"sixops is the operating system for professional services: a professional services automation (PSA) platform that runs a services company as one system, from the proposal to the paid invoice, with the estimate and the actual side by side on every project.\",\"publisher\":{\"@id\":\"https:\\\/\\\/kutia.net\\\/#organization\"},\"creator\":{\"@id\":\"https:\\\/\\\/kutia.net\\\/#organization\"}},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/kutia\\\/\",\"https:\\\/\\\/clutch.co\\\/profile\\\/kutia-software-company\",\"https:\\\/\\\/themanifest.com\\\/company\\\/kutia-software-company\",\"https:\\\/\\\/techbehemoths.com\\\/company\\\/kutia-software-company\",\"https:\\\/\\\/www.crunchbase.com\\\/organization\\\/kutia\",\"https:\\\/\\\/github.com\\\/kutia-software-company\",\"https:\\\/\\\/www.facebook.com\\\/kutiasoftware\\\/\",\"https:\\\/\\\/x.com\\\/kutia_net\",\"https:\\\/\\\/www.instagram.com\\\/kutiadigitalagency\\\/\",\"https:\\\/\\\/stikk.org\\\/en\\\/members\\\/kutia-software-company\\\/\"]}]}<\/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,"publisher":{"@id":"https:\/\/kutia.net\/#organization"},"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","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","publisher":{"@id":"https:\/\/kutia.net\/#organization"},"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"},{"@type":["Organization","ProfessionalService"],"@id":"https:\/\/kutia.net\/#organization","name":"Kutia","url":"https:\/\/kutia.net\/","logo":{"@type":"ImageObject","inLanguage":"sv-SE","@id":"https:\/\/kutia.net\/#\/schema\/logo\/image\/","url":"https:\/\/kutia.net\/wp-content\/uploads\/2026\/09\/android-chrome-512x512-1.png","contentUrl":"https:\/\/kutia.net\/wp-content\/uploads\/2026\/09\/android-chrome-512x512-1.png","width":512,"height":512,"caption":"Kutia"},"image":{"@id":"https:\/\/kutia.net\/#\/schema\/logo\/image\/"},"alternateName":"Kutia Software Company","description":"Kutia is a software development company founded in 2013 and headquartered in Pristina, Kosovo, that builds custom software, web and mobile applications and AI systems in production, and provides dedicated engineering teams to companies and public institutions in Europe and the United States.","slogan":"We build the systems companies run on.","foundingDate":"2013","foundingLocation":{"@type":"Place","name":"Pristina, Kosovo"},"address":{"@type":"PostalAddress","streetAddress":"St. C, Sima Com Complex, Building B, No. 7","addressLocality":"Pristina","postalCode":"10000","addressCountry":"XK"},"location":[{"@type":"Place","name":"Kutia headquarters, Pristina","address":{"@type":"PostalAddress","streetAddress":"St. C, Sima Com Complex, Building B, No. 7","addressLocality":"Pristina","postalCode":"10000","addressCountry":"XK"}},{"@type":"Place","name":"Kutia Albania","address":{"@type":"PostalAddress","addressCountry":"AL"}},{"@type":"Place","name":"Kutia USA","address":{"@type":"PostalAddress","addressCountry":"US"}}],"email":"sales@kutia.net","contactPoint":[{"@type":"ContactPoint","contactType":"sales","email":"sales@kutia.net","url":"https:\/\/kutia.net\/estimate-your-project\/","availableLanguage":"English"},{"@type":"ContactPoint","contactType":"careers","email":"careers@kutia.net","url":"https:\/\/kutia.net\/open-positions\/"}],"numberOfEmployees":{"@type":"QuantitativeValue","minValue":60},"areaServed":[{"@type":"Place","name":"Europe"},{"@type":"Country","name":"United States"}],"knowsAbout":["Custom software development","Dedicated development teams","AI in production","Web application development","Mobile application development","E-commerce development","UX\/UI design","Cloud infrastructure on AWS","DevOps","Quality assurance","Legacy modernisation","Software for the public sector","Healthcare software","Fintech and payments software","iGaming software","Energy and utilities software","React","Node.js","TypeScript","PHP","Laravel","React Native","Flutter"],"hasCertification":[{"@type":"Certification","name":"ISO 9001"},{"@type":"Certification","name":"ISO\/IEC 27001"},{"@type":"Certification","name":"ISO\/IEC 20000"}],"award":["Impact Stars laureate, Deloitte Technology Fast 50 Central Europe","Most Supportive Business of the Year, TOKA"],"founder":{"@type":"Person","name":"Arianit Fazliu","jobTitle":"CEO"},"owns":{"@type":"SoftwareApplication","@id":"https:\/\/kutia.net\/#sixops","name":"sixops","url":"https:\/\/sixops.ai\/","applicationCategory":"BusinessApplication","operatingSystem":"Web","description":"sixops is the operating system for professional services: a professional services automation (PSA) platform that runs a services company as one system, from the proposal to the paid invoice, with the estimate and the actual side by side on every project.","publisher":{"@id":"https:\/\/kutia.net\/#organization"},"creator":{"@id":"https:\/\/kutia.net\/#organization"}},"sameAs":["https:\/\/www.linkedin.com\/company\/kutia\/","https:\/\/clutch.co\/profile\/kutia-software-company","https:\/\/themanifest.com\/company\/kutia-software-company","https:\/\/techbehemoths.com\/company\/kutia-software-company","https:\/\/www.crunchbase.com\/organization\/kutia","https:\/\/github.com\/kutia-software-company","https:\/\/www.facebook.com\/kutiasoftware\/","https:\/\/x.com\/kutia_net","https:\/\/www.instagram.com\/kutiadigitalagency\/","https:\/\/stikk.org\/en\/members\/kutia-software-company\/"]}]}},"_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}]}}