15%

Tüm Hosting Hizmetlerinde %15 indirim

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

Kodu kullanın:

Skills
Başlayın
01.11.2024
1 +1

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

  1. Ön Koşullar
  2. Sisteminizi Güncelleyin
  3. Gerekli Bağımlılıkları Yükleyin
  4. Mattermost’u İndirin ve Yükleyin
  5. PostgreSQL Veritabanını Kurun
  6. Mattermost’u Yapılandırın
  7. Systemd Hizmeti Oluşturun
  8. Nginx’i Ters Proxy Olarak Yapılandırın
  9. Mattermost’u SSL ile Güvenli Hale Getirin (HTTPS)
  10. 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 -y

Bir çekirdek 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 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.gz

Adı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/mattermost

Adı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 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ı 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 postgres

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

psql

Adı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
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 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.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ıştığını Doğrulayın

sudo systemctl status mattermost

active (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/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özdizimi 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ı 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.com

Certbot 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
15%

Tüm Hosting Hizmetlerinde %15 indirim

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

Kodu kullanın:

Skills
Başlayın