Simple file-based podcast publisher.
This application is now considered as stable. No more features are planned, but feel free to suggest some if you need. Feature, fix, UX, logo, translation... any help is welcome !
....for end users
- short feed description in the homepage.
- list of podcasts currently in the feed in the homepage.
- archives sorted per folder.
- possibility to listen any episode from the web browser.
- link to the RSS feed.
- responsive design.
- database free application.
- recursive file search.
- configurable without development (release frequency, theme, locale, timezone).
- built on Lumen 5.8 and Bootstwatch 4.3.
- a web server (tested with Apache).
- PHP >= 7.1.3.
- Download the code to an empty folder:
git clone firstname.lastname@example.org:simondubois/podcast.git /var/www/podcast
- Create the configuration file:
cd /var/www/podcast && cp .env.example .env
Set configuration in
APP_KEYis a random generated string (for example
APP_TIMEZONEis the timezone (for example
APP_LOCALEis the locale (
PODCAST_ROOTis the path to audio files (absolute path).
PODCAST_STARTis the date and time the first episode is published at (timestamp).
PODCAST_LENGTHis the number of episodes available in the feed (integer).
PODCAST_INTERVALis the unit of
PODCAST_FREQUENCYbetween two releases (
PODCAST_FREQUENCYis the number of
PODCAST_INTERVALbetween two releases (integer or decimal).
PODCAST_TITLEis the podcast feed title.
PODCAST_DESCRIPTIONis podcast description.
PODCAST_IMAGEis the podcase image URL (optional).
PODCAST_THEMEis the theme for the web interface (see https://bootswatch.com).
Install the dependencies:
composer install --optimize-autoloader --no-dev
- Point the web server to
How to upload episodes?
This feature is not implemented, and there is no plan to implement it in the future. This is a KISS project focusing on publishing audio, not managing files.
To upload episodes, you have several options:
- (S)FTP or any file manager provided by your hosting.
- sync a server folder with a local folder.
- sync a server folder with a file hosting service.
- sync a server folder with a personal cloud service.
- fork the project and implement the feature.
How are episodes sorted?
Episodes are sorted following the alphabetical order of their path relative to
You are free to name folders and episodes as it suits you. If you decide to name the file with the date format
YYYY-MM-DD, the episode title will be the long date format in the locale defined by
How to publish a new episode every... ?
The release schedule is based on 3 settings:
PODCAST_START: date for the first episode. The two other settings will start counting from this value.
PODCAST_INTERVAL: iteration length. Repeated
PODCAST_INTERVALtimes betwwen each release.
PODCAST_FREQUENCY: number of iteration between each release. The value is multiply by the duration of
PODCAST_FREQUENCYto wait for the next release.
Every two days
Twice per week
Twice per week
Every two week
What about authentication?
Authentication either requires a database or an external service. Also, authentication require additional features like lost passwords and account activation. This is a KISS project focusing on publishing audio, avoiding any complexity.
If you want authentication, I recommend you to setup Basic access authentication at the server level.