Pixelfed und Contabo S3 Storage
Ich betreibe eine Pixelfed-Instanz – und wollte dafür den schon vorhandenen und bisher für Mastodon und Nextcloud verwendeten S3 Storage bei Contabo nun auch dafür verwenden.
Das Herausfinden der nötigen Einstellungen hat sich als etwas komplizierter herausgestellt, sodass ich sie an dieser Stelle teilen möchte. Vielleicht ist es für manche Pixelfed-Admin*a hilfreich.
Zu Beginn müsst Ihr folgende Daten parat haben:
- ACCESS_KEY: Der Access-Key Eurer S3 Object Storage Anmeldeinformationen
- SECRET_KEY: Der Secret-Key Eurer S3 Object Storage Anmeldeinformationen
- REGION: Die Region (aus der Bucket-URL entnehmen, z. B. eu2)
- BUCKET-NAME: Der Name Eures Buckets im S3 Storage
- TENANT-ID: Die Tenant-ID Eures S3 Storage (für alle Buckets identisch)
Die Tenant-ID herauszufinden ist etwas kompliziert. Klickt dazu im Object Storage Panel auf „öffentliches Teilen“ (zweites Icon von rechts neben dem Bucket) und dann auf „Veröffentlichen“.
Ihr erhaltet nun eine URL, z.B. https://eu2.contabostorage.com/447c...:bucket (hier stark gekürzt).
Die sehr lange hexadezimale Ziffernfolge 447c... (der Doppelpunkt gehört nicht mehr dazu) ist Eure Tenant-ID, die Ihr Euch notiert. Klickt jetzt auf Abbrechen; denn für den Betrieb darf das Bucket nicht öffentlich geteilt sein.
Wechselt anschließend auf Eurem Server in das Pixelfed-Verzeichnis, z.B. /var/www/pixelfed.
Öffnet die Datei .env in einem Editor und tragt dort folgende Einstellungen ein:
PF_ENABLE_CLOUD=true FILESYSTEM_CLOUD=s3 FILESYSTEM_DRIVER=local AWS_ACCESS_KEY_ID=ACCESS_KEY AWS_SECRET_ACCESS_KEY=SECRET_KEY AWS_DEFAULT_REGION=“REGION” (z.B. “EU2”) AWS_BUCKET=BUCKET-NAME AWS_URL=https://REGION.contabostorage.com/TENANT-ID:BUCKET-NAME AWS_ENDPOINT=https://REGION.contabostorage.com AWS_USE_PATH_STYLE_ENDPOINT=true
Optional könnt Ihr noch eintragen:
PF_LOCAL_AVATAR_TO_CLOUD=true MEDIA_DELETE_LOCAL_AFTER_CLOUD=true
In der Regel schreibt Ihr alles klein. Lediglich bei AWS_DEFAULT_REGION schreibt Ihr die Region in Großbuchstaben und in doppelten Anführungszeichen, z.B. “EU2”.
Speichert nun die Datei ab.
Danach gebt Ihr (als HTTP-Benutzer) folgenden Befehl ein:
php artisan config:cache
z.B. bei Ubuntu mit PHP 8.1:
sudo -u www-data php8.1 artisan config:cache
Zum Schluss ruft Ihr Eure Pixelfed-Instanz im Browser auf (mit Eurem Admin-Konto) und geht in den Administrationsbereich. Hier aktiviert Ihr, falls noch nicht geschehen, das Feature „Cloud Storage“ und speichert die Einstellungen ab.
Ab jetzt sollten neue Images, Avatare usw. in den S3 Storage geladen werden. Das könnt Ihr z. B. im Firefox mit der Netzwerkanalyse unter Überprüfen kontrollieren.
Folge mir im Fediverse: @admina@meerjungfrauengrotte.de (Mastodon)