{"id":6809,"date":"2026-08-06T17:00:43","date_gmt":"2026-08-06T13:30:43","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=6809"},"modified":"2026-08-06T17:00:43","modified_gmt":"2026-08-06T13:30:43","slug":"%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%b1%d8%a7%d9%87%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c-%d9%88-%d8%b3%d8%b1%d9%88-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86%d9%87%d8%a7%db%8c-fla-2","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%b1%d8%a7%d9%87%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c-%d9%88-%d8%b3%d8%b1%d9%88-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86%d9%87%d8%a7%db%8c-fla-2\/","title":{"rendered":"\u0622\u0645\u0648\u0632\u0634 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u0633\u0631\u0648 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc Flask \u0628\u0627 Gunicorn \u0648 Nginx \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 24.04"},"content":{"rendered":"<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u0645\u0642\u062f\u0645\u0647<\/strong> \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u06cc\u06a9\u0631\u0648\u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 Flask \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 24.04 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. \u0628\u062e\u0634 \u0639\u0645\u062f\u0647 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0646\u062d\u0648\u0647 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Gunicorn\u060c \u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 (Reverse Proxy) \u062f\u0631 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/strong> \u067e\u06cc\u0634 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0628\u0627\u06cc\u062f \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f:<\/p>\n<ul dir=\"auto\">\n<li class=\"text-start\">\u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0628\u0627 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 24.04 \u0648 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u063a\u06cc\u0631 \u0631\u0648\u062a (non-root) \u0628\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc sudo. \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0633\u0631\u0648\u0631 \u062f\u0631 \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f (Parmin Cloud) \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/li>\n<li class=\"text-start\">\u0648\u0628\u200c\u0633\u0631\u0648\u0631 Nginx \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0646\u0635\u0628 \u0628\u0627\u0634\u062f.<\/li>\n<li class=\"text-start\">\u06cc\u06a9 \u0646\u0627\u0645 \u062f\u0627\u0645\u0646\u0647 \u06a9\u0647 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0627\u0634\u0627\u0631\u0647 (Point) \u0634\u062f\u0647 \u0628\u0627\u0634\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u0628\u0647 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062f\u0627\u0645\u0646\u0647\u200c\u0647\u0627 \u0648 DNS \u062f\u0631 \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f\u060c \u0646\u062d\u0648\u0647 \u0627\u062a\u0635\u0627\u0644 \u062f\u0627\u0645\u0646\u0647\u200c\u0647\u0627 \u0628\u0647 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u06cc\u0627\u062f \u0628\u06af\u06cc\u0631\u06cc\u062f. \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0641\u0631\u0636 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0634\u0645\u0627 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc DNS \u0632\u06cc\u0631 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f:\n<ul dir=\"auto\">\n<li class=\"text-start\">\u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f A \u0628\u0627 \u0646\u0627\u0645 <code class=\"cursor-pointer codespan\">your_domain<\/code> \u06a9\u0647 \u0628\u0647 \u0622\u062f\u0631\u0633 IP \u0639\u0645\u0648\u0645\u06cc \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0627\u0634\u0627\u0631\u0647 \u062f\u0627\u0631\u062f.<\/li>\n<li class=\"text-start\">\u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f A \u0628\u0627 \u0646\u0627\u0645 <code class=\"cursor-pointer codespan\">www.your_domain<\/code> \u06a9\u0647 \u0628\u0647 \u0622\u062f\u0631\u0633 IP \u0639\u0645\u0648\u0645\u06cc \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0627\u0634\u0627\u0631\u0647 \u062f\u0627\u0631\u062f.<\/li>\n<\/ul>\n<\/li>\n<li class=\"text-start\">\u0622\u0634\u0646\u0627\u06cc\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0628\u0627 \u0645\u0634\u062e\u0635\u0627\u062a WSGI\u060c \u06a9\u0647 \u0633\u0631\u0648\u0631 Gunicorn \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Flask \u0634\u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<\/ul>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f1 \u2014 \u0646\u0635\u0628 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u0627\u0632 \u0645\u062e\u0627\u0632\u0646 \u0627\u0648\u0628\u0648\u0646\u062a\u0648<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u0648\u0644\u06cc\u0646 \u0642\u062f\u0645 \u0634\u0645\u0627 \u0646\u0635\u0628 \u062a\u0645\u0627\u0645 \u0642\u0637\u0639\u0627\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0632 \u0645\u062e\u0627\u0632\u0646 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f. \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627 \u0634\u0627\u0645\u0644 <code class=\"cursor-pointer codespan\">pip<\/code> (\u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06a9\u06cc\u062c \u067e\u0627\u06cc\u062a\u0648\u0646) \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0634\u0645\u0627\u0633\u062a. \u0634\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u062e\u06cc \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc Gunicorn \u0644\u0627\u0632\u0645 \u0647\u0633\u062a\u0646\u062f\u060c \u0646\u06cc\u0627\u0632 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u0628\u062a\u062f\u0627 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c312\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c72 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo apt update<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-13\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0645\u062d\u06cc\u0637 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f. \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627 \u0634\u0627\u0645\u0644 <code class=\"cursor-pointer codespan\">python3-pip<\/code> \u0648 \u0686\u0646\u062f\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u062a\u0648\u0633\u0639\u0647 \u062f\u06cc\u06af\u0631 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0642\u0648\u06cc \u0647\u0633\u062a\u0646\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c314\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c73 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo apt install python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-17\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0627 \u0646\u0635\u0628 \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u060c \u0634\u0645\u0627 \u0622\u0645\u0627\u062f\u0647 \u0647\u0633\u062a\u06cc\u062f \u062a\u0627 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc (Virtual Environment) \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f2 \u2014 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Flask \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u0633\u0627\u06cc\u0631 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0627\u06cc\u0632\u0648\u0644\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u0628\u062a\u062f\u0627 \u067e\u06a9\u06cc\u062c <code class=\"cursor-pointer codespan\">python3-venv<\/code> \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c316\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c74 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo apt install python3-venv<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-27\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633\u060c \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u0635\u0644\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 Flask \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0648 \u0648\u0627\u0631\u062f \u0622\u0646 \u0634\u0648\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c318\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c75 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">mkdir ~\/myproject<\/div>\n<div class=\"cm-line\">cd ~\/myproject<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-31\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0627 \u062a\u0627\u06cc\u067e \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631\u060c \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f\u06cc\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u067e\u0631\u0648\u0698\u0647 Flask \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c319\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c76 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">python3 -m venv myprojectenv<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-35\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0646 \u06a9\u0627\u0631 \u06cc\u06a9 \u0646\u0633\u062e\u0647 \u0645\u062d\u0644\u06cc \u0627\u0632 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0648 <code class=\"cursor-pointer codespan\">pip<\/code> \u0631\u0627 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0647 \u0646\u0627\u0645 <code class=\"cursor-pointer codespan\">myprojectenv<\/code> \u062f\u0631\u0648\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627 \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u067e\u06cc\u0634 \u0627\u0632 \u0646\u0635\u0628 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc\u060c \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0627 \u062a\u0627\u06cc\u067e \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c322\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c77 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">source myprojectenv\/bin\/activate<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-41\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u067e\u0631\u0627\u0645\u067e\u062a \u0634\u0645\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u062f \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u062f\u0631 \u062d\u0627\u0644 \u06a9\u0627\u0631 \u0647\u0633\u062a\u06cc\u062f. \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f: <code class=\"cursor-pointer codespan\">(myprojectenv)user@host:~\/myproject$<\/code>.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f3 \u2014 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Flask<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u062e\u0648\u062f \u0647\u0633\u062a\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f Flask \u0648 Gunicorn \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0648 \u0633\u067e\u0633 \u0637\u0631\u0627\u062d\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0631\u0627 \u0622\u063a\u0627\u0632 \u06a9\u0646\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u0628\u062a\u062f\u0627 <code class=\"cursor-pointer codespan\">wheel<\/code> \u0631\u0627 \u0628\u0627 \u0646\u0645\u0648\u0646\u0647 \u0645\u062d\u0644\u06cc <code class=\"cursor-pointer codespan\">pip<\/code> \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627 \u062d\u062a\u06cc \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u062f\u0627\u0634\u062a\u0646 \u0622\u0631\u0634\u06cc\u0648 wheel \u0646\u06cc\u0632 \u0646\u0635\u0628 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c324\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c78 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">pip install wheel<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-51\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><em>\u0646\u06a9\u062a\u0647: \u0645\u0647\u0645 \u0646\u06cc\u0633\u062a \u0627\u0632 \u06a9\u062f\u0627\u0645 \u0646\u0633\u062e\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0648\u0642\u062a\u06cc \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0641\u0639\u0627\u0644 \u0627\u0633\u062a\u060c \u0628\u0627\u06cc\u062f \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 <code class=\"cursor-pointer codespan\">pip<\/code> (\u0646\u0647 pip3) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/em><\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633\u060c Flask \u0648 Gunicorn \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c326\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c79 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\" data-language=\"shell\">\n<div class=\"cm-line\">pip install gunicorn flask<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-57\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0646\u0645\u0648\u0646\u0647<\/strong> \u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 Flask \u0631\u0627 \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u062f\u0627\u0631\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0633\u0627\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. Flask \u06cc\u06a9 \u0645\u06cc\u06a9\u0631\u0648\u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0627\u0633\u062a \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u06a9\u0647 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9\u200c\u0647\u0627\u06cc \u06a9\u0627\u0645\u0644\u200c\u062a\u0631 \u062f\u0627\u0631\u0646\u062f \u0631\u0627 \u0634\u0627\u0645\u0644 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Flask \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0648\u0627\u062d\u062f \u0628\u0647 \u0646\u0627\u0645 <code class=\"cursor-pointer codespan\">myproject.py<\/code> \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c328\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7a \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">nano ~\/myproject\/myproject.py<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-63\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u06a9\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f. \u0627\u06cc\u0646 \u06a9\u062f Flask \u0631\u0627 \u0627\u06cc\u0645\u067e\u0648\u0631\u062a \u06a9\u0631\u062f\u0647 \u0648 \u06cc\u06a9 \u0622\u0628\u062c\u06a9\u062a Flask \u0646\u0645\u0648\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>~\/myproject\/myproject.py<\/strong><\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">python<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c330\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-python rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7b \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\" data-language=\"python\">\n<div class=\"cm-line\"><span class=\"\u037c5s\">from<\/span> <span class=\"\u037c5m\">flask<\/span> <span class=\"\u037c5s\">import<\/span> <span class=\"\u037c5m\">Flask<\/span><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5m\">app<\/span> <span class=\"\u037c5q\">=<\/span> <span class=\"\u037c5r\">Flask<\/span>(<span class=\"\u037c5m\">__name__<\/span>)<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">@<span class=\"\u037c5m\">app<\/span><span class=\"\u037c5t\">.<\/span><span class=\"\u037c5m\">route<\/span>(<span class=\"\u037c5p\">&#8220;\/&#8221;<\/span>)<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">def<\/span> <span class=\"\u037c5r\">hello<\/span>():<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">return<\/span> <span class=\"\u037c5p\">&#8220;&lt;h1 style=&#8217;color:blue&#8217;&gt;Hello There!&lt;\/h1&gt;&#8221;<\/span><\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">if<\/span> <span class=\"\u037c5m\">__name__<\/span> <span class=\"\u037c5q\">==<\/span> <span class=\"\u037c5p\">&#8220;__main__&#8221;<\/span>:<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5m\">app<\/span><span class=\"\u037c5t\">.<\/span><span class=\"\u037c5m\">run<\/span>(<span class=\"\u037c5m\">host<\/span><span class=\"\u037c5q\">=<\/span><span class=\"\u037c5p\">&#8216;0.0.0.0&#8217;<\/span>)<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-68\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0646 \u06a9\u062f \u062f\u0631 \u0648\u0627\u0642\u0639 \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062f\u0627\u0645\u0646\u0647 \u0631\u06cc\u0634\u0647 (root domain)\u060c \u0686\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc\u06cc \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f. \u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06af\u0631 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0633\u0631\u0648\u0631 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 UFW \u0634\u0645\u0627 \u0641\u0639\u0627\u0644 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u060c \u0628\u0627\u06cc\u062f \u0627\u062c\u0627\u0632\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u067e\u0648\u0631\u062a 5000 \u0631\u0627 \u0628\u062f\u0647\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c332\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7c \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo ufw allow 5000<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-74\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Flask \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u062a\u0627\u06cc\u067e \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u062a\u0633\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c334\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7d \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">python myproject.py<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-78\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f \u06a9\u0647 \u0634\u0627\u0645\u0644 \u06cc\u06a9 \u0647\u0634\u062f\u0627\u0631 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u06a9\u0647 \u06cc\u0627\u062f\u0622\u0648\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">text<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c335\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-text rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7e \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">Output<\/div>\n<div class=\"cm-line\">* Serving Flask app &#8220;myproject&#8221; (lazy loading)<\/div>\n<div class=\"cm-line\">* Environment: production<\/div>\n<div class=\"cm-line\">WARNING: Do not use the development server in a production environment.<\/div>\n<div class=\"cm-line\">Use a production WSGI server instead.<\/div>\n<div class=\"cm-line\">* Debug mode: off<\/div>\n<div class=\"cm-line\">* Running on http:\/\/0.0.0.0:5000\/ (Press CTRL+C to quit)<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-82\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0622\u062f\u0631\u0633 IP \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 <code class=\"cursor-pointer codespan\">:5000<\/code> \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0648\u0628 \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f. \u0634\u0645\u0627 \u067e\u06cc\u0627\u0645 <code class=\"cursor-pointer codespan\">Hello There!<\/code> \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f. \u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645\u060c \u06a9\u0644\u06cc\u062f <code class=\"cursor-pointer codespan\">CTRL + C<\/code> \u0631\u0627 \u062f\u0631 \u067e\u0646\u062c\u0631\u0647 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0628\u0632\u0646\u06cc\u062f \u062a\u0627 \u0633\u0631\u0648\u0631 \u062a\u0648\u0633\u0639\u0647 Flask \u0645\u062a\u0648\u0642\u0641 \u0634\u0648\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u0627\u06cc\u062c\u0627\u062f \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f WSGI<\/strong> \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0641\u0627\u06cc\u0644\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f (Entry Point) \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u0639\u0645\u0644 \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0633\u0631\u0648\u0631 Gunicorn \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0628\u0627 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 \u0631\u0627 <code class=\"cursor-pointer codespan\">wsgi.py<\/code> \u0646\u0627\u0645\u200c\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c338\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7f \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">nano ~\/myproject\/wsgi.py<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-90\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u060c \u0646\u0645\u0648\u0646\u0647 Flask \u0631\u0627 \u0627\u0632 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0627\u06cc\u0645\u067e\u0648\u0631\u062a \u06a9\u0631\u062f\u0647 \u0648 \u0633\u067e\u0633 \u0622\u0646 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>~\/myproject\/wsgi.py<\/strong><\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">python<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c340\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-python rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7g \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">from myproject import app<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">if __name__ == &#8220;__main__&#8221;:<\/div>\n<div class=\"cm-line\">app.run()<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-95\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f4 \u2014 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Gunicorn<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u0627\u06a9\u0646\u0648\u0646 \u0628\u0627 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Gunicorn \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u067e\u06cc\u0634 \u0627\u0632 \u0627\u062f\u0627\u0645\u0647\u060c \u0628\u0627\u06cc\u062f \u062a\u0633\u062a \u06a9\u0646\u06cc\u0645 \u06a9\u0647 Gunicorn \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0633\u0631\u0648 \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0627 \u067e\u0627\u0633 \u062f\u0627\u062f\u0646 \u0646\u0627\u0645 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f \u062e\u0648\u062f \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645. \u0627\u06cc\u0646 \u0646\u0627\u0645 \u0627\u0632 \u062a\u0631\u06a9\u06cc\u0628 \u0646\u0627\u0645 \u0645\u0627\u0698\u0648\u0644 (\u0628\u062f\u0648\u0646 \u067e\u0633\u0648\u0646\u062f <code class=\"cursor-pointer codespan\">.py<\/code>) \u0628\u0647 \u0639\u0644\u0627\u0648\u0647 \u0646\u0627\u0645 \u0642\u0627\u0628\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc (Callable) \u062f\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062a\u0634\u06a9\u06cc\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f. \u062f\u0631 \u0645\u0648\u0631\u062f \u0645\u0627\u060c \u0627\u06cc\u0646 \u0646\u0627\u0645 <code class=\"cursor-pointer codespan\">wsgi:app<\/code> \u0627\u0633\u062a.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u0631\u0627\u0628\u0637 \u0648 \u067e\u0648\u0631\u062a\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc Bind \u06a9\u0631\u062f\u0646 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0648\u06cc \u06cc\u06a9 \u0631\u0627\u0628\u0637 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0639\u0645\u0648\u0645 \u0634\u0631\u0648\u0639 \u0628\u0647 \u06a9\u0627\u0631 \u06a9\u0646\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c342\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7h \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">cd ~\/myproject<\/div>\n<div class=\"cm-line\">gunicorn &#8211;bind 0.0.0.0:5000 wsgi:app<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-107\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">text<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c344\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-text rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7i \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">Output<\/div>\n<div class=\"cm-line\">[2020-05-20 14:13:00 +0000] [46419] [INFO] Starting gunicorn 20.0.4<\/div>\n<div class=\"cm-line\">[2020-05-20 14:13:00 +0000] [46419] [INFO] Listening at: http:\/\/0.0.0.0:5000 (46419)<\/div>\n<div class=\"cm-line\">[2020-05-20 14:13:00 +0000] [46419] [INFO] Using worker: sync<\/div>\n<div class=\"cm-line\">[2020-05-20 14:13:00 +0000] [46421] [INFO] Booting worker with pid: 46421<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-111\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0622\u062f\u0631\u0633 IP \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 <code class=\"cursor-pointer codespan\">:5000<\/code> \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0648\u0628 \u062e\u0648\u062f \u062f\u0648\u0628\u0627\u0631\u0647 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f. \u0628\u0627\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0628\u06cc\u0646\u06cc\u062f. \u067e\u0633 \u0627\u0632 \u062a\u0627\u06cc\u06cc\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0635\u062d\u06cc\u062d\u060c <code class=\"cursor-pointer codespan\">CTRL + C<\/code> \u0631\u0627 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0627\u0631 \u0634\u0645\u0627 \u0628\u0627 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u062a\u0645\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c346\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7j \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">deactivate<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-117\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633\u060c \u0641\u0627\u06cc\u0644 \u0633\u0631\u0648\u06cc\u0633 systemd \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0633\u0631\u0648\u06cc\u0633 systemd \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 init \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 Gunicorn \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Flask \u0631\u0627 \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u0633\u0631\u0648\u0631 \u0628\u0648\u062a \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0633\u0631\u0648 \u06a9\u0646\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0633\u0631\u0648\u06cc\u0633 \u0628\u0627 \u067e\u0633\u0648\u0646\u062f <code class=\"cursor-pointer codespan\">.service<\/code> \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc <code class=\"cursor-pointer codespan\">\/etc\/systemd\/system<\/code> \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c348\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7k \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\" data-language=\"shell\">\n<div class=\"cm-line\"><span class=\"\u037c5m\">sudo<\/span> nano \/etc\/systemd\/system\/myproject.service<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-123\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0627\u062e\u0644 \u0641\u0627\u06cc\u0644\u060c \u0628\u0627 \u0628\u062e\u0634 <code class=\"cursor-pointer codespan\">[Unit]<\/code> \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0645\u062a\u0627\u062f\u06cc\u062a\u0627 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f. \u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f \u0648 \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 init \u0628\u06af\u0648\u06cc\u06cc\u062f \u06a9\u0647 \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u062a\u0646\u0647\u0627 \u067e\u0633 \u0627\u0632 \u0631\u0633\u06cc\u062f\u0646 \u0628\u0647 \u0647\u062f\u0641 \u0634\u0628\u06a9\u0647 (Networking Target) \u0634\u0631\u0648\u0639 \u06a9\u0646\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">ini<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c350\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-ini rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7l \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">[Unit]<\/div>\n<div class=\"cm-line\">Description=Gunicorn instance to serve myproject<\/div>\n<div class=\"cm-line\">After=network.target<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-127\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633 \u0628\u062e\u0634 <code class=\"cursor-pointer codespan\">[Service]<\/code> \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0628\u062e\u0634 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u06af\u0631\u0648\u0647\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u062d\u062a \u0622\u0646 \u0627\u062c\u0631\u0627 \u0634\u0648\u062f \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0645\u0627\u0644\u06a9\u06cc\u062a \u067e\u0631\u062f\u0627\u0632\u0634 \u0631\u0627 \u0628\u0647 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0645\u0639\u0645\u0648\u0644\u06cc \u062e\u0648\u062f \u0628\u062f\u0647\u06cc\u062f \u0648 \u06af\u0631\u0648\u0647 \u0631\u0627 <code class=\"cursor-pointer codespan\">www-data<\/code> \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f \u062a\u0627 Nginx \u0628\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0628\u0627 \u067e\u0631\u062f\u0627\u0632\u0634\u200c\u0647\u0627\u06cc Gunicorn \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u062f. (\u0628\u0647 \u062c\u0627\u06cc <code class=\"cursor-pointer codespan\">sammy<\/code> \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f):<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">ini<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c352\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-ini rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7m \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">[Unit]<\/div>\n<div class=\"cm-line\">Description=Gunicorn instance to serve myproject<\/div>\n<div class=\"cm-line\">After=network.target<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">[Service]<\/div>\n<div class=\"cm-line\">User=sammy<\/div>\n<div class=\"cm-line\">Group=www-data<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-131\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633\u060c \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u06a9\u0627\u0631\u06cc (Working Directory) \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0631\u062f\u0647 \u0648 \u0645\u062a\u063a\u06cc\u0631 \u0645\u062d\u06cc\u0637\u06cc <code class=\"cursor-pointer codespan\">PATH<\/code> \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0633\u06cc\u0633\u062a\u0645 init \u0628\u062f\u0627\u0646\u062f \u06a9\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0634\u0645\u0627 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u0646\u062f. \u062f\u0633\u062a\u0648\u0631 \u0634\u0631\u0648\u0639 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0646\u06cc\u0632 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f:<\/p>\n<ul dir=\"auto\">\n<li class=\"text-start\">\u0634\u0631\u0648\u0639 \u06f3 \u067e\u0631\u062f\u0627\u0632\u0634 Worker (\u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0639\u062f\u062f \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0646\u06cc\u0627\u0632 \u062e\u0648\u062f \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f).<\/li>\n<li class=\"text-start\">\u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0633\u0648\u06a9\u062a \u06cc\u0648\u0646\u06cc\u06a9\u0633 (<code class=\"cursor-pointer codespan\">myproject.sock<\/code>) \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627. \u0645\u0642\u062f\u0627\u0631 <code class=\"cursor-pointer codespan\">umask<\/code> \u0631\u0627 \u0631\u0648\u06cc <code class=\"cursor-pointer codespan\">007<\/code> \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0641\u0627\u06cc\u0644 \u0633\u0648\u06a9\u062a \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0627\u0644\u06a9 \u0648 \u06af\u0631\u0648\u0647 \u0631\u0627 \u0628\u062f\u0647\u062f \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc \u0633\u0627\u06cc\u0631\u06cc\u0646 \u0631\u0627 \u0645\u062d\u062f\u0648\u062f \u06a9\u0646\u062f.<\/li>\n<li class=\"text-start\">\u0645\u0634\u062e\u0635 \u06a9\u0631\u062f\u0646 \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f WSGI \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0642\u0627\u0628\u0644 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 (<code class=\"cursor-pointer codespan\">wsgi:app<\/code>).<\/li>\n<\/ul>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><em>(\u0628\u0647 \u062c\u0627\u06cc <code class=\"cursor-pointer codespan\">sammy<\/code> \u0648 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u060c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f):<\/em><\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">ini<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c354\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-ini rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7n \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">[Unit]<\/div>\n<div class=\"cm-line\">Description=Gunicorn instance to serve myproject<\/div>\n<div class=\"cm-line\">After=network.target<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">[Service]<\/div>\n<div class=\"cm-line\">User=sammy<\/div>\n<div class=\"cm-line\">Group=www-data<\/div>\n<div class=\"cm-line\">WorkingDirectory=\/home\/sammy\/myproject<\/div>\n<div class=\"cm-line\">Environment=&#8221;PATH=\/home\/sammy\/myproject\/myprojectenv\/bin&#8221;<\/div>\n<div class=\"cm-line\">ExecStart=\/home\/sammy\/myproject\/myprojectenv\/bin\/gunicorn &#8211;workers 3 &#8211;bind unix:myproject.sock -m 007 wsgi:app<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">[Install]<\/div>\n<div class=\"cm-line\">WantedBy=multi-user.target<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-138\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 \u0633\u0631\u0648\u06cc\u0633 systemd \u0634\u0645\u0627 \u06a9\u0627\u0645\u0644 \u0634\u062f. \u0622\u0646 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633 Gunicorn \u0631\u0627 \u0627\u0633\u062a\u0627\u0631\u062a \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646 \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0628\u0648\u062a \u0627\u0633\u062a\u0627\u0631\u062a \u0634\u0648\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c356\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7o \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo systemctl start myproject<\/div>\n<div class=\"cm-line\">sudo systemctl enable myproject<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-144\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0648\u0636\u0639\u06cc\u062a \u0622\u0646 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c357\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7p \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo systemctl status myproject<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-148\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u06cc\u062f \u0646\u0634\u0627\u0646 \u062f\u0647\u062f \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 <code class=\"cursor-pointer codespan\">active (running)<\/code> \u0627\u0633\u062a.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f5 \u2014 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u06a9\u0633\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Gunicorn \u0634\u0645\u0627 \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0627\u0633\u062a \u0648 \u0645\u0646\u062a\u0638\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0631\u0648\u06cc \u0641\u0627\u06cc\u0644 \u0633\u0648\u06a9\u062a \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c Nginx \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0648\u0628 \u0631\u0627 \u0628\u0647 \u0622\u0646 \u0633\u0648\u06a9\u062a \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Server Block \u062c\u062f\u06cc\u062f \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc <code class=\"cursor-pointer codespan\">sites-available<\/code> \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c360\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7q \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo nano \/etc\/nginx\/sites-available\/myproject<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-158\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u06cc\u06a9 Server Block \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 Nginx \u0628\u06af\u0648\u06cc\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u067e\u0648\u0631\u062a 80 \u06af\u0648\u0634 \u062f\u0647\u062f \u0648 \u0627\u0632 \u0627\u06cc\u0646 \u0628\u0644\u0627\u06a9 \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062f\u0627\u0645\u0646\u0647 \u0634\u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">nginx<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c362\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-nginx rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7r \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">server {<\/div>\n<div class=\"cm-line\">listen 80;<\/div>\n<div class=\"cm-line\">server_name your_domain www.your_domain;<\/div>\n<div class=\"cm-line\">}<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-162\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633\u060c \u06cc\u06a9 \u0628\u0644\u0627\u06a9 <code class=\"cursor-pointer codespan\">location<\/code> \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0627 \u0647\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0628\u0644\u0627\u06a9\u060c \u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">proxy_params<\/code> \u0631\u0627 \u0432\u043a\u043b\u044e\u0447 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0631\u062e\u06cc \u0627\u0632 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0639\u0645\u0648\u0645\u06cc \u067e\u0631\u0648\u06a9\u0633\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0634\u0648\u0646\u062f. \u0633\u067e\u0633 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 <code class=\"cursor-pointer codespan\">proxy_pass<\/code> \u0628\u0647 \u0633\u0648\u06a9\u062a\u06cc \u06a9\u0647 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u06cc\u0645 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">nginx<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c364\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-nginx rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7s \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">server {<\/div>\n<div class=\"cm-line\">listen 80;<\/div>\n<div class=\"cm-line\">server_name your_domain www.your_domain;<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">location \/ {<\/div>\n<div class=\"cm-line\">include proxy_params;<\/div>\n<div class=\"cm-line\">proxy_pass http:\/\/unix:\/home\/sammy\/myproject\/myproject.sock;<\/div>\n<div class=\"cm-line\">}<\/div>\n<div class=\"cm-line\">}<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-166\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f. (\u0645\u0633\u06cc\u0631 \u0633\u0648\u06a9\u062a \u0631\u0627 \u0628\u0627 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f).<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u060c \u06cc\u06a9 \u0644\u06cc\u0646\u06a9 \u0646\u0645\u0627\u062f\u06cc\u0646 (Symbolic Link) \u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc <code class=\"cursor-pointer codespan\">sites-enabled<\/code> \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c366\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7t \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo ln -s \/etc\/nginx\/sites-available\/myproject \/etc\/nginx\/sites-enabled<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-172\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633 \u062e\u0637\u0627\u0647\u0627\u06cc \u0646\u062d\u0648\u06cc (Syntax) \u0631\u0627 \u062a\u0633\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c368\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7u \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo nginx -t<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-176\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06af\u0631 \u0645\u0634\u06a9\u0644\u06cc \u0646\u0628\u0648\u062f\u060c Nginx \u0631\u0627 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c369\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7v \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo systemctl restart nginx<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-180\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f. \u062f\u06cc\u06af\u0631 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u067e\u0648\u0631\u062a 5000 \u0646\u062f\u0627\u0631\u06cc\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0622\u0646 \u0642\u0627\u0646\u0648\u0646 \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0645\u0644 \u0628\u0647 Nginx \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c370\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7w \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo ufw delete allow 5000<\/div>\n<div class=\"cm-line\">sudo ufw allow &#8216;Nginx Full&#8217;<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-184\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 \u062f\u0627\u0645\u0646\u0647 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0648\u0628 \u0628\u0631\u0648\u06cc\u062f. \u0628\u0627\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f6 \u2014 \u0627\u06cc\u0645\u0646\u200c\u0633\u0627\u0632\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u0645\u0646\u06cc\u062a \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f\u060c \u06cc\u06a9 \u06af\u0648\u0627\u0647\u06cc SSL \u0628\u0631\u0627\u06cc \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0646\u062d\u0648\u0647 \u062f\u0631\u06cc\u0627\u0641\u062a \u06af\u0648\u0627\u0647\u06cc \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0632 Let&#8217;s Encrypt \u0631\u0627 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u0628\u062a\u062f\u0627 \u067e\u06a9\u06cc\u062c Nginx \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Certbot \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c374\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7x \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo apt install python3-certbot-nginx<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-194\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u067e\u0644\u0627\u06af\u06cc\u0646\u060c \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u062a\u0627\u06cc\u067e \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c375\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7y \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo certbot &#8211;nginx -d your_domain -d www.your_domain<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-9f36858c-e0a0-48a8-a2d5-e2c62e5478e6-198\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 Certbot \u0631\u0627 \u0628\u0627 \u067e\u0644\u0627\u06af\u06cc\u0646 <code class=\"cursor-pointer codespan\">--nginx<\/code> \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code class=\"cursor-pointer codespan\">-d<\/code> \u0646\u0627\u0645\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u0622\u0646\u200c\u0647\u0627 \u0645\u0639\u062a\u0628\u0631 \u0628\u0627\u0634\u062f \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u0627\u0633\u062a \u06a9\u0647 Certbot \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0627\u0632 \u0634\u0645\u0627 \u062e\u0648\u0627\u0633\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06cc\u06a9 \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0627 \u0634\u0631\u0627\u06cc\u0637 \u062e\u062f\u0645\u0627\u062a \u0645\u0648\u0627\u0641\u0642\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633 Certbot \u0627\u0632 \u0634\u0645\u0627 \u0645\u06cc\u200c\u067e\u0631\u0633\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u062a\u0646\u0638\u06cc\u0645\u0627\u062a HTTPS \u062e\u0648\u062f \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f. \u06af\u0632\u06cc\u0646\u0647 \u06f2 (Redirect) \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u062f\u0627\u06cc\u062a \u062a\u0645\u0627\u0645 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0628\u0647 HTTPS \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f. Nginx \u0645\u062c\u062f\u062f\u0627\u064b \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0627 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062c\u062f\u06cc\u062f \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u067e\u0633 \u0627\u0632 \u0645\u0648\u0641\u0642\u06cc\u062a\u200c\u0622\u0645\u06cc\u0632 \u0628\u0648\u062f\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u062a\u0627\u06cc\u06cc\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u060c \u06cc\u06a9 \u0628\u0627\u0631 \u062f\u06cc\u06af\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code class=\"cursor-pointer codespan\">https:\/\/<\/code> \u0628\u0647 \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f \u0628\u0631\u0648\u06cc\u062f. \u0628\u0627\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0631\u0627 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u0646\u0634\u0627\u0646\u06af\u0631 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0645\u0631\u0648\u0631\u06af\u0631 \u062e\u0648\u062f \u0628\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0633\u0627\u06cc\u062a \u0627\u06cc\u0645\u0646 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u0646\u062a\u06cc\u062c\u0647\u200c\u06af\u06cc\u0631\u06cc<\/strong> \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0633\u0627\u062f\u0647 Flask \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u06cc\u0645\u0646\u200c\u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u062f. \u0633\u067e\u0633 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f WSGI \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627 WSGI \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u0622\u0646 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u0646\u062f\u060c \u0648 \u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Gunicorn \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0631\u062f\u06cc\u062f. \u067e\u0633 \u0627\u0632 \u0622\u0646\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0633\u0631\u0648\u06cc\u0633 systemd \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0628\u0648\u062a \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u062f. \u0634\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u06cc\u06a9 Server Block \u062f\u0631 Nginx \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u062f \u06a9\u0647 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u06a9\u0644\u0627\u06cc\u0646\u062a\u200c\u0647\u0627\u06cc \u0648\u0628 \u0631\u0627 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u062f\u0627\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 Let&#8217;s Encrypt \u0627\u06cc\u0645\u0646\u200c\u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u062f. \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0639\u0645\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0633\u0631\u0648 \u06a9\u0631\u062f\u0646 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc Flask \u06a9\u0647 \u0637\u0631\u0627\u062d\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p dir=\"auto\">\n<p dir=\"auto\">\n<p dir=\"auto\">\n<p dir=\"auto\">\n<p dir=\"auto\">\u0627\u0632 \u0647\u0645\u0631\u0627\u0647\u06cc \u0634\u0645\u0627 \u0628\u0627 <strong><a href=\"https:\/\/parmin.cloud\/\">\u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/a><\/strong> \u0633\u067e\u0627\u0633\u06af\u0632\u0627\u0631\u06cc\u0645.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u06cc\u06a9\u0631\u0648\u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 Flask \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 24.04 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. \u0628\u062e\u0634 \u0639\u0645\u062f\u0647 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0646\u062d\u0648\u0647 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Gunicorn\u060c \u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 (Reverse Proxy) \u062f\u0631 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f. \u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627 \u067e\u06cc\u0634 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0628\u0627\u06cc\u062f \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 &hellip;<\/p>\n","protected":false},"author":9,"featured_media":6810,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,343],"tags":[],"class_list":["post-6809","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-8","category-python"],"_links":{"self":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/comments?post=6809"}],"version-history":[{"count":0,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6809\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/6810"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=6809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=6809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=6809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}