Ana içeriğe geç

Mastodon

Bu makalede

Bilgi

Mastodon - ücretsiz ve açık kaynaklı, merkeziyetsiz sosyal platform. Merkezi olan ticari platformların aksine, Mastodon herhangi bir tek kuruluş tarafından kontrol edilmez.

Mastodon. Temel Özellikler

  • Mastodon, kullanıcıların herhangi bir bağlı sunucudaki diğer kullanıcılara abone olmasını ve onlarla iletişim kurmasını sağlar;
  • Platform, kullanıcıların ilginç içerikleri keşfetmelerine yardımcı olmak için genel gönderi akışları sunar. Yerel akış (local feed) sunucunuzdan gelen gönderileri görüntülerken, federasyon akışı (federated feed) sunucunuz tarafından bilinen, sunucunuza abone olan kullanıcıların tüm genel gönderilerini görüntüler;
  • Kullanıcılar, gönderilere doğrudan akış içinde veya gelişmiş gönderi görünümünde yanıt vererek, paylaşarak, favorilere ekleyerek, yer imlerine ekleyerek veya ek bir menü kullanarak etkileşime girebilir;
  • Mastodon, profiliniz ve gönderilerinizle ilgili çeşitli etkileşim olayları için bildirimler gönderir. Bu bildirimler türe göre filtrelenebilir;
  • Bir kullanıcıya abone olmak için profilindeki Follow düğmesine tıklamanız yeterlidir. Ayrıca aboneliklerinizden gelen yeni gönderiler için bildirimleri etkinleştirebilirsiniz; Mastodon'daki arama işlevi; kullanıcıları, hashtag'leri ve gönderileri bir bağlantı aracılığıyla bulmanıza olanak tanır. Tam metin arama yüklü olduğunda, kendi gönderilerinizi ve favorilerinizi arayabilirsiniz;
  • Mastodon'daki özel gönderiler yalnızca aboneler tarafından görülebilir. Bunlar ayrı bir diyalog sütununda gösterilir;
  • Abonelik listeleri, yalnızca gönderi akışını görüntülemek için kullanılabilir.

Çalıştırma Özellikleri

ID Yazılım Adı Uyumlu OS VM BM VGPU GPU Min CPU (Çekirdekler) Min RAM (GB) Min HDD/SSD (GB) Özel Alan Adı Aktif
59 Mastodon Ubuntu 22.04 + + + + 2 2 - Hayır SİPARİŞ VER

Not

Aksi belirtilmedikçe, varsayılan olarak yazılımın geliştiricisinin web sitesinden veya işletim sistemi depolarından en son sürümünü kuruyoruz.

Mastodon kurulduktan sonra başlangıç

Sipariş ödemesi yapıldıktan sonra, sunucunun çalışmaya hazır olduğuna dair kayıt sırasında belirtilen e-posta adresine bir bildirim gönderilecektir. Bu bildirim, VPS'in IP adresinin yanı sıra bağlantı için kullanıcı adı ve şifreyi içerecektir. Şirketimizin müşterileri, sunucudaki donanımı ve API kontrol panelini — Invapi — üzerinden yönetirler.

Yetkilendirme verilerini, sunucu kontrol panelindeki Configuration >> Tags sekmesinde veya gönderilen e-postada bulabilirsiniz.

  • Mastodon kontrol paneline web arayüzü ile erişim bağlantısı: webpanel etiketinde yer alır;
  • Sunucuya bağlanmak için Login ve Password: yazılım kurulumu tamamlanıp sunucu hazır olduğunda e-posta ile adresinize gönderilir;
  • Mastodon web arayüzünde kimlik doğrulamak için Login ve Password, yönetici konsolu aracılığıyla hesap oluşturma sırasında manuel olarak ayarlanır.

Web arayüzüne erişim bağlantısı şu şekilde olacaktır: https://mastodon{Invapi'den gelen Server_ID}.hostkey.in

Yapılandırma değişikliği

Komut satırından Mastodon yapılandırmasını değiştirmek için tootctl ve rails yardımcı programlarını kullanın:

  • Hesap ayarları, oluşturma, değiştirme, izin atama vb.;
  • SMTP sunucu ayarları;
  • Kullanıcı kayıt ayarları.

Bilgi

Yardımcı programların nasıl kullanılacağı hakkında daha fazla bilgi için geliştirici dokümantasyonuna bakın.

Örnek Kullanım

  1. SSH üzerinden sunucuya bağlanın:
    ssh root@<server_ip>
    
  2. Mastodon web uygulaması konteynerına giriş yapın. mastodon_web_1 konteynerını bulun ve ona bağlanın:

    docker exec -it mastodon_web_1 bash
    

  3. Yeni bir kullanıcı oluşturmak için tootctl accounts create komutunu kullanın. Kullanıcı adını, e-postayı ve hesap onayı için --confirmed bayrağını belirtin.

    RAILS_ENV=production bin/tootctl accounts create new_username --email [email protected] --confirmed
    
    new_username yerine istediğiniz kullanıcı adını, [email protected] yerine kullanıcının gerçek e-postasını yazın. Bu komut yürütüldükten sonra kullanıcı oluşturulacaktır. Ekranda gösterilen şifreyi kaydettiğinizden emin olun:

Yönetici Yetkileri Verme ve Kullanıcı Onaylama

Bir kullanıcı oluşturduktan sonra, izinlerini ve durumunu değiştirmek için veritabanında onları bulmanız gerekir.

  1. Rails konsolunu başlatın:
    RAILS_ENV=production bin/rails console
    
  2. Kullanıcıyı e-posta veya kullanıcı adına göre bulun:
    user = User.find_by(email: '[email protected]')  # veya: User.find_by(username: 'new_username')
    
  3. Durumlarını güncelleyin:

    user.update(approved: true)
    
    Bu işlem, admin panelindeki Your application is pending review by our staff... bildirimini kaldıracaktır.

  4. Onlara bir yönetici rolü atayın:

    user.update(role: UserRole.find_by(name: 'Admin'))
    

  5. Doğrulayın:
    user.reload
    
    user.role           # => "Admin"
    
    user.approved       # => true
    
  6. Konsoldan çıkın:
    exit
    

Mail Sunucusu Yapılandırması

Mail sunucusunu yapılandırmanız veya değiştirmeniz gerekiyorsa, şunları yürütün:

  1. Yapılandırma dosyasını açın:

    nano /opt/mastodon/.env.production
    
    2. SMTP parametrelerini yapılandırın (örneğin MailHog için):

    # Mail gönderme
    # ------------
    SMTP_SERVER=mailhog
    SMTP_PORT=1025
    SMTP_LOGIN=
    SMTP_PASSWORD=
    SMTP_FROM_ADDRESS=notifications@your_domain
    SMTP_AUTH_METHOD=none
    SMTP_OPENSSL_VERIFY_MODE=none
    SMTP_ENABLE_STARTTLS=false
    
    3. Mastodon konteynerlarını yeniden başlatın Yeni ayarları uygulamak için Mastodon konteynerlarını yeniden başlatın:

    cd /opt/mastodon
    
    docker-compose restart
    
    4. E-posta işlevselliğini kontrol edin - MailHog için: web arayüzünü açın http://your_server:8025 - Logları kontrol edin:
    docker-compose -f /opt/mastodon/docker-compose.yml logs sidekiq | grep -i mail
    
    - Test edin: yeni bir kullanıcı kaydedin ve e-posta alınıp alınmadığını kontrol edin

Notlar

Docker Konteynerlarını Kontrol Etme: Hangi konteynerların çalıştığından emin değilseniz, şunu yürütün:

 docker ps
Mastodon konteynerlarının (mastodon_web_1, mastodon_db_1, vb.) çalıştığından emin olun.

Bilgi

Yapılandırma ayarları hakkında daha fazla bilgi için Geliştirici Dokümantasyonuna göz atın.

Bilgi

setup.sh ile çalışma hakkında daha fazla bilgi için Geliştirici Dokümantasyonuna bakın.

Mastodon Sunucu Alan Adını Değiştirme

Bilgi

Bu kılavuz, örnek alan adı olarak skaz.online kullanmaktadır. Başlangıçta Mastodon, mastodon<server_ID>.hostkey.in gibi bir alan adı ile yapılandırılır. Tüm yapılandırma örneklerinde skaz.online yerine kendi gerçek alan adınızı kullanın.

Önemli Dosyalar ve Dizinler

Dosya/Dizin Ne Değişir
/opt/mastodon/.env.production Ortam değişkenleri, alan adları
/data/nginx/user_conf.d/*.conf Yeni alan adı için Nginx yapılandırması
/etc/letsencrypt/live/ SSL sertifikaları (certbot kullanılıyorsa)
Docker Compose dosyaları docker-compose.yml içindeki alan adı veya değişkenler
SMTP Yapılandırması Alan adı ile ilgili adresleri güncelleyin

Alan adını değiştirmek için şu adımları izleyin:

  1. Kendi alan adınızı kaydedin, örneğin mastodon.mydomain.com.

  2. Bu alan adı için DNS kayıtlarını yapılandırın:

    • Mastodon sunucusunun IP adresini gösteren bir A kaydı ayarlayın;
    • Mail sunucusunu gösteren bir MX kaydı yapılandırın.
  3. Invapi üzerindeki IP adresi ayarlarında bir PTR kaydı ekleyin; !!! info "Bilgi" Invapi'de PTR kayıtlarını ayarlama hakkında daha fazla bilgi için buraya bakın.

  4. Mastodon Ortam Değişkenlerini Güncelleyin /opt/mastodon/.env.production dosyasını düzenleyin ve mevcut değeri (örneğin mastodon<server_ID>.hostkey.in) yeni alan adınızla değiştirin:

    # Önceki:
    # LOCAL_DOMAIN=mastodon<server_ID>.hostkey.in
    
    # Güncellenmiş:
    LOCAL_DOMAIN=skaz.online
    WEB_DOMAIN=skaz.online
    
    5. HTTPS Desteği ile Nginx Kurulumu

    5.1 Nginx Yapılandırması Oluşturun Önemli: Eski yapılandırmayı değiştirerek yeni bir yapılandırma dosyası oluşturun. Eski yapılandırmalar farklı proxy_pass direktifleri içerebilir ve bu da işlev bozukluğuna neden olabilir. Aşağıdaki içeriğe sahip bir Nginx yapılandırma dosyası /data/nginx/user_conf.d/skaz.online.conf oluşturun:

    server {
        listen 80;
        server_name skaz.online;
        return 301 https://$host$request_uri;
    }
    server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name skaz.online;
    
        # SSL sertifikaları
        ssl_certificate         /etc/letsencrypt/live/skaz.online/fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live/skaz.online/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/skaz.online/chain.pem;
        ssl_dhparam /etc/letsencrypt/dhparams/dhparam.pem;
    
        # Ana Mastodon uygulaması (port 3000)
        location / {
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header X-Forwarded-Ssl on;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:3000;
            real_ip_header X-Forwarded-For;
            # WebSocket desteği
            proxy_http_version 1.1;
            proxy_set_header X-Scheme $scheme;
            proxy_buffering off;
        }
    
        # Mastodon Streaming API (port 4000)
        location ^~ /api/v1/streaming {
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header X-Forwarded-Ssl on;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:4000;
            real_ip_header X-Forwarded-For;
            # WebSocket desteği
            proxy_http_version 1.1;
            proxy_set_header X-Scheme $scheme;
            proxy_buffering off;
        }
    }
    
    5.2 SSL Sertifikası Alın Sertifikayı kontrol edin:
    docker exec -it mastodon-nginx-1 ls /etc/letsencrypt/live/
    
    Sertifika eksikse, alın:
    docker compose stop nginx
    
    docker compose run --rm nginx certbot certonly --standalone -d skaz.online
    
    docker compose start nginx
    

  5. Çakışan Yapılandırmaları Temizleyin

Önemli! Birden fazla .conf dosyası çakışmaya neden olabileceğinden eski Nginx yapılandırmalarını kaldırın: Eski yapılandırmayı silin (örneğin mastodon<server_ID>.hostkey.in için)

rm /data/nginx/user_conf.d/mastodon<server_ID>*.conf
Veya yedek olarak tutmak için yeniden adlandırın

bash mv /data/nginx/user_conf.d/mastodon<server_ID>.hostkey.in.conf /data/nginx/user_conf.d/mastodon<server_ID>.hostkey.in.conf.backup

Çakışma nedenleri:

  • Yinelenen listen 443 ssl direktifleri duplicate listen options hatasına neden olur
  • Eski yapılandırmalar farklı proxy_pass adreslerine veya portlarına sahip olabilir
  • Nginx, birden fazla server bloğu olan istekleri yanlış yorumlayabilir

  • Servisleri Yeniden Başlatın docker-compose.yml dosyasının bulunduğu dizinde şunları yürütün:

    docker compose down
    
    docker compose up -d
    

  • İşlevselliği Doğrulayın Komut satırından test etme

    curl -Ik https://skaz.online
    
    Beklenen yanıt: HTTP/1.1 200 OK Tarayıcıdan kontrol etme Alan adını bir tarayıcıda açın — Mastodon ana sayfası yüklenmelidir.

Yönetici paneli başlangıç ayarları

Yönetici paneline erişmek için webpanel etiketindeki bağlantıya tıklayın, Log In düğmesine basın ve daha önce ayarlanan kimlik bilgilerini girin.

Sunucu kurallarını yönetme

Bu merkeziyetsiz sosyal ağdaki her bir sunucunun yöneticileri ve moderatörleri Mastodon kurallarını belirler. Kuralları yönetmek için Administration >> Server Rules yolunu izleyin.

Kural belirleme için temel ilkeler:

  • Kullanıcıları caydırmamak için kuralların makul olduğundan ve genel kabul görmüş nezaket standartlarına uyduğundan emin olun;
  • Zalimlik, şiddet ve yasa dışı faaliyetler gibi yasaklanmış içerik türlerini açıkça belirtin ve kabul edilebilir NSFW içerik seviyelerini netleştirin;
  • Kural ihlali yapanlar için uyarı, engelleme veya kısıtlama prosedürlerinin yanı sıra disiplin cezalarını ve süre sınırlarını belirleyin;
  • Sunucu kuralları tüm kullanıcılar için kolayca erişilebilir olmalı ve kayıt sırasında herkese açık olarak görüntülenmelidir;
  • Sunucu büyüdükçe kuralları periyodik olarak gözden geçirmek ve güncellemek, moderasyon ve iyileştirme sürecine topluluğu dahil etmek önemlidir.

Kullanıcı davet etme

Mastodon'un abonelikleri ve yeni kullanıcıları davet etmeyi yönetmek için akışta birden fazla sekmesi vardır:

  • Follows and Followers - bu sekme, mevcut kullanıcının abone olduğu hesapları görüntüler ve akış bu kullanıcılardan gelen girişleri gösterir. Ek olarak, bu sekme, Mastodon'daki hedef kitle olan ve bu hesaba abone olanları listeler.
  • Invite people - bu işlev, kullanıcıların arkadaşlarını ve tanıdıklarını sosyal ağlarına davet etmelerine olanak tanır. Bu metin, diğer kullanıcıların Mastodon sunucusuna katılmalarına izin vermek için paylaşılabilecek benzersiz bir bağlantının oluşturulmasını açıklar.

.

Not

Temel Mastodon ayarları hakkında ayrıntılı bilgi için geliştirici dokümantasyonuna bakın.

API kullanarak Mastodon yüklü bir sunucu sipariş etme

Bu yazılımı API kullanarak kurmak için bu talimatları izleyin.