castopod/appCastopod是一款开源播客托管平台,该Docker镜像为Castopod应用的官方捆绑包,集成了运行Castopod所需的全部依赖项(包括Web服务器、PHP环境、必要扩展及工具等)。该镜像旨在简化播客平台部署流程,用户无需手动配置底层依赖,可快速搭建功能完善、独立可控的播客托管服务。
注:单容器模式需外部数据库支持,推荐使用MariaDB/MySQL
bashdocker run -d \ --name castopod \ -p 80:80 \ -e CP_BASEURL="[***]" \ -e CP_DATABASE_HOST="db-host" \ -e CP_DATABASE_NAME="castopod_db" \ -e CP_DATABASE_USER="castopod_user" \ -e CP_DATABASE_PASSWORD="your_strong_password" \ -v castopod_media:/var/www/html/media \ castopod/app:latest
创建docker-compose.yml文件,配置完整服务栈(含应用、数据库、缓存):
yamlversion: '3.8' services: app: image: castopod/app:latest container_name: castopod_app restart: always ports: - "80:80" # HTTP端口(生产环境建议配合反向代理使用HTTPS) - "443:443" # HTTPS端口(需挂载SSL证书) environment: # 基础配置 - CP_BASEURL="[***]" - CP_ENV="production" # 数据库配置 - CP_DATABASE_HOST="db" - CP_DATABASE_NAME="castopod" - CP_DATABASE_USER="castopod" - CP_DATABASE_PASSWORD="your_db_password" # Redis缓存配置 - CP_REDIS_HOST="redis" - CP_REDIS_PASSWORD="your_redis_password" # 媒体存储配置(默认本地存储) - CP_MEDIA_STORAGE="local" volumes: - castopod_media:/var/www/html/media # 媒体文件存储 - ./ssl:/etc/nginx/ssl # SSL证书挂载(生产环境) - ./config:/var/www/html/.env # 配置文件持久化(可选) depends_on: - db - redis db: image: mariadb:10.11 container_name: castopod_db restart: always environment: - MYSQL_ROOT_PASSWORD="root_password" - MYSQL_DATABASE="castopod" - MYSQL_USER="castopod" - MYSQL_PASSWORD="your_db_password" volumes: - castopod_db:/var/lib/mysql command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci redis: image: redis:7-alpine container_name: castopod_redis restart: always command: redis-server --requirepass "your_redis_password" volumes: - castopod_redis:/data volumes: castopod_media: castopod_db: castopod_redis:
启动服务:
bashdocker-compose up -d
| 环境变量 | 描述 | 示例值 | 必填性 |
|---|---|---|---|
CP_BASEURL | 播客平台基础URL(含协议) | [***] | 是 |
CP_ENV | 运行环境(开发/生产) | production | 否 |
CP_DATABASE_HOST | 数据库主机地址 | db | 是 |
CP_DATABASE_NAME | 数据库名称 | castopod | 是 |
CP_DATABASE_USER | 数据库用户名 | castopod | 是 |
CP_DATABASE_PASSWORD | 数据库密码 | your_strong_password | 是 |
CP_REDIS_HOST | Redis主机地址(用于缓存) | redis | 否 |
CP_MEDIA_STORAGE | 媒体存储类型(local/s3/gcs) | local | 否 |
CP_MEDIA_S3_BUCKET | S3存储桶名称(当使用S3存储时) | my-podcast-media | 否 |
CP_BASEURL,通过Web向导完成管理员账户创建及基础设置castopod_db卷(数据库)和castopod_media卷(媒体文件)docker-compose pull && docker-compose up -d更新镜像docker exec castopod_db mysqldump -u castopod -p'your_db_password' castopod > backup.sql实现


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务