{"id":10244,"date":"2023-12-27T19:46:09","date_gmt":"2023-12-27T16:16:09","guid":{"rendered":"https:\/\/rasanegar.com\/blog\/%d8%b1%d9%88%d8%b4-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-mattermost-%d8%af%d8%b1-centos-7\/"},"modified":"2023-12-27T19:46:09","modified_gmt":"2023-12-27T16:16:09","slug":"%d8%b1%d9%88%d8%b4-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-mattermost-%d8%af%d8%b1-centos-7","status":"publish","type":"post","link":"https:\/\/rasanegaar.com\/blog\/%d8%b1%d9%88%d8%b4-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-mattermost-%d8%af%d8%b1-centos-7\/","title":{"rendered":"\u0631\u0648\u0634 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 Mattermost \u062f\u0631 CentOS 7"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0633\u0631\u0641\u0635\u0644\u0647\u0627\u06cc \u0645\u0637\u0644\u0628<\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/rasanegaar.com\/blog\/%d8%b1%d9%88%d8%b4-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-mattermost-%d8%af%d8%b1-centos-7\/#%d9%be%db%8c%d8%b4_%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7\" >\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/rasanegaar.com\/blog\/%d8%b1%d9%88%d8%b4-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-mattermost-%d8%af%d8%b1-centos-7\/#%d8%a7%db%8c%d8%ac%d8%a7%d8%af_%d9%be%d8%a7%db%8c%da%af%d8%a7%d9%87_%d8%af%d8%a7%d8%af%d9%87_mysql\" >\u0627\u06cc\u062c\u0627\u062f \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 MySQL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/rasanegaar.com\/blog\/%d8%b1%d9%88%d8%b4-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-mattermost-%d8%af%d8%b1-centos-7\/#%d8%a7%db%8c%d8%ac%d8%a7%d8%af_%da%a9%d8%a7%d8%b1%d8%a8%d8%b1_%d8%ac%d8%af%db%8c%d8%af_%d8%b3%db%8c%d8%b3%d8%aa%d9%85\" >\u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631 \u062c\u062f\u06cc\u062f \u0633\u06cc\u0633\u062a\u0645<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/rasanegaar.com\/blog\/%d8%b1%d9%88%d8%b4-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-mattermost-%d8%af%d8%b1-centos-7\/#%d8%b3%d8%b1%d9%88%d8%b1_mattermost_%d8%b1%d8%a7_%d9%86%d8%b5%d8%a8_%da%a9%d9%86%db%8c%d8%af\" >\u0633\u0631\u0648\u0631 Mattermost \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/rasanegaar.com\/blog\/%d8%b1%d9%88%d8%b4-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-mattermost-%d8%af%d8%b1-centos-7\/#%db%8c%da%a9_%d9%88%d8%a7%d8%ad%d8%af_%d8%b3%db%8c%d8%b3%d8%aa%d9%85%db%8c_%d8%a7%db%8c%d8%ac%d8%a7%d8%af_%da%a9%d9%86%db%8c%d8%af\" >\u06cc\u06a9 \u0648\u0627\u062d\u062f \u0633\u06cc\u0633\u062a\u0645\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/rasanegaar.com\/blog\/%d8%b1%d9%88%d8%b4-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-mattermost-%d8%af%d8%b1-centos-7\/#%d8%a8%d8%a7_nginx_%db%8c%da%a9_%d9%be%d8%b1%d9%88%da%a9%d8%b3%db%8c_%d9%85%d8%b9%da%a9%d9%88%d8%b3_%d8%b1%d8%a7%d9%87_%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c_%da%a9%d9%86%db%8c%d8%af\" >\u0628\u0627 Nginx \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/rasanegaar.com\/blog\/%d8%b1%d9%88%d8%b4-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-mattermost-%d8%af%d8%b1-centos-7\/#%d9%be%db%8c%da%a9%d8%b1%d8%a8%d9%86%d8%af%db%8c_mattermost\" >\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Mattermost<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/rasanegaar.com\/blog\/%d8%b1%d9%88%d8%b4-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-mattermost-%d8%af%d8%b1-centos-7\/#%d9%86%d8%aa%db%8c%d8%ac%d9%87\" >\u0646\u062a\u06cc\u062c\u0647<\/a><\/li><\/ul><\/nav><\/div>\n<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">\u0632\u0645\u0627\u0646 \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0645\u0637\u0627\u0644\u0639\u0647: <\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">\u062f\u0642\u06cc\u0642\u0647<\/span><\/span><p> <br \/>\n<br \/><\/p>\n<div class=\"markdown\">\n<p>Mattermost \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u067e\u06cc\u0627\u0645\u200c\u0631\u0633\u0627\u0646 \u0641\u0648\u0631\u06cc \u0645\u0646\u0628\u0639 \u0628\u0627\u0632\u060c \u06cc\u06a9 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 Slack \u0628\u0627 \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u062e\u0648\u062f \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u062f\u0631 Golang \u0648 React \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 MySQL \u06cc\u0627 PostgreSQL \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.  Mattermost \u062a\u0645\u0627\u0645 \u0627\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u062a\u06cc\u0645 \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u06a9\u0627\u0646 \u0642\u0631\u0627\u0631 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0627\u0632 \u062c\u0645\u0644\u0647 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u0641\u0627\u06cc\u0644\u060c \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u0641\u0631\u062f\u06cc \u0648 \u06af\u0631\u0648\u0647\u06cc\u060c \u0627\u06cc\u0645\u0648\u062c\u06cc \u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc\u060c \u062a\u0645\u0627\u0633 \u0647\u0627\u06cc \u0648\u06cc\u062f\u06cc\u0648\u06cc\u06cc \u0648 \u0645\u0648\u0627\u0631\u062f \u062f\u06cc\u06af\u0631 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.  \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0647 \u0634\u0645\u0627 \u0646\u0634\u0627\u0646 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 Mattermost \u0631\u0627 \u0628\u0631 \u0631\u0648\u06cc a \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f CentOS 7 \u0633\u0631\u0648\u0631 \u0648 Nginx \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 SSL \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 id=\"prerequisites\"><span class=\"ez-toc-section\" id=\"%d9%be%db%8c%d8%b4_%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7\"><\/span>\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627 <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0627\u062f\u0627\u0645\u0647 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f:<\/p>\n<ul>\n<li>\u0634\u0645\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0628\u0627 \u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a sudo \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u0627\u06cc\u062f.<\/li>\n<li>\u0634\u0645\u0627 \u06cc\u06a9 \u0646\u0627\u0645 \u062f\u0627\u0645\u0646\u0647 \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0622\u062f\u0631\u0633 IP \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0627\u0634\u0627\u0631\u0647 \u062f\u0627\u0631\u062f.  \u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f <code>rasanegar-test.com<\/code>.<\/li>\n<li>\u0634\u0645\u0627 Nginx \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f\u060c \u0627\u06af\u0631 \u0646\u0647\u060c \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0634\u0645\u0627 \u06cc\u06a9 \u06af\u0648\u0627\u0647\u06cc SSL \u0628\u0631\u0627\u06cc \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f.  \u0628\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u06af\u0648\u0627\u0647\u06cc\u0646\u0627\u0645\u0647 \u0631\u0627\u06cc\u06af\u0627\u0646 Let&#8217;s Encrypt SSL \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<h2 id=\"create-mysql-database\"><span class=\"ez-toc-section\" id=\"%d8%a7%db%8c%d8%ac%d8%a7%d8%af_%d9%be%d8%a7%db%8c%da%af%d8%a7%d9%87_%d8%af%d8%a7%d8%af%d9%87_mysql\"><\/span>\u0627\u06cc\u062c\u0627\u062f \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 MySQL <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0627 \u0627\u0632 MariaDB 10.3 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.  Mattermost \u0628\u0627 MariaDB \u0646\u0633\u062e\u0647 5.5 \u06a9\u0627\u0631 \u0646\u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/p>\n<p>\u0627\u06af\u0631 MariaDB 10.3 \u0631\u0627 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0646\u0635\u0628 \u0646\u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0648\u0631\u0648\u062f \u0628\u0647 \u067e\u0648\u0633\u062a\u0647 MySQL:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">mysql -u root -p<\/code><\/pre>\n<p>\u0648 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u06a9\u0627\u0631\u0628\u0631 \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Mattermost \u062e\u0648\u062f \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"mysql&gt;\">create database mattermost;<\/code><code class=\"terminal-line\" prefix=\"mysql&gt;\">GRANT ALL ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'P4ssvv0rD';<\/code><\/pre>\n<h2 id=\"create-new-system-user\"><span class=\"ez-toc-section\" id=\"%d8%a7%db%8c%d8%ac%d8%a7%d8%af_%da%a9%d8%a7%d8%b1%d8%a8%d8%b1_%d8%ac%d8%af%db%8c%d8%af_%d8%b3%db%8c%d8%b3%d8%aa%d9%85\"><\/span>\u0627\u06cc\u062c\u0627\u062f \u06a9\u0627\u0631\u0628\u0631 \u062c\u062f\u06cc\u062f \u0633\u06cc\u0633\u062a\u0645 <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u06af\u0631\u0648\u0647 \u062c\u062f\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 <code>mattermost<\/code>\u060c \u06a9\u0647 \u0646\u0635\u0628 Mattermost \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f\u060c \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">sudo useradd -U -M -d \/opt\/mattermost mattermost<\/code><\/pre>\n<h2 id=\"install-mattermost-server\"><span class=\"ez-toc-section\" id=\"%d8%b3%d8%b1%d9%88%d8%b1_mattermost_%d8%b1%d8%a7_%d9%86%d8%b5%d8%a8_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0633\u0631\u0648\u0631 Mattermost \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0632\u0645\u0627\u0646 \u0646\u06af\u0627\u0631\u0634 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647\u060c \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 Mattermost \u0646\u0633\u062e\u0647 5.4.0 \u0627\u0633\u062a.  \u0642\u0628\u0644 \u0627\u0632 \u0627\u062f\u0627\u0645\u0647 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u06cc \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f <a href=\"https:\/\/mattermost.com\/download\/\" target=\"_blank\" rel=\"noopener\" class=\"broken_link\">Mattermost \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f page<\/a><\/p>\n<p>\u0628\u0631\u0627\u06cc \u062f\u06cc\u062f\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0622\u06cc\u0627 \u0646\u0633\u062e\u0647 \u062c\u062f\u06cc\u062f\u062a\u0631\u06cc \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a \u06cc\u0627 \u062e\u06cc\u0631.<\/p>\n<p>\u0622\u0631\u0634\u06cc\u0648 \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 curl \u0632\u06cc\u0631 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">sudo curl -L https:\/\/releases.mattermost.com\/5.4.0\/mattermost-5.4.0-linux-amd64.tar.gz -o \/tmp\/mattermost.tar.gz<\/code><\/pre>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u062f\u0627\u0646\u0644\u0648\u062f\u060c \u0622\u0631\u0634\u06cc\u0648 \u0631\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0647 \u0622\u0646 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u062f <code>opt<\/code> \u0641\u0647\u0631\u0633\u062a \u0631\u0627\u0647\u0646\u0645\u0627:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">sudo tar zxf \/tmp\/mattermost.tar.gz -C \/opt<\/code><\/pre>\n<p>\u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0641\u0627\u06cc\u0644 \u0647\u0627 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">sudo mkdir \/opt\/mattermost\/data<\/code><\/pre>\n<p>\u062a\u063a\u06cc\u06cc\u0631 \u0645\u0627\u0644\u06a9\u06cc\u062a \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0647 <code>mattermost<\/code> \u06a9\u0627\u0631\u0628\u0631:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">sudo chown -R mattermost: \/opt\/mattermost<\/code><\/pre>\n<p>\u0628\u0627\u0632 \u06a9\u0646 <code>config.json<\/code> \u0641\u0627\u06cc\u0644 \u0628\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u0645\u062a\u0646 \u0645\u0648\u0631\u062f \u0639\u0644\u0627\u0642\u0647 \u0634\u0645\u0627:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">sudo nano \/opt\/mattermost\/config\/config.json<\/code><\/pre>\n<p>\u062f\u0631\u0627\u06cc\u0648\u0631 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0631\u0627 \u0631\u0648\u06cc <code>mysql<\/code>\u060c \u0646\u0627\u0645 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u06a9\u0627\u0631\u0628\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"code-label\">\/opt\/mattermost\/config\/config.json<\/div>\n<div class=\"highlight\">\n<pre tabindex=\"0\" class=\"chroma\"><code class=\"language-json\" data-lang=\"json\"><span class=\"line\"><span class=\"cl\"><span class=\"err\">...<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s2\">\"SqlSettings\"<\/span><span class=\"err\">:<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line hl\"><span class=\"cl\">    <span class=\"nt\">\"DriverName\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"mysql\"<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line hl\"><span class=\"cl\">    <span class=\"nt\">\"DataSource\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"mattermost:P4ssvv0rD@tcp(localhost:3306)\/mattermost?charset=utf8mb4,utf8&amp;readTimeout=30s&amp;writeTimeout=30s\"<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"nt\">\"DataSourceReplicas\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[],<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">...<\/span><\/span><\/span><\/code><\/pre>\n<\/div>\n<p>\u0628\u0647 \u0645\u0646\u0638\u0648\u0631 \u062a\u0633\u062a \u0646\u0635\u0628 \u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u06a9\u0627\u0631\u06a9\u0631\u062f \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0648\u0627\u062d\u062f systemd \u0648 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 \u0628\u0627 Nginx\u060c \u0633\u0631\u0648\u0631 Mattermost \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u062a\u063a\u06cc\u06cc\u0631 \u0628\u0647 <code>\/opt\/mattermost<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0648 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u0648\u0631:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">cd \/opt\/mattermost<\/code><code class=\"terminal-line\" prefix=\"$\">sudo -u mattermost bin\/mattermost<\/code><\/pre>\n<p>\u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u06cc\u062f \u0646\u0634\u0627\u0646 \u062f\u0647\u062f \u06a9\u0647 \u0633\u0631\u0648\u0631 Mattermost \u062f\u0631 \u062d\u0627\u0644 \u06af\u0648\u0634 \u062f\u0627\u062f\u0646 \u0628\u0647 \u067e\u0648\u0631\u062a \u0627\u0633\u062a<br \/>\n<code>8065<\/code> :<\/p>\n<pre tabindex=\"0\"><code class=\"language-output\" data-lang=\"output\">{\"level\":\"info\",\"ts\":1540921243.6797202,\"caller\":\"app\/plugin.go:100\",\"msg\":\"Starting up plugins\"}\n{\"level\":\"info\",\"ts\":1540921244.3483207,\"caller\":\"app\/server.go:88\",\"msg\":\"Starting Server...\"}\n{\"level\":\"info\",\"ts\":1540921244.3488805,\"caller\":\"app\/server.go:148\",\"msg\":\"Server is listening on [::]:8065\"}\n{\"level\":\"info\",\"ts\":1540921244.3620636,\"caller\":\"app\/web_hub.go:75\",\"msg\":\"Starting 2 websocket hubs\"}\n{\"level\":\"info\",\"ts\":1540921244.451155,\"caller\":\"jobs\/workers.go:63\",\"msg\":\"Starting workers\"}\n{\"level\":\"info\",\"ts\":1540921244.456804,\"caller\":\"jobs\/schedulers.go:68\",\"msg\":\"Starting schedulers.\"}\n<\/code><\/pre>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u0631 Mattermost \u0631\u0627 \u0628\u0627 \u0622\u0646 \u0645\u062a\u0648\u0642\u0641 \u06a9\u0646\u06cc\u062f <code>CTRL+C<\/code> \u0648 \u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc \u0631\u0627 \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f.<\/p>\n<h2 id=\"create-a-systemd-unit\"><span class=\"ez-toc-section\" id=\"%db%8c%da%a9_%d9%88%d8%a7%d8%ad%d8%af_%d8%b3%db%8c%d8%b3%d8%aa%d9%85%db%8c_%d8%a7%db%8c%d8%ac%d8%a7%d8%af_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u06cc\u06a9 \u0648\u0627\u062d\u062f \u0633\u06cc\u0633\u062a\u0645\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0646\u0645\u0648\u0646\u0647 Mattermost \u062e\u0648\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633\u060c a \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>mattermost.service<\/code> \u0641\u0627\u06cc\u0644 \u0648\u0627\u062d\u062f \u062f\u0631 <code>\/etc\/systemd\/system\/<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0627 \u0645\u062d\u062a\u0648\u0627\u06cc \u0632\u06cc\u0631:<\/p>\n<div class=\"code-label\">\/etc\/systemd\/system\/mattermost.service<\/div>\n<div class=\"highlight\">\n<pre tabindex=\"0\" class=\"chroma\"><code class=\"language-ini\" data-lang=\"ini\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">[Unit]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">Description<\/span><span class=\"o\">=<\/span><span class=\"s\">Mattermost<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">After<\/span><span class=\"o\">=<\/span><span class=\"s\">network.target nss-lookup.target mariadb.service<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">[Service]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">Type<\/span><span class=\"o\">=<\/span><span class=\"s\">notify<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">WorkingDirectory<\/span><span class=\"o\">=<\/span><span class=\"s\">\/opt\/mattermost<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">User<\/span><span class=\"o\">=<\/span><span class=\"s\">mattermost<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">SyslogIdentifier<\/span><span class=\"o\">=<\/span><span class=\"s\">mattermost<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">ExecStart<\/span><span class=\"o\">=<\/span><span class=\"s\">\/opt\/mattermost\/bin\/mattermost<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">TimeoutStartSec<\/span><span class=\"o\">=<\/span><span class=\"s\">3600<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">LimitNOFILE<\/span><span class=\"o\">=<\/span><span class=\"s\">49152<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">[Install]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"na\">WantedBy<\/span><span class=\"o\">=<\/span><span class=\"s\">multi-user.target<\/span>\n<\/span><\/span><\/code><\/pre>\n<\/div>\n<p>\u0628\u0647 systemd \u0627\u0637\u0644\u0627\u0639 \u062f\u0647\u06cc\u062f \u06a9\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0648\u0627\u062d\u062f \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645 \u0648 \u0633\u0631\u0648\u06cc\u0633 Mattermost \u0631\u0627 \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">sudo systemctl daemon-reload<\/code><code class=\"terminal-line\" prefix=\"$\">sudo systemctl start mattermost<\/code><\/pre>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">sudo systemctl status mattermost<\/code><\/pre>\n<pre tabindex=\"0\"><code class=\"language-output\" data-lang=\"output\">\u25cf mattermost.service - Mattermost\n   Loaded: loaded (\/etc\/systemd\/system\/mattermost.service; disabled; vendor preset: disabled)\n   Active: active (running) since Tue 2018-10-30 17:44:46 UTC; 3s ago\n Main PID: 25959 (mattermost)\n   CGroup: \/system.slice\/mattermost.service\n           \u2514\u250025959 \/opt\/mattermost\/bin\/mattermost\n<\/code><\/pre>\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0633\u0631\u0648\u06cc\u0633 Mattermost \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0628\u0648\u062a \u0634\u0631\u0648\u0639 \u0634\u0648\u062f:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">sudo systemctl enable mattermost<\/code><\/pre>\n<h2 id=\"set-up-a-reverse-proxy-with-nginx\"><span class=\"ez-toc-section\" id=\"%d8%a8%d8%a7_nginx_%db%8c%da%a9_%d9%be%d8%b1%d9%88%da%a9%d8%b3%db%8c_%d9%85%d8%b9%da%a9%d9%88%d8%b3_%d8%b1%d8%a7%d9%87_%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c_%da%a9%d9%86%db%8c%d8%af\"><\/span>\u0628\u0627 Nginx \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06af\u0631 \u0631\u0648\u0634 \u0646\u0635\u0628 Nginx \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u06cc\u062f CentOS 7 \u0648 \u0631\u0648\u0634 \u0627\u06cc\u0645\u0646 \u0633\u0627\u0632\u06cc Nginx \u0628\u0627 Let&#8217;s Encrypt on CentOS 7 \u0631\u0627\u0647\u0646\u0645\u0627 \u06a9\u0647 \u0628\u0627\u06cc\u062f Nginx \u0631\u0627 \u0628\u0627 \u06af\u0648\u0627\u0647\u06cc SSL \u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f.  \u0627\u06a9\u0646\u0648\u0646 \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u0633\u0631\u0648\u0631 \u062c\u062f\u06cc\u062f \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Mattermost \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"code-label\">\/etc\/nginx\/conf.d\/rasanegar-test.com.conf<\/div>\n<div class=\"highlight\">\n<pre tabindex=\"0\" class=\"chroma\"><code class=\"language-nginx\" data-lang=\"nginx\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">proxy_cache_path<\/span> <span class=\"s\">\/var\/cache\/nginx<\/span> <span class=\"s\">levels=1:2<\/span> <span class=\"s\">keys_zone=mattermost_cache:10m<\/span> <span class=\"s\">max_size=3g<\/span> <span class=\"s\">inactive=120m<\/span> <span class=\"s\">use_temp_path=off<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">upstream<\/span> <span class=\"s\">mattermost_backend<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"kn\">server<\/span> <span class=\"n\">127.0.0.1<\/span><span class=\"p\">:<\/span><span class=\"mi\">8065<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">server<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">listen<\/span> <span class=\"mi\">80<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">server_name<\/span> <span class=\"s\">rasanegar-test.com<\/span> <span class=\"s\">www.rasanegar-test.com<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">include<\/span> <span class=\"s\">snippets\/letsencrypt.conf<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">return<\/span> <span class=\"mi\">301<\/span> <span class=\"s\">https:\/\/rasanegar-test.com<\/span><span class=\"nv\">$request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">server<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">listen<\/span> <span class=\"mi\">443<\/span> <span class=\"s\">ssl<\/span> <span class=\"s\">http2<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">server_name<\/span> <span class=\"s\">www.rasanegar-test.com<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">ssl_certificate<\/span> <span class=\"s\">\/etc\/letsencrypt\/live\/rasanegar-test.com\/fullchain.pem<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">ssl_certificate_key<\/span> <span class=\"s\">\/etc\/letsencrypt\/live\/rasanegar-test.com\/privkey.pem<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">ssl_trusted_certificate<\/span> <span class=\"s\">\/etc\/letsencrypt\/live\/rasanegar-test.com\/chain.pem<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">include<\/span> <span class=\"s\">snippets\/ssl.conf<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">return<\/span> <span class=\"mi\">301<\/span> <span class=\"s\">https:\/\/rasanegar-test.com<\/span><span class=\"nv\">$request_uri<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">server<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">listen<\/span> <span class=\"mi\">443<\/span> <span class=\"s\">ssl<\/span> <span class=\"s\">http2<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">server_name<\/span> <span class=\"s\">rasanegar-test.com<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">ssl_certificate<\/span> <span class=\"s\">\/etc\/letsencrypt\/live\/rasanegar-test.com\/fullchain.pem<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">ssl_certificate_key<\/span> <span class=\"s\">\/etc\/letsencrypt\/live\/rasanegar-test.com\/privkey.pem<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">ssl_trusted_certificate<\/span> <span class=\"s\">\/etc\/letsencrypt\/live\/rasanegar-test.com\/chain.pem<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">include<\/span> <span class=\"s\">snippets\/ssl.conf<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">access_log<\/span> <span class=\"s\">\/var\/log\/nginx\/rasanegar-test.com-access.log<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">    <span class=\"kn\">error_log<\/span> <span class=\"s\">\/var\/log\/nginx\/rasanegar-test.com-error.log<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"kn\">location<\/span> <span class=\"p\">~<\/span> <span class=\"sr\">\/api\/v[0-9]+\/(users\/)?websocket$<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">Upgrade<\/span> <span class=\"nv\">$http_upgrade<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">Connection<\/span> <span class=\"s\">\"upgrade\"<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">client_max_body_size<\/span> <span class=\"s\">50M<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">Host<\/span> <span class=\"nv\">$http_host<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">X-Real-IP<\/span> <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">X-Forwarded-For<\/span> <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">X-Forwarded-Proto<\/span> <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">X-Frame-Options<\/span> <span class=\"s\">SAMEORIGIN<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_buffers<\/span> <span class=\"mi\">256<\/span> <span class=\"mi\">16k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_buffer_size<\/span> <span class=\"mi\">16k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_read_timeout<\/span> <span class=\"s\">600s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_pass<\/span> <span class=\"s\">http:\/\/mattermost_backend<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"kn\">location<\/span> <span class=\"s\">\/<\/span> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_http_version<\/span> <span class=\"mi\">1<\/span><span class=\"s\">.1<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">client_max_body_size<\/span> <span class=\"s\">50M<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">Connection<\/span> <span class=\"s\">\"\"<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">Host<\/span> <span class=\"nv\">$http_host<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">X-Real-IP<\/span> <span class=\"nv\">$remote_addr<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">X-Forwarded-For<\/span> <span class=\"nv\">$proxy_add_x_forwarded_for<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">X-Forwarded-Proto<\/span> <span class=\"nv\">$scheme<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_set_header<\/span> <span class=\"s\">X-Frame-Options<\/span> <span class=\"s\">SAMEORIGIN<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_buffers<\/span> <span class=\"mi\">256<\/span> <span class=\"mi\">16k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_buffer_size<\/span> <span class=\"mi\">16k<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_read_timeout<\/span> <span class=\"s\">600s<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_cache<\/span> <span class=\"s\">mattermost_cache<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_cache_revalidate<\/span> <span class=\"no\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_cache_min_uses<\/span> <span class=\"mi\">2<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_cache_use_stale<\/span> <span class=\"s\">timeout<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_cache_lock<\/span> <span class=\"no\">on<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">       <span class=\"kn\">proxy_pass<\/span> <span class=\"s\">http:\/\/mattermost_backend<\/span><span class=\"p\">;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">   <span class=\"p\">}<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span>\n<\/span><\/span><\/code><\/pre>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0639\u0645\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u060c \u0633\u0631\u0648\u06cc\u0633 Nginx \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">sudo systemctl reload nginx<\/code><\/pre>\n<h2 id=\"configuring-mattermost\"><span class=\"ez-toc-section\" id=\"%d9%be%db%8c%da%a9%d8%b1%d8%a8%d9%86%d8%af%db%8c_mattermost\"><\/span>\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Mattermost <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0631\u0648\u0631\u06af\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f\u060c \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f \u0631\u0627 \u062a\u0627\u06cc\u067e \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0648\u0644\u06cc\u0646 \u062d\u0633\u0627\u0628 \u062e\u0648\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<figure class=\"relative\">\n<div class=\"relative block w-full mx-auto my-0\">\n<div class=\"bg-gray-100 absolute inset-0 w-full h-full m-auto overflow-hidden\"><img decoding=\"async\" class=\"absolute inset-0 w-full h-full m-auto\" loading=\"lazy\" src=\"https:\/\/rasanegar.com\/blog\/wp-content\/uploads\/2023\/12\/1703693767_623_\u0646\u062d\u0648\u0647-\u0627\u0633\u062a\u0642\u0631\u0627\u0631-Mattermost-\u062f\u0631-CentOS-7.jpg\" alt=\"\u0627\u0648\u0644\u06cc\u0646 \u062d\u0633\u0627\u0628 Mattermost \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f\" title=\"\"><\/div>\n<\/div>\n<\/figure>\n<p>\u0627\u0648\u0644\u06cc\u0646 \u06a9\u0627\u0631\u0628\u0631 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u062f\u0627\u0631\u0627\u06cc \u0627\u0645\u062a\u06cc\u0627\u0632\u0627\u062a \u0645\u062f\u06cc\u0631 \u0627\u0633\u062a.<\/p>\n<figure class=\"relative\">\n<div class=\"relative block w-full mx-auto my-0\">\n<div class=\"bg-gray-100 absolute inset-0 w-full h-full m-auto overflow-hidden\"><img decoding=\"async\" class=\"absolute inset-0 w-full h-full m-auto\" loading=\"lazy\" src=\"https:\/\/rasanegar.com\/blog\/wp-content\/uploads\/2023\/12\/1703693767_460_\u0646\u062d\u0648\u0647-\u0627\u0633\u062a\u0642\u0631\u0627\u0631-Mattermost-\u062f\u0631-CentOS-7.jpg\" alt=\"\u0645\u0647\u0645 \u062a\u0631\u06cc\u0646 \u062d\u0633\u0627\u0628\" title=\"\"><\/div>\n<\/div>\n<\/figure>\n<p>\u0631\u0627 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f <code>Create a new team<\/code> \u067e\u06cc\u0648\u0646\u062f \u062f\u0647\u06cc\u062f\u060c \u0627\u0648\u0644\u06cc\u0646 \u062a\u06cc\u0645 \u062e\u0648\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 URL \u062a\u06cc\u0645 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f:<\/p>\n<figure class=\"relative\">\n<div class=\"relative block w-full mx-auto my-0\">\n<div class=\"bg-gray-100 absolute inset-0 w-full h-full m-auto overflow-hidden\"><img decoding=\"async\" class=\"absolute inset-0 w-full h-full m-auto\" loading=\"lazy\" src=\"https:\/\/rasanegar.com\/blog\/wp-content\/uploads\/2023\/12\/1703693768_361_\u0646\u062d\u0648\u0647-\u0627\u0633\u062a\u0642\u0631\u0627\u0631-Mattermost-\u062f\u0631-CentOS-7.jpg\" alt=\"\u062a\u06cc\u0645 Mattermost \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f\" title=\"\"><\/div>\n<\/div>\n<\/figure>\n<figure class=\"relative\">\n<div class=\"relative block w-full mx-auto my-0\">\n<div class=\"bg-gray-100 absolute inset-0 w-full h-full m-auto overflow-hidden\"><img decoding=\"async\" class=\"absolute inset-0 w-full h-full m-auto\" loading=\"lazy\" src=\"https:\/\/rasanegar.com\/blog\/wp-content\/uploads\/2023\/12\/1703693768_315_\u0646\u062d\u0648\u0647-\u0627\u0633\u062a\u0642\u0631\u0627\u0631-Mattermost-\u062f\u0631-CentOS-7.jpg\" alt=\"\u0622\u062f\u0631\u0633 \u062a\u06cc\u0645 Mattermost \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f\" title=\"\"><\/div>\n<\/div>\n<\/figure>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0627\u0648\u0644\u06cc\u0646 \u062d\u0633\u0627\u0628 \u0633\u0631\u067e\u0631\u0633\u062a \u0648 \u0627\u0648\u0644\u06cc\u0646 \u062a\u06cc\u0645\u060c \u0628\u0647 \u062f\u0627\u0634\u0628\u0648\u0631\u062f Mattermost \u0647\u062f\u0627\u06cc\u062a \u0645\u06cc \u0634\u0648\u06cc\u062f \u0648 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0633\u0631\u067e\u0631\u0633\u062a \u0648\u0627\u0631\u062f \u0633\u06cc\u0633\u062a\u0645 \u0645\u06cc \u0634\u0648\u06cc\u062f.  \u06a9\u0646\u0633\u0648\u0644 \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0631\u0648\u06cc \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u062f\u0631 \u0628\u0627\u0644\u0627\u06cc \u067e\u0646\u0644 \u067e\u06cc\u0645\u0627\u06cc\u0634 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0631 \u0645\u0646\u0648\u06cc \u062c\u062f\u06cc\u062f\u06cc \u06a9\u0647 \u0628\u0627\u0632 \u0645\u06cc \u0634\u0648\u062f\u060c \u0631\u0648\u06cc <code>System Console<\/code> \u0627\u0631\u062a\u0628\u0627\u0637 \u062f\u0627\u062f\u0646:<\/p>\n<figure class=\"relative\">\n<div class=\"relative block w-full mx-auto my-0\">\n<div class=\"bg-gray-100 absolute inset-0 w-full h-full m-auto overflow-hidden\"><img decoding=\"async\" class=\"absolute inset-0 w-full h-full m-auto\" loading=\"lazy\" src=\"https:\/\/rasanegar.com\/blog\/wp-content\/uploads\/2023\/12\/1703693769_357_\u0646\u062d\u0648\u0647-\u0627\u0633\u062a\u0642\u0631\u0627\u0631-Mattermost-\u062f\u0631-CentOS-7.jpg\" alt=\"\u062f\u0627\u0634\u0628\u0648\u0631\u062f Mattermost\" title=\"\"><\/div>\n<\/div>\n<\/figure>\n<p>URL \u0633\u0627\u06cc\u062a \u0631\u0627 \u0628\u0627 \u0631\u0641\u062a\u0646 \u0628\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0639\u0645\u0648\u0645\u06cc \u2192 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n<figure class=\"relative\">\n<div class=\"relative block w-full mx-auto my-0\">\n<div class=\"bg-gray-100 absolute inset-0 w-full h-full m-auto overflow-hidden\"><img decoding=\"async\" class=\"absolute inset-0 w-full h-full m-auto\" loading=\"lazy\" src=\"https:\/\/rasanegar.com\/blog\/wp-content\/uploads\/2023\/12\/1703693769_646_\u0646\u062d\u0648\u0647-\u0627\u0633\u062a\u0642\u0631\u0627\u0631-Mattermost-\u062f\u0631-CentOS-7.jpg\" alt=\"Mattermost \u062a\u0646\u0638\u06cc\u0645\u0627\u062a\" title=\"\"><\/div>\n<\/div>\n<\/figure>\n<p>\u0627\u0639\u0644\u0627\u0646\u200c\u0647\u0627\u06cc \u0627\u06cc\u0645\u06cc\u0644 \u0631\u0627 \u0628\u0627 \u0631\u0641\u062a\u0646 \u0628\u0647 \u0627\u0639\u0644\u0627\u0646\u200c\u0647\u0627 \u2192 \u0627\u06cc\u0645\u06cc\u0644 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f<\/p>\n<figure class=\"relative\">\n<div class=\"relative block w-full mx-auto my-0\">\n<div class=\"bg-gray-100 absolute inset-0 w-full h-full m-auto overflow-hidden\"><img decoding=\"async\" class=\"absolute inset-0 w-full h-full m-auto\" loading=\"lazy\" src=\"https:\/\/rasanegar.com\/blog\/wp-content\/uploads\/2023\/12\/1703693769_817_\u0646\u062d\u0648\u0647-\u0627\u0633\u062a\u0642\u0631\u0627\u0631-Mattermost-\u062f\u0631-CentOS-7.jpg\" alt=\"Mattermost Notifications\" title=\"\"><\/div>\n<\/div>\n<\/figure>\n<p>\u0648 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc SMTP \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f.  \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0647\u0631 \u0633\u0631\u0648\u06cc\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u062a\u0631\u0627\u06a9\u0646\u0634\u06cc \u0645\u062d\u0628\u0648\u0628\u06cc \u0645\u0627\u0646\u0646\u062f SendinBlue\u060c SendGrid\u060c Amazon SES\u060c Mandrill\u060c Mailgun\u060c Mailjet \u0648 Postmark \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u0631 \u0627\u06cc\u0645\u06cc\u0644 \u062e\u0648\u062f \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0628\u0631\u0627\u06cc \u0627\u0639\u0645\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0628\u0627\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633 Mattermost \u0631\u0627 \u0645\u062c\u062f\u062f\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645:<\/p>\n<pre class=\"terminal\"><code class=\"terminal-line\" prefix=\"$\">sudo systemctl restart mattermost<\/code><\/pre>\n<h2 id=\"conclusion\"><span class=\"ez-toc-section\" id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\"><\/span>\u0646\u062a\u06cc\u062c\u0647 <span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0634\u0645\u0627 \u0628\u0627 \u0645\u0648\u0641\u0642\u06cc\u062a Mattermost \u0631\u0627 \u0628\u0631 \u0631\u0648\u06cc \u062e\u0648\u062f \u0646\u0635\u0628 \u06a9\u0631\u062f\u06cc\u062f CentOS 7 \u0633\u0631\u0648\u0631 \u0648 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc Nginx \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633.  \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 Mattermost \u0628\u0631\u0627\u06cc \u0647\u0645\u06a9\u0627\u0631\u06cc \u0628\u0627 \u062a\u06cc\u0645 \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u062f\u0631 \u0646\u0635\u0628 \u0628\u0627 \u0645\u0634\u06a9\u0644\u06cc \u0645\u0648\u0627\u062c\u0647 \u0634\u062f\u06cc\u062f\u060c \u0646\u0638\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f.<\/p>\n<div class=\"flex flex-wrap my-8\">\u0645\u0647\u0645 \u062a\u0631\u06cc\u0646 nodejs centos<\/div>\n<\/div>\n\n<div>\u0628\u0631\u0627\u06cc \u0646\u06af\u0627\u0631\u0634 \u0628\u062e\u0634\u0647\u0627\u06cc\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0645\u062a\u0646 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0632 \u062a\u0631\u062c\u0645\u0647 \u0645\u0627\u0634\u06cc\u0646\u06cc \u06cc\u0627 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc GPT \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u0628\u0627\u0634\u062f <br \/>\n\u0644\u0637\u0641\u0627 \u062f\u0631 \u0635\u0648\u0631\u062a \u0648\u062c\u0648\u062f \u0645\u0634\u06a9\u0644 \u062f\u0631 \u0645\u062a\u0646 \u06cc\u0627 \u0645\u0641\u0647\u0648\u0645 \u0646\u0628\u0648\u062f\u0646 \u062a\u0648\u0636\u06cc\u062d\u0627\u062a\u060c \u0627\u0632 \u0637\u0631\u06cc\u0642 \u062f\u06a9\u0645\u0647 \u06af\u0632\u0627\u0631\u0634 \u0646\u0648\u0634\u062a\u0627\u0631 \u06cc\u0627 \u062f\u0631\u062c \u0646\u0638\u0631 \u0631\u0648\u06cc \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628 \u0645\u0627 \u0631\u0627 \u0627\u0632 \u062c\u0632\u06cc\u06cc\u0627\u062a \u0645\u0634\u06a9\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u0634\u062f\u0647 \u0645\u0637\u0644\u0639 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0647 \u0622\u0646 \u0631\u0633\u06cc\u062f\u06af\u06cc \u06a9\u0646\u06cc\u0645\n<\/div>\n<p>\u0632\u0645\u0627\u0646 \u0627\u0646\u062a\u0634\u0627\u0631: 1402-12-27 19:46:02<br \/>\n<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-center kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;center&quot;,&quot;id&quot;:&quot;10244&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;5&quot;,&quot;greet&quot;:&quot;\u0627\u0645\u062a\u06cc\u0627\u0632 \u0634\u0645\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628&quot;,&quot;legend&quot;:&quot;0\\\/5 (0 \u0631\u0627\u06cc)&quot;,&quot;size&quot;:&quot;30&quot;,&quot;title&quot;:&quot;\u0631\u0648\u0634 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 Mattermost \u062f\u0631 CentOS 7&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ({count} \u0631\u0627\u06cc)&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 24px;\">\n            <span class=\"kksr-muted\">\u0627\u0645\u062a\u06cc\u0627\u0632 \u0634\u0645\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628<\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">\u0632\u0645\u0627\u0646 \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0645\u0637\u0627\u0644\u0639\u0647: <\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">\u062f\u0642\u06cc\u0642\u0647<\/span><\/span>Mattermost \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u067e\u06cc\u0627\u0645\u200c\u0631\u0633\u0627\u0646 \u0641\u0648\u0631\u06cc \u0645\u0646\u0628\u0639 \u0628\u0627\u0632\u060c \u06cc\u06a9 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 Slack \u0628\u0627 \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u062e\u0648\u062f \u0627\u0633\u062a. \u0627\u06cc\u0646 \u062f\u0631 Golang \u0648 React \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 MySQL \u06cc\u0627 PostgreSQL \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f. Mattermost \u062a\u0645\u0627\u0645 \u0627\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u062a\u06cc\u0645 \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u06a9\u0627\u0646 \u0642\u0631\u0627\u0631 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0627\u0632 \u062c\u0645\u0644\u0647 \u0628\u0647 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":10245,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[202,95],"tags":[1250,2534,1291,2530,171,2539,2678],"class_list":{"0":"post-10244","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-os","8":"category-linux","9":"tag-nodejs","10":"tag-vps-","11":"tag--linux","13":"tag-171","14":"tag-2539","15":"tag-2678"},"acf":[],"_links":{"self":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts\/10244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/comments?post=10244"}],"version-history":[{"count":0,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts\/10244\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/media\/10245"}],"wp:attachment":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/media?parent=10244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/categories?post=10244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/tags?post=10244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}