-
Yassine Doghri authored
- add "ActivityPub" library to handle server to server federation and basic client to server protocols using activitypub: - add webfinger endpoint to look for actor - add actor definition with inbox / outbox / followers - remote follow an actor - create notes with possible preview cards - interract with favourites, reblogs and replies - block incoming actors and/or domains - broadcast/schedule activities to fediverse followers using a cron task - For castopod, the podcast is the actor: - overwrite the activitypub library for castopod's specific needs - perform basic interactions administrating a podcast to interact with fediverse users: - create notes with episode attachment - favourite and share a note + reply - add specific castopod_namespaces for podcasts and episodes definitions - overwrite CodeIgniter's Route service to include alternate-content option for activitystream requests - update episode publication logic: - remove publication inputs in create / edit episode form - publish / schedule or unpublish an episode after creation - the podcaster publishes a note when publishing an episode - Javascript / Typescript modules: - fix Dropdown.ts to keep dropdown menu in foreground - add Modal.ts for funding links modal - add Toggler.ts to toggle various css states in ui - User Interface: - update tailwindcss to v2 - use castopod's pine and rose colors - update public layout to a 3 column layout - add pages in public for podcast activity, episode list and notes - update episode page to include linked notes - remove previous and next episodes from episode pages - show different public views depending on whether user is authenticated or not - use Kumbh Sans and Montserrat fonts - update CodeIgniter's config files - with CodeIgniter's new requirements, update docker environments are now based on php v7.3 image - move Image entity to Libraries - update composer and npm packages to latest versions closes #69 #65 #85, fixes #51 #91 #92 #88
Yassine Doghri authored- add "ActivityPub" library to handle server to server federation and basic client to server protocols using activitypub: - add webfinger endpoint to look for actor - add actor definition with inbox / outbox / followers - remote follow an actor - create notes with possible preview cards - interract with favourites, reblogs and replies - block incoming actors and/or domains - broadcast/schedule activities to fediverse followers using a cron task - For castopod, the podcast is the actor: - overwrite the activitypub library for castopod's specific needs - perform basic interactions administrating a podcast to interact with fediverse users: - create notes with episode attachment - favourite and share a note + reply - add specific castopod_namespaces for podcasts and episodes definitions - overwrite CodeIgniter's Route service to include alternate-content option for activitystream requests - update episode publication logic: - remove publication inputs in create / edit episode form - publish / schedule or unpublish an episode after creation - the podcaster publishes a note when publishing an episode - Javascript / Typescript modules: - fix Dropdown.ts to keep dropdown menu in foreground - add Modal.ts for funding links modal - add Toggler.ts to toggle various css states in ui - User Interface: - update tailwindcss to v2 - use castopod's pine and rose colors - update public layout to a 3 column layout - add pages in public for podcast activity, episode list and notes - update episode page to include linked notes - remove previous and next episodes from episode pages - show different public views depending on whether user is authenticated or not - use Kumbh Sans and Montserrat fonts - update CodeIgniter's config files - with CodeIgniter's new requirements, update docker environments are now based on php v7.3 image - move Image entity to Libraries - update composer and npm packages to latest versions closes #69 #65 #85, fixes #51 #91 #92 #88
How to install Castopod
Castopod was thought to be easy to install. Whether using dedicated or shared hosting, you can install it on most PHP-MySQL compatible web servers.
Table of contents
Install instructions
-
Create a MySQL database for Castopod with a user having access and modification privileges (for more info, see Web Server Requirements).
-
Download and unzip the Castopod package onto the web server if you haven’t already.
-
⚠️ Set the web server document root to thepublic/
sub-folder.
-
-
⚠️ For broadcasting social activities to the fediverse, add a cron task on your web server to run every minute (replace the paths accordingly):* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
-
Run the Castopod install script by going to the install wizard page (
https://your_domain_name.com/cp-install
) in your favorite web browser. -
Follow the instructions on your screen.
All done, start podcasting!
(optional) Manual configuration
Before uploading Castopod files to your web server:
- Rename the
.env.example
file to.env
and update the default values with your own. - Upload the Castopod files with
.env
- Go to
/cp-install
to finish the install process.
Web Server Requirements
PHP v7.3 or higher
PHP version 7.3 or higher is required, with the following extensions installed:
Additionally, make sure that the following extensions are enabled in your PHP:
- json (enabled by default - don't turn it off)
- xml (enabled by default - don't turn it off)
- mysqlnd
MySQL compatible database
We recommend using MariaDB
You will need the server hostname, database name, username and password to complete the installation process. If you do not have these, please contact your server administrator.
Privileges
User must have at least these privileges on the database for Castopod to work:
ALTER
, DELETE
, EXECUTE
, INDEX
, INSERT
, SELECT
, UPDATE
.
(Optional) Other recommendations
- Redis for better cache performances.
- CDN for better performances.
- e-mail gateway for lost passwords.
Security concerns
Castopod is built on top of Codeigniter, a PHP framework that encourages good security practices.
To maximize your instance safety and prevent any malicious attack, we recommend you update all your Castopod files permissions (after installation to avoid any permission error):
-
writable/
folder must be readable and writable. -
public/media/
folder must be readable and writable. - any other file must be set to readonly.
For instance, if you are using Apache or NGINX with Ubuntu you may do the following:
sudo chown -R root:root /path/to/castopod
sudo chown -R www-data:www-data /path/to/castopod/writable
sudo chown -R www-data:www-data /path/to/castopod/public/media