INTEGRITY Dokumentace

Mastodon

Mastodon je oblíbený fediverse software. Tento návod vysvětluje, jak nakonfigurovat R2 jako objektové úložiště pro vlastní (self hosted) instanci Mastodonu, a to buď pro novou instanci nebo existující instanci.

Nastavení nové instance

Instanci Mastodonu s vlastním hostováním můžete nastavit několika způsoby. Přečtěte si oficiální dokumentace pro další podrobnosti. Jakmile dosáhnete Konfigurace prostředí krok v dokumentaci Mastodonu po instalaci, další kroky najdete v postupech níže.

1. Určete hostname pro přístup k souborům

Na rozdíl od výchozího názvu hostitele vaší instance Mastodon vyžaduje objektové úložiště pro soubory jedinečný název hostitele. Pokud například nastavíte název hostitele vaší instance Mastodon na mastodon.example.com, můžete použít mastodon-files.example.com nebo files.example.com pro přístup k souborům. To znamená, že při návštěvě vaší instance na mastodon.example.com, kdykoli je k příspěvku připojeno médium, například obrázek nebo video, bude soubor zobrazován pod názvem hostitele určeným v tomto kroku, například mastodon-files.example.com.

2. Vytvořte a nastavte R2 bucket

  1. V dashboardu Cloudflare přejděte na Objektové úložiště R2 stránce.

    Přejděte na Přehled ↗
  2. Vyberte Vytvořit bucket.

  3. Zadejte název bucketu a poté vyberte Vytvořit bucket. Tento název je interní při nastavování vaší instance Mastodon a není veřejně přístupný.

  4. Jakmile je bucket vytvořen, přejděte na Nastavení kartě tohoto bucketu a zkopírujte hodnotu S3 API.

  5. Z Nastavení kartě vyberte Connect Domain a zadejte název hostitele z kroku 1.

  6. Přejděte zpět na stránku přehledu R2 a vyberte Správa tokenů R2 API.

  7. Vyberte Vytvoření API tokenu.

  8. Pojmenujte svůj token Mastodon výběrem ikony tužky vedle názvu API a udělte mu Úprava oprávnění. Vyberte Create API Token abyste dokončili vytvoření tokenu.

  9. Zkopírujte hodnoty Access Key ID a Secret Access Key.

3. Nakonfigurujte R2 pro Mastodon

Při konfiguraci instance Mastodon podle oficiálního konfigurační soubor, nahraďte Souborové úložiště sekce s následujícími podrobnostmi.

S3_ENABLED=true
S3_ALIAS_HOST={{mastodon-files.example.com}}                  # Change to the hostname determined in step 1
S3_BUCKET={{your-bucket-name}}                                # Change to the bucket name set in step 2
S3_ENDPOINT=https://{{unique-id}}.r2.cloudflarestorage.com/   # Change the {{unique-id}} to the part of S3 API retrieved in step 2
AWS_ACCESS_KEY_ID={{your-access-key-id}}                      # Change to the Access Key ID retrieved in step 2
AWS_SECRET_ACCESS_KEY={{your-secret-access-key}}              # Change to the Secret Access Key retrieved in step 2
S3_PROTOCOL=https
S3_PERMISSION=

Ponechte S3_PERMISSION prázdné. Tím se zabrání tomu, aby Mastodon odesílal hlavičky ACL, které R2 nepodporuje.

Po dokončení konfigurace můžete instanci spustit. Jakmile instance běží, nahrajte mediální přílohu a ověřte, že se načítá z hostitele nastaveného výše. Při návratu na stránku bucketu v R2 byste měli vidět následující strukturu.

Struktura bucketu Mastodon po nastavení a spuštění instance

Migrace do R2

Pokud již máte spuštěnou instanci, můžete mediální soubory migrovat do R2 a využít výhod bez nákladů za odchozí přenos dat.

1. Nastavte R2 bucket a zahajte migraci souborů

  1. (Volitelné) Chcete-li minimalizovat počet migrovaných souborů, můžete použít Mastodon admin CLI abyste vyčistili nepoužívané soubory.
  2. Připravte bucket R2 pro migraci souborů podle kroků 1 a 2 z Nastavení nové instance části výše.
  3. Přeneste všechny mediální soubory do R2. Podívejte se na příklady určená k propojení různých poskytovatelů. Pokud tyto mediální soubory aktuálně hostujete lokálně, můžete použít rclone k nahrání těchto lokálních souborů do R2.

2. (Volitelné) Nastavte přesměrování cest k souborům

Zatímco migrace souborů probíhá, což může chvíli trvat, můžete si připravit nastavení přesměrování cest k souborům.

Pokud jste měli mediální soubory hostované lokálně, pravděpodobně budete muset nastavit přesměrování. Lokálně hostované mediální soubory mají standardně cestu podobnou https://mastodon.example.com/cache/..., který je nutné přesměrovat na cestu podobnou https://mastodon-files.example.com/cache/... po spuštění bucketu R2 vedle vaší instance Mastodon. Pokud již používáte jinou službu objektového úložiště kompatibilní s S3 a chcete zachovat stejný název hostitele, přesměrování nastavovat nemusíte.

Bulk Redirects jsou dostupné pro všechny plány. Viz Vytvoření Bulk Redirects v dashboardu s dalšími informacemi.

Seznam zdrojových adres URL a jejich nových cílových adres URL v rámci Bulk Redirects

3. Ověřte bucket a přesměrování

V závislosti na vašem migračním plánu můžete ověřit, zda je bucket veřejně přístupný a zda přesměrování fungují správně. Pro ověření otevřete existující nahraný mediální soubor s cestou podobnou https://mastodon.example.com/cache/... a nahraďte název hostitele z mastodon.example.com na mastodon-files.example.com a přejděte na novou cestu. Pokud se soubor otevřel správně, přejděte k poslednímu kroku.

4. Dokončete migraci

Vaše instance může během migrace stále běžet. Je tedy pravděpodobné, že v jejím průběhu vznikají nové mediální soubory, ať už přímým nahráním, nebo stažením z jiných federovaných instancí. Chcete-li nahrát pouze nově vytvořené soubory, můžete použít program jako rclone. Upozorňujeme, že při opětovném spuštění synchronizačního programu budou všechny existující soubory zkontrolovány alespoň pomocí operace Class B.

Jakmile jsou všechny soubory synchronizovány, můžete restartovat instanci Mastodon s novou konfigurací objektového úložiště, jak je uvedeno v krok 3 z Nastavení nové instance.