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 -yBir kernel güncellemesi uygulandıysa sunucuyu yeniden başlatın:
sudo reboot3. 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-nginxPostgreSQL ve Nginx’in çalıştığını doğrulayın:
sudo systemctl status postgresql
sudo systemctl status nginxHer 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.gzAdı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/mattermostAdı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 mattermostAdı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/mattermost5. 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 postgresAdım 2: PostgreSQL İnteraktif Kabuğunu Açın
psqlAdı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
exit6. Mattermost’u Yapılandırın
Adım 1: Mattermost Yapılandırma Dosyasını Açın
sudo nano /opt/mattermost/config/config.jsonAdı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.serviceAdı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.targetAdım 3: Mattermost Hizmetini Etkinleştirin ve Başlatın
sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermostAdım 4: Hizmetin Çalışıp Çalışmadığını Doğrulayın
sudo systemctl status mattermostactive (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/mattermostAdı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 -tBeklenen çıktı:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulAdım 5: Nginx’i Yeniden Başlatın
sudo systemctl restart nginx9. 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.comCertbot 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-runAdım 3: Nginx’i Yeniden Başlatın
sudo systemctl restart nginxMattermost ö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 nginxMattermost’u Doğrudan Port 8065’te Test Edin
curl -I http://localhost:8065HTTP 200 OK veya yönlendirme yanıtı almalısınız.
Web Tabanlı Kurulumu Tamamlayın
- Tarayıcınızı açın ve
https://your_domain.comadresine gidin - Mattermost kurulum sihirbazı tarafından karşılanacaksınız
- Yönetici hesabınızı oluşturun
- İlk takımınızı ve çalışma alanınızı yapılandırın
- Takım üyelerini davet edin ve işbirliğine başlayın
Yaygın Sorunları Giderme
| Sorun | Muhtemel Neden | Çözüm |
|---|---|---|
| Mattermost hizmeti başlamıyor | config.json içinde yanlış veritabanı kimlik bilgileri | SqlSettings içindeki DataSource dizesini çift kontrol edin |
| Nginx’te 502 Bad Gateway | Mattermost port 8065’te çalışmıyor | sudo 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 etmiyor | DNS A kaydını güncelleyin ve yayılmasını bekleyin |
| Veritabanı bağlantısı reddedildi | PostgreSQL çalışmıyor | sudo 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.
tasarruf edin