castopod/INSTALL.md
Yassine Doghri 769ea469c9 refactor: update install logic and add missing cache config step
- add `.env.example` and `INSTALL.md` to castopod bundle for installation docs
- update seeders to be silent on insert errors
- update install layout
- add manual config instructions when .env file is not writable
- fix eslint error in Charts.ts module

closes #32
2020-10-15 14:42:13 +00:00

74 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.
- [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 havent 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.
#### 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](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.