{"id":39997,"date":"2026-11-11T18:00:00","date_gmt":"2026-11-11T14:30:00","guid":{"rendered":"https:\/\/webdade.com\/blog\/?p=39997"},"modified":"2026-11-08T18:07:57","modified_gmt":"2026-11-08T14:37:57","slug":"mattermost-ubuntu-install","status":"publish","type":"post","link":"https:\/\/webdade.com\/blog\/mattermost-ubuntu-install","title":{"rendered":"\u0646\u0635\u0628 Mattermost \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648\u061b \u067e\u06cc\u0627\u0645\u200c\u0631\u0633\u0627\u0646 \u062a\u06cc\u0645\u06cc \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0634\u0631\u06a9\u062a"},"content":{"rendered":"<style>.wd-h2{font-size:30px;line-height:1.4;font-weight:700;color:var(--wp--preset--color--palette-color-2,var(--theme-palette-color-2,#00509d));margin:36px 0 22px!important;padding-bottom:12px;position:relative}.wd-h2::after{content:'';position:absolute;right:0;bottom:0;width:60px;height:3px;border-radius:3px;background:var(--wp--preset--color--palette-color-1,var(--theme-palette-color-1,#106abf))}.wd-h3{font-size:22px;line-height:1.4;font-weight:700;color:var(--wp--preset--color--palette-color-1,var(--theme-palette-color-1,#106abf));margin:26px 0 10px!important}p.wd-p{font-size:17px;line-height:2;margin:0 0 16px!important;color:var(--theme-text-color)}.wd-box{margin:10px 0!important;padding:20px 22px!important;border-right:5px solid var(--wp--preset--color--palette-color-1,var(--theme-palette-color-1,#106abf));border-radius:12px;background-color:#106abf1f;box-sizing:border-box}.wd-box.wd-warn{border-right-color:#b9770e;background-color:#c87f0026}.wd-box>*{margin-top:0!important;margin-bottom:0!important}p.wd-boxt{font-size:17px;line-height:1.6;font-weight:700;color:var(--wp--preset--color--palette-color-2,var(--theme-palette-color-2,#00509d));margin:0 0 4px!important}.wd-warn p.wd-boxt{color:#b9770e}p.wd-boxp{font-size:15px;line-height:1.9;margin:0!important;color:var(--theme-text-color)}p.wd-boxp a{font-weight:600}.wd-btns{justify-content:center;margin:14px 0 4px!important}.wd-btn .wp-block-button__link{background-color:var(--wp--preset--color--palette-color-1,var(--theme-palette-color-1,#106abf));color:#fff;border-radius:999px;padding:14px 38px;font-weight:700;font-size:16px;line-height:1.5;text-decoration:none}.wd-btn .wp-block-button__link:hover{background-color:var(--wp--preset--color--palette-color-2,var(--theme-palette-color-2,#00509d));color:#fff}.wd-img{margin:10px 0!important}.wd-img img{border-radius:12px;max-width:100%;height:auto}.wd-table{margin:10px 0!important}.wd-list{margin:0 0 16px!important;padding-right:22px}.wd-list li{font-size:17px;line-height:1.9;margin-bottom:6px}.wd-code{margin:10px 0!important;direction:ltr;text-align:left}.wd-p code,.wd-boxp code,.wd-list code,.wd-table code,.gs-accordion-item__text code{font-size:.82em;line-height:1.6;padding:1px 6px;border-radius:4px;background-color:#8881;direction:ltr;unicode-bidi:isolate;white-space:normal;word-break:break-word}.wd-table td,.wd-table th{font-size:15px;line-height:1.8}#gspb_container-id-gsbp-c89d001{display:none}@media (max-width:689.98px){.wd-h2{font-size:24px}.wd-h3{font-size:19px}p.wd-p,.wd-list li{font-size:16px;line-height:1.9}.wd-box{padding:16px!important}}.gspb_text-id-gsbp-c89d004,.gspb_text-id-gsbp-c89d006,.gspb_text-id-gsbp-c89d008,.gspb_text-id-gsbp-c89d010,.gspb_text-id-gsbp-c89d012,.gspb_text-id-gsbp-c89d014,.gspb_text-id-gsbp-c89d016{font-size:16px;line-height:1.9;color:var(--theme-text-color)}#gspb_text-id-gsbp-c89d004,#gspb_text-id-gsbp-c89d006,#gspb_text-id-gsbp-c89d008,#gspb_text-id-gsbp-c89d010,#gspb_text-id-gsbp-c89d012,#gspb_text-id-gsbp-c89d014,#gspb_text-id-gsbp-c89d016{margin:0}#gspb_accordion-id-gsbp-c89d002{margin-top:10px;margin-bottom:10px}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item{margin-bottom:10px}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__content{overflow:hidden}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item:not(.gsopen)>.gs-accordion-item__content{opacity:0;max-height:0}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item.gsopen>.gs-accordion-item__content{opacity:1;max-height:5000px}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__title>.gs-accordion-item__heading{outline:0;text-decoration:none;margin:0!important;padding:0!important;flex-grow:1;font-size:16px;line-height:1.6;font-weight:700}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__title{z-index:1;margin:0;cursor:pointer;transition:all .3s ease-in-out;position:relative;display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;text-align:right;flex-direction:row-reverse;padding:15px 20px;font-size:16px;border:1px solid var(--wp--preset--color--border,#00000012);background-color:var(--wp--preset--color--palette-color-5,var(--theme-palette-color-5,#e8ebed))}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__content{z-index:0;position:relative;max-height:0;will-change:max-height;transition:all .25s ease-out;background-color:var(--wp--preset--color--palette-color-7,var(--theme-palette-color-7,#fbfbfc));border:1px solid var(--wp--preset--color--palette-color-5,var(--theme-palette-color-5,#e8ebed));border-top-color:#00000000}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__content>.gs-accordion-item__text{padding:15px 20px}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__title span.iconfortoggle{margin-left:15px;display:inline-block;height:14px;width:14px;position:relative;flex:0 0 14px}#gspb_accordion-id-gsbp-c89d002 .iconfortoggle .gs-iconbefore,#gspb_accordion-id-gsbp-c89d002 .iconfortoggle .gs-iconafter{position:absolute;background-color:currentColor;transition:transform .25s ease-out}#gspb_accordion-id-gsbp-c89d002 .iconfortoggle .gs-iconbefore{top:0;left:50%;width:2px;margin-left:-1px;height:100%}#gspb_accordion-id-gsbp-c89d002 .iconfortoggle .gs-iconafter{top:50%;left:0;width:100%;height:2px;margin-top:-1px}#gspb_accordion-id-gsbp-c89d002 .gsopen .iconfortoggle .gs-iconbefore{transform:rotate(90deg)}#gspb_accordion-id-gsbp-c89d002 .gsopen .iconfortoggle .gs-iconafter{transform:rotate(180deg)}<\/style>\n<div class=\"wp-block-greenshift-blocks-container gspb_container gspb_container-gsbp-c89d001\" id=\"gspb_container-id-gsbp-c89d001\"><\/div>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u0635\u0641\u062d\u0647 \u0631\u0633\u0645\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0628\u0631\u0627\u06cc \u062d\u062f\u0648\u062f \u06f1\u06f0\u06f0\u06f0 \u06a9\u0627\u0631\u0628\u0631 \u0641\u0642\u0637 \u06f1 vCPU \u0648 \u06f2 \u06af\u06cc\u06af\u0627\u0628\u0627\u06cc\u062a \u0631\u0645 \u062e\u0648\u0627\u0633\u062a\u0647 \u0627\u0633\u062a. \u0628\u0627 \u0627\u06cc\u0646 \u0645\u0646\u0627\u0628\u0639\u060c \u0646\u0635\u0628 Mattermost \u06cc\u0639\u0646\u06cc \u0686\u0647\u0627\u0631 \u06a9\u0627\u0631 \u062c\u062f\u0627: PostgreSQL 15 \u0628\u0647 \u0628\u0627\u0644\u0627\u060c \u0628\u0633\u062a\u0647 \u0631\u0633\u0645\u06cc APT \u0628\u0627 config.json\u060c \u067e\u0648\u0634\u0647 \u067e\u06cc\u0648\u0633\u062a\u200c\u0647\u0627 \u0648 Nginx \u0628\u0627 \u0639\u0628\u0648\u0631 WebSocket. \u0647\u0631 \u062e\u0631\u0627\u0628\u06cc \u0646\u0634\u0627\u0646\u06cc \u06cc\u06a9\u06cc \u0627\u0632 \u0647\u0645\u06cc\u0646 \u0627\u062c\u0632\u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wd-p wp-block-paragraph\"><strong>\u0646\u0642\u0634\u0647 \u0627\u062c\u0632\u0627 \u0648 \u062c\u0627\u06cc \u0647\u0631 \u06a9\u062f\u0627\u0645 \u062f\u0631 \u0628\u06a9\u0627\u067e<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes wd-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u062c\u0632\u0621<\/th><th>\u0645\u0633\u06cc\u0631 \u06cc\u0627 \u0633\u0631\u0648\u06cc\u0633<\/th><th>\u0627\u06af\u0631 \u062e\u0631\u0627\u0628 \u0634\u0648\u062f<\/th><th>\u062f\u0631 \u0628\u06a9\u0627\u067e\u061f<\/th><\/tr><\/thead><tbody><tr><td>\u062f\u06cc\u062a\u0627\u0628\u06cc\u0633<\/td><td>\u0633\u0631\u0648\u06cc\u0633 postgresql<\/td><td>\u0633\u0631\u0648\u06cc\u0633 mattermost \u0628\u0627\u0644\u0627 \u0646\u0645\u06cc\u200c\u0645\u0627\u0646\u062f<\/td><td>\u0628\u0644\u0647\u060c pg_dump<\/td><\/tr><tr><td>\u0628\u0631\u0646\u0627\u0645\u0647<\/td><td>\u067e\u0648\u0634\u0647 <code>\/opt\/mattermost<\/code><\/td><td>\u062f\u0633\u062a\u0648\u0631 curl \u0631\u0648\u06cc 8065 \u062c\u0648\u0627\u0628 \u0646\u0645\u06cc\u200c\u062f\u0647\u062f<\/td><td>\u0628\u0644\u0647\u060c \u067e\u0648\u0634\u0647 config<\/td><\/tr><tr><td>\u0641\u0627\u06cc\u0644\u200c\u0647\u0627<\/td><td>\u067e\u0648\u0634\u0647 <code>\/opt\/mattermost\/data<\/code><\/td><td>\u067e\u06cc\u0627\u0645\u200c\u0647\u0627 \u0647\u0633\u062a\u0646\u062f\u060c \u067e\u06cc\u0648\u0633\u062a\u200c\u0647\u0627 \u0628\u0627\u0632 \u0646\u0645\u06cc\u200c\u0634\u0648\u0646\u062f<\/td><td>\u0628\u0644\u0647\u061b \u0631\u0648\u06cc S3 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0646\u0647<\/td><\/tr><tr><td>\u067e\u0631\u0648\u06a9\u0633\u06cc<\/td><td>\u0633\u0631\u0648\u06cc\u0633 Nginx<\/td><td>\u0635\u0641\u062d\u0647 \u0628\u0627\u0632 \u0627\u0633\u062a\u060c \u067e\u06cc\u0627\u0645 \u062a\u0627\u0632\u0647 \u0641\u0642\u0637 \u0628\u0627 \u0631\u0641\u0631\u0634<\/td><td>\u062e\u0627\u0631\u062c \u0627\u0632 \u0641\u0647\u0631\u0633\u062a \u0631\u0633\u0645\u06cc\u061b \u0641\u0627\u06cc\u0644\u0634 \u0631\u0627 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div class=\"wp-block-group wd-box wd-info is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wd-boxt wp-block-paragraph\">\ud83d\udca1 \u0635\u0641\u062d\u0647 \u0628\u0627\u0632 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u067e\u06cc\u0627\u0645 \u062a\u0627\u0632\u0647 \u0646\u0645\u06cc\u200c\u0631\u0633\u062f<\/p>\n\n\n\n<p class=\"wd-boxp wp-block-paragraph\">\u0635\u0641\u062d\u0647 \u0645\u0639\u0645\u0627\u0631\u06cc Mattermost \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u0628\u062f\u0648\u0646 WSS \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627 \u0641\u0642\u0637 \u0628\u0627 \u0631\u0641\u0631\u0634 \u0645\u06cc\u200c\u0622\u06cc\u0646\u062f. <br>\u2705 \u0627\u0648\u0644 \u0628\u0644\u0627\u06a9 websocket \u0641\u0627\u06cc\u0644 Nginx \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n<\/div>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u067e\u06cc\u0627\u0645 \u062e\u0637\u0627\u06cc \u0627\u0648\u0644 \u0631\u0627 \u0648\u0642\u062a\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f \u062e\u0648\u0627\u0646\u062f \u06a9\u0647 \u0628\u062f\u0627\u0646\u06cc\u062f \u0627\u0632 \u06a9\u062f\u0627\u0645 \u062c\u0632\u0621 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a. \u0647\u0645\u06cc\u0646 \u0633\u0627\u062f\u06af\u06cc\u060c Mattermost \u0631\u0627 \u062f\u0631 <a href=\"https:\/\/webdade.com\/blog\/self-hosted-team-messenger-comparison\">\u0645\u0642\u0627\u06cc\u0633\u0647 \u0633\u0647 \u067e\u06cc\u0627\u0645\u200c\u0631\u0633\u0627\u0646 \u0633\u0627\u0632\u0645\u0627\u0646\u06cc \u0645\u062a\u0646\u200c\u0628\u0627\u0632<\/a> \u06af\u0632\u06cc\u0646\u0647\u200c\u0627\u06cc \u0628\u0627 \u06a9\u0645\u062a\u0631\u06cc\u0646 \u062a\u0639\u062f\u0627\u062f \u0633\u0631\u0648\u06cc\u0633 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u061b \u062f\u0633\u062a\u0648\u0631\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0627\u0632 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0646\u0633\u062e\u0647 12 \u0627\u0633\u062a.<\/p>\n\n\n\n<div class=\"wp-block-group wd-box wd-toc is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wd-boxt wp-block-paragraph\">\ud83d\udccc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u0628\u0631\u0646\u0627\u0645\u0647\u060c \u067e\u0631\u0648\u06a9\u0633\u06cc\u060c \u0628\u06a9\u0627\u067e<\/p>\n\n\n\n<p class=\"wd-boxp wp-block-paragraph\">\u25c0\ufe0f <a href=\"#components\">\u0686\u0647\u0627\u0631 \u062c\u0632\u0621 \u0633\u0631\u0648\u0631<\/a><br>\u25c0\ufe0f <a href=\"#package-or-docker\">\u0628\u0633\u062a\u0647 \u0631\u0633\u0645\u06cc \u06cc\u0627 \u062f\u0627\u06a9\u0631<\/a><br>\u25c0\ufe0f <a href=\"#nginx-websocket\">\u067e\u0631\u0648\u06a9\u0633\u06cc\u060c SSL \u0648 WebSocket<\/a><br>\u25c0\ufe0f <a href=\"#backup-upgrade\">\u0628\u06a9\u0627\u067e \u0648 \u0627\u0631\u062a\u0642\u0627<\/a><\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-greenshift-blocks-image gspb_image gspb_image-id-gsbp-ac7299a\" id=\"gspb_image-id-gsbp-ac7299a\"><img decoding=\"async\" src=\"https:\/\/webdade.com\/blog\/wp-content\/uploads\/2026\/11\/Clay-Style-Messaging-Architecture-Diagram-1.webp\" data-src=\"\" alt=\"\u0646\u0635\u0628 mattermost\u060c \u0646\u0645\u0648\u062f\u0627\u0631 \u0686\u0647\u0627\u0631 \u062c\u0632\u0621 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0627\u0645\u200c\u0631\u0633\u0627\u0646 \u062a\u06cc\u0645\u06cc: PostgreSQL\u060c \u0633\u0631\u0648\u06cc\u0633 \u0627\u0635\u0644\u06cc\u060c \u067e\u0648\u0634\u0647 \u067e\u06cc\u0648\u0633\u062a\u200c\u0647\u0627 \u0648 Nginx \u0628\u0627 \u0627\u062a\u0635\u0627\u0644 WebSocket\" loading=\"lazy\" width=\"1774\" height=\"887\" title=\"\u0646\u0645\u0648\u062f\u0627\u0631 \u0686\u0647\u0627\u0631 \u062c\u0632\u0621 \u0633\u0631\u0648\u0631 \u067e\u06cc\u0627\u0645\u200c\u0631\u0633\u0627\u0646 \u062a\u06cc\u0645\u06cc: PostgreSQL\u060c \u0633\u0631\u0648\u06cc\u0633 \u0627\u0635\u0644\u06cc\u060c \u067e\u0648\u0634\u0647 \u067e\u06cc\u0648\u0633\u062a\u200c\u0647\u0627 \u0648 Nginx \u0628\u0627 \u0627\u062a\u0635\u0627\u0644 WebSocket\"\/><\/div>\n\n\n\n<h2 id=\"components\" class=\"wp-block-heading wd-h2\">\u0627\u062c\u0632\u0627\u06cc \u06cc\u06a9 \u0646\u0635\u0628 Mattermost\u061b \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u0633\u0631\u0648\u0631\u060c \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u067e\u0631\u0648\u06a9\u0633\u06cc<\/h2>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u0633\u0631\u0648\u0631 Mattermost \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0686\u0647\u0627\u0631 \u062c\u0632\u0621 \u062f\u0627\u0631\u062f. \u067e\u06cc\u0627\u0645\u200c\u0647\u0627 \u0648 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062f\u0631 PostgreSQL \u062b\u0628\u062a \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a\u0634 \u0631\u0627 \u0627\u0632 config.json \u0645\u06cc\u200c\u062e\u0648\u0627\u0646\u062f. \u067e\u06cc\u0648\u0633\u062a\u200c\u0647\u0627 \u0628\u0647 \u067e\u0648\u0634\u0647 data \u0645\u06cc\u200c\u0631\u0648\u0646\u062f \u0648 Nginx \u062a\u0631\u0627\u0641\u06cc\u06a9 HTTPS \u0648 WebSocket \u0631\u0627 \u0628\u0647 \u067e\u0648\u0631\u062a 8065 \u0645\u06cc\u200c\u0631\u0633\u0627\u0646\u062f.<\/p>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u0648\u0642\u062a\u06cc WebSocket \u0642\u0637\u0639 \u0627\u0633\u062a\u060c \u067e\u0630\u06cc\u0631\u0634 (Nginx)\u060c \u062f\u0641\u062a\u0631 \u0645\u0647\u0645\u0627\u0646\u0627\u0646 (PostgreSQL) \u0648 \u0627\u0646\u0628\u0627\u0631 \u0686\u0645\u062f\u0627\u0646 (data) \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0647\u062a\u0644 \u0628\u0627\u0632 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc\u200c\u0631\u0633\u062f. \u0641\u0642\u0637 \u062a\u0644\u0641\u0646 \u0627\u062a\u0627\u0642\u060c \u0647\u0645\u0627\u0646 \u06a9\u0647 \u0628\u06cc\u200c\u0622\u0646\u06a9\u0647 \u0645\u0647\u0645\u0627\u0646 \u0634\u0645\u0627\u0631\u0647 \u0628\u06af\u06cc\u0631\u062f \u0632\u0646\u06af \u0645\u06cc\u200c\u0632\u0646\u062f\u060c \u062e\u0627\u0645\u0648\u0634 \u0645\u0627\u0646\u062f\u0647 \u0648 \u062e\u0628\u0631\u0647\u0627 \u062f\u06cc\u0631 \u0645\u06cc\u200c\u0631\u0633\u0646\u062f.<\/p>\n\n\n\n<h3 id=\"\u067e\u0627\u06cc\u06af\u0627\u0647-\u062f\u0627\u062f\u0647-postgresql-15-\u06cc\u0627-\u0628\u0627\u0644\u0627\u062a\u0631\" class=\"wp-block-heading wd-h3\">\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 PostgreSQL 15 \u06cc\u0627 \u0628\u0627\u0644\u0627\u062a\u0631<\/h3>\n\n\n\n<p class=\"wd-p wp-block-paragraph\"><a href=\"https:\/\/docs.mattermost.com\/deployment-guide\/server\/linux\/deploy-ubuntu.html\" rel=\"nofollow noopener\" target=\"_blank\">\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0631\u0648\u06cc Ubuntu \u0648 Debian<\/a> \u0628\u0631\u0627\u06cc \u0646\u0633\u062e\u0647 12 \u0641\u0642\u0637 PostgreSQL 15 \u0628\u0647 \u0628\u0627\u0644\u0627 \u0631\u0627 \u0645\u06cc\u200c\u067e\u0630\u06cc\u0631\u062f. \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 24.04 (\u0646\u0633\u062e\u0647 16) \u0648 26.04 (\u0646\u0633\u062e\u0647 18) <code>sudo apt install postgresql<\/code> \u06a9\u0627\u0641\u06cc \u0627\u0633\u062a. \u0627\u0648\u0628\u0648\u0646\u062a\u0648 22.04 \u0646\u0633\u062e\u0647 14 \u062f\u0627\u0631\u062f\u061b \u0622\u0646\u062c\u0627 \u0645\u062e\u0632\u0646 PGDG \u0631\u0627 \u0628\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a postgresql.org \u0628\u06cc\u0641\u0632\u0627\u06cc\u06cc\u062f \u06cc\u0627 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0631\u0627 \u0639\u0648\u0636 \u06a9\u0646\u06cc\u062f (<a href=\"https:\/\/webdade.com\/blog\/ubuntu-26-features-vs-24-04\">\u062a\u0641\u0627\u0648\u062a \u0627\u0648\u0628\u0648\u0646\u062a\u0648 26 \u0628\u0627 24.04<\/a>):<\/p>\n\n\n\n<pre class=\"wp-block-code wd-code\"><code>sudo apt install -y postgresql-common\nsudo \/usr\/share\/postgresql-common\/pgdg\/apt.postgresql.org.sh\nsudo apt install postgresql-18<\/code><\/pre>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u0628\u0639\u062f \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0648 \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0631\u0645\u0632 \u0646\u0645\u0648\u0646\u0647 \u0631\u0627 \u0639\u0648\u0636 \u06a9\u0646\u06cc\u062f\u061b \u0628\u0631\u0627\u06cc \u062e\u0637\u0627\u06cc locale\u060c \u0627\u0648\u0644 <code>sudo locale-gen en_US.UTF-8<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code wd-code\"><code>sudo -u postgres psql\nCREATE DATABASE mattermost WITH ENCODING 'UTF8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;\nCREATE USER mmuser WITH PASSWORD 'mmuser-password';\nGRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;\nALTER DATABASE mattermost OWNER TO mmuser;\n\\c mattermost\nALTER SCHEMA public OWNER TO mmuser;\nGRANT USAGE, CREATE ON SCHEMA public TO mmuser;<\/code><\/pre>\n\n\n\n<h3 id=\"\u0628\u0631\u0646\u0627\u0645\u0647-\u0633\u0631\u0648\u0631-\u0648-\u0641\u0627\u06cc\u0644-config-json\" class=\"wp-block-heading wd-h3\">\u0628\u0631\u0646\u0627\u0645\u0647 \u0633\u0631\u0648\u0631 \u0648 \u0641\u0627\u06cc\u0644 config.json<\/h3>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u0628\u0633\u062a\u0647 \u0631\u0633\u0645\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u062f\u0631 <code>\/opt\/mattermost<\/code> \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u062f \u0648 \u067e\u06cc\u0648\u0633\u062a\u200c\u0647\u0627 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062f\u0631 \u0632\u06cc\u0631\u067e\u0648\u0634\u0647 data \u0622\u0646 \u0645\u06cc\u200c\u0645\u0627\u0646\u0646\u062f. \u0627\u06cc\u0646 \u06a9\u0644\u06cc\u062f\u0647\u0627 \u067e\u06cc\u0634 \u0627\u0632 \u0627\u0648\u0644\u06cc\u0646 start \u0646\u0648\u0634\u062a\u0647 \u0634\u0648\u0646\u062f:<\/p>\n\n\n\n<ul class=\"wp-block-list wd-list\">\n<li>\u06a9\u0644\u06cc\u062f <code>SqlSettings.DriverName<\/code> \u0628\u0627 \u0645\u0642\u062f\u0627\u0631 <code>\"postgres\"<\/code><\/li>\n\n\n\n<li>\u06a9\u0644\u06cc\u062f <code>SqlSettings.DataSource<\/code> \u0628\u0647 \u0634\u06a9\u0644 <code>postgres:\/\/mmuser:&lt;password&gt;@&lt;host&gt;:5432\/mattermost?sslmode=disable&amp;connect_timeout=10<\/code><\/li>\n\n\n\n<li>\u06a9\u0644\u06cc\u062f <code>ServiceSettings.SiteURL<\/code> \u0628\u0627 \u0646\u0634\u0627\u0646\u06cc \u0639\u0645\u0648\u0645\u06cc\u060c \u0645\u062b\u0644 <code>https:\/\/mattermost.example.com<\/code><\/li>\n\n\n\n<li>\u06a9\u0644\u06cc\u062f <code>ServiceSettings.ListenAddress<\/code> \u0628\u0627 <code>\"127.0.0.1:8065\"<\/code> \u062f\u0631 \u0645\u0633\u06cc\u0631 APT \u0628\u0627 Nginx \u0631\u0648\u06cc \u0647\u0645\u06cc\u0646 \u0633\u0631\u0648\u0631\u061b \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 <code>:8065<\/code> \u0631\u0648\u06cc \u0647\u0645\u0647 \u06a9\u0627\u0631\u062a\u200c\u0647\u0627\u06cc \u0634\u0628\u06a9\u0647 \u0628\u0627\u0632 \u0627\u0633\u062a.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-greenshift-blocks-image gspb_image gspb_image-id-gsbp-7fc026c\" id=\"gspb_image-id-gsbp-7fc026c\"><img decoding=\"async\" src=\"https:\/\/webdade.com\/blog\/wp-content\/uploads\/2026\/11\/Mattermost-Architecture-Pipeline-1.webp\" data-src=\"\" alt=\"\u0627\u062c\u0632\u0627\u06cc \u06cc\u06a9 \u0646\u0635\u0628 Mattermost\u061b \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u0633\u0631\u0648\u0631\u060c \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u067e\u0631\u0648\u06a9\u0633\u06cc\n\" loading=\"lazy\" width=\"1774\" height=\"887\" title=\"\u0627\u062c\u0632\u0627\u06cc \u06cc\u06a9 \u0646\u0635\u0628 Mattermost\u061b \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u0633\u0631\u0648\u0631\u060c \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0648 \u067e\u0631\u0648\u06a9\u0633\u06cc\n\"\/><\/div>\n\n\n\n<h2 id=\"package-or-docker\" class=\"wp-block-heading wd-h2\">\u0646\u0635\u0628 \u0628\u0627 \u0628\u0633\u062a\u0647 \u0631\u0633\u0645\u06cc \u06cc\u0627 \u062f\u0627\u06a9\u0631\u061b \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0686\u0647 \u0686\u06cc\u0632\u06cc \u0631\u0627 \u0639\u0648\u0636 \u0645\u06cc\u200c\u06a9\u0646\u062f<\/h2>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 Mattermost \u0686\u0647\u0627\u0631 \u0645\u0633\u06cc\u0631 \u0622\u0648\u0631\u062f\u0647 \u0627\u0633\u062a: \u0628\u0633\u062a\u0647 APT\u060c \u062a\u0627\u0631\u0628\u0627\u0644 \u062f\u0633\u062a\u06cc\u060c Kubernetes \u0648 Docker Compose. \u0631\u0648\u06cc \u06cc\u06a9 \u0633\u0631\u0648\u0631\u060c APT \u0648 \u062f\u0627\u06a9\u0631 \u0631\u0627\u06cc\u062c\u200c\u062a\u0631\u0646\u062f. \u0635\u0641\u062d\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u062f\u0627\u06a9\u0631 \u0631\u0627 \u0628\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0648 \u062a\u0648\u0633\u0639\u0647 \u0645\u062d\u062f\u0648\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0686\u0648\u0646 HA \u0622\u0645\u0627\u062f\u0647 \u0646\u062f\u0627\u0631\u062f.<\/p>\n\n\n\n<h3 id=\"\u0645\u0633\u06cc\u0631-\u0628\u0633\u062a\u0647-apt-\u0631\u0648\u06cc-\u0627\u0648\u0628\u0648\u0646\u062a\u0648\" class=\"wp-block-heading wd-h3\">\u0645\u0633\u06cc\u0631 \u0628\u0633\u062a\u0647 APT \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648<\/h3>\n\n\n\n<pre class=\"wp-block-code wd-code\"><code>curl -o- https:\/\/deb.packages.mattermost.com\/repo-setup.sh | sudo bash -s mattermost\nsudo apt update &amp;&amp; sudo apt install mattermost -y\nsudo install -C -m 600 -o mattermost -g mattermost \\\n  \/opt\/mattermost\/config\/config.defaults.json \/opt\/mattermost\/config\/config.json<\/code><\/pre>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u062d\u0627\u0644\u0627 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0628\u0627\u0644\u0627 \u0631\u0627 \u062f\u0631 config.json \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f. \u0622\u0631\u06af\u0648\u0645\u0627\u0646 <code>mattermost<\/code> \u0628\u0631\u062e\u0644\u0627\u0641 \u0645\u062a\u0646 \u0635\u0641\u062d\u0647 \u0641\u0642\u0637 \u0645\u062e\u0632\u0646 \u062e\u0648\u062f Mattermost \u0631\u0627 \u0645\u06cc\u200c\u0627\u0641\u0632\u0627\u06cc\u062f\u061b \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0645\u062e\u0632\u0646 nginx \u0648 PostgreSQL \u0631\u0627 \u0641\u0642\u0637 \u0628\u0627 <code>all<\/code> \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0627 PostgreSQL \u0645\u062d\u0644\u06cc\u060c \u0631\u0627\u0647\u0646\u0645\u0627 <code>After=<\/code> \u0648 <code>BindsTo=postgresql.service<\/code> \u0631\u0627 \u062f\u0631 [Unit] \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u062f\u061b \u0628\u0627 <code>sudo systemctl edit mattermost<\/code> \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f\u0634\u0627\u0646 \u062a\u0627 \u0627\u0631\u062a\u0642\u0627\u06cc \u0628\u0633\u062a\u0647 \u067e\u0627\u06a9\u0634\u0627\u0646 \u0646\u06a9\u0646\u062f.<\/p>\n\n\n\n<pre class=\"wp-block-code wd-code\"><code>sudo systemctl start mattermost &amp;&amp; curl http:\/\/localhost:8065\nsudo systemctl enable mattermost.service<\/code><\/pre>\n\n\n\n<h3 id=\"\u0645\u0633\u06cc\u0631-docker-compose\" class=\"wp-block-heading wd-h3\">\u0645\u0633\u06cc\u0631 Docker Compose<\/h3>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632: Docker Engine \u0648 Docker Compose \u0646\u0633\u062e\u0647 1.28 \u0628\u0647 \u0628\u0627\u0644\u0627.<\/p>\n\n\n\n<pre class=\"wp-block-code wd-code\"><code>git clone https:\/\/github.com\/mattermost\/docker &amp;&amp; cd docker\ncp env.example .env<\/code><\/pre>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u067e\u06cc\u0634 \u0627\u0632 \u0628\u0627\u0644\u0627 \u0622\u0648\u0631\u062f\u0646\u060c \u062f\u0631 <code>.env<\/code> \u0645\u0642\u062f\u0627\u0631 DOMAIN\u060c \u0631\u0645\u0632 \u0646\u0645\u0648\u0646\u0647 <code>POSTGRES_PASSWORD=mmuser_password<\/code> \u0648 <code>APP_PORT=127.0.0.1:8065<\/code> \u0631\u0627 \u0639\u0648\u0636 \u06a9\u0646\u06cc\u062f. \u0645\u0633\u062a\u0646\u062f\u0627\u062a Docker \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u067e\u0648\u0631\u062a \u0645\u0646\u062a\u0634\u0631\u0634\u062f\u0647 \u0627\u0632 ufw \u0631\u062f \u0645\u06cc\u200c\u0634\u0648\u062f. \u0646\u0634\u0627\u0646\u06cc 127.0.0.1 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u062e\u0648\u062f \u0645\u06cc\u0632\u0628\u0627\u0646 \u0645\u062d\u062f\u0648\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<pre class=\"wp-block-code wd-code\"><code>mkdir -p .\/volumes\/app\/mattermost\/{config,data,logs,plugins,client\/plugins,bleve-indexes}\nsudo chown -R 2000:2000 .\/volumes\/app\/mattermost\ndocker compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d<\/code><\/pre>\n\n\n\n<h3 id=\"\u0646\u0633\u062e\u0647-team-\u06cc\u0627-\u062d\u0627\u0644\u062a-entry\" class=\"wp-block-heading wd-h3\">\u0646\u0633\u062e\u0647 Team \u06cc\u0627 \u062d\u0627\u0644\u062a Entry<\/h3>\n\n\n\n<p class=\"wd-p wp-block-paragraph\"><a href=\"https:\/\/docs.mattermost.com\/product-overview\/editions-and-offerings.html\" rel=\"nofollow noopener\" target=\"_blank\">\u0635\u0641\u062d\u0647 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc Mattermost<\/a> \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f Enterprise Edition \u0628\u062f\u0648\u0646 \u0644\u0627\u06cc\u0633\u0646\u0633 \u062f\u0631 \u062d\u0627\u0644\u062a \u0631\u0627\u06cc\u06af\u0627\u0646 Entry \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f: \u0641\u0642\u0637 \u06f1\u06f0\u066c\u06f0\u06f0\u06f0 \u067e\u06cc\u0627\u0645 \u0622\u062e\u0631 \u062f\u06cc\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0628\u0631\u0627\u06cc \u0632\u06cc\u0631 \u06f5\u06f0 \u0646\u0641\u0631 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a. Team Edition \u0628\u0627 \u0644\u0627\u06cc\u0633\u0646\u0633 MIT \u0628\u0631\u0627\u06cc \u0632\u06cc\u0631 \u06f2\u06f5\u06f0 \u06a9\u0627\u0631\u0628\u0631 \u0641\u0639\u0627\u0644 \u0648 \u0628\u062f\u0648\u0646 SSO \u0627\u0633\u062a. \u0627\u06cc\u0645\u06cc\u062c \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062f\u0627\u06a9\u0631 Enterprise \u0627\u0633\u062a \u0648 \u0627\u06cc\u0645\u06cc\u062c Team \u0646\u0627\u0645 mattermost-team-edition \u062f\u0627\u0631\u062f. \u0646\u0633\u062e\u0647 \u0646\u0635\u0628\u200c\u0634\u062f\u0647 \u062f\u0631 \u06a9\u0646\u0633\u0648\u0644 \u0633\u06cc\u0633\u062a\u0645\u060c About &gt; Edition and License \u067e\u06cc\u062f\u0627\u0633\u062a.<\/p>\n\n\n\n<h3 id=\"\u0633\u06cc\u0627\u0633\u062a-\u062a\u062d\u0631\u06cc\u0645-\u0633\u0627\u0632\u0646\u062f\u0647\" class=\"wp-block-heading wd-h3\">\u0633\u06cc\u0627\u0633\u062a \u062a\u062d\u0631\u06cc\u0645 \u0633\u0627\u0632\u0646\u062f\u0647<\/h3>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u0628\u062e\u0634 \u06a9\u0634\u0648\u0631\u0647\u0627\u06cc \u062a\u062d\u0631\u06cc\u0645\u200c\u0634\u062f\u0647 \u062f\u0631 <a href=\"https:\/\/docs.mattermost.com\/product-overview\/faq-general.html\" rel=\"nofollow noopener\" target=\"_blank\">\u067e\u0631\u0633\u0634\u200c\u0647\u0627\u06cc \u0645\u062a\u062f\u0627\u0648\u0644 \u0639\u0645\u0648\u0645\u06cc Mattermost<\/a> \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u0634\u0631\u06a9\u062a \u0628\u0647\u200c\u062f\u0644\u06cc\u0644 \u062a\u062d\u0631\u06cc\u0645\u200c\u0647\u0627\u06cc \u062f\u0648\u0644\u062a \u0622\u0645\u0631\u06cc\u06a9\u0627\u060c \u062a\u0627 \u0631\u0641\u0639 \u0622\u0646\u200c\u0647\u0627 \u0628\u0647 \u0633\u0627\u0632\u0645\u0627\u0646\u200c\u0647\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0634\u0648\u0631\u0647\u0627 \u0644\u0627\u06cc\u0633\u0646\u0633\u060c \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc\u060c \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u0648 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0646\u0645\u06cc\u200c\u062f\u0647\u062f. \u0647\u0645\u0627\u0646 \u0628\u062e\u0634 \u062e\u0648\u0627\u0633\u062a\u0647 \u062d\u062a\u06cc \u0627\u0632 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u0639\u0645\u0648\u0645\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u06a9\u0646\u0646\u062f \u0648 \u0628\u0631\u0627\u06cc \u067e\u0631\u0633\u0634\u060c \u0646\u0634\u0627\u0646\u06cc compliance@mattermost.com \u0631\u0627 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-greenshift-blocks-image gspb_image gspb_image-id-gsbp-738afd7\" id=\"gspb_image-id-gsbp-738afd7\"><img decoding=\"async\" src=\"https:\/\/webdade.com\/blog\/wp-content\/uploads\/2026\/11\/Direct-Install-vs-Docker-Containers-1.webp\" data-src=\"\" alt=\"\u0646\u0635\u0628 \u0628\u0627 \u0628\u0633\u062a\u0647 \u0631\u0633\u0645\u06cc \u06cc\u0627 \u062f\u0627\u06a9\u0631\u061b \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0686\u0647 \u0686\u06cc\u0632\u06cc \u0631\u0627 \u0639\u0648\u0636 \u0645\u06cc\u200c\u06a9\u0646\u062f\n\" loading=\"lazy\" width=\"1774\" height=\"887\" title=\"\u0646\u0635\u0628 \u0628\u0627 \u0628\u0633\u062a\u0647 \u0631\u0633\u0645\u06cc \u06cc\u0627 \u062f\u0627\u06a9\u0631\u061b \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0686\u0647 \u0686\u06cc\u0632\u06cc \u0631\u0627 \u0639\u0648\u0636 \u0645\u06cc\u200c\u06a9\u0646\u062f\n\"\/><\/div>\n\n\n\n<h2 id=\"nginx-websocket\" class=\"wp-block-heading wd-h2\">\u067e\u0631\u0648\u06a9\u0633\u06cc Nginx\u060c SSL \u0648 \u0627\u062a\u0635\u0627\u0644 WebSocket \u0631\u0627 \u062f\u0631\u0633\u062a \u06a9\u0646\u06cc\u062f<\/h2>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u067e\u0631\u0648\u06a9\u0633\u06cc Nginx \u06af\u0648\u0627\u0647\u06cc TLS \u0631\u0627 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f\u060c \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u067e\u0648\u0631\u062a 8065 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0631\u062a\u0642\u0627\u06cc WebSocket \u0631\u0627 \u062c\u0644\u0648 \u0645\u06cc\u200c\u0641\u0631\u0633\u062a\u062f. \u067e\u0634\u062a \u067e\u0631\u0648\u06a9\u0633\u06cc\u060c \u0646\u0635\u0628 Mattermost \u0641\u0642\u0637 \u0628\u0627 \u06a9\u0627\u0631 \u0622\u062e\u0631 \u06a9\u0627\u0645\u0644 \u0627\u0633\u062a\u061b \u0627\u06af\u0631 \u0627\u0632 \u0642\u0644\u0645 \u0628\u06cc\u0641\u062a\u062f\u060c \u0635\u0641\u062d\u0647 \u0628\u0627\u0632 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648\u0644\u06cc \u067e\u06cc\u0627\u0645\u200c\u0647\u0627 \u0632\u0646\u062f\u0647 \u0646\u0645\u06cc\u200c\u0631\u0633\u0646\u062f.<\/p>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u0628\u0627 <code>sudo apt install nginx<\/code> \u0628\u0633\u062a\u0647 \u0631\u0627 \u0627\u0632 \u0645\u062e\u0632\u0646 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0646\u0635\u0628 \u0648 \u0641\u0627\u06cc\u0644 <code>\/etc\/nginx\/sites-available\/mattermost<\/code> \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f. \u0646\u0645\u0648\u0646\u0647 \u0632\u06cc\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0648\u0644\u06cc\u0647 <a href=\"https:\/\/docs.mattermost.com\/deployment-guide\/server\/setup-nginx-proxy.html\" rel=\"nofollow noopener\" target=\"_blank\">\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u067e\u0631\u0648\u06a9\u0633\u06cc NGINX \u062f\u0631 \u0645\u0633\u062a\u0646\u062f\u0627\u062a Mattermost<\/a> \u0627\u0633\u062a\u060c \u06a9\u0648\u062a\u0627\u0647\u200c\u0634\u062f\u0647 \u0648 \u0628\u0627 \u06cc\u06a9 \u062e\u0637 \u0627\u0636\u0627\u0641\u0647:<\/p>\n\n\n\n<pre class=\"wp-block-code wd-code\"><code>upstream backend {\n    server 127.0.0.1:8065;                          # &#91;1]\n    keepalive 32;\n}\nserver {\n    listen 80 default_server;\n    server_name mattermost.example.com;\n\n    location ~ \/api\/v&#91;0-9]+\/(users\/)?websocket$ {   # &#91;2]\n        proxy_set_header Upgrade $http_upgrade;     # &#91;3]\n        proxy_set_header Connection \"upgrade\";      # &#91;3]\n        proxy_http_version 1.1;                     # &#91;4]\n        proxy_set_header Host $http_host;           # &#91;5]\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        client_max_body_size 50M;                   # &#91;6]\n        proxy_read_timeout 90s;\n        proxy_pass http:\/\/backend;\n        # + buffers, timeouts (official file)\n    }\n    location \/ {\n        proxy_set_header Connection \"\";             # &#91;7]\n        proxy_set_header Host $http_host;\n        # + same X-Real-IP \/ X-Forwarded-* lines, buffers\n        client_max_body_size 50M;\n        proxy_read_timeout 600s;\n        proxy_http_version 1.1;\n        proxy_pass http:\/\/backend;\n    }\n}<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list wd-list\">\n<li>\u0646\u0634\u0627\u0646\u06cc 127.0.0.1 \u0628\u0647 \u062c\u0627\u06cc localhost.<\/li>\n\n\n\n<li>\u0645\u0633\u06cc\u0631 <code>\/api\/v4\/websocket<\/code> \u0648 \u0646\u0633\u062e\u0647 users \u0622\u0646.<\/li>\n\n\n\n<li>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062a\u063a\u06cc\u06cc\u0631 \u067e\u0631\u0648\u062a\u06a9\u0644.<\/li>\n\n\n\n<li>\u062e\u0637 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0647 \u0646\u0645\u0648\u0646\u0647 \u0627\u0648\u0644 \u0635\u0641\u062d\u0647 \u0646\u062f\u0627\u0631\u062f \u0648 \u0646\u0645\u0648\u0646\u0647\u200c\u0647\u0627\u06cc SSL \u062f\u0627\u0631\u0646\u062f. nginx \u067e\u06cc\u0634 \u0627\u0632 1.29.7 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f \u0648 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0646\u0633\u062e\u0647 1.18 \u062a\u0627 1.28 \u0631\u0627 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n\n\n\n<li>\u0647\u062f\u0631 Host \u067e\u0648\u06cc\u0627\u061b \u0646\u0627\u0647\u0645\u062e\u0648\u0627\u0646\u06cc Origin \u0648 Host \u062e\u0637\u0627\u06cc 403 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n\n\n\n<li>\u0633\u0642\u0641 \u062d\u062c\u0645 \u067e\u06cc\u0648\u0633\u062a\u060c \u0647\u0645\u200c\u0627\u0646\u062f\u0627\u0632\u0647 \u0633\u0642\u0641 \u0641\u0627\u06cc\u0644 Mattermost.<\/li>\n\n\n\n<li>\u0647\u062f\u0631 Connection \u062e\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u062a\u0635\u0627\u0644 keepalive \u0628\u0647 upstream.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code wd-code\"><code>sudo rm \/etc\/nginx\/sites-enabled\/default\nsudo ln -s \/etc\/nginx\/sites-available\/mattermost \/etc\/nginx\/sites-enabled\/mattermost\nsudo nginx -t &amp;&amp; sudo systemctl restart nginx<\/code><\/pre>\n\n\n\n<div class=\"wp-block-group wd-box wd-tech is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wd-boxt wp-block-paragraph\">\ud83d\udd38 \u0647\u062f\u0631\u0647\u0627\u06cc Upgrade \u0648 Connection \u0631\u0627 \u0686\u0631\u0627 \u062f\u0633\u062a\u06cc \u0645\u06cc\u200c\u0641\u0631\u0633\u062a\u06cc\u0645<\/p>\n\n\n\n<p class=\"wd-boxp wp-block-paragraph\">\u0645\u0633\u062a\u0646\u062f\u0627\u062a nginx \u0627\u06cc\u0646 \u062f\u0648 \u0631\u0627 \u0647\u062f\u0631 hop-by-hop \u0645\u06cc\u200c\u0646\u0627\u0645\u062f \u06a9\u0647 \u062e\u0648\u062f\u0634\u0627\u0646 \u0628\u0647 \u0633\u0631\u0648\u0631 \u067e\u0634\u062a \u067e\u0631\u0648\u06a9\u0633\u06cc \u0646\u0645\u06cc\u200c\u0631\u0633\u0646\u062f. \u0633\u06a9\u0648\u062a \u06f6\u06f0 \u062b\u0627\u0646\u06cc\u0647\u200c\u0627\u06cc \u0647\u0645 \u0627\u062a\u0635\u0627\u0644 \u0631\u0627 \u0645\u06cc\u200c\u0628\u0646\u062f\u062f \u0648 \u0646\u0645\u0648\u0646\u0647 Mattermost \u0622\u0646 \u0631\u0627 \u06f9\u06f0 \u062b\u0627\u0646\u06cc\u0647 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<\/div>\n\n\n\n<h3 id=\"\u06af\u0648\u0627\u0647\u06cc-ssl-\u0628\u0627-certbot\" class=\"wp-block-heading wd-h3\">\u06af\u0648\u0627\u0647\u06cc SSL \u0628\u0627 Certbot<\/h3>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u0628\u0647 \u06af\u0641\u062a\u0647 \u0631\u0627\u0647\u0646\u0645\u0627\u060c <code>sudo certbot<\/code> \u0641\u0627\u06cc\u0644 Nginx \u0633\u0627\u06cc\u062a \u0627\u0646\u062a\u062e\u0627\u0628\u200c\u0634\u062f\u0647 \u0631\u0627 \u062e\u0648\u062f\u0634 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b dry-run \u067e\u06cc\u0634 \u0627\u0632 \u0622\u0646 \u0631\u06a9\u0648\u0631\u062f DNS \u0631\u0627 \u0645\u06cc\u200c\u0633\u0646\u062c\u062f.<\/p>\n\n\n\n<pre class=\"wp-block-code wd-code\"><code>sudo snap install core; sudo snap refresh core\nsudo snap install --classic certbot\nsudo ln -s \/snap\/bin\/certbot \/usr\/bin\/certbot\nsudo certbot certonly --dry-run &amp;&amp; sudo certbot<\/code><\/pre>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u0628\u0639\u062f SiteURL \u0631\u0627 \u0628\u0627 https \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u0648 \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u06a9\u0646\u06cc\u062f. \u0622\u0632\u0645\u0648\u0646 \u0622\u062e\u0631: \u067e\u06cc\u0627\u0645\u06cc \u0627\u0632 \u06af\u0648\u0634\u06cc \u0628\u0641\u0631\u0633\u062a\u06cc\u062f \u0648 \u0628\u0628\u06cc\u0646\u06cc\u062f \u0628\u06cc\u200c\u0631\u0641\u0631\u0634 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0645\u06cc\u200c\u0622\u06cc\u062f. \u0622\u0645\u062f\u061f \u06a9\u0627\u0631 \u067e\u0631\u0648\u06a9\u0633\u06cc \u062a\u0645\u0627\u0645 \u0627\u0633\u062a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-greenshift-blocks-image gspb_image gspb_image-id-gsbp-76f71a7\" id=\"gspb_image-id-gsbp-76f71a7\"><img decoding=\"async\" src=\"https:\/\/webdade.com\/blog\/wp-content\/uploads\/2026\/11\/Secure-Proxy-Network-Diagram-1.webp\" data-src=\"\" alt=\"\u067e\u0631\u0648\u06a9\u0633\u06cc Nginx\u060c SSL \u0648 \u0627\u062a\u0635\u0627\u0644 WebSocket \u0631\u0627 \u062f\u0631\u0633\u062a \u06a9\u0646\u06cc\u062f\n\" loading=\"lazy\" width=\"1774\" height=\"887\" title=\"\u067e\u0631\u0648\u06a9\u0633\u06cc Nginx\u060c SSL \u0648 \u0627\u062a\u0635\u0627\u0644 WebSocket \u0631\u0627 \u062f\u0631\u0633\u062a \u06a9\u0646\u06cc\u062f\n\"\/><\/div>\n\n\n\n<h2 id=\"backup-upgrade\" class=\"wp-block-heading wd-h2\">\u0628\u0639\u062f \u0627\u0632 \u0633\u0627\u062e\u062a \u062a\u06cc\u0645 \u0648 \u06a9\u0627\u0646\u0627\u0644\u060c \u0628\u06a9\u0627\u067e \u0627\u0632 \u06a9\u062f\u0627\u0645 \u0627\u062c\u0632\u0627 \u0648 \u0627\u0631\u062a\u0642\u0627 \u0628\u0627 \u0686\u0647 \u062a\u0631\u062a\u06cc\u0628\u06cc\u061f<\/h2>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u0635\u0641\u062d\u0647 <a href=\"https:\/\/docs.mattermost.com\/deployment-guide\/backup-disaster-recovery.html\" rel=\"nofollow noopener\" target=\"_blank\">\u0628\u06a9\u0627\u067e \u0648 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc Mattermost<\/a> \u0633\u0647 \u0686\u06cc\u0632 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u062f: \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u067e\u0648\u0634\u0647 config \u06a9\u0647 \u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627\u06cc SAML \u0631\u0627 \u0647\u0645 \u062f\u0627\u0631\u062f\u060c \u0648 \u067e\u0648\u0634\u0647 data \u0627\u06af\u0631 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0645\u062d\u0644\u06cc\u200c\u0627\u0646\u062f. \u0633\u0631\u0648\u06cc\u0633 \u062f\u0631 \u062a\u0645\u0627\u0645 \u0645\u062f\u062a \u0628\u06a9\u0627\u067e \u062e\u0627\u0645\u0648\u0634 \u0645\u06cc\u200c\u0645\u0627\u0646\u062f \u062a\u0627 \u0627\u06cc\u0646 \u0633\u0647 \u0647\u0645\u200c\u0632\u0645\u0627\u0646 \u0628\u0645\u0627\u0646\u0646\u062f.<\/p>\n\n\n\n<h3 id=\"\u0627\u0648\u0644\u06cc\u0646-\u0645\u062f\u06cc\u0631-\u0648-\u062a\u06cc\u0645-\u0628\u0627-mmctl\" class=\"wp-block-heading wd-h3\">\u0627\u0648\u0644\u06cc\u0646 \u0645\u062f\u06cc\u0631 \u0648 \u062a\u06cc\u0645 \u0628\u0627 mmctl<\/h3>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u062d\u0633\u0627\u0628 \u0645\u062f\u06cc\u0631 \u0648 \u062a\u06cc\u0645 \u0627\u0648\u0644 \u0631\u0627 \u0628\u0639\u062f \u0627\u0632 \u0646\u0635\u0628 Mattermost \u0628\u0627 mmctl \u0628\u0633\u0627\u0632\u06cc\u062f. \u0628\u0627 <code>ServiceSettings.EnableLocalMode<\/code> \u0631\u0648\u06cc true \u0648 \u06cc\u06a9 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a\u060c mmctl \u0627\u0632 \u0646\u0633\u062e\u0647 10.8 \u0628\u062f\u0648\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0648\u0631\u0648\u062f \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061b \u0622\u0646 \u0631\u0627 \u0628\u0627 \u06a9\u0627\u0631\u0628\u0631 \u0633\u0631\u0648\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code wd-code\"><code>cd \/opt\/mattermost\/bin\nsudo -u mattermost .\/mmctl user create --email admin@example.com --username admin --password 'Str0ng!Pass' --system-admin\nsudo -u mattermost .\/mmctl team create --name office --display-name \"Office\"\nsudo -u mattermost .\/mmctl team users add office admin<\/code><\/pre>\n\n\n\n<h3 id=\"\u0628\u06a9\u0627\u067e-\u0633\u0647-\u062a\u06a9\u0647-\u0628\u0627-\u0633\u0631\u0648\u06cc\u0633-\u062e\u0627\u0645\u0648\u0634\" class=\"wp-block-heading wd-h3\">\u0628\u06a9\u0627\u067e \u0633\u0647\u200c\u062a\u06a9\u0647 \u0628\u0627 \u0633\u0631\u0648\u06cc\u0633 \u062e\u0627\u0645\u0648\u0634<\/h3>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u062f\u0631 \u067e\u0648\u0633\u062a\u0647 root (<code>sudo -i<\/code>) \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f\u061b dump \u0648 config.json \u0631\u0645\u0632 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0631\u0627 \u062f\u0627\u0631\u0646\u062f \u0648 <code>umask 077<\/code> \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc root \u062e\u0648\u0627\u0646\u062f\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code wd-code\"><code>systemctl stop mattermost &amp;&amp; umask 077\nsudo -u postgres pg_dump mattermost &gt; \/var\/backups\/mm-db.sql\ntar -czf \/var\/backups\/mm-files.tar.gz -C \/opt\/mattermost config data\nsystemctl start mattermost<\/code><\/pre>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u06cc\u060c \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u062e\u0627\u0644\u06cc \u0631\u0627 \u0645\u062b\u0644 \u0628\u0644\u0627\u06a9 \u0627\u0648\u0644 \u0627\u0632 template0 \u0628\u0633\u0627\u0632\u06cc\u062f (\u0645\u0633\u062a\u0646\u062f\u0627\u062a PostgreSQL)\u060c \u0628\u0639\u062f:<\/p>\n\n\n\n<pre class=\"wp-block-code wd-code\"><code>systemctl stop mattermost\nsudo -u postgres psql -X mattermost &lt; \/var\/backups\/mm-db.sql\ntar -xzf \/var\/backups\/mm-files.tar.gz -C \/opt\/mattermost\nchown -R mattermost:mattermost \/opt\/mattermost &amp;&amp; systemctl start mattermost<\/code><\/pre>\n\n\n\n<div class=\"wp-block-group wd-box wd-brand is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wd-boxt wp-block-paragraph\">\ud83d\udd36 \u0627\u0631\u062a\u0642\u0627\u06cc \u0646\u06cc\u0645\u0647\u200c\u06a9\u0627\u0631\u0647 \u0648 \u0646\u0642\u0637\u0647 \u0628\u0631\u06af\u0634\u062a\u0634<\/p>\n\n\n\n<p class=\"wd-boxp wp-block-paragraph\">\u0627\u0631\u062a\u0642\u0627\u06cc\u06cc \u06a9\u0647 \u0648\u0633\u0637 \u0645\u0647\u0627\u062c\u0631\u062a \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0628\u0645\u0627\u0646\u062f\u060c \u0628\u0627 \u0627\u0633\u0646\u067e\u200c\u0634\u0627\u062a\u06cc \u06a9\u0647 \u0642\u0628\u0644 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0627\u0632 \u067e\u0646\u0644 \u0633\u0631\u0648\u0631 \u0648\u0628\u200c\u062f\u0627\u062f\u0647 \u0628\u0631\u062f\u0627\u0634\u062a\u0647\u200c\u0627\u06cc\u062f\u060c \u0628\u0647 \u0647\u0645\u0627\u0646 \u0644\u062d\u0638\u0647 \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u062f. \u0627\u0633\u0646\u067e\u200c\u0634\u0627\u062a \u0628\u06a9\u0627\u067e \u062f\u0627\u062f\u0647 \u0646\u06cc\u0633\u062a\u061b \u0645\u0633\u062a\u0646\u062f\u0627\u062a Mattermost \u0646\u0633\u062e\u0647\u200c\u0627\u06cc \u0628\u06cc\u0631\u0648\u0646 \u0627\u0632 \u0633\u0627\u06cc\u062a \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u062f.<\/p>\n<\/div>\n\n\n\n<h3 id=\"\u0627\u0631\u062a\u0642\u0627-\u0628\u0627-\u0628\u0633\u062a\u0647-apt-\u06cc\u0627-\u062a\u06af-\u062f\u0627\u06a9\u0631\" class=\"wp-block-heading wd-h3\">\u0627\u0631\u062a\u0642\u0627 \u0628\u0627 \u0628\u0633\u062a\u0647 APT \u06cc\u0627 \u062a\u06af \u062f\u0627\u06a9\u0631<\/h3>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u062f\u0631 \u0646\u0635\u0628 \u0628\u0627 \u0628\u0633\u062a\u0647 APT\u060c \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0642\u0628\u0644 \u0627\u0632 <code>apt upgrade<\/code> \u0645\u062a\u0648\u0642\u0641 \u06a9\u0646\u06cc\u062f\u060c \u0686\u0648\u0646 \u0627\u0631\u062a\u0642\u0627 \u0628\u0627\u06cc\u0646\u0631\u06cc \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0631\u0627 \u0639\u0648\u0636 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u062f\u0631 \u062f\u0627\u06a9\u0631\u060c \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0631\u0627 \u067e\u0627\u06cc\u06cc\u0646 \u0628\u06cc\u0627\u0648\u0631\u06cc\u062f\u060c git pull \u0628\u0632\u0646\u06cc\u062f \u0648 MATTERMOST_IMAGE_TAG \u0631\u0627 \u0639\u0648\u0636 \u06a9\u0646\u06cc\u062f. \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0627\u0631\u062a\u0642\u0627 \u062b\u0628\u062a \u0646\u0642\u0634\u0647 \u0645\u0647\u0627\u062c\u0631\u062a \u0628\u0627 <code>mattermost db migrate --save-plan<\/code> \u0631\u0627 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n\n\n\n<div class=\"wp-block-group wd-box wd-warn is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wd-boxt wp-block-paragraph\">\u26a0\ufe0f \u0627\u0632 \u0631\u0648\u06cc \u0686\u0646\u062f \u0646\u0633\u062e\u0647 \u06cc\u06a9\u200c\u062c\u0627 \u0646\u067e\u0631\u06cc\u062f<\/p>\n\n\n\n<p class=\"wd-boxp wp-block-paragraph\">\u0635\u0641\u062d\u0647 \u0622\u0645\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u0631\u062a\u0642\u0627 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0631\u0627 \u0641\u0642\u0637 \u062a\u0627 ESR \u0642\u0628\u0644\u06cc \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f: ESR1 \u0628\u0647 ESR2 \u0648 \u0628\u0639\u062f ESR3\u060c \u0646\u0647 ESR1 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0647 ESR3. \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc v10.11 ESR \u062f\u0631 \u06f1\u06f5 \u0627\u0648\u062a \u06f2\u06f0\u06f2\u06f6 \u062a\u0645\u0627\u0645 \u0634\u062f.<\/p>\n<\/div>\n\n\n\n<p class=\"wd-p wp-block-paragraph\"><strong>\u0633\u0647 \u067e\u0631\u0633\u0634 \u0627\u0648\u0644 \u0645\u0627\u0644 \u067e\u06cc\u0634 \u0627\u0632 \u0646\u0635\u0628\u200c\u0627\u0646\u062f\u061b \u067e\u0646\u062c\u0645 \u0648 \u0634\u0634\u0645 \u0645\u0627\u0644 \u0634\u0628\u06cc \u06a9\u0647 \u067e\u06cc\u0627\u0645\u200c\u0647\u0627 \u0641\u0642\u0637 \u0628\u0627 \u0631\u0641\u0631\u0634 \u0645\u06cc\u200c\u0631\u0633\u0646\u062f.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-greenshift-blocks-accordion gs-accordion gspb_accordion-id-gsbp-c89d002 togglelogic gspb_accordion\" id=\"gspb_accordion-id-gsbp-c89d002\" itemscope itemtype=\"https:\/\/schema.org\/FAQPage\">\n<div class=\"wp-block-greenshift-blocks-accordionitem gs-accordion-item gspb_accordionitem-gsbp-c89d003 gsopen gspb_accordionItem gspb_accordionItem-id-gsbp-c89d003x\" id=\"gspb_accordionitem-gsbp-c89d003\" itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"><div id=\"gs-trigger-gsbp-c89d002-0\" class=\"gs-accordion-item__title\" aria-expanded=\"true\" role=\"button\" tabindex=\"0\" aria-controls=\"gspb-accordion-item-content-gsbp-c89d003\"><h3 class=\"gs-accordion-item__heading\">\u062d\u062f\u0627\u0642\u0644 \u0645\u0646\u0627\u0628\u0639 \u0633\u0631\u0648\u0631 \u0628\u0631\u0627\u06cc Mattermost \u0686\u0642\u062f\u0631 \u0627\u0633\u062a\u061f<\/h3><meta itemprop=\"name\" content=\"\u062d\u062f\u0627\u0642\u0644 \u0645\u0646\u0627\u0628\u0639 \u0633\u0631\u0648\u0631 \u0628\u0631\u0627\u06cc Mattermost \u0686\u0642\u062f\u0631 \u0627\u0633\u062a\u061f\"\/><span class=\"iconfortoggle\"><span class=\"gs-iconbefore\"><\/span><span class=\"gs-iconafter\"><\/span><\/span><\/div><div aria-labelledby=\"gs-trigger-gsbp-c89d002-0\" class=\"gs-accordion-item__content\" itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\" id=\"gspb-accordion-item-content-gsbp-c89d003\"><div class=\"gs-accordion-item__text\" itemprop=\"text\">\n<p id=\"gspb_text-id-gsbp-c89d004\" class=\"gspb_text gspb_text-id-gsbp-c89d004 \">\u0628\u0631\u0627\u06cc \u062d\u062f\u0648\u062f \u06f1\u06f0\u06f0\u06f0 \u06a9\u0627\u0631\u0628\u0631\u060c \u06cc\u06a9 vCPU \u0628\u0627 \u06f2 \u06af\u06cc\u06af\u0627\u0628\u0627\u06cc\u062a \u0631\u0645\u061b \u0628\u0631\u0627\u06cc \u06f2\u06f0\u06f0\u06f0 \u06a9\u0627\u0631\u0628\u0631\u060c \u062f\u0648 \u0628\u0631\u0627\u0628\u0631\u0650 \u0647\u0631 \u062f\u0648.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-greenshift-blocks-accordionitem gs-accordion-item gspb_accordionitem-gsbp-c89d005 gsclose gspb_accordionItem gspb_accordionItem-id-gsbp-c89d005x\" id=\"gspb_accordionitem-gsbp-c89d005\" itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"><div id=\"gs-trigger-gsbp-c89d002-1\" class=\"gs-accordion-item__title\" aria-expanded=\"false\" role=\"button\" tabindex=\"0\" aria-controls=\"gspb-accordion-item-content-gsbp-c89d005\"><h3 class=\"gs-accordion-item__heading\">\u0622\u06cc\u0627 Mattermost \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 20.04 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f\u061f<\/h3><meta itemprop=\"name\" content=\"\u0622\u06cc\u0627 Mattermost \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 20.04 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f\u061f\"\/><span class=\"iconfortoggle\"><span class=\"gs-iconbefore\"><\/span><span class=\"gs-iconafter\"><\/span><\/span><\/div><div aria-labelledby=\"gs-trigger-gsbp-c89d002-1\" class=\"gs-accordion-item__content\" itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\" id=\"gspb-accordion-item-content-gsbp-c89d005\"><div class=\"gs-accordion-item__text\" itemprop=\"text\">\n<p id=\"gspb_text-id-gsbp-c89d006\" class=\"gspb_text gspb_text-id-gsbp-c89d006 \">\u0641\u0642\u0637 \u062a\u0627 \u0646\u0633\u062e\u0647 11.11\u061b \u0646\u0633\u062e\u0647 12 \u0628\u0647 glibc 2.34 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-greenshift-blocks-accordionitem gs-accordion-item gspb_accordionitem-gsbp-c89d007 gsclose gspb_accordionItem gspb_accordionItem-id-gsbp-c89d007x\" id=\"gspb_accordionitem-gsbp-c89d007\" itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"><div id=\"gs-trigger-gsbp-c89d002-2\" class=\"gs-accordion-item__title\" aria-expanded=\"false\" role=\"button\" tabindex=\"0\" aria-controls=\"gspb-accordion-item-content-gsbp-c89d007\"><h3 class=\"gs-accordion-item__heading\">\u0622\u06cc\u0627 Mattermost \u0628\u0627 MySQL \u06cc\u0627 MariaDB \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061f<\/h3><meta itemprop=\"name\" content=\"\u0622\u06cc\u0627 Mattermost \u0628\u0627 MySQL \u06cc\u0627 MariaDB \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u061f\"\/><span class=\"iconfortoggle\"><span class=\"gs-iconbefore\"><\/span><span class=\"gs-iconafter\"><\/span><\/span><\/div><div aria-labelledby=\"gs-trigger-gsbp-c89d002-2\" class=\"gs-accordion-item__content\" itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\" id=\"gspb-accordion-item-content-gsbp-c89d007\"><div class=\"gs-accordion-item__text\" itemprop=\"text\">\n<p id=\"gspb_text-id-gsbp-c89d008\" class=\"gspb_text gspb_text-id-gsbp-c89d008 \">\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc MySQL \u0627\u0632 \u0646\u0633\u062e\u0647 11 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0630\u0641 \u0627\u0633\u062a \u0648 MariaDB \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-greenshift-blocks-accordionitem gs-accordion-item gspb_accordionitem-gsbp-c89d009 gsclose gspb_accordionItem gspb_accordionItem-id-gsbp-c89d009x\" id=\"gspb_accordionitem-gsbp-c89d009\" itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"><div id=\"gs-trigger-gsbp-c89d002-3\" class=\"gs-accordion-item__title\" aria-expanded=\"false\" role=\"button\" tabindex=\"0\" aria-controls=\"gspb-accordion-item-content-gsbp-c89d009\"><h3 class=\"gs-accordion-item__heading\">\u0646\u0633\u062e\u0647 \u0631\u0627\u06cc\u06af\u0627\u0646 Mattermost \u0633\u0642\u0641 \u067e\u06cc\u0627\u0645 \u062f\u0627\u0631\u062f\u061f<\/h3><meta itemprop=\"name\" content=\"\u0646\u0633\u062e\u0647 \u0631\u0627\u06cc\u06af\u0627\u0646 Mattermost \u0633\u0642\u0641 \u067e\u06cc\u0627\u0645 \u062f\u0627\u0631\u062f\u061f\"\/><span class=\"iconfortoggle\"><span class=\"gs-iconbefore\"><\/span><span class=\"gs-iconafter\"><\/span><\/span><\/div><div aria-labelledby=\"gs-trigger-gsbp-c89d002-3\" class=\"gs-accordion-item__content\" itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\" id=\"gspb-accordion-item-content-gsbp-c89d009\"><div class=\"gs-accordion-item__text\" itemprop=\"text\">\n<p id=\"gspb_text-id-gsbp-c89d010\" class=\"gspb_text gspb_text-id-gsbp-c89d010 \">\u062d\u0627\u0644\u062a Entry \u0641\u0642\u0637 \u06f1\u06f0\u066c\u06f0\u06f0\u06f0 \u067e\u06cc\u0627\u0645 \u0622\u062e\u0631 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f\u061b Team Edition \u06a9\u0644 \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u0631\u0627 \u0628\u0627\u0632 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0628\u0627 \u0627\u0645\u06a9\u0627\u0646\u0627\u062a \u06a9\u0645\u062a\u0631.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-greenshift-blocks-accordionitem gs-accordion-item gspb_accordionitem-gsbp-c89d011 gsclose gspb_accordionItem gspb_accordionItem-id-gsbp-c89d011x\" id=\"gspb_accordionitem-gsbp-c89d011\" itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"><div id=\"gs-trigger-gsbp-c89d002-4\" class=\"gs-accordion-item__title\" aria-expanded=\"false\" role=\"button\" tabindex=\"0\" aria-controls=\"gspb-accordion-item-content-gsbp-c89d011\"><h3 class=\"gs-accordion-item__heading\">\u0686\u0631\u0627 \u067e\u06cc\u0627\u0645\u200c\u0647\u0627\u06cc \u062a\u0627\u0632\u0647 \u0641\u0642\u0637 \u0628\u0639\u062f \u0627\u0632 \u0631\u0641\u0631\u0634 \u062f\u06cc\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u061f<\/h3><meta itemprop=\"name\" content=\"\u0686\u0631\u0627 \u067e\u06cc\u0627\u0645\u200c\u0647\u0627\u06cc \u062a\u0627\u0632\u0647 \u0641\u0642\u0637 \u0628\u0639\u062f \u0627\u0632 \u0631\u0641\u0631\u0634 \u062f\u06cc\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u061f\"\/><span class=\"iconfortoggle\"><span class=\"gs-iconbefore\"><\/span><span class=\"gs-iconafter\"><\/span><\/span><\/div><div aria-labelledby=\"gs-trigger-gsbp-c89d002-4\" class=\"gs-accordion-item__content\" itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\" id=\"gspb-accordion-item-content-gsbp-c89d011\"><div class=\"gs-accordion-item__text\" itemprop=\"text\">\n<p id=\"gspb_text-id-gsbp-c89d012\" class=\"gspb_text gspb_text-id-gsbp-c89d012 \">\u0627\u062a\u0635\u0627\u0644 WebSocket \u0627\u0632 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0631\u062f \u0646\u0645\u06cc\u200c\u0634\u0648\u062f\u061b \u0628\u0644\u0627\u06a9 websocket \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-greenshift-blocks-accordionitem gs-accordion-item gspb_accordionitem-gsbp-c89d013 gsclose gspb_accordionItem gspb_accordionItem-id-gsbp-c89d013x\" id=\"gspb_accordionitem-gsbp-c89d013\" itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"><div id=\"gs-trigger-gsbp-c89d002-5\" class=\"gs-accordion-item__title\" aria-expanded=\"false\" role=\"button\" tabindex=\"0\" aria-controls=\"gspb-accordion-item-content-gsbp-c89d013\"><h3 class=\"gs-accordion-item__heading\">\u062e\u0637\u0627\u06cc 403 \u0631\u0648\u06cc \u0627\u062a\u0635\u0627\u0644 websocket \u0627\u0632 \u06a9\u062c\u0627 \u0645\u06cc\u200c\u0622\u06cc\u062f\u061f<\/h3><meta itemprop=\"name\" content=\"\u062e\u0637\u0627\u06cc 403 \u0631\u0648\u06cc \u0627\u062a\u0635\u0627\u0644 websocket \u0627\u0632 \u06a9\u062c\u0627 \u0645\u06cc\u200c\u0622\u06cc\u062f\u061f\"\/><span class=\"iconfortoggle\"><span class=\"gs-iconbefore\"><\/span><span class=\"gs-iconafter\"><\/span><\/span><\/div><div aria-labelledby=\"gs-trigger-gsbp-c89d002-5\" class=\"gs-accordion-item__content\" itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\" id=\"gspb-accordion-item-content-gsbp-c89d013\"><div class=\"gs-accordion-item__text\" itemprop=\"text\">\n<p id=\"gspb_text-id-gsbp-c89d014\" class=\"gspb_text gspb_text-id-gsbp-c89d014 \">\u0627\u0632 \u0628\u0631\u0631\u0633\u06cc cross-origin\u061b Host \u0631\u0627 \u067e\u0648\u06cc\u0627 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f \u0648 AllowCorsFrom \u0631\u0627 \u0628\u0627 \u062f\u0627\u0645\u0646\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u06cc\u06a9\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-greenshift-blocks-accordionitem gs-accordion-item gspb_accordionitem-gsbp-c89d015 gsclose gspb_accordionItem gspb_accordionItem-id-gsbp-c89d015x\" id=\"gspb_accordionitem-gsbp-c89d015\" itemscope itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\"><div id=\"gs-trigger-gsbp-c89d002-6\" class=\"gs-accordion-item__title\" aria-expanded=\"false\" role=\"button\" tabindex=\"0\" aria-controls=\"gspb-accordion-item-content-gsbp-c89d015\"><h3 class=\"gs-accordion-item__heading\">\u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc\u060c \u062f\u0627\u06a9\u0631 \u06cc\u0627 \u0628\u0633\u062a\u0647 APT\u061f<\/h3><meta itemprop=\"name\" content=\"\u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc\u060c \u062f\u0627\u06a9\u0631 \u06cc\u0627 \u0628\u0633\u062a\u0647 APT\u061f\"\/><span class=\"iconfortoggle\"><span class=\"gs-iconbefore\"><\/span><span class=\"gs-iconafter\"><\/span><\/span><\/div><div aria-labelledby=\"gs-trigger-gsbp-c89d002-6\" class=\"gs-accordion-item__content\" itemscope itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\" id=\"gspb-accordion-item-content-gsbp-c89d015\"><div class=\"gs-accordion-item__text\" itemprop=\"text\">\n<p id=\"gspb_text-id-gsbp-c89d016\" class=\"gspb_text gspb_text-id-gsbp-c89d016 \">\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u062f\u0627\u06a9\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0648 \u062a\u0648\u0633\u0639\u0647 \u0645\u06cc\u200c\u062f\u0627\u0646\u062f\u061b \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u0631 \u062a\u06cc\u0645\u06cc \u0628\u0633\u062a\u0647 APT \u0646\u0632\u062f\u06cc\u06a9\u200c\u062a\u0631 \u0627\u0633\u062a.<\/p>\n<\/div><\/div><\/div>\n<\/div>\n\n\n\n<p class=\"wd-p wp-block-paragraph\"><strong>\u062c\u0645\u0639\u200c\u0628\u0646\u062f\u06cc\u061b \u0686\u0647\u0627\u0631 \u062c\u0632\u0621\u060c \u06cc\u06a9 \u0628\u06a9\u0627\u067e \u0633\u0647\u200c\u062a\u06a9\u0647<\/strong> \u0627\u062c\u0632\u0627\u06cc \u06cc\u06a9 \u0646\u0635\u0628 Mattermost \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0631\u0627 \u062c\u062f\u0627 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f \u062a\u0627 \u0647\u0631 \u062e\u0637\u0627 \u0646\u0634\u0627\u0646\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f. PostgreSQL \u0628\u0627\u06cc\u062f 15 \u06cc\u0627 \u0628\u0627\u0644\u0627\u062a\u0631 \u0628\u0627\u0634\u062f \u0648 \u0631\u0648\u06cc 22.04 \u0627\u0632 \u0645\u062e\u0632\u0646 PGDG \u0628\u06cc\u0627\u06cc\u062f. \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc config.json \u067e\u06cc\u0634 \u0627\u0632 \u0627\u0648\u0644\u06cc\u0646 start \u0646\u0648\u0634\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 ListenAddress \u0631\u0648\u06cc 127.0.0.1 \u067e\u0648\u0631\u062a 8065 \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0631\u0648\u0646 \u062f\u0648\u0631 \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f. \u067e\u06cc\u0627\u0645 \u0632\u0646\u062f\u0647 \u0628\u0647 \u0628\u0644\u0627\u06a9 websocket \u062f\u0631 Nginx \u0628\u0633\u062a\u0647 \u0627\u0633\u062a: \u0647\u062f\u0631\u0647\u0627\u06cc Upgrade \u0648 Connection \u0648 \u062e\u0637 proxy_http_version 1.1. \u0628\u06a9\u0627\u067e \u0631\u0627 \u0628\u0627 \u0633\u0631\u0648\u06cc\u0633 \u062e\u0627\u0645\u0648\u0634 \u0648 umask 077 \u0627\u0632 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0648 \u062f\u0648 \u067e\u0648\u0634\u0647 config \u0648 data \u0628\u06af\u06cc\u0631\u06cc\u062f \u0648 \u0627\u0631\u062a\u0642\u0627 \u0631\u0627 ESR \u0628\u0647 ESR \u062c\u0644\u0648 \u0628\u0628\u0631\u06cc\u062f. \u0628\u0646\u062f \u062a\u062d\u0631\u06cc\u0645 \u0633\u0627\u0632\u0646\u062f\u0647 \u0631\u0627 \u067e\u06cc\u0634 \u0627\u0632 \u062a\u0635\u0645\u06cc\u0645 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f.<\/p>\n\n\n\n<div class=\"wp-block-group wd-box wd-cta is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wd-boxt wp-block-paragraph\">\ud83c\udfaf \u0642\u0628\u0644 \u0627\u0632 \u0646\u0635\u0628\u060c \u0627\u0646\u062a\u062e\u0627\u0628 \u0631\u0627 \u0642\u0637\u0639\u06cc \u06a9\u0646\u06cc\u062f<\/p>\n\n\n\n<p class=\"wd-boxp wp-block-paragraph\">\u0644\u0627\u06cc\u0633\u0646\u0633 \u0646\u0633\u062e\u0647 \u0631\u0627\u06cc\u06af\u0627\u0646 \u0648 \u0645\u0646\u0627\u0628\u0639 Mattermost\u060c Rocket.Chat \u0648 Matrix \u062f\u0631 \u06cc\u06a9 \u0635\u0641\u062d\u0647.<\/p>\n\n\n\n<div class=\"wp-block-buttons wd-btns is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button wd-btn\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/webdade.com\/blog\/self-hosted-team-messenger-comparison\">\u0633\u0647 \u067e\u06cc\u0627\u0645\u200c\u0631\u0633\u0627\u0646 \u0633\u0627\u0632\u0645\u0627\u0646\u06cc \u0631\u0627 \u06a9\u0646\u0627\u0631 \u0647\u0645 \u0628\u0628\u06cc\u0646\u06cc\u062f<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wd-p wp-block-paragraph\">\u062a\u06cc\u0645 \u0634\u0645\u0627 \u0686\u0646\u062f \u0646\u0641\u0631 \u0627\u0633\u062a \u0648 \u0633\u0631\u0648\u0631 \u0631\u0627 \u0628\u0627 \u0628\u0633\u062a\u0647 \u0631\u0633\u0645\u06cc \u0628\u0627\u0644\u0627 \u0622\u0648\u0631\u062f\u06cc\u062f \u06cc\u0627 \u062f\u0627\u06a9\u0631\u061f \u0627\u06af\u0631 \u067e\u06cc\u0627\u0645\u200c\u0647\u0627 \u0647\u0646\u0648\u0632 \u0641\u0642\u0637 \u0628\u0627 \u0631\u0641\u0631\u0634 \u0645\u06cc\u200c\u0622\u06cc\u0646\u062f\u060c \u06a9\u062f\u0627\u0645 \u0634\u0645\u0627\u0631\u0647 \u0627\u0632 \u0641\u0647\u0631\u0633\u062a Nginx \u062f\u0631 \u0641\u0627\u06cc\u0644 \u0634\u0645\u0627 \u0646\u06cc\u0633\u062a\u061f<\/p>\n\n\n\n<p class=\"wd-p wp-block-paragraph\"><strong>\u0645\u0646\u0627\u0628\u0639<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list wd-list\">\n<li><a href=\"https:\/\/docs.mattermost.com\/deployment-guide\/server\/linux\/deploy-ubuntu.html\" rel=\"nofollow noopener\" target=\"_blank\">\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 Mattermost \u0631\u0648\u06cc Ubuntu \u0648 Debian<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.mattermost.com\/deployment-guide\/server\/setup-nginx-proxy.html\" rel=\"nofollow noopener\" target=\"_blank\">\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc NGINX \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u067e\u0631\u0648\u06a9\u0633\u06cc Mattermost<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.mattermost.com\/deployment-guide\/backup-disaster-recovery.html\" rel=\"nofollow noopener\" target=\"_blank\">\u0628\u06a9\u0627\u067e \u0648 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc Mattermost<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.mattermost.com\/product-overview\/editions-and-offerings.html\" rel=\"nofollow noopener\" target=\"_blank\">\u0646\u0633\u062e\u0647\u200c\u0647\u0627 \u0648 \u0637\u0631\u062d\u200c\u0647\u0627\u06cc Mattermost<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.mattermost.com\/product-overview\/faq-general.html\" rel=\"nofollow noopener\" target=\"_blank\">\u067e\u0631\u0633\u0634\u200c\u0647\u0627\u06cc \u0645\u062a\u062f\u0627\u0648\u0644 \u0639\u0645\u0648\u0645\u06cc Mattermost<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u0686\u0647\u0627\u0631 \u062c\u0632\u0621 \u0633\u0631\u0648\u0631 Mattermost \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648\u060c \u0647\u0631\u06a9\u062f\u0627\u0645 \u0628\u0627 \u0646\u0634\u0627\u0646\u0647 \u062e\u0631\u0627\u0628\u06cc \u0648 \u062c\u0627\u06cc\u0634 \u062f\u0631 \u0628\u06a9\u0627\u067e.<br \/>\n\u0646\u0635\u0628 PostgreSQL 15\u060c \u0628\u0633\u062a\u0647 APT \u06cc\u0627 \u062f\u0627\u06a9\u0631\u060c Nginx \u0628\u0627 WebSocket \u0648 SSL\u060c \u0648 \u0633\u0627\u062e\u062a \u062a\u06cc\u0645 \u0628\u0627 mmctl.<br \/>\n\u0628\u06a9\u0627\u067e \u0633\u0647\u200c\u062a\u06a9\u0647 \u0628\u0627 \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u06cc\u060c \u0627\u0631\u062a\u0642\u0627\u06cc ESR \u0628\u0647 ESR \u0648 \u0628\u0646\u062f \u062a\u062d\u0631\u06cc\u0645 \u0633\u0627\u0632\u0646\u062f\u0647.<\/p>\n","protected":false},"author":16,"featured_media":40101,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_gspb_post_css":".gspb_container-id-gsbp-c89d001{flex-direction:column;box-sizing:border-box}#gspb_container-id-gsbp-c89d001.gspb_container>p:last-of-type{margin-bottom:0}#gspb_container-id-gsbp-c89d001.gspb_container{position:relative;box-sizing:border-box}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item.gsclose>.gs-accordion-item__content{overflow:hidden;opacity:0}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item.gsopen>.gs-accordion-item__content{opacity:1;max-height:5000px}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__title>.gs-accordion-item__heading{outline:0;text-decoration:none;margin:0!important;padding:0!important;flex-grow:1}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__title{z-index:1;margin:0;cursor:pointer;transition:all .3s ease-in-out;position:relative;display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__content{z-index:0;position:relative;max-height:0;will-change:max-height;transition:all .25s ease-out}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__title{background-color:#f9f9f9}@media (max-width:999.98px){#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__title{background-color:#f9f9f9}}@media (max-width:689.98px){#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__title{background-color:#f9f9f9}}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__title{border-style:solid;border-width:1px;border-color:var(--wp--preset--color--border, #00000012)}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__content{background-color:#fff}@media (max-width:999.98px){#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__content{background-color:#fff}}@media (max-width:689.98px){#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__content{background-color:#fff}}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__content{border-color:var(--wp--preset--color--border, #00000012);border-style:solid;border-width:1px;border-top-color:#00000000}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__title span.iconfortoggle{margin-left:15px;display:inline-block;height:14px;width:14px;position:relative}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item{margin-bottom:10px}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__content>.gs-accordion-item__text,#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__title{padding:15px 20px}#gspb_accordion-id-gsbp-c89d002 .gs-accordion-item>.gs-accordion-item__title{text-align:right;flex-direction:row-reverse}.gs-accordion .gs-accordion-item.gsopen .gs-accordion-item__title .gs-iconafter{transform:rotate(0)}.gs-accordion .gs-accordion-item__title span.iconfortoggle .gs-iconafter,.gs-accordion .gs-accordion-item__title span.iconfortoggle .gs-iconbefore{content:'';width:14px;height:2px;border-radius:2px;background-color:#111;position:absolute;top:6px;left:0}.gs-accordion .gs-accordion-item__title span.iconfortoggle .gs-iconafter{transform:rotate(90deg);transition:all .3s ease-in-out}#gspb_accordion-id-gsbp-c89d002{margin-top:10px;margin-bottom:10px}#gspb_image-id-gsbp-738afd7 img,#gspb_image-id-gsbp-76f71a7 img,#gspb_image-id-gsbp-7fc026c img,#gspb_image-id-gsbp-ac7299a img{vertical-align:top;display:inline-block;box-sizing:border-box;max-width:100%;height:auto}","rank_math_title":"\u0646\u0635\u0628 Mattermost \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648\u061b \u067e\u06cc\u0627\u0645\u200c\u0631\u0633\u0627\u0646 \u062a\u06cc\u0645\u06cc \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0634\u0631\u06a9\u062a","rank_math_description":"\u0646\u0635\u0628 Mattermost \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u067e\u06cc\u0627\u0645\u200c\u0631\u0633\u0627\u0646 \u062a\u06cc\u0645\u06cc \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0634\u0631\u06a9\u062a\u061b \u0627\u0632 \u062a\u0646\u0638\u06cc\u0645 PostgreSQL \u0648 Nginx \u062a\u0627 \u0627\u062a\u0635\u0627\u0644 \u062f\u0627\u0645\u0646\u0647 \u0648 \u0641\u0639\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0627\u0645\u0646 \u0628\u0627 SSL.","rank_math_focus_keyword":"\u0646\u0635\u0628 mattermost,Nginx","footnotes":""},"categories":[29],"tags":[],"class_list":["post-39997","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server-training"],"_links":{"self":[{"href":"https:\/\/webdade.com\/blog\/wp-json\/wp\/v2\/posts\/39997","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webdade.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webdade.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webdade.com\/blog\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/webdade.com\/blog\/wp-json\/wp\/v2\/comments?post=39997"}],"version-history":[{"count":7,"href":"https:\/\/webdade.com\/blog\/wp-json\/wp\/v2\/posts\/39997\/revisions"}],"predecessor-version":[{"id":40110,"href":"https:\/\/webdade.com\/blog\/wp-json\/wp\/v2\/posts\/39997\/revisions\/40110"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webdade.com\/blog\/wp-json\/wp\/v2\/media\/40101"}],"wp:attachment":[{"href":"https:\/\/webdade.com\/blog\/wp-json\/wp\/v2\/media?parent=39997"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webdade.com\/blog\/wp-json\/wp\/v2\/categories?post=39997"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webdade.com\/blog\/wp-json\/wp\/v2\/tags?post=39997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}