mirror of
https://code.castopod.org/adaures/castopod.git
synced 2024-10-04 07:26:51 +02:00
chore: new Crowdin updates
This commit is contained in:
parent
c073bdb990
commit
c041b628b6
@ -9,11 +9,11 @@ declare(strict_types=1);
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'title' => "{actorDisplayName}'s comment for {episodeTitle}",
|
'title' => "تعليق {actorDisplayName} على {episodeTitle}",
|
||||||
'back_to_comments' => 'العودة إلى التعليقات',
|
'back_to_comments' => 'العودة إلى التعليقات',
|
||||||
'form' => [
|
'form' => [
|
||||||
'episode_message_placeholder' => 'أكتب تعليقاً…',
|
'episode_message_placeholder' => 'أكتب تعليقاً…',
|
||||||
'reply_to_placeholder' => 'Reply to @{actorUsername}',
|
'reply_to_placeholder' => 'رد على @{actorUsername}',
|
||||||
'submit' => 'ارسل',
|
'submit' => 'ارسل',
|
||||||
'submit_reply' => 'رد',
|
'submit_reply' => 'رد',
|
||||||
],
|
],
|
||||||
|
@ -13,7 +13,7 @@ return [
|
|||||||
'your_handle_hint' => 'Enter the @username@domain you want to act from.',
|
'your_handle_hint' => 'Enter the @username@domain you want to act from.',
|
||||||
'follow' => [
|
'follow' => [
|
||||||
'label' => 'تابِع',
|
'label' => 'تابِع',
|
||||||
'title' => 'Follow {actorDisplayName}',
|
'title' => 'تابع {actorDisplayName}',
|
||||||
'subtitle' => 'إنك بصدد متابعة:',
|
'subtitle' => 'إنك بصدد متابعة:',
|
||||||
'accountNotFound' => 'لا يمكن العثور على الحساب.',
|
'accountNotFound' => 'لا يمكن العثور على الحساب.',
|
||||||
'remoteFollowNotAllowed' => 'Seems like the account server does not allow remote follows…',
|
'remoteFollowNotAllowed' => 'Seems like the account server does not allow remote follows…',
|
||||||
|
@ -13,8 +13,8 @@ return [
|
|||||||
'sort_by' => 'ترتيب حسب',
|
'sort_by' => 'ترتيب حسب',
|
||||||
'sort_options' => [
|
'sort_options' => [
|
||||||
'activity' => 'آخر نشاط',
|
'activity' => 'آخر نشاط',
|
||||||
'created_desc' => 'Newest first',
|
'created_desc' => 'الأحدث أولًا',
|
||||||
'created_asc' => 'Oldest first',
|
'created_asc' => 'الأقدم أولاً',
|
||||||
],
|
],
|
||||||
'no_podcast' => 'No podcast found',
|
'no_podcast' => 'لا يوجد أي بودكاست',
|
||||||
];
|
];
|
||||||
|
@ -10,13 +10,13 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
'feed' => 'RSS Podcast feed',
|
'feed' => 'RSS Podcast feed',
|
||||||
'season' => 'Season {seasonNumber}',
|
'season' => 'الموسم {seasonNumber}',
|
||||||
'list_of_episodes_year' => 'حلَقات {year} ({episodeCount})',
|
'list_of_episodes_year' => 'حلَقات {year} ({episodeCount})',
|
||||||
'list_of_episodes_season' =>
|
'list_of_episodes_season' =>
|
||||||
'Season {seasonNumber} episodes ({episodeCount})',
|
'الموسم {seasonNumber} الحلقات ({episodeCount})',
|
||||||
'no_episode' => 'No episode found!',
|
'no_episode' => 'لم يتم العثور على أية حلقة!',
|
||||||
'follow' => 'متابعة',
|
'follow' => 'متابعة',
|
||||||
'followTitle' => 'Follow {actorDisplayName} on the fediverse!',
|
'followTitle' => 'تابع {actorDisplayName} على الفديفرس!',
|
||||||
'followers' => '{numberOfFollowers, plural,
|
'followers' => '{numberOfFollowers, plural,
|
||||||
one {<span class="font-semibold">#</span> follower}
|
one {<span class="font-semibold">#</span> follower}
|
||||||
other {<span class="font-semibold">#</span> followers}
|
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>',
|
'first_published_at' => 'First episode published on <span class="font-semibold">{0, date, medium}</span>',
|
||||||
],
|
],
|
||||||
'sponsor' => 'Sponsor',
|
'sponsor' => 'الراعي',
|
||||||
'funding_links' => 'Funding links for {podcastTitle}',
|
'funding_links' => 'Funding links for {podcastTitle}',
|
||||||
'find_on' => 'Find {podcastTitle} on',
|
'find_on' => 'Find {podcastTitle} on',
|
||||||
'listen_on' => 'Listen on',
|
'listen_on' => 'Listen on',
|
||||||
|
@ -34,7 +34,7 @@ return [
|
|||||||
other {# replies}
|
other {# replies}
|
||||||
}',
|
}',
|
||||||
'expand' => 'Expand post',
|
'expand' => 'Expand post',
|
||||||
'block_actor' => 'Block user @{actorUsername}',
|
'block_actor' => 'احجب المستخدم @{actorUsername}',
|
||||||
'block_domain' => 'Block domain @{actorDomain}',
|
'block_domain' => 'احجب النطاق @{actorDomain}',
|
||||||
'delete' => 'احذف المنشور',
|
'delete' => 'احذف المنشور',
|
||||||
];
|
];
|
||||||
|
@ -18,18 +18,25 @@ return [
|
|||||||
'submit_reply' => 'Respont',
|
'submit_reply' => 'Respont',
|
||||||
],
|
],
|
||||||
'likes' => '{numberOfLikes, plural,
|
'likes' => '{numberOfLikes, plural,
|
||||||
one {# like}
|
one {# muiañ-karet}
|
||||||
other {# likes}
|
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,
|
'replies' => '{numberOfReplies, plural,
|
||||||
0 {respont ebet}
|
0 {respont ebet}
|
||||||
one {# respont}
|
one {# respont}
|
||||||
other {# respont}
|
other {# respont}
|
||||||
}',
|
}',
|
||||||
'like' => 'Like',
|
'like' => 'Muiañ-karet',
|
||||||
'reply' => 'Respont',
|
'reply' => 'Respont',
|
||||||
'view_replies' => 'Gwelout an evezhiadennoù ({numberOfReplies})',
|
'view_replies' => 'Gwelout an evezhiadennoù ({numberOfReplies})',
|
||||||
'block_actor' => 'Berzañ pep tra eus an implijer·ez @{actorUsername}',
|
'block_actor' => 'Stankañ an implijer·ez @{actorUsername}',
|
||||||
'block_domain' => 'Berzañ pep tra eus @{actorDomain}',
|
'block_domain' => 'Stankañ @{actorDomain}',
|
||||||
'delete' => 'Dilemel an evezhiadenn',
|
'delete' => 'Dilemel an evezhiadenn',
|
||||||
];
|
];
|
||||||
|
@ -15,7 +15,7 @@ return [
|
|||||||
'optional' => 'Diret',
|
'optional' => 'Diret',
|
||||||
'close' => 'Serriñ',
|
'close' => 'Serriñ',
|
||||||
'home' => 'Degemer',
|
'home' => 'Degemer',
|
||||||
'explicit' => 'Explicit',
|
'explicit' => "Endalc'had evit an oadourien",
|
||||||
'powered_by' => 'Lusket gant {castopod}',
|
'powered_by' => 'Lusket gant {castopod}',
|
||||||
'go_back' => 'Mont war-gil',
|
'go_back' => 'Mont war-gil',
|
||||||
'play_episode_button' => [
|
'play_episode_button' => [
|
||||||
|
@ -22,8 +22,15 @@ return [
|
|||||||
'submit_reply' => 'Respont',
|
'submit_reply' => 'Respont',
|
||||||
],
|
],
|
||||||
'favourites' => '{numberOfFavourites, plural,
|
'favourites' => '{numberOfFavourites, plural,
|
||||||
one {# favourite}
|
one {# muiañ-karet}
|
||||||
other {# favourites}
|
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,
|
'reblogs' => '{numberOfReblogs, plural,
|
||||||
0 {rannadur ebet}
|
0 {rannadur ebet}
|
||||||
@ -36,7 +43,7 @@ return [
|
|||||||
other {# respont}
|
other {# respont}
|
||||||
}',
|
}',
|
||||||
'expand' => 'Astenn ar gemennadenn',
|
'expand' => 'Astenn ar gemennadenn',
|
||||||
'block_actor' => 'Berzañ pep tra eus an implijer·ez @{actorUsername}',
|
'block_actor' => 'Stankañ an implijer·ez @{actorUsername}',
|
||||||
'block_domain' => 'Berzañ pep tra eus @{actorDomain}',
|
'block_domain' => 'Stankañ @{actorDomain}',
|
||||||
'delete' => 'Dilemel ar gemennadenn',
|
'delete' => 'Dilemel ar gemennadenn',
|
||||||
];
|
];
|
||||||
|
34
app/Language/nn-NO/Comment.php
Normal file
34
app/Language/nn-NO/Comment.php
Normal 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',
|
||||||
|
];
|
29
app/Language/nn-NO/Common.php
Normal file
29
app/Language/nn-NO/Common.php
Normal 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',
|
||||||
|
];
|
33
app/Language/nn-NO/Episode.php
Normal file
33
app/Language/nn-NO/Episode.php
Normal 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',
|
||||||
|
];
|
37
app/Language/nn-NO/Fediverse.php
Normal file
37
app/Language/nn-NO/Fediverse.php
Normal 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',
|
||||||
|
],
|
||||||
|
];
|
20
app/Language/nn-NO/Home.php
Normal file
20
app/Language/nn-NO/Home.php
Normal 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',
|
||||||
|
];
|
17
app/Language/nn-NO/Page.php
Normal file
17
app/Language/nn-NO/Page.php
Normal 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.',
|
||||||
|
],
|
||||||
|
];
|
53
app/Language/nn-NO/Podcast.php
Normal file
53
app/Language/nn-NO/Podcast.php
Normal 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',
|
||||||
|
];
|
40
app/Language/nn-NO/Post.php
Normal file
40
app/Language/nn-NO/Post.php
Normal 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',
|
||||||
|
];
|
34
app/Language/oc/Comment.php
Normal file
34
app/Language/oc/Comment.php
Normal 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',
|
||||||
|
];
|
29
app/Language/oc/Common.php
Normal file
29
app/Language/oc/Common.php
Normal 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',
|
||||||
|
];
|
33
app/Language/oc/Episode.php
Normal file
33
app/Language/oc/Episode.php
Normal 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',
|
||||||
|
];
|
37
app/Language/oc/Fediverse.php
Normal file
37
app/Language/oc/Fediverse.php
Normal 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
20
app/Language/oc/Home.php
Normal 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
17
app/Language/oc/Page.php
Normal 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.',
|
||||||
|
],
|
||||||
|
];
|
53
app/Language/oc/Podcast.php
Normal file
53
app/Language/oc/Podcast.php
Normal 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
40
app/Language/oc/Post.php
Normal 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',
|
||||||
|
];
|
@ -9,26 +9,26 @@ declare(strict_types=1);
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'title' => "{actorDisplayName}'s comment for {episodeTitle}",
|
'title' => "Comentário de {actorDisplayName} para {episodeTitle}",
|
||||||
'back_to_comments' => 'Back to comments',
|
'back_to_comments' => 'Voltar aos comentários',
|
||||||
'form' => [
|
'form' => [
|
||||||
'episode_message_placeholder' => 'Write a comment…',
|
'episode_message_placeholder' => 'Escreva um comentário…',
|
||||||
'reply_to_placeholder' => 'Reply to @{actorUsername}',
|
'reply_to_placeholder' => 'Responder a @{actorUsername}',
|
||||||
'submit' => 'Send',
|
'submit' => 'Enviar',
|
||||||
'submit_reply' => 'Reply',
|
'submit_reply' => 'Responder',
|
||||||
],
|
],
|
||||||
'likes' => '{numberOfLikes, plural,
|
'likes' => '{numberOfLikes, plural,
|
||||||
one {# like}
|
one {# curtida}
|
||||||
other {# likes}
|
other {# curtidas}
|
||||||
}',
|
}',
|
||||||
'replies' => '{numberOfReplies, plural,
|
'replies' => '{numberOfReplies, plural,
|
||||||
one {# reply}
|
one {# resposta}
|
||||||
other {# replies}
|
other {# respostas}
|
||||||
}',
|
}',
|
||||||
'like' => 'Like',
|
'like' => 'Curtir',
|
||||||
'reply' => 'Reply',
|
'reply' => 'Responder',
|
||||||
'view_replies' => 'View replies ({numberOfReplies})',
|
'view_replies' => 'Ver respostas ({numberOfReplies})',
|
||||||
'block_actor' => 'Block user @{actorUsername}',
|
'block_actor' => 'Bloquear usuário @{actorUsername}',
|
||||||
'block_domain' => 'Block domain @{actorDomain}',
|
'block_domain' => 'Bloquear domínio @{actorDomain}',
|
||||||
'delete' => 'Delete comment',
|
'delete' => 'Excluir comentário',
|
||||||
];
|
];
|
||||||
|
@ -9,25 +9,25 @@ declare(strict_types=1);
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'season' => 'Season {seasonNumber}',
|
'season' => 'Temporada {seasonNumber}',
|
||||||
'season_abbr' => 'S{seasonNumber}',
|
'season_abbr' => 'T{seasonNumber}',
|
||||||
'number' => 'Episode {episodeNumber}',
|
'number' => 'Episódio {episodeNumber}',
|
||||||
'number_abbr' => 'Ep. {episodeNumber}',
|
'number_abbr' => 'Ep. {episodeNumber}',
|
||||||
'season_episode' => 'Season {seasonNumber} episode {episodeNumber}',
|
'season_episode' => 'Temporada {seasonNumber} episódio {episodeNumber}',
|
||||||
'season_episode_abbr' => 'S{seasonNumber}:E{episodeNumber}',
|
'season_episode_abbr' => 'T{seasonNumber}:E{episodeNumber}',
|
||||||
'persons' => '{personsCount, plural,
|
'persons' => '{personsCount, plural,
|
||||||
one {# person}
|
one {# pessoa}
|
||||||
other {# persons}
|
other {# pessoas}
|
||||||
}',
|
}',
|
||||||
'persons_list' => 'Persons',
|
'persons_list' => 'Pessoas',
|
||||||
'back_to_episodes' => 'Back to episodes of {podcast}',
|
'back_to_episodes' => 'Voltar para episódios de {podcast}',
|
||||||
'comments' => 'Comments',
|
'comments' => 'Comentários',
|
||||||
'activity' => 'Activity',
|
'activity' => 'Atividade',
|
||||||
'description' => 'Episode description',
|
'description' => 'Descrição do episódio',
|
||||||
'number_of_comments' => '{numberOfComments, plural,
|
'number_of_comments' => '{numberOfComments, plural,
|
||||||
one {# comment}
|
one {# comentário}
|
||||||
other {# comments}
|
other {# comentários}
|
||||||
}',
|
}',
|
||||||
'all_podcast_episodes' => 'All podcast episodes',
|
'all_podcast_episodes' => 'Todos os episódios de podcast',
|
||||||
'back_to_podcast' => 'Go back to podcast',
|
'back_to_podcast' => 'Voltar para o podcast',
|
||||||
];
|
];
|
||||||
|
34
app/Language/pt/Comment.php
Normal file
34
app/Language/pt/Comment.php
Normal 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',
|
||||||
|
];
|
29
app/Language/pt/Common.php
Normal file
29
app/Language/pt/Common.php
Normal 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',
|
||||||
|
];
|
33
app/Language/pt/Episode.php
Normal file
33
app/Language/pt/Episode.php
Normal 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',
|
||||||
|
];
|
37
app/Language/pt/Fediverse.php
Normal file
37
app/Language/pt/Fediverse.php
Normal 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
20
app/Language/pt/Home.php
Normal 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
17
app/Language/pt/Page.php
Normal 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.',
|
||||||
|
],
|
||||||
|
];
|
53
app/Language/pt/Podcast.php
Normal file
53
app/Language/pt/Podcast.php
Normal 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
40
app/Language/pt/Post.php
Normal 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',
|
||||||
|
];
|
162
docs/src/ar/getting-started/install.md
Normal file
162
docs/src/ar/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/ar/getting-started/security.md
Normal file
26
docs/src/ar/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/ar/getting-started/update.md
Normal file
93
docs/src/ar/getting-started/update.md
Normal 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
216
docs/src/ar/index.md
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 the 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
|
||||||
|
|
||||||
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
|
belong to you, and you only
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
162
docs/src/br/getting-started/install.md
Normal file
162
docs/src/br/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/br/getting-started/security.md
Normal file
26
docs/src/br/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/br/getting-started/update.md
Normal file
93
docs/src/br/getting-started/update.md
Normal 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
216
docs/src/br/index.md
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 the 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
|
||||||
|
|
||||||
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
|
belong to you, and you only
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
162
docs/src/de/getting-started/install.md
Normal file
162
docs/src/de/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/de/getting-started/security.md
Normal file
26
docs/src/de/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/de/getting-started/update.md
Normal file
93
docs/src/de/getting-started/update.md
Normal 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
219
docs/src/de/index.md
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Willkommen 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 der 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)
|
||||||
|
- 🔐 Fokussiert auf die Datensouveränität: Ihre Inhalte, Ihr Publikum und
|
||||||
|
Analysen gehören zu Ihnen, und nur Ihnen
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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
|
162
docs/src/el/getting-started/install.md
Normal file
162
docs/src/el/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/el/getting-started/security.md
Normal file
26
docs/src/el/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/el/getting-started/update.md
Normal file
93
docs/src/el/getting-started/update.md
Normal 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
216
docs/src/el/index.md
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 the 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
|
||||||
|
|
||||||
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
|
belong to you, and you only
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
162
docs/src/es/getting-started/install.md
Normal file
162
docs/src/es/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/es/getting-started/security.md
Normal file
26
docs/src/es/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/es/getting-started/update.md
Normal file
93
docs/src/es/getting-started/update.md
Normal 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
216
docs/src/es/index.md
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 the 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
|
||||||
|
|
||||||
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
|
belong to you, and you only
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
169
docs/src/fr/getting-started/install.md
Normal file
169
docs/src/fr/getting-started/install.md
Normal 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/fr/getting-started/security.md
Normal file
26
docs/src/fr/getting-started/security.md
Normal 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
|
||||||
|
```
|
96
docs/src/fr/getting-started/update.md
Normal file
96
docs/src/fr/getting-started/update.md
Normal 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
219
docs/src/fr/index.md
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Bienvenue 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars]
|
||||||
|
|
||||||
|
Castopod est une plateforme d’hé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 the 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
|
||||||
|
|
||||||
|
- 🌱 Libre, gratuit & open-source (Licence AGPL v3)
|
||||||
|
- 🔐 focalisé sur la souveraineté des données : votre contenu, votre
|
||||||
|
audience et vos statiistiques vous appartiennent, et à vous seulement
|
||||||
|
- 🪄 Fonctionnalités de Podcasting 2.0 : GUID, verrouillage, transcriptions,
|
||||||
|
financement, chapitres, géo-localisation, intervenants, extraits sonores, …
|
||||||
|
- 💬 Réseau social intégré :
|
||||||
|
- 🚀 Castopod fait partie du Fédivers, un réseau social décentralisé
|
||||||
|
- ❤️ Créer des publications, partager, mettre en favori et commenter des
|
||||||
|
épisodes
|
||||||
|
- 📈 Statistiques intégrées :
|
||||||
|
- ⚖️ Conforme GDPR / CCPA / LGPD
|
||||||
|
- 🪙 Mesure d'audience IABv2
|
||||||
|
- 🏡 Statistiques intégrées, aucune tierce partie intermédiaire
|
||||||
|
- 📢 Outils de marketing intégrés :
|
||||||
|
- ✅ Prêt pour le SEO (méta-tags open-graph, JSON-LD…)
|
||||||
|
- 📱 PWA: installez comme application autonome
|
||||||
|
- 🎨 Couleurs de thèmes personnalisables
|
||||||
|
- 🎬 Générez des clips vidéo prêts à partager à partir d'épisodes
|
||||||
|
- 🔉 Générez des extraits sonores
|
||||||
|
- ▶️ Intégrer vos épisodes dans n'importe quel site web
|
||||||
|
- 💸 Monétisation:
|
||||||
|
- 🔗 Liens de financement
|
||||||
|
- 📲 publicité “listen-to-click”
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publiez vos épisodes partout avec RSS :
|
||||||
|
- 📱 Sur tous les index et toutes les applications : Podcast Index,
|
||||||
|
Podcasts Apple, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend…
|
||||||
|
- ⚡ Diffusez instantanément vos épisodes avec WebSub
|
||||||
|
- 📥 Importation de Podcast : déménagez votre podcast existant vers
|
||||||
|
Castopod
|
||||||
|
- 📤 Déplacez votre podcast chez un autre hébergeur
|
||||||
|
- 🔀 Multi-locataire : hébergez autant de podcasts que vous le souhaitez
|
||||||
|
- 👥 Multi-utilisateur : ajoutez des contributeurs et définissez leurs
|
||||||
|
rôles
|
||||||
|
- 🌎 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 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 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 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 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
|
162
docs/src/id/getting-started/install.md
Normal file
162
docs/src/id/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/id/getting-started/security.md
Normal file
26
docs/src/id/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/id/getting-started/update.md
Normal file
93
docs/src/id/getting-started/update.md
Normal 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
216
docs/src/id/index.md
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 the 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
|
||||||
|
|
||||||
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
|
belong to you, and you only
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
162
docs/src/it/getting-started/install.md
Normal file
162
docs/src/it/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/it/getting-started/security.md
Normal file
26
docs/src/it/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/it/getting-started/update.md
Normal file
93
docs/src/it/getting-started/update.md
Normal 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
216
docs/src/it/index.md
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 the 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
|
||||||
|
|
||||||
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
|
belong to you, and you only
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
162
docs/src/nl/getting-started/install.md
Normal file
162
docs/src/nl/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/nl/getting-started/security.md
Normal file
26
docs/src/nl/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/nl/getting-started/update.md
Normal file
93
docs/src/nl/getting-started/update.md
Normal 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
216
docs/src/nl/index.md
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 the 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
|
||||||
|
|
||||||
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
|
belong to you, and you only
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
164
docs/src/nn-NO/getting-started/install.md
Normal file
164
docs/src/nn-NO/getting-started/install.md
Normal 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.
|
||||||
|
|
||||||
|
:::
|
25
docs/src/nn-NO/getting-started/security.md
Normal file
25
docs/src/nn-NO/getting-started/security.md
Normal 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
|
||||||
|
```
|
89
docs/src/nn-NO/getting-started/update.md
Normal file
89
docs/src/nn-NO/getting-started/update.md
Normal 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
219
docs/src/nn-NO/index.md
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Velkomen 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 bruker 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
|
||||||
|
|
||||||
|
- 🌱 Fri og open (AGPL v3-lisens)
|
||||||
|
- 🔐 Legg vekt på at du eig dine eigne data: innhaldet, publikum og
|
||||||
|
analysedata høyrer deg til, og berre deg
|
||||||
|
- 🪄 Podkasting 2.0-funksjonar: GUID, låsing, transkribering, finansiering,
|
||||||
|
kapittel, stader, personar, lydbetar…
|
||||||
|
- 💬 Innebygd sosialt nettverk:
|
||||||
|
- 🚀 Castopod er ein del av fødiverset, som er eit desentralisert
|
||||||
|
sosialt nettverk
|
||||||
|
- ❤️ Skriv innlegg, del dei, favorittmerk dei, og kommenter episodane
|
||||||
|
- 📈 Innebygde analyseverkty:
|
||||||
|
- ⚖️ Fylgjer GDPR / CCPA / LGPD
|
||||||
|
- 🪙 Standard IABv2-publikumsmåling
|
||||||
|
- 🏡 Eigen analyse, heilt utan utanforståande tredjepartar
|
||||||
|
- 📢 Innebygd marknadsføring:
|
||||||
|
- ✅ Søkjemotorvenleg (open-graph meta-knaggar, JSON-LD, …)
|
||||||
|
- 📱 PWA: installer som frittståande app
|
||||||
|
- 🎨 Bruk eigne fargar
|
||||||
|
- 🎬 Lag og del filmklypp frå episodane
|
||||||
|
- 🔉 Lag lydbetar
|
||||||
|
- ▶️ Innbyggbar spelar, så du kan spela episodane dine på ein kvar
|
||||||
|
nettstad
|
||||||
|
- 💸 Kommersialisering:
|
||||||
|
- 🔗 Donasjonslenker
|
||||||
|
- 📲 lytt-for-å-klikka-annonsar
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Kringkast episodane dine kvar som helst med RSS:
|
||||||
|
- 📱 På alle indeksar og appar: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Kringkast episodane dine straks med WebSub
|
||||||
|
- 📥 Podkastimport: Flytt podkasten din til Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
162
docs/src/oc/getting-started/install.md
Normal file
162
docs/src/oc/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/oc/getting-started/security.md
Normal file
26
docs/src/oc/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/oc/getting-started/update.md
Normal file
93
docs/src/oc/getting-started/update.md
Normal 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
216
docs/src/oc/index.md
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 the 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
|
||||||
|
|
||||||
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
|
belong to you, and you only
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
162
docs/src/pl/getting-started/install.md
Normal file
162
docs/src/pl/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/pl/getting-started/security.md
Normal file
26
docs/src/pl/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/pl/getting-started/update.md
Normal file
93
docs/src/pl/getting-started/update.md
Normal 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
216
docs/src/pl/index.md
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 the 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
|
||||||
|
|
||||||
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
|
belong to you, and you only
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
166
docs/src/pt-BR/getting-started/install.md
Normal file
166
docs/src/pt-BR/getting-started/install.md
Normal 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.
|
||||||
|
|
||||||
|
:::
|
28
docs/src/pt-BR/getting-started/security.md
Normal file
28
docs/src/pt-BR/getting-started/security.md
Normal 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
|
||||||
|
```
|
95
docs/src/pt-BR/getting-started/update.md
Normal file
95
docs/src/pt-BR/getting-started/update.md
Normal 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
219
docs/src/pt-BR/index.md
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Bem-vindo 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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
|
||||||
|
|
||||||
|
- 🌱 Livre & de código aberto (Licença AGPL v3)
|
||||||
|
- 🔐 Focado na soberania de dados: seu conteúdo, público e análises
|
||||||
|
pertence a você, e somente você
|
||||||
|
- 🪄 Recursos de Podcasting 2.0: GUID, bloqueado, transcrições,
|
||||||
|
financiamento, capítulos, localização, pessoas, clipes de áudio, …
|
||||||
|
- 💬 Rede social integrada:
|
||||||
|
- 🚀 Castopod é parte do Fediverso, uma rede social descentralizada
|
||||||
|
- ❤️ Crie publicações, compartilhe, favorite e comente em episódios
|
||||||
|
- 📈 Estatísticas integradas:
|
||||||
|
- ⚖️ Compatível com GDPR / CCPA / LGPD
|
||||||
|
- 🪙 Medição de audiência no padrão do IABv2
|
||||||
|
- 🏡 Estatísticas feitas localmente, sem terceiros envolvidos
|
||||||
|
- 📢 Ferramentas de marketing integradas:
|
||||||
|
- ✅ Pronto para SEO (meta-tags de open-graph, JSON-LD, …)
|
||||||
|
- 📱 PWA: instalar como um aplicativo autônomo
|
||||||
|
- 🎨 Cores de tema personalizáveis
|
||||||
|
- 🎬 Gere clipes de vídeo prontos para compartilhar a partir dos
|
||||||
|
episódios
|
||||||
|
- 🔉 Gere clipes de áudio
|
||||||
|
- ▶️ Player incorporável, incorpore seus episódios em qualquer site
|
||||||
|
- 💸 Monetização:
|
||||||
|
- 🔗 Links de financiamento
|
||||||
|
- 📲 anúncios clique-para-ouvir
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publique seus episódios em qualquer lugar com RSS:
|
||||||
|
- 📱 Em todos os agregadores e aplicativos: Podcast Index, Apple
|
||||||
|
Podcasts, Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Transmita seus episódios instantaneamente com WebSub
|
||||||
|
- 📥 Importação de Podcast: mova seu podcast existente para o Castopod
|
||||||
|
- 📤 Mova seu podcast para fora do Castopod
|
||||||
|
- 🔀 Multi-inquilino: hospede quantos podcasts você quiser
|
||||||
|
- 👥 Multi-usuário: adicione contribuidores e defina cargos
|
||||||
|
- 🌎 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
|
162
docs/src/pt/getting-started/install.md
Normal file
162
docs/src/pt/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/pt/getting-started/security.md
Normal file
26
docs/src/pt/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/pt/getting-started/update.md
Normal file
93
docs/src/pt/getting-started/update.md
Normal 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
216
docs/src/pt/index.md
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 the 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
|
||||||
|
|
||||||
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
|
belong to you, and you only
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
162
docs/src/ru/getting-started/install.md
Normal file
162
docs/src/ru/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/ru/getting-started/security.md
Normal file
26
docs/src/ru/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/ru/getting-started/update.md
Normal file
93
docs/src/ru/getting-started/update.md
Normal 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
216
docs/src/ru/index.md
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 the 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
|
||||||
|
|
||||||
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
|
belong to you, and you only
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
162
docs/src/sv/getting-started/install.md
Normal file
162
docs/src/sv/getting-started/install.md
Normal 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 haven’t 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.
|
||||||
|
|
||||||
|
:::
|
26
docs/src/sv/getting-started/security.md
Normal file
26
docs/src/sv/getting-started/security.md
Normal 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
|
||||||
|
```
|
93
docs/src/sv/getting-started/update.md
Normal file
93
docs/src/sv/getting-started/update.md
Normal 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
216
docs/src/sv/index.md
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
sidebarDepth: 2
|
||||||
|
---
|
||||||
|
|
||||||
|
# Welcome 👋
|
||||||
|
|
||||||
|
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![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 the 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
|
||||||
|
|
||||||
|
- 🌱 Free & open-source (AGPL v3 License)
|
||||||
|
- 🔐 Focused on data sovereignty: your content, audience, and analytics
|
||||||
|
belong to you, and you only
|
||||||
|
- 🪄 Podcasting 2.0 features: GUID, locked, transcripts, funding, chapters,
|
||||||
|
location, persons, soundbites, …
|
||||||
|
- 💬 Built-in social network:
|
||||||
|
- 🚀 Castopod is part of the Fediverse, a decentralized social network
|
||||||
|
- ❤️ Create posts, share, favourite, and comment on episodes
|
||||||
|
- 📈 Built-in analytics:
|
||||||
|
- ⚖️ GDPR / CCPA / LGPD compliant
|
||||||
|
- 🪙 Standard IABv2 audience measurement
|
||||||
|
- 🏡 On-premises analytics, no third party involved
|
||||||
|
- 📢 Built-in marketing tools:
|
||||||
|
- ✅ SEO ready (open-graph meta-tags, JSON-LD, …)
|
||||||
|
- 📱 PWA: install as a standalone app
|
||||||
|
- 🎨 Customizable theme colors
|
||||||
|
- 🎬 Generate ready-to-share Video clips from episodes
|
||||||
|
- 🔉 Generate soundbites
|
||||||
|
- ▶️ Embeddable player, embed your episodes on any website
|
||||||
|
- 💸 Monetization:
|
||||||
|
- 🔗 Funding links
|
||||||
|
- 📲 listen-to-click ads
|
||||||
|
- 🤝 value4value / WebMonetization
|
||||||
|
- 📡 Publish your episodes everywhere with RSS:
|
||||||
|
- 📱 On all indexes and apps: Podcast Index, Apple Podcasts, Spotify,
|
||||||
|
Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||||
|
- ⚡ Broadcast your episodes instantly with WebSub
|
||||||
|
- 📥 Podcast import: move your existing podcast into Castopod
|
||||||
|
- 📤 Move your podcast out of Castopod
|
||||||
|
- 🔀 Multi-tenant: host as many podcasts as you want
|
||||||
|
- 👥 Multi-user: add contributors and set roles
|
||||||
|
- 🌎 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 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 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 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 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 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
|
@ -33,12 +33,12 @@ return [
|
|||||||
'change-password' => 'تغيير الكلمة السرية',
|
'change-password' => 'تغيير الكلمة السرية',
|
||||||
'import' => 'feed import',
|
'import' => 'feed import',
|
||||||
'platforms' => 'منصات',
|
'platforms' => 'منصات',
|
||||||
'social' => 'social networks',
|
'social' => 'شبكات التواصل الاجتماعي',
|
||||||
'funding' => 'funding',
|
'funding' => 'funding',
|
||||||
'analytics' => 'analytics',
|
'analytics' => 'analytics',
|
||||||
'locations' => 'locations',
|
'locations' => 'locations',
|
||||||
'webpages' => 'web pages',
|
'webpages' => 'صفحات ويب',
|
||||||
'unique-listeners' => 'unique listeners',
|
'unique-listeners' => 'مستمعون فريدون',
|
||||||
'players' => 'players',
|
'players' => 'players',
|
||||||
'listening-time' => 'listening time',
|
'listening-time' => 'listening time',
|
||||||
'time-periods' => 'time periods',
|
'time-periods' => 'time periods',
|
||||||
|
@ -32,13 +32,13 @@ return [
|
|||||||
'help' => 'Powered by markdown',
|
'help' => 'Powered by markdown',
|
||||||
],
|
],
|
||||||
'multiSelect' => [
|
'multiSelect' => [
|
||||||
'selectText' => 'Press to select',
|
'selectText' => 'اضغط للاختيار',
|
||||||
'loadingText' => 'Loading…',
|
'loadingText' => 'جارٍ التحميل…',
|
||||||
'noResultsText' => 'No results found',
|
'noResultsText' => 'لم يتم العثور على نتائج',
|
||||||
'noChoicesText' => 'No choices to choose from',
|
'noChoicesText' => 'No choices to choose from',
|
||||||
'maxItemText' => 'Cannot add more items',
|
'maxItemText' => 'Cannot add more items',
|
||||||
],
|
],
|
||||||
'upload_file' => 'Upload a file',
|
'upload_file' => 'إرسال ملف',
|
||||||
'remote_url' => 'Remote URL',
|
'remote_url' => 'Remote URL',
|
||||||
],
|
],
|
||||||
'play_episode_button' => [
|
'play_episode_button' => [
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user