Offizielle Docker Images
Castopod erstellt während des automatischen Build-Prozesses 3 Docker-Images auf Docker Hub:
castopod/castopod: Ein umfassendes Castopod Image mit Nginx als Webservercastopod/app: Das App Paket mit allen Castopod Abhängigkeitencastopod/web-server: Ein Nginx Webserver für Castopod
Außerdem benötigt Castopod eine MySQL-kompatible Datenbank. Eine Redis-Datenbank kann als Cache-Handler hinzugefügt werden.
Unterstützte Tags
Abschnitt betitelt „Unterstützte Tags“develop[unstable], neueste Updates des development Branchesbeta[stable], neueste Beta-Versionlatest[stable], die neuste Version1.x.x[stable], spezifische Version (seit1.0.0)
Beispiel
Abschnitt betitelt „Beispiel“-
Installiere Docker und Docker-Compose
-
Erstelle eine
docker-compose.ymlDatei mit folgendem Inhalt:version: "3.7"services:app:image: castopod/castopod:latestcontainer_name: "castopod-app"volumes:- castopod-media:/var/www/castopod/public/mediaenvironment:MYSQL_DATABASE: castopodMYSQL_USER: castopodMYSQL_PASSWORD: changemeCP_BASEURL: "https://castopod.example.com"CP_ANALYTICS_SALT: changemeCP_CACHE_HANDLER: redisCP_REDIS_HOST: redisCP_REDIS_PASSWORD: changemenetworks:- castopod-app- castopod-dbports:- 8000:8000restart: unless-stoppedmariadb:image: mariadb:10.5container_name: "castopod-mariadb"networks:- castopod-dbvolumes:- castopod-db:/var/lib/mysqlenvironment:MYSQL_ROOT_PASSWORD: changemeMYSQL_DATABASE: castopodMYSQL_USER: castopodMYSQL_PASSWORD: changemerestart: unless-stoppedredis:image: redis:7.0-alpinecontainer_name: "castopod-redis"command: --requirepass changemevolumes:- castopod-cache:/datanetworks:- castopod-appvolumes:castopod-media:castopod-db:castopod-cache:networks:castopod-app:castopod-db:Es müssen einige Variablen an deine Bedürfnisse angepasst werden (z.B.
CP_BASEURL,MYSQL_ROOT_PASSWORD,MYSQL_PASSWORDundCP_ANALYTICS_SALT). -
Einen Reverse-Proxy für TLS (SSL/HTTPS) einrichten
TLS ist notwendig damit ActivityPub korrekt arbeiten kann. Dieser Job kann leicht von einem Reverse-Proxy bearbeitet werden, zum Beispiel mit Caddy:
#castopodcastopod.example.com {reverse_proxy localhost:8000} -
Führe
docker-compose up -daus, warte darauf, dass es initialisiert wird und gehe aufhttps://castopod.example.com/cp-installum die Einrichtung von Castopod abzuschließen! -
Ist alles da? Dann kann das Podcasten beginnen! 🎙️🚀
Umgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“-
castopod/castopod und castopod/app
Variablennamen Typ ( Standard)Standardwert CP_BASEURLstring undefinedCP_MEDIA_BASEURL?string CP_BASEURLCP_ADMIN_GATEWAY?string "cp-admin"CP_AUTH_GATEWAY?string "cp-auth"CP_ANALYTICS_SALTstring undefinedCP_DATABASE_HOSTNAME?string "mariadb"CP_DATABASE_NAME?string MYSQL_DATABASECP_DATABASE_USERNAME?string MYSQL_USERCP_DATABASE_PASSWORD?string MYSQL_PASSWORDCP_DATABASE_PREFIX?string "cp_"CP_CACHE_HANDLER[ "file"or"redis"]"file"CP_REDIS_HOST?string "localhost"CP_REDIS_PASSWORD?string nullCP_REDIS_PORT?number 6379CP_REDIS_DATABASE?number 0CP_EMAIL_SMTP_HOST?string undefinedCP_EMAIL_FROM?string undefinedCP_EMAIL_SMTP_USERNAME?string "localhost"CP_EMAIL_SMTP_PASSWORD?string nullCP_EMAIL_SMTP_PORT?number 25CP_EMAIL_SMTP_CRYPTO[ "tls"or"ssl"]"tls"CP_ENABLE_2FA?boolean undefinedCP_MEDIA_FILE_MANAGER?string undefinedCP_MEDIA_S3_ENDPOINT?string undefinedCP_MEDIA_S3_KEY?string undefinedCP_MEDIA_S3_SECRET?string undefinedCP_MEDIA_S3_REGION?string undefinedCP_MEDIA_S3_BUCKET?string undefinedCP_MEDIA_S3_PROTOCOL?number undefinedCP_MEDIA_S3_PATH_STYLE_ENDPOINT?boolean undefinedCP_MEDIA_S3_KEY_PREFIX?string undefinedCP_DISABLE_HTTPS?[ 0or1]undefinedCP_MAX_BODY_SIZE?number (with suffix) 512MCP_PHP_MEMORY_LIMIT?number (with suffix) 512MCP_TIMEOUT?number 900 -
castopod/web-server
Variablennamen Typ Standardwert CP_APP_HOSTNAME?string "app"CP_MAX_BODY_SIZE?number (with suffix) 512MCP_TIMEOUT?number 900