Ubuntu 24.04 veya Debian 13'e Mastodon kaynaktan nasıl kurulur
Mastodon sunucusunu resmi belgelerdeki gibi kaynaktan kurun: Ruby, Node.js, PostgreSQL, Redis, Certbot'lu Nginx, systemd servisleri, yedekler ve yükseltmeler.
- İleri
- 90 dk okuma
- Güncellendi
Denendiği sistemler: Ubuntu 24.04 LTS, Debian 13
Bu sayfada
- Ön koşullar
- Adım 1 — Sunucuyu güncelleyin ve güvenlik duvarını açın
- Adım 2 — Node.js ve PostgreSQL depolarını ekleyin
- Adım 3 — Sistem paketlerini kurun ve mastodon kullanıcısını oluşturun
- Adım 4 — PostgreSQL kullanıcısını oluşturun
- Adım 5 — Kodu alın ve Ruby'yi kurun
- Adım 6 — Ruby ve JavaScript bağımlılıklarını kurun
- Adım 7 — Kurulum sihirbazını çalıştırın
- Adım 8 — Sertifika alın ve Nginx'i yapılandırın
- Adım 9 — Mastodon servislerini başlatın
- Adım 10 — Yönetici kurulumunu tamamlayın ve medya temizliğini zamanlayın
- Yedekleme ve geri yükleme
- Mastodon güncelleme
- Sorun giderme
- Tarayıcı fil resimli hata sayfasını gösteriyor
- Sayfalar stil ve resim olmadan yükleniyor
- Onay e-postaları hiç gelmiyor
- Disk doluyor
- Bir yükseltmeden sonra bundle install Ruby sürüm hatasıyla başarısız oluyor
- Sonraki adımlar
Mastodon merkeziyetsiz bir sosyal ağdır: her sunucu kendi topluluğunu barındırır ve ActivityPub üzerinden binlerce başka sunucuyla federe olur. Bu rehber Mastodon'u resmi belgelerin anlattığı şekilde, kaynaktan, Ubuntu 24.04 LTS veya Debian 13 üzerine kurar: Node.js ve PostgreSQL kendi depolarından, Ruby rbenv ile, Redis, Certbot'tan Let's Encrypt sertifikası alan Nginx ve web uygulamasını, arka plan işçilerini ve streaming API'sini çalıştıran üç systemd servisi. Ardından sahip (owner) hesabını oluşturur, medya temizliğini zamanlar, yedeklemeyi ve yükseltmeleri ayarlarsınız.
Ön koşullar
- Ubuntu 24.04 LTS veya Debian 13 çalıştıran yeni bir sunucu. Resmi rehberin hedeflediği iki sürüm bunlardır; Ubuntu 26.04 ve Debian 12 kapsanmaz.
sudoyetkisi ve SSH anahtarıyla girişi olan, root olmayan bir kullanıcı: Yeni bir Linux sunucusunu güvenli hale getirin ve SSH anahtarlarını ayarlayın rehberlerine bakın.- Sunucuyu gösteren bir A kaydına (IPv6 kullanıyorsanız AAAA kaydına) sahip
social.example.comgibi bir alan adı. - Bir e-posta sağlayıcısından SMTP bilgileri: sunucu, port, kullanıcı adı, parola ve gönderen adresi.
- İsteğe bağlı: medya için S3 uyumlu bir kova; örneğin Self-hosted S3 depolama rehberindeki gibi.
Mastodon projesi en düşük gereksinimleri yayınlamaz. Aşağıdaki değerler küçük bir sunucu için temkinli bir başlangıç noktasıdır, resmi rakamlar değildir:
| Kaynak | En düşük (resmi) | Önerilen başlangıç |
|---|---|---|
| CPU | Yayınlanmamış | 2 vCPU |
| RAM | Yayınlanmamış | 4 GB; varlık (asset) derlemesi ve Sidekiq bellek ister |
| Disk | Yayınlanmamış | 40 GB SSD ve medya için ek alan ya da medya için nesne depolama |
| Yazılım | Ruby 3.3+, PostgreSQL 14+, Redis 7.0+, Node.js 22+ (Mastodon 4.7) | Aşağıdaki adımların kurduğu sürümler |
Adım 1 — Sunucuyu güncelleyin ve güvenlik duvarını açın
Bir root kabuğu açın, güncellemeleri kurun ve yalnızca SSH ile web trafiğine izin verin. Resmi ön koşullar aynı portlar için iptables kuralları kullanır; ufw daha az yazarak aynı sonucu verir:
sudo -i
apt update && apt upgrade -y
apt install -y ufw
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status verboseAdım 2 — Node.js ve PostgreSQL depolarını ekleyin
Mastodon rehberi Node.js 24'ü NodeSource'tan, PostgreSQL'i ise PostgreSQL projesinin kendi apt deposundan kurar:
apt install -y curl wget gnupg lsb-release ca-certificates
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_24.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
wget -O /usr/share/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.listAdım 3 — Sistem paketlerini kurun ve mastodon kullanıcısını oluşturun
Derleme araçlarını, medya kütüphanelerini, Nginx, Node.js, Redis, PostgreSQL ve Certbot'u tek komutla kurun, Yarn'ı sağlayan corepack'i etkinleştirin ve kodun sahibi olacak yetkisiz mastodon kullanıcısını oluşturun:
apt update
apt install -y imagemagick ffmpeg libvips-tools libpq-dev libxslt1-dev file git \
protobuf-compiler pkg-config autoconf bison build-essential \
libssl-dev libyaml-dev libreadline-dev zlib1g-dev libffi-dev libgdbm-dev \
nginx nodejs redis-server postgresql certbot python3-certbot-nginx \
libidn-dev libicu-dev libjemalloc-dev
corepack enable
adduser --disabled-password mastodon
node -vnode -v bir v24 sürümü yazmalıdır. adduser isteğe bağlı kullanıcı bilgilerini sorar; atlamak için Enter tuşuna basın.
Adım 4 — PostgreSQL kullanıcısını oluşturun
Mastodon PostgreSQL'e yerel soket üzerinden aynı adlı Linux kullanıcısı olarak bağlanır; bu yüzden veritabanı kullanıcısının parolaya ihtiyacı yoktur:
sudo -u postgres psqlCREATE USER mastodon CREATEDB;
\qDaha büyük sunucular için rehber, PostgreSQL'i /etc/postgresql/18/main/postgresql.conf içinde pgTune değerleriyle ayarlamayı ve PostgreSQL'i yeniden başlatmayı önerir. Küçük bir sunucu varsayılanlarla sorunsuz çalışır.
Adım 5 — Kodu alın ve Ruby'yi kurun
mastodon kullanıcısına geçin, depoyu klonlayın, en son kararlı sürüm etiketine geçin ve sürümün istediği Ruby sürümünü rbenv ile kurun:
su - mastodon
git clone https://github.com/mastodon/mastodon.git live && cd live
git checkout $(git tag -l | grep '^v[0-9.]*$' | sort -V | tail -n 1)
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install
ruby -vrbenv install sürümü depodaki .ruby-version dosyasından okur ve Ruby'yi jemalloc ile derler; bu birkaç dakika sürer. ruby -v aynı sürümü yazmalıdır.
Adım 6 — Ruby ve JavaScript bağımlılıklarını kurun
Hâlâ mastodon kullanıcısı olarak, ~/live içinde:
bundle config deployment 'true'
bundle config without 'development test'
bundle install
yarn installİki bundle config satırı yalnızca ilk kurulumda gerekir. Her iki kurulum da biraz zaman alır; buradaki hatalar genellikle Adım 3'ten bir sistem paketinin eksik olduğunu gösterir.
Adım 7 — Kurulum sihirbazını çalıştırın
Etkileşimli sihirbaz .env.production dosyasını yazar, tüm sırları ve şifreleme anahtarlarını üretir, veritabanı şemasını oluşturur, varlıkları derler ve ilk yönetici hesabını oluşturabilir:
RAILS_ENV=production bin/rails mastodon:setupSoruları şöyle yanıtlayın:
| Soru | Bu rehber için yanıt |
|---|---|
| Domain name | social.example.com; bu değer LOCAL_DOMAIN olur |
| Single user mode | Sunucu yalnızca sizin için değilse No |
| Are you using Docker | No |
| PostgreSQL host, port, database, user, password | Varsayılanları kabul edin: /var/run/postgresql, 5432, mastodon_production, mastodon, boş parola |
| Redis host, port, password | Varsayılanları kabul edin: localhost, 6379, boş parola |
| Store uploaded files on the cloud | Yerel depolama için No; S3 uyumlu kovanızı girmek için Yes |
| Send e-mails from localhost | No; ardından SMTP sunucunuzu (örneğin smtp.example.com), 587 numaralı portu, kullanıcı adını, parolayı ve gönderen adresini girin |
| Send a test e-mail | SMTP'yi şimdi denemek için Yes |
| Save configuration, prepare the database, compile assets | Yes |
| Create an admin user | Yes; bir kullanıcı adı ve e-posta seçin, ardından sihirbazın yazdığı parolayı kopyalayın |
Sihirbaz bittiğinde root kabuğuna dönün:
exitAdım 8 — Sertifika alın ve Nginx'i yapılandırın
Certbot'un Nginx eklentisiyle bir sertifika isteyin, ardından depodaki Mastodon Nginx yapılandırmasını kurun:
certbot certonly --nginx -d social.example.com
cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon
rm /etc/nginx/sites-enabled/default
sed -i 's/example\.com/social.example.com/g' /etc/nginx/sites-available/mastodon
nano /etc/nginx/sites-available/mastodonsed komutu şablondaki yer tutucu alan adını sizinkiyle değiştirir; social.example.com yerine gerçek alan adınızı kullanın. Düzenleyicide yorum satırı hâlindeki iki sertifika satırını bulun ve baştaki # işaretini kaldırarak şu hâle getirin:
ssl_certificate /etc/letsencrypt/live/social.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/social.example.com/privkey.pem;Nginx'in mastodon ev dizinindeki varlık dosyalarını okumasına izin verin, yapılandırmayı test edin ve Nginx'i yeniden başlatın:
chmod o+x /home/mastodon
nginx -t
systemctl restart nginxhttps://social.example.com adresi şimdi Mastodon'un fil resimli hata sayfasını gösterir; çünkü Mastodon süreçleri henüz çalışmıyor. Certbot paketi sertifikayı kendiliğinden yeniler; certbot renew --dry-run yenilemeyi test eder.
Adım 9 — Mastodon servislerini başlatın
Depo; web uygulaması (Puma), arka plan işçileri (Sidekiq) ve streaming API için systemd unit dosyalarıyla gelir. Bunlar bu rehberin kullandığı mastodon kullanıcısını ve /home/mastodon/live yolunu varsayar:
cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
systemctl status mastodon-web mastodon-sidekiq mastodon-streaming --no-pagerÜçü de active (running) olmalıdır. https://social.example.com adresini açın, sihirbazdaki yönetici hesabıyla giriş yapın ve parolasını Preferences > Account altında değiştirin.
Adım 10 — Yönetici kurulumunu tamamlayın ve medya temizliğini zamanlayın
Sihirbazda yönetici hesabını atladıysanız sahip hesabını tootctl ile oluşturun. Mastodon kurulum rehberi tarayıcıdan kaydın varsayılan olarak kapalı olduğunu belirtir; ilk hesabı oluşturmanın yolu budur:
su - mastodon
cd live
RAILS_ENV=production bin/tootctl accounts create alice --email [email protected] --confirmed --role Owner
RAILS_ENV=production bin/tootctl accounts modify alice --approve
exitİlk komut rastgele bir parola yazar. Ardından Preferences > Administration > Server Settings sayfasına gidin ve iletişim kullanıcı adını, bir iş e-postasını, sunucu açıklamasını ve kuralları ya da davranış kurallarını doldurun. Kayıtları açmadan önce aynı bölümdeki kayıt modunu gözden geçirin; onay gerektirmek her yeni hesabı kontrol etmenizi sağlar.
Mastodon diğer sunuculardan gelen medyayı ve bağlantı önizlemelerini önbelleğe alır ve bu önbellek her gün büyür. tootctl media remove, belirli bir gün sayısından (varsayılan 7) eski önbelleğe alınmış uzak ekleri siler; tootctl preview_cards remove ise bağlantı önizleme küçük resimlerini siler (varsayılan 180 gün). İkisini de mastodon kullanıcısı olarak zamanlayın:
su - mastodon
crontab -ePATH=/home/mastodon/.rbenv/shims:/home/mastodon/.rbenv/bin:/usr/local/bin:/usr/bin:/bin
RAILS_ENV=production
15 3 * * * cd /home/mastodon/live && bin/tootctl media remove --days 7
45 3 * * 0 cd /home/mastodon/live && bin/tootctl preview_cards remove --days 180Kaydedin, düzenleyiciden çıkın ve exit çalıştırın. PATH satırı, cron'un rbenv ile kurulan Ruby sürümünü bulmasını sağlar. RAILS_ENV=production bin/tootctl media usage medyanın ne kadar alan kullandığını gösterir.
Yedekleme ve geri yükleme
Mastodon'un yedekleme rehberi önem sırasına göre dört şey listeler: PostgreSQL veritabanı (kaybı tüm sunucunun kaybı demektir), sırları içeren .env.production dosyası (kaybı herkesin oturumunu kapatır ve iki faktörlü kimlik doğrulamayı bozar), yerel depolama kullanıyorsanız public/system içindeki kullanıcı yüklemeleri ve en az kritik olan Redis veritabanı. Bu komutları root kabuğunda çalıştırın:
mkdir -p /opt/backups
chmod 700 /opt/backups
sudo -u mastodon pg_dump -Fc mastodon_production > /opt/backups/mastodon-db-$(date +%F).dump
cp /home/mastodon/live/.env.production /opt/backups/mastodon-env-$(date +%F)
redis-cli SAVE
cp /var/lib/redis/dump.rdb /opt/backups/mastodon-redis-$(date +%F).rdb
tar czf /opt/backups/mastodon-system-$(date +%F).tar.gz --exclude=system/cache -C /home/mastodon/live public/system
ls -lh /opt/backups--exclude=system/cache seçeneği, Mastodon'un yeniden çekebileceği diğer sunuculardan önbelleğe alınmış medyayı atlar. Nesne depolama kullanıyorsanız public/system yerine kovayı sağlayıcınızın araçlarıyla yedekleyin. En iyi yedekler sunucu dışındaki yedeklerdir; bu dosyaları başka bir makineye kopyalayın.
Yeni bir sunucuya geri yüklemek için Adım 1–6'yı aynı sürüm etiketiyle izleyin, ardından Adım 8'i ve Adım 9'un cp ile daemon-reload satırlarını servisleri başlatmadan uygulayın. Kurulum sihirbazını çalıştırmayın. Sonra yedekleri root olarak yükleyin:
systemctl stop 'mastodon-*.service'
sudo -u mastodon createdb -T template0 mastodon_production
sudo -u mastodon pg_restore -Fc -U mastodon -n public --no-owner --role=mastodon -d mastodon_production < /opt/backups/mastodon-db-2026-10-09.dump
cp /opt/backups/mastodon-env-2026-10-09 /home/mastodon/live/.env.production
chown mastodon:mastodon /home/mastodon/live/.env.production
tar xzf /opt/backups/mastodon-system-2026-10-09.tar.gz -C /home/mastodon/live
chown -R mastodon:mastodon /home/mastodon/live/public/system
systemctl stop redis-server
cp /opt/backups/mastodon-redis-2026-10-09.rdb /var/lib/redis/dump.rdb
chown redis:redis /var/lib/redis/dump.rdb
systemctl start redis-serverSon olarak varlıkları ve ana akışları yeniden oluşturun, servisleri başlatın ve Nginx'i yeniden başlatın:
su - mastodon
cd live
RAILS_ENV=production bundle exec rails assets:precompile
RAILS_ENV=production ./bin/tootctl feeds build
exit
systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
systemctl restart nginxMastodon güncelleme
GitHub'daki her Mastodon sürümünün kendi yükseltme talimatları vardır ve adımların sırası önemlidir. Mastodon'un yükseltme rehberi yama sürümlerini atlayabileceğinizi, ancak her ara sürüm serisinden (minor) en az bir sürümü kurmanız ve her talimatı en az bir kez çalıştırmanız gerektiğini söyler. Kendi sürümünüzle hedef sürüm arasındaki her sürümün notlarını okuyun ve önce yedek alın.
Aşağıdaki adımlar 4.7 sürümlerinin Docker dışı talimatlarını izler. v4.7.3 değerini yükselttiğiniz sürümle değiştirin:
su - mastodon
cd live
git fetch --tags
git checkout v4.7.3
bundle install
yarn install --immutable
RAILS_ENV=production bundle exec rails assets:precompile
SKIP_POST_DEPLOYMENT_MIGRATIONS=true RAILS_ENV=production bundle exec rails db:migrate
exitSüreçleri yeniden başlatın, ardından kalan dağıtım sonrası (post-deployment) geçişlerini çalıştırın:
systemctl restart mastodon-sidekiq
systemctl reload mastodon-web
systemctl restart mastodon-streaming
su - mastodon
cd live
RAILS_ENV=production bundle exec rails db:migrate
exitsystemctl reload mastodon-web kesinti olmadan aşamalı bir yeniden başlatma yapar; streaming servisini yeniden başlatmak istemcilerin bağlantısını kısa süreliğine keser. Sürüm notları yeni bir Ruby sürümü istediğinde ruby-build'i git -C ~/.rbenv/plugins/ruby-build pull ile güncelleyin ve bundle install öncesinde ~/live içinde RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install çalıştırın.
Sorun giderme
Tarayıcı fil resimli hata sayfasını gösteriyor
Nginx çalışıyor ama Puma yanıt vermiyor. systemctl status mastodon-web ve journalctl -u mastodon-web -n 50 --no-pager çıktılarını kontrol edin. Unit dosyasındaki yanlış bir yol veya Ruby sürümü ya da başarısız bir varlık derlemesi olağan nedenlerdir.
Sayfalar stil ve resim olmadan yükleniyor
Nginx derlenmiş varlıkları okuyamıyor. chmod o+x /home/mastodon komutunu yeniden çalıştırın; dosyalar eksikse mastodon kullanıcısı olarak RAILS_ENV=production bundle exec rails assets:precompile ile yeniden oluşturun.
Onay e-postaları hiç gelmiyor
Postaları Sidekiq gönderir. SMTP hataları için journalctl -u mastodon-sidekiq -n 100 --no-pager çıktısını okuyun, .env.production içindeki SMTP_ değerlerini kontrol edin ve bu dosyadaki her değişiklikten sonra üç Mastodon servisini de yeniden başlatın. SMTP_PORT değeri, Adım 7'deki relay portu olan 587 olmalıdır.
Disk doluyor
Alanın nereye gittiğini görmek için mastodon kullanıcısı olarak RAILS_ENV=production bin/tootctl media usage çalıştırın. Adım 10'daki cron görevlerinin çalıştığından emin olun (Ubuntu'da grep CRON /var/log/syslog, Debian'da journalctl -u cron), gerekirse --days değerini düşürün veya medyayı nesne depolamaya taşıyın.
Bir yükseltmeden sonra bundle install Ruby sürüm hatasıyla başarısız oluyor
Sürüm henüz kurulu olmayan bir Ruby sürümü istiyor. ruby-build'i güncelleyin, ~/live içinde RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install çalıştırın, ardından bundle install komutunu ve kalan yükseltme adımlarını tekrarlayın.
Sonraki adımlar
- Medyanızı Self-hosted S3 depolama ile nesne depolamaya taşıyın.
- Burada kullanılan web sunucusu hakkında daha fazlasını Nginx ve Certbot rehberinde öğrenin.
- Sunucunuzun yanına Discourse ile bir topluluk forumu veya Matrix Synapse ile özel bir sohbet ekleyin.
- Elasticsearch tam metin arama, ölçekleme ve moderasyon için resmi Mastodon yönetici belgelerini okuyun.
- Topluluk platformları için sunucuları social network hosting sayfasında karşılaştırın.
Sık sorulan sorular
Mastodon alan adımı sonradan değiştirebilir miyim?
Hayır. Mastodon yapılandırma belgeleri LOCAL_DOMAIN ve WEB_DOMAIN değerlerinin bir kez ayarlandıktan sonra güvenle değiştirilemeyeceğini söyler: uzak sunucular hesaplarınızı yeni hesaplar gibi görür ve onlarla iletişim bozulabilir. Yeniden kurulum bile bunu düzeltmez; bu yüzden kurulum sihirbazını çalıştırmadan önce karar verin.
Bir e-posta sunucusuna ihtiyacım var mı?
Evet. Mastodon onay bağlantılarını, parola sıfırlamalarını ve bildirimleri yapılandırdığınız SMTP sunucusu üzerinden gönderir. HyperDC VPS'lerde giden 25 numaralı port varsayılan olarak kapalıdır. 3 ay veya daha uzun süreyle satın alınan hizmetlerde destek talebiyle açılır. O zamana kadar e-postaları 587 numaralı port üzerinden bir SMTP relay ile gönderin.
Bu rehber neden Caddy yerine Nginx kullanıyor?
Mastodon deposu web, streaming ve statik dosya yolları için bir Nginx yapılandırmasıyla gelir ve resmi kurulum rehberi bunu Certbot ile birlikte kullanır. Bu yapılandırmada kalmak sunucunuzu belgelere ve sürüm notlarına yakın tutar.
Medyayı nesne depolamada mı saklamalıyım?
İsteğe bağlıdır. Yerel depolama yüklemeleri ve önbelleğe alınan uzak medyayı sunucudaki public/system klasöründe tutar. S3 uyumlu nesne depolama bunları makinenin dışına taşır; kurulum sihirbazı bunu yapılandırabilir ve Mastodon yapılandırma belgelerine göre kovanın ACL desteklemesi gerekir.
Mastodon'u bunun yerine Docker ile çalıştırabilir miyim?
Resmi kurulum rehberi Ubuntu 24.04 veya Debian 13 üzerinde kaynaktan kurulumu belgeler ve bir Docker kurulumunu anlatmaz; bu yüzden bu rehber kaynaktan kurulumu izler. systemd servisleri, tootctl komutları ve sürüm notları da bu düzeni varsayar.
Hangi HyperDC sunucularında Mastodon çalışır?
Root erişimi olan ve Ubuntu 24.04 LTS veya Debian 13 çalıştıran bir HyperDC Linux VPS, VDS veya dedicated sunucuda. Diğer sunuculardan önbelleğe alınan dosyalar temizlenmedikçe büyümeye devam ettiği için medya için disk alanı planlayın.
Kaynaklar
- docs.joinmastodon.org/admin/prerequisites
- docs.joinmastodon.org/admin/install
- raw.githubusercontent.com/mastodon/documentation/main/content/en/ad…
- docs.joinmastodon.org/admin/config
- docs.joinmastodon.org/admin/setup
- docs.joinmastodon.org/admin/tootctl
- docs.joinmastodon.org/admin/backups
- docs.joinmastodon.org/admin/migrating
- docs.joinmastodon.org/admin/upgrading
- raw.githubusercontent.com/mastodon/mastodon/main/lib/tasks/mastodon…
- github.com/mastodon/mastodon/releases/tag/v4.7.0
- github.com/mastodon/mastodon/releases/latest