Ana içeriğe geç

Mastodon

Bu makalede

Bilgi

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

Mastodon. Temel Özellikler

  • Mastodon, kullanıcıların bağlı herhangi bir sunucudan diğer kullanıcılara abone olmalarını ve iletişim kurmalarını sağlar;
  • Platform, kullanıcıların ilginç içerikler keşfetmelerine yardımcı olmak için genel gönderi akışları sunar. Yerel akış sunucunuzdaki gönderileri gösterirken, federasyon akışı sunucunuzun bildiği, sunucunuzdan abone olduğunuz kullanıcıların tüm genel gönderilerini gösterir;
  • Kullanıcılar, gönderilere doğrudan akışta 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şimde bulunabilir;
  • Mastodon, profiliniz ve gönderilerinizle ilgili çeşitli etkileşim olayları için bildirimler gönderir. Bu bildirimler türlerine göre filtrelenebilir;
  • Bir kullanıcıya abone olmak için profilindeki Follow düğmesine tıklamanız yeterlidir. Abone olduğunuz kullanıcıların yeni gönderileri için bildirimleri de etkinleştirebilirsiniz;
  • Mastodon'daki arama işlevi, bağlantı aracılığıyla kullanıcıları, etiketleri ve gönderileri bulmanıza olanak tanır. Tam metin araması yüklüyse, 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, gönderi akışını yalnızca 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, geliştiricinin web sitesinden veya işletim sistemi depolarından yazılımın en son sürümünü varsayılan olarak yükleriz.

Mastodon'un dağıtılmasından sonra başlangıç

Sipariş için ödeme yapıldıktan sonra sunucunun çalışmaya hazır olduğu, kayıt sırasında belirtilen e-posta adresine gönderilen bir bildirimle iletilir. Bu bildirim, VPS'nin IP adresini ve bağlantı için kullanıcı adı ve şifreyi içerecektir. Şirketimizin müşterileri, sunucudaki donanımı ve API kontrol panelini — Invapi üzerinden yönetir.

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

  • Web arayüzü ile Mastodon kontrol paneline erişim bağlantısı: webpanel etiketinde;
  • Kullanıcı Adı ve Şifre sunucuya bağlanmak için: yazılım dağıtıldıktan sonra sunucu hazır olduğunda e-posta adresinize gönderilir;
  • Kullanıcı Adı ve Şifre Mastodon web arayüzünde kimlik doğrulaması için: yönetici konsolu üzerinden hesap oluşturulurken manuel olarak ayarlanır.

Web arayüzüne erişim bağlantısı şunlar olacaktır: https://mastodon{Server_ID_from_Invapi}.hostkey.in

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

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

  • Hesap ayarları, oluşturma, değiştirme, izin verme 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 başvurun.

Kullanım Örneği

  1. Sunucuya SSH üzerinden bağlanın:
    ssh root@<server_ip>
    
  2. Mastodon web uygulaması kapsayıcısına giriş yapın. mastodon_web_1 kapsayıcısını bulun ve 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ı ve [email protected] yerine kullanıcının gerçek e-postasını yazın. Bu komutu çalıştırdıktan sonra kullanıcı oluşturulacaktır. Ekranda görüntülenen şifreyi kaydettiğinizden emin olun:

Yönetici Yetkileri Verme ve Kullanıcı Onayı

Bir kullanıcı oluşturduktan sonra, izinlerini ve durumunu değiştirmek için veritabanında 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. Durumunu güncelleyin:

    user.update(approved: true)
    
    Bu işlem, yönetici panelinden Your application is pending review by our staff... bildirimini kaldırır.

  4. Ona 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
    

Posta Sunucusunu Yapılandırma

Posta sunucusunu yapılandırmanız veya değiştirmeniz gerekiyorsa, şunları çalıştırı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):

    # Sending mail
    # ------------
    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 kapsayıcılarını yeniden başlatın Yeni ayarları uygulamak için Mastodon kapsayıcıları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 - Günlükleri 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ımını kontrol edin

Notlar

Docker Kapsayıcılarını Kontrol Etme: Hangi kapsayıcıların çalıştığından emin değilseniz, şunu çalıştırın:

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

Bilgi

Yapılandırma ayarları hakkında daha fazla bilgi edinmek için Geliştirici Dokümantasyonuna bakın.

Bilgi

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

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

Bilgi

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

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 veya değişkenlerdeki alan adı
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önlendiren bir A kaydı ayarlayın;
    • Posta sunucusuna yönlendiren MX kaydını yapılandırın.
  3. Invapi üzerinde IP adresi ayarlarında bir PTR kaydı ekleyin; !!! info "Bilgi" Invapi'de PTR kayıtlarının nasıl ayarlanacağı 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:

    # Previous:
    # LOCAL_DOMAIN=mastodon<server_ID>.hostkey.in
    
    
    # Updated:
    LOCAL_DOMAIN=skaz.online
    WEB_DOMAIN=skaz.online
    
    5. HTTPS Desteği ile Nginx'i Kurun

    5.1 Nginx Yapılandırmasını Oluşturun Önemli: Eski yapılandırmalar farklı proxy_pass yönergeleri içerebileceğinden arızalara yol açabileceğinden, yeni bir yapılandırma dosyası oluşturun. Aşağıdaki içeriğe sahip /data/nginx/user_conf.d/skaz.online.conf adlı bir 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 certificates
        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;
    
    
        # Main Mastodon application (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 support
            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 support
            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ışmalara 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 tutmak için yeniden adlandırın

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 yönergeleri duplicate listen options hatasına neden olur
  • Eski yapılandırmalar farklı proxy_pass adresleri veya portları içerebilir
  • Nginx, birden fazla sunucu bloğu ile istekleri yanlış yorumlayabilir

  • Hizmetleri Yeniden Başlatın docker-compose.yml içeren dizinde şunları çalıştırın:

    docker compose down
    
    docker compose up -d
    

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

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

Yönetici paneli ilk ayarları

Yönetici paneline erişmek için webpanel etiketindeki bağlantıyı izleyin, 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.

Kuralları belirleme temel ilkeleri:

  • Kullanıcıları caydırmamak için kuralların makul olması ve genel kabul görmüş nezaket standartlarına uygun olması sağlanmalıdır;
  • Şiddet, şiddet ve yasa dışı faaliyetler gibi yasak içerik türlerini açıkça belirtin ve NSFW içeriğinin kabul edilebilir seviyelerini netleştirin;
  • Kural ihlallerini uyarma, engelleme veya kısıtlama prosedürlerini, ayrıca disiplin tedbirlerini ve zaman sınırlarını belirtin;
  • Sunucu kuralları tüm kullanıcılar tarafından 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 önemlidir ve topluluğu bunları modlama ve iyileştirme sürecine dahil edin.

Kullanıcıları davet etme

Mastodon, abonelikleri yönetmek ve yeni kullanıcıları davet etmek için akışta birden fazla sekmeye sahiptir:

  • Follows and Followers - bu sekme, mevcut kullanıcının abone olduğu hesapları gösterir ve akış bu kullanıcılardan girişleri gösterecektir. Ayrıca, bu sekme bu hesaba abone olanları listeler, bu da Mastodon'daki kitledir.
  • Invite people - 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ılmasına izin vermek için paylaşılabilen benzersiz bir bağlantının oluşturulmasını açıklar.

.

Not

Temel Mastodon ayarları hakkında ayrıntılı bilgi için geliştiricilerin dokümantasyonuna başvurun.

API kullanarak Mastodon ile bir sunucu sipariş etme