Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

You can self-host Mattermost on one properly sized Linux VPS by running the application with the signed Ubuntu/Debian package, PostgreSQL 14 or newer, NGINX, HTTPS, persistent file storage, SMTP (if you need email), and tested off-host backups. A small installation starts at 1 vCPU and 2 GB of RAM; Mattermost documents that baseline as supporting approximately 1,000 users, but files, search, calls, integrations, retention, and concurrency can require substantially more resources. Keep Mattermost’s application ports private and expose only NGINX on ports 80 and 443.

This guide follows the practical single-VPS route, explains when Docker Compose or Kubernetes is more appropriate, and gives the operational steps that make a deployment recoverable rather than merely reachable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose the architecture before provisioning the VPS

Decide whether you need a straightforward private deployment or a highly available service. Your choice affects the database location, file storage, reverse proxy, upgrade process, backup design, and the people required to operate it.

Deployment option Best fit Important trade-offs
Ubuntu/Debian APT package One conventional VPS or a small private deployment Simple systemd service management and package updates, but you still provide PostgreSQL, reverse proxy, storage, SMTP, and backups.
Manual Linux tarball Administrators who need distribution flexibility or air-gapped control More manual work for systemd integration, upgrades, permissions, and maintenance.
Docker Compose Evaluation, testing, and development The official deployment guidance says Docker deployments are not supported for production; Compose is not a production clustering or high-availability design.
Kubernetes Operator Production high availability, rolling operations, and an existing Kubernetes platform Requires substantially more infrastructure, operational skill, and planning around the applicable Mattermost plan and licensing.

For the rest of this article, the assumed design is a 64-bit Ubuntu 22.04 or 24.04 LTS server, or current Debian stable, with Mattermost installed from its signed APT repository. PostgreSQL may run on the same VPS, another host, or a managed service. NGINX terminates TLS, and users reach a DNS name rather than an IP address.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.

What a small Mattermost VPS must provide

Supported operating system and CPU

Use a supported 64-bit Linux distribution. The documented minimum for the Ubuntu/Debian package path is 1 vCPU and 2 GB RAM, with an approximate capacity of 1,000 users. That is a starting baseline, not a performance guarantee. A busy team with large uploads, frequent calls, extensive search, many integrations, or long retention may exhaust those resources quickly.

Memory and storage planning

Reserve memory for PostgreSQL, NGINX, the Mattermost process, background jobs, and the operating system. Do not size the disk only for the initial binary. Mattermost data includes uploaded files, avatars, exports, logs, plugins, and database growth. Include free space for temporary files, package upgrades, and database maintenance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

PostgreSQL 14 or newer

Mattermost requires PostgreSQL 14+. Confirm the actual server version before installing the application:

psql --version

PostgreSQL can be local for a small installation, on a separate VPS for isolation, or managed by a database provider. A remote database must allow connections from the Mattermost host while refusing unrelated sources; protect the connection with the provider’s supported encryption and access controls.

Network identity

Choose the final hostname before creating certificates, for example chat.example.net. Create an A or AAAA record that points to the VPS and verify that public DNS resolves correctly. If you will use both IPv4 and IPv6, test both paths; a broken AAAA record can make some users fail even when IPv4 works.

Prepare PostgreSQL before installing Mattermost

Create a dedicated database and login rather than using the PostgreSQL superuser. Generate a long random password and store it in your password manager. The following session illustrates the required objects; replace the double-curly-brace values with your own values inside the shell or SQL client.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo -u postgres psql
CREATE USER {{MATTERMOST_DB_USER}} WITH PASSWORD '{{MATTERMOST_DB_PASSWORD}}';
CREATE DATABASE {{MATTERMOST_DB_NAME}} OWNER {{MATTERMOST_DB_USER}};
GRANT ALL PRIVILEGES ON DATABASE {{MATTERMOST_DB_NAME}} TO {{MATTERMOST_DB_USER}};
q

For a remote PostgreSQL server, perform the equivalent work through its administration interface, then record the hostname, port, database name, username, password, and TLS requirements. Test a connection from the VPS before installing Mattermost so a firewall or authentication problem does not look like an application failure.

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth

Keep the database credentials out of shell history, tickets, screenshots, and source control. If the database is local, bind PostgreSQL to the local interface or the private network address needed by Mattermost; there is no reason to expose it to the public internet.

Install Mattermost from the signed APT repository

The package route is the least complicated single-VPS installation because it creates a dedicated mattermost user and group, installs under /opt/mattermost, and supplies a systemd unit. Add the signed Mattermost APT repository by following the current Linux installation instructions for your distribution, then install the package:

sudo apt update
sudo apt install mattermost

Do not substitute an unverified third-party package. Check that the installed files are owned by the Mattermost service account and that the service unit exists:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo systemctl status mattermost
sudo systemctl cat mattermost

Configure the database connection and the public site address in Mattermost’s configuration. On a package installation, the configuration is normally in /opt/mattermost/config/config.json. Preserve the JSON syntax, use the PostgreSQL connection details you prepared earlier, and set the site URL to the eventual HTTPS address rather than an internal IP.

Start the service and test it locally before introducing the reverse proxy:

sudo systemctl start mattermost
curl -I http://127.0.0.1:8065
sudo systemctl enable mattermost

A successful local response proves that the application is listening. It does not prove that DNS, TLS, WebSocket forwarding, uploads, email, or external access are correct. The default application listener is an internal dependency; it should not be opened directly to the internet.

Put NGINX in front of Mattermost

Mattermost’s production guidance treats a reverse proxy and TLS as prerequisites: “The reverse proxy and TLS are prerequisites for a production deployment specifically: don’t expose Mattermost to users without them.” NGINX should be the only public entry point.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black | LED mouse pad with 14 lighting modes, covers keyboard & mouse, anti-slip rubber base, waterproof surface, USB powered
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

Install and configure the proxy

Install NGINX from your distribution, then create a server block for the Mattermost hostname. This example includes the headers and WebSocket forwarding needed by a typical deployment:

server {
    listen 80;
    server_name {{MATTERMOST_DOMAIN}};

    client_max_body_size 100M;

    location / {
        proxy_pass http://127.0.0.1:8065;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Choose client_max_body_size to match your upload policy and available storage; the value above is an example, not a Mattermost limit. Enable the site, validate the syntax, and reload NGINX:

sudo nginx -t
sudo systemctl reload nginx

Keep Mattermost’s listener ports 8065, 8067, and 8074 bound to localhost or a private network. Do not publish them in the VPS firewall or security group. Production users should reach NGINX on 80 and 443 only.

Obtain and enforce HTTPS

After DNS points to the VPS and port 80 is reachable, obtain a certificate from your chosen certificate authority using its current NGINX integration. A Certbot-style workflow looks like this:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d {{MATTERMOST_DOMAIN}}

Use the exact certificate command and renewal method supported by your distribution and certificate authority; the important result is an automatically renewed certificate and an NGINX server block that redirects HTTP to HTTPS. Test renewal in the authority's supported dry-run mode, then visit the HTTPS hostname from an external network. Check that the browser shows a valid certificate, that login works, and that a channel remains connected while you refresh or send messages.

Update Mattermost's site URL to the canonical HTTPS URL if it was initially configured with HTTP. Mixed schemes cause incorrect links, redirects, and integrations.

Configure persistent file storage

Database backups alone do not restore uploaded files. Select storage deliberately:

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
  • Local storage: simplest for a small, single-node installation. Put it on persistent disk, monitor free space, and include the directory in backups.
  • S3-compatible object storage: better durability and easier separation from the VPS. Plan credentials, bucket access, lifecycle rules, and the network path before switching users to it.
  • Network storage: useful when an organization already operates shared storage, but test latency, permissions, locking behavior, and failure recovery.

Whichever mode you select, verify it with a real upload and download while logged in as a normal user. Back up the Mattermost data directory, configuration, plugins, and any custom assets that your chosen storage mode leaves on the server. Document who owns the storage credentials and how they are rotated.

Set up SMTP, DNS, and the first administrator

SMTP notifications

Email is not required for the application to render channels, but SMTP is needed for features such as invitations, password resets, and notifications. Use an authenticated relay, restrict its credentials, and verify sender and recipient addresses with a test message. Allow outbound port 10025 only when your documented SMTP relay path requires it; do not open arbitrary inbound mail ports on the Mattermost VPS.

DNS and external checks

Confirm that the public hostname resolves to the intended address, that the certificate name matches it, and that the proxy sends the original host and scheme. Test from outside the VPS network because local DNS overrides can hide public mistakes.

Administrator and onboarding

Complete the initial administrator setup through the HTTPS URL. Before inviting a team, review the system console settings for file limits, session policy, registration behavior, notification defaults, and plugin policy. Create a second administrative recovery path that follows your organization's access policy, but do not share one account among operators.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Back up the complete service and practice a restore

Mattermost's operational guidance is direct: “Back up and recover to set the backup strategy before you have users.” A usable backup covers every component required to reconstruct the service:

  • PostgreSQL data, roles, extensions, and connection information.
  • Mattermost file data, whether local or in object/network storage.
  • config.json, plugins, custom themes, and other deployment-specific configuration.
  • Relevant logs and the inventory of installed package versions.
  • DNS, certificate renewal, SMTP, and storage configuration records.

Database backup example

A PostgreSQL custom-format dump is convenient for selective or full restoration:

sudo -u postgres pg_dump -Fc {{MATTERMOST_DB_NAME}} > /var/backups/{{MATTERMOST_DB_NAME}}-$(date +%F).dump

Store the dump off the VPS, encrypt it, restrict its permissions, and retain enough versions to meet your recovery policy. A dump on the same disk is not protection against disk loss or a compromised server.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

Application data backup

Stop Mattermost briefly when you need a consistent filesystem snapshot of local data, configuration, and plugins:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo systemctl stop mattermost
sudo tar -C /opt -czf /var/backups/mattermost-files-$(date +%F).tar.gz mattermost
sudo systemctl start mattermost

If files live in object storage, use that service's versioning or replication features and include a manifest in your backup set. Coordinate the database dump and file snapshot closely enough that a restored database does not reference files that were created after the file backup.

Test recovery before cutover

  1. Provision a temporary isolated Linux host with PostgreSQL 14 or newer.
  2. Restore the database into a new database and restore the Mattermost configuration and file data.
  3. Start the service without exposing it publicly, then verify login, channel history, file downloads, plugins, and search.
  4. Record the elapsed time, missing dependencies, and every manual action. That record is your recovery runbook.

Choose backup frequency, off-host location, retention, encryption, and recovery-time objectives before users depend on the service.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Secure the VPS and limit the attack surface

  • Allow inbound SSH only from administration networks, and use key-based access with a separate operator account.
  • Allow public TCP 80 and 443 to NGINX. Keep 8065, 8067, and 8074 private and deny direct internet access.
  • Permit outbound SMTP traffic only when required by your relay configuration; the documented relay path may use port 10025.
  • Apply operating-system security updates and Mattermost package updates on a maintenance schedule.
  • Keep database credentials, object-storage keys, SMTP passwords, and certificate private keys out of repositories and chat messages.
  • Monitor disk space, memory, CPU, PostgreSQL health, NGINX errors, failed logins, backup jobs, and certificate expiry.
  • Document who can administer the VPS, database, DNS, storage, SMTP, and certificate systems. A single-person dependency is an availability risk.

Understand capacity instead of treating the minimum as a promise

The published 1-vCPU/2-GB baseline is useful for a small start, but user count alone does not determine capacity. Evaluate these workload drivers:

Workload factor What it changes Planning response
Concurrent active users Application CPU, memory, database connections, and WebSocket activity Measure peak concurrency, not only registered accounts; scale CPU and memory when saturation appears.
Files and retention Disk or object-storage consumption, backup duration, and restore size Set quotas and retention, monitor growth, and keep file storage independent when durability matters.
Search workload CPU, memory, indexing time, and storage Include indexing and re-indexing windows in capacity tests and maintenance plans.
Calls and media Additional CPU, memory, bandwidth, and latency sensitivity Test peak call usage separately from ordinary messaging.
Integrations and plugins Background jobs, outbound requests, and failure modes outside the core service Inventory integrations, restrict permissions, and monitor job failures.
Availability target Whether one VPS and local storage are acceptable Move toward shared storage, separate database services, Redis caching, clustering, and the applicable Mattermost plan when a single node is insufficient.

No universal VPS price or Mattermost performance benchmark is published for every workload. Infrastructure cost depends on region, provider, disk type, transfer allowance, managed PostgreSQL, object storage, SMTP, DNS, backup retention, and the availability target. Obtain current regional prices only after you know the architecture you actually need.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Upgrade without replacing a running binary

Read the release notes and compatibility requirements before every upgrade. Schedule a maintenance window, confirm a recent restorable backup, and stop Mattermost before replacing package files:

sudo systemctl stop mattermost
sudo apt update
sudo apt upgrade mattermost
sudo systemctl start mattermost
sudo systemctl status mattermost

Stopping the service matters because replacing a running binary can leave a process using old files while the filesystem contains a different version. After the upgrade, test the HTTPS URL, login, messaging, uploads, notifications, integrations, and background jobs. Keep the previous package and database recovery procedure available until validation is complete.

Plan the path from one VPS to high availability

A single VPS is an understandable first architecture, but it has one host, one maintenance boundary, and usually one failure domain. Before adding nodes, identify the bottleneck and the recovery objective. High availability generally requires shared or replicated file storage, a database topology designed for failover, clustering, search planning, Redis caching where applicable, load balancing, centralized logs, and an operational plan for upgrades and restores. It also requires the Mattermost plan that supports the intended capabilities.

Docker Compose is useful for evaluation, testing, and development, but it is not the production clustering answer. Kubernetes with the Mattermost Operator is the production-oriented route when your organization already has the skills and platform to operate it. Moving to Kubernetes solely to avoid learning backups or TLS usually increases risk rather than reducing it.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Troubleshoot by testing one layer at a time

Symptom Likely layer Checks and corrective action
Local request to port 8065 fails Mattermost service or database Run systemctl status mattermost, inspect service logs, verify PostgreSQL credentials and version, and confirm the service is listening on the expected interface.
Local access works but the domain times out DNS, firewall, or NGINX Resolve the hostname externally, check ports 80/443 at the VPS firewall and provider security group, run nginx -t, and inspect NGINX error logs.
Login loads but messages disconnect WebSocket proxying Verify HTTP/1.1, Upgrade, Connection, Host, and forwarded headers in the NGINX location block; ensure users are not bypassing the proxy.
Uploads fail or disappear after restart File storage Check the configured storage mode, service-account permissions, free space, object-storage credentials, and whether the backup includes the actual file location.
Password resets or invitations never arrive SMTP Check relay credentials, sender policy, outbound firewall rules, relay logs, and Mattermost notification settings; send a controlled test to an address you can inspect.
Upgrade starts but the service will not return Package, configuration, or migration Read systemd and Mattermost logs, validate JSON configuration, confirm database connectivity, and use the tested restore plan instead of repeatedly restarting blindly.
Disk usage grows unexpectedly Files, logs, database, or backups Measure each directory, enforce retention, rotate logs, move durable files or backups off-host, and alert before the filesystem reaches capacity.

Pre-launch checklist

  • Supported 64-bit Ubuntu 22.04/24.04 LTS or current Debian stable is installed.
  • The VPS has at least 1 vCPU and 2 GB RAM, with a documented growth plan.
  • PostgreSQL 14+ is reachable with a dedicated Mattermost database user.
  • Mattermost is installed from the signed package source under /opt/mattermost and managed by systemd.
  • The service works locally before proxy changes.
  • DNS points to the VPS and NGINX serves the correct hostname.
  • TLS is valid, renews automatically, and HTTP redirects to HTTPS.
  • Only ports 80 and 443 are public; 8065, 8067, and 8074 remain private.
  • File storage has been tested with a real upload and download.
  • SMTP has been tested if invitations, resets, or email notifications are required.
  • PostgreSQL, files, configuration, plugins, and operational records are backed up off-host.
  • A restoration has been performed on an isolated system and timed.
  • Monitoring and ownership are assigned before users are invited.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.