chore: new Crowdin updates

This commit is contained in:
Yassine Doghri 2022-04-14 13:11:07 +00:00
parent b870ce55bc
commit 5564f77502
203 changed files with 14389 additions and 917 deletions

View File

@ -9,11 +9,11 @@ declare(strict_types=1);
*/
return [
'title' => "{actorDisplayName}'s comment for {episodeTitle}",
'title' => "تعليق {actorDisplayName} على {episodeTitle}",
'back_to_comments' => 'العودة إلى التعليقات',
'form' => [
'episode_message_placeholder' => 'أكتب تعليقاً…',
'reply_to_placeholder' => 'Reply to @{actorUsername}',
'reply_to_placeholder' => 'رد على @{actorUsername}',
'submit' => 'ارسل',
'submit_reply' => 'رد',
],

View File

@ -13,7 +13,7 @@ return [
'your_handle_hint' => 'Enter the @username@domain you want to act from.',
'follow' => [
'label' => 'تابِع',
'title' => 'Follow {actorDisplayName}',
'title' => 'تابع {actorDisplayName}',
'subtitle' => 'إنك بصدد متابعة:',
'accountNotFound' => 'لا يمكن العثور على الحساب.',
'remoteFollowNotAllowed' => 'Seems like the account server does not allow remote follows…',

View File

@ -13,8 +13,8 @@ return [
'sort_by' => 'ترتيب حسب',
'sort_options' => [
'activity' => 'آخر نشاط',
'created_desc' => 'Newest first',
'created_asc' => 'Oldest first',
'created_desc' => 'الأحدث أولًا',
'created_asc' => 'الأقدم أولاً',
],
'no_podcast' => 'No podcast found',
'no_podcast' => 'لا يوجد أي بودكاست',
];

View File

@ -10,13 +10,13 @@ declare(strict_types=1);
return [
'feed' => 'RSS Podcast feed',
'season' => 'Season {seasonNumber}',
'season' => 'الموسم {seasonNumber}',
'list_of_episodes_year' => 'حلَقات {year} ({episodeCount})',
'list_of_episodes_season' =>
'Season {seasonNumber} episodes ({episodeCount})',
'no_episode' => 'No episode found!',
'الموسم {seasonNumber} الحلقات ({episodeCount})',
'no_episode' => 'لم يتم العثور على أية حلقة!',
'follow' => 'متابعة',
'followTitle' => 'Follow {actorDisplayName} on the fediverse!',
'followTitle' => 'تابع {actorDisplayName} على الفديفرس!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
@ -41,7 +41,7 @@ return [
}',
'first_published_at' => 'First episode published on <span class="font-semibold">{0, date, medium}</span>',
],
'sponsor' => 'Sponsor',
'sponsor' => 'الراعي',
'funding_links' => 'Funding links for {podcastTitle}',
'find_on' => 'Find {podcastTitle} on',
'listen_on' => 'Listen on',

View File

@ -34,7 +34,7 @@ return [
other {# replies}
}',
'expand' => 'Expand post',
'block_actor' => 'Block user @{actorUsername}',
'block_domain' => 'Block domain @{actorDomain}',
'block_actor' => 'احجب المستخدم @{actorUsername}',
'block_domain' => 'احجب النطاق @{actorDomain}',
'delete' => 'احذف المنشور',
];

View File

@ -18,18 +18,25 @@ return [
'submit_reply' => 'Respont',
],
'likes' => '{numberOfLikes, plural,
one {# like}
other {# likes}
one {# muiañ-karet}
2 {# vuiañ-karet}
22 {# vuiañ-karet}
32 {# vuiañ-karet}
42 {# vuiañ-karet}
52 {# vuiañ-karet}
62 {# vuiañ-karet}
82 {# vuiañ-karet}
other {# muiañ-karet}
}',
'replies' => '{numberOfReplies, plural,
0 {respont ebet}
one {# respont}
other {# respont}
}',
'like' => 'Like',
'like' => 'Muiañ-karet',
'reply' => 'Respont',
'view_replies' => 'Gwelout an evezhiadennoù ({numberOfReplies})',
'block_actor' => 'Berzañ pep tra eus an implijer·ez @{actorUsername}',
'block_domain' => 'Berzañ pep tra eus @{actorDomain}',
'block_actor' => 'Stankañ an implijer·ez @{actorUsername}',
'block_domain' => 'Stankañ @{actorDomain}',
'delete' => 'Dilemel an evezhiadenn',
];

View File

@ -15,7 +15,7 @@ return [
'optional' => 'Diret',
'close' => 'Serriñ',
'home' => 'Degemer',
'explicit' => 'Explicit',
'explicit' => "Endalc'had evit an oadourien",
'powered_by' => 'Lusket gant {castopod}',
'go_back' => 'Mont war-gil',
'play_episode_button' => [

View File

@ -22,8 +22,15 @@ return [
'submit_reply' => 'Respont',
],
'favourites' => '{numberOfFavourites, plural,
one {# favourite}
other {# favourites}
one {# muiañ-karet}
2 {# vuiañ-karet}
22 {# vuiañ-karet}
32 {# vuiañ-karet}
42 {# vuiañ-karet}
52 {# vuiañ-karet}
62 {# vuiañ-karet}
82 {# vuiañ-karet}
other {# muiañ-karet}
}',
'reblogs' => '{numberOfReblogs, plural,
0 {rannadur ebet}
@ -36,7 +43,7 @@ return [
other {# respont}
}',
'expand' => 'Astenn ar gemennadenn',
'block_actor' => 'Berzañ pep tra eus an implijer·ez @{actorUsername}',
'block_domain' => 'Berzañ pep tra eus @{actorDomain}',
'block_actor' => 'Stankañ an implijer·ez @{actorUsername}',
'block_domain' => 'Stankañ @{actorDomain}',
'delete' => 'Dilemel ar gemennadenn',
];

View File

@ -0,0 +1,34 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'title' => "{actorDisplayName} sin kommentar til {episodeTitle}",
'back_to_comments' => 'Tilbake til kommentarane',
'form' => [
'episode_message_placeholder' => 'Skriv ein kommentar…',
'reply_to_placeholder' => 'Svar til @{actorUsername}',
'submit' => 'Send',
'submit_reply' => 'Svar',
],
'likes' => '{numberOfLikes, plural,
one {# likar}
other {# likar}
}',
'replies' => '{numberOfReplies, plural,
one {# svar}
other {# svar}
}',
'like' => 'Lik',
'reply' => 'Svar',
'view_replies' => 'Vis svar ({numberOfReplies})',
'block_actor' => 'Blokker brukaren @{actorUsername}',
'block_domain' => 'Blokker domenet @{actorDomain}',
'delete' => 'Slett kommentaren',
];

View File

@ -0,0 +1,29 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'yes' => 'Ja',
'no' => 'Nei',
'cancel' => 'Avbryt',
'optional' => 'Valfritt',
'close' => 'Lukk',
'home' => 'Heim',
'explicit' => 'Grov prat',
'powered_by' => 'Køyrer på {castopod}',
'go_back' => 'Tilbake',
'play_episode_button' => [
'play' => 'Spel',
'playing' => 'Spelar',
],
'read_more' => 'Les meir',
'read_less' => 'Les mindre',
'see_more' => 'Sjå meir',
'see_less' => 'Sjå mindre',
];

View File

@ -0,0 +1,33 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'season' => 'Sesong {seasonNumber}',
'season_abbr' => 'S{seasonNumber}',
'number' => 'Episode {episodeNumber}',
'number_abbr' => 'Ep. {episodeNumber}',
'season_episode' => 'Sesong {seasonNumber} episode {episodeNumber}',
'season_episode_abbr' => 'S{seasonNumber}:E{episodeNumber}',
'persons' => '{personsCount, plural,
one {# person}
other {# personar}
}',
'persons_list' => 'Personar',
'back_to_episodes' => 'Tilbake til episodane av {podcast}',
'comments' => 'Kommentarar',
'activity' => 'Aktivitet',
'description' => 'Skildring av episoden',
'number_of_comments' => '{numberOfComments, plural,
one {# kommentar}
other {# kommentarar}
}',
'all_podcast_episodes' => 'Alle podkast-episodane',
'back_to_podcast' => 'Gå tilbake til podkasten',
];

View File

@ -0,0 +1,37 @@
<?php
declare(strict_types=1);
/**
* @copyright 2021 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'your_handle' => 'Handtaket ditt',
'your_handle_hint' => 'Skriv inn @brukarnamn@domene som du vil handla frå.',
'follow' => [
'label' => 'Fylg',
'title' => 'Fylg {actorDisplayName}',
'subtitle' => 'Du kjem til å fylgja:',
'accountNotFound' => 'Fann ikkje kontoen.',
'remoteFollowNotAllowed' => 'Det ser ut til at denne tenaren ikkje tillèt eksterne fylgjarar…',
'submit' => 'Hald fram for å fylgja',
],
'favourite' => [
'title' => "Innlegg frå favoritten {actorDisplayName}",
'subtitle' => 'Du kjem til å merka som favoritt:',
'submit' => 'Hald fram for å merka som favoritt',
],
'reblog' => [
'title' => "Del innlegget frå {actorDisplayName}",
'subtitle' => 'Du skal til å dela:',
'submit' => 'Hald fram for å dela',
],
'reply' => [
'title' => "Svar til innlegget frå {actorDisplayName}",
'subtitle' => 'Du skal til å svara på:',
'submit' => 'Hald fram for å svara',
],
];

View File

@ -0,0 +1,20 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'all_podcasts' => 'Alle podkastar',
'sort_by' => 'Sorter etter',
'sort_options' => [
'activity' => 'Ny aktivitet',
'created_desc' => 'Nyaste fyrst',
'created_asc' => 'Eldste fyrst',
],
'no_podcast' => 'Fann ingen podkast',
];

View File

@ -0,0 +1,17 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'back_to_home' => 'Heimatt',
'map' => [
'title' => 'Kart',
'description' => 'Oppdag podkastepisodar frå {siteName} som er plasserte på eit kart! Gå gjennom kartet og høyr på episodar som pratar om bestemte stader.',
],
];

View File

@ -0,0 +1,53 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'feed' => 'RSS-straum for podkasten',
'season' => 'Sesong {seasonNumber}',
'list_of_episodes_year' => '{year}-episodar ({episodeCount})',
'list_of_episodes_season' =>
'Sesong {seasonNumber}-episodar ({episodeCount})',
'no_episode' => 'Fann ingen episode!',
'follow' => 'Fylg',
'followTitle' => 'Fylg {actorDisplayName} på fødiverset!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> fylgjar}
other {<span class="font-semibold">#</span> fylgjarar}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> innlegg}
other {<span class="font-semibold">#</span> innlegg}
}',
'activity' => 'Aktivitet',
'episodes' => 'Episodar',
'episodes_title' => 'Episodar av {podcastTitle}',
'about' => 'Om',
'stats' => [
'title' => 'Statistikk',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> sesong}
other {<span class="font-semibold">#</span> sesongar}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episode}
other {<span class="font-semibold">#</span> episodar}
}',
'first_published_at' => 'Den fyrste episoden vart lagt ut <span class="font-semibold">{0, date, medium}</span>',
],
'sponsor' => 'Sponsor',
'funding_links' => 'Finansieringslenker for {podcastTitle}',
'find_on' => 'Finn {podcastTitle} på',
'listen_on' => 'Høyr på',
'persons' => '{personsCount, plural,
one {# person}
other {# personar}
}',
'persons_list' => 'Personar',
];

View File

@ -0,0 +1,40 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'title' => "Innlegget frå {actorDisplayName}",
'back_to_actor_posts' => 'Tilbake til innlegga frå {actor}',
'actor_shared' => '{actor} delte',
'reply_to' => 'Svar til @{actorUsername}',
'form' => [
'message_placeholder' => 'Skriv ei melding…',
'episode_message_placeholder' => 'Skriv ei melding for episoden…',
'episode_url_placeholder' => 'Episode-URL',
'reply_to_placeholder' => 'Svar til @{actorUsername}',
'submit' => 'Send',
'submit_reply' => 'Svar',
],
'favourites' => '{numberOfFavourites, plural,
one {# favoritt}
other {# favorittar}
}',
'reblogs' => '{numberOfReblogs, plural,
one {# deling}
other {# delingar}
}',
'replies' => '{numberOfReplies, plural,
one {# svar}
other {# svar}
}',
'expand' => 'Utvid innlegget',
'block_actor' => 'Blokker brukaren @{actorUsername}',
'block_domain' => 'Blokker domenet @{actorDomain}',
'delete' => 'Slett innlegget',
];

View File

@ -0,0 +1,34 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'title' => "{actorDisplayName}'s comment for {episodeTitle}",
'back_to_comments' => 'Back to comments',
'form' => [
'episode_message_placeholder' => 'Write a comment…',
'reply_to_placeholder' => 'Reply to @{actorUsername}',
'submit' => 'Send',
'submit_reply' => 'Reply',
],
'likes' => '{numberOfLikes, plural,
one {# like}
other {# likes}
}',
'replies' => '{numberOfReplies, plural,
one {# reply}
other {# replies}
}',
'like' => 'Like',
'reply' => 'Reply',
'view_replies' => 'View replies ({numberOfReplies})',
'block_actor' => 'Block user @{actorUsername}',
'block_domain' => 'Block domain @{actorDomain}',
'delete' => 'Delete comment',
];

View File

@ -0,0 +1,29 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'yes' => 'Yes',
'no' => 'No',
'cancel' => 'Cancel',
'optional' => 'Optional',
'close' => 'Close',
'home' => 'Home',
'explicit' => 'Explicit',
'powered_by' => 'Powered by {castopod}',
'go_back' => 'Go back',
'play_episode_button' => [
'play' => 'Play',
'playing' => 'Playing',
],
'read_more' => 'Read more',
'read_less' => 'Read less',
'see_more' => 'See more',
'see_less' => 'See less',
];

View File

@ -0,0 +1,33 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'season' => 'Season {seasonNumber}',
'season_abbr' => 'S{seasonNumber}',
'number' => 'Episode {episodeNumber}',
'number_abbr' => 'Ep. {episodeNumber}',
'season_episode' => 'Season {seasonNumber} episode {episodeNumber}',
'season_episode_abbr' => 'S{seasonNumber}:E{episodeNumber}',
'persons' => '{personsCount, plural,
one {# person}
other {# persons}
}',
'persons_list' => 'Persons',
'back_to_episodes' => 'Back to episodes of {podcast}',
'comments' => 'Comments',
'activity' => 'Activity',
'description' => 'Episode description',
'number_of_comments' => '{numberOfComments, plural,
one {# comment}
other {# comments}
}',
'all_podcast_episodes' => 'All podcast episodes',
'back_to_podcast' => 'Go back to podcast',
];

View File

@ -0,0 +1,37 @@
<?php
declare(strict_types=1);
/**
* @copyright 2021 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'your_handle' => 'Your handle',
'your_handle_hint' => 'Enter the @username@domain you want to act from.',
'follow' => [
'label' => 'Follow',
'title' => 'Follow {actorDisplayName}',
'subtitle' => 'You are going to follow:',
'accountNotFound' => 'The account could not be found.',
'remoteFollowNotAllowed' => 'Seems like the account server does not allow remote follows…',
'submit' => 'Proceed to follow',
],
'favourite' => [
'title' => "Favourite {actorDisplayName}'s post",
'subtitle' => 'You are going to favourite:',
'submit' => 'Proceed to favourite',
],
'reblog' => [
'title' => "Share {actorDisplayName}'s post",
'subtitle' => 'You are going to share:',
'submit' => 'Proceed to share',
],
'reply' => [
'title' => "Reply to {actorDisplayName}'s post",
'subtitle' => 'You are going to reply to:',
'submit' => 'Proceed to reply',
],
];

20
app/Language/oc/Home.php Normal file
View File

@ -0,0 +1,20 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'all_podcasts' => 'All podcasts',
'sort_by' => 'Sort by',
'sort_options' => [
'activity' => 'Recent activity',
'created_desc' => 'Newest first',
'created_asc' => 'Oldest first',
],
'no_podcast' => 'No podcast found',
];

17
app/Language/oc/Page.php Normal file
View File

@ -0,0 +1,17 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'back_to_home' => 'Back to home',
'map' => [
'title' => 'Map',
'description' => 'Discover podcast episodes on {siteName} that are placed on a map! Travel through the map and listen to episodes that talk about specific locations.',
],
];

View File

@ -0,0 +1,53 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'feed' => 'RSS Podcast feed',
'season' => 'Season {seasonNumber}',
'list_of_episodes_year' => '{year} episodes ({episodeCount})',
'list_of_episodes_season' =>
'Season {seasonNumber} episodes ({episodeCount})',
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followTitle' => 'Follow {actorDisplayName} on the fediverse!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',
'episodes_title' => 'Episodes of {podcastTitle}',
'about' => 'About',
'stats' => [
'title' => 'Stats',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> season}
other {<span class="font-semibold">#</span> seasons}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episode}
other {<span class="font-semibold">#</span> episodes}
}',
'first_published_at' => 'First episode published on <span class="font-semibold">{0, date, medium}</span>',
],
'sponsor' => 'Sponsor',
'funding_links' => 'Funding links for {podcastTitle}',
'find_on' => 'Find {podcastTitle} on',
'listen_on' => 'Listen on',
'persons' => '{personsCount, plural,
one {# person}
other {# persons}
}',
'persons_list' => 'Persons',
];

40
app/Language/oc/Post.php Normal file
View File

@ -0,0 +1,40 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'title' => "{actorDisplayName}'s post",
'back_to_actor_posts' => 'Back to {actor} posts',
'actor_shared' => '{actor} shared',
'reply_to' => 'Reply to @{actorUsername}',
'form' => [
'message_placeholder' => 'Write a message…',
'episode_message_placeholder' => 'Write a message for the episode…',
'episode_url_placeholder' => 'Episode URL',
'reply_to_placeholder' => 'Reply to @{actorUsername}',
'submit' => 'Send',
'submit_reply' => 'Reply',
],
'favourites' => '{numberOfFavourites, plural,
one {# favourite}
other {# favourites}
}',
'reblogs' => '{numberOfReblogs, plural,
one {# share}
other {# shares}
}',
'replies' => '{numberOfReplies, plural,
one {# reply}
other {# replies}
}',
'expand' => 'Expand post',
'block_actor' => 'Block user @{actorUsername}',
'block_domain' => 'Block domain @{actorDomain}',
'delete' => 'Delete post',
];

View File

@ -9,26 +9,26 @@ declare(strict_types=1);
*/
return [
'title' => "{actorDisplayName}'s comment for {episodeTitle}",
'back_to_comments' => 'Back to comments',
'title' => "Comentário de {actorDisplayName} para {episodeTitle}",
'back_to_comments' => 'Voltar aos comentários',
'form' => [
'episode_message_placeholder' => 'Write a comment…',
'reply_to_placeholder' => 'Reply to @{actorUsername}',
'submit' => 'Send',
'submit_reply' => 'Reply',
'episode_message_placeholder' => 'Escreva um comentário…',
'reply_to_placeholder' => 'Responder a @{actorUsername}',
'submit' => 'Enviar',
'submit_reply' => 'Responder',
],
'likes' => '{numberOfLikes, plural,
one {# like}
other {# likes}
one {# curtida}
other {# curtidas}
}',
'replies' => '{numberOfReplies, plural,
one {# reply}
other {# replies}
one {# resposta}
other {# respostas}
}',
'like' => 'Like',
'reply' => 'Reply',
'view_replies' => 'View replies ({numberOfReplies})',
'block_actor' => 'Block user @{actorUsername}',
'block_domain' => 'Block domain @{actorDomain}',
'delete' => 'Delete comment',
'like' => 'Curtir',
'reply' => 'Responder',
'view_replies' => 'Ver respostas ({numberOfReplies})',
'block_actor' => 'Bloquear usuário @{actorUsername}',
'block_domain' => 'Bloquear domínio @{actorDomain}',
'delete' => 'Excluir comentário',
];

View File

@ -9,25 +9,25 @@ declare(strict_types=1);
*/
return [
'season' => 'Season {seasonNumber}',
'season_abbr' => 'S{seasonNumber}',
'number' => 'Episode {episodeNumber}',
'season' => 'Temporada {seasonNumber}',
'season_abbr' => 'T{seasonNumber}',
'number' => 'Episódio {episodeNumber}',
'number_abbr' => 'Ep. {episodeNumber}',
'season_episode' => 'Season {seasonNumber} episode {episodeNumber}',
'season_episode_abbr' => 'S{seasonNumber}:E{episodeNumber}',
'season_episode' => 'Temporada {seasonNumber} episódio {episodeNumber}',
'season_episode_abbr' => 'T{seasonNumber}:E{episodeNumber}',
'persons' => '{personsCount, plural,
one {# person}
other {# persons}
one {# pessoa}
other {# pessoas}
}',
'persons_list' => 'Persons',
'back_to_episodes' => 'Back to episodes of {podcast}',
'comments' => 'Comments',
'activity' => 'Activity',
'description' => 'Episode description',
'persons_list' => 'Pessoas',
'back_to_episodes' => 'Voltar para episódios de {podcast}',
'comments' => 'Comentários',
'activity' => 'Atividade',
'description' => 'Descrição do episódio',
'number_of_comments' => '{numberOfComments, plural,
one {# comment}
other {# comments}
one {# comentário}
other {# comentários}
}',
'all_podcast_episodes' => 'All podcast episodes',
'back_to_podcast' => 'Go back to podcast',
'all_podcast_episodes' => 'Todos os episódios de podcast',
'back_to_podcast' => 'Voltar para o podcast',
];

View File

@ -0,0 +1,34 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'title' => "{actorDisplayName}'s comment for {episodeTitle}",
'back_to_comments' => 'Back to comments',
'form' => [
'episode_message_placeholder' => 'Write a comment…',
'reply_to_placeholder' => 'Reply to @{actorUsername}',
'submit' => 'Send',
'submit_reply' => 'Reply',
],
'likes' => '{numberOfLikes, plural,
one {# like}
other {# likes}
}',
'replies' => '{numberOfReplies, plural,
one {# reply}
other {# replies}
}',
'like' => 'Like',
'reply' => 'Reply',
'view_replies' => 'View replies ({numberOfReplies})',
'block_actor' => 'Block user @{actorUsername}',
'block_domain' => 'Block domain @{actorDomain}',
'delete' => 'Delete comment',
];

View File

@ -0,0 +1,29 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'yes' => 'Yes',
'no' => 'No',
'cancel' => 'Cancel',
'optional' => 'Optional',
'close' => 'Close',
'home' => 'Home',
'explicit' => 'Explicit',
'powered_by' => 'Powered by {castopod}',
'go_back' => 'Go back',
'play_episode_button' => [
'play' => 'Play',
'playing' => 'Playing',
],
'read_more' => 'Read more',
'read_less' => 'Read less',
'see_more' => 'See more',
'see_less' => 'See less',
];

View File

@ -0,0 +1,33 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'season' => 'Season {seasonNumber}',
'season_abbr' => 'S{seasonNumber}',
'number' => 'Episode {episodeNumber}',
'number_abbr' => 'Ep. {episodeNumber}',
'season_episode' => 'Season {seasonNumber} episode {episodeNumber}',
'season_episode_abbr' => 'S{seasonNumber}:E{episodeNumber}',
'persons' => '{personsCount, plural,
one {# person}
other {# persons}
}',
'persons_list' => 'Persons',
'back_to_episodes' => 'Back to episodes of {podcast}',
'comments' => 'Comments',
'activity' => 'Activity',
'description' => 'Episode description',
'number_of_comments' => '{numberOfComments, plural,
one {# comment}
other {# comments}
}',
'all_podcast_episodes' => 'All podcast episodes',
'back_to_podcast' => 'Go back to podcast',
];

View File

@ -0,0 +1,37 @@
<?php
declare(strict_types=1);
/**
* @copyright 2021 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'your_handle' => 'Your handle',
'your_handle_hint' => 'Enter the @username@domain you want to act from.',
'follow' => [
'label' => 'Seguir',
'title' => 'Follow {actorDisplayName}',
'subtitle' => 'You are going to follow:',
'accountNotFound' => 'The account could not be found.',
'remoteFollowNotAllowed' => 'Seems like the account server does not allow remote follows…',
'submit' => 'Proceed to follow',
],
'favourite' => [
'title' => "Favourite {actorDisplayName}'s post",
'subtitle' => 'You are going to favourite:',
'submit' => 'Proceed to favourite',
],
'reblog' => [
'title' => "Share {actorDisplayName}'s post",
'subtitle' => 'You are going to share:',
'submit' => 'Proceed to share',
],
'reply' => [
'title' => "Reply to {actorDisplayName}'s post",
'subtitle' => 'You are going to reply to:',
'submit' => 'Proceed to reply',
],
];

20
app/Language/pt/Home.php Normal file
View File

@ -0,0 +1,20 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'all_podcasts' => 'All podcasts',
'sort_by' => 'Sort by',
'sort_options' => [
'activity' => 'Recent activity',
'created_desc' => 'Newest first',
'created_asc' => 'Oldest first',
],
'no_podcast' => 'No podcast found',
];

17
app/Language/pt/Page.php Normal file
View File

@ -0,0 +1,17 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'back_to_home' => 'Back to home',
'map' => [
'title' => 'Map',
'description' => 'Discover podcast episodes on {siteName} that are placed on a map! Travel through the map and listen to episodes that talk about specific locations.',
],
];

View File

@ -0,0 +1,53 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'feed' => 'RSS Podcast feed',
'season' => 'Season {seasonNumber}',
'list_of_episodes_year' => '{year} episodes ({episodeCount})',
'list_of_episodes_season' =>
'Season {seasonNumber} episodes ({episodeCount})',
'no_episode' => 'No episode found!',
'follow' => 'Follow',
'followTitle' => 'Follow {actorDisplayName} on the fediverse!',
'followers' => '{numberOfFollowers, plural,
one {<span class="font-semibold">#</span> follower}
other {<span class="font-semibold">#</span> followers}
}',
'posts' => '{numberOfPosts, plural,
one {<span class="font-semibold">#</span> post}
other {<span class="font-semibold">#</span> posts}
}',
'activity' => 'Activity',
'episodes' => 'Episodes',
'episodes_title' => 'Episodes of {podcastTitle}',
'about' => 'About',
'stats' => [
'title' => 'Stats',
'number_of_seasons' => '{0, plural,
one {<span class="font-semibold">#</span> season}
other {<span class="font-semibold">#</span> seasons}
}',
'number_of_episodes' => '{0, plural,
one {<span class="font-semibold">#</span> episode}
other {<span class="font-semibold">#</span> episodes}
}',
'first_published_at' => 'First episode published on <span class="font-semibold">{0, date, medium}</span>',
],
'sponsor' => 'Sponsor',
'funding_links' => 'Funding links for {podcastTitle}',
'find_on' => 'Find {podcastTitle} on',
'listen_on' => 'Listen on',
'persons' => '{personsCount, plural,
one {# person}
other {# persons}
}',
'persons_list' => 'Persons',
];

40
app/Language/pt/Post.php Normal file
View File

@ -0,0 +1,40 @@
<?php
declare(strict_types=1);
/**
* @copyright 2020 Ad Aures
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
* @link https://castopod.org/
*/
return [
'title' => "{actorDisplayName}'s post",
'back_to_actor_posts' => 'Back to {actor} posts',
'actor_shared' => '{actor} shared',
'reply_to' => 'Reply to @{actorUsername}',
'form' => [
'message_placeholder' => 'Write a message…',
'episode_message_placeholder' => 'Write a message for the episode…',
'episode_url_placeholder' => 'Episode URL',
'reply_to_placeholder' => 'Reply to @{actorUsername}',
'submit' => 'Send',
'submit_reply' => 'Reply',
],
'favourites' => '{numberOfFavourites, plural,
one {# favourite}
other {# favourites}
}',
'reblogs' => '{numberOfReblogs, plural,
one {# share}
other {# shares}
}',
'replies' => '{numberOfReplies, plural,
one {# reply}
other {# replies}
}',
'expand' => 'Expand post',
'block_actor' => 'Block user @{actorUsername}',
'block_domain' => 'Block domain @{actorDomain}',
'delete' => 'Delete post',
];

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

216
docs/src/ar/index.md Normal file
View File

@ -0,0 +1,216 @@
---
sidebarDepth: 2
---
# Welcome 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod is a free & open-source hosting platform made for podcasters who want
engage and interact with their audience.
Castopod is easy to install and was built on top of
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
small footprint.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Features
- 🌱 &nbsp;Free & open-source (AGPL v3 License)
- 🔐 &nbsp;Focused on data sovereignty: your content, audience, and analytics
belong to you, and&nbsp;you&nbsp;only
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

216
docs/src/br/index.md Normal file
View File

@ -0,0 +1,216 @@
---
sidebarDepth: 2
---
# Welcome 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod is a free & open-source hosting platform made for podcasters who want
engage and interact with their audience.
Castopod is easy to install and was built on top of
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
small footprint.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Features
- 🌱 &nbsp;Free & open-source (AGPL v3 License)
- 🔐 &nbsp;Focused on data sovereignty: your content, audience, and analytics
belong to you, and&nbsp;you&nbsp;only
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

219
docs/src/de/index.md Normal file
View File

@ -0,0 +1,219 @@
---
sidebarDepth: 2
---
# Willkommen 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod ist eine freie & Open-Source-Hosting-Plattform für Podcastende, die ihr
Publikum einbinden und mit ihnen interagieren möchten.
Castopod ist einfach zu installieren und wurde auf
[CodeIgniter4](https://codeigniter.com/) aufgebaut, ein mächtiges PHP Framework,
mit einem sehr kleinen Fußabdruck.
::: Info-Status
Castopod ist derzeit in **Beta** aber bereits ziemlich stabil und wird von
Podcastenden auf &nbsp;der&nbsp; ganzen Welt verwendet!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Installieren<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Merkmale
- 🌱 Kostenlos & Open-Source (AGPL v3 Lizenz)
- 🔐 &nbsp;Fokussiert auf die Datensouveränität: Ihre Inhalte, Ihr Publikum und
Analysen gehören zu Ihnen, und&nbsp;nur Ihnen&nbsp;
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
Das Podcasting-Ökosystem ist von Natur aus dezentralisiert: Du kannst deinen
Podcast als RSS-Datei erstellen, im Web publizieren und von dort aus überall
online teilen.
Es ist in der Tat eines der einzigen Medien, die lange Zeit so geblieben sind.
Da sich die Nutzungsmöglichkeiten weiterentwickeln, interessieren sich immer
mehr Menschen für Podcasts: seien es Schöpfer, die neue Wege finden, ihre Ideen
zu teilen, oder Zuhörer auf der Suche nach besseren Inhalten.
Mit zunehmender Verbreitung des Podcasts versuchen einige Unternehmen, ihn auf
ein stärker kontrollierbares und zentralisiertes Medium zu verlagern.
Castopod wurde in dem Bestreben erstellt, eine offene und nachhaltige
Alternative für das Hosting Ihrer Podcasts zu bieten. Die Förderung der
Dezentralisierung soll sicherstellen, dass sich Podcaster in ihrer Kreativität
frei entfalten können.
Dieses Projekt wird von der Open-Source-Community und speziell von den
[Fediverse](https://fediverse.party/en/fediverse/) und
[Podcasting 2.0](https://podcastindex.org/) Bewegungen getragen.
## Vergleiche mit anderen Lösungen
Wir glauben, dass es nicht die eine Lösung für jeden gibt, es ist sehr abhängig
von deinen Bedürfnissen. Also, hier sind Vergleiche mit anderen Tools, die Dir
helfen sollen herauszufinden, ob Castopod das richtige für Dich ist.
### Castopod vs Wordpress
Castopod wird oft als "das Wordpress für Podcasts" bezeichnet, da die
-Ähnlichkeiten zwischen den beiden übereinstimmen. In gewisser Hinsicht ist das
richtig. Und tatsächlich war Castopod stark vom Wordpress-Ökosystem inspiriert,
da es die einfache Übernahme durch die Community und die Anzahl der Websites,
auf denen es ausgeführt wird, sah.
Genau wie Wordpress ist Castopod kostenlos; Open Source, erstellt mit PHP mit
einer MySQL-Datenbank und ist so verpackt, dass Du es auf den Servern der
meisten Websites problemlos installieren kannst.
Wordpress ist ein großartiger Weg, um Deine Website zu erstellen und mit Plugins
zu erweitern, um das zu bekommen, was Du willst. Es ist ein vollwertiges CMS
welches dir hilft, jede Art von Webseite online zu bekommen.
Auf der anderen Seite soll Castopod die Bedürfnisse von Podcastern erfüllen.
Konzentriere Dich ausschließlich aufs Podcasten und sonst nichts. Du benötigst
kein Plugin, um dein Podcasting zu beginnen.
Dadurch lassen sich die Podcast-spezifischen Prozesse optimieren: von der
Erstellung Ihrer Podcasts und die Veröffentlichung neuer Folgen bis hin zu
Rundfunk, Marketing und Analytik.
Schließlich können Wordpress und Castopod je nach Bedarf sogar nebeneinander
existieren, da sie die gleichen Anforderungen haben!
### Castopod vs Funkwale
Funkwhale ist ein selbstgehosteter, moderner kostenloser und
Open-Source-Musikserver. Just as Castopod, Funkwhale is on the fediverse, a
decentralized social network allowing interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

216
docs/src/el/index.md Normal file
View File

@ -0,0 +1,216 @@
---
sidebarDepth: 2
---
# Welcome 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod is a free & open-source hosting platform made for podcasters who want
engage and interact with their audience.
Castopod is easy to install and was built on top of
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
small footprint.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Features
- 🌱 &nbsp;Free & open-source (AGPL v3 License)
- 🔐 &nbsp;Focused on data sovereignty: your content, audience, and analytics
belong to you, and&nbsp;you&nbsp;only
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

216
docs/src/es/index.md Normal file
View File

@ -0,0 +1,216 @@
---
sidebarDepth: 2
---
# Welcome 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod is a free & open-source hosting platform made for podcasters who want
engage and interact with their audience.
Castopod is easy to install and was built on top of
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
small footprint.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Features
- 🌱 &nbsp;Free & open-source (AGPL v3 License)
- 🔐 &nbsp;Focused on data sovereignty: your content, audience, and analytics
belong to you, and&nbsp;you&nbsp;only
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,169 @@
---
title: Installation
sidebarDepth: 3
---
# Comment installer Castopod?
Castopod a été pensé pour être facile à installer. Que vous utilisiez un
hébergement dédié ou mutualisé, vous pouvez l'installer sur la plupart des
serveurs web compatibles avec PHP-MySQL.
## Prérequis
- PHP v8.0 ou supérieure
- MySQL version 5.7 ou supérieure ou MariaDB version 10.2 ou supérieure
- Prise en charge HTTPS
### PHP v8.0 ou supérieure
La version 8.0 ou supérieure de PHP est requise, avec les extensions suivantes
installées :
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) avec **JPEG**,
**PNG** et bibliothèques **WEBP**.
- [exif](https://www.php.net/manual/en/exif.installation.php)
De plus, assurez-vous que les extensions suivantes sont activées dans votre PHP
:
- json (activé par défaut - ne le désactivez pas)
- xml (activé par défaut - ne pas le désactiver)
- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php)
### Base de données compatible MySQL
> Nous vous recommandons d'utiliser [MariaDB](https://mariadb.org).
::: avertissement
Castopod ne fonctionne qu'avec les bases de données compatibles MySQL 5.7 ou
supérieures. Les versions 5.6 (dont le support a cessé le 5 février 2021) ou
précédentes de MySQL ne fonctionneront pas.
:::
Vous aurez besoin du nom d'hôte du serveur, du nom de la base de données, du nom
d'utilisateur et du mot de passe pour terminer le processus d'installation. Si
vous ne disposez pas de ces informations, veuillez contacter votre
administrateur.
#### Droits d'accès
L'utilisateur doit avoir au moins ces droits d'accès sur la base de données pour
que Castopod fonctionne : `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`,
`INSERT`, `SELECT`, `UPDATE`.
### (Facultatif) FFmpeg v4.1.8 ou supérieur pour les clips vidéo
[FFmpeg](https://www.ffmpeg.org/) version 4.1.8 ou supérieure est requis si vous
souhaitez générer des Clips Vidéo. Les extensions suivantes doivent être
installées :
- bibliothèque **FreeType 2** pour
[gd](https://www.php.net/manual/en/image.installation.php).
### (Facultatif) Autres recommandations
- Redis pour de meilleures performances de cache.
- CDN pour la mise en cache de fichiers statiques et de meilleures performances.
- passerelle e-mail pour les mots de passe perdus.
## Instructions d'installation
### Pré-requis
0. Obtenez un serveur Web avec [les pré-requis](#requirements) installés
1. Créer une base de données MySQL pour Castopod avec un utilisateur ayant les
droits d'accès et les droits de modification (pour plus d'informations, cf.
[base de données compatible MySQL](#mysql-compatible-database)).
2. Activez HTTPS sur votre domaine avec un _certificat SSL_.
3. Téléchargez et dézippez le dernier [paquet Castopod](https://castopod.org/)
sur le serveur web si vous ne l'avez pas déjà fait.
- ⚠️ Faites pointer la racine du document du serveur web vers le sous-dossier
`public/` du dossier `castopod`.
4. Ajoutez les **tâches cron** sur votre serveur web pour les différents
processus d'arrière-plan (définissez les chemins selon votre configuration) :
- Pour que les fonctionnalités sociales fonctionnent correctement, cette
tâche est utilisée pour diffuser des activités sociales à vos abonnés sur
le Fédivers :
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- Pour que vos épisodes soient diffusés sur les hubs ouverts à la publication
en utilisant [WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- Pour créer des clips vidéo (cf.
[pré-requis FFmpeg](#ffmpeg-v418-or-higher-for-video-clips) ) :
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,96 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Assurez-vous d'exécuter les scripts sur votre interface phpmyadmin ou
utilisez la ligne de commande pour mettre à jour la base de données avec
les fichiers du paquet!
- cf.
[Je n'ai pas mis à jour mon instance depuis longtemps… Que devrais-je faire ?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. Si vous utilisez redis, effacez votre cache.
6. ✨ Votre nouvelle instance est prête !
## Foire Aux Questions (FAQ)
### Où puis-je trouver ma version de Castopod ?
Allez dans votre panneau d'administration de Castopod, la version s'affiche en
bas à gauche.
Vous pouvez également trouver la version dans le fichier
`app > Config > Constants.php`.
### Je n'ai pas mis à jour mon instance depuis longtemps… Que devrais-je faire ?
Aucun souci ! Il suffit d'obtenir la dernière version comme décrit ci-dessus.
Lorsque vous exécutez les instructions de mise à jour (4), lancez-les
séquentiellement, de la plus ancienne à la plus récente.
> Vous devriez sauvegarder votre instance selon la date de votre dernière mise à
> jour de Castopod.
Par exemple, si vous êtes en `v1.0.0-alpha.42` et souhaitez mettre à jour vers
la `v1.0.0-beta.1`:
0. (fortement recommandé) Faites une sauvegarde de vos fichiers et de votre base
de données.
1. Téléchargez la dernière version, écrasez vos fichiers tout en conservant
`.env` et `public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Votre nouvelle instance est prête !
### Dois-je faire une sauvegarde avant de mettre à jour ?
Nous vous conseillons de le faire, afin de ne pas tout perdre si quelque chose
se passait mal!
Plus généralement, nous vous conseillons de faire des sauvegardes régulières de
vos fichiers Castopod et de votre base de données afin d'éviter de tout perdre…

219
docs/src/fr/index.md Normal file
View File

@ -0,0 +1,219 @@
---
sidebarDepth: 2
---
# Bienvenue 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod est une plateforme dhébergement gratuite & open-source conçue pour les
podcasteurs qui veulent échanger et interagir avec leur public.
Castopod est facile à installer et a été conçu avec
[CodeIgniter4](https://codeigniter.com/), un framework PHP puissant de très
petite taille.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Installation<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Fonctionnalités
- 🌱 &nbsp;Libre, gratuit & open-source (Licence AGPL v3)
- 🔐 &nbsp;focalisé sur la souveraineté des données: votre contenu, votre
audience et vos statiistiques vous appartiennent, et à vous seulement
- 🪄&nbsp;Fonctionnalités de Podcasting 2.0 : GUID, verrouillage, transcriptions,
financement, chapitres, géo-localisation, intervenants, extraits sonores, …
- 💬 &nbsp;Réseau social intégré:
- 🚀 &nbsp;Castopod fait partie du Fédivers, un réseau social décentralisé
- ❤️ &nbsp;Créer des publications, partager, mettre en favori et commenter des
épisodes
- 📈 &nbsp;Statistiques intégrées:
- ⚖️ &nbsp;Conforme GDPR / CCPA / LGPD
- 🪙&nbsp;Mesure d'audience IABv2
- 🏡 &nbsp;Statistiques intégrées, aucune tierce partie intermédiaire
- 📢 &nbsp;Outils de marketing intégrés:
- ✅ &nbsp;Prêt pour le SEO (méta-tags open-graph, JSON-LD…)
- 📱 &nbsp;PWA: installez comme application autonome
- 🎨 &nbsp;Couleurs de thèmes personnalisables
- 🎬 &nbsp;Générez des clips vidéo prêts à partager à partir d'épisodes
- 🔉 &nbsp;Générez des extraits sonores
- ▶️ &nbsp;Intégrer vos épisodes dans n'importe quel site web
- 💸 &nbsp;Monétisation:
- 🔗 &nbsp;Liens de financement
- 📲 &nbsp;publicité “listen-to-click”
- 🤝 &nbsp;value4value / WebMonetization
- 📡&nbsp;Publiez vos épisodes partout avec RSS:
- 📱 &nbsp;Sur tous les index et toutes les applications : Podcast Index,
Podcasts Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend…
- ⚡&nbsp;Diffusez instantanément vos épisodes avec WebSub
- 📥 &nbsp;Importation de Podcast : déménagez votre podcast existant vers
Castopod
- 📤 &nbsp;Déplacez votre podcast chez un autre hébergeur
- 🔀 &nbsp;Multi-locataire: hébergez autant de podcasts que vous le souhaitez
- 👥 &nbsp;Multi-utilisateur : ajoutez des contributeurs et définissez leurs
rôles
- 🌎 &nbsp;support i18n: traduit en Anglais, Français, Polonais, Allemand &
Brésilien… et bientôt d'autres à venir!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contribuer
Vous appréciez Castopod et aimeriez donner un coup de main? Jetez un œil à la
documentation suivante pour démarrer.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

216
docs/src/id/index.md Normal file
View File

@ -0,0 +1,216 @@
---
sidebarDepth: 2
---
# Welcome 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod is a free & open-source hosting platform made for podcasters who want
engage and interact with their audience.
Castopod is easy to install and was built on top of
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
small footprint.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Features
- 🌱 &nbsp;Free & open-source (AGPL v3 License)
- 🔐 &nbsp;Focused on data sovereignty: your content, audience, and analytics
belong to you, and&nbsp;you&nbsp;only
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

216
docs/src/it/index.md Normal file
View File

@ -0,0 +1,216 @@
---
sidebarDepth: 2
---
# Welcome 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod is a free & open-source hosting platform made for podcasters who want
engage and interact with their audience.
Castopod is easy to install and was built on top of
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
small footprint.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Features
- 🌱 &nbsp;Free & open-source (AGPL v3 License)
- 🔐 &nbsp;Focused on data sovereignty: your content, audience, and analytics
belong to you, and&nbsp;you&nbsp;only
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

216
docs/src/nl/index.md Normal file
View File

@ -0,0 +1,216 @@
---
sidebarDepth: 2
---
# Welcome 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod is a free & open-source hosting platform made for podcasters who want
engage and interact with their audience.
Castopod is easy to install and was built on top of
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
small footprint.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Features
- 🌱 &nbsp;Free & open-source (AGPL v3 License)
- 🔐 &nbsp;Focused on data sovereignty: your content, audience, and analytics
belong to you, and&nbsp;you&nbsp;only
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,164 @@
---
title: Installering
sidebarDepth: 3
---
# Korleis installerer eg Castopod?
Det er meininga at Castopod skal vera lett å installera. Uansett om du bruker
eige eller delt vevhotell, kan du installera på dei fleste maskiner som har PHP
og MySQL.
## Krav
- PHP v8.0 eller nyare
- MySQL versjon 5.7 eller nyare, eller MariaDB versjon 10.2 eller nyare
- Støtte for HTTPS
### PHP v8.0 eller nyare
PHP versjon 8.0 er eit krav, med desse utvidingane:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) med **JPEG**-,
**PNG**- og **WEBP**-biblioteka.
- [exif](https://www.php.net/manual/en/exif.installation.php)
I tillegg må du passa på at desse utvidingane er skrudde på i PHP-installasjonen
din:
- json (vanlegvis aktivt - ikkje skru det av)
- xml (vanlegvis aktivt - ikkje skru det av)
- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php)
### MySQL-kompatibel database
> Me tilrår [MariaDB](https://mariadb.org).
::: Åtvaring
Castopod verkar berre med databasar som støttar MySQL 5.7 eller nyare. MySQL 5.6
eller eldre vil ikkje fungera, ettersom den versjonen vart forelda i
februar 2021.
:::
Du treng vertsnamnet til tenaren, databasenamnet, brukarnamnet og passordet til
databasen for å fullføra installeringa. Viss du ikkje har desse, må du kontakta
administratoren for tenarmaskina di.
#### Tilgangsrettar
Brukaren må minst ha desse tilgangsrettane på databasen for at Castopod skal
fungera: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`,
`UPDATE`.
### (Eventuelt) FFmpeg v4.1.8 eller nyare for filmklypp
Du treng [FFmpeg](https://www.ffmpeg.org/) versjon 4.1.8 viss du vil laga
filmklypp. Desse utvidingane må vera installerte:
- **FreeType 2**-biblioteket for
[gd](https://www.php.net/manual/en/image.installation.php).
### (Eventuelt) Andre tilrådingar
- Redis for betre bufring.
- Innhaldsnettverk (CDN) for å bufra statiske filer og betra ytinga.
- Epostløysing for å nullstilla passord.
## Korleis du installerer
### Føresetnader
0. Få tak i ein vevtenar som fyller [krava](#requirements)
1. Lag ein MySQL-database for Castopod der brukaren har tilgangs- og
endringsløyve (les meir om [MySQL-database](#mysql-compatible-database)).
2. Ta i bruk HTTPS på domenet ditt ved hjelp av eit _SSL-sertifikat_.
3. Last ned og pakk ut den nyaste [Castopod-pakka](https://castopod.org/) på
vevtenaren din, om du ikkje allereie har gjort det.
- ⚠️ Set dokumentrota til vevtenaren til undermappa `public/` i
`castopod`-mappa.
4. Lag **cron-oppgåver** på vevtenaren din for ulike bakgrunnsprosessar (byt ut
stiane så dei passar til oppsettet ditt):
- For at sosiale funksjonar skal fungera, trengst denne oppgåva for å
kringkasta sosiale aktivitetar til fylgjarane dine på fødiverset:
```bash
* * * * * /sti/til/php /sti/til/castopod/public/index.php scheduled-activities
```
- For å kringkasta episodane på opne nettnav som bruker
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For å laga filmklypp (sjå
[FFmpeg-krava](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /sti/til/php /sti/til/castopod/public/index.php scheduled-video-clips
```
> Desse oppgåvene blir utførte **kvart minutt**. Du kan setja opp kor ofte du
> treng å utføra oppgåvene: kvart 5., 10. minutt eller meir.
### (Tilrådd) Autoinstallering
1. Køyr Castopod-installasjonen ved å gå til autoinstalleringssida
(`https://domenet_ditt.no/cp-install`) i nettlesaren din.
2. Fylg framgangsmåten på skjermen.
3. Start å podkasta!
::: info
Installasjonsskriptet lagar ei`.env`-fil i rotmappa til pakka. Viss du ikkje kan
bruka autoinstalleringa, kan du
[oppretta og oppdatera `.env`-fila manuelt](#alternative-manual-configuration).
:::
## Pakker frå brukarsamfunnet
Viss du ikkje vil bry deg med å installera Castopod manuelt, kan du bruka ei av
pakkene som brukarsamfunnet har laga. Det er tilhengjarar og brukarar av open
kjeldekode som lagar og vedlikeheld desse pakkene.
### Installer med Yunohost
[Yunohost](https://yunohost.org/) er ein Linux-distribusjon som er bygd på
Debian GNU/Linux og som inneheld frie og opne program. Yunohost tek seg av det
meste som har med oppsett av eigen vevtenar å gjera.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Installer Castopod med Yunohost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github-arkiv</a>
</div>
### Installer med Docker
Viss du vil bruka Docker til å installera Castopod, er det mogleg takk vere
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Installer
med
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info
Etter som mange spør etter Docker-installasjon, planlegg me å laga ei offisiell
Docker-pakke for Castopod her i vårt eige arkiv.
:::

View File

@ -0,0 +1,25 @@
---
title: Tryggleik
---
# Tryggleiksspørsmål
Castopod er bygd på [CodeIgniter4](https://codeigniter.com/), som er eit
PHP-rammeverk som oppmodar til
[god tryggleikspraksis](https://codeigniter.com/user_guide/concepts/security.html).
For å syta for best mogleg tryggleik på nettstaden din og hindra vondsinna åtak,
tilrår me at du oppdaterer alle fil-tilgangsrettane til Castopod-filene etter du
har installert (for å unngå tidlegare feil i tilgangsløyve):
- `writable/`-mappa må vera **lesbar** og **skrivbar**.
- `public/media/`-mappa må vera **lesbar** og **skrivbar**.
- alle andre filer skal vera berre **lesbare**.
Viss du til dømes bruker Apache eller NGINX med Ubuntu, kan du gjera dette:
```bash
sudo chown -R root:root /sti/til/castopod
sudo chown -R www-data:www-data /sti/til/castopod/writable
sudo chown -R www-data:www-data /sti/til/castopod/public/media
```

View File

@ -0,0 +1,89 @@
---
title: Oppdatering
sidebarDepth: 3
---
# Korleis oppdaterer eg Castopod?
Når du har installert Castopod, kan det vera lurt å oppdatera nettstaden din til
siste versjonen for å få nye funksjonar, ✨, feilrettingar 🐛 og betre yting ⚡.
## Framgangsmåte for å oppdatera automatisk
> Kjem snart... 👀
## Framgangsmåte for å oppdatera manuelt
1. Gå til
[sida med utgjevingar](https://code.castopod.org/adaures/castopod/-/releases)
og sjå om nettstaden din bruker siste utgåva av Castopod
- jfr.
[Kvar finn eg Castopod-versjonsnummeret?](#where-can-i-find-my-castopod-version)
2. Last ned den nyaste pakka som heiter `Castopod Package`, du kan velja mellom
`zip`- eller `tar.gz`-arkiva
- ⚠️ Pass på at du lastar ned programpakka, og **IKKJE** kjeldekoden
3. På vevtenaren din:
- Fjern alle filene utanom `.env` og `public/media`
- Kopier dei nye filene frå den nedlasta pakka til vevtenaren din
::: info
Det kan henda du må nullstilla filtilgangsrettar slik du gjer når du
installerer. Sjå [Tryggleiksspørsmål](./security.md).
:::
4. Nokre utgjevingar kan ha fleire oppdateringsinstruksar (sjå
[sida med utgjevingar](https://code.castopod.org/adaures/castopod/-/releases)).
Det gjeld vanlegvis migreringsskript i `.sql`-format for å oppdatera
databaseskjemaet ditt.
- 👉 Pass på at du køyrer skripta i phpmyadmin-panelet ditt eller
kommandolina for å oppdatera databasen i tillegg til pakkefilene!
- jfr.
[Eg har ikkje oppdatert på lenge… Kva skal eg gjera?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. Viss du bruker redis, må du tøma bufferen.
6. ✨ Ferdig!
## Vanlege spørsmål (FAQ)
### Kvar finn eg Castopod-versjonsnummeret?
Gå til styringspanelet for Castopod. Versjonsnummeret står i nedste venstre
hjørnet.
Du kan òg finna versjonsnummeret i `app > Config > Constants.php`-fila.
### Eg har ikkje oppdatert på lenge… Kva skal eg gjera?
Ingen problem! Berre last ned den siste utgåva som skildra over. Hugs berre at
når du går gjennom utgjevingsinstruksane (4), går du gjennom dei frå eldst til
nyast.
> Du bør truleg tryggingskopiera nettstaden din, avhengig av kor lenge sidan det
> er du oppdaterte Castopod.
Til dømes viss du er på `v1.0.0-alpha.42` og vil oppgradera til `v1.0.0-beta.1`:
0. (stekt tilrådd) Ta ein tryggingskopi av filene og databasen din.
1. Last ned siste utgåva, erstatt alle filene utanom `.env` og `public/media`.
2. Gå gjennom alle oppdateringsinstruksane frå eldst til nyast. Start med
`v1.0.0-alpha.43`, `v1.0.0-alpha.44`, `v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Ferdig!
### Bør eg tryggingskopiera før eg oppdaterer?
Det bør du. Viss ikkje, kan du mista heile Castopod-nettstaden dersom noko går
gale!
I det heile bør du ta jamnlege tryggingskopiar av Castopod-filene og databasen
for å unngå å mista noko…

219
docs/src/nn-NO/index.md Normal file
View File

@ -0,0 +1,219 @@
---
sidebarDepth: 2
---
# Velkomen 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod er ei open og gratis løysing for dei som vil køyra si eiga
podkasting-plattform, og for podkastarar som vil engasjera og samhandla med
publikum.
Castopod er lett å installera og er bygd på
[CodeIgniter4](https://codeigniter.com/), eit kraftig PHP-rammeverk med små
systemkrav.
::: info Status
Castopod er i **beta**-utgåve, men er allereie stabilt nok til at podkastarar
over heile verda&nbsp;bruker&nbsp;det!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Installer<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Funksjonar
- 🌱 &nbsp;Fri og open (AGPL v3-lisens)
- 🔐 &nbsp;Legg vekt på at du eig dine eigne data: innhaldet, publikum og
analysedata høyrer deg til, og&nbsp;berre&nbsp;deg
- 🪄 &nbsp;Podkasting 2.0-funksjonar: GUID, låsing, transkribering, finansiering,
kapittel, stader, personar, lydbetar…
- 💬 &nbsp;Innebygd sosialt nettverk:
- 🚀 &nbsp;Castopod er ein del av fødiverset, som er eit desentralisert
sosialt nettverk
- ❤️ &nbsp;Skriv innlegg, del dei, favorittmerk dei, og kommenter episodane
- 📈 &nbsp;Innebygde analyseverkty:
- ⚖️ &nbsp;Fylgjer GDPR / CCPA / LGPD
- 🪙 &nbsp;Standard IABv2-publikumsmåling
- 🏡 &nbsp;Eigen analyse, heilt utan utanforståande tredjepartar
- 📢 &nbsp;Innebygd marknadsføring:
- ✅ &nbsp;Søkjemotorvenleg (open-graph meta-knaggar, JSON-LD, …)
- 📱 &nbsp;PWA: installer som frittståande app
- 🎨 &nbsp;Bruk eigne fargar
- 🎬 &nbsp;Lag og del filmklypp frå episodane
- 🔉 &nbsp;Lag lydbetar
- ▶️ &nbsp;Innbyggbar spelar, så du kan spela episodane dine på ein kvar
nettstad
- 💸 &nbsp;Kommersialisering:
- 🔗 &nbsp;Donasjonslenker
- 📲 &nbsp;lytt-for-å-klikka-annonsar
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Kringkast episodane dine kvar som helst med RSS:
- 📱 &nbsp;På alle indeksar og appar: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Kringkast episodane dine straks med WebSub
- 📥 &nbsp;Podkastimport: Flytt podkasten din til Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

216
docs/src/oc/index.md Normal file
View File

@ -0,0 +1,216 @@
---
sidebarDepth: 2
---
# Welcome 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod is a free & open-source hosting platform made for podcasters who want
engage and interact with their audience.
Castopod is easy to install and was built on top of
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
small footprint.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Features
- 🌱 &nbsp;Free & open-source (AGPL v3 License)
- 🔐 &nbsp;Focused on data sovereignty: your content, audience, and analytics
belong to you, and&nbsp;you&nbsp;only
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

216
docs/src/pl/index.md Normal file
View File

@ -0,0 +1,216 @@
---
sidebarDepth: 2
---
# Welcome 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod is a free & open-source hosting platform made for podcasters who want
engage and interact with their audience.
Castopod is easy to install and was built on top of
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
small footprint.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Features
- 🌱 &nbsp;Free & open-source (AGPL v3 License)
- 🔐 &nbsp;Focused on data sovereignty: your content, audience, and analytics
belong to you, and&nbsp;you&nbsp;only
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,166 @@
---
title: Instalação
sidebarDepth: 3
---
# Como instalar o Castopod?
Castopod foi pensado para ser fácil de instalar. Seja usando hospedagem dedicada
ou compartilhada, você pode instalá-lo na maioria dos servidores web compatíveis
com PHP-MySQL.
## Requisitos
- PHP v8.0 ou superior
- MySQL versão 5.7 ou superior ou MariaDB versão 10.2 ou superior
- Suporte a HTTPS
### PHP v8.0 ou superior
É necessário PHP versão 8.0 ou superior com as seguintes extensões instaladas:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) com **JPEG**,
**PNG** e bibliotecas **WEBP**.
- [exif](https://www.php.net/manual/en/exif.installation.php)
Além disso, certifique-se de que as seguintes extensões estejam habilitadas em
seu PHP:
- json (habilitado por padrão - não desativar)
- xml (habilitado por padrão - não desativar)
- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php)
### Banco de dados compatível com MySQL
> Recomendamos usar o [MariaDB](https://mariadb.org).
::: aviso
Castopod só funciona com bancos de dados compatíveis com MySQL 5.7 ou superior.
Vai quebrar com a versão anteiror do MySQL, v5.6, por exemplo, pois teve seu
ciclo encerrado em 5 de fevereiro de 2021.
:::
Você vai precisar do hostname do servidor, nome do banco de dados, nome do
usuário e senha para concluir o processo de instalação. Se você não os tem,
entre em contato com o administrador do servidor.
#### Privilégios
O usuário deve ter pelo menos estes privilégios no banco de dados para que o
Castopod funcione: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`,
`SELECT`, `UPDATE`.
### (Opcional) FFmpeg v4.1.8 ou superior para Clipes de Vídeo
[FFmpeg](https://www.ffmpeg.org/) versão 4.1.8 ou superior é necessário se você
deseja gerar Clipes de Vídeo. As seguintes extensões devem ser instaladas:
- Biblioteca **FreeType 2** para
[gd](https://www.php.net/manual/en/image.installation.php).
### (Opcional) Outras recomendações
- Redis para melhores desempenhos de cache.
- CDN para cache de arquivos estáticos e melhores desempenhos.
- gateway de e-mail para senhas perdidas.
## Instruções de instalação
### Pré-requisitos
0. Obter um servidor web com os [requisitos](#requirements) instalados
1. Criar um banco de dados MySQL para Castopod com um usuário com privilégios de
acesso e de modificação (para mais informações, ver o
[banco de dados compatível com MySQL](#mysql-compatible-database)).
2. Ativar HTTPS em seu domínio com um _certificado SSL_.
3. Baixar e descompactar o último [Pacote Castopod](https://castopod.org/) no
servidor web, se você ainda não o fez.
- ⚠️ Definir a raiz do documento do servidor web para a subpasta `public/`
dentro da pasta `castopod`.
4. Adicionar **tarefas cron** no seu servidor web para vários processos em
segundo plano (substitua os caminhos adequadamente):
- Para que os recursos sociais funcionem corretamente, esta tarefa é usada
para transmitir atividades sociais para seus seguidores no fediverso:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- Para que seus episódios sejam transmitidos em hubs abertos após a
publicação usando [WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- Para que os clipes de vídeo sejam criados (veja
[requisitos de FFmpeg](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-video-clips
```
> Essas tarefas são executadas **a cada minuto**. Você pode definir a
> freqüência dependendo de suas necessidades: a cada 5, 10 minutos ou mais.
### (recomendado) Assistente de Instalação
1. Execute o script de instalação do Castopod acessando a página do assistente
de instalação (`https://your_domain_name.com/cp-install`) no seu navegador
favorito.
2. Siga as instruções na sua tela.
3. Comece o podcast!
::: info Nota
O script de instalação grava um arquivo `.env` na raiz do pacote. Se você não
puder passar pelo assistente de instalação, você pode
[criar e atualizar o arquivo `.env` manualmente](#alternative-manual-configuration).
:::
## Pacotes comunitários
Se você não quiser se preocupar em instalar o Castopod manualmente, você pode
usar um dos pacotes criados e mantidos pela comunidade de código aberto.
### Instalar com YunoHost
[YunoHost](https://yunohost.org/) é uma distribuição baseada no Debian GNU/Linux
composta por pacotes de software livre e de código aberto. Ele gerencia as
dificuldades de auto-hospedagem para você.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Instalar Castopod com YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Instalar com o Docker
Se você deseja usar o Docker para instalar o Castopod, é possível graças a
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Instalar
com o
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Nota
Dado o alto nível de demanda por docker, planejamos manter uma imagem oficial do
Castopod Docker diretamente no repositório do Castopod.
:::

View File

@ -0,0 +1,28 @@
---
title: Segurança
---
# Questões de segurança
Castopod é construído sobre [CodeIgniter4](https://codeigniter.com/), um
framework PHP que encoraja
[boas práticas de segurança](https://codeigniter.com/user_guide/concepts/security.html).
Para maximizar a segurança da sua instância e prevenir qualquer ataque
malicioso, nós recomendamos que você atualize todas as suas permissões de
arquivos do Castopod após a instalação ou atualizações (para evitar qualquer
erro de permissão anterior):
- A pasta `writable/` deve ser **legível (readable)** e **gravável (writable)**.
- A pasta `public/media/` deve ser **legível (readable)** e **gravável
(writable)**.
- qualquer outro arquivo deve ser definido como **somente leitura (readonly)**.
Por exemplo, se você estiver usando Apache ou NGINX com Ubuntu, você pode fazer
o seguinte:
```bash
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
```

View File

@ -0,0 +1,95 @@
---
title: Atualização
sidebarDepth: 3
---
# Como atualizar o Castopod?
Depois de instalar o Castopod, você pode querer atualizar sua instância para a
última versão para desfrutar das últimas funcionalidades ✨, correção de bugs 🐛
e melhorias de desempenho ⚡.
## Instruções de atualização automática
> Em breve... 👀
## Instruções para atualização manual
1. Vá para a
[página de versões](https://code.castopod.org/adaures/castopod/-/releases) e
veja se sua instância está atualizada com a última versão do Castopod
- cf.
[Onde posso encontrar minha versão do Castopod?](#where-can-i-find-my-castopod-version)
2. Baixe o último pacote de versão chamado `Castopod Package`, você pode
escolher entre os arquivos `zip` ou `tar.gz`
- ⚠️ Certifique-se de baixar o pacote Castopod e **NÃO** o Código Fonte
3. No seu servidor:
- Remova todos os arquivos, exceto `.env` e `public/media`
- Copie os novos arquivos do pacote baixado para o seu servidor
::: info Nota
Talvez seja necessário redefinir as permissões de arquivos como durante o
processo de instalação. Verifique as
[Questões de segurança](./security.md).
:::
4. Versões podem vir com instruções de atualização adicionais (veja a
[página de versões](https://code.castopod.org/adaures/castopod/-/releases)).
Geralmente são scripts de migração de banco de dados no formato `.sql` para
atualizar seu esquema de banco de dados.
- 👉 Certifique-se de executar os scripts em seu painel phpmyadmin ou use a
linha de comando para atualizar o banco de dados junto com os arquivos do
pacote!
- cf.
[Faz muito tempo que não atualizo minha instância… O que devo fazer?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. Se você estiver usando redis, limpe seu cache.
6. ✨ Aproveite sua instância atualizada, está tudo pronto!
## Perguntas frequentes (FAQ)
### Onde posso encontrar minha versão do Castopod?
Vá para o painel de administração do Castopod, a versão é exibida no canto
inferior esquerdo.
Ou então, você pode encontrar a versão no arquivo
`app > Config > Constants.php`.
### Faz muito tempo que não atualizo minha instância… O que devo fazer?
Sem problemas! Basta obter a versão mais recente, conforme descrito acima. Só
que, ao passar pelas instruções da versão (4), execute-as sequencialmente, da
mais antiga para a mais recente.
> Você pode querer fazer backup de sua instância dependendo de quanto tempo você
> não atualizou o Castopod.
Por exemplo, se você estiver na `v1.0.0-alpha.42` e gostaria de atualizar para a
`v1.0.0-beta.1`:
0. (altamente recomendado) Faça um backup de seus arquivos e banco de dados.
1. Baixe a versão mais recente, substitua seus arquivos enquanto mantém o `.env`
e `public/media`.
2. Passe por cada instrução de atualização da versão sequencialmente (a partir
da mais antiga até a mais recente) começando com `v1.0.0-alpha.43`,
`v1.0.0-alpha.44`, `v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Aproveite sua instância atualizada, está tudo pronto!
### Devo fazer um backup antes de atualizar?
Aconselhamos você a fazer, assim você não perde tudo se algo der errado!
De forma mais geral, recomendamos que você faça backups regulares dos seus
arquivos de Castopod e banco de dados para evitar que você perca tudo…

219
docs/src/pt-BR/index.md Normal file
View File

@ -0,0 +1,219 @@
---
sidebarDepth: 2
---
# Bem-vindo 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod é uma plataforma de hospedagem de código livre & aberto feita para
podcasters que querem se envolver e interagir com seu público.
Castopod é fácil de instalar e foi construído em cima do
[CodeIgniter4](https://codeigniter.com/), um poderoso framework PHP com uma
pegada muito pequena.
::: info Status
O Castopod está atualmente em **beta**, mas já bastante estável e usado por
podcasters em todo o mundo!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Instalar<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Funcionalidades
- 🌱 &nbsp;Livre & de código aberto (Licença AGPL v3)
- 🔐 &nbsp;Focado na soberania de dados: seu conteúdo, público e análises
pertence a você, e somente você
- 🪄 &nbsp;Recursos de Podcasting 2.0: GUID, bloqueado, transcrições,
financiamento, capítulos, localização, pessoas, clipes de áudio, …
- 💬 &nbsp;Rede social integrada:
- 🚀 &nbsp;Castopod é parte do Fediverso, uma rede social descentralizada
- ❤️ &nbsp;Crie publicações, compartilhe, favorite e comente em episódios
- 📈 &nbsp;Estatísticas integradas:
- ⚖️ &nbsp;Compatível com GDPR / CCPA / LGPD
- 🪙 &nbsp;Medição de audiência no padrão do IABv2
- 🏡 &nbsp;Estatísticas feitas localmente, sem terceiros envolvidos
- 📢 &nbsp;Ferramentas de marketing integradas:
- ✅ &nbsp;Pronto para SEO (meta-tags de open-graph, JSON-LD, …)
- 📱 &nbsp;PWA: instalar como um aplicativo autônomo
- 🎨 &nbsp;Cores de tema personalizáveis
- 🎬 &nbsp;Gere clipes de vídeo prontos para compartilhar a partir dos
episódios
- 🔉 &nbsp;Gere clipes de áudio
- ▶️ &nbsp;Player incorporável, incorpore seus episódios em qualquer site
- 💸 &nbsp;Monetização:
- 🔗 &nbsp;Links de financiamento
- 📲 &nbsp;anúncios clique-para-ouvir
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publique seus episódios em qualquer lugar com RSS:
- 📱 &nbsp;Em todos os agregadores e aplicativos: Podcast Index, Apple
Podcasts, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Transmita seus episódios instantaneamente com WebSub
- 📥 &nbsp;Importação de Podcast: mova seu podcast existente para o Castopod
- 📤 &nbsp;Mova seu podcast para fora do Castopod
- 🔀 &nbsp;Multi-inquilino: hospede quantos podcasts você quiser
- 👥 &nbsp;Multi-usuário: adicione contribuidores e defina cargos
- 🌎 &nbsp;Suporte i18n: traduzido em inglês, francês, polonês, português
brasileiro, alemão e norueguês... e com mais a caminho!
## Motivação
O ecossistema de podcasting é descentralizado por natureza: você pode criar seu
podcast como um arquivo RSS, publicar na web e compartilhar em qualquer lugar
online.
Na verdade, é um dos únicos meios de comunicação que permaneceram assim por
muito tempo.
À medida que os usos estão evoluindo, mais e mais pessoas estão entrando em
podcasts: sejam criadores encontrando novas maneiras de compartilhar suas ideias
ou então ouvintes em busca de melhor conteúdo.
Com a mídia podcast se tornando mais amplamente utilizada, algumas empresas
estão tentando mudá-la para um meio mais controlado e centralizado.
O Castopod foi criado em um esforço para fornecer uma alternativa aberta e
sustentável para hospedar seus podcasts, promovendo a descentralização para
garantir que a criatividade dos podcasters possa se expressar.
Este projeto é impulsionado pela comunidade de código aberto e, especificamente,
pelo [Fediverso](https://fediverse.party/en/fediverse/) e movimentos
[Podcasting 2.0](https://podcastindex.org/).
## Comparação com outras soluções
Acreditamos que uma solução não é necessariamente certa para todos, depende
muito de suas necessidades. Então, aqui estão comparações com outras ferramentas
para ajudá-lo a avaliar se o Castopod é o ideal para você.
### Castopod vs Wordpress
Castopod é frequentemente referido como "o Wordpress para podcasts" por causa
das semelhanças entre os dois. De certa forma, isso é verdade. E, na verdade, o
Castopod foi muito inspirado no ecossistema do Wordpress, vendo a facilidade de
adoção da comunidade e o número de sites rodando ele.
Assim como o Wordpress, o Castopod é livre e de código aberto, compilado
utilizando PHP com um banco de dados MySQL e é empacotado de uma forma que você
pode facilmente instalar na maioria dos servidores.
Wordpress é uma ótima maneira de criar seu site e expandi-lo com plugins para
obter o que você quer. É um CMS completo que ajuda você a ter qualquer tipo de
site online.
Por outro lado, o Castopod destina-se a atender especificamente às necessidades
dos podcasters, concentrando-se em podcasting e nada mais. Você não precisa de
nenhum plug-in para começar sua jornada podcastal.
Isso permite otimizar os processos específicos do podcasting: desde a criação de
seus podcasts e a publicação de novos episódios até a transmissão, marketing e
estatísticas.
Finalmente, dependendo de suas necessidades, Wordpress e Castopod podem até
conviver lado a lado, pois compartilham os mesmos requisitos!
### Castopod vs Funkwhale
Funkwhale é um servidor de música auto-hospedado, moderno, livre e de código
aberto. Assim como o Castopod, o Funkwhale está no fediverso, uma rede social
descentralizada que permite a interoperabilidade entre os dois.
Funkwhale foi inicialmente construído em torno da música. E mais tarde, à medida
que o projeto evoluiu, a capacidade de hospedar podcasts foi introduzida.
Ao contrário do Funkwhale, o Castopod foi projetado e construído exclusivamente
para podcasting. Isso permite uma implementação mais fácil para recursos
relacionados ao ecossistema de podcasting, como os recursos de podcasting 2.0
(transcrições, capítulos, locais, pessoas, …).
Portanto, você provavelmente deve usar o Funkwhale se quiser hospedar sua música
e usar o Castopod se quiser hospedar seus podcasts.
### Castopod vs outras hospedagens de podcast
Existem muitas soluções para você hospedar seus podcasts, alguns dos quais são
realmente ótimas e [muitas delas](https://podcastindex.org/apps) estão entrando
na onda do Podcasting 2.0 assim como o Castopod!
Cada uma dessas soluções difere uma da outra, você pode comparar com a
[lista de recursos](#features).
Dito isto, existem duas diferenças principais com outras soluções de podcasting:
- Castopod pode ser auto-hospedado e é a única solução que permite manter o
controle total sobre o que você produz. Além disso, como é de código aberto,
você pode até personalizá-lo como desejar.
- O Castopod é a única solução que atualmente integra uma rede social
descentralizada com o ActivityPub, bem como muitos dos recursos de podcasting
2.0, na esperança de preencher a lacuna entre as duas.
## Contribuir
Gostou do Castopod e gostaria de ajudar? Dê uma olhada na seguinte documentação
para você começar.
### Código de conduta
Castopod adotou um Código de Conduta que esperamos que os participantes do
projeto sigam. Por favor, leia o
[manual CODE_OF_CONDUCT](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
para que você possa entender quais ações serão e não serão toleradas.
### Guia de contribuição
Leia nosso [guia de contribuição](./contributing/guidelines.md) para saber mais
sobre nosso processo de desenvolvimento, como propor correções de bugs e
melhorias e como compilar e testar suas alterações no Castopod.
## Contato
Você pode nos contatar para obter ajuda ou fazer qualquer pergunta que tenha em:
- [Discord](https://castopod.org/discord) (para interação direta com
desenvolvedores e a comunidade)
- [Rastreador de problemas](https://code.castopod.org/adaures/castopod/-/issues)
(para solicitações de recursos e relatos de bugs)
Como alternativa, você pode nos seguir nas redes sociais para obter notícias
sobre o Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (instância do Mastodon)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Patrocinadores
O desenvolvimento contínuo do Castopod é possível com o apoio de seus
patrocinadores. Se você quiser ajudar, por favor considere
[patrocinar o desenvolvimento do Castopod](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Logo de Ad Aures" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="Logo da NLnet" class="h-16" /></a>
</div>
## Licença
[Licença Pública Geral GNU Affero v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-presente, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

216
docs/src/pt/index.md Normal file
View File

@ -0,0 +1,216 @@
---
sidebarDepth: 2
---
# Welcome 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod is a free & open-source hosting platform made for podcasters who want
engage and interact with their audience.
Castopod is easy to install and was built on top of
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
small footprint.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Features
- 🌱 &nbsp;Free & open-source (AGPL v3 License)
- 🔐 &nbsp;Focused on data sovereignty: your content, audience, and analytics
belong to you, and&nbsp;you&nbsp;only
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

216
docs/src/ru/index.md Normal file
View File

@ -0,0 +1,216 @@
---
sidebarDepth: 2
---
# Welcome 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod is a free & open-source hosting platform made for podcasters who want
engage and interact with their audience.
Castopod is easy to install and was built on top of
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
small footprint.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Features
- 🌱 &nbsp;Free & open-source (AGPL v3 License)
- 🔐 &nbsp;Focused on data sovereignty: your content, audience, and analytics
belong to you, and&nbsp;you&nbsp;only
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -0,0 +1,162 @@
---
title: Installation
sidebarDepth: 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.
## Requirements
- PHP v8.0 or higher
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
- HTTPS support
### PHP v8.0 or higher
PHP version 8.0 or higher is required, with the following extensions installed:
- [intl](https://php.net/manual/en/intl.requirements.php)
- [libcurl](https://php.net/manual/en/curl.requirements.php)
- [mbstring](https://php.net/manual/en/mbstring.installation.php)
- [gd](https://www.php.net/manual/en/image.installation.php) with **JPEG**,
**PNG** and **WEBP** libraries.
- [exif](https://www.php.net/manual/en/exif.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](https://php.net/manual/en/mysqlnd.install.php)
### MySQL compatible database
> We recommend using [MariaDB](https://mariadb.org).
::: 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`.
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
[FFmpeg](https://www.ffmpeg.org/) 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](https://www.php.net/manual/en/image.installation.php).
### (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
0. Get a Web Server with [requirements](#requirements) installed
1. Create a MySQL database for Castopod with a user having access and
modification privileges (for more info, see
[MySQL compatible database](#mysql-compatible-database)).
2. Activate HTTPS on your domain with an _SSL certificate_.
3. Download and unzip the latest [Castopod Package](https://castopod.org/) onto
the web server if you havent already.
- ⚠️ Set the web server document root to the `public/` sub-folder within the
`castopod` folder.
4. 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:
```bash
* * * * * /path/to/php /path/to/castopod/public/index.php scheduled-activities
```
- For having your episodes be broadcasted on open hubs upon publication using
[WebSub](https://en.wikipedia.org/wiki/WebSub):
```bash
* * * * * /usr/local/bin/php /castopod/public/index.php scheduled-websub-publish
```
- For Video Clips to be created (see
[FFmpeg requirements](#ffmpeg-v418-or-higher-for-video-clips)):
```bash
* * * * * /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.
### (recommended) Install Wizard
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 update the `.env` file manually](#alternative-manual-configuration).
:::
## 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](https://yunohost.org/) 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.
<div class="flex flex-wrap items-center gap-4">
<a href="https://install-app.yunohost.org/?app=castopod" target="_blank" rel="noopener noreferrer">
<img src="https://install-app.yunohost.org/install-with-yunohost.svg" alt="Install Castopod with YunoHost" class="align-middle" />
</a>
<a href="https://github.com/YunoHost-Apps/castopod_ynh" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-[.3rem] mx-auto font-semibold text-center text-black rounded-md gap-x-1 border-2 border-solid border-[#333] hover:no-underline hover:bg-gray-100"><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em"
class="text-xl"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 2A10 10 0 0 0 2 12a10 10 0 0 0 6.84 9.49c.5.09.69-.21.69-.48l-.02-1.86c-2.51.46-3.16-.61-3.36-1.18-.11-.28-.6-1.17-1.02-1.4-.35-.2-.85-.66-.02-.67.79-.01 1.35.72 1.54 1.02.9 1.52 2.34 1.1 2.91.83a2.1 2.1 0 0 1 .64-1.34c-2.22-.25-4.55-1.11-4.55-4.94A3.9 3.9 0 0 1 6.68 8.8a3.6 3.6 0 0 1 .1-2.65s.83-.27 2.75 1.02a9.28 9.28 0 0 1 2.5-.34c.85 0 1.7.12 2.5.34 1.9-1.3 2.75-1.02 2.75-1.02.54 1.37.2 2.4.1 2.65.63.7 1.02 1.58 1.02 2.68 0 3.84-2.34 4.7-4.56 4.94.36.31.67.91.67 1.85l-.01 2.75c0 .26.19.58.69.48A10.02 10.02 0 0 0 22 12 10 10 0 0 0 12 2z"/></svg>Github
Repo</a>
</div>
### Install with Docker
If you wish to use Docker to install Castopod, it is possible thanks to
[Romain de Laage](https://mamot.fr/@rdelaage)!
<a href="https://gitlab.utc.fr/picasoft/projets/services/castopod" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-md shadow gap-x-1 bg-[#1282d7] hover:no-underline hover:bg-[#0f6eb5]">Install
with
Docker<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
::: info Note
Given high demand for docker, we plan on maintaining an official Castopod Docker
image directly into the Castopod repository.
:::

View File

@ -0,0 +1,26 @@
---
title: Security
---
# Security concerns
Castopod is built on top of [CodeIgniter4](https://codeigniter.com/), a PHP
framework that encourages
[good security practices](https://codeigniter.com/user_guide/concepts/security.html).
To maximize your instance's safety and prevent any malicious attack, we
recommend you update all your Castopod files permissions after installation or
updates (to avoid any prior 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:
```bash
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
```

View File

@ -0,0 +1,93 @@
---
title: Update
sidebarDepth: 3
---
# How to update Castopod?
After installing Castopod, you may want to update your instance to the latest
version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
improvements ⚡.
## Automatic update instructions
> Coming soon... 👀
## Manual update instructions
1. Go to the
[releases page](https://code.castopod.org/adaures/castopod/-/releases) and
see if your instance is up to date with the latest Castopod version
- cf.
[Where can I find my Castopod version?](#where-can-i-find-my-castopod-version)
2. Download the latest release package named `Castopod Package`, you may choose
between the `zip` or `tar.gz` archives
- ⚠️ Make sure you download the Castopod Package and **NOT** the Source Code
3. On your server:
- Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server
::: info Note
You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md).
:::
4. Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). They
are usually database migration scripts in `.sql` format to update your
database schema.
- 👉 Make sure you run the scripts on your phpmyadmin panel or using command
line to update the database along with the package files!
- cf.
[I haven't updated my instance in a long time… What should I do?](#i-havent-updated-my-instance-in-a-long-time-what-should-i-do)
5. If you are using redis, clear your cache.
6. ✨ Enjoy your fresh instance, you're all done!
## Frequently asked questions (FAQ)
### Where can I find my Castopod version?
Go to your Castopod admin panel, the version is displayed on the bottom left
corner.
Alternatively, you can find the version in the `app > Config > Constants.php`
file.
### I haven't updated my instance in a long time… What should I do?
No problem! Just get the latest release as described above. Only, when going
through the release instructions (4), perform them sequentially, from the oldest
to the newest.
> You may want to backup your instance depending on how long you haven't updated
> Castopod.
For example, if you're on `v1.0.0-alpha.42` and would like to upgrade to
`v1.0.0-beta.1`:
0. (highly recommended) Make a backup of your files and database.
1. Download the latest release, overwrite your files whilst keeping `.env` and
`public/media`.
2. Go through each release update instructions sequentially (from oldest to
newest) starting with `v1.0.0-alpha.43`, `v1.0.0-alpha.44`,
`v1.0.0-alpha.45`, …, `v1.0.0-beta.1`.
3. ✨ Enjoy your fresh instance, you're all done!
### Should I make a backup before updating?
We advise you do, so you don't lose everything if anything goes wrong!
More generally, we advise you make regular backups of your Castopod files and
database to prevent you from losing it all…

216
docs/src/sv/index.md Normal file
View File

@ -0,0 +1,216 @@
---
sidebarDepth: 2
---
# Welcome 👋
[![release-badge]][release]&nbsp;[![license-badge]][license]&nbsp;[![contributions-badge]][contributions]&nbsp;[![semantic-release-badge]][semantic-release]&nbsp;[![crowdin-badge]][crowdin]&nbsp;[![discord-badge]][discord]&nbsp;[![stars-badge]][stars]
Castopod is a free & open-source hosting platform made for podcasters who want
engage and interact with their audience.
Castopod is easy to install and was built on top of
[CodeIgniter4](https://codeigniter.com/), a powerful PHP framework with a very
small footprint.
::: info Status
Castopod is currently in **beta** but already quite stable and used by
podcasters around&nbsp;the&nbsp;world!
:::
<div class="flex items-center">
<a href="/getting-started/install" class="inline-flex items-center px-4 py-2 mx-auto font-semibold text-center text-white rounded-full shadow gap-x-1 bg-pine-500 hover:no-underline hover:bg-pine-600">Install<svg viewBox="0 0 24 24" width="1em" height="1em" class="text-xl text-pine-200"><path fill="currentColor" d="m16.172 11-5.364-5.364 1.414-1.414L20 12l-7.778 7.778-1.414-1.414L16.172 13H4v-2z"></path></svg></a>
</div>
## Features
- 🌱 &nbsp;Free & open-source (AGPL v3 License)
- 🔐 &nbsp;Focused on data sovereignty: your content, audience, and analytics
belong to you, and&nbsp;you&nbsp;only
- 🪄 &nbsp;Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
location, persons, soundbites, …
- 💬 &nbsp;Built-in social network:
- 🚀 &nbsp;Castopod is part of the Fediverse, a decentralized social network
- ❤️ &nbsp;Create posts, share, favourite, and comment on episodes
- 📈 &nbsp;Built-in analytics:
- ⚖️ &nbsp;GDPR / CCPA / LGPD compliant
- 🪙 &nbsp;Standard IABv2 audience measurement
- 🏡 &nbsp;On-premises analytics, no third party involved
- 📢 &nbsp;Built-in marketing tools:
- ✅ &nbsp;SEO ready (open-graph meta-tags, JSON-LD, …)
- 📱 &nbsp;PWA: install as a standalone app
- 🎨 &nbsp;Customizable theme colors
- 🎬 &nbsp;Generate ready-to-share Video clips from episodes
- 🔉 &nbsp;Generate soundbites
- ▶️ &nbsp;Embeddable player, embed your episodes on any website
- 💸 &nbsp;Monetization:
- 🔗 &nbsp;Funding links
- 📲 &nbsp;listen-to-click ads
- 🤝 &nbsp;value4value / WebMonetization
- 📡 &nbsp;Publish your episodes everywhere with RSS:
- 📱 &nbsp;On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
- ⚡ &nbsp;Broadcast your episodes instantly with WebSub
- 📥 &nbsp;Podcast import: move your existing podcast into Castopod
- 📤 &nbsp;Move your podcast out of Castopod
- 🔀 &nbsp;Multi-tenant: host as many podcasts as you want
- 👥 &nbsp;Multi-user: add contributors and set roles
- 🌎 &nbsp;i18n support: translated in English, French & Polish with more to
come!
## Motivation
The podcasting ecosystem is decentralized by nature: you can create your podcast
as an RSS file, publish it on the web and have it shared everywhere online.
It is in fact one of the only media to have stayed this way for a long time.
As usages are evolving, more and more people are getting into podcasts: whether
it is creators finding new ways to share their ideas, or listeners in the search
for better content.
With podcasting becoming more widely used, some companies are trying to shift it
towards a more controlled and centralized medium.
Castopod was created in an effort to provide an open and sustainable alternative
to hosting your podcasts, promoting decentralization to ensure that podcasters
creativity can express itself.
This project is pushed by the open-source community, and specifically by the
[Fediverse](https://fediverse.party/en/fediverse/) and
[Podcasting 2.0](https://podcastindex.org/) movements.
## Comparison with other solutions
We believe that a solution is not necessarily right for everyone, it highly
depends on your needs. So, here are comparisons with other tools to help you to
gauge whether Castopod is the right fit for&nbsp;you.
### Castopod vs Wordpress
Castopod is often referred to as "the Wordpress for podcasts" because of the
similarities between the two. In some ways this is true. And actually, Castopod
was greatly inspired by the Wordpress ecosystem, seeing the ease of adoption
from the community and the number of websites running&nbsp;it.
Just like Wordpress, Castopod is free & open source, built using PHP with a
MySQL database and is packaged in a way that you can easily install on most web
servers.
Wordpress is a great way to create your website and extend it with plugins to
get what you want. It is a full fledged CMS that helps you get any type of
website online.
On the other hand, Castopod is meant to address the podcasters needs
specifically, focusing on podcasting, and nothing else. You don't need any
plugin to get you started on your podcasting&nbsp;journey.
This allows optimizing the processes specific to podcasting: ranging from the
creation of your podcasts and the publication of new episodes all the way to
broadcasting, marketing and analytics.
Finally, depending on your needs, Wordpress and Castopod can even live side by
side as they share the same requirements!
### Castopod vs Funkwhale
Funkwhale is a self-hosted, modern free and open-source music server. Just as
Castopod, Funkwhale is on the fediverse, a decentralized social network allowing
interoperability between the two.
Funkwhale was initially built around music. And later on, as the project
evolved, the ability to host podcasts was introduced.
Unlike Funkwhale, Castopod has been designed and built around podcasting
exclusively. This allows easier implementation for features related to the
podcasting ecosystem, such as the podcasting 2.0 features (transcripts,
chapters, locations, persons, …).
So, you should probably use Funkwhale if you want to host your music, and use
Castopod if you want to host your podcasts.
### Castopod vs other podcast hosts
There are many solutions for you to host your podcasts, some of which are really
great and [a lot of them](https://podcastindex.org/apps) are jumping into the
Podcasting 2.0 wagon just like Castopod!
Each of these solutions differ from one another, you may compare with the
[list of features](#features).
That being said, there are two main differences with other podcasting solutions:
- Castopod can be self-hosted and is the only solution that allows you to keep
full control over what you produce. Also, as it is open-source, you can even
customize it as you wish.
- Castopod is the only solution that currently integrates both a decentralized
social network with ActivityPub as well as many of the podcasting 2.0
features, hoping to bridge the gap between the two.
## Contributing
Love Castopod and would like to help? Take a look at the following documentation
to get you&nbsp;started.
### Code of conduct
Castopod has adopted a Code of Conduct that we expect project participants to
adhere to. Please read the
[CODE_OF_CONDUCT manual](https://code.castopod.org/adaures/castopod/-/blob/beta/CODE_OF_CONDUCT.md)
so that you can understand what actions will and will not be&nbsp;tolerated.
### Contributing guide
Read our [contributing guide](./contributing/guidelines.md) to learn about our
development process, how to propose bugfixes and improvements, and how to build
and test your changes to Castopod.
## Contact
You may reach us for help or ask any question you have on:
- [Discord](https://castopod.org/discord) (for direct interaction with
developers and the community)
- [Issue tracker](https://code.castopod.org/adaures/castopod/-/issues) (for
feature requests & bug reports)
Alternatively, you can follow us on social media platforms to get news about
Castopod:
- [podlibre.social](https://podlibre.social/@Castopod) (Mastodon instance)
- [Twitter](https://twitter.com/castopod)
- [LinkedIn](https://linkedin.com/company/castopod)
- [Facebook](https://www.facebook.com/castopod)
## Sponsors
The ongoing development of Castopod is made possible with the support of its
backers. If you'd like to help, please consider
[sponsoring Castopod's development](https://opencollective.com/castopod/contribute).
<div class="flex flex-wrap gap-x-16 gap-y-8">
<a href="https://adaures.com/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/adaures.svg" alt="Ad Aures Logo" class="h-16" /></a>
<a href="https://nlnet.nl/project/Castopod/" target="_blank" rel="noopener noreferrer"><img src="/images/sponsors/nlnet.svg" alt="NLnet Logo" class="h-16" /></a>
</div>
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
https://img.shields.io/gitlab/v/release/2?color=brightgreen&gitlab_url=https%3A%2F%2Fcode.castopod.org%2F&include_prereleases&label=release
https://img.shields.io/github/license/ad-aures/castopod?color=blue
https://img.shields.io/badge/contributions-welcome-brightgreen.svg
https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
https://img.shields.io/github/stars/ad-aures/castopod?style=social
[release]: https://code.castopod.org/adaures/castopod/-/releases
[license]: https://code.castopod.org/adaures/castopod/-/blob/beta/LICENSE.md
[contributions]: https://code.castopod.org/adaures/castopod/-/issues
[semantic-release]: https://github.com/semantic-release/semantic-release
[discord]: https://castopod.org/discord
[stars]: https://github.com/ad-aures/castopod/stargazers
[crowdin]: https://translate.castopod.org/project/castopod

View File

@ -33,12 +33,12 @@ return [
'change-password' => 'تغيير الكلمة السرية',
'import' => 'feed import',
'platforms' => 'منصات',
'social' => 'social networks',
'social' => 'شبكات التواصل الاجتماعي',
'funding' => 'funding',
'analytics' => 'analytics',
'locations' => 'locations',
'webpages' => 'web pages',
'unique-listeners' => 'unique listeners',
'webpages' => 'صفحات ويب',
'unique-listeners' => 'مستمعون فريدون',
'players' => 'players',
'listening-time' => 'listening time',
'time-periods' => 'time periods',

View File

@ -32,13 +32,13 @@ return [
'help' => 'Powered by markdown',
],
'multiSelect' => [
'selectText' => 'Press to select',
'loadingText' => 'Loading…',
'noResultsText' => 'No results found',
'selectText' => 'اضغط للاختيار',
'loadingText' => 'جارٍ التحميل…',
'noResultsText' => 'لم يتم العثور على نتائج',
'noChoicesText' => 'No choices to choose from',
'maxItemText' => 'Cannot add more items',
],
'upload_file' => 'Upload a file',
'upload_file' => 'إرسال ملف',
'remote_url' => 'Remote URL',
],
'play_episode_button' => [

Some files were not shown because too many files have changed in this diff Show More