--- title: Installation sidebarDepth: 3 --- # Wie installiere ich Castopod? Castopod ist für eine einfache Installation konzipiert. Ob dediziertes oder Shared-Hosting, du kannst es auf den meisten PHP-MySQL-kompatiblen Webservern installieren. ::: tip Note Wir haben offizielle Docker Images für Castopod veröffentlicht! Wenn du Docker bevorzugst, kannst du die manuelle Anleitung überspringen und direkt zur [Docker-Dokumentation](./docker.md) für Castopod gehen. ::: ## Voraussetzungen - PHP v8.1 oder höher - MySQL Version 5.7 oder höher oder MariaDB Version 10.2 oder höher - HTTPS-Unterstützung - Eine [ntp-synchronisierte Uhr](https://wiki.debian.org/NTP) um die eingehenden Anfragen zu überprüfen ### PHP v8.1 oder höher PHP Version 8.1 oder höher ist erforderlich, mit folgenden Erweiterungen installiert: - [intl](https://php.net/manual/en/intl.requirements.php) - [libcurl](https://php.net/manual/en/curl.requirements.php) - [mbstring](https://php.net/manual/en/mbstring.installation.php) - [gd](https://www.php.net/manual/en/image.installation.php) mit **JPEG**, **PNG** und **WEBP** Bibliotheken. - [exif](https://www.php.net/manual/en/exif.installation.php) Stelle außerdem sicher, dass die folgenden Erweiterungen in deinem PHP aktiviert sind: - json (standardmäßig aktiviert - nicht ausschalten) - xml (standardmäßig aktiviert - nicht ausschalten) - [mysqlnd](https://php.net/manual/en/mysqlnd.install.php) ### MySQL kompatible Datenbank > Wir empfehlen [MariaDB](https://mariadb.org). ::: warning Warning Castopod funktioniert nur mit unterstützten MySQL 5.7 oder höher kompatiblen Datenbanken. Es wird zum Beispiel mit dem vorherigen MySQL v5.6 nicht mehr funktionieren, dessen Lebensende am 5. Februar 2021 war. ::: Du benötigst den Servernamen, den Datenbanknamen, den Benutzernamen und das Passwort, um den Installationsvorgang abzuschließen. Kontaktiere bitte den Administrator, falls du keinen Benutzeraccount hast. #### Berechtigungen Benutzer müssen mindestens diese Berechtigungen in der Datenbank haben, damit Castopod funktioniert: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`, `REFERENCES`, `CREATE VIEW`. ### (Optional) FFmpeg v4.1.8 oder höher für Videoclips [FFmpeg](https://www.ffmpeg.org/) Version 4.1.8 oder höher ist erforderlich, wenn Du Videoclips generieren möchtest. Die folgenden Php-Erweiterungen sind nicht installiert: %s: - **FreeType 2** Bibliothek für [gd](https://www.php.net/manual/en/image.installation.php). ### (Optional) Weitere Empfehlungen - Redis für bessere Cache-Leistungen. - CDN für das Caching statischer Dateien und bessere Leistungen. - E-Mail Server Anbindung für E-Mails zu verlorenen Passwörtern. ## Installationsanleitung ### Voraussetzungen 0. Treib einen Webserver mit den [Voraussetzungen](#requirements) auf 1. Erstellen Sie eine MySQL-Datenbank für Castopod mit einem Benutzer mit Zugriffsrechten und Modifikationsberechtigungen (für weitere Infos, Siehe [MySQL kompatible Datenbank](#mysql-compatible-database)). 2. Aktivieren Sie HTTPS auf Ihrer Domain mit einem _SSL Zertifikat_. 3. Lade und entpacke das letzte [Castopod Packet](https://castopod.org/) auf den Webserver, wenn nicht schon geschehen. - ⚠️ Setzte das Webserver Document root auf das `public/` Unterverzeichnis innerhalb des `castopod` Ordners. 4. Füge **cron tasks** auf deinem Webserver hinzu für verschiedene Hintergrundprozesse (ersetze die Pfade entsprechend): ```bash * * * * * /path/to/php /path/to/castopod/spark tasks:run >> /dev/null 2>&1 ``` **Hinweis** - Wenn Sie diese Cron-Aufgabe nicht hinzufügen, funktionieren die folgenden Castopod-Funktionen nicht: - Einen Podcast aus einem vorhandenen RSS-Feed importieren - Sende soziale Aktivitäten an deine Follower im Fediversum - Übertragungen von Episoden zu open hubs mit [WebSub-](https://en.wikipedia.org/wiki/WebSub) - Generieren von Videoclips - [benötigt FFmpeg](#optional-ffmpeg-v418-or-higher-for-video-clips) ### (empfohlen) Installations-Assistent 1. Führen Sie das Castopod Installationsskript aus, indem Sie auf die Installations-Seite (`https://your_domain_name.com/cp-install`) in Ihrem bevorzugten Webbrowser gehen. 2. Folge der Anleitung auf dem Bildschirm. 3. Podcasting starten! ::: info Note Das Installationsskript schreibt eine `.env` Datei im Paket-Root. Wenn Sie nicht durch den Installations-Assistenten kommen, können Sie die `.env` Datei manuell erstellen und bearbeiten basierend auf der `.env.example` Datei. ::: ### Using CLI 1. Create a `.env` file in the package root based on the `.env.example` file. 2. Initialize the database using: ```sh php spark install:init-database ``` 3. Create the superadmin user using: ```sh php spark install:create-superadmin ``` 4. Head on to your admin gateway to start podcasting! ### Email/SMTP Setup E-Mail-Konfiguration ist erforderlich, damit einige Funktionen ordnungsgemäß funktionieren (zB. das Abrufen Ihres vergessenen Passworts, das Senden von Anweisungen an Premium-Abonnenten, …) Sie können Ihre E-Mail-Konfiguration in `.env` Ihrer Instanz einfügen: ```ini # […] # […] email.fromEmail="your_email_address" email.SMTPHost="your_smtp_host" email.SMTPUser="your_smtp_user" email.SMTPPass="your_smtp_password" ``` #### E-Mail-Konfigurationsoptionen | Variablennamen | Typ | Voreinstellung | | ---------------- | -------------------- | -------------- | | **`fromEmail`** | string | `undefined` | | **`fromName`** | string | `"Castopod"` | | **`SMTPHost`** | string | `undefined` | | **`SMTPUser`** | string | `undefined` | | **`SMTPPass`** | string | `undefined` | | **`SMTPPort`** | number | `25` | | **`SMTPCrypto`** | [`"tls"` or `"ssl"`] | `"tls"` | ### Media storage Standardmäßig werden Dateien im Ordner `public/media` über das Dateisystem gespeichert. Wenn Sie den Ordner `media` an einen anderen Ort verlegen müssen, können Sie es in Ihrer `.env` Datei angeben wie unten gezeigt: ```ini # […] media.root="media" media.storage="/mnt/storage" ``` In diesem Beispiel werden die Dateien im Ordner /mnt/storage/media gespeichert. Stellen Sie sicher, dass Sie auch Ihre Webserver-Konfiguration aktualisieren, um diese Änderung wiederzugeben. ### S3 Wenn Sie Ihre Mediendateien lieber auf einem S3-kompatiblen Speicher speichern möchten, können Sie dies in Ihrer `.env` spezifizieren: ```ini # […] media.fileManager="s3" media.s3.endpoint="your_s3_host" media.s3.key="your_s3_key" media.s3.secret="your_s3_secret" media.s3.region="your_s3_region" ``` #### S3 Konfigurationsoptionen | Variablennamen | Typ | Voreinstellung | | ----------------------- | ------- | -------------- | | **`endpoint`** | string | `undefined` | | **`key`** | string | `undefined` | | **`secret`** | string | `undefined` | | **`region`** | string | `undefined` | | **`bucket`** | string | `castopod` | | **`protocol`** | number | `undefined` | | **`pathStyleEndpoint`** | boolean | `false` | | **`keyPrefix`** | string | `undefined` | ## Community-Pakete Wenn Sie Castopod nicht manuell installieren wollen, können Sie eines der von der Open-Source-Community erstellten und betreuten Pakete verwenden. ### Installieren mit YunoHost [YunoHost](https://yunohost.org/) ist eine auf Debian GNU/Linux basierende Distribution, die aus freien und Open-Source-Software-Paketen besteht. Es kümmert sich um den Aufwand von self-hosting für dich.
Installiere Castopod mit YunoHost Github Repo