castopod/docs/src/da/getting-started/install.md

8.2 KiB
Raw Blame History

title sidebarDepth
Installation 3

How to install Castopod?

Castopod was thought-out to be easy to install. Whether using dedicated or shared hosting, you can install it on most PHP-MySQL compatible web servers.

::: tip Note

We've released official Docker images for Castopod!

If you prefer using Docker, you may skip this and go straight to the docker documentation for Castopod.

:::

Requirements

  • PHP v8.1 or higher
  • MySQL version 5.7 or higher or MariaDB version 10.2 or higher
  • HTTPS support
  • An ntp-synced clock to validate federation's incoming requests

PHP v8.1 or higher

PHP version 8.1 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.

::: warning Warning

Castopod only works with supported MySQL 5.7 or higher compatible databases. It will break with the previous MySQL v5.6 for example as its end of life was on February 5, 2021.

:::

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: CREATE, ALTER, DELETE, EXECUTE, INDEX, INSERT, SELECT, UPDATE, REFERENCES, CREATE VIEW.

(Optional) FFmpeg v4.1.8 or higher for Video Clips

FFmpeg version 4.1.8 or higher is required if you want to generate Video Clips. The following extensions must be installed:

  • FreeType 2 library for gd.

(Optional) Other recommendations

  • Redis for better cache performances.
  • CDN for static files caching and better performances.
  • e-mail gateway for lost passwords.

Install instructions

Pre-requisites

  1. Get a Web Server with requirements installed

  2. Create a MySQL database for Castopod with a user having access and modification privileges (for more info, see MySQL compatible database).

  3. Activate HTTPS on your domain with an SSL certificate.

  4. Download and unzip the latest Castopod Package onto the web server if you havent already.

    • ⚠️ Set the web server document root to the public/ sub-folder within the castopod folder.
  5. Add cron tasks on your web server for various background processes (replace the paths accordingly):

    • For social features to work properly, this task is used to broadcast social activities to your followers on the fediverse:
       * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
    
    • For having your episodes be broadcasted on open hubs upon publication using WebSub:
       * * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
    
       * * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
    

    These tasks run every minute. You may set the frequency depending on your needs: every 5, 10 minutes or more.

  1. Run the Castopod install script by going to the install wizard page (https://your_domain_name.com/cp-install) in your favorite web browser.
  2. Follow the instructions on your screen.
  3. Start podcasting!

::: info Note

The install script writes a .env file in the package root. If you cannot go through the install wizard, you can create and edit the .env file manually based on the .env.example file.

:::

Email/SMTP setup

Email configuration is required for some features to work properly (eg. retrieving your forgotten password, sending instructions to premium subscribers, …)

You may add your email configuration in your instance's .env like so:

# […]

email.fromEmail="your_email_address"
email.SMTPHost="your_smtp_host"
email.SMTPUser="your_smtp_user"
email.SMTPPass="your_smtp_password"

Email config options

Variable name Type Default
fromEmail string undefined
fromName string "Castopod"
SMTPHost string undefined
SMTPUser string undefined
SMTPPass string undefined
SMTPPort number 25
SMTPCrypto ["tls" or "ssl"] "tls"

Media storage

By default, files are saved to the public/media folder using the file system. If you need to relocate the media folder to a different location, you can specify it in your .env file as shown below:

# […]

media.root="media"
media.storage="/mnt/storage"

In this example, the files will be saved to the /mnt/storage/media folder. Make sure to also update your web server configuration to reflect this change.

S3

If you prefer storing your media files on an S3 compatible storage, you may specify it in your .env:

# […]

media.fileManager="s3"
media.s3.endpoint="your_s3_host"
media.s3.key="your_s3_key"
media.s3.secret="your_s3_secret"
media.s3.region="your_s3_region"

S3 config options

Variable name Type Default
endpoint string undefined
key string undefined
secret string undefined
region string undefined
bucket string castopod
protocol number undefined
pathStyleEndpoint boolean false
keyPrefix string undefined

Community packages

If you don't want to bother with installing Castopod manually, you may use one of the packages created and maintained by the open-source community.

Install with YunoHost

YunoHost is a distribution based on Debian GNU/Linux made up of free and open-source software packages. It manages the hardships of self-hosting for you.