--- title: "Deploy Mattermost on Linux" --- Mattermost Server runs on any 64-bit Linux system. For production, run Mattermost and the PostgreSQL database on separate hosts. A single-host install is suitable for development and testing. ## Choose an install method ## Before you install The Ubuntu/Debian, Red Hat (RHEL), and manual (tarball) methods all require you to bring your own host and database: - A 64-bit Linux host with at least **1 vCPU and 2 GB RAM** (supports up to ~1,000 users) - **PostgreSQL 14+** — either local to the host, on a separate server, or a managed service. See [Set up the database](/deployment-guide/server/prepare-database), or [PostgreSQL Migration](/administration-guide/manage/admin/postgres-migration) if you're moving from MySQL. - Inbound ports **80** and **443** (HTTPS) and **8065** (System Console). See [Network ports](/deployment-guide/server/prepare-network) for the full list, and [Prepare](/deployment-guide/server/preparations) for the pre-install checklist. - Outbound port **10025** if you'll send notification email through a relay. The Azure Native VM method provisions its own compute, managed PostgreSQL, and storage from the Azure Marketplace — see its [prerequisites](/deployment-guide/server/linux/deploy-azure-native-vm#prerequisites) instead. ## After you install Once Mattermost is running, complete these steps before exposing it to users: - [Set up an NGINX reverse proxy](/deployment-guide/server/setup-nginx-proxy) and [terminate TLS](/deployment-guide/server/setup-tls) at the proxy. Don't run Mattermost as an internet-facing service without a proxy. - Configure [pre-authentication secrets](/deployment-guide/server/pre-authentication-secrets) if your environment requires them. - Work through [Configure Mattermost](/administration-guide/configure/configure-index) and [onboard your users](/administration-guide/onboard/onboard-index). :::tip Air-gapped environments If you're deploying into a network-isolated enclave, see [Air-Gapped Operations](/deployment-guide/air-gapped-operations/quick-start-runbook) instead of the connected install paths above. It covers package mirroring and the configuration changes needed on top of the standard install. ::: :::note[Troubleshooting] See [Deployment troubleshooting](/deployment-guide/server/troubleshooting) for common install failures. :::