{"id":6640,"date":"2026-07-15T17:00:08","date_gmt":"2026-07-15T13:30:08","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=6640"},"modified":"2026-07-15T17:00:08","modified_gmt":"2026-07-15T13:30:08","slug":"%d9%86%d8%b5%d8%a8-%d9%88-%d9%be%db%8c%da%a9%d8%b1%d8%a8%d9%86%d8%af%db%8c-drone-ci-cd-%d8%b1%d9%88%db%8c-ubuntu-24-04-lts","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/%d9%86%d8%b5%d8%a8-%d9%88-%d9%be%db%8c%da%a9%d8%b1%d8%a8%d9%86%d8%af%db%8c-drone-ci-cd-%d8%b1%d9%88%db%8c-ubuntu-24-04-lts\/","title":{"rendered":"\u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Drone CI\/CD \u0631\u0648\u06cc Ubuntu 24.04 LTS"},"content":{"rendered":"<h2 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"43f4r3\" data-start=\"51\" data-end=\"59\">\u0645\u0642\u062f\u0645\u0647<\/h2>\n<p data-start=\"61\" data-end=\"270\">\u0627\u0645\u0631\u0648\u0632\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <strong data-start=\"79\" data-end=\"88\">CI\/CD<\/strong> \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0647\u0645\u200c\u062a\u0631\u06cc\u0646 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0647\u0631\u0686\u0647 \u0641\u0631\u0622\u06cc\u0646\u062f Build\u060c Test \u0648 Deploy \u062e\u0648\u062f\u06a9\u0627\u0631\u062a\u0631 \u0628\u0627\u0634\u062f\u060c \u0633\u0631\u0639\u062a \u062a\u0648\u0633\u0639\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0627\u062d\u062a\u0645\u0627\u0644 \u0628\u0631\u0648\u0632 \u062e\u0637\u0627\u0647\u0627\u06cc \u0627\u0646\u0633\u0627\u0646\u06cc \u0646\u06cc\u0632 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u06cc\u0627\u0628\u062f.<\/p>\n<p data-start=\"272\" data-end=\"566\"><strong data-start=\"272\" data-end=\"284\">Drone CI<\/strong> \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u0645\u062a\u0646\u200c\u0628\u0627\u0632 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc CI\/CD \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0632\u0628\u0627\u0646 <strong data-start=\"340\" data-end=\"346\">Go<\/strong> \u062a\u0648\u0633\u0639\u0647 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0648 \u0628\u0647\u200c\u0635\u0648\u0631\u062a <strong data-start=\"372\" data-end=\"392\">Container-Native<\/strong> \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a. \u0628\u0631\u062e\u0644\u0627\u0641 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0634\u0627\u0628\u0647\u060c Drone \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u06a9\u0627\u0645\u0644 \u0631\u0648\u06cc Docker \u0648 Kubernetes \u062a\u0645\u0631\u06a9\u0632 \u062f\u0627\u0631\u062f \u0648 \u062a\u0645\u0627\u0645\u06cc Pipeline\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0645\u062a\u0646\u06cc \u0642\u0627\u0628\u0644 \u0646\u0633\u062e\u0647\u200c\u0628\u0646\u062f\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p data-start=\"568\" data-end=\"617\">\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Drone \u062f\u0631 \u0642\u0627\u0644\u0628 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n<ul data-start=\"619\" data-end=\"669\">\n<li data-section-id=\"gwedpy\" data-start=\"619\" data-end=\"641\">YAML (\u0631\u0627\u06cc\u062c\u200c\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634)<\/li>\n<li data-section-id=\"1j3x13k\" data-start=\"642\" data-end=\"648\">JSON<\/li>\n<li data-section-id=\"wyatwv\" data-start=\"649\" data-end=\"658\">JSONNet<\/li>\n<li data-section-id=\"13ppnyg\" data-start=\"659\" data-end=\"669\">Starlark<\/li>\n<\/ul>\n<p data-start=\"671\" data-end=\"753\">\u0647\u0631 Pipeline \u0634\u0627\u0645\u0644 \u0686\u0646\u062f\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 (Step) \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647\u200c\u062a\u0631\u062a\u06cc\u0628 \u06cc\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0645\u0648\u0627\u0632\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/p>\n<hr data-start=\"755\" data-end=\"758\" \/>\n<h2 data-section-id=\"lu4vgp\" data-start=\"760\" data-end=\"802\">Drone \u0627\u0632 \u0686\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f\u061f<\/h2>\n<p data-start=\"804\" data-end=\"869\">Drone \u0628\u0627 \u0627\u06a9\u062b\u0631 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0645\u062d\u0628\u0648\u0628 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0648\u0631\u0633\u200c\u06a9\u062f \u0633\u0627\u0632\u06af\u0627\u0631 \u0627\u0633\u062a. \u0627\u0632 \u062c\u0645\u0644\u0647:<\/p>\n<ul data-start=\"871\" data-end=\"944\">\n<li data-section-id=\"1xdrp7x\" data-start=\"871\" data-end=\"879\">GitHub<\/li>\n<li data-section-id=\"1c0h0ns\" data-start=\"880\" data-end=\"899\">GitHub Enterprise<\/li>\n<li data-section-id=\"2p2d1k\" data-start=\"900\" data-end=\"917\">Bitbucket Cloud<\/li>\n<li data-section-id=\"7qcbzw\" data-start=\"918\" data-end=\"936\">Bitbucket Server<\/li>\n<li data-section-id=\"16zyu0m\" data-start=\"937\" data-end=\"944\">Gitea<\/li>\n<\/ul>\n<p data-start=\"946\" data-end=\"1082\">\u067e\u0633 \u0627\u0632 \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u060c Drone \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 Commit\u0647\u0627 \u0648 Pull Request\u0647\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u0647 \u0648 Pipeline\u0647\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641\u200c\u0634\u062f\u0647 \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<hr data-start=\"1084\" data-end=\"1087\" \/>\n<h2 data-section-id=\"7qlal1\" data-start=\"1089\" data-end=\"1113\">Runner \u062f\u0631 Drone \u0686\u06cc\u0633\u062a\u061f<\/h2>\n<p data-start=\"1115\" data-end=\"1216\">\u062e\u0648\u062f Drone \u062a\u0646\u0647\u0627 \u0646\u0642\u0634 \u0645\u062f\u06cc\u0631\u06cc\u062a Pipeline\u0647\u0627 \u0631\u0627 \u0628\u0631\u0639\u0647\u062f\u0647 \u062f\u0627\u0631\u062f \u0648 \u0627\u062c\u0631\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc Job\u0647\u0627 \u062a\u0648\u0633\u0637 <strong data-start=\"1192\" data-end=\"1202\">Runner<\/strong> \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p data-start=\"1218\" data-end=\"1290\">Runner\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0628\u0631\u0627\u06cc Drone \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0647\u0631\u06a9\u062f\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u062f \u062e\u0627\u0635 \u062e\u0648\u062f \u0631\u0627 \u062f\u0627\u0631\u0646\u062f.<\/p>\n<h3 data-section-id=\"1bwvewy\" data-start=\"1292\" data-end=\"1309\">Docker Runner<\/h3>\n<p data-start=\"1311\" data-end=\"1354\">\u0631\u0627\u06cc\u062c\u200c\u062a\u0631\u06cc\u0646 \u0648 \u067e\u0627\u06cc\u062f\u0627\u0631\u062a\u0631\u06cc\u0646 Runner \u0645\u062d\u0633\u0648\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p data-start=\"1356\" data-end=\"1462\">\u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a \u0647\u0631 Step \u0627\u0632 Pipeline \u062f\u0627\u062e\u0644 \u06cc\u06a9 Container \u0645\u0633\u062a\u0642\u0644 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0628\u0627\u0639\u062b \u0627\u06cc\u0632\u0648\u0644\u0647 \u0634\u062f\u0646 \u0645\u062d\u06cc\u0637 \u0627\u062c\u0631\u0627 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/p>\n<p data-start=\"1464\" data-end=\"1512\">\u0627\u06cc\u0646 Runner \u0628\u0631\u0627\u06cc \u0627\u06a9\u062b\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0627\u0646\u062a\u062e\u0627\u0628 \u0627\u0633\u062a.<\/p>\n<hr data-start=\"1514\" data-end=\"1517\" \/>\n<h3 data-section-id=\"egplmc\" data-start=\"1519\" data-end=\"1540\">Kubernetes Runner<\/h3>\n<p data-start=\"1542\" data-end=\"1628\">\u0627\u06af\u0631 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0634\u0645\u0627 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 Kubernetes \u0628\u0627\u0634\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 Kubernetes Runner \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"1630\" data-end=\"1754\">\u0627\u06cc\u0646 Runner \u0647\u0631 Pipeline \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u06cc\u06a9 Pod \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0631\u0648\u06cc \u06a9\u0644\u0627\u0633\u062a\u0631 Kubernetes \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u0646\u062f \u06af\u0632\u06cc\u0646\u0647 \u0645\u0646\u0627\u0633\u0628\u06cc \u0627\u0633\u062a.<\/p>\n<hr data-start=\"1756\" data-end=\"1759\" \/>\n<h3 data-section-id=\"in6o4t\" data-start=\"1761\" data-end=\"1776\">Exec Runner<\/h3>\n<p data-start=\"1778\" data-end=\"1864\">\u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0647\u06cc\u0686 \u0627\u06cc\u0632\u0648\u0644\u0647\u200c\u0633\u0627\u0632\u06cc \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f.<\/p>\n<p data-start=\"1866\" data-end=\"1945\">\u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u062a\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc Repository\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u06a9\u0627\u0645\u0644\u0627\u064b \u0645\u0648\u0631\u062f \u0627\u0639\u062a\u0645\u0627\u062f \u0647\u0633\u062a\u0646\u062f \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<hr data-start=\"1947\" data-end=\"1950\" \/>\n<h3 data-section-id=\"1m3awta\" data-start=\"1952\" data-end=\"1966\">SSH Runner<\/h3>\n<p data-start=\"1968\" data-end=\"2057\">\u0645\u0634\u0627\u0628\u0647 Exec Runner \u0627\u0633\u062a\u061b \u0628\u0627 \u0627\u06cc\u0646 \u062a\u0641\u0627\u0648\u062a \u06a9\u0647 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642 SSH \u0631\u0648\u06cc \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/p>\n<hr data-start=\"2059\" data-end=\"2062\" \/>\n<h3 data-section-id=\"1l5kzzi\" data-start=\"2064\" data-end=\"2095\">Runner \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0645\u0627\u0634\u06cc\u0646 \u0645\u062c\u0627\u0632\u06cc<\/h3>\n<p data-start=\"2097\" data-end=\"2169\">Drone \u0627\u0645\u06a9\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc Pipeline \u0631\u0648\u06cc \u0645\u0627\u0634\u06cc\u0646\u200c\u0647\u0627\u06cc \u0645\u062c\u0627\u0632\u06cc \u0627\u0628\u0631\u06cc \u0631\u0627 \u0646\u06cc\u0632 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p data-start=\"2171\" data-end=\"2481\">\u062f\u0631 \u0646\u0633\u062e\u0647 \u0627\u0635\u0644\u06cc Drone \u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0628\u0631\u0627\u06cc \u0628\u0631\u062e\u06cc \u0627\u0631\u0627\u0626\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 Cloud \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u061b \u0627\u0645\u0627 \u0627\u06af\u0631 \u0627\u0632 <strong data-start=\"2253\" data-end=\"2269\">Parmin Cloud<\/strong> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0647\u0645\u06cc\u0646 \u0645\u0639\u0645\u0627\u0631\u06cc \u0631\u0627 \u0628\u0627 \u0645\u0627\u0634\u06cc\u0646\u200c\u0647\u0627\u06cc \u0645\u062c\u0627\u0632\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0646\u06cc\u0632 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0641\u0631\u0622\u06cc\u0646\u062f \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631\u06cc (Auto Scaling) \u0631\u0627 \u0628\u0627 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0645\u0627\u0646\u0646\u062f Terraform \u06cc\u0627 Ansible \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"2483\" data-end=\"2486\" \/>\n<h2 data-section-id=\"mx9xxb\" data-start=\"2488\" data-end=\"2530\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0686\u0647 \u0645\u0648\u0627\u0631\u062f\u06cc \u0631\u0627 \u06cc\u0627\u062f \u0645\u06cc\u200c\u06af\u06cc\u0631\u06cc\u062f\u061f<\/h2>\n<p data-start=\"2532\" data-end=\"2615\">\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u06a9\u0627\u0645\u0644 Drone CI \u0631\u0648\u06cc <strong data-start=\"2572\" data-end=\"2592\">Ubuntu 24.04 LTS<\/strong> \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n<p data-start=\"2617\" data-end=\"2662\">\u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0646\u06cc\u0632 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645:<\/p>\n<ul data-start=\"2664\" data-end=\"2958\">\n<li data-section-id=\"88gnlh\" data-start=\"2664\" data-end=\"2716\">\u0646\u0635\u0628 Docker \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <strong data-start=\"2691\" data-end=\"2716\">Mirror\u0647\u0627\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/strong><\/li>\n<li data-section-id=\"1pdlsph\" data-start=\"2717\" data-end=\"2742\">\u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc Drone Server<\/li>\n<li data-section-id=\"1az7k2z\" data-start=\"2743\" data-end=\"2766\">\u0627\u062a\u0635\u0627\u0644 Drone \u0628\u0647 GitHub<\/li>\n<li data-section-id=\"i4ht52\" data-start=\"2767\" data-end=\"2793\">\u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc Docker Runner<\/li>\n<li data-section-id=\"rxet7j\" data-start=\"2794\" data-end=\"2828\">\u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc HTTPS \u0628\u0627 Let&#8217;s Encrypt<\/li>\n<li data-section-id=\"1wipk28\" data-start=\"2829\" data-end=\"2871\">\u0633\u0627\u062e\u062a \u0627\u0648\u0644\u06cc\u0646 Pipeline \u0628\u0627 \u0641\u0627\u06cc\u0644 <code data-start=\"2859\" data-end=\"2871\">.drone.yml<\/code><\/li>\n<li data-section-id=\"hbcklp\" data-start=\"2872\" data-end=\"2903\">\u0622\u0634\u0646\u0627\u06cc\u06cc \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a Auto Scaling<\/li>\n<li data-section-id=\"10l4ryl\" data-start=\"2904\" data-end=\"2958\">\u0630\u062e\u06cc\u0631\u0647 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc Build \u0631\u0648\u06cc \u0641\u0636\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647\u200c\u0633\u0627\u0632\u06cc \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627 S3<\/li>\n<\/ul>\n<p data-start=\"2960\" data-end=\"3084\">\u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0646\u06cc\u0632 \u06cc\u06a9 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a CI\/CD \u06a9\u0627\u0645\u0644\u0627\u064b \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0634\u062e\u0635\u06cc \u06cc\u0627 \u0633\u0627\u0632\u0645\u0627\u0646\u06cc \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"3086\" data-end=\"3089\" \/>\n<h1 data-section-id=\"15g5ic3\" data-start=\"3091\" data-end=\"3103\">\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/h1>\n<p data-start=\"3105\" data-end=\"3150\">\u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0647 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f:<\/p>\n<ul data-start=\"3152\" data-end=\"3625\">\n<li data-section-id=\"11buad8\" data-start=\"3152\" data-end=\"3182\">\u06cc\u06a9 \u0633\u0631\u0648\u0631 <strong data-start=\"3162\" data-end=\"3182\">Ubuntu 24.04 LTS<\/strong><\/li>\n<li data-section-id=\"11g2pr4\" data-start=\"3183\" data-end=\"3257\">\u062d\u062f\u0627\u0642\u0644:\n<ul data-start=\"3194\" data-end=\"3257\">\n<li data-section-id=\"180cksl\" data-start=\"3194\" data-end=\"3210\">\u06f1 \u06af\u06cc\u06af\u0627\u0628\u0627\u06cc\u062a RAM<\/li>\n<li data-section-id=\"amaq38\" data-start=\"3213\" data-end=\"3257\">\u06f2 \u06af\u06cc\u06af\u0627\u0628\u0627\u06cc\u062a \u0641\u0636\u0627\u06cc \u062e\u0627\u0644\u06cc \u062f\u06cc\u0633\u06a9 (\u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u0627\u0648\u0644\u06cc\u0647)<\/li>\n<\/ul>\n<\/li>\n<li data-section-id=\"1uoa68c\" data-start=\"3258\" data-end=\"3286\">\u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u062f\u0627\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc sudo<\/li>\n<li data-section-id=\"1lfcfkq\" data-start=\"3287\" data-end=\"3373\">\u06cc\u06a9 \u062f\u0627\u0645\u0646\u0647 \u06cc\u0627 \u0632\u06cc\u0631\u062f\u0627\u0645\u0646\u0647 (\u0645\u0627\u0646\u0646\u062f <code data-start=\"3317\" data-end=\"3336\">drone.example.com<\/code>) \u06a9\u0647 \u0631\u06a9\u0648\u0631\u062f A \u0622\u0646 \u0628\u0647 IP \u0633\u0631\u0648\u0631 \u0627\u0634\u0627\u0631\u0647 \u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"bgysdp\" data-start=\"3374\" data-end=\"3463\">\u0646\u0635\u0628 Docker \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 (\u062f\u0631 \u0628\u062e\u0634 \u0628\u0639\u062f\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Mirror\u0647\u0627\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f.)<\/li>\n<li data-section-id=\"apyegp\" data-start=\"3464\" data-end=\"3480\">\u06cc\u06a9 \u062d\u0633\u0627\u0628 GitHub<\/li>\n<li data-section-id=\"1ifns81\" data-start=\"3481\" data-end=\"3548\">(\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc) \u0641\u0636\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647\u200c\u0633\u0627\u0632\u06cc \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627 S3 \u0628\u0631\u0627\u06cc \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0644\u0627\u06af\u200c\u0647\u0627\u06cc Build<\/li>\n<li data-section-id=\"r5y7a1\" data-start=\"3549\" data-end=\"3625\">(\u0627\u062e\u062a\u06cc\u0627\u0631\u06cc) \u0645\u0627\u0634\u06cc\u0646\u200c\u0647\u0627\u06cc \u0645\u062c\u0627\u0632\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc Runner\u0647\u0627\u06cc \u0645\u0642\u06cc\u0627\u0633\u200c\u067e\u0630\u06cc\u0631<\/li>\n<\/ul>\n<hr data-start=\"3086\" data-end=\"3089\" \/>\n<h1 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"1d656jq\" data-start=\"0\" data-end=\"74\">\u0645\u0631\u062d\u0644\u0647 \u0627\u0648\u0644 \u2014 \u0646\u0635\u0628 Docker \u0631\u0648\u06cc Ubuntu 24.04 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Mirror \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/h1>\n<p data-start=\"76\" data-end=\"175\">\u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 Drone \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u06a9\u0627\u0645\u0644 \u0628\u0631 \u067e\u0627\u06cc\u0647 Docker \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f Docker \u0631\u0627 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u0645.<\/p>\n<p data-start=\"177\" data-end=\"325\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0647\u200c\u062c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062e\u0627\u0632\u0646 \u0631\u0633\u0645\u06cc Docker\u060c \u0627\u0632 <strong data-start=\"230\" data-end=\"255\">Mirror\u0647\u0627\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/strong> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0628\u0627 \u0633\u0631\u0639\u062a \u0648 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f.<\/p>\n<hr data-start=\"327\" data-end=\"330\" \/>\n<h2 data-section-id=\"1ydekay\" data-start=\"332\" data-end=\"350\">\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0633\u06cc\u0633\u062a\u0645<\/h2>\n<p data-start=\"352\" data-end=\"435\">\u0627\u0628\u062a\u062f\u0627 \u0641\u0647\u0631\u0633\u062a \u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0631\u0627 \u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0628\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u0646\u0635\u0628\u200c\u0634\u062f\u0647 \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> apt update\r\n<span class=\"\u037c10\">sudo<\/span> 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=\"486\" data-end=\"489\" \/>\n<h2 data-section-id=\"17pixez\" data-start=\"491\" data-end=\"508\">\u0646\u0635\u0628 \u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/h2>\n<p data-start=\"510\" data-end=\"576\">\u0633\u067e\u0633 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 Repository \u062c\u062f\u06cc\u062f \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 \\\r\nca-certificates \\\r\n<span class=\"\u037c10\">curl<\/span> \\\r\ngnupg \\\r\nlsb-release <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=\"658\" data-end=\"661\" \/>\n<h2 data-section-id=\"8uei6m\" data-start=\"663\" data-end=\"696\">\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 GPG Key \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/h2>\n<p data-start=\"698\" data-end=\"750\">\u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc APT \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><span class=\"\u037c10\">sudo<\/span> install <span class=\"\u037c12\">-m<\/span> <span class=\"\u037cy\">0755<\/span> <span class=\"\u037c12\">-d<\/span> \/etc\/apt\/keyrings<\/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=\"807\" data-end=\"847\">\u0633\u067e\u0633 \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\">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<\/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=\"965\" data-end=\"999\">\u0633\u0637\u062d \u062f\u0633\u062a\u0631\u0633\u06cc \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0646\u06cc\u0632 \u062a\u0646\u0638\u06cc\u0645 \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> <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<hr data-start=\"1058\" data-end=\"1061\" \/>\n<h2 data-section-id=\"1qjd6ff\" data-start=\"1063\" data-end=\"1099\">\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 Repository \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/h2>\n<p data-start=\"1101\" data-end=\"1154\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u062e\u0632\u0646 Docker \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0631\u0627 \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \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] https:\/\/docker-ce.parmincloud.ir <\/span>$(. \/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=\"1407\" data-end=\"1449\">\u0633\u067e\u0633 \u0644\u06cc\u0633\u062a \u0628\u0633\u062a\u0647\u200c\u0647\u0627 \u0631\u0627 \u0645\u062c\u062f\u062f\u0627\u064b \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<hr data-start=\"1480\" data-end=\"1483\" \/>\n<h2 data-section-id=\"7gnm04\" data-start=\"1485\" data-end=\"1505\">\u0646\u0635\u0628 Docker Engine<\/h2>\n<p data-start=\"1507\" data-end=\"1555\">\u0627\u06a9\u0646\u0648\u0646 Docker \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632 \u0622\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><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<hr data-start=\"1671\" data-end=\"1674\" \/>\n<h2 data-section-id=\"hwn0fg\" data-start=\"1676\" data-end=\"1695\">\u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc Docker<\/h2>\n<p data-start=\"1697\" data-end=\"1741\">\u067e\u0633 \u0627\u0632 \u0646\u0635\u0628\u060c \u0633\u0631\u0648\u06cc\u0633 Docker \u0631\u0627 \u0641\u0639\u0627\u0644 \u0648 \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 <span class=\"\u037c12\">--now<\/span> docker<\/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=\"1791\" data-end=\"1809\">\u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u06cc\u0633:<\/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 status docker<\/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=\"1853\" data-end=\"1905\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u0635\u0628 \u0635\u062d\u06cc\u062d\u060c \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\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=\"1945\" data-end=\"1948\" \/>\n<h2 data-section-id=\"1o2vup4\" data-start=\"1950\" data-end=\"1984\">\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u06af\u0631\u0648\u0647 Docker<\/h2>\n<p data-start=\"1986\" data-end=\"2099\">\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0628\u062f\u0648\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code data-start=\"2013\" data-end=\"2019\">sudo<\/code> \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0633\u062a\u0648\u0631\u0627\u062a Docker \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\u060c \u06a9\u0627\u0631\u0628\u0631 \u0641\u0639\u0644\u06cc \u0631\u0627 \u0628\u0647 \u06af\u0631\u0648\u0647 Docker \u0627\u0636\u0627\u0641\u0647 \u0646\u0645\u0627\u06cc\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> usermod <span class=\"\u037c12\">-aG<\/span> docker <span class=\"\u037c11\">$USER<\/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=\"2144\" data-end=\"2218\">\u0633\u067e\u0633 \u06cc\u06a9\u200c\u0628\u0627\u0631 \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u062e\u0627\u0631\u062c \u0634\u062f\u0647 \u0648 \u0645\u062c\u062f\u062f\u0627\u064b \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f \u06cc\u0627 \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>newgrp docker<\/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=\"2247\" data-end=\"2250\" \/>\n<h2 data-section-id=\"w4ciil\" data-start=\"2252\" data-end=\"2271\">\u0628\u0631\u0631\u0633\u06cc \u0646\u0635\u0628 Docker<\/h2>\n<p data-start=\"2273\" data-end=\"2328\">\u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0646\u0635\u0628 \u0635\u062d\u06cc\u062d Docker \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>docker 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=\"2358\" data-end=\"2432\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0635\u062d\u062a \u0639\u0645\u0644\u06a9\u0631\u062f Docker \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 run hello-world<\/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=\"2470\" data-end=\"2473\" \/>\n<h2 data-section-id=\"4w9skh\" data-start=\"2475\" data-end=\"2515\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Mirror \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/h2>\n<p data-start=\"2517\" data-end=\"2611\">\u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634 \u0633\u0631\u0639\u062a \u062f\u0627\u0646\u0644\u0648\u062f Image\u0647\u0627\u060c \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc\u200c\u0634\u0648\u062f \u0627\u0632 Mirror\u0647\u0627\u06cc \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"2613\" data-end=\"2619\">\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\/library\/alpine:latest<\/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=\"2690\" data-end=\"2692\">\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>docker pull ghcr.cr.parmincloud.ir\/actions\/runner:latest<\/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=\"2764\" data-end=\"2821\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0633\u0627\u06cc\u0631 Mirror\u0647\u0627 \u0646\u06cc\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<ul data-start=\"2823\" data-end=\"2983\">\n<li data-section-id=\"2z5i6j\" data-start=\"2823\" data-end=\"2848\"><code data-start=\"2825\" data-end=\"2848\">hub.cr.parmincloud.ir<\/code><\/li>\n<li data-section-id=\"1v722sq\" data-start=\"2849\" data-end=\"2875\"><code data-start=\"2851\" data-end=\"2875\">ghcr.cr.parmincloud.ir<\/code><\/li>\n<li data-section-id=\"1c3xxrc\" data-start=\"2876\" data-end=\"2902\"><code data-start=\"2878\" data-end=\"2902\">quay.cr.parmincloud.ir<\/code><\/li>\n<li data-section-id=\"1w4bdk2\" data-start=\"2903\" data-end=\"2928\"><code data-start=\"2905\" data-end=\"2928\">gcr.cr.parmincloud.ir<\/code><\/li>\n<li data-section-id=\"1kbyvnl\" data-start=\"2929\" data-end=\"2957\"><code data-start=\"2931\" data-end=\"2957\">gitlab.cr.parmincloud.ir<\/code><\/li>\n<li data-section-id=\"dcdc2c\" data-start=\"2958\" data-end=\"2983\"><code data-start=\"2960\" data-end=\"2983\">k8s.cr.parmincloud.ir<\/code><\/li>\n<\/ul>\n<hr data-start=\"2985\" data-end=\"2988\" \/>\n<p data-start=\"2990\" data-end=\"3049\">\u0627\u06a9\u0646\u0648\u0646 Docker \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0646\u0635\u0628 \u0634\u062f\u0647 \u0648 \u0622\u0645\u0627\u062f\u0647 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc Drone \u0627\u0633\u062a.<\/p>\n<hr data-start=\"3086\" data-end=\"3089\" \/>\n<h1 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"gzrewz\" data-start=\"0\" data-end=\"47\">\u0645\u0631\u062d\u0644\u0647 \u062f\u0648\u0645 \u2014 \u0627\u06cc\u062c\u0627\u062f OAuth Application \u062f\u0631 GitHub<\/h1>\n<p data-start=\"49\" data-end=\"253\">\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 Drone \u0628\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0645\u062e\u0627\u0632\u0646 GitHub \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u06a9\u0646\u062f \u0648 \u0647\u0646\u06af\u0627\u0645 Push \u06cc\u0627 Pull Request \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 Pipeline\u0647\u0627 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f\u060c \u0628\u0627\u06cc\u062f \u06cc\u06a9 <strong data-start=\"210\" data-end=\"231\">OAuth Application<\/strong> \u062f\u0631 GitHub \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"255\" data-end=\"341\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 OAuth \u0633\u0627\u062e\u062a\u0647 \u0648 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Drone \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n<hr data-start=\"343\" data-end=\"346\" \/>\n<h2 data-section-id=\"1t7suxq\" data-start=\"348\" data-end=\"375\">\u0648\u0627\u0631\u062f \u062a\u0646\u0638\u06cc\u0645\u0627\u062a GitHub \u0634\u0648\u06cc\u062f<\/h2>\n<p data-start=\"377\" data-end=\"409\">\u0627\u0628\u062a\u062f\u0627 \u0648\u0627\u0631\u062f \u062d\u0633\u0627\u0628 GitHub \u062e\u0648\u062f \u0634\u0648\u06cc\u062f.<\/p>\n<p data-start=\"411\" data-end=\"492\">\u0633\u067e\u0633 \u0627\u0632 \u0645\u0646\u0648\u06cc \u0628\u0627\u0644\u0627 \u0633\u0645\u062a \u0631\u0627\u0633\u062a \u0631\u0648\u06cc \u062a\u0635\u0648\u06cc\u0631 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 \u062e\u0648\u062f \u06a9\u0644\u06cc\u06a9 \u06a9\u0631\u062f\u0647 \u0648 \u0645\u0633\u06cc\u0631 \u0632\u06cc\u0631 \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=\"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>Settings\r\n    \u2514\u2500\u2500 Developer settings\r\n            \u2514\u2500\u2500 OAuth Apps<\/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=\"566\" data-end=\"597\">\u06cc\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0648\u0627\u0631\u062f \u0635\u0641\u062d\u0647 \u0632\u06cc\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=\"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:\/\/github.com\/settings\/developers<\/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=\"647\" data-end=\"650\" \/>\n<h2 data-section-id=\"skdrn0\" data-start=\"652\" data-end=\"675\">\u0627\u06cc\u062c\u0627\u062f OAuth App \u062c\u062f\u06cc\u062f<\/h2>\n<p data-start=\"677\" data-end=\"715\">\u0631\u0648\u06cc \u06af\u0632\u06cc\u0646\u0647 <strong data-start=\"687\" data-end=\"704\">New OAuth App<\/strong> \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"717\" data-end=\"768\">\u0641\u0631\u0645 \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0645\u0637\u0627\u0628\u0642 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0632\u06cc\u0631 \u062a\u06a9\u0645\u06cc\u0644 \u0646\u0645\u0627\u06cc\u06cc\u062f.<\/p>\n<div class=\"TyagGW_tableContainer\">\n<div class=\"group TyagGW_tableWrapper flex flex-col-reverse w-fit\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"770\" data-end=\"995\">\n<thead data-start=\"770\" data-end=\"786\">\n<tr data-start=\"770\" data-end=\"786\">\n<th class=\"last:pe-10\" data-start=\"770\" data-end=\"777\" data-col-size=\"sm\">\u0641\u06cc\u0644\u062f<\/th>\n<th class=\"last:pe-10\" data-start=\"777\" data-end=\"786\" data-col-size=\"sm\">\u0645\u0642\u062f\u0627\u0631<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"805\" data-end=\"995\">\n<tr data-start=\"805\" data-end=\"836\">\n<td data-start=\"805\" data-end=\"824\" data-col-size=\"sm\">Application name<\/td>\n<td data-start=\"824\" data-end=\"836\" data-col-size=\"sm\">Drone CI<\/td>\n<\/tr>\n<tr data-start=\"837\" data-end=\"881\">\n<td data-start=\"837\" data-end=\"852\" data-col-size=\"sm\">Homepage URL<\/td>\n<td data-start=\"852\" data-end=\"881\" data-col-size=\"sm\"><a class=\"decorated-link cursor-pointer\" target=\"_new\" rel=\"noopener\" data-start=\"854\" data-end=\"879\">https:\/\/drone.example.com<\/a><\/td>\n<\/tr>\n<tr data-start=\"882\" data-end=\"930\">\n<td data-start=\"882\" data-end=\"908\" data-col-size=\"sm\">Application description<\/td>\n<td data-start=\"908\" data-end=\"930\" data-col-size=\"sm\">Drone CI\/CD Server<\/td>\n<\/tr>\n<tr data-start=\"931\" data-end=\"995\">\n<td data-start=\"931\" data-end=\"960\" data-col-size=\"sm\">Authorization callback URL<\/td>\n<td data-start=\"960\" data-end=\"995\" data-col-size=\"sm\"><a class=\"decorated-link cursor-pointer\" target=\"_new\" rel=\"noopener\" data-start=\"962\" data-end=\"993\">https:\/\/drone.example.com\/login<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<blockquote data-start=\"997\" data-end=\"1067\">\n<p data-start=\"999\" data-end=\"1067\">\u0628\u0647\u200c\u062c\u0627\u06cc <code data-start=\"1006\" data-end=\"1025\">drone.example.com<\/code> \u062f\u0627\u0645\u0646\u0647 \u06cc\u0627 \u0632\u06cc\u0631\u062f\u0627\u0645\u0646\u0647 \u0648\u0627\u0642\u0639\u06cc \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<\/blockquote>\n<p data-start=\"1069\" data-end=\"1075\">\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=\"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>Homepage URL\r\n\r\nhttps:\/\/drone.parmincloud.ir\r\n\r\nAuthorization callback URL\r\n\r\nhttps:\/\/drone.parmincloud.ir\/login<\/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=\"1193\" data-end=\"1248\">\u067e\u0633 \u0627\u0632 \u062a\u06a9\u0645\u06cc\u0644 \u0641\u0631\u0645 \u0631\u0648\u06cc <strong data-start=\"1213\" data-end=\"1237\">Register Application<\/strong> \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"1250\" data-end=\"1253\" \/>\n<h2 data-section-id=\"6y1zs8\" data-start=\"1255\" data-end=\"1290\">\u062f\u0631\u06cc\u0627\u0641\u062a Client ID \u0648 Client Secret<\/h2>\n<p data-start=\"1292\" data-end=\"1347\">\u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647\u060c \u0635\u0641\u062d\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0622\u0646 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p data-start=\"1349\" data-end=\"1390\">\u062f\u0631 \u0627\u06cc\u0646 \u0635\u0641\u062d\u0647 \u062f\u0648 \u0645\u0642\u062f\u0627\u0631 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<ul data-start=\"1392\" data-end=\"1419\">\n<li data-section-id=\"1mewda4\" data-start=\"1392\" data-end=\"1403\">Client ID<\/li>\n<li data-section-id=\"1alqnwn\" data-start=\"1404\" data-end=\"1419\">Client Secret<\/li>\n<\/ul>\n<p data-start=\"1421\" data-end=\"1474\">\u0631\u0648\u06cc \u06af\u0632\u06cc\u0646\u0647 <strong data-start=\"1431\" data-end=\"1463\">Generate a new client secret<\/strong> \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"1476\" data-end=\"1520\">\u0633\u067e\u0633 \u0647\u0631 \u062f\u0648 \u0645\u0642\u062f\u0627\u0631 \u0631\u0627 \u062f\u0631 \u0645\u062d\u0644 \u0627\u0645\u0646\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0646\u0645\u0627\u06cc\u06cc\u062f.<\/p>\n<p data-start=\"1522\" data-end=\"1572\">\u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0622\u0645\u0648\u0632\u0634 \u0627\u0632 \u0627\u06cc\u0646 \u062f\u0648 \u0645\u0642\u062f\u0627\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n<p data-start=\"1574\" data-end=\"1588\">\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \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=\"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>Client ID\r\n\r\nOv23liwxxxxxxxxxxxx\r\n\r\nClient Secret\r\n\r\nc5d18bxxxxxxxxxxxxxxxxxxxxxxxx<\/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=\"1681\" data-end=\"1684\" \/>\n<h2 data-section-id=\"11nijk9\" data-start=\"1686\" data-end=\"1700\">\u0646\u06a9\u062a\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc<\/h2>\n<p data-start=\"1702\" data-end=\"1750\"><strong data-start=\"1702\" data-end=\"1719\">Client Secret<\/strong> \u062a\u0646\u0647\u0627 \u06cc\u06a9 \u0628\u0627\u0631 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p data-start=\"1752\" data-end=\"1812\">\u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0622\u0646 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0646\u06a9\u0646\u06cc\u062f\u060c \u0628\u0627\u06cc\u062f Secret \u062c\u062f\u06cc\u062f\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"1814\" data-end=\"1878\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u0627\u06cc\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0631\u0627 \u062f\u0631 \u0645\u062e\u0627\u0632\u0646 Git \u06cc\u0627 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0639\u0645\u0648\u0645\u06cc \u0642\u0631\u0627\u0631 \u0646\u062f\u0647\u06cc\u062f.<\/p>\n<hr data-start=\"1880\" data-end=\"1883\" \/>\n<h2 data-section-id=\"1738m9j\" data-start=\"1885\" data-end=\"1916\">\u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u061f<\/h2>\n<p data-start=\"1918\" data-end=\"1973\">\u0628\u0627 \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c GitHub \u0628\u0647 Drone \u0627\u062c\u0627\u0632\u0647 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u062f \u06a9\u0647:<\/p>\n<ul data-start=\"1975\" data-end=\"2141\">\n<li data-section-id=\"sribt4\" data-start=\"1975\" data-end=\"2018\">\u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 GitHub \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"32kv6z\" data-start=\"2019\" data-end=\"2048\">Repository\u0647\u0627 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"f5odu4\" data-start=\"2049\" data-end=\"2084\">Webhook\u0647\u0627\u06cc \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u062f.<\/li>\n<li data-section-id=\"t38xl8\" data-start=\"2085\" data-end=\"2141\">\u067e\u0633 \u0627\u0632 \u0647\u0631 Push \u06cc\u0627 Pull Request\u060c Pipeline\u0647\u0627 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u062f.<\/li>\n<\/ul>\n<hr data-start=\"3086\" data-end=\"3089\" \/>\n<h1 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"jbv8ti\" data-start=\"0\" data-end=\"41\">\u0645\u0631\u062d\u0644\u0647 \u0633\u0648\u0645 \u2014 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0648\u0644\u06cc\u0647 Drone Server<\/h1>\n<p data-start=\"43\" data-end=\"171\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0641\u0627\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0627\u0635\u0644\u06cc Drone \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u0648 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 GitHub \u0648 Runner\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645.<\/p>\n<p data-start=\"173\" data-end=\"251\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 Drone \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0641\u0627\u06cc\u0644 Environment \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/p>\n<hr data-start=\"253\" data-end=\"256\" \/>\n<h2 data-section-id=\"1om58xj\" data-start=\"258\" data-end=\"277\">\u062a\u0648\u0644\u06cc\u062f RPC Secret<\/h2>\n<p data-start=\"279\" data-end=\"371\">Drone \u0628\u0631\u0627\u06cc \u0628\u0631\u0642\u0631\u0627\u0631\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0627\u0645\u0646 \u0628\u06cc\u0646 <strong data-start=\"313\" data-end=\"323\">Server<\/strong> \u0648 <strong data-start=\"326\" data-end=\"336\">Runner<\/strong> \u0627\u0632 \u06cc\u06a9 Secret \u0645\u0634\u062a\u0631\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p data-start=\"373\" data-end=\"406\">\u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u062a\u0635\u0627\u062f\u0641\u06cc \u062a\u0648\u0644\u06cc\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\">openssl<\/span> rand <span class=\"\u037c12\">-hex<\/span> <span class=\"\u037cy\">32<\/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=\"442\" data-end=\"468\">\u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \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>3b81c8f1e1a4d4c8d7e87d8d3cfaf57d0d2f33d1b9e1d7d92bdfab8a3d87d61f<\/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=\"548\" data-end=\"631\">\u0627\u06cc\u0646 \u0645\u0642\u062f\u0627\u0631 \u0631\u0627 \u062f\u0631 \u062c\u0627\u06cc\u06cc \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f\u061b \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0622\u0645\u0648\u0632\u0634 \u0686\u0646\u062f\u06cc\u0646 \u0628\u0627\u0631 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n<hr data-start=\"633\" data-end=\"636\" \/>\n<h2 data-section-id=\"6ovhpi\" data-start=\"638\" data-end=\"665\">\u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Drone<\/h2>\n<p data-start=\"667\" data-end=\"709\">\u0627\u06a9\u0646\u0648\u0646 \u0641\u0627\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Drone \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\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><span class=\"\u037c10\">sudo<\/span> nano \/etc\/drone<\/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=\"745\" data-end=\"779\">\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>DRONE_SERVER_HOST=drone.example.com\r\nDRONE_SERVER_PROTO=https\r\n\r\nDRONE_GITHUB_CLIENT_ID=YOUR_GITHUB_CLIENT_ID\r\nDRONE_GITHUB_CLIENT_SECRET=YOUR_GITHUB_CLIENT_SECRET\r\n\r\nDRONE_RPC_SECRET=YOUR_RPC_SECRET\r\n\r\nDRONE_USER_CREATE=username:YOUR_GITHUB_USERNAME,admin:true<\/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=\"1047\" data-end=\"1093\">\u0645\u0642\u0627\u062f\u06cc\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0645\u062a\u0646\u0627\u0633\u0628 \u0628\u0627 \u0645\u062d\u06cc\u0637 \u062e\u0648\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"TyagGW_tableContainer\">\n<div class=\"group TyagGW_tableWrapper flex flex-col-reverse w-fit\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"1095\" data-end=\"1383\">\n<thead data-start=\"1095\" data-end=\"1112\">\n<tr data-start=\"1095\" data-end=\"1112\">\n<th class=\"last:pe-10\" data-start=\"1095\" data-end=\"1103\" data-col-size=\"sm\">\u0645\u062a\u063a\u06cc\u0631<\/th>\n<th class=\"last:pe-10\" data-start=\"1103\" data-end=\"1112\" data-col-size=\"sm\">\u062a\u0648\u0636\u06cc\u062d<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"1133\" data-end=\"1383\">\n<tr data-start=\"1133\" data-end=\"1168\">\n<td data-start=\"1133\" data-end=\"1153\" data-col-size=\"sm\">DRONE_SERVER_HOST<\/td>\n<td data-start=\"1153\" data-end=\"1168\" data-col-size=\"sm\">\u062f\u0627\u0645\u0646\u0647 Drone<\/td>\n<\/tr>\n<tr data-start=\"1169\" data-end=\"1225\">\n<td data-start=\"1169\" data-end=\"1194\" data-col-size=\"sm\">DRONE_GITHUB_CLIENT_ID<\/td>\n<td data-col-size=\"sm\" data-start=\"1194\" data-end=\"1225\">Client ID \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0627\u0632 GitHub<\/td>\n<\/tr>\n<tr data-start=\"1226\" data-end=\"1280\">\n<td data-start=\"1226\" data-end=\"1255\" data-col-size=\"sm\">DRONE_GITHUB_CLIENT_SECRET<\/td>\n<td data-start=\"1255\" data-end=\"1280\" data-col-size=\"sm\">Client Secret \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc<\/td>\n<\/tr>\n<tr data-start=\"1281\" data-end=\"1330\">\n<td data-start=\"1281\" data-end=\"1300\" data-col-size=\"sm\">DRONE_RPC_SECRET<\/td>\n<td data-col-size=\"sm\" data-start=\"1300\" data-end=\"1330\">Secret \u062a\u0648\u0644\u06cc\u062f\u0634\u062f\u0647 \u0628\u0627 OpenSSL<\/td>\n<\/tr>\n<tr data-start=\"1331\" data-end=\"1383\">\n<td data-start=\"1331\" data-end=\"1351\" data-col-size=\"sm\">DRONE_USER_CREATE<\/td>\n<td data-col-size=\"sm\" data-start=\"1351\" data-end=\"1383\">\u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc GitHub \u0645\u062f\u06cc\u0631 Drone<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<hr data-start=\"1385\" data-end=\"1388\" \/>\n<h2 data-section-id=\"1mv35wh\" data-start=\"1390\" data-end=\"1403\">\u0646\u0645\u0648\u0646\u0647 \u0641\u0627\u06cc\u0644<\/h2>\n<p data-start=\"1405\" data-end=\"1483\">\u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644 \u0627\u06af\u0631 \u062f\u0627\u0645\u0646\u0647 \u0634\u0645\u0627 <code data-start=\"1429\" data-end=\"1451\">drone.parmincloud.ir<\/code> \u0628\u0627\u0634\u062f \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=\"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>DRONE_SERVER_HOST=drone.parmincloud.ir\r\nDRONE_SERVER_PROTO=https\r\n\r\nDRONE_GITHUB_CLIENT_ID=Ov23xxxxxxxxxxxxx\r\nDRONE_GITHUB_CLIENT_SECRET=GOCSPX-xxxxxxxxxxxxxxxx\r\n\r\nDRONE_RPC_SECRET=3b81c8f1e1a4d4c8d7e87d8d3cfaf57d0d2f33d1b9e1d7d92bdfab8a3d87d61f\r\n\r\nDRONE_USER_CREATE=username:parmincloud,admin:true<\/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=\"1788\" data-end=\"1791\" \/>\n<h2 data-section-id=\"1jbdrxr\" data-start=\"1793\" data-end=\"1819\">\u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062f\u0646 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u062c\u0627\u0632<\/h2>\n<p data-start=\"1821\" data-end=\"1922\">\u0628\u0647\u200c\u0635\u0648\u0631\u062a \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0647\u0631 \u06a9\u0627\u0631\u0628\u0631\u06cc \u06a9\u0647 \u0628\u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 GitHub \u0648\u0627\u0631\u062f Drone \u0634\u0648\u062f\u060c \u0627\u0645\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0631\u0627 \u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a.<\/p>\n<p data-start=\"1924\" data-end=\"2007\">\u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0641\u0642\u0637 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u06cc\u0627 \u0633\u0627\u0632\u0645\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u0634\u062e\u0635 \u0627\u062c\u0627\u0632\u0647 \u0648\u0631\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f.<\/p>\n<p data-start=\"2009\" data-end=\"2057\">\u0628\u0631\u0627\u06cc \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062f\u0646 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646\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\">echo<\/span> <span class=\"\u037cz\">\"DRONE_USER_FILTER=username1,username2,parmincloud\"<\/span> | <span class=\"\u037c10\">sudo<\/span> <span class=\"\u037c10\">tee<\/span> <span class=\"\u037c12\">-a<\/span> \/etc\/drone<\/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=\"2154\" data-end=\"2215\">\u06cc\u0627 \u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0641\u0642\u0637 \u0627\u0639\u0636\u0627\u06cc \u06cc\u06a9 Organization \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0648\u0627\u0631\u062f \u0634\u0648\u0646\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> <span class=\"\u037cz\">\"DRONE_USER_FILTER=ParminCloud\"<\/span> | <span class=\"\u037c10\">sudo<\/span> <span class=\"\u037c10\">tee<\/span> <span class=\"\u037c12\">-a<\/span> \/etc\/drone<\/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=\"2292\" data-end=\"2295\" \/>\n<h2 data-section-id=\"1l56ri8\" data-start=\"2297\" data-end=\"2333\">\u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u06af\u0648\u0627\u0647\u06cc SSL<\/h2>\n<p data-start=\"2335\" data-end=\"2414\">Drone \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Let&#8217;s Encrypt \u06af\u0648\u0627\u0647\u06cc SSL \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u062f.<\/p>\n<p data-start=\"2416\" data-end=\"2507\">\u0627\u06af\u0631 \u0627\u0632 Reverse Proxy \u0645\u0627\u0646\u0646\u062f Nginx \u06cc\u0627 Traefik \u0627\u0633\u062a\u0641\u0627\u062f\u0647 <strong data-start=\"2468\" data-end=\"2480\">\u0646\u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f<\/strong>\u060c \u0627\u06cc\u0646 \u06af\u0632\u06cc\u0646\u0647 \u0631\u0627 \u0641\u0639\u0627\u0644 \u0646\u0645\u0627\u06cc\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> <span class=\"\u037cz\">\"DRONE_TLS_AUTOCERT=true\"<\/span> | <span class=\"\u037c10\">sudo<\/span> <span class=\"\u037c10\">tee<\/span> <span class=\"\u037c12\">-a<\/span> \/etc\/drone<\/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=\"2578\" data-end=\"2719\">\u0627\u06af\u0631 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u062f Drone \u0631\u0627 \u067e\u0634\u062a Nginx \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f (\u06a9\u0647 \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc Production \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f)\u060c \u0627\u06cc\u0646 \u06af\u0632\u06cc\u0646\u0647 \u0631\u0627 \u0641\u0639\u0627\u0644 \u0646\u06a9\u0646\u06cc\u062f \u0648 SSL \u0631\u0627 \u062a\u0648\u0633\u0637 Nginx \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"2721\" data-end=\"2724\" \/>\n<h2 data-section-id=\"15sspqa\" data-start=\"2726\" data-end=\"2748\">\u0645\u0634\u0627\u0647\u062f\u0647 \u0641\u0627\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a<\/h2>\n<p data-start=\"2750\" data-end=\"2775\">\u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0641\u0627\u06cc\u0644 \u0627\u06cc\u062c\u0627\u062f\u0634\u062f\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><span class=\"\u037c10\">cat<\/span> \/etc\/drone<\/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=\"2805\" data-end=\"2831\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u06cc\u062f \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0628\u0627\u0634\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>DRONE_SERVER_HOST=drone.parmincloud.ir\r\nDRONE_SERVER_PROTO=https\r\n\r\nDRONE_GITHUB_CLIENT_ID=xxxxxxxxxxxx\r\nDRONE_GITHUB_CLIENT_SECRET=xxxxxxxxxxxx\r\n\r\nDRONE_RPC_SECRET=xxxxxxxxxxxxxxxxxxxxxxxx\r\n\r\nDRONE_USER_CREATE=username:parmincloud,admin:true\r\nDRONE_USER_FILTER=parmincloud\r\nDRONE_TLS_AUTOCERT=true<\/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=\"3134\" data-end=\"3137\" \/>\n<h2 data-section-id=\"11nijk9\" data-start=\"3139\" data-end=\"3153\">\u0646\u06a9\u062a\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc<\/h2>\n<p data-start=\"3155\" data-end=\"3228\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0634\u0627\u0645\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062d\u0633\u0627\u0633\u06cc \u0645\u0627\u0646\u0646\u062f <strong data-start=\"3189\" data-end=\"3206\">Client Secret<\/strong> \u0648 <strong data-start=\"3209\" data-end=\"3223\">RPC Secret<\/strong> \u0627\u0633\u062a.<\/p>\n<p data-start=\"3230\" data-end=\"3297\">\u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0633\u0627\u06cc\u0631 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646\u060c \u0633\u0637\u062d \u062f\u0633\u062a\u0631\u0633\u06cc \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0645\u062d\u062f\u0648\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\">sudo<\/span> <span class=\"\u037c10\">chmod<\/span> <span class=\"\u037cy\">600<\/span> \/etc\/drone<\/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=\"3338\" data-end=\"3341\" \/>\n<h2 data-section-id=\"1738m9j\" data-start=\"3343\" data-end=\"3374\">\u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u061f<\/h2>\n<p data-start=\"3376\" data-end=\"3389\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647:<\/p>\n<ul data-start=\"3391\" data-end=\"3599\">\n<li data-section-id=\"1upci2m\" data-start=\"3391\" data-end=\"3421\">\u0641\u0627\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Drone \u0627\u06cc\u062c\u0627\u062f \u0634\u062f.<\/li>\n<li data-section-id=\"1l9w0ee\" data-start=\"3422\" data-end=\"3459\">\u0627\u0631\u062a\u0628\u0627\u0637 GitHub \u0628\u0627 Drone \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f.<\/li>\n<li data-section-id=\"q01ukm\" data-start=\"3460\" data-end=\"3481\">\u06a9\u0627\u0631\u0628\u0631 \u0645\u062f\u06cc\u0631 \u0645\u0634\u062e\u0635 \u0634\u062f.<\/li>\n<li data-section-id=\"1ok6oen\" data-start=\"3482\" data-end=\"3508\">\u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0645\u062c\u0627\u0632 \u0645\u062d\u062f\u0648\u062f \u0634\u062f\u0646\u062f.<\/li>\n<li data-section-id=\"1aztsb\" data-start=\"3509\" data-end=\"3559\">\u0642\u0627\u0628\u0644\u06cc\u062a \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 SSL (\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632) \u0641\u0639\u0627\u0644 \u0634\u062f.<\/li>\n<li data-section-id=\"1fojnnv\" data-start=\"3560\" data-end=\"3599\">\u0641\u0627\u06cc\u0644 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0627\u0632 \u0646\u0638\u0631 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0645\u062d\u0627\u0641\u0638\u062a \u0634\u062f.<\/li>\n<\/ul>\n<hr data-start=\"3086\" data-end=\"3089\" \/>\n<h1 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"1nq16iv\" data-start=\"0\" data-end=\"39\">\u0645\u0631\u062d\u0644\u0647 \u0686\u0647\u0627\u0631\u0645 \u2014 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc Drone Server<\/h1>\n<p data-start=\"41\" data-end=\"109\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0633\u0631\u0648\u06cc\u0633 \u0627\u0635\u0644\u06cc Drone \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n<p data-start=\"111\" data-end=\"248\">Drone \u062a\u0645\u0627\u0645\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 Volume \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a\u06cc \u06a9\u0647 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0642\u0628\u0644 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645 \u0631\u0627 \u0627\u0632 \u0641\u0627\u06cc\u0644 <code data-start=\"216\" data-end=\"228\">\/etc\/drone<\/code> \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/p>\n<hr data-start=\"250\" data-end=\"253\" \/>\n<h1 data-section-id=\"1aj93cx\" data-start=\"255\" data-end=\"284\">\u062f\u0631\u06cc\u0627\u0641\u062a Image \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Drone<\/h1>\n<p data-start=\"286\" data-end=\"331\">\u0627\u0628\u062a\u062f\u0627 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 Drone \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<blockquote data-start=\"333\" data-end=\"430\">\n<p data-start=\"335\" data-end=\"343\"><strong data-start=\"335\" data-end=\"343\">\u0646\u06a9\u062a\u0647<\/strong><\/p>\n<p data-start=\"348\" data-end=\"430\">\u0628\u0647\u200c\u062c\u0627\u06cc Docker Hub \u0627\u0632 Mirror \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0633\u0631\u0639\u062a \u062f\u0627\u0646\u0644\u0648\u062f \u0628\u06cc\u0634\u062a\u0631 \u0628\u0627\u0634\u062f.<\/p>\n<\/blockquote>\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\/drone\/drone:2<\/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=\"493\" data-end=\"521\">\u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u0646\u0633\u062e\u0647 \u062f\u0631\u06cc\u0627\u0641\u062a\u200c\u0634\u062f\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 images<\/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=\"550\" data-end=\"553\" \/>\n<h1 data-section-id=\"vbvmbl\" data-start=\"555\" data-end=\"569\">\u0627\u06cc\u062c\u0627\u062f Volume<\/h1>\n<p data-start=\"571\" data-end=\"642\">\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Drone \u062f\u0627\u062e\u0644 \u06cc\u06a9 Docker Volume \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u0634\u0648\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 volume create drone-data<\/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=\"689\" data-end=\"708\">\u0628\u0631\u0631\u0633\u06cc \u0627\u06cc\u062c\u0627\u062f Volume:<\/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 volume <span class=\"\u037c10\">ls<\/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=\"740\" data-end=\"746\">\u062e\u0631\u0648\u062c\u06cc:<\/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>DRIVER    VOLUME NAME\r\nlocal     drone-data<\/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=\"804\" data-end=\"807\" \/>\n<h1 data-section-id=\"nx0sao\" data-start=\"809\" data-end=\"829\">\u0627\u062c\u0631\u0627\u06cc Drone Server<\/h1>\n<p data-start=\"831\" data-end=\"862\">\u0627\u06a9\u0646\u0648\u0646 \u0633\u0631\u0648\u06cc\u0633 Drone \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 run <span class=\"\u037c12\">-d<\/span> \\\r\n<span class=\"\u037c12\">--name<\/span> drone \\\r\n<span class=\"\u037c12\">--restart<\/span> unless-stopped \\\r\n<span class=\"\u037c12\">--env-file<\/span> \/etc\/drone \\\r\n<span class=\"\u037c12\">-v<\/span> drone-data:\/data \\\r\n<span class=\"\u037c12\">-p<\/span> <span class=\"\u037cy\">80<\/span>:80 \\\r\n<span class=\"\u037c12\">-p<\/span> <span class=\"\u037cy\">443<\/span>:443 \\\r\nhub.cr.parmincloud.ir\/drone\/drone:2<\/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=\"1041\" data-end=\"1066\">\u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0645\u0647\u0645 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631:<\/p>\n<div class=\"TyagGW_tableContainer\">\n<div class=\"group TyagGW_tableWrapper flex flex-col-reverse w-fit\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"1068\" data-end=\"1334\">\n<thead data-start=\"1068\" data-end=\"1085\">\n<tr data-start=\"1068\" data-end=\"1085\">\n<th class=\"last:pe-10\" data-start=\"1068\" data-end=\"1076\" data-col-size=\"sm\">\u06af\u0632\u06cc\u0646\u0647<\/th>\n<th class=\"last:pe-10\" data-start=\"1076\" data-end=\"1085\" data-col-size=\"sm\">\u062a\u0648\u0636\u06cc\u062d<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"1106\" data-end=\"1334\">\n<tr data-start=\"1106\" data-end=\"1162\">\n<td data-start=\"1106\" data-end=\"1121\" data-col-size=\"sm\"><code data-start=\"1108\" data-end=\"1120\">--env-file<\/code><\/td>\n<td data-col-size=\"sm\" data-start=\"1121\" data-end=\"1162\">\u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0627\u0632 \u0641\u0627\u06cc\u0644 <code data-start=\"1148\" data-end=\"1160\">\/etc\/drone<\/code><\/td>\n<\/tr>\n<tr data-start=\"1163\" data-end=\"1210\">\n<td data-start=\"1163\" data-end=\"1187\" data-col-size=\"sm\"><code data-start=\"1165\" data-end=\"1186\">-v drone-data:\/data<\/code><\/td>\n<td data-start=\"1187\" data-end=\"1210\" data-col-size=\"sm\">\u0630\u062e\u06cc\u0631\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a Drone<\/td>\n<\/tr>\n<tr data-start=\"1211\" data-end=\"1239\">\n<td data-start=\"1211\" data-end=\"1224\" data-col-size=\"sm\"><code data-start=\"1213\" data-end=\"1223\">-p 80:80<\/code><\/td>\n<td data-col-size=\"sm\" data-start=\"1224\" data-end=\"1239\">\u062f\u0633\u062a\u0631\u0633\u06cc HTTP<\/td>\n<\/tr>\n<tr data-start=\"1240\" data-end=\"1271\">\n<td data-start=\"1240\" data-end=\"1255\" data-col-size=\"sm\"><code data-start=\"1242\" data-end=\"1254\">-p 443:443<\/code><\/td>\n<td data-start=\"1255\" data-end=\"1271\" data-col-size=\"sm\">\u062f\u0633\u062a\u0631\u0633\u06cc HTTPS<\/td>\n<\/tr>\n<tr data-start=\"1272\" data-end=\"1334\">\n<td data-start=\"1272\" data-end=\"1301\" data-col-size=\"sm\"><code data-start=\"1274\" data-end=\"1300\">--restart unless-stopped<\/code><\/td>\n<td data-col-size=\"sm\" data-start=\"1301\" data-end=\"1334\">\u0627\u062c\u0631\u0627\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u067e\u0633 \u0627\u0632 \u0631\u06cc\u0628\u0648\u062a \u0633\u0631\u0648\u0631<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<hr data-start=\"1336\" data-end=\"1339\" \/>\n<h1 data-section-id=\"1ihj6uh\" data-start=\"1341\" data-end=\"1362\">\u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631<\/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 <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=\"1387\" data-end=\"1420\">\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   IMAGE\r\nxxxxxxxxxx     hub.cr.parmincloud.ir\/drone\/drone:2<\/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=\"1507\" data-end=\"1510\" \/>\n<h1 data-section-id=\"13shw7z\" data-start=\"1512\" data-end=\"1527\">\u0645\u0634\u0627\u0647\u062f\u0647 \u0644\u0627\u06af\u200c\u0647\u0627<\/h1>\n<p data-start=\"1529\" data-end=\"1570\">\u0627\u06af\u0631 \u0633\u0631\u0648\u06cc\u0633 \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 logs drone<\/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=\"1603\" data-end=\"1638\">\u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u0644\u0627\u06af\u200c\u0647\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0644\u062d\u0638\u0647\u200c\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>docker logs <span class=\"\u037c12\">-f<\/span> drone<\/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=\"1674\" data-end=\"1677\" \/>\n<h1 data-section-id=\"at2323\" data-start=\"1679\" data-end=\"1709\">\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u067e\u0648\u0631\u062a\u200c\u0647\u0627 \u062f\u0631 Firewall<\/h1>\n<p data-start=\"1711\" data-end=\"1786\">\u0627\u06af\u0631 \u0627\u0632 UFW \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc HTTP \u0648 HTTPS \u0631\u0627 \u0641\u0639\u0627\u0644 \u0646\u0645\u0627\u06cc\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<\/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=\"1846\" data-end=\"1878\">\u0633\u067e\u0633 \u0648\u0636\u0639\u06cc\u062a \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \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> ufw status<\/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=\"1909\" data-end=\"1921\">\u0646\u0645\u0648\u0646\u0647 \u062e\u0631\u0648\u062c\u06cc:<\/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>Status: active\r\n\r\nTo                         Action\r\n80\/tcp                     ALLOW\r\n443\/tcp                    ALLOW\r\nOpenSSH                    ALLOW<\/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=\"2085\" data-end=\"2088\" \/>\n<h1 data-section-id=\"1ncvepx\" data-start=\"2090\" data-end=\"2109\">\u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u06cc\u0633<\/h1>\n<p data-start=\"2111\" data-end=\"2168\">\u067e\u0633 \u0627\u0632 \u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647\u060c \u0645\u0631\u0648\u0631\u06af\u0631 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0647 \u0648 \u0648\u0627\u0631\u062f \u0622\u062f\u0631\u0633 \u0632\u06cc\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=\"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:\/\/drone.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=\"2209\" data-end=\"2282\">\u0627\u06af\u0631 \u0647\u0645\u0647 \u0645\u0631\u0627\u062d\u0644 \u0628\u0647\u200c\u062f\u0631\u0633\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0628\u0627\u0634\u062f\u060c \u0635\u0641\u062d\u0647 \u0648\u0631\u0648\u062f Drone \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<hr data-start=\"2284\" data-end=\"2287\" \/>\n<h1 data-section-id=\"8nexxu\" data-start=\"2289\" data-end=\"2305\">\u0648\u0631\u0648\u062f \u0628\u0627 GitHub<\/h1>\n<p data-start=\"2307\" data-end=\"2349\">\u0631\u0648\u06cc \u06af\u0632\u06cc\u0646\u0647 <strong data-start=\"2317\" data-end=\"2338\">Login with GitHub<\/strong> \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"2351\" data-end=\"2405\">GitHub \u0627\u0632 \u0634\u0645\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u062f \u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0631\u0627 \u0628\u0647 Drone \u0628\u062f\u0647\u06cc\u062f.<\/p>\n<p data-start=\"2407\" data-end=\"2457\">\u067e\u0633 \u0627\u0632 \u062a\u0623\u06cc\u06cc\u062f\u060c \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0647 \u0635\u0641\u062d\u0647 Drone \u0647\u062f\u0627\u06cc\u062a \u062e\u0648\u0627\u0647\u06cc\u062f \u0634\u062f.<\/p>\n<p data-start=\"2459\" data-end=\"2572\">\u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0642\u0628\u0644 \u06a9\u0627\u0631\u0628\u0631 \u0645\u062f\u06cc\u0631 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0631\u062f\u0647 \u0628\u0648\u062f\u06cc\u062f\u060c \u0627\u0648\u0644\u06cc\u0646 \u0648\u0631\u0648\u062f \u0634\u0645\u0627 \u0628\u0627 \u0633\u0637\u062d \u062f\u0633\u062a\u0631\u0633\u06cc Administrator \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<hr data-start=\"2574\" data-end=\"2577\" \/>\n<h1 data-section-id=\"97y3nf\" data-start=\"2579\" data-end=\"2598\">\u0628\u0631\u0631\u0633\u06cc \u0633\u0644\u0627\u0645\u062a \u0633\u0631\u0648\u06cc\u0633<\/h1>\n<p data-start=\"2600\" data-end=\"2672\">\u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0639\u0645\u0644\u06a9\u0631\u062f \u0635\u062d\u06cc\u062d Drone \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \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 inspect drone <span class=\"\u037c12\">--format<\/span><span class=\"\u037cv\">=<\/span><span class=\"\u037cz\">'{{.State.Status}}'<\/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=\"2737\" data-end=\"2796\">\u0627\u06af\u0631 \u062e\u0631\u0648\u062c\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0633\u0631\u0648\u06cc\u0633 \u0628\u0647\u200c\u062f\u0631\u0633\u062a\u06cc \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \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>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<p data-start=\"2819\" data-end=\"2881\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u0648\u0636\u0639\u06cc\u062a \u0645\u0635\u0631\u0641 \u0645\u0646\u0627\u0628\u0639 \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \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=\"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 drone<\/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=\"2915\" data-end=\"2918\" \/>\n<h1 data-section-id=\"1hbizas\" data-start=\"2920\" data-end=\"2950\">\u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u061f<\/h1>\n<p data-start=\"2952\" data-end=\"2965\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647:<\/p>\n<ul data-start=\"2967\" data-end=\"3189\">\n<li data-section-id=\"1uu0xp7\" data-start=\"2967\" data-end=\"3018\">\u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 Drone \u0627\u0632 Mirror \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u0634\u062f.<\/li>\n<li data-section-id=\"hjx2oz\" data-start=\"3019\" data-end=\"3064\">Volume \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u06cc\u062c\u0627\u062f \u0634\u062f.<\/li>\n<li data-section-id=\"1d0g7uz\" data-start=\"3065\" data-end=\"3089\">\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 Drone \u0627\u062c\u0631\u0627 \u0634\u062f.<\/li>\n<li data-section-id=\"114i5l2\" data-start=\"3090\" data-end=\"3130\">\u067e\u0648\u0631\u062a\u200c\u0647\u0627\u06cc \u0645\u0648\u0631\u062f\u0646\u06cc\u0627\u0632 \u062f\u0631 \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u0628\u0627\u0632 \u0634\u062f\u0646\u062f.<\/li>\n<li data-section-id=\"1usok00\" data-start=\"3131\" data-end=\"3161\">\u0648\u0631\u0648\u062f \u0627\u0632 \u0637\u0631\u06cc\u0642 GitHub \u0641\u0639\u0627\u0644 \u0634\u062f.<\/li>\n<li data-section-id=\"14wmn4s\" data-start=\"3162\" data-end=\"3189\">\u0635\u062d\u062a \u0627\u062c\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 \u0628\u0631\u0631\u0633\u06cc \u0634\u062f.<\/li>\n<\/ul>\n<hr data-start=\"3086\" data-end=\"3089\" \/>\n<h1 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"19ph3ac\" data-start=\"0\" data-end=\"45\">\u0645\u0631\u062d\u0644\u0647 \u067e\u0646\u062c\u0645 \u2014 \u0646\u0635\u0628 \u0648 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc Docker Runner<\/h1>\n<p data-start=\"47\" data-end=\"191\">\u062a\u0627 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0633\u0631\u0648\u0631 Drone \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0647\u0646\u0648\u0632 \u0642\u0627\u062f\u0631 \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc Pipeline\u0647\u0627 \u0646\u06cc\u0633\u062a. \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc Job\u0647\u0627 \u0628\u0627\u06cc\u062f \u062d\u062f\u0627\u0642\u0644 \u06cc\u06a9 <strong data-start=\"162\" data-end=\"172\">Runner<\/strong> \u0628\u0647 Drone \u0645\u062a\u0635\u0644 \u0634\u0648\u062f.<\/p>\n<p data-start=\"193\" data-end=\"301\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0632 <strong data-start=\"209\" data-end=\"226\">Docker Runner<\/strong> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645\u061b \u0632\u06cc\u0631\u0627 \u067e\u0627\u06cc\u062f\u0627\u0631\u062a\u0631\u06cc\u0646 \u0648 \u0631\u0627\u06cc\u062c\u200c\u062a\u0631\u06cc\u0646 Runner \u062f\u0631 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 Drone \u0627\u0633\u062a.<\/p>\n<hr data-start=\"303\" data-end=\"306\" \/>\n<h1 data-section-id=\"s3a74z\" data-start=\"308\" data-end=\"338\">\u062f\u0631\u06cc\u0627\u0641\u062a Image \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Runner<\/h1>\n<p data-start=\"340\" data-end=\"408\">\u0627\u0628\u062a\u062f\u0627 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 Docker Runner \u0631\u0627 \u0627\u0632 Mirror \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \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>docker pull hub.cr.parmincloud.ir\/drone\/drone-runner-docker:1<\/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=\"485\" data-end=\"530\">\u067e\u0633 \u0627\u0632 \u067e\u0627\u06cc\u0627\u0646 \u062f\u0627\u0646\u0644\u0648\u062f\u060c \u0648\u062c\u0648\u062f Image \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 images<\/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=\"559\" data-end=\"585\">\u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \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>REPOSITORY                                          TAG\r\nhub.cr.parmincloud.ir\/drone\/drone-runner-docker     1\r\nhub.cr.parmincloud.ir\/drone\/drone                   2<\/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=\"764\" data-end=\"767\" \/>\n<h1 data-section-id=\"1kqlcz7\" data-start=\"769\" data-end=\"790\">\u0627\u062c\u0631\u0627\u06cc Docker Runner<\/h1>\n<p data-start=\"792\" data-end=\"818\">\u0627\u06a9\u0646\u0648\u0646 Runner \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<blockquote data-start=\"820\" data-end=\"904\">\n<p data-start=\"822\" data-end=\"904\">\u0645\u0642\u062f\u0627\u0631 <code data-start=\"828\" data-end=\"846\">DRONE_RPC_SECRET<\/code> \u0628\u0627\u06cc\u062f \u062f\u0642\u06cc\u0642\u0627\u064b \u0647\u0645\u0627\u0646 \u0645\u0642\u062f\u0627\u0631\u06cc \u0628\u0627\u0634\u062f \u06a9\u0647 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0633\u0648\u0645 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0631\u062f\u06cc\u062f.<\/p>\n<\/blockquote>\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 run <span class=\"\u037c12\">-d<\/span> \\\r\n<span class=\"\u037c12\">--name<\/span> drone-runner \\\r\n<span class=\"\u037c12\">--restart<\/span> unless-stopped \\\r\n<span class=\"\u037c12\">-v<\/span> \/var\/run\/docker.sock:\/var\/run\/docker.sock \\\r\n<span class=\"\u037c12\">-e<\/span> <span class=\"\u037c11\">DRONE_RPC_PROTO<\/span><span class=\"\u037cv\">=<\/span>https \\\r\n<span class=\"\u037c12\">-e<\/span> <span class=\"\u037c11\">DRONE_RPC_HOST<\/span><span class=\"\u037cv\">=<\/span>drone.example.com \\\r\n<span class=\"\u037c12\">-e<\/span> <span class=\"\u037c11\">DRONE_RPC_SECRET<\/span><span class=\"\u037cv\">=<\/span>YOUR_RPC_SECRET \\\r\n<span class=\"\u037c12\">-e<\/span> <span class=\"\u037c11\">DRONE_RUNNER_CAPACITY<\/span><span class=\"\u037cv\">=<\/span><span class=\"\u037cy\">2<\/span> \\\r\n<span class=\"\u037c12\">-e<\/span> <span class=\"\u037c11\">DRONE_RUNNER_NAME<\/span><span class=\"\u037cv\">=<\/span>$(hostname) \\\r\nhub.cr.parmincloud.ir\/drone\/drone-runner-docker:1<\/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=\"1248\" data-end=\"1251\" \/>\n<h2 data-section-id=\"11qs643\" data-start=\"1253\" data-end=\"1274\">\u062a\u0648\u0636\u06cc\u062d \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u0647\u0645<\/h2>\n<div class=\"TyagGW_tableContainer\">\n<div class=\"group TyagGW_tableWrapper flex flex-col-reverse w-fit\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"1276\" data-end=\"1523\">\n<thead data-start=\"1276\" data-end=\"1293\">\n<tr data-start=\"1276\" data-end=\"1293\">\n<th class=\"last:pe-10\" data-start=\"1276\" data-end=\"1284\" data-col-size=\"sm\">\u0645\u062a\u063a\u06cc\u0631<\/th>\n<th class=\"last:pe-10\" data-start=\"1284\" data-end=\"1293\" data-col-size=\"md\">\u062a\u0648\u0636\u06cc\u062d<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"1314\" data-end=\"1523\">\n<tr data-start=\"1314\" data-end=\"1350\">\n<td data-start=\"1314\" data-end=\"1331\" data-col-size=\"sm\">DRONE_RPC_HOST<\/td>\n<td data-start=\"1331\" data-end=\"1350\" data-col-size=\"md\">\u0622\u062f\u0631\u0633 \u0633\u0631\u0648\u0631 Drone<\/td>\n<\/tr>\n<tr data-start=\"1351\" data-end=\"1404\">\n<td data-start=\"1351\" data-end=\"1370\" data-col-size=\"sm\">DRONE_RPC_SECRET<\/td>\n<td data-start=\"1370\" data-end=\"1404\" data-col-size=\"md\">\u06a9\u0644\u06cc\u062f \u0645\u0634\u062a\u0631\u06a9 \u0628\u06cc\u0646 Runner \u0648 Server<\/td>\n<\/tr>\n<tr data-start=\"1405\" data-end=\"1475\">\n<td data-start=\"1405\" data-end=\"1429\" data-col-size=\"sm\">DRONE_RUNNER_CAPACITY<\/td>\n<td data-start=\"1429\" data-end=\"1475\" data-col-size=\"md\">\u062a\u0639\u062f\u0627\u062f Pipeline\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0647\u0645\u200c\u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f<\/td>\n<\/tr>\n<tr data-start=\"1476\" data-end=\"1523\">\n<td data-start=\"1476\" data-end=\"1496\" data-col-size=\"sm\">DRONE_RUNNER_NAME<\/td>\n<td data-start=\"1496\" data-end=\"1523\" data-col-size=\"md\">\u0646\u0627\u0645 Runner \u062f\u0631 \u067e\u0646\u0644 Drone<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<hr data-start=\"1525\" data-end=\"1528\" \/>\n<h2 data-section-id=\"1wdd8pf\" data-start=\"1530\" data-end=\"1560\">\u0627\u0641\u0632\u0627\u06cc\u0634 \u0638\u0631\u0641\u06cc\u062a \u0627\u062c\u0631\u0627\u06cc Pipeline<\/h2>\n<p data-start=\"1562\" data-end=\"1635\">\u0627\u06af\u0631 \u0645\u0646\u0627\u0628\u0639 \u0633\u062e\u062a\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u0645\u0646\u0627\u0633\u0628\u06cc \u062f\u0627\u0631\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0638\u0631\u0641\u06cc\u062a Runner \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u06cc\u062f.<\/p>\n<p data-start=\"1637\" data-end=\"1643\">\u0645\u062b\u0644\u0627\u064b:<\/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>DRONE_RUNNER_CAPACITY=4<\/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=\"1682\" data-end=\"1684\">\u06cc\u0627<\/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>DRONE_RUNNER_CAPACITY=8<\/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=\"1723\" data-end=\"1788\">\u0627\u0644\u0628\u062a\u0647 \u0627\u06cc\u0646 \u0645\u0642\u062f\u0627\u0631 \u0628\u0627\u06cc\u062f \u0645\u062a\u0646\u0627\u0633\u0628 \u0628\u0627 \u062a\u0639\u062f\u0627\u062f CPU \u0648 \u062d\u0627\u0641\u0638\u0647 \u0633\u0631\u0648\u0631 \u0627\u0646\u062a\u062e\u0627\u0628 \u0634\u0648\u062f.<\/p>\n<hr data-start=\"1790\" data-end=\"1793\" \/>\n<h1 data-section-id=\"tao5c\" data-start=\"1795\" data-end=\"1815\">\u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a Runner<\/h1>\n<p data-start=\"1817\" data-end=\"1858\">\u0627\u06a9\u0646\u0648\u0646 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 Runner \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0628\u0627\u0634\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=\"\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=\"1883\" data-end=\"1920\">\u0628\u0627\u06cc\u062f \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0628\u0627 \u0646\u0627\u0645 \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>drone-runner<\/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=\"1948\" data-end=\"1951\" \/>\n<h1 data-section-id=\"9bejn\" data-start=\"1953\" data-end=\"1976\">\u0645\u0634\u0627\u0647\u062f\u0647 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc Runner<\/h1>\n<p data-start=\"1978\" data-end=\"2021\">\u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u062a\u0635\u0627\u0644 Runner \u0628\u0647 \u0633\u0631\u0648\u0631 Drone:<\/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 logs drone-runner<\/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=\"2061\" data-end=\"2120\">\u062f\u0631 \u0635\u0648\u0631\u062a \u0645\u0648\u0641\u0642 \u0628\u0648\u062f\u0646 \u0627\u062a\u0635\u0627\u0644\u060c \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\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>starting the server\r\n\r\nsuccessfully pinged the remote server\r\n\r\npolling the remote server<\/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=\"2221\" data-end=\"2230\">\u0648\u062c\u0648\u062f \u067e\u06cc\u0627\u0645<\/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>successfully pinged the remote server<\/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=\"2283\" data-end=\"2347\">\u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u0631\u062a\u0628\u0627\u0637 Runner \u0628\u0627 Drone Server \u0628\u0631\u0642\u0631\u0627\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<hr data-start=\"2349\" data-end=\"2352\" \/>\n<h1 data-section-id=\"1did32w\" data-start=\"2354\" data-end=\"2386\">\u0628\u0631\u0631\u0633\u06cc Runner \u0627\u0632 \u062f\u0627\u062e\u0644 \u067e\u0646\u0644 Drone<\/h1>\n<p data-start=\"2388\" data-end=\"2408\">\u0648\u0627\u0631\u062f \u067e\u0646\u0644 Drone \u0634\u0648\u06cc\u062f.<\/p>\n<p data-start=\"2410\" data-end=\"2432\">\u0627\u0632 \u0645\u0646\u0648\u06cc \u0628\u0627\u0644\u0627 \u0648\u0627\u0631\u062f \u0628\u062e\u0634:<\/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>Admin\r\n    \u2193\r\nRunners<\/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=\"2463\" data-end=\"2468\">\u0634\u0648\u06cc\u062f.<\/p>\n<p data-start=\"2470\" data-end=\"2522\">Runner \u062c\u062f\u06cc\u062f \u0628\u0627\u06cc\u062f \u0628\u0627 \u0648\u0636\u0639\u06cc\u062a <strong data-start=\"2496\" data-end=\"2506\">Online<\/strong> \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f.<\/p>\n<p data-start=\"2524\" data-end=\"2593\">\u0627\u06af\u0631 Runner \u062f\u0631 \u0648\u0636\u0639\u06cc\u062a Offline \u0628\u0648\u062f\u060c \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0639\u0644\u062a \u0622\u0646 \u0627\u0633\u062a:<\/p>\n<ul data-start=\"2595\" data-end=\"2737\">\n<li data-section-id=\"zc3ceq\" data-start=\"2595\" data-end=\"2633\">\u0645\u0642\u062f\u0627\u0631 <code data-start=\"2603\" data-end=\"2621\">DRONE_RPC_SECRET<\/code> \u0627\u0634\u062a\u0628\u0627\u0647 \u0627\u0633\u062a.<\/li>\n<li data-section-id=\"15h5fu4\" data-start=\"2634\" data-end=\"2679\">\u062f\u0627\u0645\u0646\u0647 <code data-start=\"2642\" data-end=\"2658\">DRONE_RPC_HOST<\/code> \u0646\u0627\u062f\u0631\u0633\u062a \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li data-section-id=\"1kbzf9i\" data-start=\"2680\" data-end=\"2707\">\u0627\u0631\u062a\u0628\u0627\u0637 HTTPS \u0628\u0631\u0642\u0631\u0627\u0631 \u0646\u06cc\u0633\u062a.<\/li>\n<li data-section-id=\"ck0t4i\" data-start=\"2708\" data-end=\"2737\">\u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u0645\u0627\u0646\u0639 \u0627\u062a\u0635\u0627\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<\/ul>\n<hr data-start=\"2739\" data-end=\"2742\" \/>\n<h1 data-section-id=\"172ipaf\" data-start=\"2744\" data-end=\"2766\">\u062a\u063a\u06cc\u06cc\u0631 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Runner<\/h1>\n<p data-start=\"2768\" data-end=\"2858\">\u0627\u06af\u0631 \u0628\u0639\u062f\u0627\u064b \u0642\u0635\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a Runner \u0631\u0627 \u062f\u0627\u0634\u062a\u06cc\u062f\u060c \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u062d\u0630\u0641 \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"2860\" data-end=\"2872\">\u062d\u0630\u0641 \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\">rm<\/span> <span class=\"\u037c12\">-f<\/span> drone-runner<\/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=\"2913\" data-end=\"2972\">\u0633\u067e\u0633 \u0645\u062c\u062f\u062f\u0627\u064b \u062f\u0633\u062a\u0648\u0631 <code data-start=\"2930\" data-end=\"2942\">docker run<\/code> \u0631\u0627 \u0628\u0627 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062c\u062f\u06cc\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"2974\" data-end=\"3062\">\u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 Runner \u062f\u0627\u062f\u0647 \u0645\u0647\u0645\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u062d\u0630\u0641 \u0648 \u0627\u06cc\u062c\u0627\u062f \u0645\u062c\u062f\u062f \u0622\u0646 \u0645\u0634\u06a9\u0644\u06cc \u0627\u06cc\u062c\u0627\u062f \u0646\u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/p>\n<hr data-start=\"3064\" data-end=\"3067\" \/>\n<h1 data-section-id=\"5ergvy\" data-start=\"3069\" data-end=\"3089\">\u0628\u0631\u0631\u0633\u06cc \u0633\u0644\u0627\u0645\u062a Runner<\/h1>\n<p data-start=\"3091\" data-end=\"3120\">\u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u0648\u0636\u0639\u06cc\u062a \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 drone-runner<\/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=\"3161\" data-end=\"3185\">\u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u06cc\u0634\u062a\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 inspect drone-runner<\/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=\"3228\" data-end=\"3231\" \/>\n<h1 data-section-id=\"1hbizas\" data-start=\"3233\" data-end=\"3263\">\u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u061f<\/h1>\n<p data-start=\"3265\" data-end=\"3278\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647:<\/p>\n<ul data-start=\"3280\" data-end=\"3474\">\n<li data-section-id=\"3uizuq\" data-start=\"3280\" data-end=\"3303\">Docker Runner \u0646\u0635\u0628 \u0634\u062f.<\/li>\n<li data-section-id=\"1u1a7xn\" data-start=\"3304\" data-end=\"3337\">Runner \u0628\u0647 Drone Server \u0645\u062a\u0635\u0644 \u0634\u062f.<\/li>\n<li data-section-id=\"18elrjw\" data-start=\"3338\" data-end=\"3386\">\u0627\u0631\u062a\u0628\u0627\u0637 \u0627\u0645\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 RPC Secret \u0628\u0631\u0642\u0631\u0627\u0631 \u0634\u062f.<\/li>\n<li data-section-id=\"18norap\" data-start=\"3387\" data-end=\"3421\">\u0627\u0645\u06a9\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc Pipeline\u0647\u0627 \u0641\u0631\u0627\u0647\u0645 \u0634\u062f.<\/li>\n<li data-section-id=\"1jyj1lv\" data-start=\"3422\" data-end=\"3474\">\u0648\u0636\u0639\u06cc\u062a Runner \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0644\u0627\u06af\u200c\u0647\u0627 \u0648 \u067e\u0646\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0628\u0631\u0631\u0633\u06cc \u0634\u062f.<\/li>\n<\/ul>\n<hr data-start=\"3086\" data-end=\"3089\" \/>\n<h1 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"13nb699\" data-start=\"0\" data-end=\"43\">\u0645\u0631\u062d\u0644\u0647 \u0634\u0634\u0645 \u2014 \u0627\u06cc\u062c\u0627\u062f \u0627\u0648\u0644\u06cc\u0646 Pipeline \u062f\u0631 Drone<\/h1>\n<p data-start=\"45\" data-end=\"174\">\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 Drone Server \u0648 Docker Runner \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u062f\u0647\u200c\u0627\u0646\u062f\u060c \u0632\u0645\u0627\u0646 \u0622\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0648\u0644\u06cc\u0646 Pipeline \u062e\u0648\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645.<\/p>\n<p data-start=\"176\" data-end=\"257\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u06cc\u06a9 \u0645\u062e\u0632\u0646 GitHub \u0628\u0647 Drone \u0645\u062a\u0635\u0644 \u06a9\u0631\u062f\u0647 \u0648 \u0627\u0648\u0644\u06cc\u0646 \u0641\u0627\u06cc\u0644 Pipeline \u0631\u0627 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u0645.<\/p>\n<hr data-start=\"259\" data-end=\"262\" \/>\n<h1 data-section-id=\"1s7xmeo\" data-start=\"264\" data-end=\"292\">\u0627\u06cc\u062c\u0627\u062f Repository \u062f\u0631 GitHub<\/h1>\n<p data-start=\"294\" data-end=\"368\">\u0627\u06af\u0631 \u0647\u0646\u0648\u0632 Repository \u0646\u062f\u0627\u0631\u06cc\u062f\u060c \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 Repository \u062c\u062f\u06cc\u062f \u062f\u0631 GitHub \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"370\" data-end=\"380\">\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=\"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>drone-demo<\/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=\"406\" data-end=\"437\">\u06cc\u0627 \u0647\u0631 \u0646\u0627\u0645 \u062f\u06cc\u06af\u0631\u06cc \u06a9\u0647 \u0645\u062f\u0646\u0638\u0631 \u062f\u0627\u0631\u06cc\u062f.<\/p>\n<hr data-start=\"439\" data-end=\"442\" \/>\n<h1 data-section-id=\"drzegx\" data-start=\"444\" data-end=\"478\">\u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc Repository\u0647\u0627 \u062f\u0631 Drone<\/h1>\n<p data-start=\"480\" data-end=\"500\">\u0648\u0627\u0631\u062f \u067e\u0646\u0644 Drone \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=\"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:\/\/drone.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=\"537\" data-end=\"579\">\u0627\u0632 \u0645\u0646\u0648\u06cc \u0628\u0627\u0644\u0627 \u0631\u0648\u06cc \u06af\u0632\u06cc\u0646\u0647 <strong data-start=\"560\" data-end=\"568\">SYNC<\/strong> \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"581\" data-end=\"637\">Drone \u0644\u06cc\u0633\u062a Repository\u0647\u0627\u06cc GitHub \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/p>\n<p data-start=\"639\" data-end=\"689\">\u067e\u0633 \u0627\u0632 \u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647 Repository \u062c\u062f\u06cc\u062f \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<hr data-start=\"691\" data-end=\"694\" \/>\n<h1 data-section-id=\"4lu38u\" data-start=\"696\" data-end=\"718\">\u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 Repository<\/h1>\n<p data-start=\"720\" data-end=\"776\">\u06a9\u0646\u0627\u0631 Repository \u0645\u0648\u0631\u062f\u0646\u0638\u0631 \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 <strong data-start=\"753\" data-end=\"765\">ACTIVATE<\/strong> \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"778\" data-end=\"864\">\u0628\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 Drone \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 Webhook \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Repository \u0631\u0627 \u062f\u0631 GitHub \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p data-start=\"866\" data-end=\"927\">\u0627\u0632 \u0627\u06cc\u0646 \u067e\u0633 \u0628\u0627 \u0647\u0631 Push \u06cc\u0627 Pull Request\u060c Pipeline \u0627\u062c\u0631\u0627 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/p>\n<hr data-start=\"929\" data-end=\"932\" \/>\n<h1 data-section-id=\"1rewkl\" data-start=\"934\" data-end=\"955\">\u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 Pipeline<\/h1>\n<p data-start=\"957\" data-end=\"999\">\u062f\u0631 \u0631\u06cc\u0634\u0647 Repository \u0641\u0627\u06cc\u0644 \u0632\u06cc\u0631 \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=\"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>.drone.yml<\/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=\"1025\" data-end=\"1037\">\u0645\u062d\u062a\u0648\u0627\u06cc \u0641\u0627\u06cc\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>kind: pipeline\r\ntype: docker\r\nname: default\r\n\r\nsteps:\r\n  - name: test\r\n    image: hub.cr.parmincloud.ir\/library\/alpine:latest\r\n    commands:\r\n      - echo \"Hello from Drone CI!\"\r\n      - uname -a\r\n      - date<\/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=\"1252\" data-end=\"1255\" \/>\n<h2 data-section-id=\"z4gpqd\" data-start=\"1257\" data-end=\"1300\">\u0686\u0631\u0627 \u0627\u0632 Mirror \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645\u061f<\/h2>\n<p data-start=\"1302\" data-end=\"1345\">\u062f\u0631 \u0622\u0645\u0648\u0632\u0634 \u0627\u0635\u0644\u06cc \u0627\u0632 Image \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \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>alpine<\/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=\"1367\" data-end=\"1398\">\u06a9\u0647 \u0627\u0632 Docker Hub \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p data-start=\"1400\" data-end=\"1451\">\u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u0632 Mirror \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/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>hub.cr.parmincloud.ir\/library\/alpine:latest<\/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=\"1510\" data-end=\"1570\">\u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 \u062f\u0627\u0646\u0644\u0648\u062f Image\u0647\u0627 \u0628\u0627 \u0633\u0631\u0639\u062a \u0628\u0633\u06cc\u0627\u0631 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/p>\n<hr data-start=\"1572\" data-end=\"1575\" \/>\n<h1 data-section-id=\"6pg7ep\" data-start=\"1577\" data-end=\"1592\">Commit \u0648 Push<\/h1>\n<p data-start=\"1594\" data-end=\"1642\">\u067e\u0633 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644\u060c \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 Commit \u0648 Push \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\">git<\/span> add .\r\n\r\n<span class=\"\u037c10\">git<\/span> commit <span class=\"\u037c12\">-m<\/span> <span class=\"\u037cz\">\"Add Drone pipeline\"<\/span>\r\n\r\n<span class=\"\u037c10\">git<\/span> push origin main<\/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=\"1725\" data-end=\"1798\">\u0627\u06af\u0631 \u0634\u0627\u062e\u0647 \u0627\u0635\u0644\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627 <code data-start=\"1749\" data-end=\"1757\">master<\/code> \u0627\u0633\u062a\u060c \u0628\u0647\u200c\u062c\u0627\u06cc <code data-start=\"1770\" data-end=\"1776\">main<\/code> \u0627\u0632 \u0647\u0645\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"1800\" data-end=\"1803\" \/>\n<h1 data-section-id=\"f7zfw5\" data-start=\"1805\" data-end=\"1821\">\u0627\u062c\u0631\u0627\u06cc Pipeline<\/h1>\n<p data-start=\"1823\" data-end=\"1862\">\u0628\u0647 \u0645\u062d\u0636 \u0627\u0646\u062c\u0627\u0645 Push\u060c \u0648\u0627\u0631\u062f \u067e\u0646\u0644 Drone \u0634\u0648\u06cc\u062f.<\/p>\n<p data-start=\"1864\" data-end=\"1887\">Repository \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"1889\" data-end=\"1932\">Pipeline \u062c\u062f\u06cc\u062f \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p data-start=\"1934\" data-end=\"1966\">\u0645\u0631\u0627\u062d\u0644 \u0627\u062c\u0631\u0627 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\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>Pending\r\n\u2193\r\n\r\nRunning\r\n\u2193\r\n\r\nSuccess<\/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=\"2007\" data-end=\"2010\" \/>\n<h1 data-section-id=\"13shw7z\" data-start=\"2012\" data-end=\"2027\">\u0645\u0634\u0627\u0647\u062f\u0647 \u0644\u0627\u06af\u200c\u0647\u0627<\/h1>\n<p data-start=\"2029\" data-end=\"2060\">\u0631\u0648\u06cc Pipeline \u0627\u062c\u0631\u0627\u0634\u062f\u0647 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"2062\" data-end=\"2114\">\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 <strong data-start=\"2071\" data-end=\"2079\">test<\/strong> \u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\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>Hello from Drone CI!\r\n\r\nLinux ...\r\n\r\nTue Jul ...<\/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=\"2174\" data-end=\"2221\">\u0627\u06af\u0631 \u0627\u06cc\u0646 \u062e\u0631\u0648\u062c\u06cc \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0631\u062f\u06cc\u062f\u060c \u06cc\u0639\u0646\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u06cc\u0646:<\/p>\n<ul data-start=\"2223\" data-end=\"2262\">\n<li data-section-id=\"1xdrp7x\" data-start=\"2223\" data-end=\"2231\">GitHub<\/li>\n<li data-section-id=\"pd0ry7\" data-start=\"2232\" data-end=\"2246\">Drone Server<\/li>\n<li data-section-id=\"1o7vkq4\" data-start=\"2247\" data-end=\"2262\">Docker Runner<\/li>\n<\/ul>\n<p data-start=\"2264\" data-end=\"2288\">\u0628\u0647\u200c\u062f\u0631\u0633\u062a\u06cc \u0628\u0631\u0642\u0631\u0627\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<hr data-start=\"2290\" data-end=\"2293\" \/>\n<h1 data-section-id=\"1ps5lvh\" data-start=\"2295\" data-end=\"2318\">\u0627\u06af\u0631 Pipeline \u0627\u062c\u0631\u0627 \u0646\u0634\u062f<\/h1>\n<p data-start=\"2320\" data-end=\"2375\">\u062f\u0631 \u0635\u0648\u0631\u062a Pending \u0645\u0627\u0646\u062f\u0646 Pipeline \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<h2 data-section-id=\"160w34k\" data-start=\"2377\" data-end=\"2392\">\u0648\u0636\u0639\u06cc\u062a Runner<\/h2>\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 logs drone-runner<\/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=\"2432\" data-end=\"2435\" \/>\n<h2 data-section-id=\"1kr0pqu\" data-start=\"2437\" data-end=\"2451\">\u0648\u0636\u0639\u06cc\u062a Drone<\/h2>\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 logs drone<\/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=\"2484\" data-end=\"2487\" \/>\n<h2 data-section-id=\"1s355cx\" data-start=\"2489\" data-end=\"2505\">\u0628\u0631\u0631\u0633\u06cc Webhook<\/h2>\n<p data-start=\"2507\" data-end=\"2540\">\u062f\u0631 GitHub \u0645\u0633\u06cc\u0631 \u0632\u06cc\u0631 \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=\"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>Repository\r\n\r\n\u2193\r\n\r\nSettings\r\n\r\n\u2193\r\n\r\nWebhooks<\/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=\"2588\" data-end=\"2635\">\u0628\u0627\u06cc\u062f \u06cc\u06a9 Webhook \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Drone \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<p data-start=\"2637\" data-end=\"2688\">\u0622\u062e\u0631\u06cc\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0646\u06cc\u0632 \u0628\u0627\u06cc\u062f \u0648\u0636\u0639\u06cc\u062a <strong data-start=\"2666\" data-end=\"2676\">200 OK<\/strong> \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<hr data-start=\"2690\" data-end=\"2693\" \/>\n<h2 data-section-id=\"lcx5uq\" data-start=\"2695\" data-end=\"2710\">\u0628\u0631\u0631\u0633\u06cc Runner<\/h2>\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=\"2735\" data-end=\"2747\">\u0648\u062c\u0648\u062f \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=\"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>drone-runner<\/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=\"2775\" data-end=\"2786\">\u0627\u0644\u0632\u0627\u0645\u06cc \u0627\u0633\u062a.<\/p>\n<hr data-start=\"2788\" data-end=\"2791\" \/>\n<h2 data-section-id=\"j2znad\" data-start=\"2793\" data-end=\"2812\">\u0628\u0631\u0631\u0633\u06cc RPC Secret<\/h2>\n<p data-start=\"2814\" data-end=\"2819\">\u0645\u0642\u062f\u0627\u0631<\/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>DRONE_RPC_SECRET<\/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=\"2851\" data-end=\"2858\">\u062f\u0631 \u0641\u0627\u06cc\u0644<\/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>\/etc\/drone<\/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=\"2884\" data-end=\"2920\">\u0648 Runner \u0628\u0627\u06cc\u062f <strong data-start=\"2898\" data-end=\"2914\">\u06a9\u0627\u0645\u0644\u0627\u064b \u06cc\u06a9\u0633\u0627\u0646<\/strong> \u0628\u0627\u0634\u062f.<\/p>\n<hr data-start=\"2922\" data-end=\"2925\" \/>\n<h1 data-section-id=\"1ytbwrg\" data-start=\"2927\" data-end=\"2948\">\u0627\u062c\u0631\u0627\u06cc Pipeline \u0645\u062c\u062f\u062f<\/h1>\n<p data-start=\"2950\" data-end=\"3002\">\u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u062f\u0648\u0628\u0627\u0631\u0647 Pipeline \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u0641\u0627\u06cc\u0644 \u0646\u06cc\u0633\u062a.<\/p>\n<p data-start=\"3004\" data-end=\"3039\">\u06a9\u0627\u0641\u06cc \u0627\u0633\u062a \u06cc\u06a9 Commit \u062c\u062f\u06cc\u062f \u0627\u0631\u0633\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\">git<\/span> commit <span class=\"\u037c12\">--allow-empty<\/span> <span class=\"\u037c12\">-m<\/span> <span class=\"\u037cz\">\"Run pipeline\"<\/span>\r\n\r\n<span class=\"\u037c10\">git<\/span> push<\/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=\"3107\" data-end=\"3110\" \/>\n<h1 data-section-id=\"1wvr0n9\" data-start=\"3112\" data-end=\"3136\">\u0646\u0645\u0648\u0646\u0647 Pipeline \u0633\u0627\u062f\u0647\u200c\u062a\u0631<\/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>kind: pipeline\r\ntype: docker\r\nname: default\r\n\r\nsteps:\r\n  - name: Build\r\n    image: hub.cr.parmincloud.ir\/library\/alpine:latest\r\n    commands:\r\n      - echo \"Build Started\"\r\n\r\n  - name: Test\r\n    image: hub.cr.parmincloud.ir\/library\/alpine:latest\r\n    commands:\r\n      - echo \"Running Tests\"\r\n\r\n  - name: Deploy\r\n    image: hub.cr.parmincloud.ir\/library\/alpine:latest\r\n    commands:\r\n      - echo \"Deploy Completed\"<\/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=\"3548\" data-end=\"3551\" \/>\n<h1 data-section-id=\"1hbizas\" data-start=\"3553\" data-end=\"3583\">\u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u061f<\/h1>\n<p data-start=\"3585\" data-end=\"3598\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647:<\/p>\n<ul data-start=\"3600\" data-end=\"3784\">\n<li data-section-id=\"18qdzuk\" data-start=\"3600\" data-end=\"3630\">Repository \u0628\u0647 Drone \u0645\u062a\u0635\u0644 \u0634\u062f.<\/li>\n<li data-section-id=\"nx71hu\" data-start=\"3631\" data-end=\"3665\">Webhook \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f.<\/li>\n<li data-section-id=\"c5gfbj\" data-start=\"3666\" data-end=\"3701\">\u0627\u0648\u0644\u06cc\u0646 \u0641\u0627\u06cc\u0644 <code data-start=\"3679\" data-end=\"3691\">.drone.yml<\/code> \u0633\u0627\u062e\u062a\u0647 \u0634\u062f.<\/li>\n<li data-section-id=\"13bxk77\" data-start=\"3702\" data-end=\"3727\">\u0627\u0648\u0644\u06cc\u0646 Pipeline \u0627\u062c\u0631\u0627 \u0634\u062f.<\/li>\n<li data-section-id=\"1k9glz9\" data-start=\"3728\" data-end=\"3784\">\u0646\u062d\u0648\u0647 \u0628\u0631\u0631\u0633\u06cc \u0644\u0627\u06af\u200c\u0647\u0627 \u0648 \u0639\u06cc\u0628\u200c\u06cc\u0627\u0628\u06cc Pipeline\u0647\u0627 \u0631\u0627 \u06cc\u0627\u062f \u06af\u0631\u0641\u062a\u06cc\u062f.<\/li>\n<\/ul>\n<hr data-start=\"3086\" data-end=\"3089\" \/>\n<h1 class=\"PDq2pG_selectionAnchorContainer\" data-section-id=\"7bsnxa\" data-start=\"0\" data-end=\"69\">\u0645\u0631\u062d\u0644\u0647 \u0647\u0641\u062a\u0645 \u2014 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Secrets \u0648 \u0633\u0627\u062e\u062a Pipeline\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062f\u0631 Drone<\/h1>\n<p data-start=\"71\" data-end=\"263\">\u062f\u0631 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062d\u0633\u0627\u0633\u06cc \u0645\u0627\u0646\u0646\u062f Token\u0647\u0627\u060c Password\u0647\u0627\u060c API Key\u0647\u0627 \u0648 SSH Key\u0647\u0627 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u0646\u062f. \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0627\u06cc\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062f\u0627\u062e\u0644 \u0641\u0627\u06cc\u0644 <code data-start=\"205\" data-end=\"217\">.drone.yml<\/code> \u06cc\u0627 \u0645\u062e\u0632\u0646 Git\u060c \u06cc\u06a9 \u0631\u06cc\u0633\u06a9 \u0627\u0645\u0646\u06cc\u062a\u06cc \u062c\u062f\u06cc \u0645\u062d\u0633\u0648\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p data-start=\"265\" data-end=\"376\">\u062f\u0631 Drone \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a <strong data-start=\"307\" data-end=\"317\">Secret<\/strong> \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627\u06cc Pipeline \u0627\u0632 \u0622\u0646\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u0627\u06cc\u06cc\u062f.<\/p>\n<hr data-start=\"378\" data-end=\"381\" \/>\n<h1 data-section-id=\"tqd8v3\" data-start=\"383\" data-end=\"397\">\u0627\u06cc\u062c\u0627\u062f Secret<\/h1>\n<p data-start=\"399\" data-end=\"441\">\u0627\u0632 \u067e\u0646\u0644 Drone \u0648\u0627\u0631\u062f Repository \u0645\u0648\u0631\u062f\u0646\u0638\u0631 \u0634\u0648\u06cc\u062f.<\/p>\n<p data-start=\"443\" data-end=\"468\">\u0633\u067e\u0633 \u0645\u0633\u06cc\u0631 \u0632\u06cc\u0631 \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=\"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>Repository\r\n    \u2193\r\nSettings\r\n        \u2193\r\nSecrets<\/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=\"527\" data-end=\"556\">\u0631\u0648\u06cc <strong data-start=\"531\" data-end=\"545\">Add Secret<\/strong> \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"558\" data-end=\"572\">\u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644:<\/p>\n<div class=\"TyagGW_tableContainer\">\n<div class=\"group TyagGW_tableWrapper flex flex-col-reverse w-fit\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"574\" data-end=\"679\">\n<thead data-start=\"574\" data-end=\"590\">\n<tr data-start=\"574\" data-end=\"590\">\n<th class=\"last:pe-10\" data-start=\"574\" data-end=\"581\" data-col-size=\"sm\">Name<\/th>\n<th class=\"last:pe-10\" data-start=\"581\" data-end=\"590\" data-col-size=\"sm\">Value<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"608\" data-end=\"679\">\n<tr data-start=\"608\" data-end=\"643\">\n<td data-start=\"608\" data-end=\"626\" data-col-size=\"sm\">DOCKER_USERNAME<\/td>\n<td data-col-size=\"sm\" data-start=\"626\" data-end=\"643\">your_username<\/td>\n<\/tr>\n<tr data-start=\"644\" data-end=\"679\">\n<td data-start=\"644\" data-end=\"662\" data-col-size=\"sm\">DOCKER_PASSWORD<\/td>\n<td data-start=\"662\" data-end=\"679\" data-col-size=\"sm\">your_password<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<hr data-start=\"681\" data-end=\"684\" \/>\n<h1 data-section-id=\"1ypv1bd\" data-start=\"686\" data-end=\"717\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Secret \u062f\u0631 Pipeline<\/h1>\n<p data-start=\"719\" data-end=\"768\">\u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u062f\u0648 Secret \u0628\u0627 \u0646\u0627\u0645\u200c\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647\u200c\u0627\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>DOCKER_USERNAME\r\nDOCKER_PASSWORD<\/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=\"815\" data-end=\"867\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u062f\u0627\u062e\u0644 Pipeline \u0627\u0633\u062a\u0641\u0627\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>kind: pipeline\r\ntype: docker\r\nname: default\r\n\r\nsteps:\r\n  - name: Login\r\n    image: hub.cr.parmincloud.ir\/library\/docker:cli\r\n\r\n    environment:\r\n      USERNAME:\r\n        from_secret: DOCKER_USERNAME\r\n\r\n      PASSWORD:\r\n        from_secret: DOCKER_PASSWORD\r\n\r\n    commands:\r\n      - echo \"$PASSWORD\" | docker login -u \"$USERNAME\" --password-stdin hub.cr.parmincloud.ir<\/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=\"1234\" data-end=\"1237\" \/>\n<h1 data-section-id=\"1uuk0r7\" data-start=\"1239\" data-end=\"1274\">\u0646\u0645\u0648\u0646\u0647 Pipeline \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 Node.js<\/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>kind: pipeline\r\ntype: docker\r\nname: node\r\n\r\nsteps:\r\n\r\n- name: Install Dependencies\r\n  image: hub.cr.parmincloud.ir\/library\/node:22-alpine\r\n\r\n  commands:\r\n    - npm config set registry https:\/\/npm.parmincloud.ir\r\n    - npm install\r\n\r\n- name: Run Tests\r\n  image: hub.cr.parmincloud.ir\/library\/node:22-alpine\r\n\r\n  commands:\r\n    - npm test\r\n\r\n- name: Build\r\n  image: hub.cr.parmincloud.ir\/library\/node:22-alpine\r\n\r\n  commands:\r\n    - npm run build<\/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=\"1711\" data-end=\"1777\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc NPM \u0628\u0647 Mirror \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<hr data-start=\"1779\" data-end=\"1782\" \/>\n<h1 data-section-id=\"1bjftjc\" data-start=\"1784\" data-end=\"1812\">\u0646\u0645\u0648\u0646\u0647 Pipeline \u0628\u0631\u0627\u06cc Python<\/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>kind: pipeline\r\ntype: docker\r\nname: python\r\n\r\nsteps:\r\n\r\n- name: Install Packages\r\n  image: hub.cr.parmincloud.ir\/library\/python:3.12\r\n\r\n  commands:\r\n    - pip config set global.index-url https:\/\/pypi.parmincloud.ir\/simple\/\r\n    - pip install -r requirements.txt\r\n\r\n- name: Test\r\n  image: hub.cr.parmincloud.ir\/library\/python:3.12\r\n\r\n  commands:\r\n    - pytest<\/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=\"2169\" data-end=\"2239\">\u062f\u0631 \u0627\u06cc\u0646 Pipeline \u0627\u0632 Mirror \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc Python \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<hr data-start=\"2241\" data-end=\"2244\" \/>\n<h1 data-section-id=\"1gi0j8m\" data-start=\"2246\" data-end=\"2282\">\u0646\u0645\u0648\u0646\u0647 Pipeline \u0628\u0631\u0627\u06cc PHP \u0648 Composer<\/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>kind: pipeline\r\ntype: docker\r\nname: php\r\n\r\nsteps:\r\n\r\n- name: Install Dependencies\r\n  image: hub.cr.parmincloud.ir\/library\/composer:2\r\n\r\n  commands:\r\n    - composer config repo.packagist composer https:\/\/composer.parmincloud.ir\r\n    - composer install\r\n\r\n- name: PHPUnit\r\n  image: hub.cr.parmincloud.ir\/library\/php:8.3-cli\r\n\r\n  commands:\r\n    - .\/vendor\/bin\/phpunit<\/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=\"2645\" data-end=\"2648\" \/>\n<h1 data-section-id=\"oejdu3\" data-start=\"2650\" data-end=\"2682\">\u0646\u0645\u0648\u0646\u0647 Pipeline \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a Image<\/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>kind: pipeline\r\ntype: docker\r\nname: docker-build\r\n\r\nsteps:\r\n\r\n- name: Build Image\r\n\r\n  image: hub.cr.parmincloud.ir\/plugins\/docker\r\n\r\n  settings:\r\n    registry: hub.cr.parmincloud.ir\r\n    repo: hub.cr.parmincloud.ir\/example\/myapp\r\n    tags:\r\n      - latest\r\n\r\n    username:\r\n      from_secret: docker_username\r\n\r\n    password:\r\n      from_secret: docker_password<\/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=\"3040\" data-end=\"3102\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 Image \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u062f\u0631 \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f Push \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<hr data-start=\"3104\" data-end=\"3107\" \/>\n<h1 data-section-id=\"1qkkt1g\" data-start=\"3109\" data-end=\"3143\">\u0627\u062c\u0631\u0627\u06cc Pipeline \u0641\u0642\u0637 \u0631\u0648\u06cc \u0634\u0627\u062e\u0647 \u0645\u0634\u062e\u0635<\/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>trigger:\r\n\r\n  branch:\r\n    - main<\/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=\"3189\" data-end=\"3191\">\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>trigger:\r\n\r\n  branch:\r\n    - production<\/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=\"3243\" data-end=\"3246\" \/>\n<h1 data-section-id=\"j881yr\" data-start=\"3248\" data-end=\"3279\">\u0627\u062c\u0631\u0627\u06cc Pipeline \u0641\u0642\u0637 \u0647\u0646\u06af\u0627\u0645 Push<\/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>trigger:\r\n\r\n  event:\r\n    - push<\/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=\"3324\" data-end=\"3327\" \/>\n<h1 data-section-id=\"r3j89l\" data-start=\"3329\" data-end=\"3368\">\u0627\u062c\u0631\u0627\u06cc Pipeline \u0641\u0642\u0637 \u0647\u0646\u06af\u0627\u0645 Pull Request<\/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>trigger:\r\n\r\n  event:\r\n    - pull_request<\/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=\"3421\" data-end=\"3424\" \/>\n<h1 data-section-id=\"1hxwvp8\" data-start=\"3426\" data-end=\"3453\">\u0627\u062c\u0631\u0627\u06cc \u0645\u0631\u0627\u062d\u0644 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0645\u0648\u0627\u0632\u06cc<\/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>steps:\r\n\r\n- name: Test 1\r\n  image: hub.cr.parmincloud.ir\/library\/alpine\r\n\r\n  commands:\r\n    - echo Test1\r\n\r\n- name: Test 2\r\n  image: hub.cr.parmincloud.ir\/library\/alpine\r\n\r\n  commands:\r\n    - echo Test2<\/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=\"3659\" data-end=\"3767\">Drone \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u0628\u0648\u062f \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0628\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644\u060c \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0645\u0648\u0627\u0632\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc Pipeline \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u06cc\u0627\u0628\u062f.<\/p>\n<hr data-start=\"3769\" data-end=\"3772\" \/>\n<h1 data-section-id=\"16ol2qq\" data-start=\"3774\" data-end=\"3801\">\u0645\u0634\u0627\u0647\u062f\u0647 \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 Pipeline\u0647\u0627<\/h1>\n<p data-start=\"3803\" data-end=\"3870\">\u062f\u0631 \u067e\u0646\u0644 Drone \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u0647\u0631 Repository \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<ul data-start=\"3872\" data-end=\"3972\">\n<li data-section-id=\"14ztbys\" data-start=\"3872\" data-end=\"3884\">\u0648\u0636\u0639\u06cc\u062a \u0627\u062c\u0631\u0627<\/li>\n<li data-section-id=\"wooa8z\" data-start=\"3885\" data-end=\"3900\">\u0645\u062f\u062a \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627<\/li>\n<li data-section-id=\"jdum3r\" data-start=\"3901\" data-end=\"3920\">\u0644\u0627\u06af \u06a9\u0627\u0645\u0644 \u0647\u0631 \u0645\u0631\u062d\u0644\u0647<\/li>\n<li data-section-id=\"1jg86h0\" data-start=\"3921\" data-end=\"3939\">Runner \u0627\u062c\u0631\u0627\u06a9\u0646\u0646\u062f\u0647<\/li>\n<li data-section-id=\"7qc5wd\" data-start=\"3940\" data-end=\"3955\">Commit \u0645\u0631\u0628\u0648\u0637\u0647<\/li>\n<li data-section-id=\"r7vh7q\" data-start=\"3956\" data-end=\"3972\">\u0646\u0648\u06cc\u0633\u0646\u062f\u0647 Commit<\/li>\n<\/ul>\n<p data-start=\"3974\" data-end=\"4052\">\u0627\u06cc\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0645\u0634\u06a9\u0644\u0627\u062a Pipeline\u0647\u0627 \u0631\u0627 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0648 \u0631\u0641\u0639 \u06a9\u0646\u06cc\u062f.<\/p>\n<hr data-start=\"4054\" data-end=\"4057\" \/>\n<h1 data-section-id=\"1hbizas\" data-start=\"4059\" data-end=\"4089\">\u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u061f<\/h1>\n<p data-start=\"4091\" data-end=\"4104\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647:<\/p>\n<ul data-start=\"4106\" data-end=\"4440\">\n<li data-section-id=\"1g9b2qa\" data-start=\"4106\" data-end=\"4155\">\u0646\u062d\u0648\u0647 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Secret\u0647\u0627 \u0631\u0627 \u06cc\u0627\u062f \u06af\u0631\u0641\u062a\u06cc\u062f.<\/li>\n<li data-section-id=\"odo3b1\" data-start=\"4156\" data-end=\"4221\">\u0686\u0646\u062f Pipeline \u0622\u0645\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc Node.js\u060c Python\u060c PHP \u0648 Docker \u0645\u0639\u0631\u0641\u06cc \u0634\u062f.<\/li>\n<li data-section-id=\"5oscje\" data-start=\"4222\" data-end=\"4309\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Mirror\u0647\u0627\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0628\u0631\u0627\u06cc NPM\u060c PyPI\u060c Composer \u0648 Docker Registry \u0627\u0639\u0645\u0627\u0644 \u0634\u062f.<\/li>\n<li data-section-id=\"z6avw5\" data-start=\"4310\" data-end=\"4382\">\u0646\u062d\u0648\u0647 \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062f\u0646 \u0627\u062c\u0631\u0627\u06cc Pipeline \u0628\u0631 \u0627\u0633\u0627\u0633 Branch \u06cc\u0627 Event \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0631\u062f\u06cc\u0645.<\/li>\n<li data-section-id=\"16t90pl\" data-start=\"4383\" data-end=\"4440\">\u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u0645\u0648\u0627\u0632\u06cc \u0645\u0631\u0627\u062d\u0644 \u0648 \u0627\u0645\u06a9\u0627\u0646\u0627\u062a \u0645\u062f\u06cc\u0631\u06cc\u062a\u06cc Drone \u0622\u0634\u0646\u0627 \u0634\u062f\u06cc\u062f.<\/li>\n<\/ul>\n<hr data-start=\"4442\" data-end=\"4445\" \/>\n<h2 data-section-id=\"1b63d0c\" data-start=\"4447\" data-end=\"4460\">\u0646\u062a\u06cc\u062c\u0647\u200c\u06af\u06cc\u0631\u06cc<\/h2>\n<p data-start=\"4462\" data-end=\"4529\">\u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u06a9\u0627\u0645\u0644 CI\/CD \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 Drone \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0634\u0627\u0645\u0644:<\/p>\n<ul data-start=\"4531\" data-end=\"4723\">\n<li data-section-id=\"1pdlsph\" data-start=\"4531\" data-end=\"4556\">\u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc Drone Server<\/li>\n<li data-section-id=\"1rxq02h\" data-start=\"4557\" data-end=\"4574\">\u0627\u062a\u0635\u0627\u0644 \u0628\u0647 GitHub<\/li>\n<li data-section-id=\"1awverb\" data-start=\"4575\" data-end=\"4594\">\u0646\u0635\u0628 Docker Runner<\/li>\n<li data-section-id=\"2p9wvv\" data-start=\"4595\" data-end=\"4613\">\u0627\u062c\u0631\u0627\u06cc Pipeline\u0647\u0627<\/li>\n<li data-section-id=\"1qpqkz3\" data-start=\"4614\" data-end=\"4631\">\u0645\u062f\u06cc\u0631\u06cc\u062a Secret\u0647\u0627<\/li>\n<li data-section-id=\"1jcng10\" data-start=\"4632\" data-end=\"4679\">\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u062c\u06cc\u0633\u062a\u0631\u06cc\u200c\u0647\u0627 \u0648 Mirror\u0647\u0627\u06cc \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/li>\n<li data-section-id=\"1a8t0h1\" data-start=\"4680\" data-end=\"4723\">\u0627\u062c\u0631\u0627\u06cc Build\u060c Test \u0648 Deploy \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u062e\u0648\u062f\u06a9\u0627\u0631<\/li>\n<\/ul>\n<p data-start=\"4725\" data-end=\"4811\" data-is-last-node=\"\" data-is-only-node=\"\">\u0627\u0633\u062a \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0646\u0648\u0627\u0639 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u062f\u0631 \u0645\u062d\u06cc\u0637 Production \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p data-start=\"4725\" data-end=\"4811\" 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 \u0627\u0645\u0631\u0648\u0632\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 CI\/CD \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0647\u0645\u200c\u062a\u0631\u06cc\u0646 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0647\u0631\u0686\u0647 \u0641\u0631\u0622\u06cc\u0646\u062f Build\u060c Test \u0648 Deploy \u062e\u0648\u062f\u06a9\u0627\u0631\u062a\u0631 \u0628\u0627\u0634\u062f\u060c \u0633\u0631\u0639\u062a \u062a\u0648\u0633\u0639\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0627\u062d\u062a\u0645\u0627\u0644 \u0628\u0631\u0648\u0632 \u062e\u0637\u0627\u0647\u0627\u06cc \u0627\u0646\u0633\u0627\u0646\u06cc \u0646\u06cc\u0632 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u06cc\u0627\u0628\u062f. Drone CI \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u0645\u062a\u0646\u200c\u0628\u0627\u0632 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc CI\/CD \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0632\u0628\u0627\u0646 Go \u062a\u0648\u0633\u0639\u0647 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0648 \u0628\u0647\u200c\u0635\u0648\u0631\u062a Container-Native [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":6641,"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":[131],"tags":[1718,1720,1716,1723,1724,1597,1729,1725,1719,1717,1727,1722,1721,1728,1726],"class_list":["post-6640","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-131","tag-build-","tag-ci-cd--docker","tag-devops--drone","tag-drone--docker","tag-github-actions-","tag--docker","tag--drone-ci","tag-1725","tag-1719","tag-1717","tag--pipeline","tag--drone-yml","tag--drone","tag--drone--"],"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\/6640","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=6640"}],"version-history":[{"count":2,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6640\/revisions"}],"predecessor-version":[{"id":6643,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6640\/revisions\/6643"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/6641"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=6640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=6640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=6640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}