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’in kendi sunucusunda barındırılan bir alternatifi olarak Mattermost, kurumsal düzeyde güvenlik, tam veri sahipliği ve kapsamlı özelleştirme sunuyor — tümü yinelenen SaaS abonelik maliyetleri olmadan.
Bu kapsamlı rehber, PostgreSQL veritabanı kurulumu, Nginx ters proxy yapılandırması ve SSL sertifikası entegrasyonu dahil olmak üzere, Mattermost’u bir Ubuntu sunucusuna yükleme ve yapılandırmanın her adımında size yol gösterir.
İçindekiler
- Ön Koşullar
- Sisteminizi Güncelleyin
- Gerekli Bağımlılıkları Yükleyin
- Mattermost’u İndirin ve Yükleyin
- PostgreSQL Veritabanını Kurun
- Mattermost’u Yapılandırın
- Systemd Hizmeti Oluşturun
- Nginx’i Ters Proxy Olarak Yapılandırın
- Mattermost’u SSL ile Güvenli Hale Getirin (HTTPS)
- Son Doğrulama
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 ortamı 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 ekipler için); daha büyük dağıtımlar için ölçeklendirin
> Barındırma İpucu: Sorunsuz bir Mattermost dağıtımı için, AlexHost’tan güvenilir bir VPS Barındırma planı düşünün. SSD depolama, tam root erişimi ve garantili çalışma süresi ile AlexHost VPS örnekleri, kendi sunucusunda 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 çekirdek 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 Yükleyin
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 dizinine taşıyın; bu, isteğe bağlı üçüncü taraf yazılım için standart Linux konumudur:
sudo mv mattermost /opt/mattermostAdım 4: Adanmış Bir Mattermost Sistem Kullanıcısı Oluşturun
Mattermost’u adanmış, 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ı Kurun
Mattermost, adanmış bir PostgreSQL veritabanı ve kullanıcı 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 Ayrıcalıkları Verin
Aşağıdaki SQL komutlarını birer birer 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 yazın. Bunu güvenli bir şekilde oluşturmak ve depolamak için bir parola yöneticisi kullanın.
PostgreSQL 15 ve sonrası için, şema ayrıcalıklarını da 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 alan adınızı ayarlayın:
"ServiceSettings": {
"SiteURL": "https://your_domain.com",
...
}your_domain.com yerine gerçek alan adınızı yazın.
Adım 4: Kaydedin ve Çıkın
Ctrl+X tuşuna, ardından Y tuşuna, ardından Enter tuşuna basarak dosyayı kaydedin ve kapatın.
7. Systemd Hizmeti Oluşturun
Mattermost’u systemd hizmeti olarak çalıştırmak, önyüklemede otomatik olarak başlamasını ve arızada 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ıştığını Doğrulayın
sudo systemctl status mattermostactive (running) görmek gerekir. Mattermost varsayılan olarak 8065 portunda dinler.
8. Nginx’i Ters Proxy Olarak Yapılandırın
Nginx, gelen HTTP/HTTPS trafiğini 80/443 portundan Mattermost’un iç 8065 portuna ileten bir ters proxy olarak görev yapar. 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özdizimi 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ı sunuyor. 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ğrulayacak
- Let’s Encrypt sertifikası yayınlayacak
- HTTPS’yi etkinleştirmek için Nginx yapılandırmanızı değiştirecek
- Otomatik sertifika y
