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) kendi sunucunuzdan gelen gönderileri görüntülerken, federasyon akışı (federated feed), sunucunuz tarafından bilinen ve abone olunan kullanıcıların tüm genel gönderilerini görüntüler;
  • Kullanıcılar; yanıtlayarak, paylaşarak, favorilere ekleyerek, yer imlerine ekleyerek veya ek bir menü kullanarak gönderilerle doğrudan akış içinde veya gelişmiş gönderi görünümünde etkileşime girebilirler;
  • 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, bir bağlantı aracılığıyla kullanıcıları, hashtag'leri ve gönderileri bulmanıza olanak tanır. Tam metin araması yüklü olduğunda, kendi gönderilerinizi ve favorilerinizi arayabilirsiniz;
  • Mastodon'daki özel (private) 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

Bu yazılımın çalıştırma özellikleri hakkında bilgi için bu bağlantıya bakın.

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ü yükleriz.

Mastodon kurulumundan 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 ya sunucu kontrol panelindeki Configuration >> Tags sekmesinde ya da gönderilen e-postada bulabilirsiniz.

  • Web arayüzü ile Mastodon paneline erişim bağlantısı: webpanel etiketindedir;
  • Sunucuya bağlanmak için Login ve Password: Yazılım kurulumu tamamlanıp sunucu hazır olduğunda e-posta yoluyla adresinize gönderilir;
  • Mastodon web arayüzünde kimlik doğrulamak için kullanılan 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 alınan 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ılarını kullanın:

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

Bilgi

Yardımcı araçları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ı ile 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):

    # E-posta 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: http://your_server:8025 web arayüzünü açın - 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ı koyun.

Temel 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ıyla 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 adresine yönlenen bir A kaydı ayarlayın;
    • Mail sunucusuna yönlenen MX kaydını 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 bilgiyi buradan edinin.

  4. Mastodon Ortam Değişkenlerini Güncelleyin /opt/mastodonn/.env.production dosyasını düzenleyerek 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 Yapın

    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 yol açabilir. Aşağıdaki içeriğe sahip bir /data/nginx/user_conf.d/skaz.online.conf Nginx yapılandırma dosyası 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/
    
    Eğer 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ği için 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 adını değiştirin:

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 sunucu 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 edin Alan adını bir tarayıcıda açın — Mastodon ana sayfası yüklenmelidir.

Yönetici paneli ilk ayarları

Yönetici paneline erişmek için webpanel etiketindeki bağlantıyı takip edin, Log In düğmesine tıklayı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 için kuralları belirler. Kuralları yönetmek için Administration >> Server Rules bölümüne gidin.

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 uygun olduğ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, güncellemek, moderasyon sürecine topluluğu dahil etmek önemlidir.

Kullanıcı davet etme

Mastodon'un abonelikleri yönetmek ve yeni kullanıcıları davet etmek 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 kitlesi olan ve bu hesaba abone olanları listeler.
  • Invite people - 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.