Castopod is podcast hosting software that allows you to easily serve your podcast(s) from your own server rather than through a secondary service like anchor.fm, blubrry, and libsyn. While I personally use anchor.fm for some podcasts which I wanted to easily monetize, for a new podcast, Story Suggest, I had no desire for it to get monetized by me or anyone else. Furthermore, I also wanted to dip my toe into integration with the fediverse. Don’t worry if you don’t know what that is, it’s not critical to any of this.
Either way, while the installation documentation for castopod is relatively clear, I felt like there were a few quick notes/tips I could add for those installing on a shared host like Dreamhost. While I maintain a VPS at Dreamhost, the functionality and installation is the same. Below I’ve highlighted some clarifying points to help others quickly get setup with Castopod.
Just know that Dreamhost, by default, has you covered. Everything described is already enabled in PHP 8.1+. When the requirements refer to libcurl, this shows up in your phpinfo() output as just curl. I did not enable email or video during my install, so take this advice for anyone looking for an audio podcasting solution.
Also ready to go here. Just head to the MySQL Database page in Dreamhost. Remember that database names must be unique across Dreamhost, and
castopod is already taken, so consider hyphenation or other variations.
Unzipping and Uploading
The extracted files are in a castopod folder. You will want to upload the entire contents of that folder into the root for the domain you have setup. The installation instructions make it seem like you only need the
/public sub-folder, but that’s incorrect. You need it all, but we have to make a change to our Dreamhost configuration regarding the
Web Server Document Root (Web Directory)
In Dreamhost, go to Hosted Domains and click the Edit button under the web hosting column. This is assuming you’ve already created the fully hosted site because, well, I just had you upload the files so they had to go somewhere. :)
Anyway, under Users, Files, and Paths and Web Directory, you want to append
/public to the existing path. This is telling Dreamhost that is the root for public access. The index.php file in that directory does a lot of heavy lifting. Save and done!
You should now be able to use the built-in installer at
/cp-install in your web browser to set things up. If you’re wondering about the Cron Jobs, in Dreamhost the path to PHP 8.1 is:
/usr/local/php81/bin/php so you can create a cronjob similar to the installation instructions (just delete the **** beginning which is specific to an actual cron file on a server); Dreamhost just wants the command as it would be typed into a terminal.