Tüm barındırma hizmetlerinde 15% tasarruf edin

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın: Skills Başlayın
Bölüm
Linux Yönetim

Ubuntu’da Mattermost Nasıl Kurulur: Tam Adım Adım Kılavuz

Mattermost, kuruluşlara iletişim altyapıları üzerinde tam kontrol sağlayan güçlü, açık kaynaklı bir mesajlaşma ve ekip işbirliği platformudur. Slack ve Microsoft Teams’e kendi sunucunuzda barındırılan bir alternatif olarak Mattermost, kurumsal düzeyde güvenlik, tam veri sahipliği ve kapsamlı özelleştirme sunmaktadır — tümü yinelenen SaaS abonelik maliyetleri olmadan.

Bu kapsamlı rehber, bir Ubuntu sunucusunda Mattermost’u yükleme ve yapılandırmanın her adımında size yol göstermektedir; PostgreSQL veritabanı kurulumu, Nginx ters proxy yapılandırması ve SSL sertifikası entegrasyonu dahil olmak üzere.

1. Ön Koşullar

Başlamadan önce, aşağıdaki gereksinimlerin yerine getirildiğinden emin olun:

  • Ubuntu 20.04 veya Ubuntu 22.04 LTS çalıştıran bir sunucu (Ubuntu 18.04 yaşam döngüsü sona ermiştir ve üretim için önerilmez)
  • Sunucuda Sudo veya root ayrıcalıkları
  • Sunucunuzun IP adresine işaret eden bir alan adı (üretim dağıtımları için kesinlikle önerilir)
  • Minimum donanım: 1 vCPU, 2 GB RAM, 10 GB disk alanı (küçük takımlar için); daha büyük dağıtımlar için ölçeklendirin

> Hosting İpucu: Sorunsuz bir Mattermost dağıtımı için, AlexHost’tan güvenilir bir VPS Hosting planı düşünün. SSD depolama, tam root erişimi ve garantili çalışma süresi ile AlexHost VPS örnekleri, kendi kendine barındırılan işbirliği araçları için idealdir.

2. Sisteminizi Güncelleyin

Her zaman paket dizininizi yenileyerek ve tüm bekleyen güvenlik ve sistem güncellemelerini uygulayarak başlayın:

sudo apt update
sudo apt upgrade -y

Bir kernel güncellemesi uygulandıysa sunucuyu yeniden başlatın:

sudo reboot

3. Gerekli Bağımlılıkları Yükleyin

Mattermost üç temel bileşene bağlıdır: PostgreSQL (veritabanı), Nginx (ters proxy) ve Certbot (SSL sertifikası yönetimi).

Tüm gerekli paketleri tek adımda yükleyin:

sudo apt install -y postgresql postgresql-contrib
sudo apt install -y nginx
sudo apt install -y certbot python3-certbot-nginx

PostgreSQL ve Nginx’in çalıştığını doğrulayın:

sudo systemctl status postgresql
sudo systemctl status nginx

Her iki hizmet de active (running) göstermelidir.

4. Mattermost’u İndirin ve Kurun

Adım 1: En Son Mattermost Sürümünü İndirin

En son kararlı sürümü bulmak için resmi Mattermost sürümleri sayfasını ziyaret edin. Doğrudan sunucunuza indirmek için wget kullanın:

wget https://releases.mattermost.com/9.5.0/mattermost-team-9.5.0-linux-amd64.tar.gz

> Not: 9.5.0 yerine en son mevcut sürüm numarasını yazın. Güvenlik yamaları ve yeni özellikler için her zaman en son kararlı sürümü kullanın.

Adım 2: Arşivi Çıkartın

tar -xvzf mattermost-team-9.5.0-linux-amd64.tar.gz

Adım 3: Mattermost’u Sistem Dizinine Taşıyın

Çıkartılan klasörü /opt konumuna taşıyın; bu, isteğe bağlı üçüncü taraf yazılımlar için standart Linux konumudur:

sudo mv mattermost /opt/mattermost

Adım 4: Özel Bir Mattermost Sistem Kullanıcısı Oluşturun

Mattermost’u özel, ayrıcalıksız bir kullanıcı olarak çalıştırmak kritik bir güvenlik en iyi uygulamasıdır:

sudo useradd -r -m -d /opt/mattermost -s /bin/false mattermost

Adım 5: Veri Dizinini Oluşturun ve İzinleri Ayarlayın

sudo mkdir -p /opt/mattermost/data
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R 750 /opt/mattermost

5. PostgreSQL Veritabanını Ayarlayın

Mattermost, adanmış bir PostgreSQL veritabanı ve kullanıcısı gerektirir. Bu adımları dikkatle izleyin.

Adım 1: PostgreSQL Sistem Kullanıcısına Geçin

sudo -i -u postgres

Adım 2: PostgreSQL İnteraktif Kabuğunu Açın

psql

Adım 3: Veritabanı, Kullanıcı Oluşturun ve İzinleri Verin

Aşağıdaki SQL komutlarını sırayla yürütün:

CREATE DATABASE mattermost_db;
CREATE USER mattermost WITH PASSWORD 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON DATABASE mattermost_db TO mattermost;

> Güvenlik Notu: YourStrongPassword123! yerine güçlü, benzersiz bir parola koyun. Bunu güvenli bir şekilde oluşturmak ve depolamak için bir parola yöneticisi kullanın.

PostgreSQL 15 ve sonrası için, şema izinlerini de vermeniz gerekir:

c mattermost_db
GRANT ALL ON SCHEMA public TO mattermost;

Adım 4: PostgreSQL Kabuğundan Çıkın ve Kullanıcınıza Dönün

q
exit

6. Mattermost’u Yapılandırın

Adım 1: Mattermost Yapılandırma Dosyasını Açın

sudo nano /opt/mattermost/config/config.json

Adım 2: Veritabanı Bağlantı Ayarlarını Güncelleyin

SqlSettings bloğunu bulun ve PostgreSQL kimlik bilgilerinizle güncelleyin:

"SqlSettings": {
    "DriverName": "postgres",
    "DataSource": "postgres://mattermost:YourStrongPassword123!@localhost:5432/mattermost_db?sslmode=disable&connect_timeout=10",
    "DataSourceReplicas": [],
    "DataSourceSearchReplicas": [],
    "MaxIdleConns": 20,
    "ConnMaxLifetimeMilliseconds": 3600000,
    "MaxOpenConns": 300,
    "Trace": false,
    "AtRestEncryptKey": "",
    "QueryTimeout": 30
}

Adım 3: Site URL’sini Yapılandırın

ServiceSettings bloğunu bulun ve etki alanınızı ayarlayın:

"ServiceSettings": {
    "SiteURL": "https://your_domain.com",
    ...
}

your_domain.com yerine gerçek etki alanı adınızı yazın.

Adım 4: Kaydedin ve Çıkın

Ctrl+X tuşuna basın, ardından Y tuşuna basın, sonra dosyayı kaydetmek ve kapatmak için Enter tuşuna basın.

7. Systemd Hizmeti Oluşturun

Mattermost’u bir systemd hizmeti olarak çalıştırmak, önyüklemede otomatik olarak başlamasını ve başarısızlık durumunda yeniden başlamasını sağlar — herhangi bir üretim dağıtımı için gereklidir.

Adım 1: Hizmet Dosyasını Oluşturun

sudo nano /etc/systemd/system/mattermost.service

Adım 2: Hizmet Yapılandırmasını Ekleyin

Aşağıdaki içeriği yapıştırın:

[Unit]
Description=Mattermost Team Messaging Server
After=network.target postgresql.service
Wants=postgresql.service

[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Adım 3: Mattermost Hizmetini Etkinleştirin ve Başlatın

sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermost

Adım 4: Hizmetin Çalışıp Çalışmadığını Doğrulayın

sudo systemctl status mattermost

active (running) görmelisiniz. Mattermost varsayılan olarak 8065 portunda dinler.

8. Nginx’i Ters Proxy Olarak Yapılandırın

Nginx, ters proxy görevi görerek, port 80/443’ten gelen HTTP/HTTPS trafiğini Mattermost’un dahili port 8065’ine iletir. Bu aynı zamanda Mattermost’un gerçek zamanlı mesajlaşma için gerektirdiği WebSocket desteğini etkinleştirir.

Adım 1: Nginx Yapılandırma Dosyasını Oluşturun

sudo nano /etc/nginx/sites-available/mattermost

Adım 2: Ters Proxy Yapılandırmasını Ekleyin

upstream backend {
    server localhost:8065;
    keepalive 32;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
    listen 80;
    server_name your_domain.com;

    location ~ /api/v[0-9]+/(users/)?websocket$ {
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        client_max_body_size 50M;
        proxy_set_header Host $http_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 X-Frame-Options SAMEORIGIN;
        proxy_buffers 256 16k;
        proxy_buffer_size 16k;
        proxy_read_timeout 600s;
        proxy_pass http://backend;
    }

    location / {
        client_max_body_size 50M;
        proxy_set_header Connection "";
        proxy_set_header Host $http_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 X-Frame-Options SAMEORIGIN;
        proxy_buffers 256 16k;
        proxy_buffer_size 16k;
        proxy_read_timeout 600s;
        proxy_cache mattermost_cache;
        proxy_cache_revalidate on;
        proxy_cache_min_uses 2;
        proxy_cache_use_stale timeout;
        proxy_cache_lock on;
        proxy_pass http://backend;
    }
}

your_domain.com yerine gerçek alan adınızı yazın.

Adım 3: Site Yapılandırmasını Etkinleştirin

sudo ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/

Adım 4: Nginx Yapılandırmasını Söz Dizimi Hataları Açısından Test Edin

sudo nginx -t

Beklenen çıktı:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Adım 5: Nginx’i Yeniden Başlatın

sudo systemctl restart nginx

9. Mattermost’u SSL ile Güvenli Hale Getirin (HTTPS)

Mattermost’u HTTPS üzerinden çalıştırmak herhangi bir üretim ortamı için zorunludur. Kullanıcılar ve sunucunuz arasındaki tüm iletişimi şifreler, kimlik bilgilerini ve mesajları kesintiye uğramaktan korur.

> SSL Kolaylaştırıldı: AlexHost tüm web siteleri ve uygulamalar için uygun fiyatlı SSL Sertifikaları sunmaktadır. Alternatif olarak, aşağıdaki ücretsiz Let’s Encrypt yöntemini kullanın.

Adım 1: Certbot ile Ücretsiz SSL Sertifikası Alın

sudo certbot --nginx -d your_domain.com

Certbot otomatik olarak:

  • Alan adı sahipliğini doğrula
  • Let’s Encrypt sertifikası yayınla
  • HTTPS’yi etkinleştirmek için Nginx yapılandırmanızı değiştir
  • Otomatik sertifika yenilemeyi ayarla

Adım 2: Otomatik Yenilemeyi Doğrulayın

sudo certbot renew --dry-run

Adım 3: Nginx’i Yeniden Başlatın

sudo systemctl restart nginx

Mattermost örneğiniz artık https://your_domain.com adresinde erişilebilir.

10. Son Doğrulama

Tüm Hizmetlerin Çalıştığını Kontrol Edin

sudo systemctl status postgresql
sudo systemctl status mattermost
sudo systemctl status nginx

Mattermost’u Doğrudan Port 8065’te Test Edin

curl -I http://localhost:8065

HTTP 200 OK veya yönlendirme yanıtı almalısınız.

Web Tabanlı Kurulumu Tamamlayın

  1. Tarayıcınızı açın ve https://your_domain.com adresine gidin
  2. Mattermost kurulum sihirbazı tarafından karşılanacaksınız
  3. Yönetici hesabınızı oluşturun
  4. İlk takımınızı ve çalışma alanınızı yapılandırın
  5. Takım üyelerini davet edin ve işbirliğine başlayın

Yaygın Sorunları Giderme

SorunMuhtemel NedenÇözüm
Mattermost hizmeti başlamıyorconfig.json içinde yanlış veritabanı kimlik bilgileriSqlSettings içindeki DataSource dizesini çift kontrol edin
Nginx’te 502 Bad GatewayMattermost port 8065’te çalışmıyorsudo systemctl restart mattermost komutunu çalıştırın
WebSocket bağlantı hatalarıNginx’te eksik WebSocket proxy başlıklarıNginx yapılandırmasında WebSocket location bloğunu doğrulayın
SSL sertifikası hatalarıDomain sunucu IP’sine işaret etmiyorDNS A kaydını güncelleyin ve yayılmasını bekleyin
Veritabanı bağlantısı reddedildiPostgreSQL çalışmıyorsudo systemctl start postgresql komutunu çalıştırın

Neden Mattermost için Güvenilir bir Host Seçmelisiniz?

Mattermost örneğinizin performansı ve güvenilirliği, temel altyapıya büyük ölçüde bağlıdır. Küçük ve orta ölçekli takımlar için, iyi yapılandırılmış bir VPS ideal seçimdir. Yüksek mesaj hacmine sahip daha büyük kuruluşlar için, maksimum performans, izolasyon ve kontrol için bir Dedicated Server‘a yükseltmeyi düşünün.

Mattermost dağıtımınız için bir alan adına ihtiyacınız varsa, AlexHost tam DNS yönetimi ile rekabetçi Domain Registration sunmaktadır. Mattermost’un yanında birden fazla hizmet çalıştırıyorsanız, Shared Web Hosting veya bir VPS with cPanel sezgisel bir kontrol paneli ile yönetimi basitleştirebilir.

Özet

Mattermost’u Ubuntu üzerinde başarıyla yükleyip yapılandırdınız:

  • ✅ Arka uç veritabanı olarak PostgreSQL
  • ✅ WebSocket desteğine sahip üretim sınıfı ters proxy olarak Nginx
  • ✅ Şifreli HTTPS bağlantıları için Let’s Encrypt SSL
  • ✅ Otomatik başlatma ve çökme kurtarması için systemd hizmeti
  • ✅ Güvenlik için uygun dosya izinleri ve özel sistem kullanıcısı

Mattermost artık ekibinizin özel, kendi barındırılan iletişim merkezi olarak hizmet vermeye hazır — tamamen sizin kontrolünüzde, veriler altyapınızdan dışarı çıkmıyor.