How to Install Castopod on Manjaro

In this tutorial, we will walk you through the steps to install Castopod, a self-hosted podcast hosting platform, on Manjaro.

System Requirements

Before we begin, make sure your system meets the following requirements:

Install Dependencies

First, we need to install some dependencies required by Castopod. Run the following command in your terminal:

sudo pacman -S nginx php php-fpm composer php-intl php-xml ffmpeg --noconfirm

Clone Castopod

Next, you need to clone the Castopod repository using the git command. Run the following command:

cd /var/www/
sudo git clone https://github.com/Castopod/Castopod.git

Install Castopod

Navigate to the Castopod directory and run the composer install command to install Castopod dependencies:

cd /var/www/Castopod
sudo composer install

Configure NGINX

We need to configure the NGINX web server to serve Castopod. Open the NGINX configuration file by running the following command:

sudo nano /etc/nginx/nginx.conf

Add the following configuration in the http block:

server {
    listen 80;
    server_name your.domain.com;
    root /var/www/Castopod;
    index index.php;
 
    location / {
        try_files $uri $uri /index.php?$query_string;
    }
 
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Replace your.domain.com with your domain name or server IP address.

Save and close the file by pressing CTRL + X, followed by Y and ENTER.

Restart the NGINX service to apply the configuration changes:

sudo systemctl restart nginx

Configure Permissions

Castopod requires permissions to access certain directories. Set the correct permissions by running the following command:

sudo chown -R http:http /var/www/Castopod
sudo chmod -R 755 /var/www/Castopod

Setup Database

Castopod requires a database to store its data. You can either use MySQL or PostgreSQL. In this tutorial, we will use PostgreSQL.

Install PostgreSQL using the following command:

sudo pacman -S postgresql --noconfirm

Next, we need to create a new PostgreSQL database and user for Castopod.

Log in to the PostgreSQL server as the postgres user:

sudo su postgres
psql

Create a new database and user for Castopod by running the following commands:

CREATE USER castopod WITH PASSWORD 'yourpassword';
CREATE DATABASE castopod OWNER castopod;

Replace yourpassword with a strong password.

Exit PostgreSQL by running the following command:

\q

Configure Castopod

Rename the .env.development file to .env:

sudo mv /var/www/Castopod/.env.development /var/www/Castopod/.env

Open the .env file using the following command:

sudo nano /var/www/Castopod/.env

Look for DB_ variables and replace them with the following values:

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=castopod
DB_USERNAME=castopod
DB_PASSWORD=yourpassword

Replace yourpassword with the password you created for the Castopod database user.

Save and close the file.

Setup Castopod

Run the following commands to complete the Castopod installation:

cd /var/www/Castopod
sudo php artisan migrate

Access Castopod

Castopod is now installed and configured on your Manjaro system. You can access it using your server's IP address or domain name in your web browser.

For example: http://your.domain.com

Login using the default credentials:

We recommend you to change the default credentials once you are logged in.

Congratulations! You have successfully installed Castopod on your Manjaro system.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!