Skip to content
Snippets Groups Projects
INSTALL.md 3.07 KiB
Newer Older
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.

- [Install instructions](#install-instructions)
  - [(optional) Manual configuration](#optional-manual-configuration)
- [Web Server Requirements](#web-server-requirements)
  - [PHP v7.2 or higher](#php-v72-or-higher)
  - [MySQL compatible database](#mysql-compatible-database)
  - [(Optional) Other recommendations](#optional-other-recommendations)
- [Security concerns](#security-concerns)

## Install instructions

0. Create a MySQL database for Castopod with a user having access and
   modification privileges (for more info, see
   [Web Server Requirements](#web-server-requirements)).
1. Download and unzip the Castopod package onto the web server if you haven’t
   already.
   - ⚠️ Set the web server document root to the `public/` sub-folder.
2. Run the Castopod install script by going to the install wizard page
   (`https://your_domain_name.com/cp-install`) in your favorite web browser.
3. Follow the instructions on your screen.

All done, start podcasting!

### (optional) Manual configuration

Before uploading Castopod files to your web server:

1. Rename the `.env.example` file to `.env` and update the default values with
   your own.
2. Upload the Castopod files with `.env`
3. Go to `/cp-install` to finish the install process.

## Web Server Requirements

### PHP v7.2 or higher

PHP version 7.2 or higher is required, with the following extensions installed:

- [intl](http://php.net/manual/en/intl.requirements.php)
- [libcurl](http://php.net/manual/en/curl.requirements.php) if you plan to use
  the HTTP\CURLRequest library
- [mbstring](http://php.net/manual/en/mbstring.installation.php)

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](http://php.net/manual/en/mysqlnd.install.php)

### MySQL compatible database

> We recommend using [MariaDB](https://mariadb.org)

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.
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](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance safety and prevent any malicious attack, we recommend
you update all your Castopod files permissions:

- `writable/` folder must be **readable** and **writable**.
- `public/media/` folder must be **readable** and **writable**.
- any other file must be set to **readonly**.

// TODO: add instructions on how to set file permissions.