{"id":6603,"date":"2026-07-09T17:00:07","date_gmt":"2026-07-09T13:30:07","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=6603"},"modified":"2026-07-09T17:00:07","modified_gmt":"2026-07-09T13:30:07","slug":"%d8%af%d8%b3%d8%aa%d8%b1%d8%b3%db%8c-%d8%a7%d8%b2-%d8%b1%d8%a7%d9%87-%d8%af%d9%88%d8%b1-%d8%a8%d9%87-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%af%d8%b1%d8%a7%d9%81%db%8c","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/%d8%af%d8%b3%d8%aa%d8%b1%d8%b3%db%8c-%d8%a7%d8%b2-%d8%b1%d8%a7%d9%87-%d8%af%d9%88%d8%b1-%d8%a8%d9%87-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%d9%87%d8%a7%db%8c-%da%af%d8%b1%d8%a7%d9%81%db%8c\/","title":{"rendered":"\u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc (GUI) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker \u0648 Caddy \u062f\u0631 Ubuntu 24.04 \u0648 26.04"},"content":{"rendered":"<h2 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"43f4r3\" data-start=\"102\" data-end=\"110\">\u0645\u0642\u062f\u0645\u0647<\/h2>\n<p data-start=\"112\" data-end=\"375\">\u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc \u062f\u0627\u0631\u0627\u06cc \u0631\u0627\u0628\u0637 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc (GUI) \u0647\u0633\u062a\u0646\u062f \u0648 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u062f\u0633\u06a9\u062a\u0627\u067e \u062f\u0627\u0631\u0646\u062f. \u0627\u0645\u0627 \u0627\u06af\u0631 \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0641\u0627\u0642\u062f \u0645\u062d\u06cc\u0637 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0628\u0627\u0634\u062f \u06cc\u0627 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u062f\u0648\u0646 \u0646\u0635\u0628 Desktop Environment \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0645\u0631\u0648\u0631\u06af\u0631 \u0628\u0647 \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0686\u0647 \u0631\u0627\u0647\u06a9\u0627\u0631\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u061f<\/p>\n<p data-start=\"377\" data-end=\"627\">\u06cc\u06a9\u06cc \u0627\u0632 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627\u060c \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u062f\u0627\u062e\u0644 <strong data-start=\"429\" data-end=\"439\">Docker<\/strong> \u0648 \u0627\u0646\u062a\u0634\u0627\u0631 \u0622\u0646\u200c\u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 <strong data-start=\"466\" data-end=\"483\">Reverse Proxy<\/strong> \u0645\u0627\u0646\u0646\u062f <strong data-start=\"490\" data-end=\"499\">Caddy<\/strong> \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0648\u0634\u060c \u062a\u0646\u0647\u0627 \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a \u0645\u0631\u0648\u0631\u06af\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u062a\u0635\u0627\u0644 Remote Desktop \u06cc\u0627 VNC\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0648\u0631\u062f\u0646\u0638\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"629\" data-end=\"792\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u06cc\u0627\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u062f \u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0631\u0627 \u062f\u0627\u062e\u0644 Docker \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <strong data-start=\"720\" data-end=\"729\">Caddy<\/strong> \u0622\u0646 \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0627\u0645\u0646 \u0648 \u0627\u0632 \u0637\u0631\u06cc\u0642 HTTPS \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<p data-start=\"794\" data-end=\"960\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0627\u0632 <strong data-start=\"810\" data-end=\"840\">\u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f (Parmin Cloud)<\/strong> \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0627\u0628\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u0648 \u062a\u0645\u0627\u0645\u06cc \u0645\u0631\u0627\u062d\u0644 \u0628\u0631 \u0627\u0633\u0627\u0633 <strong data-start=\"901\" data-end=\"921\">Ubuntu 24.04 LTS<\/strong> (\u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 Ubuntu 26.04) \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647\u200c\u0627\u0646\u062f.<\/p>\n<hr data-start=\"962\" data-end=\"965\" \/>\n<h1 data-section-id=\"15g5ic3\" data-start=\"967\" data-end=\"979\">\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/h1>\n<p data-start=\"981\" data-end=\"1018\">\u0642\u0628\u0644 \u0627\u0632 \u0634\u0631\u0648\u0639\u060c \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0622\u0645\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<ul data-start=\"1020\" data-end=\"1215\">\n<li data-section-id=\"lg2v3z\" data-start=\"1020\" data-end=\"1058\">\u06cc\u06a9 \u0633\u0631\u0648\u0631 Ubuntu 24.04 \u06cc\u0627 Ubuntu 26.04<\/li>\n<li data-section-id=\"hqaxe9\" data-start=\"1059\" data-end=\"1091\">\u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631 \u062f\u0627\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc sudo<\/li>\n<li data-section-id=\"psm00j\" data-start=\"1092\" data-end=\"1134\">\u06cc\u06a9 \u062f\u0627\u0645\u0646\u0647 \u06a9\u0647 DNS \u0622\u0646 \u0628\u0647 IP \u0633\u0631\u0648\u0631 \u0627\u0634\u0627\u0631\u0647 \u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"xf1t9j\" data-start=\"1135\" data-end=\"1147\">\u0646\u0635\u0628 Docker<\/li>\n<li data-section-id=\"dicsbq\" data-start=\"1148\" data-end=\"1175\">\u0646\u0635\u0628 Docker Compose Plugin<\/li>\n<li data-section-id=\"fuvfsc\" data-start=\"1176\" data-end=\"1215\">\u0628\u0627\u0632 \u0628\u0648\u062f\u0646 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc 80 \u0648 443 \u062f\u0631 \u0641\u0627\u06cc\u0631\u0648\u0627\u0644<\/li>\n<\/ul>\n<hr data-start=\"1217\" data-end=\"1220\" \/>\n<h1 data-section-id=\"zebjgd\" data-start=\"1222\" data-end=\"1272\">\u0645\u0631\u062d\u0644\u0647 \u0627\u0648\u0644 \u2014 \u0646\u0635\u0628 Docker \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0645\u06cc\u0631\u0648\u0631 \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/h1>\n<p data-start=\"1274\" data-end=\"1314\">\u0627\u0628\u062a\u062f\u0627 \u0641\u0647\u0631\u0633\u062a \u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> apt update<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1345\" data-end=\"1376\">\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627\u06cc Docker \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> apt install ca-certificates <span class=\"\u037c10\">curl<\/span> gnupg <span class=\"\u037c12\">-y<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1438\" data-end=\"1474\">\u06a9\u0644\u06cc\u062f GPG \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> install <span class=\"\u037c12\">-m<\/span> <span class=\"\u037cy\">0755<\/span> <span class=\"\u037c12\">-d<\/span> \/etc\/apt\/keyrings\r\n\r\n<span class=\"\u037c10\">curl<\/span> <span class=\"\u037c12\">-fsSL<\/span> https:\/\/docker-ce.parmincloud.ir\/gpg \\\r\n| <span class=\"\u037c10\">sudo<\/span> gpg <span class=\"\u037c12\">--dearmor<\/span> <span class=\"\u037c12\">-o<\/span> \/etc\/apt\/keyrings\/docker.gpg\r\n\r\n<span class=\"\u037c10\">sudo<\/span> <span class=\"\u037c10\">chmod<\/span> a<span class=\"\u037cv\">+<\/span>r \/etc\/apt\/keyrings\/docker.gpg<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1680\" data-end=\"1730\">\u0627\u06a9\u0646\u0648\u0646 \u0631\u06cc\u067e\u0627\u0632\u06cc\u062a\u0648\u0631\u06cc Docker \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">echo<\/span> \\\r\n<span class=\"\u037cz\">\"deb [arch=<\/span>$(dpkg --print-architecture)<span class=\"\u037cz\"> signed-by=\/etc\/apt\/keyrings\/docker.gpg] \\<\/span>\r\n<span class=\"\u037cz\">https:\/\/docker-ce.parmincloud.ir \\<\/span>\r\n$(. \/etc\/os-release &amp;&amp; echo <span class=\"\u037cz\">\"<\/span><span class=\"\u037c11\">$VERSION_CODENAME<\/span><span class=\"\u037cz\">\"<\/span>)<span class=\"\u037cz\"> stable\"<\/span> \\\r\n| <span class=\"\u037c10\">sudo<\/span> <span class=\"\u037c10\">tee<\/span> \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1987\" data-end=\"2026\">\u0641\u0647\u0631\u0633\u062a \u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> apt update<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2057\" data-end=\"2104\">\u0633\u067e\u0633 Docker \u0648 \u0627\u0641\u0632\u0648\u0646\u0647 Docker Compose \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin <span class=\"\u037c12\">-y<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2220\" data-end=\"2252\">\u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u0635\u062d\u06cc\u062d Docker \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker <span class=\"\u037c12\">--version<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2284\" data-end=\"2325\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u0646\u0633\u062e\u0647 Docker Compose \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker compose version<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2363\" data-end=\"2425\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0645\u0634\u0627\u0647\u062f\u0647 \u0634\u0645\u0627\u0631\u0647 \u0646\u0633\u062e\u0647\u060c \u0646\u0635\u0628 Docker \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<hr data-start=\"3609\" data-end=\"3612\" \/>\n<h1 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"1dp646d\" data-start=\"0\" data-end=\"34\">\u0645\u0631\u062d\u0644\u0647 \u062f\u0648\u0645 \u2014 \u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Caddy<\/h1>\n<p data-start=\"36\" data-end=\"241\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0648\u0628\u200c\u0633\u0631\u0648\u0631 <strong data-start=\"58\" data-end=\"67\">Caddy<\/strong> \u0631\u0627 \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0648\u0638\u06cc\u0641\u0647 Caddy \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0647\u060c \u0628\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 Docker \u0647\u062f\u0627\u06cc\u062a \u06a9\u0646\u062f \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u06af\u0648\u0627\u0647\u06cc SSL \u0627\u0632 Let&#8217;s Encrypt \u062f\u0631\u06cc\u0627\u0641\u062a \u0648 \u062a\u0645\u062f\u06cc\u062f \u06a9\u0646\u062f.<\/p>\n<hr data-start=\"243\" data-end=\"246\" \/>\n<h2 data-section-id=\"cm57ox\" data-start=\"248\" data-end=\"261\">\u0686\u0631\u0627 Caddy\u061f<\/h2>\n<p data-start=\"263\" data-end=\"317\">\u062f\u0631 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0628\u0627 Nginx \u06cc\u0627 Apache\u060c Caddy \u0686\u0646\u062f \u0645\u0632\u06cc\u062a \u0645\u0647\u0645 \u062f\u0627\u0631\u062f:<\/p>\n<ul data-start=\"319\" data-end=\"477\">\n<li data-section-id=\"yyjqhz\" data-start=\"319\" data-end=\"344\">\u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u06af\u0648\u0627\u0647\u06cc SSL<\/li>\n<li data-section-id=\"z6q8d6\" data-start=\"345\" data-end=\"368\">\u062a\u0645\u062f\u06cc\u062f \u062e\u0648\u062f\u06a9\u0627\u0631 \u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627<\/li>\n<li data-section-id=\"11oi7zm\" data-start=\"369\" data-end=\"390\">\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0633\u0627\u062f\u0647<\/li>\n<li data-section-id=\"10d7uh6\" data-start=\"391\" data-end=\"412\">Reverse Proxy \u062f\u0627\u062e\u0644\u06cc<\/li>\n<li data-section-id=\"u3dic2\" data-start=\"413\" data-end=\"447\">\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u06a9\u0627\u0645\u0644 \u0627\u0632 HTTP\/2 \u0648 HTTP\/3<\/li>\n<li data-section-id=\"hwspdo\" data-start=\"448\" data-end=\"477\">\u0627\u0645\u0646\u06cc\u062a \u0645\u0646\u0627\u0633\u0628 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636<\/li>\n<\/ul>\n<p data-start=\"479\" data-end=\"556\">\u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0634\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc Docker \u06af\u0632\u06cc\u0646\u0647\u200c\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0646\u0627\u0633\u0628 \u0645\u062d\u0633\u0648\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<hr data-start=\"558\" data-end=\"561\" \/>\n<h2 data-section-id=\"quzxet\" data-start=\"563\" data-end=\"575\">\u0646\u0635\u0628 Caddy<\/h2>\n<p data-start=\"577\" data-end=\"617\">\u0627\u0628\u062a\u062f\u0627 \u0641\u0647\u0631\u0633\u062a \u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> apt update<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"660\" data-end=\"682\">\u0633\u067e\u0633 Caddy \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> apt install caddy <span class=\"\u037c12\">-y<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"735\" data-end=\"778\">\u067e\u0633 \u0627\u0632 \u067e\u0627\u06cc\u0627\u0646 \u0646\u0635\u0628\u060c \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>systemctl status caddy<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"828\" data-end=\"882\">\u0627\u06af\u0631 \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0631\u062f\u06cc\u062f\u060c \u06cc\u0639\u0646\u06cc \u0633\u0631\u0648\u06cc\u0633 \u0641\u0639\u0627\u0644 \u0627\u0633\u062a:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute end-1.5 top-1 z-2 md:end-2 md:top-1\"><\/div>\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>Active: active (running)<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"922\" data-end=\"925\" \/>\n<h2 data-section-id=\"ce5ta4\" data-start=\"927\" data-end=\"961\">\u0641\u0639\u0627\u0644 \u0634\u062f\u0646 \u062e\u0648\u062f\u06a9\u0627\u0631 Caddy \u067e\u0633 \u0627\u0632 \u0628\u0648\u062a<\/h2>\n<p data-start=\"963\" data-end=\"1068\">\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0639\u062f \u0627\u0632 \u0647\u0631 \u0628\u0627\u0631 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062c\u062f\u062f \u0633\u0631\u0648\u0631\u060c Caddy \u0646\u06cc\u0632 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u062c\u0631\u0627 \u0634\u0648\u062f\u060c \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> systemctl enable caddy<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"1123\" data-end=\"1126\" \/>\n<h2 data-section-id=\"1bu6zrc\" data-start=\"1128\" data-end=\"1157\">\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632<\/h2>\n<p data-start=\"1159\" data-end=\"1221\">\u0627\u06af\u0631 \u0627\u0632 UFW \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc HTTP \u0648 HTTPS \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> ufw allow <span class=\"\u037cy\">80<\/span>\/tcp\r\n<span class=\"\u037c10\">sudo<\/span> ufw allow <span class=\"\u037cy\">443<\/span>\/tcp\r\n<span class=\"\u037c10\">sudo<\/span> ufw reload<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"1309\" data-end=\"1312\" \/>\n<h2 data-section-id=\"1etxony\" data-start=\"1314\" data-end=\"1328\">\u0628\u0631\u0631\u0633\u06cc \u062f\u0627\u0645\u0646\u0647<\/h2>\n<p data-start=\"1330\" data-end=\"1389\">\u0642\u0628\u0644 \u0627\u0632 \u0627\u062f\u0627\u0645\u0647\u060c \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u062f\u0627\u0645\u0646\u0647 \u0634\u0645\u0627 \u0628\u0647 IP \u0633\u0631\u0648\u0631 \u0627\u0634\u0627\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p data-start=\"1391\" data-end=\"1438\">\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>dig your-domain.com <span class=\"\u037cv\">+<\/span>short<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1492\" data-end=\"1495\">\u06cc\u0627:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>nslookup your-domain.com<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1547\" data-end=\"1575\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u06cc\u062f IP \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0628\u0627\u0634\u062f.<\/p>\n<hr data-start=\"1577\" data-end=\"1580\" \/>\n<h2 data-section-id=\"u5syxc\" data-start=\"1582\" data-end=\"1608\">\u0633\u0627\u062e\u062a \u0641\u0627\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Caddy<\/h2>\n<p data-start=\"1610\" data-end=\"1635\">\u0641\u0627\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> nano \/etc\/caddy\/Caddyfile<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1693\" data-end=\"1732\">\u0633\u0627\u062e\u062a\u0627\u0631 \u0627\u0648\u0644\u06cc\u0647 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute end-1.5 top-1 z-2 md:end-2 md:top-1\"><\/div>\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>your-domain.com {\r\n\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1768\" data-end=\"1839\">\u062f\u0631 \u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u060c \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Reverse Proxy \u0631\u0627 \u062f\u0627\u062e\u0644 \u0647\u0645\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0627\u0636\u0627\u0641\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n<hr data-start=\"1841\" data-end=\"1844\" \/>\n<h2 data-section-id=\"di9gdp\" data-start=\"1846\" data-end=\"1862\">\u0627\u0639\u0645\u0627\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a<\/h2>\n<p data-start=\"1864\" data-end=\"1932\">\u067e\u0633 \u0627\u0632 \u0647\u0631 \u0628\u0627\u0631 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0641\u0627\u06cc\u0644 Caddyfile\u060c \u0627\u0628\u062a\u062f\u0627 \u0635\u062d\u062a \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> caddy validate <span class=\"\u037c12\">--config<\/span> \/etc\/caddy\/Caddyfile<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2009\" data-end=\"2056\">\u0627\u06af\u0631 \u062e\u0637\u0627\u06cc\u06cc \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0634\u062a\u060c \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"sticky bg-token-border-light\" style=\"text-align: left\"><code><span class=\"\u037c10\">sudo<\/span> systemctl reload caddy<\/code><\/div>\n<div><\/div>\n<div>\n<hr data-start=\"3609\" data-end=\"3612\" \/>\n<h1 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"5vs0di\" data-start=\"0\" data-end=\"44\">\u0645\u0631\u062d\u0644\u0647 \u0633\u0648\u0645 \u2014 \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u062f\u0631 Docker<\/h1>\n<p data-start=\"46\" data-end=\"142\">\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 Docker \u0648 Caddy \u0622\u0645\u0627\u062f\u0647 \u0647\u0633\u062a\u0646\u062f\u060c \u0646\u0648\u0628\u062a \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u062f\u0627\u062e\u0644 \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 Docker \u0645\u06cc\u200c\u0631\u0633\u062f.<\/p>\n<p data-start=\"144\" data-end=\"289\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0632 \u06cc\u06a9 \u0627\u06cc\u0645\u06cc\u062c \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 <strong data-start=\"178\" data-end=\"193\">LinuxServer<\/strong> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0627\u0645\u06a9\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc GUI \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0622\u0646\u200c\u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0645\u0631\u0648\u0631\u06af\u0631 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<hr data-start=\"291\" data-end=\"294\" \/>\n<h1 data-section-id=\"1ekprdg\" data-start=\"296\" data-end=\"314\">\u0627\u06cc\u062c\u0627\u062f \u067e\u0648\u0634\u0647 \u067e\u0631\u0648\u0698\u0647<\/h1>\n<p data-start=\"316\" data-end=\"361\">\u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u067e\u0648\u0634\u0647 \u0628\u0631\u0627\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">mkdir<\/span> ~\/gui-app<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"404\" data-end=\"419\">\u0648 \u0648\u0627\u0631\u062f \u0622\u0646 \u0634\u0648\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">cd<\/span> ~\/gui-app<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"459\" data-end=\"462\" \/>\n<h1 data-section-id=\"1ob1ql7\" data-start=\"464\" data-end=\"491\">\u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 Docker Compose<\/h1>\n<p data-start=\"493\" data-end=\"531\">\u0641\u0627\u06cc\u0644 docker-compose.yml \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>nano docker-compose.yml<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"582\" data-end=\"616\">\u0645\u062d\u062a\u0648\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0627\u062e\u0644 \u0641\u0627\u06cc\u0644 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>services:\r\n  gui:\r\n    image: lscr.io\/linuxserver\/webtop:ubuntu-kde\r\n    container_name: gui-desktop\r\n\r\n    restart: unless-stopped\r\n\r\n    security_opt:\r\n      - seccomp:unconfined\r\n\r\n    environment:\r\n      - PUID=1000\r\n      - PGID=1000\r\n      - TZ=Asia\/Tehran\r\n\r\n    volumes:\r\n      - .\/config:\/config\r\n\r\n    ports:\r\n      - <span class=\"\u037cz\">\"3000:3000\"<\/span>\r\n\r\n    shm_size: <span class=\"\u037cz\">\"2gb\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"985\" data-end=\"1008\">\u0633\u067e\u0633 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"1010\" data-end=\"1013\" \/>\n<h1 data-section-id=\"1ko2pxq\" data-start=\"1015\" data-end=\"1034\">\u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a<\/h1>\n<p data-start=\"1036\" data-end=\"1070\">\u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0686\u0646\u062f \u0628\u062e\u0634 \u0645\u0647\u0645 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.<\/p>\n<h3 data-section-id=\"761lc1\" data-start=\"1072\" data-end=\"1081\">Image<\/h3>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>image: lscr.io\/linuxserver\/webtop:ubuntu-kde<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1153\" data-end=\"1216\">\u0627\u06cc\u0646 \u0627\u06cc\u0645\u06cc\u062c \u06cc\u06a9 \u062f\u0633\u06a9\u062a\u0627\u067e \u06a9\u0627\u0645\u0644 Ubuntu KDE \u0631\u0627 \u062f\u0627\u062e\u0644 Docker \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<hr data-start=\"1218\" data-end=\"1221\" \/>\n<h3 data-section-id=\"1p9fv3x\" data-start=\"1223\" data-end=\"1234\">Volumes<\/h3>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>volumes:\r\n  - .\/config:\/config<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1291\" data-end=\"1362\">\u0627\u06cc\u0646 \u0645\u0633\u06cc\u0631 \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u062d\u062a\u06cc \u067e\u0633 \u0627\u0632 \u062d\u0630\u0641 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0646\u06cc\u0632 \u062d\u0641\u0638 \u0634\u0648\u0646\u062f.<\/p>\n<hr data-start=\"1364\" data-end=\"1367\" \/>\n<h3 data-section-id=\"dvzvqr\" data-start=\"1369\" data-end=\"1385\">Port Mapping<\/h3>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>ports:\r\n  - <span class=\"\u037cz\">\"3000:3000\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1435\" data-end=\"1476\">\u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0631\u0648\u06cc \u067e\u0648\u0631\u062a 3000 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p data-start=\"1478\" data-end=\"1543\">\u062f\u0631 \u0627\u062f\u0627\u0645\u0647 Caddy \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc HTTPS \u0631\u0627 \u0628\u0647 \u0647\u0645\u06cc\u0646 \u067e\u0648\u0631\u062a \u0647\u062f\u0627\u06cc\u062a \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/p>\n<hr data-start=\"1545\" data-end=\"1548\" \/>\n<h3 data-section-id=\"1cuxru9\" data-start=\"1550\" data-end=\"1568\">Restart Policy<\/h3>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>restart: unless-stopped<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1619\" data-end=\"1687\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0631\u06cc\u0628\u0648\u062a \u0634\u062f\u0646 \u0633\u0631\u0648\u0631\u060c \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u062c\u062f\u062f\u0627\u064b \u0627\u062c\u0631\u0627 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/p>\n<hr data-start=\"1689\" data-end=\"1692\" \/>\n<h1 data-section-id=\"id2657\" data-start=\"1694\" data-end=\"1731\">\u062f\u0631\u06cc\u0627\u0641\u062a \u0627\u06cc\u0645\u06cc\u062c \u0627\u0632 \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/h1>\n<p data-start=\"1733\" data-end=\"1861\">\u0627\u06af\u0631 \u0627\u06cc\u0645\u06cc\u062c \u0645\u0648\u0631\u062f\u0646\u0638\u0631 \u062f\u0631 \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0645\u0648\u062c\u0648\u062f \u0628\u0627\u0634\u062f\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0645\u06cc\u0631\u0648\u0631 \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0633\u0631\u0639\u062a \u062f\u0627\u0646\u0644\u0648\u062f \u0627\u0641\u0632\u0627\u06cc\u0634 \u06cc\u0627\u0628\u062f.<\/p>\n<p data-start=\"1863\" data-end=\"1874\">\u0628\u0631\u0627\u06cc \u0646\u0645\u0648\u0646\u0647:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker pull hub.cr.parmincloud.ir\/linuxserver\/webtop:ubuntu-kde<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1965\" data-end=\"2022\">\u0633\u067e\u0633 \u062f\u0631 \u0641\u0627\u06cc\u0644 Compose \u0645\u0642\u062f\u0627\u0631 image \u0631\u0627 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>image: hub.cr.parmincloud.ir\/linuxserver\/webtop:ubuntu-kde<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2108\" data-end=\"2209\">\u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0627\u06cc\u0645\u06cc\u062c \u062f\u0631 \u0645\u06cc\u0631\u0648\u0631 \u0645\u0648\u062c\u0648\u062f \u0646\u0628\u0627\u0634\u062f\u060c Docker \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc \u0627\u0635\u0644\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/p>\n<hr data-start=\"2211\" data-end=\"2214\" \/>\n<h1 data-section-id=\"c36a8e\" data-start=\"2216\" data-end=\"2231\">\u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631<\/h1>\n<p data-start=\"2233\" data-end=\"2260\">\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker compose up <span class=\"\u037c12\">-d<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"2308\" data-end=\"2311\" \/>\n<h1 data-section-id=\"1ihj6uh\" data-start=\"2313\" data-end=\"2334\">\u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631<\/h1>\n<p data-start=\"2336\" data-end=\"2363\">\u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u0635\u062d\u06cc\u062d:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker <span class=\"\u037c10\">ps<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2400\" data-end=\"2433\">\u0628\u0627\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute end-1.5 top-1 z-2 md:end-2 md:top-1\"><\/div>\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>CONTAINER ID\r\nIMAGE\r\nSTATUS\r\n\r\ngui-desktop\r\nUp<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"2502\" data-end=\"2505\" \/>\n<h1 data-section-id=\"4lwqoh\" data-start=\"2507\" data-end=\"2521\">\u0628\u0631\u0631\u0633\u06cc \u0644\u0627\u06af\u200c\u0647\u0627<\/h1>\n<p data-start=\"2523\" data-end=\"2566\">\u0627\u06af\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u062c\u0631\u0627 \u0646\u0634\u062f\u060c \u0644\u0627\u06af\u200c\u0647\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker compose logs <span class=\"\u037c12\">-f<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2616\" data-end=\"2691\">\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0639\u0644\u062a \u062e\u0637\u0627 \u0631\u0627 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u0631\u0627\u06cc \u0631\u0641\u0639 \u0645\u0634\u06a9\u0644\u0627\u062a \u0628\u0633\u06cc\u0627\u0631 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a.<\/p>\n<hr data-start=\"3609\" data-end=\"3612\" \/>\n<\/div>\n<div>\n<h1 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"100y3g2\" data-start=\"0\" data-end=\"64\">\u0645\u0631\u062d\u0644\u0647 \u0686\u0647\u0627\u0631\u0645 \u2014 \u0627\u0646\u062a\u0634\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0628\u0627 Caddy \u0648 \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc HTTPS<\/h1>\n<p data-start=\"66\" data-end=\"284\">\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 Docker \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0627\u0633\u062a \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0631\u0648\u06cc \u067e\u0648\u0631\u062a <strong data-start=\"129\" data-end=\"137\">3000<\/strong> \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <strong data-start=\"186\" data-end=\"195\">Caddy<\/strong> \u0622\u0646 \u0631\u0627 \u0631\u0648\u06cc \u062f\u0627\u0645\u0646\u0647 \u0645\u0646\u062a\u0634\u0631 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 HTTPS \u0628\u0647 \u0622\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f.<\/p>\n<hr data-start=\"286\" data-end=\"289\" \/>\n<h1 data-section-id=\"14jsivz\" data-start=\"291\" data-end=\"314\">\u0648\u06cc\u0631\u0627\u06cc\u0634 \u0641\u0627\u06cc\u0644 Caddyfile<\/h1>\n<p data-start=\"316\" data-end=\"347\">\u0641\u0627\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Caddy \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> nano \/etc\/caddy\/Caddyfile<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"393\" data-end=\"427\">\u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u062f\u0627\u0645\u0646\u0647 \u0634\u0645\u0627 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute end-1.5 top-1 z-2 md:end-2 md:top-1\"><\/div>\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>desktop.example.com<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"458\" data-end=\"489\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute end-1.5 top-1 z-2 md:end-2 md:top-1\"><\/div>\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>desktop.example.com {\r\n\r\n    reverse_proxy localhost:3000\r\n\r\n    encode gzip\r\n\r\n    log\r\n\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"589\" data-end=\"604\">\u062f\u0631 \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a:<\/p>\n<ul data-start=\"606\" data-end=\"724\">\n<li data-section-id=\"c9zump\" data-start=\"606\" data-end=\"658\">\u062a\u0645\u0627\u0645 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc HTTPS \u0628\u0647 \u067e\u0648\u0631\u062a 3000 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/li>\n<li data-section-id=\"adf02t\" data-start=\"659\" data-end=\"689\">\u0641\u0634\u0631\u062f\u0647\u200c\u0633\u0627\u0632\u06cc Gzip \u0641\u0639\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/li>\n<li data-section-id=\"13c52jn\" data-start=\"690\" data-end=\"724\">\u0644\u0627\u06af \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0646\u06cc\u0632 \u062b\u0628\u062a \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/li>\n<\/ul>\n<hr data-start=\"726\" data-end=\"729\" \/>\n<h1 data-section-id=\"djuj9v\" data-start=\"731\" data-end=\"750\">\u0628\u0631\u0631\u0633\u06cc \u0635\u062d\u062a \u062a\u0646\u0638\u06cc\u0645\u0627\u062a<\/h1>\n<p data-start=\"752\" data-end=\"798\">\u0642\u0628\u0644 \u0627\u0632 \u0627\u0639\u0645\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> caddy validate <span class=\"\u037c12\">--config<\/span> \/etc\/caddy\/Caddyfile<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"863\" data-end=\"887\">\u0627\u06af\u0631 \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0628\u0648\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute end-1.5 top-1 z-2 md:end-2 md:top-1\"><\/div>\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>Valid configuration<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"922\" data-end=\"939\">\u0647\u0645\u0647 \u0686\u06cc\u0632 \u062f\u0631\u0633\u062a \u0627\u0633\u062a.<\/p>\n<hr data-start=\"941\" data-end=\"944\" \/>\n<h1 data-section-id=\"1fs8eul\" data-start=\"946\" data-end=\"969\">\u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062c\u062f\u06cc\u062f<\/h1>\n<p data-start=\"971\" data-end=\"999\">\u0627\u06a9\u0646\u0648\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> systemctl reload caddy<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1042\" data-end=\"1087\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0631\u06cc\u0633\u062a\u0627\u0631\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code><span class=\"\u037c10\">sudo<\/span> systemctl <span class=\"\u037c10\">restart<\/span> caddy<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"1131\" data-end=\"1134\" \/>\n<h1 data-section-id=\"1ncvepx\" data-start=\"1136\" data-end=\"1155\">\u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u06cc\u0633<\/h1>\n<p data-start=\"1157\" data-end=\"1190\">\u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u0635\u062d\u06cc\u062d Caddy:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>systemctl status caddy<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1228\" data-end=\"1258\">\u0628\u0627\u06cc\u062f \u0648\u0636\u0639\u06cc\u062a \u0632\u06cc\u0631 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute end-1.5 top-1 z-2 md:end-2 md:top-1\"><\/div>\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>Active: active (running)<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"1298\" data-end=\"1301\" \/>\n<h1 data-section-id=\"vph7ft\" data-start=\"1303\" data-end=\"1328\">\u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u06af\u0648\u0627\u0647\u06cc SSL<\/h1>\n<p data-start=\"1330\" data-end=\"1425\">\u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0647\u0645\u200c\u062a\u0631\u06cc\u0646 \u0645\u0632\u06cc\u062a\u200c\u0647\u0627\u06cc Caddy \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc Certbot \u06cc\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u062f\u0633\u062a\u06cc \u06af\u0648\u0627\u0647\u06cc SSL \u0646\u06cc\u0633\u062a.<\/p>\n<p data-start=\"1427\" data-end=\"1431\">\u0627\u06af\u0631:<\/p>\n<ul data-start=\"1433\" data-end=\"1493\">\n<li data-section-id=\"104hdnp\" data-start=\"1433\" data-end=\"1462\">\u062f\u0627\u0645\u0646\u0647 \u0628\u0647 IP \u0633\u0631\u0648\u0631 \u0627\u0634\u0627\u0631\u0647 \u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"1cbc99z\" data-start=\"1463\" data-end=\"1493\">\u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc 80 \u0648 443 \u0628\u0627\u0632 \u0628\u0627\u0634\u0646\u062f.<\/li>\n<\/ul>\n<p data-start=\"1495\" data-end=\"1537\">Caddy \u0647\u0646\u06af\u0627\u0645 \u0627\u0648\u0644\u06cc\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u060c \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631:<\/p>\n<ul data-start=\"1539\" data-end=\"1655\">\n<li data-section-id=\"mw6s0o\" data-start=\"1539\" data-end=\"1575\">\u06af\u0648\u0627\u0647\u06cc Let&#8217;s Encrypt \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"18ko75x\" data-start=\"1576\" data-end=\"1599\">HTTPS \u0631\u0627 \u0641\u0639\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"b93wc3\" data-start=\"1600\" data-end=\"1655\">\u06af\u0648\u0627\u0647\u06cc \u0631\u0627 \u062f\u0631 \u0622\u06cc\u0646\u062f\u0647 \u0646\u06cc\u0632 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u062a\u0645\u062f\u06cc\u062f \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/li>\n<\/ul>\n<hr data-start=\"1657\" data-end=\"1660\" \/>\n<h1 data-section-id=\"wnb0jd\" data-start=\"1662\" data-end=\"1676\">\u0622\u0632\u0645\u0627\u06cc\u0634 \u0633\u0631\u0648\u06cc\u0633<\/h1>\n<p data-start=\"1678\" data-end=\"1731\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u0631\u0648\u0631\u06af\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0647 \u0648 \u0622\u062f\u0631\u0633 \u0632\u06cc\u0631 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute end-1.5 top-1 z-2 md:end-2 md:top-1\"><\/div>\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>https:\/\/desktop.example.com<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1770\" data-end=\"1863\">\u0627\u06af\u0631 \u0647\u0645\u0647 \u0645\u0631\u0627\u062d\u0644 \u0631\u0627 \u0628\u0647\u200c\u062f\u0631\u0633\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0645\u062d\u06cc\u0637 \u062f\u0633\u06a9\u062a\u0627\u067e \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062f\u0627\u062e\u0644 \u0645\u0631\u0648\u0631\u06af\u0631 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p data-start=\"1865\" data-end=\"1954\">\u0627\u0632 \u0627\u06cc\u0646 \u0644\u062d\u0638\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0631\u0627 \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 Remote Desktop \u06cc\u0627 VNC \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"1956\" data-end=\"1959\" \/>\n<h1 data-section-id=\"q57jhi\" data-start=\"1961\" data-end=\"1982\">\u0628\u0631\u0631\u0633\u06cc \u0644\u0627\u06af\u200c\u0647\u0627\u06cc Caddy<\/h1>\n<p data-start=\"1984\" data-end=\"2032\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0628\u0631\u0648\u0632 \u0645\u0634\u06a9\u0644\u060c \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>journalctl <span class=\"\u037c12\">-u<\/span> caddy <span class=\"\u037c12\">-f<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2070\" data-end=\"2110\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc Docker \u0631\u0627 \u0646\u06cc\u0632 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker compose logs <span class=\"\u037c12\">-f<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2148\" data-end=\"2209\">\u0627\u06cc\u0646 \u062f\u0648 \u062f\u0633\u062a\u0648\u0631 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0639\u0644\u062a \u0627\u06a9\u062b\u0631 \u062e\u0637\u0627\u0647\u0627\u06cc \u0627\u062d\u062a\u0645\u0627\u0644\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<hr data-start=\"3609\" data-end=\"3612\" \/>\n<\/div>\n<div>\n<h1 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"grxnrd\" data-start=\"0\" data-end=\"54\">\u0645\u0631\u062d\u0644\u0647 \u067e\u0646\u062c\u0645 \u2014 \u0646\u0635\u0628 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631<\/h1>\n<p data-start=\"56\" data-end=\"239\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u062d\u06cc\u0637 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0645\u0631\u0648\u0631\u06af\u0631 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0627\u062d\u062a\u0645\u0627\u0644\u0627\u064b \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u0647\u0627\u06cc \u062f\u0644\u062e\u0648\u0627\u0647 \u062e\u0648\u062f \u0645\u0627\u0646\u0646\u062f Firefox\u060c VS Code\u060c LibreOffice \u06cc\u0627 \u0633\u0627\u06cc\u0631 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc \u0631\u0627 \u0646\u06cc\u0632 \u062f\u0627\u062e\u0644 \u0622\u0646 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"241\" data-end=\"324\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0628\u0627 \u0646\u062d\u0648\u0647 \u0646\u0635\u0628 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u060c \u062d\u0641\u0638 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0648 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0622\u0634\u0646\u0627 \u0645\u06cc\u200c\u0634\u0648\u06cc\u062f.<\/p>\n<hr data-start=\"326\" data-end=\"329\" \/>\n<h1 data-section-id=\"wd63la\" data-start=\"331\" data-end=\"348\">\u0648\u0631\u0648\u062f \u0628\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631<\/h1>\n<p data-start=\"350\" data-end=\"374\">\u0627\u0628\u062a\u062f\u0627 \u0648\u0627\u0631\u062f \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0634\u0648\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker exec <span class=\"\u037c12\">-it<\/span> gui-desktop <span class=\"\u037c10\">bash<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"434\" data-end=\"493\">\u0627\u06a9\u0646\u0648\u0646 \u062f\u0627\u062e\u0644 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 Ubuntu \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u062f\u0631 Docker \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u06cc\u062f.<\/p>\n<hr data-start=\"495\" data-end=\"498\" \/>\n<h1 data-section-id=\"1f4dqy8\" data-start=\"500\" data-end=\"519\">\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0628\u0633\u062a\u0647\u200c\u0647\u0627<\/h1>\n<p data-start=\"521\" data-end=\"578\">\u0642\u0628\u0644 \u0627\u0632 \u0646\u0635\u0628 \u0647\u0631 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u060c \u0641\u0647\u0631\u0633\u062a \u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>apt update<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"616\" data-end=\"665\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632\u060c \u0628\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u0646\u0635\u0628\u200c\u0634\u062f\u0647 \u0631\u0627 \u0646\u06cc\u0632 \u0627\u0631\u062a\u0642\u0627 \u062f\u0647\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>apt upgrade <span class=\"\u037c12\">-y<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"707\" data-end=\"710\" \/>\n<h1 data-section-id=\"fsh0ra\" data-start=\"712\" data-end=\"736\">\u0646\u0635\u0628 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc<\/h1>\n<p data-start=\"738\" data-end=\"761\">\u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644\u060c \u0646\u0635\u0628 Firefox:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>apt install firefox <span class=\"\u037c12\">-y<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"811\" data-end=\"826\">\u06cc\u0627 LibreOffice:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>apt install libreoffice <span class=\"\u037c12\">-y<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"880\" data-end=\"941\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632 \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>apt install <span class=\"\u037c10\">git<\/span> <span class=\"\u037c10\">curl<\/span> <span class=\"\u037c10\">wget<\/span> nano <span class=\"\u037c10\">vim<\/span> <span class=\"\u037c12\">-y<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"1006\" data-end=\"1009\" \/>\n<h1 data-section-id=\"sx2fhw\" data-start=\"1011\" data-end=\"1035\">\u0646\u0635\u0628 Visual Studio Code<\/h1>\n<p data-start=\"1037\" data-end=\"1160\">\u0627\u06af\u0631 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u062f \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u06a9\u0627\u0645\u0644\u06cc \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0633\u062e\u0647 Linux \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 Visual Studio Code \u0631\u0627 \u0646\u06cc\u0632 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"1162\" data-end=\"1235\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062e\u0627\u0632\u0646 \u0631\u0633\u0645\u06cc\u060c \u0645\u0631\u0627\u062d\u0644 \u0646\u0635\u0628 \u0645\u0637\u0627\u0628\u0642 \u0645\u0633\u062a\u0646\u062f\u0627\u062a VS Code \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<hr data-start=\"1237\" data-end=\"1240\" \/>\n<h1 data-section-id=\"rtac2n\" data-start=\"1242\" data-end=\"1262\">\u0646\u0635\u0628 \u0645\u0631\u0648\u0631\u06af\u0631\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631<\/h1>\n<p data-start=\"1264\" data-end=\"1304\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0631\u0648\u0631\u06af\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f:<\/p>\n<ul data-start=\"1306\" data-end=\"1334\">\n<li data-section-id=\"aooen6\" data-start=\"1306\" data-end=\"1316\">Chromium<\/li>\n<li data-section-id=\"14im2o1\" data-start=\"1317\" data-end=\"1326\">Firefox<\/li>\n<li data-section-id=\"16ybzai\" data-start=\"1327\" data-end=\"1334\">Brave<\/li>\n<\/ul>\n<p data-start=\"1336\" data-end=\"1352\">\u0631\u0627 \u0646\u06cc\u0632 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"1354\" data-end=\"1357\" \/>\n<h1 data-section-id=\"1fv482v\" data-start=\"1359\" data-end=\"1394\">\u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u067e\u0633 \u0627\u0632 \u062d\u0630\u0641 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631<\/h1>\n<p data-start=\"1396\" data-end=\"1440\">\u062f\u0631 \u0641\u0627\u06cc\u0644 Compose \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0628\u0648\u062f\u06cc\u0645:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>volumes:\r\n  - .\/config:\/config<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1497\" data-end=\"1538\">\u0628\u0647 \u06a9\u0645\u06a9 Volume\u060c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0632\u06cc\u0631 \u062d\u0641\u0638 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f:<\/p>\n<ul data-start=\"1540\" data-end=\"1629\">\n<li data-section-id=\"jf937j\" data-start=\"1540\" data-end=\"1557\">\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646<\/li>\n<li data-section-id=\"4px685\" data-start=\"1558\" data-end=\"1573\">\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0634\u062e\u0635\u06cc<\/li>\n<li data-section-id=\"f6254e\" data-start=\"1574\" data-end=\"1593\">\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627<\/li>\n<li data-section-id=\"1r8wsn8\" data-start=\"1594\" data-end=\"1610\">\u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u0645\u0631\u0648\u0631\u06af\u0631<\/li>\n<li data-section-id=\"1v0wn5g\" data-start=\"1611\" data-end=\"1629\">\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc Desktop<\/li>\n<\/ul>\n<p data-start=\"1631\" data-end=\"1692\">\u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 \u062d\u062a\u06cc \u0627\u06af\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u062d\u0630\u0641 \u0634\u0648\u062f\u060c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0632 \u0628\u06cc\u0646 \u0646\u062e\u0648\u0627\u0647\u0646\u062f \u0631\u0641\u062a.<\/p>\n<hr data-start=\"1694\" data-end=\"1697\" \/>\n<h1 data-section-id=\"1aggeu6\" data-start=\"1699\" data-end=\"1713\">\u062a\u0648\u0642\u0641 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631<\/h1>\n<p data-start=\"1715\" data-end=\"1728\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker compose <span class=\"\u037c10\">stop<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"1775\" data-end=\"1778\" \/>\n<h1 data-section-id=\"97vmke\" data-start=\"1780\" data-end=\"1792\">\u0627\u062c\u0631\u0627\u06cc \u0645\u062c\u062f\u062f<\/h1>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker compose <span class=\"\u037c10\">start<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"1840\" data-end=\"1843\" \/>\n<h1 data-section-id=\"a2fk2t\" data-start=\"1845\" data-end=\"1862\">\u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062c\u062f\u062f<\/h1>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker compose <span class=\"\u037c10\">restart<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"1912\" data-end=\"1915\" \/>\n<h1 data-section-id=\"1ygwu8a\" data-start=\"1917\" data-end=\"1937\">\u062a\u0648\u0642\u0641 \u0648 \u062d\u0630\u0641 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631<\/h1>\n<p data-start=\"1939\" data-end=\"1968\">\u0627\u06af\u0631 \u0642\u0635\u062f \u062d\u0630\u0641 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u062f\u0627\u0631\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker compose down<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2015\" data-end=\"2096\">\u062f\u0642\u062a \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Volume\u060c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0630\u062e\u06cc\u0631\u0647\u200c\u0634\u062f\u0647 \u0647\u0645\u0686\u0646\u0627\u0646 \u0628\u0627\u0642\u06cc \u062e\u0648\u0627\u0647\u0646\u062f \u0645\u0627\u0646\u062f.<\/p>\n<hr data-start=\"2098\" data-end=\"2101\" \/>\n<h1 data-section-id=\"6k2yds\" data-start=\"2103\" data-end=\"2127\">\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0627\u06cc\u0645\u06cc\u062c Docker<\/h1>\n<p data-start=\"2129\" data-end=\"2157\">\u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0646\u0633\u062e\u0647 \u062c\u062f\u06cc\u062f \u0627\u06cc\u0645\u06cc\u062c:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker compose pull<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2204\" data-end=\"2237\">\u0633\u067e\u0633 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u0645\u062c\u062f\u062f\u0627\u064b \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker compose up <span class=\"\u037c12\">-d<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2285\" data-end=\"2394\">\u0628\u0627 \u0627\u06cc\u0646 \u0631\u0648\u0634\u060c \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0646\u0635\u0628 \u0645\u062c\u062f\u062f \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u0647\u0627 \u06cc\u0627 \u0627\u0632 \u062f\u0633\u062a \u062f\u0627\u062f\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a\u060c \u0627\u0632 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0627\u06cc\u0645\u06cc\u062c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f.<\/p>\n<hr data-start=\"2396\" data-end=\"2399\" \/>\n<h1 data-section-id=\"1iov5tq\" data-start=\"2401\" data-end=\"2425\">\u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u0632\u0627\u0646 \u0645\u0635\u0631\u0641 \u0645\u0646\u0627\u0628\u0639<\/h1>\n<p data-start=\"2427\" data-end=\"2468\">\u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u06cc\u0632\u0627\u0646 \u0645\u0635\u0631\u0641 CPU \u0648 RAM \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker stats<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2508\" data-end=\"2533\">\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u0645\u0627\u0646\u0646\u062f:<\/p>\n<ul data-start=\"2535\" data-end=\"2609\">\n<li data-section-id=\"3o6qs1\" data-start=\"2535\" data-end=\"2557\">\u0645\u06cc\u0632\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 CPU<\/li>\n<li data-section-id=\"11qzo9u\" data-start=\"2558\" data-end=\"2569\">\u062d\u0627\u0641\u0638\u0647 RAM<\/li>\n<li data-section-id=\"29cbbu\" data-start=\"2570\" data-end=\"2581\">\u0645\u0635\u0631\u0641 \u0634\u0628\u06a9\u0647<\/li>\n<li data-section-id=\"1xb8hcr\" data-start=\"2582\" data-end=\"2609\">\u0645\u06cc\u0632\u0627\u0646 \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u0646\u0648\u0634\u062a\u0646 \u062f\u06cc\u0633\u06a9<\/li>\n<\/ul>\n<p data-start=\"2611\" data-end=\"2643\">\u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0644\u062d\u0638\u0647\u200c\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<hr data-start=\"3609\" data-end=\"3612\" \/>\n<h1 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"htzcqz\" data-start=\"0\" data-end=\"51\">\u0645\u0631\u062d\u0644\u0647 \u0634\u0634\u0645 \u2014 \u0646\u06a9\u0627\u062a \u0627\u0645\u0646\u06cc\u062a\u06cc\u060c \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627 \u0648 \u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc<\/h1>\n<p data-start=\"53\" data-end=\"203\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0686\u0646\u062f \u062a\u0648\u0635\u06cc\u0647 \u0645\u0647\u0645 \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634 \u0627\u0645\u0646\u06cc\u062a \u0648 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc (Production) \u0646\u06cc\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"205\" data-end=\"208\" \/>\n<h1 data-section-id=\"15siqs3\" data-start=\"210\" data-end=\"250\">\u062f\u0633\u062a\u0631\u0633\u06cc \u0631\u0627 \u0641\u0642\u0637 \u0627\u0632 \u0637\u0631\u06cc\u0642 HTTPS \u0641\u0631\u0627\u0647\u0645 \u06a9\u0646\u06cc\u062f<\/h1>\n<p data-start=\"252\" data-end=\"366\">\u0627\u06af\u0631 \u0627\u0632 Caddy \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0627\u06cc\u0646 \u0648\u0628\u200c\u0633\u0631\u0648\u0631 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u06af\u0648\u0627\u0647\u06cc SSL \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0647 \u0648 \u062a\u0645\u0627\u0645 \u0627\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u0631\u0627 \u0631\u0645\u0632\u0646\u06af\u0627\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p data-start=\"368\" data-end=\"416\">\u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0647\u0645\u06cc\u0634\u0647 \u0627\u0632 \u0622\u062f\u0631\u0633 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0646\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute end-1.5 top-1 z-2 md:end-2 md:top-1\"><\/div>\n<div class=\"relative\">\n<div class=\"pe-11 pt-3\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>https:\/\/desktop.example.com<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"459\" data-end=\"524\">\u0648 \u0627\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0647 \u067e\u0648\u0631\u062a \u062f\u0627\u062e\u0644\u06cc Docker (\u0645\u0627\u0646\u0646\u062f 3000) \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0634\u0648\u062f.<\/p>\n<hr data-start=\"526\" data-end=\"529\" \/>\n<h1 data-section-id=\"1i2ho92\" data-start=\"531\" data-end=\"571\">\u067e\u0648\u0631\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0645\u0646\u062a\u0634\u0631 \u0646\u06a9\u0646\u06cc\u062f<\/h1>\n<p data-start=\"573\" data-end=\"680\">\u0627\u06af\u0631 \u062a\u0646\u0647\u0627 Caddy \u0642\u0631\u0627\u0631 \u0627\u0633\u062a \u0628\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0645\u062a\u0635\u0644 \u0634\u0648\u062f\u060c \u0646\u06cc\u0627\u0632\u06cc \u0646\u06cc\u0633\u062a \u067e\u0648\u0631\u062a 3000 \u0631\u0648\u06cc \u062a\u0645\u0627\u0645 \u0627\u06cc\u0646\u062a\u0631\u0641\u06cc\u0633\u200c\u0647\u0627\u06cc \u0634\u0628\u06a9\u0647 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0628\u0627\u0634\u062f.<\/p>\n<p data-start=\"682\" data-end=\"689\">\u0628\u0647 \u062c\u0627\u06cc:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>ports:\r\n  - <span class=\"\u037cz\">\"3000:3000\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"727\" data-end=\"775\">\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0641\u0642\u0637 \u0631\u0648\u06cc \u0644\u0648\u067e\u200c\u0628\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0646\u062a\u0634\u0631 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>ports:\r\n  - <span class=\"\u037cz\">\"127.0.0.1:3000:3000\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"823\" data-end=\"931\">\u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a\u060c \u062a\u0646\u0647\u0627 \u062e\u0648\u062f \u0633\u0631\u0648\u0631 \u0628\u0647 \u0627\u06cc\u0646 \u067e\u0648\u0631\u062a \u062f\u0633\u062a\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a \u0648 \u062a\u0645\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0632 \u0637\u0631\u06cc\u0642 Caddy \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/p>\n<hr data-start=\"933\" data-end=\"936\" \/>\n<h1 data-section-id=\"10aw6eg\" data-start=\"938\" data-end=\"966\">\u0627\u0632 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/h1>\n<p data-start=\"968\" data-end=\"1074\">\u0627\u06af\u0631 \u0645\u062d\u06cc\u0637 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0628\u062f\u0648\u0646 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0645\u0646\u062a\u0634\u0631 \u0634\u0648\u062f\u060c \u0647\u0631 \u0641\u0631\u062f\u06cc \u06a9\u0647 \u0622\u062f\u0631\u0633 \u062f\u0627\u0645\u0646\u0647 \u0631\u0627 \u0628\u062f\u0627\u0646\u062f \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0622\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f.<\/p>\n<p data-start=\"1076\" data-end=\"1136\">\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06cc\u06a9\u06cc \u0627\u0632 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<ul data-start=\"1138\" data-end=\"1279\">\n<li data-section-id=\"1bvkl9z\" data-start=\"1138\" data-end=\"1169\">Basic Authentication \u062f\u0631 Caddy<\/li>\n<li data-section-id=\"1oobl4e\" data-start=\"1170\" data-end=\"1196\">\u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc OAuth<\/li>\n<li data-section-id=\"1796juj\" data-start=\"1197\" data-end=\"1226\">\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642 Authelia<\/li>\n<li data-section-id=\"1jtpwwd\" data-start=\"1227\" data-end=\"1279\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc Single Sign-On \u0645\u0627\u0646\u0646\u062f Keycloak<\/li>\n<\/ul>\n<hr data-start=\"1281\" data-end=\"1284\" \/>\n<h1 data-section-id=\"1qzif5v\" data-start=\"1286\" data-end=\"1316\">\u062f\u0633\u062a\u0631\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u0645\u062d\u062f\u0648\u062f \u06a9\u0646\u06cc\u062f<\/h1>\n<p data-start=\"1318\" data-end=\"1411\">\u0627\u06af\u0631 \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u062a\u06cc\u0645 \u062f\u0627\u062e\u0644\u06cc \u06cc\u0627 \u0633\u0627\u0632\u0645\u0627\u0646 \u0634\u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u062f\u0633\u062a\u0631\u0633\u06cc \u0631\u0627 \u0645\u062d\u062f\u0648\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"1413\" data-end=\"1433\">\u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f:<\/p>\n<ul data-start=\"1435\" data-end=\"1551\">\n<li data-section-id=\"16k2k5v\" data-start=\"1435\" data-end=\"1466\">\u062a\u0646\u0647\u0627 IP\u0647\u0627\u06cc \u0645\u0634\u062e\u0635 \u0631\u0627 \u0645\u062c\u0627\u0632 \u06a9\u0646\u06cc\u062f.<\/li>\n<li data-section-id=\"2r0fjb\" data-start=\"1467\" data-end=\"1489\">\u0627\u0632 VPN \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li data-section-id=\"1a9eiou\" data-start=\"1490\" data-end=\"1551\">\u062f\u0633\u062a\u0631\u0633\u06cc \u0631\u0627 \u067e\u0634\u062a Cloudflare Zero Trust \u06cc\u0627 Tailscale \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f.<\/li>\n<\/ul>\n<hr data-start=\"1553\" data-end=\"1556\" \/>\n<h1 data-section-id=\"1kai9jx\" data-start=\"1558\" data-end=\"1585\">\u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u0646\u0638\u0645 \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627<\/h1>\n<p data-start=\"1587\" data-end=\"1676\">\u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0622\u0633\u06cc\u0628\u200c\u067e\u0630\u06cc\u0631\u06cc\u200c\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc\u060c \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627\u06cc Docker \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0645\u0646\u0638\u0645 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker compose pull\r\ndocker compose up <span class=\"\u037c12\">-d<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"1732\" data-end=\"1809\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f Docker \u0648 Caddy \u0631\u0627 \u0646\u06cc\u0632 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062f\u0648\u0631\u0647\u200c\u0627\u06cc \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"1811\" data-end=\"1814\" \/>\n<h1 data-section-id=\"fpkez2\" data-start=\"1816\" data-end=\"1855\">\u0627\u0632 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062e\u0648\u062f \u0646\u0633\u062e\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646 \u062a\u0647\u06cc\u0647 \u06a9\u0646\u06cc\u062f<\/h1>\n<p data-start=\"1857\" data-end=\"1954\">\u0627\u06af\u0631 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062f\u0627\u062e\u0644 Volume \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0645\u0646\u0638\u0645 \u0627\u0632 \u0622\u0646 \u0646\u0633\u062e\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646 \u062a\u0647\u06cc\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"1956\" data-end=\"1966\">\u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>tar <span class=\"\u037c12\">-czf<\/span> backup-config.tar.gz config\/<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2019\" data-end=\"2096\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0628\u0631\u0648\u0632 \u0645\u0634\u06a9\u0644 \u06cc\u0627 \u0645\u0647\u0627\u062c\u0631\u062a \u0628\u0647 \u0633\u0631\u0648\u0631 \u062c\u062f\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"2098\" data-end=\"2101\" \/>\n<h1 data-section-id=\"1f3u4ct\" data-start=\"2103\" data-end=\"2121\">\u0645\u0627\u0646\u06cc\u062a\u0648\u0631\u06cc\u0646\u06af \u0633\u0631\u0648\u06cc\u0633<\/h1>\n<p data-start=\"2123\" data-end=\"2173\">\u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0633\u0644\u0627\u0645\u062a \u0633\u0631\u0648\u06cc\u0633\u060c \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0647\u0633\u062a\u0646\u062f:<\/p>\n<p data-start=\"2175\" data-end=\"2196\">\u0645\u0634\u0627\u0647\u062f\u0647 \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker <span class=\"\u037c10\">ps<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2221\" data-end=\"2238\">\u0628\u0631\u0631\u0633\u06cc \u0645\u0635\u0631\u0641 \u0645\u0646\u0627\u0628\u0639:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker stats<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2266\" data-end=\"2289\">\u0645\u0634\u0627\u0647\u062f\u0647 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>docker compose logs <span class=\"\u037c12\">-f<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2327\" data-end=\"2348\">\u0645\u0634\u0627\u0647\u062f\u0647 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc Caddy:<\/p>\n<div class=\"relative w-full mt-4 mb-1\">\n<div class=\"\">\n<div class=\"contents\">\n<div class=\"border border-token-border-light border-radius-3xl corner-superellipse\/1.1 rounded-3xl\">\n<div class=\"relative h-full w-full border-radius-3xl bg-(--code-block-surface) corner-superellipse\/1.1 overflow-clip rounded-3xl [--code-block-surface:var(--bg-elevated-secondary)] dark:[--code-block-surface:var(--composer-surface-primary)] lxnfua_clipPathFallback\">\n<div class=\"pointer-events-none absolute inset-x-4 top-12 bottom-4\">\n<div class=\"pointer-events-none sticky z-40 shrink-0 z-1!\">\n<div class=\"sticky bg-token-border-light\"><\/div>\n<\/div>\n<\/div>\n<div class=\"relative\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"h-full min-h-0 min-w-0\">\n<div class=\"\">\n<div class=\"relative\">\n<div class=\"\">\n<div class=\"relative z-0 flex max-w-full\">\n<div id=\"code-block-viewer\" class=\"q9tKkq_viewer cm-editor z-10 light:cm-light dark:cm-light flex h-full w-full flex-col items-stretch \u037cs \u037c16\" dir=\"ltr\">\n<div class=\"cm-scroller\">\n<pre class=\"cm-content q9tKkq_readonly m-0\"><code>journalctl <span class=\"\u037c12\">-u<\/span> caddy <span class=\"\u037c12\">-f<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<div class=\"\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p data-start=\"2386\" data-end=\"2474\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0645\u0634\u06a9\u0644\u0627\u062a \u0627\u062d\u062a\u0645\u0627\u0644\u06cc \u0631\u0627 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0648 \u0628\u0631\u0637\u0631\u0641 \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"2476\" data-end=\"2479\" \/>\n<h1 data-section-id=\"qpvq47\" data-start=\"2481\" data-end=\"2491\">\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc<\/h1>\n<p data-start=\"2493\" data-end=\"2797\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u06cc\u0627\u062f \u06af\u0631\u0641\u062a\u06cc\u062f \u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc \u0631\u0627 \u062f\u0627\u062e\u0644 Docker \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 <strong data-start=\"2590\" data-end=\"2599\">Caddy<\/strong> \u0631\u0648\u06cc \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0645\u0646\u062a\u0634\u0631 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u0631\u0648\u0634\u060c \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0646\u0635\u0628 \u0645\u062d\u06cc\u0637 \u062f\u0633\u06a9\u062a\u0627\u067e \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u06cc\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0631\u0648\u062a\u06a9\u0644\u200c\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f VNC \u0648 Remote Desktop\u060c \u0627\u0645\u06a9\u0627\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u06cc\u0645\u0646 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc GUI \u0631\u0627 \u062a\u0646\u0647\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0645\u0631\u0648\u0631\u06af\u0631 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p data-start=\"2799\" data-end=\"2837\">\u062f\u0631 \u0637\u0648\u0644 \u0645\u0642\u0627\u0644\u0647 \u0645\u0631\u0627\u062d\u0644 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u06cc\u0645:<\/p>\n<ul data-start=\"2839\" data-end=\"3181\">\n<li data-section-id=\"1spljdd\" data-start=\"2839\" data-end=\"2916\">\u0646\u0635\u0628 Docker \u0631\u0648\u06cc Ubuntu 24.04 \u0648 26.04 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <strong data-start=\"2891\" data-end=\"2915\">\u0645\u06cc\u0631\u0648\u0631\u0647\u0627\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/strong>.<\/li>\n<li data-section-id=\"141clow\" data-start=\"2917\" data-end=\"2963\">\u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Caddy \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 Reverse Proxy.<\/li>\n<li data-section-id=\"1mgq709\" data-start=\"2964\" data-end=\"3022\">\u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 Docker \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0645\u062d\u06cc\u0637 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc.<\/li>\n<li data-section-id=\"1u6uxuo\" data-start=\"3023\" data-end=\"3083\">\u0627\u0646\u062a\u0634\u0627\u0631 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0648\u06cc \u062f\u0627\u0645\u0646\u0647 \u0628\u0627 HTTPS \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u06af\u0648\u0627\u0647\u06cc SSL.<\/li>\n<li data-section-id=\"1efsa7o\" data-start=\"3084\" data-end=\"3131\">\u0646\u0635\u0628 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631.<\/li>\n<li data-section-id=\"108yqds\" data-start=\"3132\" data-end=\"3181\">\u0628\u0631\u0631\u0633\u06cc \u0646\u06a9\u0627\u062a \u0627\u0645\u0646\u06cc\u062a\u06cc\u060c \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0648 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0633\u0631\u0648\u06cc\u0633.<\/li>\n<\/ul>\n<p data-start=\"3183\" data-end=\"3528\" data-is-last-node=\"\" data-is-only-node=\"\">\u0627\u06cc\u0646 \u0645\u0639\u0645\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0631\u0627\u0626\u0647 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647 \u062a\u062d\u062a \u0648\u0628\u060c \u0627\u062c\u0631\u0627\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u0647\u0627\u06cc \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0631\u0648\u06cc \u0633\u0631\u0648\u0631\u060c \u0622\u0632\u0645\u0627\u06cc\u0634 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u060c \u062f\u0633\u062a\u0631\u0633\u06cc \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0628\u0647 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc \u0648 \u0627\u06cc\u062c\u0627\u062f \u062f\u0633\u06a9\u062a\u0627\u067e\u200c\u0647\u0627\u06cc \u0627\u0628\u0631\u06cc \u0633\u0628\u06a9\u060c \u06af\u0632\u06cc\u0646\u0647\u200c\u0627\u06cc \u0645\u0646\u0627\u0633\u0628 \u0648 \u0645\u0646\u0639\u0637\u0641 \u0645\u062d\u0633\u0648\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0627 \u0631\u0639\u0627\u06cc\u062a \u0646\u06a9\u0627\u062a \u0627\u0645\u0646\u06cc\u062a\u06cc \u0648 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0645\u0646\u0638\u0645 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0627\u0647\u06a9\u0627\u0631 \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0646\u06cc\u0632 \u0628\u0627 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/div>\n<p data-start=\"3183\" data-end=\"3528\" data-is-last-node=\"\" data-is-only-node=\"\">\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<div style='text-align:center' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633\u06cc \u062f\u0627\u0631\u0627\u06cc \u0631\u0627\u0628\u0637 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc (GUI) \u0647\u0633\u062a\u0646\u062f \u0648 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u062f\u0633\u06a9\u062a\u0627\u067e \u062f\u0627\u0631\u0646\u062f. \u0627\u0645\u0627 \u0627\u06af\u0631 \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0641\u0627\u0642\u062f \u0645\u062d\u06cc\u0637 \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u0628\u0627\u0634\u062f \u06cc\u0627 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u062f\u0648\u0646 \u0646\u0635\u0628 Desktop Environment \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0645\u0631\u0648\u0631\u06af\u0631 \u0628\u0647 \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0686\u0647 \u0631\u0627\u0647\u06a9\u0627\u0631\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u061f \u06cc\u06a9\u06cc \u0627\u0632 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u200c\u0647\u0627\u060c \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06af\u0631\u0627\u0641\u06cc\u06a9\u06cc \u062f\u0627\u062e\u0644 [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":6606,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","footnotes":""},"categories":[258,131,215,150],"tags":[1280,1509,1596,1591,1597,1592,1594,1598,1593,1595],"class_list":["post-6603","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ubuntu","category-131","category-server","category-linux","tag-docker-compose","tag-ubuntu-24-04","tag--caddy","tag--caddy-server","tag--docker","tag--gui--docker","tag-----docker","tag-1593","tag---caddy"],"aioseo_notices":[],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":0,"sum_votes":0},"_links":{"self":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6603","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=6603"}],"version-history":[{"count":3,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6603\/revisions"}],"predecessor-version":[{"id":6607,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6603\/revisions\/6607"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/6606"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=6603"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=6603"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=6603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}