{"id":15991,"date":"2026-10-06T10:42:40","date_gmt":"2026-10-06T07:12:40","guid":{"rendered":"https:\/\/chabokan.net\/blog\/?p=15991"},"modified":"2026-10-06T10:42:40","modified_gmt":"2026-10-06T07:12:40","slug":"%d8%af%db%8c%d9%be%d9%84%d9%88%db%8c-%d9%be%d8%b1%d9%88%da%98%d9%87-cursor-%d9%87%d8%a7%d8%b3%d8%aa-%d8%a7%d8%a8%d8%b1%db%8c","status":"publish","type":"post","link":"https:\/\/chabokan.net\/blog\/%d8%af%db%8c%d9%be%d9%84%d9%88%db%8c-%d9%be%d8%b1%d9%88%da%98%d9%87-cursor-%d9%87%d8%a7%d8%b3%d8%aa-%d8%a7%d8%a8%d8%b1%db%8c\/","title":{"rendered":"\u0622\u0645\u0648\u0632\u0634 \u062f\u06cc\u067e\u0644\u0648\u06cc \u067e\u0631\u0648\u0698\u0647 Cursor \u0631\u0648\u06cc \u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u062f\u0631 \u06f5 \u0645\u0631\u062d\u0644\u0647"},"content":{"rendered":"<p>\u067e\u0631\u0648\u0698\u0647\u200c\u0627\u062a \u0631\u0627 \u062f\u0627\u062e\u0644 <strong>Cursor<\/strong> \u0633\u0627\u062e\u062a\u06cc\u060c \u0631\u0648\u06cc \u0644\u0648\u06a9\u0627\u0644 \u0628\u0627\u0644\u0627 \u0645\u06cc\u200c\u0622\u06cc\u062f\u060c \u0648 \u062d\u062a\u06cc \u0686\u0646\u062f \u0646\u0641\u0631 \u0627\u0632 \u062f\u0648\u0633\u062a\u0627\u0646\u062a \u0647\u0645 \u062f\u0645\u0648 \u0631\u0627 \u062f\u06cc\u062f\u0647\u200c\u0627\u0646\u062f. \u0642\u062f\u0645 \u0628\u0639\u062f\u06cc \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0647\u0645\u06cc\u0646\u200c\u062c\u0627 \u06af\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f: \u0686\u0637\u0648\u0631 \u0647\u0645\u06cc\u0646 \u0627\u067e \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u062f\u0627\u0645\u0646\u0647 \u0648\u0627\u0642\u0639\u06cc \u0622\u0646\u0644\u0627\u06cc\u0646 \u06a9\u0646\u06cc\u060c \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u062e\u0648\u062f\u062a \u0633\u0631\u0648\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0631\u0627\u0647 \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u060c Nginx \u0631\u0627 \u062f\u0633\u062a\u06cc \u06a9\u0627\u0646\u0641\u06cc\u06af \u06a9\u0646\u06cc\u060c \u06cc\u0627 \u0647\u0631 \u0628\u0627\u0631 \u0628\u0627 FTP \u0641\u0627\u06cc\u0644 \u0622\u067e\u0644\u0648\u062f \u06a9\u0646\u06cc\u061f<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0637\u0644\u0628 \u0645\u0633\u06cc\u0631 \u0645\u0634\u062e\u0635 <strong>\u062f\u06cc\u067e\u0644\u0648\u06cc \u067e\u0631\u0648\u0698\u0647 Cursor<\/strong> \u0631\u0648\u06cc <strong>\u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0686\u0627\u0628\u06a9\u0627\u0646<\/strong> \u0631\u0627 \u0642\u062f\u0645\u200c\u0628\u0647\u200c\u0642\u062f\u0645 \u062c\u0644\u0648 \u0645\u06cc\u200c\u0628\u0631\u062f: \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u067e\u0631\u0648\u0698\u0647 \u062f\u0631 \u0627\u062f\u06cc\u062a\u0648\u0631\u060c Push \u0628\u0647 GitHub \u06cc\u0627 GitLab\u060c \u0633\u0627\u062e\u062a \u0633\u0631\u0648\u06cc\u0633 PaaS\u060c \u062a\u0646\u0638\u06cc\u0645 env\u060c \u0627\u0646\u062a\u0634\u0627\u0631\u060c \u0648 \u0648\u0635\u0644 \u06a9\u0631\u062f\u0646 \u062f\u0627\u0645\u0646\u0647 \u0628\u0627 SSL. \u0627\u06af\u0631 \u0642\u0628\u0644\u0627\u064b \u062f\u0631\u0628\u0627\u0631\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062e\u0648\u0627\u0646\u062f\u0647\u200c\u0627\u06cc\u060c \u0627\u06cc\u0646\u062c\u0627 \u0647\u0645\u0627\u0646 \u0627\u06cc\u062f\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u067e\u06cc \u06a9\u0647 \u0628\u0627 Cursor \u0633\u0627\u062e\u062a\u0647\u200c\u0627\u06cc \u0639\u0645\u0644\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u061b \u0628\u0631\u0627\u06cc \u0645\u0631\u0648\u0631 \u0645\u0641\u0647\u0648\u0645 \u06a9\u0644\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc <a href=\"https:\/\/chabokan.net\/blog\/what-is-automated-deployment\/\">\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 (Auto Deployment) \u0686\u06cc\u0633\u062a\u061f<\/a> \u0631\u0627 \u0647\u0645 \u0628\u0628\u06cc\u0646\u06cc.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/chabokan.net\/blog\/wp-content\/uploads\/2026\/10\/inline-1.png\" alt=\"\u0645\u0633\u06cc\u0631 Cursor \u0628\u0647 Git \u0648 \u0686\u0627\u0628\u06a9\u0627\u0646 \u062a\u0627 Live URL\" title=\"\"><\/figure>\n<h2>\u0686\u0647 \u0686\u06cc\u0632\u0647\u0627\u06cc\u06cc \u0644\u0627\u0632\u0645 \u062f\u0627\u0631\u06cc\u061f<\/h2>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0627\u06cc\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0645 \u062f\u0633\u062a \u0628\u06af\u0630\u0627\u0631:<\/p>\n<ul>\n<li>\u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u0642\u0627\u0628\u0644 \u0627\u062c\u0631\u0627 \u062f\u0631 Cursor (Node\u060c Python\u060c \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u06cc\u0627 Docker)<\/li>\n<li>\u062d\u0633\u0627\u0628 GitHub \u06cc\u0627 GitLab<\/li>\n<li>\u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0686\u0627\u0628\u06a9\u0627\u0646 \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0633\u0627\u062e\u062a \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc<\/li>\n<li>\u0644\u06cc\u0633\u062a \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc (\u062d\u062f\u0627\u0642\u0644 \u0647\u0645\u0627\u0646\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0644\u0648\u06a9\u0627\u0644 \u062f\u0631 <code>.env<\/code> \u062f\u0627\u0631\u06cc)<\/li>\n<li>\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc: \u062f\u0627\u0645\u0646\u0647 \u0628\u0631\u0627\u06cc \u0645\u0631\u062d\u0644\u0647 \u0646\u0647\u0627\u06cc\u06cc<\/li>\n<\/ul>\n<p>\u0627\u06af\u0631 \u067e\u0631\u0648\u0698\u0647 \u0647\u0646\u0648\u0632 \u0641\u0642\u0637 \u062f\u0631 \u0686\u062a Cursor \u0627\u0633\u062a \u0648 \u0631\u0648\u06cc \u062f\u06cc\u0633\u06a9 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0641\u0648\u0644\u062f\u0631 \u0645\u0646\u0638\u0645 \u0630\u062e\u06cc\u0631\u0647 \u0646\u0634\u062f\u0647\u060c \u0627\u0648\u0644 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u067e\u0648\u0634\u0647 \u0648\u0627\u0642\u0639\u06cc \u0628\u0627 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0633\u0648\u0631\u0633 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646. \u062f\u06cc\u067e\u0644\u0648\u06cc \u0627\u0632 \u0631\u0648\u06cc \u06cc\u06a9 Prompt \u0627\u0646\u062c\u0627\u0645 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f\u061b \u0627\u0632 \u0631\u0648\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 Git \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<h2>\u062f\u06cc\u067e\u0644\u0648\u06cc \u067e\u0631\u0648\u0698\u0647 Cursor \u06cc\u0639\u0646\u06cc \u0686\u0647\u061f<\/h2>\n<p>\u0648\u0642\u062a\u06cc \u0645\u06cc\u200c\u06af\u0648\u06cc\u06cc\u0645 \u062f\u06cc\u067e\u0644\u0648\u06cc\u060c \u0645\u0646\u0638\u0648\u0631\u0645\u0627\u0646 \u0641\u0642\u0637 \u00ab\u0622\u067e\u0644\u0648\u062f \u0641\u0627\u06cc\u0644\u00bb \u0646\u06cc\u0633\u062a. \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0627\u067e \u0633\u0627\u062e\u062a\u0647\u200c\u0634\u062f\u0647 \u062f\u0631 Cursor\u060c \u062f\u06cc\u067e\u0644\u0648\u06cc \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u06cc\u0646 \u0632\u0646\u062c\u06cc\u0631\u0647 \u0627\u0633\u062a:<\/p>\n<ul>\n<li>\u06a9\u062f \u0627\u0632 \u0645\u062e\u0632\u0646 Git \u062e\u0648\u0627\u0646\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f<\/li>\n<li>\u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627 \u0646\u0635\u0628 \u0648 \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 Build \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f<\/li>\n<li>\u067e\u0631\u0648\u0633\u0647 \u0627\u062c\u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 start \u0645\u0634\u062e\u0635 \u0628\u0627\u0644\u0627 \u0645\u06cc\u200c\u0622\u06cc\u062f<\/li>\n<li>\u06cc\u06a9 URL \u0639\u0645\u0648\u0645\u06cc (\u0648 \u0628\u0639\u062f\u0627\u064b \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f\u062a) \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 \u0648\u0635\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f<\/li>\n<li>HTTPS \u0628\u0627 \u06af\u0648\u0627\u0647\u06cc SSL \u0641\u0639\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f<\/li>\n<\/ul>\n<p>\u062a\u0641\u0627\u0648\u062a \u06a9\u0627\u0631 \u0628\u0627 \u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0627\u0632 \u0646\u0648\u0639 PaaS \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u062e\u0634 \u0632\u06cc\u0627\u062f\u06cc \u0627\u0632 \u06a9\u0627\u0646\u0641\u06cc\u06af \u0633\u0631\u0648\u0631\u060c \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u0633\u0631\u0648\u06cc\u0633 \u0648 \u0645\u0633\u06cc\u0631 \u0627\u0646\u062a\u0634\u0627\u0631 \u062f\u0627\u062e\u0644 \u067e\u0646\u0644 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f. \u062a\u0648 \u0628\u06cc\u0634\u062a\u0631 \u0631\u0648\u06cc \u062e\u0648\u062f \u0627\u067e \u062a\u0645\u0631\u06a9\u0632 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u061b \u062c\u0632\u0626\u06cc\u0627\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0631\u0627 \u067e\u0644\u062a\u0641\u0631\u0645 \u062c\u0644\u0648 \u0645\u06cc\u200c\u0628\u0631\u062f. \u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc \u0647\u0645\u06cc\u0646 \u0627\u06cc\u062f\u0647 \u0631\u0627 \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633 \u0633\u0627\u062e\u062a SaaS \u0628\u0628\u06cc\u0646\u06cc\u060c \u0645\u0637\u0644\u0628 <a href=\"https:\/\/chabokan.net\/blog\/%d8%af%db%8c%d9%be%d9%84%d9%88%db%8c-saas-%d8%a8%d8%af%d9%88%d9%86-devops%d8%9b-%d8%b1%d8%a7%d9%87%d9%86%d9%85%d8%a7%db%8c-%da%a9%d8%a7%d9%85%d9%84-deploy-%da%a9%d8%b1%d8%af%d9%86\/\">\u062f\u06cc\u067e\u0644\u0648\u06cc SaaS \u0628\u062f\u0648\u0646 DevOps<\/a> \u0645\u06a9\u0645\u0644 \u062e\u0648\u0628\u06cc \u0627\u0633\u062a.<\/p>\n<figure class=\"wp-block-table\">\n<table>\n<thead>\n<tr>\n<th>\u0645\u0631\u062d\u0644\u0647<\/th>\n<th>\u0631\u0648\u06cc \u0644\u0648\u06a9\u0627\u0644 (Cursor)<\/th>\n<th>\u0631\u0648\u06cc \u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0686\u0627\u0628\u06a9\u0627\u0646<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0627\u062c\u0631\u0627\u06cc \u0627\u067e<\/td>\n<td><code>npm run dev<\/code> \u06cc\u0627 <code>python app.py<\/code><\/td>\n<td>\u062f\u0633\u062a\u0648\u0631 start \/ \u0628\u06cc\u0644\u062f \u067e\u0644\u062a\u0641\u0631\u0645 \u0628\u0639\u062f \u0627\u0632 Deploy<\/td>\n<\/tr>\n<tr>\n<td>\u0645\u062a\u063a\u06cc\u0631 \u0645\u062d\u06cc\u0637\u06cc<\/td>\n<td>\u0641\u0627\u06cc\u0644 <code>.env<\/code> \u0645\u062d\u0644\u06cc<\/td>\n<td>Env \u062f\u0631 \u067e\u0646\u0644 \u0633\u0631\u0648\u06cc\u0633 (\u0646\u0647 \u062f\u0627\u062e\u0644 \u06af\u06cc\u062a)<\/td>\n<\/tr>\n<tr>\n<td>\u0622\u062f\u0631\u0633 \u062f\u0633\u062a\u0631\u0633\u06cc<\/td>\n<td><code>localhost:3000<\/code><\/td>\n<td>URL \u0633\u0631\u0648\u06cc\u0633 + \u062f\u0627\u0645\u0646\u0647 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc<\/td>\n<\/tr>\n<tr>\n<td>SSL<\/td>\n<td>\u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0644\u0627\u0632\u0645 \u0646\u06cc\u0633\u062a<\/td>\n<td>HTTPS \u0631\u0648\u06cc \u062f\u0627\u0645\u0646\u0647 \u0645\u062a\u0635\u0644<\/td>\n<\/tr>\n<tr>\n<td>\u0627\u0646\u062a\u0634\u0627\u0631 \u0646\u0633\u062e\u0647 \u062c\u062f\u06cc\u062f<\/td>\n<td>\u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u062f\u0633\u062a\u06cc \u062a\u0631\u0645\u06cc\u0646\u0627\u0644<\/td>\n<td>Push \u0628\u0647 Git \u06cc\u0627 <code>chabok deploy<\/code> \u0627\u0632 CI<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<h2>\u0642\u0628\u0644 \u0627\u0632 \u062f\u06cc\u067e\u0644\u0648\u06cc: \u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u062f\u0631 Cursor \u0622\u0645\u0627\u062f\u0647 \u06a9\u0646<\/h2>\n<p>\u0628\u06cc\u0634\u062a\u0631 \u062e\u0637\u0627\u0647\u0627\u06cc \u062f\u06cc\u067e\u0644\u0648\u06cc \u0627\u0632 \u0647\u0645\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0645\u06cc\u200c\u0622\u06cc\u0646\u062f. \u0627\u067e \u0631\u0648\u06cc \u0644\u067e\u200c\u062a\u0627\u067e\u062a \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0641\u0631\u0636\u200c\u0647\u0627\u06cc\u06cc \u062f\u0627\u0631\u062f \u06a9\u0647 \u0631\u0648\u06cc \u0641\u0636\u0627\u06cc \u0627\u0628\u0631\u06cc \u063a\u0644\u0637 \u0627\u0632 \u0622\u0628 \u062f\u0631\u0645\u06cc\u200c\u0622\u06cc\u0646\u062f. \u0642\u0628\u0644 \u0627\u0632 Push\u060c \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0631\u0627 \u062f\u0631 \u062e\u0648\u062f Cursor \u062c\u0645\u0639\u200c\u0648\u062c\u0648\u0631 \u06a9\u0646.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/chabokan.net\/blog\/wp-content\/uploads\/2026\/10\/inline-2.png\" alt=\"\u0686\u06a9\u200c\u0644\u06cc\u0633\u062a Prepare Push Deploy Domain\" title=\"\"><\/figure>\n<h3>\u06f1) \u0646\u0648\u0639 \u0627\u062c\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646<\/h3>\n<p>\u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0686\u0627\u0628\u06a9\u0627\u0646 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u06a9\u200c\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c \u0633\u0631\u0648\u06cc\u0633 \u062c\u062f\u0627 \u062f\u0627\u0631\u062f\u061b \u0627\u0632 \u062c\u0645\u0644\u0647 Node.js\u060c Next.js\u060c NestJS\u060c Python\u060c Flask\u060c FastAPI\u060c Django\u060c Laravel\u060c PHP\u060c React\u060c Vue\u060c Angular\u060c Go\u060c Static \u0648 Docker. \u0627\u06af\u0631 \u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u0628\u0627 Cursor \u0648 \u06cc\u06a9 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0645\u0634\u062e\u0635 \u0633\u0627\u062e\u062a\u0647\u200c\u0627\u06cc\u060c \u0647\u0645\u0627\u0646 \u0646\u0648\u0639 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646. \u0648\u0642\u062a\u06cc \u0627\u0633\u062a\u06a9 \u062a\u0631\u06a9\u06cc\u0628\u06cc \u0627\u0633\u062a \u06cc\u0627 \u0628\u06cc\u0644\u062f \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u060c \u0633\u0631\u0648\u06cc\u0633 Docker \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0645\u0633\u06cc\u0631 \u0634\u0641\u0627\u0641\u200c\u062a\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<h3>\u06f2) \u062f\u0633\u062a\u0648\u0631 start \u0648 \u067e\u0648\u0631\u062a \u0631\u0627 \u062b\u0627\u0628\u062a \u06a9\u0646<\/h3>\n<p>\u067e\u0644\u062a\u0641\u0631\u0645 \u0628\u0627\u06cc\u062f \u0628\u062f\u0627\u0646\u062f \u0628\u0639\u062f \u0627\u0632 \u0628\u06cc\u0644\u062f \u0686\u0647 \u062f\u0633\u062a\u0648\u0631\u06cc \u0627\u067e \u0631\u0627 \u0628\u0627\u0644\u0627 \u0645\u06cc\u200c\u0622\u0648\u0631\u062f. \u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc Node\u060c \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a <code>start<\/code> \u062f\u0631 <code>package.json<\/code> \u0631\u0627 \u062c\u062f\u06cc \u0628\u06af\u06cc\u0631:<\/p>\n<pre class=\"wp-block-code\"><code>{\r\n  \"name\": \"cursor-demo-api\",\r\n  \"scripts\": {\r\n    \"dev\": \"node --watch src\/index.js\",\r\n    \"start\": \"node src\/index.js\"\r\n  }\r\n}<\/code><\/pre>\n<p>\u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0645\u0639\u0645\u0648\u0644\u0627\u064b <code>dev<\/code> \u0627\u062c\u0631\u0627 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f\u061b \u0647\u0645\u0627\u0646 <code>start<\/code> \u0627\u0633\u062a \u06a9\u0647 \u0628\u0639\u062f \u0627\u0632 Deploy \u0635\u062f\u0627 \u0632\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u067e \u0628\u0627\u06cc\u062f \u0628\u0647 \u067e\u0648\u0631\u062a \u0627\u0639\u0644\u0627\u0645\u200c\u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0645\u062d\u06cc\u0637 \u06af\u0648\u0634 \u0628\u062f\u0647\u062f\u060c \u0646\u0647 \u0641\u0642\u0637 \u0628\u0647 \u06cc\u06a9 \u0639\u062f\u062f \u0647\u0627\u0631\u062f\u06a9\u062f \u0631\u0648\u06cc \u0644\u067e\u200c\u062a\u0627\u067e. \u0631\u0627\u06cc\u062c\u200c\u062a\u0631\u06cc\u0646 \u0627\u0644\u06af\u0648 \u062e\u0648\u0627\u0646\u062f\u0646 <code>process.env.PORT<\/code> (\u06cc\u0627 \u0645\u0639\u0627\u062f\u0644\u0634 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646) \u0648 bind \u0631\u0648\u06cc <code>0.0.0.0<\/code> \u0627\u0633\u062a\u060c \u0646\u0647 \u0641\u0642\u0637 <code>127.0.0.1<\/code>.<\/p>\n<h3>\u06f3) \u0627\u06af\u0631 Docker \u0645\u06cc\u200c\u0631\u0648\u06cc\u060c \u06cc\u06a9 Dockerfile \u0645\u06cc\u0646\u06cc\u0645\u0627\u0644 \u0628\u06af\u0630\u0627\u0631<\/h3>\n<p>\u0628\u0631\u0627\u06cc \u0627\u067e Node \u0633\u0627\u062f\u0647\u060c \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a:<\/p>\n<pre class=\"wp-block-code\"><code>FROM node:20-alpine\r\nWORKDIR \/app\r\nCOPY package*.json .\/\r\nRUN npm ci --omit=dev\r\nCOPY . .\r\nENV NODE_ENV=production\r\nEXPOSE 3000\r\nCMD [\"npm\", \"start\"]<\/code><\/pre>\n<p>\u06a9\u0627\u0645\u0646\u062a\u200c\u0647\u0627 \u0648 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0631\u0627 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0646\u06af\u0647 \u062f\u0627\u0631. \u062f\u0627\u062e\u0644 \u0628\u0644\u0627\u06a9 \u06a9\u062f \u0641\u0627\u0631\u0633\u06cc \u0646\u06af\u0630\u0627\u0631\u061b \u0628\u0639\u062f\u0627\u064b \u062f\u0631 \u0644\u0627\u06af \u0628\u06cc\u0644\u062f \u0648 \u062f\u06cc\u0628\u0627\u06af \u06a9\u0645\u062a\u0631 \u06af\u06cc\u062c \u0645\u06cc\u200c\u0634\u0648\u06cc.<\/p>\n<h3>\u06f4) \u0631\u0627\u0632\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0631\u06cc\u067e\u0648 \u062c\u062f\u0627 \u06a9\u0646<\/h3>\n<p>\u06a9\u0644\u06cc\u062f OpenAI\u060c \u062a\u0648\u06a9\u0646 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u0648 \u0631\u0645\u0632 SMTP \u0631\u0627 \u062f\u0627\u062e\u0644 \u06af\u06cc\u062a commit \u0646\u06a9\u0646. \u0641\u0627\u06cc\u0644 <code>.env<\/code> \u0631\u0627 \u0628\u0647 <code>.gitignore<\/code> \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646 \u0648 \u06cc\u06a9 <code>.env.example<\/code> \u0628\u062f\u0648\u0646 \u0645\u0642\u062f\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u0628\u06af\u0630\u0627\u0631 \u062a\u0627 \u062e\u0648\u062f\u062a \u0648 \u0647\u0645\u200c\u062a\u06cc\u0645\u06cc\u200c\u0647\u0627 \u0628\u062f\u0627\u0646\u0646\u062f \u0686\u0647 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc\u06cc \u0644\u0627\u0632\u0645 \u0627\u0633\u062a. \u0645\u0642\u062f\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u0631\u0627 \u0628\u0639\u062f\u0627\u064b \u062f\u0631 \u067e\u0646\u0644 \u0633\u0631\u0648\u06cc\u0633 \u0686\u0627\u0628\u06a9\u0627\u0646 \u0648\u0627\u0631\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc.<\/p>\n<p>\u0627\u06af\u0631 \u062f\u0631 Cursor \u0627\u0632 Agent \u06cc\u0627 MCP \u0628\u0631\u0627\u06cc \u0648\u0635\u0644 \u0634\u062f\u0646 \u0628\u0647 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u060c \u0647\u0645\u0627\u0646 \u06a9\u0644\u06cc\u062f\u0647\u0627 \u0631\u0627 \u0647\u0645 \u0627\u0632 \u06a9\u062f \u062c\u062f\u0627 \u0646\u06af\u0647 \u062f\u0627\u0631. \u0628\u0631\u0627\u06cc \u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u062e\u0648\u062f \u067e\u0631\u0648\u062a\u06a9\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc <a href=\"https:\/\/chabokan.net\/blog\/what-is-mcp\/\">MCP \u0686\u06cc\u0633\u062a\u061f<\/a> \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u061b \u0648 \u0627\u06af\u0631 \u0645\u0633\u06cc\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644\u200c\u0645\u062d\u0648\u0631 \u0628\u0631\u0627\u06cc\u062a \u062c\u0630\u0627\u0628 \u0627\u0633\u062a\u060c <a href=\"https:\/\/chabokan.net\/blog\/claude-code-%da%86%db%8c%d8%b3%d8%aa%d8%9f-%d8%a7%d9%86%d9%82%d9%84%d8%a7%d8%a8%db%8c-%d8%af%d8%b1-%d8%aa%d8%b1%d9%85%db%8c%d9%86%d8%a7%d9%84-%d9%88-%d8%af%d8%b3%d8%aa%db%8c%d8%a7%d8%b1-%d9%87%d9%88\/\">Claude Code \u0686\u06cc\u0633\u062a\u061f<\/a> \u0647\u0645 \u0647\u0645\u200c\u062e\u0627\u0646\u0648\u0627\u062f\u0647 \u0647\u0645\u06cc\u0646 \u062c\u0631\u06cc\u0627\u0646 DX \u0627\u0633\u062a. \u062e\u0648\u062f\u0650 \u062f\u06cc\u067e\u0644\u0648\u06cc \u0627\u067e \u0646\u0647\u0627\u06cc\u06cc \u0627\u0645\u0627 \u0631\u0648\u06cc \u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0646\u0647 \u062f\u0627\u062e\u0644 \u0686\u062a Agent.<\/p>\n<h2>\u06a9\u062f \u0631\u0627 \u0628\u0647 GitHub \u06cc\u0627 GitLab \u0628\u0641\u0631\u0633\u062a<\/h2>\n<p>\u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0686\u0627\u0628\u06a9\u0627\u0646 \u0628\u0627 Git \u062d\u0631\u0641 \u0645\u06cc\u200c\u0632\u0646\u062f. \u067e\u0633 \u067e\u0631\u0648\u0698\u0647 Cursor \u0628\u0627\u06cc\u062f \u062f\u0627\u062e\u0644 \u06cc\u06a9 \u0645\u062e\u0632\u0646 \u0628\u0627\u0634\u062f. \u0627\u06af\u0631 \u0647\u0646\u0648\u0632 \u0645\u062e\u0632\u0646 \u0646\u0633\u0627\u062e\u062a\u0647\u200c\u0627\u06cc:<\/p>\n<ol>\n<li>\u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 Cursor \u06cc\u06a9 \u0631\u06cc\u067e\u0648\u06cc \u0645\u062d\u0644\u06cc \u0628\u0633\u0627\u0632 \u0648 remote \u0631\u0627 \u0628\u0647 GitHub \u06cc\u0627 GitLab \u0648\u0635\u0644 \u06a9\u0646<\/li>\n<li>\u0634\u0627\u062e\u0647 \u0627\u0635\u0644\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u061b \u0645\u0639\u0645\u0648\u0644\u0627\u064b <code>main<\/code><\/li>\n<li>\u0627\u0648\u0644\u06cc\u0646 Push \u0631\u0627 \u0628\u0632\u0646 \u0648 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648 <code>.env<\/code> \u0648\u0627\u0642\u0639\u0627\u064b \u0628\u0627\u0644\u0627 \u0646\u0631\u0641\u062a\u0647<\/li>\n<li>\u0627\u06af\u0631 \u0631\u06cc\u067e\u0648 \u062e\u0635\u0648\u0635\u06cc \u0627\u0633\u062a\u060c \u0628\u0631\u0627\u06cc \u06a9\u0644\u0648\u0646\/\u062f\u06cc\u067e\u0644\u0648\u06cc \u0628\u0639\u062f\u0627\u064b \u0628\u0647 \u062a\u0648\u06a9\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc<\/li>\n<\/ol>\n<p>\u0627\u0632 \u0627\u06cc\u0646 \u0644\u062d\u0638\u0647\u060c Git \u0645\u0646\u0628\u0639 \u062d\u0642\u06cc\u0642\u062a \u067e\u0631\u0648\u0698\u0647 \u0627\u0633\u062a. \u0647\u0631 \u0646\u0633\u062e\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 \u0631\u0648\u06cc \u06cc\u06a9 commit \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u0646\u0634\u06cc\u0646\u062f \u0648 \u0645\u0633\u06cc\u0631 \u0627\u0646\u062a\u0634\u0627\u0631 \u062a\u06a9\u0631\u0627\u0631\u067e\u0630\u06cc\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0631\u06cc\u067e\u0648\u0647\u0627\u06cc \u062a\u06cc\u0645\u06cc\u060c \u0642\u0628\u0644 \u0627\u0632 Push \u0627\u0648\u0644 \u06cc\u06a9 <code>README<\/code> \u06a9\u0648\u062a\u0627\u0647 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0627\u062c\u0631\u0627\u06cc \u0644\u0648\u06a9\u0627\u0644 \u0648 \u0644\u06cc\u0633\u062a env\u0647\u0627 \u0628\u06af\u0630\u0627\u0631. \u0646\u0641\u0631 \u0628\u0639\u062f\u06cc (\u06cc\u0627 \u062e\u0648\u062f\u062a \u062f\u0648 \u0647\u0641\u062a\u0647 \u0628\u0639\u062f) \u0646\u0628\u0627\u06cc\u062f \u0627\u0632 \u0631\u0648\u06cc \u062d\u062f\u0633 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0628\u0627\u0644\u0627 \u0628\u06cc\u0627\u0648\u0631\u062f. \u0627\u06af\u0631 \u0627\u0632 GitLab \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u060c \u0645\u0633\u06cc\u0631 CI \u0645\u0634\u0627\u0628\u0647 \u0627\u0633\u062a\u061b \u062f\u0631 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0686\u0627\u0628\u06a9\u0627\u0646 \u0628\u062e\u0634 CI\/CD \u0628\u0631\u0627\u06cc GitLab \u0647\u0645 \u0622\u0645\u062f\u0647 \u0648 \u0647\u0645\u0627\u0646 CLI <code>@chabokan.net\/cli<\/code> \u06a9\u0627\u0631 Deploy \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p>Commit Message \u0631\u0627 \u0647\u0645 \u062c\u062f\u06cc \u0628\u06af\u06cc\u0631. \u0648\u0642\u062a\u06cc \u0628\u0639\u062f\u0627\u064b \u062f\u0631 \u067e\u0646\u0644 \u06cc\u0627 Actions \u0628\u062e\u0648\u0627\u0647\u06cc \u0628\u062f\u0627\u0646\u06cc \u06a9\u062f\u0627\u0645 \u062a\u063a\u06cc\u06cc\u0631 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u062e\u0631\u0627\u0628 \u06a9\u0631\u062f\u060c \u00abupdate\u00bb \u062e\u0627\u0644\u06cc \u06a9\u0645\u06a9\u062a \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f. \u06cc\u06a9 \u062e\u0637 \u062f\u0631\u0628\u0627\u0631\u0647 \u0631\u0641\u062a\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631 \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a\u061b \u0645\u062b\u0644\u0627\u064b \u0627\u0641\u0632\u0648\u062f\u0646 health check \u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631 start script.<\/p>\n<h2>\u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0628\u0633\u0627\u0632 \u0648 \u062f\u06cc\u067e\u0644\u0648\u06cc \u06a9\u0646<\/h2>\n<p>\u062d\u0627\u0644\u0627 \u0633\u0631\u0627\u063a \u067e\u0646\u0644 \u0686\u0627\u0628\u06a9\u0627\u0646 \u0628\u0631\u0648. \u0645\u0633\u06cc\u0631 \u06a9\u0644\u06cc \u0627\u06cc\u0646 \u0627\u0633\u062a:<\/p>\n<ol>\n<li>\u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u062c\u062f\u06cc\u062f \u0627\u0632 \u0646\u0648\u0639 \u0627\u0633\u062a\u06a9 \u067e\u0631\u0648\u0698\u0647\u200c\u0627\u062a \u0628\u0633\u0627\u0632 (\u0645\u062b\u0644\u0627\u064b Node.js \u06cc\u0627 Docker)<\/li>\n<li>\u0645\u0646\u0627\u0628\u0639 \u0627\u0648\u0644\u06cc\u0647 (CPU \/ RAM \/ \u062f\u06cc\u0633\u06a9) \u0631\u0627 \u0645\u062a\u0646\u0627\u0633\u0628 \u0628\u0627 \u062f\u0645\u0648 \u06cc\u0627 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0648\u0627\u0642\u0639\u06cc \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u061b \u0628\u0631\u0627\u06cc MVP \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u067e\u0644\u0646 \u06a9\u0648\u0686\u06a9 \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a<\/li>\n<li>\u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc \u0631\u0627 \u062f\u0631 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0631\u0648\u06cc\u0633 \u0648\u0627\u0631\u062f \u06a9\u0646<\/li>\n<li>\u06a9\u062f \u0631\u0627 \u0627\u0632 Git \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 \u0628\u0631\u0633\u0627\u0646 \u0648 \u06cc\u06a9\u200c\u0628\u0627\u0631 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a\/Deploy \u0628\u0632\u0646 \u062a\u0627 \u0628\u06cc\u0644\u062f \u0648 \u0627\u0633\u062a\u0627\u0631\u062a \u0627\u062c\u0631\u0627 \u0634\u0648\u062f<\/li>\n<\/ol>\n<h3>\u0645\u0633\u06cc\u0631 \u0627\u0648\u0644: \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0627\u0632 Git \u062f\u0627\u062e\u0644 \u0633\u0631\u0648\u06cc\u0633<\/h3>\n<p>\u0637\u0628\u0642 <a href=\"https:\/\/docs.chabokan.net\/deploy\/git\/\">\u0645\u0633\u062a\u0646\u062f \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0627\u0632 \u0637\u0631\u06cc\u0642 Git<\/a> \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u0633\u0631\u0648\u06cc\u0633\u060c \u0645\u062e\u0632\u0646 \u0631\u0627 \u06a9\u0644\u0648\u0646 \u06a9\u0646\u06cc\u060c \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0645\u0633\u06cc\u0631 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc \u0648 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u06a9\u0646\u06cc \u062a\u0627 \u0686\u0627\u0628\u06a9\u0627\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f (\u0646\u0635\u0628 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627 \u0648 \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u062c\u0631\u0627). \u0628\u0631\u0627\u06cc \u0631\u06cc\u067e\u0648\u06cc \u062e\u0635\u0648\u0635\u06cc\u060c \u0637\u0628\u0642 <a href=\"https:\/\/docs.chabokan.net\/deploy\/private-git\/\">\u0645\u0633\u062a\u0646\u062f Private Git<\/a> \u0627\u0632 \u062a\u0648\u06a9\u0646 \u062f\u0631 URL \u06a9\u0644\u0648\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0633\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0628\u0627\u0631 \u0627\u0648\u0644 \u0648 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0633\u0628\u06a9 \u0634\u0641\u0627\u0641 \u0627\u0633\u062a. \u0627\u06af\u0631 \u062d\u062c\u0645 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0627\u0632 \u062d\u062f\u0648\u062f \u06f1\u06f0\u06f0 \u0645\u06af\u0627\u0628\u0627\u06cc\u062a \u0628\u06cc\u0634\u062a\u0631 \u0634\u0648\u062f\u060c \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0686\u0627\u0628\u06a9\u0627\u0646 \u0645\u0633\u06cc\u0631 FTP \u0631\u0627 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h3>\u0645\u0633\u06cc\u0631 \u062f\u0648\u0645: CI\/CD \u0628\u0627 GitHub Actions \u0648 CLI \u0686\u0627\u0628\u06a9\u0627\u0646<\/h3>\n<p>\u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc \u0647\u0631 Push \u0628\u0647 <code>main<\/code> \u062e\u0648\u062f\u0634 \u062f\u06cc\u067e\u0644\u0648\u06cc \u06a9\u0646\u062f\u060c \u0645\u0633\u06cc\u0631 <a href=\"https:\/\/docs.chabokan.net\/cicd\/github\/\">CI\/CD \u06af\u06cc\u062a\u200c\u0647\u0627\u0628<\/a> \u0645\u0646\u0627\u0633\u0628\u200c\u062a\u0631 \u0627\u0633\u062a. \u0627\u06cc\u062f\u0647 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a: \u062f\u0631 Actions\u060c CLI \u0686\u0627\u0628\u06a9\u0627\u0646 \u0646\u0635\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0628\u0627 \u062a\u0648\u06a9\u0646 API \u0644\u0627\u06af\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0648 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u062f\u06cc\u067e\u0644\u0648\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<pre class=\"wp-block-code\"><code>name: deploy-chabokan\r\non:\r\n  push:\r\n    branches: [main]\r\njobs:\r\n  deploy:\r\n    runs-on: ubuntu-latest\r\n    steps:\r\n      - uses: actions\/checkout@v2\r\n      - uses: actions\/setup-node@v1\r\n        with:\r\n          node-version: \"24\"\r\n      - name: update-chabokan\r\n        env:\r\n         CHABOKAN_TOKEN: ${{ secrets.CHABOKAN_TOKEN }}\r\n        run: |\r\n          npm install -g @chabokan.net\/cli\r\n          chabok login -t \"$CHABOKAN_TOKEN\"\r\n          chabok deploy -s my-service<\/code><\/pre>\n<p>\u0628\u0647\u200c\u062c\u0627\u06cc <code>my-service<\/code> \u0647\u0645\u0627\u0646 \u0646\u0627\u0645 \u0633\u0631\u0648\u06cc\u0633\u06cc \u0631\u0627 \u0628\u06af\u0630\u0627\u0631 \u06a9\u0647 \u062f\u0631 \u067e\u0646\u0644 \u0633\u0627\u062e\u062a\u0647\u200c\u0627\u06cc. \u062a\u0648\u06a9\u0646 \u0631\u0627 \u0627\u0632 \u0628\u062e\u0634 \u06a9\u0644\u06cc\u062f \u062f\u0633\u062a\u0631\u0633\u06cc API \u0686\u0627\u0628\u06a9\u0627\u0646 \u0628\u06af\u06cc\u0631 \u0648 \u062f\u0631 GitHub \u0628\u0647\u200c\u0635\u0648\u0631\u062a Secret \u0628\u0627 \u0646\u0627\u0645 <code>CHABOKAN_TOKEN<\/code> \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u061b \u062f\u0627\u062e\u0644 \u06a9\u062f \u0646\u06af\u0630\u0627\u0631. \u0646\u0645\u0648\u0646\u0647 \u0631\u0633\u0645\u06cc \u0647\u0645 \u062f\u0631 \u0631\u06cc\u067e\u0648\u06cc <code>chabokan\/ci-cd-example<\/code> \u0647\u0633\u062a.<\/p>\n<p>\u0628\u0639\u062f \u0627\u0632 \u0627\u0648\u0644\u06cc\u0646 Deploy \u0645\u0648\u0641\u0642\u060c \u0644\u0627\u06af \u0628\u06cc\u0644\u062f \u0631\u0627 \u0628\u062e\u0648\u0627\u0646. \u0627\u06af\u0631 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0646\u0635\u0628 \u0646\u0634\u062f\u0647\u060c \u062f\u0633\u062a\u0648\u0631 start \u063a\u0644\u0637 \u0627\u0633\u062a\u060c \u06cc\u0627 \u0627\u067e \u0631\u0648\u06cc \u067e\u0648\u0631\u062a \u0627\u0634\u062a\u0628\u0627\u0647 \u06af\u0648\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0647\u0645\u0627\u0646\u200c\u062c\u0627 \u0645\u0639\u0644\u0648\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0628\u0639\u062f \u0627\u0632 \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0646 \u0633\u0631\u0648\u06cc\u0633\u060c \u0642\u0628\u0644 \u0627\u0632 \u0648\u0635\u0644 \u062f\u0627\u0645\u0646\u0647 \u0639\u0645\u0648\u0645\u06cc\u060c URL \u062f\u0627\u062e\u0644\u06cc\/\u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0686\u0627\u0628\u06a9\u0627\u0646 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646. \u0627\u06af\u0631 \u0647\u0645\u0627\u0646\u200c\u062c\u0627 \u062e\u0637\u0627\u06cc \u06f5\u06f0\u06f2 \u06cc\u0627 \u0635\u0641\u062d\u0647 \u062e\u0627\u0644\u06cc \u062f\u06cc\u062f\u06cc\u060c \u0647\u0646\u0648\u0632 \u0633\u0631\u0627\u063a DNS \u0646\u0631\u0648\u061b \u0627\u0648\u0644 \u0644\u0627\u06af \u0627\u0633\u062a\u0627\u0631\u062a \u0631\u0627 \u0628\u062e\u0648\u0627\u0646. \u062a\u0631\u062a\u06cc\u0628 \u062f\u0631\u0633\u062a \u0627\u06cc\u0646 \u0627\u0633\u062a: \u0628\u06cc\u0644\u062f \u0633\u0628\u0632 \u2192 \u067e\u0631\u0648\u0633\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u2192 \u067e\u0627\u0633\u062e \u06f2\u06f0\u06f0 \u0631\u0648\u06cc \u0645\u0633\u06cc\u0631 \u0633\u0644\u0627\u0645\u062a \u2192 \u0628\u0639\u062f \u062f\u0627\u0645\u0646\u0647.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u067e\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0648\u0635\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0627\u0628\u062a\u062f\u0627 \u0633\u0631\u0648\u06cc\u0633 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0631\u0627 \u0628\u0633\u0627\u0632 \u06cc\u0627 Connection String \u0622\u0645\u0627\u062f\u0647 \u0631\u0627 \u062f\u0631 env \u0628\u06af\u0630\u0627\u0631\u060c \u0628\u0639\u062f \u0627\u067e \u0631\u0627 Deploy \u06a9\u0646. \u0628\u0631\u0639\u06a9\u0633 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0686\u0646\u062f \u0628\u0627\u0631 Crash \u06a9\u0646\u062f \u0648 \u0641\u0642\u0637 \u0628\u0639\u062f \u0627\u0632 \u062a\u0646\u0638\u06cc\u0645 env \u067e\u0627\u06cc\u062f\u0627\u0631 \u0634\u0648\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0627\u0632 \u0642\u0627\u0628\u0644\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0622\u0645\u0627\u062f\u0647 \u0686\u0627\u0628\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc (\u0645\u062b\u0644\u0627\u064b \u0628\u0631\u0627\u06cc \u067e\u0646\u0644 \u06cc\u0627 \u0627\u0628\u0632\u0627\u0631 \u062c\u0627\u0646\u0628\u06cc)\u060c \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0627\u067e \u0627\u0635\u0644\u06cc Cursor \u0642\u0627\u0637\u06cc \u0646\u06a9\u0646. \u0627\u067e \u062e\u0648\u062f\u062a \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0633\u0631\u0648\u06cc\u0633 \u062c\u062f\u0627 \u0646\u06af\u0647 \u062f\u0627\u0631 \u062a\u0627 \u0628\u06cc\u0644\u062f \u0648 \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u06cc\u0634 \u0645\u0633\u062a\u0642\u0644 \u0628\u0645\u0627\u0646\u062f.<\/p>\n<h2>\u062f\u0627\u0645\u0646\u0647 \u0648 SSL \u0631\u0627 \u0648\u0635\u0644 \u06a9\u0646<\/h2>\n<p>URL \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0633\u0631\u0648\u06cc\u0633 \u0628\u0631\u0627\u06cc \u062a\u0633\u062a \u062e\u0648\u0628 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0628\u0631\u0627\u06cc \u0645\u062d\u0635\u0648\u0644 \u0648\u0627\u0642\u0639\u06cc \u062f\u0627\u0645\u0646\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc. \u062f\u0631 \u067e\u0646\u0644 \u0633\u0631\u0648\u06cc\u0633 \u062f\u0627\u0645\u0646\u0647 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u060c \u0631\u06a9\u0648\u0631\u062f DNS \u0631\u0627 \u0628\u0647 \u0622\u062f\u0631\u0633\u06cc \u06a9\u0647 \u0686\u0627\u0628\u06a9\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0627\u0634\u0627\u0631\u0647 \u0628\u062f\u0647\u060c \u0648 \u0635\u0628\u0631 \u06a9\u0646 \u062a\u0627 Propagate \u0634\u0648\u062f. \u0628\u0639\u062f \u0627\u0632 \u0627\u062a\u0635\u0627\u0644\u060c HTTPS \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646 \u062a\u0627 \u0645\u0631\u0648\u0631\u06af\u0631 \u0642\u0641\u0644 \u0627\u0645\u0646 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0628\u062f\u0647\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u062f\u0627\u0645\u0646\u0647 \u0631\u0627 \u0647\u0645 \u0627\u0632 \u0686\u0627\u0628\u06a9\u0627\u0646 \u06af\u0631\u0641\u062a\u0647\u200c\u0627\u06cc\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a DNS \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u062c\u0644\u0648 \u0645\u06cc\u200c\u0631\u0648\u062f. \u0628\u0631\u0627\u06cc \u062f\u0627\u0645\u0646\u0647 \u062e\u0627\u0631\u062c\u06cc \u0641\u0642\u0637 \u062d\u0648\u0627\u0633\u062a \u0628\u0647 TTL \u0648 \u062f\u0631\u0633\u062a \u0628\u0648\u062f\u0646 \u0631\u06a9\u0648\u0631\u062f A \u06cc\u0627 CNAME \u0628\u0627\u0634\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0633\u062a \u0633\u0631\u06cc\u0639 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc \u0641\u0639\u0644\u0627\u064b \u0631\u0648\u06cc \u0647\u0645\u0627\u0646 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0628\u0645\u0627\u0646\u06cc \u0648 \u062f\u0627\u0645\u0646\u0647 \u0631\u0627 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc. \u0648\u0642\u062a\u06cc \u062f\u0627\u0645\u0646\u0647 \u0631\u0627 \u0648\u0635\u0644 \u06a9\u0631\u062f\u06cc\u060c \u062f\u0631 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0627\u067e \u0647\u0631 \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0622\u062f\u0631\u0633 \u0645\u0637\u0644\u0642 \u062f\u0627\u0634\u062a\u06cc (\u0645\u062b\u0644\u0627\u064b <code>APP_URL<\/code>\u060c callback \u067e\u0631\u062f\u0627\u062e\u062a\u060c \u06cc\u0627 \u0622\u062f\u0631\u0633 \u0648\u0628\u0647\u0648\u06a9) \u0631\u0627 \u0628\u0647 \u062f\u0627\u0645\u0646\u0647 \u062c\u062f\u06cc\u062f \u0628\u0647\u200c\u0631\u0648\u0632 \u06a9\u0646 \u0648 \u06cc\u06a9 Deploy \u062f\u06cc\u06af\u0631 \u0628\u0632\u0646. \u062e\u06cc\u0644\u06cc \u0627\u0632 \u0631\u0628\u0627\u062a\u200c\u0647\u0627\u06cc \u062a\u0644\u06af\u0631\u0627\u0645 \u0648 OAuth\u0647\u0627 \u062f\u0642\u06cc\u0642\u0627\u064b \u0647\u0645\u06cc\u0646\u200c\u062c\u0627 \u0645\u06cc\u200c\u0634\u06a9\u0646\u0646\u062f: \u06a9\u062f \u0647\u0646\u0648\u0632 \u0628\u0647 <code>localhost<\/code> \u06cc\u0627 URL \u0645\u0648\u0642\u062a \u0627\u0634\u0627\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h2>\u062e\u0637\u0627\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c\u06cc \u06a9\u0647 \u0628\u0639\u062f \u0627\u0632 \u062f\u06cc\u067e\u0644\u0648\u06cc \u067e\u0631\u0648\u0698\u0647 Cursor \u0645\u06cc\u200c\u0628\u06cc\u0646\u06cc<\/h2>\n<p>\u0627\u06cc\u0646\u200c\u0647\u0627 \u0631\u0627 \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0646\u06cc\u0645\u200c\u0633\u0627\u0639\u062a \u062f\u0631 \u0644\u0627\u06af \u063a\u0631\u0642 \u0634\u0648\u06cc \u0686\u06a9 \u06a9\u0646:<\/p>\n<ul>\n<li><strong>\u062f\u0633\u062a\u0648\u0631 start \u0627\u0634\u062a\u0628\u0627\u0647:<\/strong> \u0631\u0648\u06cc \u0644\u0648\u06a9\u0627\u0644 <code>npm run dev<\/code> \u0632\u062f\u0647\u200c\u0627\u06cc\u060c \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0647\u0645\u0627\u0646 \u0631\u0627 \u06af\u0630\u0627\u0634\u062a\u0647\u200c\u0627\u06cc. \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u0628\u0627\u06cc\u062f <code>start<\/code> \u06cc\u0627 CMD \u062f\u0627\u06a9\u0631 \u062f\u0631\u0633\u062a \u0628\u0627\u0634\u062f.<\/li>\n<li><strong>\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 PORT:<\/strong> \u0627\u067e \u0647\u0645\u06cc\u0634\u0647 \u0631\u0648\u06cc <code>3000<\/code> \u06af\u0648\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u067e\u0644\u062a\u0641\u0631\u0645 \u067e\u0648\u0631\u062a \u062f\u06cc\u06af\u0631\u06cc \u062a\u0632\u0631\u06cc\u0642 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li><strong>Listen \u0641\u0642\u0637 \u0631\u0648\u06cc localhost:<\/strong> \u0633\u0631\u0648\u06cc\u0633 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0627\u0644\u0627 \u0645\u06cc\u200c\u0622\u06cc\u062f \u0648\u0644\u06cc \u0627\u0632 \u0628\u06cc\u0631\u0648\u0646 \u062f\u06cc\u062f\u0647 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0686\u0648\u0646 \u0628\u0647 <code>127.0.0.1<\/code> \u0628\u0627\u06cc\u0646\u062f \u0634\u062f\u0647.<\/li>\n<li><strong>env \u062c\u0627\u0627\u0641\u062a\u0627\u062f\u0647:<\/strong> \u06a9\u0644\u06cc\u062f API \u06cc\u0627 \u0622\u062f\u0631\u0633 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0641\u0642\u0637 \u062f\u0631 <code>.env<\/code> \u0644\u0648\u06a9\u0627\u0644 \u0628\u0648\u062f\u0647 \u0648 \u0628\u0647 \u067e\u0646\u0644 \u0645\u0646\u062a\u0642\u0644 \u0646\u0634\u062f\u0647.<\/li>\n<li><strong>\u0628\u06cc\u0644\u062f \u0646\u0627\u0642\u0635:<\/strong> \u0628\u0631\u0627\u06cc Next \u06cc\u0627 \u0641\u0631\u0627\u0646\u062a\u200c\u0647\u0627\u06cc \u0628\u06cc\u0644\u062f\u062f\u0627\u0631\u060c \u0645\u0631\u062d\u0644\u0647 <code>build<\/code> \u062f\u0631 \u0645\u0633\u06cc\u0631 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062f\u06cc\u062f\u0647 \u0646\u0634\u062f\u0647 \u0648 \u0641\u0642\u0637 \u0633\u0648\u0631\u0633 \u062e\u0627\u0645 \u0627\u062c\u0631\u0627 \u0634\u062f\u0647.<\/li>\n<li><strong>\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0636\u0631\u0648\u0631\u06cc \u062f\u0631 <code>.gitignore<\/code>:<\/strong> \u06af\u0627\u0647\u06cc \u067e\u0648\u0634\u0647 \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627 \u0631\u0627 \u0647\u0645 ignore \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc.<\/li>\n<li><strong>\u0641\u0631\u0636 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0622\u0632\u0627\u062f \u0628\u0631\u0627\u06cc \u0647\u0645\u0647 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627:&lt;\/strong \u0627\u06af\u0631 dependency \u062e\u0635\u0648\u0635\u06cc \u06cc\u0627 \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc \u062e\u0627\u0635 \u062f\u0627\u0631\u06cc\u060c \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0628\u06cc\u0644\u062f \u0633\u0631\u0648\u06cc\u0633 \u0647\u0645 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646.<\/strong><\/li>\n<li><strong>Node version \u0645\u062a\u0641\u0627\u0648\u062a:<\/strong> \u0631\u0648\u06cc \u0644\u067e\u200c\u062a\u0627\u067e Node 22 \u062f\u0627\u0631\u06cc \u0648 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0648\u06cc \u06f1\u06f8 \u0628\u06cc\u0644\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f. \u0646\u0633\u062e\u0647 \u0631\u0627 \u062f\u0631 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0631\u0648\u06cc\u0633 \u06cc\u0627 \u0627\u06cc\u0645\u06cc\u062c Docker \u0642\u0641\u0644 \u06a9\u0646.<\/li>\n<li><strong>\u0641\u0631\u0627\u0645\u0648\u0634 \u06a9\u0631\u062f\u0646 health check:<\/strong> \u0627\u06af\u0631 \u0645\u0633\u06cc\u0631 <code>\/health<\/code> \u0646\u062f\u0627\u0631\u06cc\u060c \u0628\u0631\u0627\u06cc \u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0628\u0639\u062f\u06cc \u0633\u062e\u062a\u200c\u062a\u0631 \u0645\u06cc\u200c\u0634\u0648\u062f. \u06cc\u06a9 \u067e\u0627\u0633\u062e \u0633\u0627\u062f\u0647 JSON \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a.<\/li>\n<li><strong>\u0622\u067e\u0644\u0648\u062f secrets \u062f\u0627\u062e\u0644 \u0686\u062a Cursor:<\/strong> \u06a9\u0644\u06cc\u062f \u0631\u0627 \u062f\u0631 Prompt \u0646\u06af\u0630\u0627\u0631 \u06a9\u0647 \u0628\u0639\u062f\u0627\u064b \u062f\u0631 \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u0628\u0645\u0627\u0646\u062f\u061b \u0645\u0633\u062a\u0642\u06cc\u0645 \u062f\u0631 \u067e\u0646\u0644 env \u0648\u0627\u0631\u062f \u06a9\u0646.<\/li>\n<\/ul>\n<p>\u06cc\u06a9 \u0639\u0627\u062f\u062a \u062e\u0648\u0628: \u0628\u0639\u062f \u0627\u0632 \u0647\u0631 Deploy\u060c \u0647\u0645\u0627\u0646 \u0645\u0633\u06cc\u0631 \u0634\u0627\u062f \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u06cc\u06a9\u200c\u0628\u0627\u0631 \u0628\u0627 \u062f\u0627\u0645\u0646\u0647 \u0648\u0627\u0642\u0639\u06cc \u062a\u0633\u062a \u06a9\u0646\u061b \u0635\u0641\u062d\u0647 \u0627\u0648\u0644\u060c \u0644\u0627\u06af\u06cc\u0646\u060c \u0648 \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a API. \u0644\u0648\u06a9\u0627\u0644 \u0628\u0627 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u062f\u0631 CORS\u060c \u06a9\u0648\u06a9\u06cc Secure \u0648 \u0622\u062f\u0631\u0633 callback \u0641\u0631\u0642 \u062f\u0627\u0631\u062f.<\/p>\n<h2>\u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc\u060c \u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0633\u0631\u0648\u0631 \u0627\u0628\u0631\u06cc\u061f<\/h2>\n<p>\u0627\u06af\u0631 \u0627\u067e \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0627\u0633\u062a\u060c \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc \u0633\u0631\u06cc\u0639 \u0622\u0646\u0644\u0627\u06cc\u0646 \u0634\u0648\u06cc \u0648 \u062d\u0648\u0635\u0644\u0647 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u0646\u062f\u0627\u0631\u06cc\u060c <strong>\u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \/ PaaS<\/strong> \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u0646\u0637\u0642\u06cc \u0628\u0631\u0627\u06cc \u062e\u0631\u0648\u062c\u06cc Cursor \u0627\u0633\u062a. \u0648\u0642\u062a\u06cc \u0628\u0647 \u06a9\u0631\u0646\u0644 \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0633\u06cc\u0633\u062a\u0645\u06cc \u062e\u0627\u0635\u060c \u06cc\u0627 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0627\u0645\u0644 \u0634\u0628\u06a9\u0647 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u060c \u0633\u0631\u0627\u063a \u0633\u0631\u0648\u0631 \u0627\u0628\u0631\u06cc (VPS) \u0628\u0631\u0648. \u0628\u0631\u0627\u06cc \u0627\u06a9\u062b\u0631 \u062f\u0645\u0648\u0647\u0627\u06cc Agent\u060c \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645\u060c API \u0646\u0648\u062f\u060c \u0648 \u0641\u0631\u0627\u0646\u062a \u0628\u06cc\u0644\u062f\u0634\u062f\u0647\u060c PaaS \u0645\u0633\u06cc\u0631 \u06a9\u0648\u062a\u0627\u0647\u200c\u062a\u0631\u06cc \u0627\u0633\u062a.<\/p>\n<h2>\u06cc\u06a9 \u0628\u0627\u0631 \u0645\u0633\u06cc\u0631 \u0631\u0627 \u062a\u0627 \u0622\u062e\u0631 \u0628\u0631\u0648<\/h2>\n<p>\u0627\u06af\u0631 \u0647\u0645\u06cc\u0646 \u062d\u0627\u0644\u0627 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 Cursor \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u062f\u0627\u0631\u06cc\u060c \u06a9\u0648\u062a\u0627\u0647\u200c\u062a\u0631\u06cc\u0646 \u0645\u0633\u06cc\u0631 \u0639\u0645\u0644\u06cc \u0627\u06cc\u0646 \u0627\u0633\u062a: \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a start \u0648 env \u0631\u0627 \u0645\u0631\u062a\u0628 \u06a9\u0646\u060c \u0631\u0648\u06cc GitHub Push \u0628\u0632\u0646\u060c \u062f\u0631 \u0686\u0627\u0628\u06a9\u0627\u0646 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0645\u200c\u0627\u0633\u062a\u06a9 \u0628\u0633\u0627\u0632\u060c \u06a9\u062f \u0631\u0627 Deploy \u06a9\u0646\u060c \u062f\u0627\u0645\u0646\u0647 \u062a\u0633\u062a \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646. \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc \u0627\u0632 <a href=\"https:\/\/chabokan.net\/\">\u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0686\u0627\u0628\u06a9\u0627\u0646<\/a> \u0648 \u0627\u0639\u062a\u0628\u0627\u0631 \u0631\u0627\u06cc\u06af\u0627\u0646 \u062d\u0633\u0627\u0628 \u062c\u062f\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc \u0648 \u062c\u0632\u0626\u06cc\u0627\u062a \u0631\u0627 \u0627\u0632 <a href=\"https:\/\/docs.chabokan.net\/\">docs.chabokan.net<\/a> \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc. \u062a\u0645\u0631\u06cc\u0646 \u0631\u0627 \u0648\u0642\u062a\u06cc \u062a\u0645\u0627\u0645\u200c\u0634\u062f\u0647 \u062d\u0633\u0627\u0628 \u06a9\u0646 \u06a9\u0647 \u0647\u0645\u0627\u0646 \u0627\u067e\u0650 \u062f\u0627\u062e\u0644 \u0627\u062f\u06cc\u062a\u0648\u0631\u060c \u0631\u0648\u06cc \u06cc\u06a9 URL \u0648\u0627\u0642\u0639\u06cc \u067e\u0627\u0633\u062e \u0628\u062f\u0647\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0647\u0646\u0648\u0632 \u0628\u06cc\u0646 \u00ab\u0647\u0645\u06cc\u0646 \u0627\u0644\u0627\u0646 \u062f\u06cc\u067e\u0644\u0648\u06cc\u00bb \u0648 \u00ab\u0628\u0639\u062f\u0627\u064b \u0633\u0631\u0648\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u0645\u00bb \u0645\u0631\u062f\u062f\u06cc\u060c \u06cc\u06a9 \u062f\u0645\u0648\u06cc \u06a9\u0648\u0686\u06a9 \u0631\u0627 \u062a\u0627 \u062f\u0627\u0645\u0646\u0647 \u067e\u06cc\u0634 \u0628\u0628\u0631. \u0647\u0632\u06cc\u0646\u0647 \u06cc\u0627\u062f\u06af\u0631\u0641\u062a\u0646 \u0645\u0633\u06cc\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u0648\u0627\u0642\u0639\u06cc\u060c \u06a9\u0645\u062a\u0631 \u0627\u0632 \u062f\u0648\u0628\u0627\u0631\u0647\u200c\u06a9\u0627\u0631\u06cc \u0648\u0642\u062a\u06cc \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0645\u06cc\u200c\u0622\u06cc\u062f \u062a\u0645\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f. \u067e\u0646\u0644 \u0686\u0627\u0628\u06a9\u0627\u0646\u060c CLI \u0648 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0628\u0631\u0627\u06cc \u0647\u0645\u06cc\u0646 \u06a9\u0627\u0631 \u06a9\u0646\u0627\u0631 \u0647\u0645 \u06af\u0630\u0627\u0634\u062a\u0647 \u0634\u062f\u0647\u200c\u0627\u0646\u062f\u061b \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0634\u0631\u0648\u0639 \u06a9\u0646 \u0648 \u0641\u0642\u0637 \u0648\u0642\u062a\u06cc \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u06cc \u0633\u0631\u0627\u063a \u0633\u0631\u0648\u0631 \u0627\u0628\u0631\u06cc \u0628\u0631\u0648.<\/p>\n<h2>\u0633\u0648\u0627\u0644\u0627\u062a \u067e\u0631\u062a\u06a9\u0631\u0627\u0631 \u062f\u0631\u0628\u0627\u0631\u0647 \u062f\u06cc\u067e\u0644\u0648\u06cc \u067e\u0631\u0648\u0698\u0647 Cursor<\/h2>\n<h3>\u0622\u06cc\u0627 \u0628\u0627\u06cc\u062f \u062d\u062a\u0645\u0627\u064b Docker \u0628\u0644\u062f \u0628\u0627\u0634\u0645\u061f<\/h3>\n<p>\u062e\u06cc\u0631. \u0627\u06af\u0631 \u0627\u0633\u062a\u06a9\u200c\u0627\u062a \u062f\u0631 \u0644\u06cc\u0633\u062a \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0647\u0633\u062a (\u0645\u062b\u0644\u0627\u064b Node \u06cc\u0627 Python)\u060c \u0647\u0645\u0627\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a. Docker \u0648\u0642\u062a\u06cc \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u06a9\u0647 \u0628\u06cc\u0644\u062f \u0633\u0641\u0627\u0631\u0634\u06cc \u062f\u0627\u0631\u06cc \u06cc\u0627 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u063a\u06cc\u0631\u0645\u0639\u0645\u0648\u0644.<\/p>\n<h3>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0645 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0627\u0632 \u067e\u0648\u0634\u0647 \u0644\u0648\u06a9\u0627\u0644 \u0648 \u0628\u062f\u0648\u0646 Git \u062f\u06cc\u067e\u0644\u0648\u06cc \u06a9\u0646\u0645\u061f<\/h3>\n<p>\u0628\u0631\u0627\u06cc \u06a9\u0627\u0631 \u062c\u062f\u06cc\u060c Git \u0631\u0627 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u061b \u0647\u0645 \u0646\u0633\u062e\u0647 \u062f\u0627\u0631\u06cc\u060c \u0647\u0645 CI\/CD\u060c \u0647\u0645 \u0628\u0631\u06af\u0634\u062a \u0628\u0647 commit \u0642\u0628\u0644\u06cc. \u0622\u067e\u0644\u0648\u062f \u062f\u0633\u062a\u06cc \u0628\u0631\u0627\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u062e\u06cc\u0644\u06cc \u062d\u062c\u06cc\u0645 \u06cc\u0627 \u0648\u0636\u0639\u06cc\u062a\u200c\u0647\u0627\u06cc \u062e\u0627\u0635 \u062f\u0631 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0622\u0645\u062f\u0647\u060c \u0627\u0645\u0627 \u0645\u0633\u06cc\u0631 \u0627\u0635\u0644\u06cc \u062a\u06cc\u0645\u200c\u0647\u0627 Git \u0627\u0633\u062a.<\/p>\n<h3>\u062a\u0641\u0627\u0648\u062a \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628 \u0628\u0627 \u0622\u0645\u0648\u0632\u0634 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0686\u06cc\u0633\u062a\u061f<\/h3>\n<p>\u0622\u0646 \u0645\u0637\u0644\u0628 \u0645\u0641\u0647\u0648\u0645 Auto Deployment \u0648 \u0641\u0627\u0635\u0644\u0647 \u06af\u0631\u0641\u062a\u0646 \u0627\u0632 FTP \u0631\u0627 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u062f. \u0627\u06cc\u0646\u062c\u0627 \u0631\u0648\u06cc \u0633\u0646\u0627\u0631\u06cc\u0648\u06cc \u0645\u0634\u062e\u0635 \u00ab\u0627\u067e \u0633\u0627\u062e\u062a\u0647\u200c\u0634\u062f\u0647 \u062f\u0631 Cursor \u2192 \u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0686\u0627\u0628\u06a9\u0627\u0646\u00bb \u0645\u062a\u0645\u0631\u06a9\u0632\u06cc\u0645: \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u062f\u06cc\u062a\u0648\u0631\u060c start\/PORT\u060c \u0648 \u062f\u0648 \u0645\u0633\u06cc\u0631 Git \u0648 GitHub Actions.<\/p>\n<h3>\u067e\u0631\u0648\u0698\u0647 \u0628\u0627 Cursor \u0648 Claude\/ChatGPT \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647\u061b \u0628\u0627\u0632 \u0647\u0645 \u0647\u0645\u06cc\u0646 \u0645\u0633\u06cc\u0631 \u0627\u0633\u062a\u061f<\/h3>\n<p>\u0628\u0644\u0647. tooling \u062a\u0648\u0644\u06cc\u062f \u06a9\u062f \u0639\u0648\u0636 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0648\u0644\u06cc \u062e\u0631\u0648\u062c\u06cc \u0647\u0645\u0627\u0646 \u0631\u06cc\u067e\u0648\u06cc Git \u0627\u0633\u062a. \u0622\u0646\u0686\u0647 \u067e\u0644\u062a\u0641\u0631\u0645 \u0645\u06cc\u200c\u0628\u06cc\u0646\u062f\u060c \u06a9\u062f \u0648 \u062f\u0633\u062a\u0648\u0631 \u0627\u062c\u0631\u0627\u0633\u062a\u061b \u0646\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u062f\u0627\u0645 Agent \u0622\u0646 \u0631\u0627 \u0646\u0648\u0634\u062a\u0647.<\/p>\n<h3>\u0686\u0637\u0648\u0631 \u0646\u0633\u062e\u0647 \u062c\u062f\u06cc\u062f \u0631\u0627 \u0628\u0639\u062f \u0627\u0632 \u0627\u0648\u0644\u06cc\u0646 \u062f\u06cc\u067e\u0644\u0648\u06cc \u0645\u0646\u062a\u0634\u0631 \u06a9\u0646\u0645\u061f<\/h3>\n<p>\u0627\u06af\u0631 CI\/CD \u0631\u0627 \u0628\u0627 <code>chabok deploy<\/code> \u0648\u0635\u0644 \u06a9\u0631\u062f\u0647 \u0628\u0627\u0634\u06cc\u060c Push \u0628\u0647 \u0634\u0627\u062e\u0647 \u0645\u062a\u0635\u0644 \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a. \u0627\u06af\u0631 \u0645\u0633\u06cc\u0631 \u06a9\u0646\u0633\u0648\u0644 Git \u0631\u0627 \u0631\u0641\u062a\u0647\u200c\u0627\u06cc\u060c pull \u06af\u0631\u0641\u062a\u0646 \u0622\u062e\u0631\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0648 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u0633\u0631\u0648\u06cc\u0633\u060c<\/p>\n<p>\u0628\u0631\u0627\u06cc \u062c\u0632\u0626\u06cc\u0627\u062a \u0633\u0627\u062e\u062a \u0645\u062e\u0632\u0646\u060c <a href=\"https:\/\/docs.github.com\/en\/get-started\/quickstart\/create-a-repo\" rel=\"nofollow noopener\" target=\"_blank\">\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0631\u0633\u0645\u06cc GitHub<\/a> \u0631\u0627 \u0647\u0645 \u0628\u0628\u06cc\u0646.<\/p>\n<p>\u0646\u0633\u062e\u0647 \u062c\u062f\u06cc\u062f \u0631\u0627 \u0645\u06cc\u200c\u0622\u0648\u0631\u062f.<\/p>\n<h3>\u0628\u0631\u0627\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0686\u0647 \u06a9\u0627\u0631 \u06a9\u0646\u0645\u061f<\/h3>\n<p>\u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0631\u0627 \u062f\u0627\u062e\u0644 \u0647\u0645\u0627\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u067e \u00ab\u0628\u0631\u0627\u06cc \u0647\u0645\u06cc\u0634\u0647\u00bb \u0646\u06af\u0630\u0627\u0631. \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631\u060c \u0627\u0632 <a href=\"https:\/\/chabokan.net\/\">\u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0627\u0628\u0631\u06cc \u0686\u0627\u0628\u06a9\u0627\u0646<\/a> \u06cc\u0627 \u0633\u0631\u0648\u06cc\u0633 \u062c\u062f\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646 \u0648 \u0641\u0642\u0637 Connection String \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a env \u0628\u0647 \u0627\u067e \u0628\u062f\u0647.<\/p>\n<h3>\u0622\u06cc\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0645 \u0686\u0646\u062f \u0633\u0631\u0648\u06cc\u0633 \u0627\u0632 \u06cc\u06a9 \u0631\u06cc\u067e\u0648 \u062f\u06cc\u067e\u0644\u0648\u06cc \u06a9\u0646\u0645\u061f<\/h3>\n<p>\u0628\u0644\u0647\u060c \u0627\u06af\u0631 \u0645\u0648\u0646\u0648\u0631\u06cc\u067e\u0648 \u062f\u0627\u0631\u06cc. \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u0631\u0627\u06cc \u0647\u0631 \u0627\u067e \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u062c\u062f\u0627 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc \u0648 \u062f\u0631 CI \u0628\u0627 \u0645\u0633\u06cc\u0631 \u06cc\u0627 \u0646\u0627\u0645 \u0633\u0631\u0648\u06cc\u0633 \u0645\u062a\u0641\u0627\u0648\u062a <code>chabok deploy<\/code> \u0645\u06cc\u200c\u0632\u0646\u06cc. \u0633\u0639\u06cc \u0646\u06a9\u0646 \u0641\u0631\u0627\u0646\u062a \u0648 API \u0648 Worker \u0631\u0627 \u062f\u0627\u062e\u0644 \u06cc\u06a9 \u067e\u0631\u0648\u0633\u0647 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc \u0645\u06af\u0631 \u0627\u06cc\u0646\u06a9\u0647 \u0648\u0627\u0642\u0639\u0627\u064b \u06cc\u06a9 \u0628\u0627\u06cc\u0646\u0631\u06cc \u0648\u0627\u062d\u062f \u0628\u0627\u0634\u0646\u062f.<\/p>\n<h3>\u0628\u0631\u0627\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0622\u067e\u0644\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631 \u0686\u0647 \u0628\u0627\u06cc\u062f \u06a9\u0631\u062f\u061f<\/h3>\n<p>\u062f\u06cc\u0633\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u0645\u062d\u0644 \u062f\u0627\u0626\u0645\u06cc \u0641\u0627\u06cc\u0644 \u06a9\u0627\u0631\u0628\u0631 \u0641\u0631\u0636 \u0646\u06a9\u0646. \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u0632 \u0641\u0636\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u0628\u0631\u06cc \u06cc\u0627 \u0628\u0627\u06a9\u062a \u0622\u0628\u062c\u06a9\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646 \u0648 \u0641\u0642\u0637 \u0622\u062f\u0631\u0633 \u062f\u0633\u062a\u0631\u0633\u06cc \u0631\u0627 \u062f\u0631 env \u0628\u06af\u0630\u0627\u0631. \u0628\u0639\u062f \u0627\u0632 Redeploy\u060c \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0631\u0648\u06cc \u0644\u0627\u06cc\u0647 \u0645\u0648\u0642\u062a\u06cc \u0627\u067e \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0632 \u0628\u06cc\u0646 \u0628\u0631\u0648\u0646\u062f.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u067e\u0631\u0648\u0698\u0647\u200c\u0627\u062a \u0631\u0627 \u062f\u0627\u062e\u0644 Cursor \u0633\u0627\u062e\u062a\u06cc\u060c \u0631\u0648\u06cc \u0644\u0648\u06a9\u0627\u0644 \u0628\u0627\u0644\u0627 \u0645\u06cc\u200c\u0622\u06cc\u062f\u060c \u0648 \u062d\u062a\u06cc \u0686\u0646\u062f \u0646\u0641\u0631 \u0627\u0632 \u062f\u0648\u0633\u062a\u0627\u0646\u062a \u0647\u0645 \u062f\u0645\u0648 \u0631\u0627 \u062f\u06cc\u062f\u0647\u200c\u0627\u0646\u062f. \u0642\u062f\u0645 \u0628\u0639\u062f\u06cc \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0647\u0645\u06cc\u0646\u200c\u062c\u0627 \u06af\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f: \u0686\u0637\u0648\u0631 \u0647\u0645\u06cc\u0646 \u0627\u067e \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u062f\u0627\u0645\u0646\u0647 \u0648\u0627\u0642\u0639\u06cc \u0622\u0646\u0644\u0627\u06cc\u0646 \u06a9\u0646\u06cc\u060c \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u062e\u0648\u062f\u062a \u0633\u0631\u0648\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0631\u0627\u0647 \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u060c Nginx \u0631\u0627 \u062f\u0633\u062a\u06cc \u06a9\u0627\u0646\u0641\u06cc\u06af \u06a9\u0646\u06cc\u060c \u06cc\u0627 \u0647\u0631 \u0628\u0627\u0631 \u0628\u0627 FTP \u0641\u0627\u06cc\u0644 \u0622\u067e\u0644\u0648\u062f \u06a9\u0646\u06cc\u061f \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628 \u0645\u0633\u06cc\u0631 \u0645\u0634\u062e\u0635 \u062f\u06cc\u067e\u0644\u0648\u06cc \u067e\u0631\u0648\u0698\u0647 Cursor \u0631\u0648\u06cc \u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0686\u0627\u0628\u06a9\u0627\u0646 \u0631\u0627 \u0642\u062f\u0645\u200c\u0628\u0647\u200c\u0642\u062f\u0645 \u062c\u0644\u0648 \u0645\u06cc\u200c\u0628\u0631\u062f: \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u067e\u0631\u0648\u0698\u0647 \u062f\u0631 \u0627\u062f\u06cc\u062a\u0648\u0631\u060c Push \u0628\u0647 GitHub \u06cc\u0627 GitLab\u060c \u0633\u0627\u062e\u062a \u0633\u0631\u0648\u06cc\u0633 PaaS\u060c \u062a\u0646\u0638\u06cc\u0645 env\u060c \u0627\u0646\u062a\u0634\u0627\u0631\u060c \u0648 \u0648\u0635\u0644 \u06a9\u0631\u062f\u0646 \u062f\u0627\u0645\u0646\u0647 \u0628\u0627 SSL. \u0627\u06af\u0631 \u0642\u0628\u0644\u0627\u064b \u062f\u0631\u0628\u0627\u0631\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062e\u0648\u0627\u0646\u062f\u0647\u200c\u0627\u06cc\u060c \u0627\u06cc\u0646\u062c\u0627 \u0647\u0645\u0627\u0646 \u0627\u06cc\u062f\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u067e\u06cc \u06a9\u0647 \u0628\u0627 Cursor \u0633\u0627\u062e\u062a\u0647\u200c\u0627\u06cc \u0639\u0645\u0644\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u061b \u0628\u0631\u0627\u06cc \u0645\u0631\u0648\u0631 \u0645\u0641\u0647\u0648\u0645 \u06a9\u0644\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 (Auto Deployment) \u0686\u06cc\u0633\u062a\u061f \u0631\u0627 \u0647\u0645 \u0628\u0628\u06cc\u0646\u06cc. \u0686\u0647 \u0686\u06cc\u0632\u0647\u0627\u06cc\u06cc \u0644\u0627\u0632\u0645 \u062f\u0627\u0631\u06cc\u061f \u0642\u0628\u0644 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0627\u06cc\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0645 \u062f\u0633\u062a \u0628\u06af\u0630\u0627\u0631: \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u0642\u0627\u0628\u0644 \u0627\u062c\u0631\u0627 \u062f\u0631 Cursor (Node\u060c Python\u060c \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u06cc\u0627 Docker) \u062d\u0633\u0627\u0628 GitHub \u06cc\u0627 GitLab \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0686\u0627\u0628\u06a9\u0627\u0646 \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0633\u0627\u062e\u062a \u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u0633\u062a \u0627\u0628\u0631\u06cc \u0644\u06cc\u0633\u062a \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc (\u062d\u062f\u0627\u0642\u0644 \u0647\u0645\u0627\u0646\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0644\u0648\u06a9\u0627\u0644 \u062f\u0631 .env \u062f\u0627\u0631\u06cc) \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc: \u062f\u0627\u0645\u0646\u0647 \u0628\u0631\u0627\u06cc \u0645\u0631\u062d\u0644\u0647 \u0646\u0647\u0627\u06cc\u06cc \u0627\u06af\u0631 \u067e\u0631\u0648\u0698\u0647 \u0647\u0646\u0648\u0632 \u0641\u0642\u0637 \u062f\u0631 \u0686\u062a Cursor \u0627\u0633\u062a \u0648 \u0631\u0648\u06cc \u062f\u06cc\u0633\u06a9 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0641\u0648\u0644\u062f\u0631 \u0645\u0646\u0638\u0645 \u0630\u062e\u06cc\u0631\u0647 \u0646\u0634\u062f\u0647\u060c \u0627\u0648\u0644 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u067e\u0648\u0634\u0647 \u0648\u0627\u0642\u0639\u06cc \u0628\u0627 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":15992,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,17,31],"tags":[],"class_list":["post-15991","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","category-hosting","category-ai"],"_links":{"self":[{"href":"https:\/\/chabokan.net\/blog\/wp-json\/wp\/v2\/posts\/15991","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chabokan.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chabokan.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chabokan.net\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/chabokan.net\/blog\/wp-json\/wp\/v2\/comments?post=15991"}],"version-history":[{"count":3,"href":"https:\/\/chabokan.net\/blog\/wp-json\/wp\/v2\/posts\/15991\/revisions"}],"predecessor-version":[{"id":15997,"href":"https:\/\/chabokan.net\/blog\/wp-json\/wp\/v2\/posts\/15991\/revisions\/15997"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chabokan.net\/blog\/wp-json\/wp\/v2\/media\/15992"}],"wp:attachment":[{"href":"https:\/\/chabokan.net\/blog\/wp-json\/wp\/v2\/media?parent=15991"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chabokan.net\/blog\/wp-json\/wp\/v2\/categories?post=15991"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chabokan.net\/blog\/wp-json\/wp\/v2\/tags?post=15991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}