{"id":3307,"date":"2022-11-03T07:37:20","date_gmt":"2025-07-12T20:46:20","guid":{"rendered":""},"modified":"2025-02-02T00:46:20","modified_gmt":"2025-02-01T23:46:20","slug":"how-to-install-mattermost-with-nginx-proxy-and-free-let-039-s-encrypt-ssl-on-ubuntu-24-04","status":"publish","type":"post","link":"https:\/\/netcloud24.com\/knowledgebase\/how-to-install-mattermost-with-nginx-proxy-and-free-let-039-s-encrypt-ssl-on-ubuntu-24-04\/","title":{"rendered":"Linux VPS &#038; VPS Windows Setup Guide | NetCloud24 Mattermost with Nginx Proxy and Free Let&#039;s Encrypt SSL on Ubuntu 24.04"},"content":{"rendered":"<p>\u00a0<\/p>\n<\/p>\n<h1>\u00a0<\/h1>\n<h2>Introduction<\/h2>\n<p>Mattermost is an open-source platform for team communication. This guide will walk you through installing Mattermost with Nginx as a reverse proxy and securing it with a free SSL certificate from Let&#8217;s Encrypt on Ubuntu 24.04.<\/p>\n<h2>Prerequisites<\/h2>\n<ul>\n<li>A server running Ubuntu 24.04<\/li>\n<li>Root access or a user with <code>sudo<\/code> privileges<\/li>\n<li>Domain name pointing to your server&#8217;s IP address<\/li>\n<\/ul>\n<h2>Step 1: Update the System<\/h2>\n<p>Start by updating your package list and upgrading your installed packages:<\/p>\n<pre><code>sudo apt update\r\nsudo apt upgrade -y<\/code><\/pre>\n<h2>Step 2: Install Required Dependencies<\/h2>\n<p>Install dependencies required for Mattermost and Nginx:<\/p>\n<pre><code>sudo apt install -y nginx postgresql postgresql-contrib<\/code><\/pre>\n<h2>Step 3: Install Mattermost<\/h2>\n<p>Download the latest Mattermost server from the official website:<\/p>\n<pre><code>wget https:\/\/releases.mattermost.com\/$(wget -qO- https:\/\/api.github.com\/repos\/mattermost\/mattermost-server\/releases\/latest | grep tag_name | cut -d '\"' -f 2)\/mattermost-server-*.tar.gz<\/code><\/pre>\n<p>Extract Mattermost:<\/p>\n<pre><code>tar -xvzf mattermost-server-*.tar.gz<\/code><\/pre>\n<p>Move the Mattermost folder to the appropriate location:<\/p>\n<pre><code>sudo mv mattermost \/opt\/<\/code><\/pre>\n<h2>Step 4: Configure PostgreSQL Database<\/h2>\n<p>Log into PostgreSQL and create a new database and user for Mattermost:<\/p>\n<pre><code>sudo -u postgres psql<\/code><\/pre>\n<p>Run the following commands in the PostgreSQL shell:<\/p>\n<pre><code>CREATE DATABASE mattermost_db;\r\nCREATE USER mattermost_user WITH PASSWORD 'your_password';\r\nGRANT ALL PRIVILEGES ON DATABASE mattermost_db TO mattermost_user;\r\n\\q<\/code><\/pre>\n<h2>Step 5: Configure Mattermost<\/h2>\n<p>Edit the Mattermost configuration file:<\/p>\n<pre><code>sudo nano \/opt\/mattermost\/config\/config.json<\/code><\/pre>\n<p>Update the following settings:<\/p>\n<pre><code>\"DriverName\": \"postgres\",\r\n\"DataSource\": \"mattermost_user:your_password@tcp(localhost:5432)\/mattermost_db?sslmode=disable\",<\/code><\/pre>\n<p>Also set the <code>SiteURL<\/code> to your domain:<\/p>\n<pre><code>\"SiteURL\": \"https:\/\/your_domain.com\",<\/code><\/pre>\n<h2>Step 6: Start Mattermost<\/h2>\n<p>Start the Mattermost server:<\/p>\n<pre><code>cd \/opt\/mattermost\/bin\r\nsudo .\/mattermost <\/code><\/pre>\n<p>To run Mattermost in the background, you can use <code>screen<\/code> or set it up with a service file.<\/p>\n<h2>Step 7: Install Nginx<\/h2>\n<p>Start Nginx and enable it to run on boot:<\/p>\n<pre><code>sudo systemctl start nginx\r\nsudo systemctl enable nginx<\/code><\/pre>\n<h2>Step 8: Configure Nginx as a Reverse Proxy<\/h2>\n<p>Create a new Nginx configuration file for Mattermost:<\/p>\n<pre><code>sudo nano \/etc\/nginx\/sites-available\/mattermost<\/code><\/pre>\n<p>Enter the following configuration:<\/p>\n<pre><code>server {\r\n    listen 80;\r\n    server_name your_domain.com;\r\n\r\n    location \/ {\r\n        proxy_pass http:\/\/localhost:8065;\r\n        proxy_http_version 1.1;\r\n        proxy_set_header Upgrade $http_upgrade;\r\n        proxy_set_header Connection 'upgrade';\r\n        proxy_set_header Host $host;\r\n        proxy_cache_bypass $http_upgrade;\r\n    }\r\n}<\/code><\/pre>\n<p>Enable the configuration:<\/p>\n<pre><code>sudo ln -s \/etc\/nginx\/sites-available\/mattermost \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>Test the Nginx configuration:<\/p>\n<pre><code>sudo nginx -t<\/code><\/pre>\n<p>Restart Nginx:<\/p>\n<pre><code>sudo systemctl restart nginx<\/code><\/pre>\n<h2>Step 9: Install Certbot for Let&#8217;s Encrypt SSL<\/h2>\n<p>Install Certbot:<\/p>\n<pre><code>sudo apt install certbot python3-certbot-nginx<\/code><\/pre>\n<h2>Step 10: Obtain a Free SSL Certificate<\/h2>\n<p>Run Certbot to get your SSL certificate:<\/p>\n<pre><code>sudo certbot --nginx -d your_domain.com<\/code><\/pre>\n<p>Follow the instructions to complete the SSL setup. Certbot will automatically configure Nginx to use the new certificate.<\/p>\n<h2>Step 11: Test HTTPS Access<\/h2>\n<p>Open your browser and navigate to <code>https:\/\/your_domain.com<\/code> to verify that Mattermost is accessible over HTTPS.<\/p>\n<h2>Conclusion<\/h2>\n<p>You have successfully installed Mattermost with Nginx as a reverse proxy and secured it with a Let&#8217;s Encrypt SSL certificate on Ubuntu 24.04.<\/p>\n<h2>Resources<\/h2>\n<ul>\n<li><a href=\"https:\/\/mattermost.com\/\" target=\"_blank\" rel=\"follow\">Mattermost Official Website<\/a><\/li>\n<li><a href=\"https:\/\/docs.mattermost.com\/\" target=\"_blank\" rel=\"follow\">Mattermost Documentation<\/a><\/li>\n<li><a href=\"https:\/\/letsencrypt.org\/\" target=\"_blank\" rel=\"follow\">Let&#8217;s Encrypt Official Website<\/a><\/li>\n<li><a href=\"https:\/\/www.nginx.com\/\" target=\"_blank\" rel=\"follow\">Nginx Official Website<\/a><\/li>\n<\/ul>\n<div class=\"post-author-box\" style=\"border-top:1px solid #ddd;margin-top:20px;padding-top:15px;\">\n<p><strong>Author:<\/strong> \u0141ukasz Bodziony<\/p>\n<p><strong>Website:<\/strong> <a href=\"https:\/\/ca.netcloud24.com\" target=\"_blank\" rel=\"dofollow\">Windows VPS<\/a><\/p>\n<p><em>\u0141ukasz Bodziony is the CEO and founder of <a href=\"https:\/\/netcloud24.com\" target=\"_blank\" rel=\"dofollow\">NETCLOUD24<\/a>, a global VPS hosting brand proudly originating from Poland. With extensive experience in cloud computing, virtualization, and server management, he delivers high-performance <strong>Windows VPS<\/strong> and <strong>Remote Desktop Services (RDS)<\/strong> solutions to clients across Europe, North America, and beyond.<\/em><\/p>\n<p><em>His expertise covers a wide range of technologies, including <strong>Microsoft Azure<\/strong>, <strong>Proxmox VE<\/strong>, <strong>Amazon Web Services (AWS)<\/strong>, and numerous other virtualization and cloud platforms.<\/em><\/p>\n<p><em>Beyond running his hosting business, \u0141ukasz also provides <strong>professional paid server configuration and optimization services<\/strong> for companies and individuals. Outside of work, he is dedicated to caring for his children and building a secure future for them.<\/em><\/p>\n<p><em>If you are interested in working with him or need expert assistance with your hosting, cloud environment, or server setup, feel free to reach out via <a href=\"https:\/\/ca.netcloud24.com\" target=\"_blank\" rel=\"dofollow\">Windows VPS<\/a>.<\/em><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0 \u00a0 Introduction Mattermost is an open-source platform for team communication. This guide will walk you through installing Mattermost with Nginx as a reverse proxy and securing it\u2026<\/p>\n","protected":false},"author":1,"featured_media":3421,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[],"tags":[14,12,11,23,20,21,22,17,7,8,6,10,18,19,15,24,16,5,13,9],"class_list":["post-3307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-cheapvps","tag-cloudvps","tag-hostingvps","tag-rds","tag-rdscal","tag-remotedesktop","tag-remotedesktopvps","tag-servervps","tag-ukvps","tag-virtualserver","tag-vpshosting","tag-vpsserver","tag-vpssolutions","tag-vpswindows","tag-vpswithwindows","tag-windowsrds","tag-windowsserver","tag-windowsvps","tag-windowsvpshosting","tag-windowsvpsuk"],"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/3307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/comments?post=3307"}],"version-history":[{"count":0,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/3307\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/media\/3421"}],"wp:attachment":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/media?parent=3307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/categories?post=3307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/tags?post=3307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}