mirror of
https://code.castopod.org/adaures/castopod
synced 2025-04-19 13:01:19 +00:00
chore(i18n): new Crowdin updates
This commit is contained in:
parent
7c02774924
commit
80dfe46323
34
app/Language/da/Comment.php
Normal file
34
app/Language/da/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',
|
||||
];
|
30
app/Language/da/Common.php
Normal file
30
app/Language/da/Common.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?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',
|
||||
'legal_notice' => 'Legal notice',
|
||||
];
|
33
app/Language/da/Episode.php
Normal file
33
app/Language/da/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/da/Fediverse.php
Normal file
37
app/Language/da/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/da/Home.php
Normal file
20
app/Language/da/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/da/Page.php
Normal file
17
app/Language/da/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/da/Podcast.php
Normal file
53
app/Language/da/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 {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Activity',
|
||||
'episodes' => 'Episodes',
|
||||
'episodes_title' => 'Episodes of {podcastTitle}',
|
||||
'about' => 'About',
|
||||
'stats' => [
|
||||
'title' => 'Stats',
|
||||
'number_of_seasons' => '{0, plural,
|
||||
one {# season}
|
||||
other {# seasons}
|
||||
}',
|
||||
'number_of_episodes' => '{0, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'first_published_at' => 'First episode published on {0, date, medium}',
|
||||
],
|
||||
'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/da/Post.php
Normal file
40
app/Language/da/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,13 +9,13 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => "{actorDisplayName}'s comment for {episodeTitle}",
|
||||
'back_to_comments' => 'Back to comments',
|
||||
'title' => "دیدگاه {actorDisplayName} روی {episodeTitle}",
|
||||
'back_to_comments' => 'بازکشت به نظرها',
|
||||
'form' => [
|
||||
'episode_message_placeholder' => 'Write a comment…',
|
||||
'reply_to_placeholder' => 'Reply to @{actorUsername}',
|
||||
'submit' => 'Send',
|
||||
'submit_reply' => 'Reply',
|
||||
'episode_message_placeholder' => 'نوشتن دیدگاه…',
|
||||
'reply_to_placeholder' => 'پاسخ به @{actorUsername}',
|
||||
'submit' => 'فرستادن',
|
||||
'submit_reply' => 'پاسخ',
|
||||
],
|
||||
'likes' => '{numberOfLikes, plural,
|
||||
one {# like}
|
||||
@ -25,10 +25,10 @@ return [
|
||||
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',
|
||||
'like' => 'پسند',
|
||||
'reply' => 'پاسخ',
|
||||
'view_replies' => 'دیدن پاسخها ({numberOfReplies})',
|
||||
'block_actor' => 'انسداد کاربر @{actorUsername}',
|
||||
'block_domain' => 'انسداد دامنهٔ @{actorDomain}',
|
||||
'delete' => 'حذف دیدگاه',
|
||||
];
|
||||
|
@ -9,22 +9,22 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
return [
|
||||
'yes' => 'Yes',
|
||||
'no' => 'No',
|
||||
'cancel' => 'Cancel',
|
||||
'optional' => 'Optional',
|
||||
'close' => 'Close',
|
||||
'home' => 'Home',
|
||||
'yes' => 'بله',
|
||||
'no' => 'نه',
|
||||
'cancel' => 'لغو',
|
||||
'optional' => 'اختیاری',
|
||||
'close' => 'بستن',
|
||||
'home' => 'خانه',
|
||||
'explicit' => 'Explicit',
|
||||
'powered_by' => 'Powered by {castopod}',
|
||||
'go_back' => 'Go back',
|
||||
'powered_by' => 'نیرو گرفته از {castopod}',
|
||||
'go_back' => 'بازگشت',
|
||||
'play_episode_button' => [
|
||||
'play' => 'Play',
|
||||
'playing' => 'Playing',
|
||||
'play' => 'پخش',
|
||||
'playing' => 'در حال پخش',
|
||||
],
|
||||
'read_more' => 'Read more',
|
||||
'read_less' => 'Read less',
|
||||
'see_more' => 'See more',
|
||||
'see_less' => 'See less',
|
||||
'legal_notice' => 'Legal notice',
|
||||
'read_more' => 'خواندن بیشتر',
|
||||
'read_less' => 'خواندن کمتر',
|
||||
'see_more' => 'دیدن بیشتر',
|
||||
'see_less' => 'دیدن کمتر',
|
||||
'legal_notice' => 'نکات قانونی',
|
||||
];
|
||||
|
@ -9,25 +9,25 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
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}',
|
||||
'season' => 'فصل {seasonNumber}',
|
||||
'season_abbr' => 'ف{seasonNumber}',
|
||||
'number' => 'قسمت {episodeNumber}',
|
||||
'number_abbr' => 'ق. {episodeNumber}',
|
||||
'season_episode' => 'قسمت {episodeNumber} فصل {seasonNumber}',
|
||||
'season_episode_abbr' => 'ف{seasonNumber}: ق{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',
|
||||
'persons_list' => 'نفر',
|
||||
'back_to_episodes' => 'بازگشت به قسمتهای {podcast}',
|
||||
'comments' => 'دیدگاهها',
|
||||
'activity' => 'فعّالیت',
|
||||
'description' => 'شرح قسمت',
|
||||
'number_of_comments' => '{numberOfComments, plural,
|
||||
one {# comment}
|
||||
other {# comments}
|
||||
}',
|
||||
'all_podcast_episodes' => 'All podcast episodes',
|
||||
'back_to_podcast' => 'Go back to podcast',
|
||||
'all_podcast_episodes' => 'تمامی قسمتهای پادکست',
|
||||
'back_to_podcast' => 'بازگشت به پادکست',
|
||||
];
|
||||
|
@ -12,26 +12,26 @@ 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',
|
||||
'label' => 'پیگیری',
|
||||
'title' => 'پیگیری {actorDisplayName}',
|
||||
'subtitle' => 'دارید پی میگیرید:',
|
||||
'accountNotFound' => 'حساب پیدا نشد.',
|
||||
'remoteFollowNotAllowed' => 'به نظر کارساز حساب اجازهٔ پیگیریهای دوردست را نمیدهد…',
|
||||
'submit' => 'ادامه برای پیگیری',
|
||||
],
|
||||
'favourite' => [
|
||||
'title' => "Favourite {actorDisplayName}'s post",
|
||||
'subtitle' => 'You are going to favourite:',
|
||||
'submit' => 'Proceed to favourite',
|
||||
'title' => "برگزیدن فرستهٔ {actorDisplayName}",
|
||||
'subtitle' => 'دارید برمیگزینید:',
|
||||
'submit' => 'ادامه برای برگزیدن',
|
||||
],
|
||||
'reblog' => [
|
||||
'title' => "Share {actorDisplayName}'s post",
|
||||
'subtitle' => 'You are going to share:',
|
||||
'submit' => 'Proceed to share',
|
||||
'title' => "همرسانی فرستهٔ {actorDisplayName}",
|
||||
'subtitle' => 'دارید هم میرسانید:',
|
||||
'submit' => 'ادامه برای همرسانی',
|
||||
],
|
||||
'reply' => [
|
||||
'title' => "Reply to {actorDisplayName}'s post",
|
||||
'subtitle' => 'You are going to reply to:',
|
||||
'submit' => 'Proceed to reply',
|
||||
'title' => "پاسخ به فرستهٔ {actorDisplayName}",
|
||||
'subtitle' => 'دارید پاسخ میدهید به:',
|
||||
'submit' => 'ادامه برای پاسخ',
|
||||
],
|
||||
];
|
||||
|
@ -9,12 +9,12 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
return [
|
||||
'all_podcasts' => 'All podcasts',
|
||||
'sort_by' => 'Sort by',
|
||||
'all_podcasts' => 'تمامی پادکستها',
|
||||
'sort_by' => 'چینش بر اساس',
|
||||
'sort_options' => [
|
||||
'activity' => 'Recent activity',
|
||||
'created_desc' => 'Newest first',
|
||||
'created_asc' => 'Oldest first',
|
||||
'activity' => 'فعّالیت اخیر',
|
||||
'created_desc' => 'نخست جدیدترین',
|
||||
'created_asc' => 'نخست قدیمیترین',
|
||||
],
|
||||
'no_podcast' => 'No podcast found',
|
||||
'no_podcast' => 'هیچ پادکستی پیدا نشد',
|
||||
];
|
||||
|
@ -9,9 +9,9 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
return [
|
||||
'back_to_home' => '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.',
|
||||
'title' => 'نقشه',
|
||||
'description' => 'کشف قسمتهای پادکست روی {siteName} که روی نقشهای قرار داده شدهاند! سفر درون نقشه و گوش دادن به قسمتهایی که دربارهٔ مکانهای خاص صحبت میکنند.',
|
||||
],
|
||||
];
|
||||
|
@ -9,14 +9,14 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
return [
|
||||
'feed' => 'RSS Podcast feed',
|
||||
'season' => 'Season {seasonNumber}',
|
||||
'list_of_episodes_year' => '{year} episodes ({episodeCount})',
|
||||
'feed' => 'خوراک RSS پادکست',
|
||||
'season' => 'فصل {seasonNumber}',
|
||||
'list_of_episodes_year' => 'قسمتهای {year} ({episodeCount})',
|
||||
'list_of_episodes_season' =>
|
||||
'Season {seasonNumber} episodes ({episodeCount})',
|
||||
'no_episode' => 'No episode found!',
|
||||
'follow' => 'Follow',
|
||||
'followTitle' => 'Follow {actorDisplayName} on the fediverse!',
|
||||
'قسمتهای فصل {seasonNumber} ({episodeCount})',
|
||||
'no_episode' => 'هیچ قسمتی پیدا نشد!',
|
||||
'follow' => 'پیگیری',
|
||||
'followTitle' => 'پیگیری {actorDisplayName} روی فدیورس!',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
@ -25,12 +25,12 @@ return [
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Activity',
|
||||
'episodes' => 'Episodes',
|
||||
'episodes_title' => 'Episodes of {podcastTitle}',
|
||||
'about' => 'About',
|
||||
'activity' => 'فعّالیت',
|
||||
'episodes' => 'قسمتها',
|
||||
'episodes_title' => 'قسمتهای {podcastTitle}',
|
||||
'about' => 'درباره',
|
||||
'stats' => [
|
||||
'title' => 'Stats',
|
||||
'title' => 'آمار',
|
||||
'number_of_seasons' => '{0, plural,
|
||||
one {# season}
|
||||
other {# seasons}
|
||||
@ -39,15 +39,15 @@ return [
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'first_published_at' => 'First episode published on {0, date, medium}',
|
||||
'first_published_at' => 'قسمت نخست منتشر شده روی {0, date, medium}',
|
||||
],
|
||||
'sponsor' => 'Sponsor',
|
||||
'funding_links' => 'Funding links for {podcastTitle}',
|
||||
'find_on' => 'Find {podcastTitle} on',
|
||||
'listen_on' => 'Listen on',
|
||||
'sponsor' => 'حامی',
|
||||
'funding_links' => 'پیوندهای حمایت مالی از {podcastTitle}',
|
||||
'find_on' => 'یافتن {podcastTitle} روی',
|
||||
'listen_on' => 'شنیدن روی',
|
||||
'persons' => '{personsCount, plural,
|
||||
one {# person}
|
||||
other {# persons}
|
||||
}',
|
||||
'persons_list' => 'Persons',
|
||||
'persons_list' => 'نفر',
|
||||
];
|
||||
|
@ -9,17 +9,17 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => "{actorDisplayName}'s post",
|
||||
'back_to_actor_posts' => 'Back to {actor} posts',
|
||||
'actor_shared' => '{actor} shared',
|
||||
'reply_to' => 'Reply to @{actorUsername}',
|
||||
'title' => "فرستهٔ {actorDisplayName}",
|
||||
'back_to_actor_posts' => 'بازگشت به فرستههای {actor}',
|
||||
'actor_shared' => '{actor} همرساند',
|
||||
'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',
|
||||
'message_placeholder' => 'نوشتن پیام…',
|
||||
'episode_message_placeholder' => 'نوشتن پیامی برای قسمت…',
|
||||
'episode_url_placeholder' => 'نشانی قسمت',
|
||||
'reply_to_placeholder' => 'پاسخ به @{actorUsername}',
|
||||
'submit' => 'فرستادن',
|
||||
'submit_reply' => 'پاسخ',
|
||||
],
|
||||
'favourites' => '{numberOfFavourites, plural,
|
||||
one {# favourite}
|
||||
@ -33,8 +33,8 @@ return [
|
||||
one {# reply}
|
||||
other {# replies}
|
||||
}',
|
||||
'expand' => 'Expand post',
|
||||
'block_actor' => 'Block user @{actorUsername}',
|
||||
'block_domain' => 'Block domain @{actorDomain}',
|
||||
'delete' => 'Delete post',
|
||||
'expand' => 'گسترش فرسته',
|
||||
'block_actor' => 'انسداد کاربر @{actorUsername}',
|
||||
'block_domain' => 'انسداد دامنهٔ @{actorDomain}',
|
||||
'delete' => 'حذف فرسته',
|
||||
];
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -10,8 +10,8 @@ process:
|
||||
|
||||
- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): an all
|
||||
in one castopod image using nginx unit
|
||||
- [**castopod/app**](https://hub.docker.com/r/castopod/app): el paquet incloent
|
||||
Castopod i totes les dependències
|
||||
- [** code>castopod/app</code>**](https://hub.docker.com/r/castopod/app): el
|
||||
paquet incloent Castopod i totes les dependències
|
||||
- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): una
|
||||
configuració de Nginx per a Castopod
|
||||
- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
|
||||
@ -42,29 +42,20 @@ una base de dades Redis com a gestor de memòria cau.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ una base de dades Redis com a gestor de memòria cau.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -126,8 +102,8 @@ una base de dades Redis com a gestor de memòria cau.
|
||||
|
||||
```
|
||||
#castopod
|
||||
castopod.exemple.com {
|
||||
reverse_proxy localhost:8080
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -148,34 +124,50 @@ una base de dades Redis com a gestor de memòria cau.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Nom de la variable | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Nom de la variable | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
87
docs/src/da/getting-started/auth.md
Normal file
87
docs/src/da/getting-started/auth.md
Normal file
@ -0,0 +1,87 @@
|
||||
---
|
||||
title: Authentication & Authorization
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# Authentication & Authorization
|
||||
|
||||
Castopod handles authentication and authorization using `codeigniter/shield`
|
||||
coupled with custom rules. Roles and permissions are defined at two levels:
|
||||
|
||||
1. [instance wide](#1-instance-wide-roles-and-permissions)
|
||||
2. [per podcast](#2-per-podcast-roles-and-permissions)
|
||||
|
||||
## 1. Instance wide roles and permissions
|
||||
|
||||
### Instance roles
|
||||
|
||||
<!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| role | description | permissions |
|
||||
| ----------- | ----------------------------------- | ------------------------------------------------------------------------------------------ |
|
||||
| Super admin | Has complete control over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
|
||||
| Manager | Manages Castopod's content. | podcasts.create, podcasts.import, persons.manage, pages.manage |
|
||||
| Podcaster | General users of Castopod. | admin.access |
|
||||
|
||||
<!-- AUTH-INSTANCE-ROLES-LIST:END -->
|
||||
|
||||
### Instance permissions
|
||||
|
||||
<!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| permission | description |
|
||||
| ----------------------- | ------------------------------------------------------------------ |
|
||||
| admin.access | Can access the Castopod admin area. |
|
||||
| admin.settings | Can access the Castopod settings. |
|
||||
| users.manage | Can manage Castopod users. |
|
||||
| persons.manage | Can manage persons. |
|
||||
| pages.manage | Can manage pages. |
|
||||
| podcasts.view | Can view all podcasts. |
|
||||
| podcasts.create | Can create new podcasts. |
|
||||
| podcasts.import | Can import podcasts. |
|
||||
| fediverse.manage-blocks | Can block fediverse actors/domains from interacting with Castopod. |
|
||||
|
||||
<!-- AUTH-INSTANCE-PERMISSIONS-LIST:END -->
|
||||
|
||||
## 2. Per podcast roles and permissions
|
||||
|
||||
### Per podcast roles
|
||||
|
||||
<!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| role | description | permissions |
|
||||
| ------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Admin | Has complete control of podcast #{id}. | \* |
|
||||
| Editor | Manages content and publications of podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
|
||||
| Author | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips |
|
||||
| Guest | General contributor of the podcast #{id}. | view, episodes.view |
|
||||
|
||||
<!-- AUTH-PODCAST-ROLES-LIST:END -->
|
||||
|
||||
### Per podcast permissions
|
||||
|
||||
<!-- AUTH-PODCAST-PERMISSIONS-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| permission | description |
|
||||
| ---------------------------- | ------------------------------------------------------------------------ |
|
||||
| view | Can view dashboard and analytics of podcast #{id}. |
|
||||
| edit | Can edit podcast #{id}. |
|
||||
| delete | Can delete podcast #{id}. |
|
||||
| manage-import | Can synchronize imported podcast #{id}. |
|
||||
| manage-persons | Can manage subscriptions of podcast #{id}. |
|
||||
| manage-subscriptions | Can manage subscriptions of podcast #{id}. |
|
||||
| manage-contributors | Can manage contributors of podcast #{id}. |
|
||||
| manage-platforms | Can set/remove platform links of podcast #{id}. |
|
||||
| manage-publications | Can publish podcast #{id}. |
|
||||
| manage-notifications | Can view and mark notifications as read for podcast #{id}. |
|
||||
| interact-as | Can interact as the podcast #{id} to favourite, share or reply to posts. |
|
||||
| episodes.view | Can view dashboard and analytics of podcast #{id}. |
|
||||
| episodes.create | Can create episodes for podcast #{id}. |
|
||||
| episodes.edit | Can edit podcast #{id}. |
|
||||
| episodes.delete | Can delete podcast #{id}. |
|
||||
| episodes.manage-persons | Can manage subscriptions of podcast #{id}. |
|
||||
| episodes.manage-clips | Can manage video clips or soundbites of podcast #{id}. |
|
||||
| episodes.manage-publications | Can publish podcast #{id}. |
|
||||
| episodes.manage-comments | Can create/remove episode comments of podcast #{id}. |
|
||||
|
||||
<!-- AUTH-PODCAST-PERMISSIONS-LIST:END -->
|
171
docs/src/da/getting-started/docker.md
Normal file
171
docs/src/da/getting-started/docker.md
Normal file
@ -0,0 +1,171 @@
|
||||
---
|
||||
title: Official Docker images
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# Official Docker images
|
||||
|
||||
Castopod pushes 3 Docker images to the Docker Hub during its automated build
|
||||
process:
|
||||
|
||||
- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): an all
|
||||
in one castopod image using nginx unit
|
||||
- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): the app bundle
|
||||
with all of Castopod dependencies
|
||||
- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
|
||||
Nginx configuration for Castopod
|
||||
- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
|
||||
an optional image building videoclips thanks to ffmpeg
|
||||
|
||||
Additionally, Castopod requires a MySQL-compatible database. A Redis database
|
||||
can be added as a cache handler.
|
||||
|
||||
## Supported tags
|
||||
|
||||
- `develop` [unstable], latest development branch build
|
||||
- `beta` [stable], latest beta version build
|
||||
- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
|
||||
- `latest` [stable], latest version build
|
||||
- `1.x.x` [stable], specific version build (since `1.0.0`)
|
||||
|
||||
## Example usage
|
||||
|
||||
1. Install [docker](https://docs.docker.com/get-docker/) and
|
||||
[docker-compose](https://docs.docker.com/compose/install/)
|
||||
2. Create a `docker-compose.yml` file with the following:
|
||||
|
||||
```yml
|
||||
version: "3.7"
|
||||
|
||||
services:
|
||||
app:
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
ports:
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
image: mariadb:10.5
|
||||
container_name: "castopod-mariadb"
|
||||
networks:
|
||||
- castopod-db
|
||||
volumes:
|
||||
- castopod-db:/var/lib/mysql
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: changeme
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
restart: unless-stopped
|
||||
|
||||
redis:
|
||||
image: redis:7.0-alpine
|
||||
container_name: "castopod-redis"
|
||||
volumes:
|
||||
- castopod-cache:/data
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
castopod-cache:
|
||||
|
||||
networks:
|
||||
castopod-app:
|
||||
castopod-db:
|
||||
```
|
||||
|
||||
You have to adapt some variables to your needs (e.g. `CP_BASEURL`,
|
||||
`MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` and `CP_ANALYTICS_SALT`).
|
||||
|
||||
3. Setup a reverse proxy for TLS (SSL/HTTPS)
|
||||
|
||||
TLS is mandatory for ActivityPub to work. This job can easily be handled by
|
||||
a reverse proxy, for example with [Caddy](https://caddyserver.com/):
|
||||
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
4. Run `docker-compose up -d`, wait for it to initialize and head on to
|
||||
`https://castopod.example.com/cp-install` to finish setting up Castopod!
|
||||
|
||||
5. You're all set, start podcasting! 🎙️🚀
|
||||
|
||||
## Environment Variables
|
||||
|
||||
- **castopod/video-clipper**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| -------------------------- | ---------------- | ---------------- |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
231
docs/src/da/getting-started/install.md
Normal file
231
docs/src/da/getting-started/install.md
Normal file
@ -0,0 +1,231 @@
|
||||
---
|
||||
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.
|
||||
|
||||
::: tip Note
|
||||
|
||||
We've released official Docker images for Castopod!
|
||||
|
||||
If you prefer using Docker, you may skip this and go straight to the
|
||||
[docker documentation](./docker.md) for Castopod.
|
||||
|
||||
:::
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP v8.1 or higher
|
||||
- MySQL version 5.7 or higher or MariaDB version 10.2 or higher
|
||||
- HTTPS support
|
||||
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
|
||||
incoming requests
|
||||
|
||||
### PHP v8.1 or higher
|
||||
|
||||
PHP version 8.1 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 Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
February 5, 2021.
|
||||
|
||||
:::
|
||||
|
||||
You will need the server hostname, database name, username and password to
|
||||
complete the installation process. If you do not have these, please contact your
|
||||
server administrator.
|
||||
|
||||
#### Privileges
|
||||
|
||||
User must have at least these privileges on the database for Castopod to work:
|
||||
`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`,
|
||||
`REFERENCES`, `CREATE VIEW`.
|
||||
|
||||
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
|
||||
|
||||
[FFmpeg](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 edit the `.env` file manually
|
||||
based on the `.env.example` file.
|
||||
|
||||
:::
|
||||
|
||||
### Email/SMTP setup
|
||||
|
||||
Email configuration is required for some features to work properly (eg.
|
||||
retrieving your forgotten password, sending instructions to premium subscribers,
|
||||
…)
|
||||
|
||||
You may add your email configuration in your instance's `.env` like so:
|
||||
|
||||
```ini
|
||||
# […]
|
||||
|
||||
email.fromEmail="your_email_address"
|
||||
email.SMTPHost="your_smtp_host"
|
||||
email.SMTPUser="your_smtp_user"
|
||||
email.SMTPPass="your_smtp_password"
|
||||
```
|
||||
|
||||
#### Email config options
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| ---------------- | -------------------- | ------------ |
|
||||
| **`fromEmail`** | string | `undefined` |
|
||||
| **`fromName`** | string | `"Castopod"` |
|
||||
| **`SMTPHost`** | string | `undefined` |
|
||||
| **`SMTPUser`** | string | `undefined` |
|
||||
| **`SMTPPass`** | string | `undefined` |
|
||||
| **`SMTPPort`** | number | `25` |
|
||||
| **`SMTPCrypto`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
|
||||
### Media storage
|
||||
|
||||
By default, files are saved to the `public/media` folder using the file system.
|
||||
If you need to relocate the `media` folder to a different location, you can
|
||||
specify it in your `.env` file as shown below:
|
||||
|
||||
```ini
|
||||
# […]
|
||||
|
||||
media.root="media"
|
||||
media.storage="/mnt/storage"
|
||||
```
|
||||
|
||||
In this example, the files will be saved to the /mnt/storage/media folder. Make
|
||||
sure to also update your web server configuration to reflect this change.
|
||||
|
||||
### S3
|
||||
|
||||
If you prefer storing your media files on an S3 compatible storage, you may
|
||||
specify it in your `.env`:
|
||||
|
||||
```ini
|
||||
# […]
|
||||
|
||||
media.fileManager="s3"
|
||||
media.s3.endpoint="your_s3_host"
|
||||
media.s3.key="your_s3_key"
|
||||
media.s3.secret="your_s3_secret"
|
||||
media.s3.region="your_s3_region"
|
||||
```
|
||||
|
||||
#### S3 config options
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| ----------------------- | ------- | ----------- |
|
||||
| **`endpoint`** | string | `undefined` |
|
||||
| **`key`** | string | `undefined` |
|
||||
| **`secret`** | string | `undefined` |
|
||||
| **`region`** | string | `undefined` |
|
||||
| **`bucket`** | string | `castopod` |
|
||||
| **`protocol`** | number | `undefined` |
|
||||
| **`pathStyleEndpoint`** | boolean | `false` |
|
||||
| **`keyPrefix`** | string | `undefined` |
|
||||
|
||||
## Community packages
|
||||
|
||||
If you don't want to bother with installing Castopod manually, you may use one
|
||||
of the packages created and maintained by the open-source community.
|
||||
|
||||
### Install with YunoHost
|
||||
|
||||
[YunoHost](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>
|
26
docs/src/da/getting-started/security.md
Normal file
26
docs/src/da/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
|
||||
```
|
109
docs/src/da/getting-started/update.md
Normal file
109
docs/src/da/getting-started/update.md
Normal file
@ -0,0 +1,109 @@
|
||||
---
|
||||
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 ⚡.
|
||||
|
||||
## Update instructions
|
||||
|
||||
0. ⚠️ Before any update, we highly recommend you backup your Castopod files and
|
||||
database.
|
||||
|
||||
- cf.
|
||||
[Should I make a backup before updating?](#should-i-make-a-backup-before-updating)
|
||||
|
||||
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
|
||||
- Note that you can also download the latest package from
|
||||
[castopod.org](https://castopod.org/)
|
||||
|
||||
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. Update your database schema from your `Castopod Admin` > `About` page or by
|
||||
running:
|
||||
|
||||
```bash
|
||||
php spark castopod:database-update
|
||||
```
|
||||
|
||||
5. Clear your cache from your `Castopod Admin` > `Settings` > `general` >
|
||||
`Housekeeping`
|
||||
6. ✨ Enjoy your fresh instance, you're all done!
|
||||
|
||||
::: info Note
|
||||
|
||||
Releases may come with additional update instructions (see
|
||||
[releases page](https://code.castopod.org/adaures/castopod/-/releases)).
|
||||
|
||||
- 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)
|
||||
|
||||
:::
|
||||
|
||||
## Fully Automated updates
|
||||
|
||||
> Coming soon... 👀
|
||||
|
||||
## 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…
|
296
docs/src/da/index.md
Normal file
296
docs/src/da/index.md
Normal file
@ -0,0 +1,296 @@
|
||||
---
|
||||
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.
|
||||
|
||||
<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
|
||||
- 💎 Premium podcasts
|
||||
- 📡 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, German,
|
||||
Brazilian Portuguese & Spanish… with
|
||||
[more to come](https://translate.castopod.org)!
|
||||
|
||||
## 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.
|
||||
|
||||
## Contributors ✨
|
||||
|
||||
Thanks goes to these wonderful people
|
||||
([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/yassinedoghri"><img src="https://code.castopod.org/uploads/-/system/user/avatar/3/avatar.png?s=100" width="100px;" alt="Yassine Doghri"/><br /><sub><b>Yassine Doghri</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a> <a href="https://code.castopod.org/adaures/castopod/issues?author_username=yassinedoghri" title="Bug reports">🐛</a> <a href="https://code.castopod.org/adaures/castopod/commits/master" title="Documentation">📖</a> <a href="https://code.castopod.org/adaures/castopod/merge_requests?scope=all&state=all&approver_usernames[]=yassinedoghri" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-yassinedoghri" title="Maintenance">🚧</a> <a href="#content-yassinedoghri" title="Content">🖋</a> <a href="#design-yassinedoghri" title="Design">🎨</a> <a href="#a11y-yassinedoghri" title="Accessibility">️️️️♿️</a> <a href="https://translate.castopod.org" title="Translation">🌍</a> <a href="#question-yassinedoghri" title="Answering Questions">💬</a> <a href="#mentoring-yassinedoghri" title="Mentoring">🧑🏫</a> <a href="#infra-yassinedoghri" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#ideas-yassinedoghri" title="Ideas, Planning, & Feedback">🤔</a> <a href="#projectManagement-yassinedoghri" title="Project Management">📆</a> <a href="https://blog.castopod.org/author/yassinedoghri/" title="Blogposts">📝</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/benjamin"><img src="https://code.castopod.org/uploads/-/system/user/avatar/2/avatar.png?s=100" width="100px;" alt="Benjamin Bellamy"/><br /><sub><b>Benjamin Bellamy</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a> <a href="https://code.castopod.org/adaures/castopod/issues?author_username=benjamin" title="Bug reports">🐛</a> <a href="https://code.castopod.org/adaures/castopod/merge_requests?scope=all&state=all&approver_usernames[]=benjamin" title="Reviewed Pull Requests">👀</a> <a href="#content-benjamin" title="Content">🖋</a> <a href="https://translate.castopod.org" title="Translation">🌍</a> <a href="#question-benjamin" title="Answering Questions">💬</a> <a href="#infra-benjamin" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#ideas-benjamin" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://blog.castopod.org/author/benjamin-bellamy/" title="Blogposts">📝</a> <a href="#projectManagement-benjamin" title="Project Management">📆</a> <a href="#talk-benjamin" title="Talks">📢</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ola-hn"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Ola Hneini"/><br /><sub><b>Ola Hneini</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a> <a href="https://code.castopod.org/adaures/castopod/merge_requests?scope=all&state=all&approver_usernames[]=ola" title="Reviewed Pull Requests">👀</a> <a href="https://code.castopod.org/adaures/castopod/commits/master" title="Documentation">📖</a> <a href="#maintenance-ola" title="Maintenance">🚧</a> <a href="#question-ola" title="Answering Questions">💬</a> <a href="#ideas-ola" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://mamot.fr/@rdelaage"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Romain de Laage"/><br /><sub><b>Romain de Laage</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a> <a href="#infra-rdelaage" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://code.castopod.org/adaures/castopod/commits/master" title="Documentation">📖</a> <a href="https://translate.castopod.org" title="Translation">🌍</a> <a href="#ideas-rdelaage" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/lyonelbernard"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Lyonel Bernard"/><br /><sub><b>Lyonel Bernard</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=Lyonel" title="Bug reports">🐛</a> <a href="#question-Lyonel" title="Answering Questions">💬</a> <a href="#audio-Lyonel" title="Audio">🔊</a> <a href="#ideas-Lyonel" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.crypticchameleon.com/"><img src="https://secure.gravatar.com/avatar/7c2a721b52d0763673a600e8f01bd745?s=80&d=identicon?s=100" width="100px;" alt="Christopher Lagonick-Weitzel"/><br /><sub><b>Christopher Lagonick-Weitzel</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=ctlw83" title="Bug reports">🐛</a> <a href="#question-ctlw83" title="Answering Questions">💬</a> <a href="#audio-ctlw83" title="Audio">🔊</a> <a href="#ideas-ctlw83" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://ernestoacosta.me/"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Ernesto Acosta"/><br /><sub><b>Ernesto Acosta</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=ernestoacostame" title="Bug reports">🐛</a> <a href="#audio-ernestoacostame" title="Audio">🔊</a> <a href="https://translate.castopod.org" title="Translation">🌍</a> <a href="#question-ernestoacostame" title="Answering Questions">💬</a> <a href="#ideas-ernestoacostame" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/Behel"><img src="https://secure.gravatar.com/avatar/ad63ee8ef8e3db8253d21e5012d2724f?s=80&d=identicon?s=100" width="100px;" alt="Bastien Luneteau"/><br /><sub><b>Bastien Luneteau</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a> <a href="https://code.castopod.org/adaures/castopod/issues?author_username=Behel" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.cecillie.fr/"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Cécile Ricordeau"/><br /><sub><b>Cécile Ricordeau</b></sub></a><br /><a href="#design-cecillie" title="Design">🎨</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/PatrykMis"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Patryk Miś"/><br /><sub><b>Patryk Miś</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/mspanc"><img src="https://secure.gravatar.com/avatar/eed8337939641eac5ad0b570bd6acf96?s=80&d=identicon?s=100" width="100px;" alt="Marcin Lewandowski"/><br /><sub><b>Marcin Lewandowski</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=mspanc" title="Bug reports">🐛</a> <a href="#ideas-mspanc" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/SJanik"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Sebastian Janik"/><br /><sub><b>Sebastian Janik</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/patryk"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Patryk Karczmarczyk"/><br /><sub><b>Patryk Karczmarczyk</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/ddenis"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="denis d"/><br /><sub><b>denis d</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=ddenis" title="Bug reports">🐛</a> <a href="#ideas-ddenis" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/douglaskastle"><img src="https://secure.gravatar.com/avatar/b7e652ba4b6bcd440afa069e7f7bc9e6?s=80&d=identicon?s=100" width="100px;" alt="Douglas Kastle"/><br /><sub><b>Douglas Kastle</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=douglaskastle" title="Bug reports">🐛</a> <a href="#ideas-douglaskastle" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/cExplorer"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="cExplorer"/><br /><sub><b>cExplorer</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=cExplorer" title="Bug reports">🐛</a> <a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/imacrea"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="ImaCrea"/><br /><sub><b>ImaCrea</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=imacrea" title="Bug reports">🐛</a> <a href="#ideas-imacrea" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/jonas"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Jonas S"/><br /><sub><b>Jonas S</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/yannL"><img src="https://secure.gravatar.com/avatar/9c46600ce566ec6d526370d8e104b1c8?s=80&d=identicon?s=100" width="100px;" alt="LEFEBVRE Yann"/><br /><sub><b>LEFEBVRE Yann</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=yannL" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/spaetz"><img src="https://secure.gravatar.com/avatar/278e1af65e82993efd0ba7bbbacf6435?s=80&d=identicon?s=100" width="100px;" alt="Sebastian Späth"/><br /><sub><b>Sebastian Späth</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=spaetz" title="Bug reports">🐛</a> <a href="#ideas-spaetz" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/rocky"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="rocky III"/><br /><sub><b>rocky III</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=rocky" title="Bug reports">🐛</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/Regenpfeifer"><img src="https://code.castopod.org/uploads/-/system/user/avatar/103/avatar.png?s=100" width="100px;" alt="Hermann Josef Eckl"/><br /><sub><b>Hermann Josef Eckl</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=Regenpfeifer" title="Bug reports">🐛</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://code.castopod.org/cyrilledel"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Delhaye Cyrille"/><br /><sub><b>Delhaye Cyrille</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=cyrilledel" title="Bug reports">🐛</a> <a href="#ideas-cyrilledel" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/otetranome"><img src="https://code.castopod.org/uploads/-/system/user/avatar/113/avatar.png?s=100" width="100px;" alt="João Leandro"/><br /><sub><b>João Leandro</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a> <a href="#ideas-otetranome" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://achouvardas.eu/"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Angelos Chouvardas"/><br /><sub><b>Angelos Chouvardas</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://mastodon.fjerland.no/@eivind"><img src="https://mastodon.fjerland.no/system/accounts/avatars/107/769/768/295/192/222/original/e5c985fea6487dcb.jpg?s=100" width="100px;" alt="Eivind"/><br /><sub><b>Eivind</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://mastodon.fedi.bzh/@ewen"><img src="https://mastodon.fedi.bzh/system/accounts/avatars/000/000/002/original/6f387690a504ae46.jpg?s=100" width="100px;" alt="Ewen"/><br /><sub><b>Ewen</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a> <a href="#ideas-3wen" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/forght"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15073833/large/82d1e2e443a6df7edc43a7405dfeeb75_default.png?s=100" width="100px;" alt="forght"/><br /><sub><b>forght</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/glottis0q"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15209934/large/8b17ef6a7399f0b82a8198f87c224195.png?s=100" width="100px;" alt="glottis0q"/><br /><sub><b>glottis0q</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://mstdn.fr/@ButterflyOfFire"><img src="https://static.mstdn.fr/static/accounts/avatars/000/065/901/original/5908e93ad5447f15.png?s=100" width="100px;" alt="ButterflyOfFire"/><br /><sub><b>ButterflyOfFire</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lil5"><img src="https://avatars.githubusercontent.com/u/17646836?v=4?s=100" width="100px;" alt="Lucian I. Last"/><br /><sub><b>Lucian I. Last</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/luuzviir"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13166188/large/d03ab0abc7ce354b210d836955cd3805_default.png?s=100" width="100px;" alt="LuuzViir"/><br /><sub><b>LuuzViir</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/cthtc"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15211502/large/ed0651060cb8474a9519b5168bd377c1_default.png?s=100" width="100px;" alt="CTHTC"/><br /><sub><b>CTHTC</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/retrograde"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15021651/large/b10c4057f85bf4de49c7fdf01354ecde.jpeg?s=100" width="100px;" alt="Russian Retro"/><br /><sub><b>Russian Retro</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/mareklach"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13572324/large/3eeba8d569c247ace33862bf4ef4748f.jpeg?s=100" width="100px;" alt="Marek L'ach"/><br /><sub><b>Marek L'ach</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/gunchleoc"><img src="https://crowdin-static.downloads.crowdin.com/avatar/13043878/large/3223f7b606296a8b1c92c5de39c459a2_default.png?s=100" width="100px;" alt="GunChleoc"/><br /><sub><b>GunChleoc</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/gabisnow"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15214858/large/5b083bdf9c9e9de67cc6ee72a6c8db18_default.png?s=100" width="100px;" alt="GabiSnow"/><br /><sub><b>GabiSnow</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/bendaha"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15331656/large/cd92450d2c20202299fb3a0075903e20_default.png?s=100" width="100px;" alt="bendaha"/><br /><sub><b>bendaha</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/samuelroland"><img src="https://crowdin-static.downloads.crowdin.com/avatar/14980053/large/3e154a37d03d6e98ae402ed3f930f4f5.png?s=100" width="100px;" alt="Samuel Roland"/><br /><sub><b>Samuel Roland</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://dimitriregnier.net/"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Dimitri Regnier"/><br /><sub><b>Dimitri Regnier</b></sub></a><br /><a href="#ideas-dimregnier" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://im.irithys.com/@thy"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15405614/large/3086461c47cce0a0c031925e5f943412.png?s=100" width="100px;" alt="irithys"/><br /><sub><b>irithys</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/caos30"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Sergi"/><br /><sub><b>Sergi</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/xosem"><img src="https://crowdin-static.downloads.crowdin.com/avatar/12617257/large/a201650da44fed28890b0e0d8477a663.jpg?s=100" width="100px;" alt="ghose (XoseM)"/><br /><sub><b>ghose (XoseM)</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/basen1982"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="Andreas Olsson"/><br /><sub><b>Andreas Olsson</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/leonfrom"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="leonfrom"/><br /><sub><b>leonfrom</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/agentcobra57"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="agentcobra"/><br /><sub><b>agentcobra</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/alephoto85"><img src="https://crowdin-static.downloads.crowdin.com/avatar/15094649/large/530391f54157af52ae33058ec15b0f99.jpg?s=100" width="100px;" alt="Alessandro"/><br /><sub><b>Alessandro</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://crowdin.com/profile/liimee"><img src="https://castopod.org/assets/images/castopod-avatar.jpg?s=100" width="100px;" alt="liimee"/><br /><sub><b>liimee</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ahmedsabouni"><img src="https://avatars.githubusercontent.com/u/74497842?v=4?s=100" width="100px;" alt="Ahmed Sabouni"/><br /><sub><b>Ahmed Sabouni</b></sub></a><br /><a href="https://translate.castopod.org" title="Translation">🌍</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<!-- markdownlint-restore -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
This project follows the
|
||||
[all-contributors](https://github.com/all-contributors/all-contributors)
|
||||
specification. Contributions of any kind welcome!
|
||||
|
||||
## 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
|
@ -18,11 +18,11 @@ definiert:
|
||||
|
||||
<!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| role | description | permissions |
|
||||
| Rolle | Beschreibung | Berechtigungen |
|
||||
| ------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------ |
|
||||
| Super-Administrator | Hat die vollständige Kontrolle über Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
|
||||
| Manager | Verwaltet Castopods Inhalte. | podcasts.create, podcasts.import, persons.manage, pages.manage |
|
||||
| Podcaster | Allgemeine Benutzer von Castopod. | admin.access |
|
||||
| Manager | Verwaltet Castopods Inhalt. | podcasts.create, podcasts.import, persons.manage, pages.manage |
|
||||
| Podcaster | Generelle Benutzer von Castopod. | admin.access |
|
||||
|
||||
<!-- AUTH-INSTANCE-ROLES-LIST:END -->
|
||||
|
||||
@ -30,17 +30,17 @@ definiert:
|
||||
|
||||
<!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| permission | description |
|
||||
| Berechtigung | Beschreibung |
|
||||
| ----------------------- | ---------------------------------------------------------------------------- |
|
||||
| admin.access | Kann auf den Admin-Bereich von Castopod zugreifen. |
|
||||
| admin.settings | Kann auf die Einstellungen von Castopod zugreifen. |
|
||||
| users.manage | Kann Castopod-Benutzer verwalten. |
|
||||
| persons.manage | Kann Mitwirkende verwalten. |
|
||||
| admin.access | Kann auf den Castopod Adminbereich zugreifen. |
|
||||
| admin.settings | Kann auf die Castopod Einstellungen zugreifen. |
|
||||
| users.manage | Kann Castopod Benutzer verwalten. |
|
||||
| persons.manage | Kann Personen verwalten. |
|
||||
| pages.manage | Kann Seiten verwalten. |
|
||||
| podcasts.view | Kann alle Podcasts einsehen. |
|
||||
| podcasts.create | Kann neue Podcasts erstellen. |
|
||||
| podcasts.import | Kann Podcasts importieren. |
|
||||
| fediverse.manage-blocks | Kann föderierte Nutzer/Domains davon abhalten, mit Castopod zu interagieren. |
|
||||
| fediverse.manage-blocks | Kann Fediverse Akteure/Domains davon abhalten, mit Castopod zu interagieren. |
|
||||
|
||||
<!-- AUTH-INSTANCE-PERMISSIONS-LIST:END -->
|
||||
|
||||
@ -50,9 +50,9 @@ definiert:
|
||||
|
||||
<!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| role | description | permissions |
|
||||
| Rolle | Beschreibung | Berechtigungen |
|
||||
| ------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Administrator | Hat die vollständige Kontrolle über Podcast #{id}. | \* |
|
||||
| Administrator | Hat vollständige Kontrolle über Podcast #{id}. | \* |
|
||||
| Editor | Verwaltet Inhalte und Veröffentlichungen von Podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
|
||||
| Autor | Verwaltet Inhalte von Podcast #{id}, kann diese aber nicht veröffentlichen. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips |
|
||||
| Gast | Allgemeiner Mitwirkender des Podcasts #{id}. | view, episodes.view |
|
||||
@ -63,26 +63,26 @@ definiert:
|
||||
|
||||
<!-- AUTH-PODCAST-PERMISSIONS-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| permission | description |
|
||||
| ---------------------------- | ------------------------------------------------------------------------------------------------------ |
|
||||
| view | Kann das Dashboard und Analysen des Podcasts #{id} einsehen. |
|
||||
| edit | Kann Podcast #{id} bearbeiten. |
|
||||
| delete | Kann Podcast #{id} löschen. |
|
||||
| manage-import | Kann den importierten Podcast #{id} synchronisieren. |
|
||||
| manage-persons | Kann Abonnements des Podcasts #{id} verwalten. |
|
||||
| manage-subscriptions | Kann Abonnements des Podcasts #{id} verwalten. |
|
||||
| manage-contributors | Kann Mitwirkende des Podcasts #{id} verwalten. |
|
||||
| manage-platforms | Kann Plattform-Links des Podcasts #{id} verwalten. |
|
||||
| manage-publications | Kann Podcast #{id} veröffentlichen. |
|
||||
| manage-notifications | Kann Benachrichtigungen des Podcasts #{id} einsehen und als gelesen markieren. |
|
||||
| interact-as | Kann als Podcast #{id} interagieren, um Beiträge zu favorisieren, zu teilen oder diese zu beantworten. |
|
||||
| episodes.view | Kann das Dashboard und Analysen des Podcasts #{id} einsehen. |
|
||||
| episodes.create | Kann Folgen für Podcast #{id} erstellen. |
|
||||
| episodes.edit | Kann Podcast #{id} bearbeiten. |
|
||||
| episodes.delete | Kann Podcast #{id} löschen. |
|
||||
| episodes.manage-persons | Kann Abonnements des Podcasts #{id} verwalten. |
|
||||
| episodes.manage-clips | Kann Videoclips und Soundbites des Podcasts #{id} verwalten. |
|
||||
| episodes.manage-publications | Kann Podcast #{id} veröffentlichen. |
|
||||
| episodes.manage-comments | Kann Kommentare von Folgen des Podcasts #{id} erstellen und löschen. |
|
||||
| Berechtigung | Beschreibung |
|
||||
| ---------------------------- | ------------------------------------------------------------------------------------------------ |
|
||||
| view | Kann Dashboard und Analysen des Podcasts #{id} einsehen. |
|
||||
| edit | Kann Podcast #{id} bearbeiten. |
|
||||
| delete | Kann Podcast #{id} löschen. |
|
||||
| manage-import | Kann importierten Podcast #{id} synchronisieren. |
|
||||
| manage-persons | Kann Mitwirkende des Podcasts #{id} verwalten. |
|
||||
| manage-subscriptions | Kann Abonnements des Podcast #{id} verwalten. |
|
||||
| manage-contributors | Kann Mitwirkende des Podcasts #{id} verwalten. |
|
||||
| manage-platforms | Kann Plattform-Links des Podcast #{id} setzen/entfernen. |
|
||||
| manage-publications | Kann Podcast #{id} veröffentlichen. |
|
||||
| manage-notifications | Kann Benachrichtigungen des Podcasts #{id} einsehen und als gelesen markieren. |
|
||||
| interact-as | Kann als Podcast #{id} interagieren, um Beiträge zu favorisieren, zu teilen oder zu beantworten. |
|
||||
| episodes.view | Kann Dashboard und Analysen des Podcasts #{id} einsehen. |
|
||||
| episodes.create | Kann Folgen für Podcast #{id} erstellen. |
|
||||
| episodes.edit | Kann Podcast #{id} bearbeiten. |
|
||||
| episodes.delete | Kann Podcast #{id} löschen. |
|
||||
| episodes.manage-persons | Kann Abonnements des Podcast #{id} verwalten. |
|
||||
| episodes.manage-clips | Kann Videoclips und Soundbites des Podcasts #{id} verwalten. |
|
||||
| episodes.manage-publications | Kann Podcast #{id} veröffentlichen. |
|
||||
| episodes.manage-comments | Du kannst Episodenkommentare von Podcast #{id} erstellen/entfernen. |
|
||||
|
||||
<!-- AUTH-PODCAST-PERMISSIONS-LIST:END -->
|
||||
|
@ -3,36 +3,37 @@ title: Official Docker images
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# Official Docker images
|
||||
# Offizielle Docker Images
|
||||
|
||||
Castopod pushes 3 Docker images to the Docker Hub during its automated build
|
||||
process:
|
||||
Castopod erstellt während des automatischen Build-Prozesses 3 Docker-Images auf
|
||||
Docker Hub:
|
||||
|
||||
- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): an all
|
||||
in one castopod image using nginx unit
|
||||
- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): the app bundle
|
||||
with all of Castopod dependencies
|
||||
- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): an
|
||||
Nginx configuration for Castopod
|
||||
- [**`castopod/castopod`**](https://hub.docker.com/r/castopod/castopod): Ein
|
||||
umfassendes Castopod Image mit Nginx als Webserver
|
||||
- [**`castopod/app`**](https://hub.docker.com/r/castopod/app): Das App Paket mit
|
||||
allen Castopod Abhängigkeiten
|
||||
- [**`castopod/web-server`**](https://hub.docker.com/r/castopod/web-server): Ein
|
||||
Nginx Webserver für Castopod
|
||||
- [**`castopod/video-clipper`**](https://hub.docker.com/r/castopod/video-clipper):
|
||||
an optional image building videoclips thanks to ffmpeg
|
||||
Ein optionales Image, das dank ffmpeg Videoclips erstellt
|
||||
|
||||
Additionally, Castopod requires a MySQL-compatible database. A Redis database
|
||||
can be added as a cache handler.
|
||||
Außerdem benötigt Castopod eine MySQL-kompatible Datenbank. Eine Redis-Datenbank
|
||||
kann als Cache-Handler hinzugefügt werden.
|
||||
|
||||
## Supported tags
|
||||
## Unterstützte Tags
|
||||
|
||||
- `develop` [unstable], latest development branch build
|
||||
- `beta` [stable], latest beta version build
|
||||
- `1.0.0-beta.x` [stable], specific beta version build (since `1.0.0-beta.22`)
|
||||
- `latest` [stable], latest version build
|
||||
- `1.x.x` [stable], specific version build (since `1.0.0`)
|
||||
- `develop` [unstable], neueste Updates des development Branches
|
||||
- `beta` [stable], neueste Beta-Version
|
||||
- `1.0.0-beta.x` [stable], spezifischer Beta-Version Build (seit
|
||||
`1.0.0-beta.22`)
|
||||
- `latest` [stable], die neuste Version
|
||||
- `1.x.x` [stable], spezifische Version (seit `1.0.0`)
|
||||
|
||||
## Example usage
|
||||
## Beispiel
|
||||
|
||||
1. Install [docker](https://docs.docker.com/get-docker/) and
|
||||
[docker-compose](https://docs.docker.com/compose/install/)
|
||||
2. Create a `docker-compose.yml` file with the following:
|
||||
1. Installiere [Docker](https://docs.docker.com/get-docker/) und
|
||||
[Docker-Compose](https://docs.docker.com/compose/install/)
|
||||
2. Erstelle eine `docker-compose.yml` Datei mit folgendem Inhalt:
|
||||
|
||||
```yml
|
||||
version: "3.7"
|
||||
@ -42,29 +43,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +81,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -114,31 +91,34 @@ can be added as a cache handler.
|
||||
castopod-db:
|
||||
```
|
||||
|
||||
You have to adapt some variables to your needs (e.g. `CP_BASEURL`,
|
||||
`MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` and `CP_ANALYTICS_SALT`).
|
||||
Es müssen einige Variablen an deine Bedürfnisse angepasst werden (z.B.
|
||||
`CP_BASEURL`, `MYSQL_ROOT_PASSWORD`, `MYSQL_PASSWORD` und
|
||||
`CP_ANALYTICS_SALT`).
|
||||
|
||||
3. Setup a reverse proxy for TLS (SSL/HTTPS)
|
||||
3. Einen Reverse-Proxy für TLS (SSL/HTTPS) einrichten
|
||||
|
||||
TLS is mandatory for ActivityPub to work. This job can easily be handled by
|
||||
a reverse proxy, for example with [Caddy](https://caddyserver.com/):
|
||||
TLS ist notwendig damit ActivityPub korrekt arbeiten kann. Dieser Job kann
|
||||
leicht von einem Reverse-Proxy bearbeitet werden, zum Beispiel mit
|
||||
[Caddy](https://caddyserver.com/):
|
||||
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
4. Run `docker-compose up -d`, wait for it to initialize and head on to
|
||||
`https://castopod.example.com/cp-install` to finish setting up Castopod!
|
||||
4. Führe `docker-compose up -d` aus, warte darauf, dass es initialisiert wird
|
||||
und gehe auf `https://castopod.example.com/cp-install` um die Einrichtung
|
||||
von Castopod abzuschließen!
|
||||
|
||||
5. You're all set, start podcasting! 🎙️🚀
|
||||
5. Ist alles da? Dann kann das Podcasten beginnen! 🎙️🚀
|
||||
|
||||
## Environment Variables
|
||||
## Umgebungsvariablen
|
||||
|
||||
- **castopod/video-clipper**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| Variablennamen | Typ (`Standard`) | Standardwert |
|
||||
| -------------------------- | ---------------- | ---------------- |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
@ -146,34 +126,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variablennamen | Typ (`Standard`) | Standardwert |
|
||||
| ------------------------------------- | ----------------------- | ----------------- |
|
||||
| **`CP_BASEURL`** | string | `nicht definiert` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `nicht definiert` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `nicht definiert` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `nicht definiert` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `nicht definiert` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `nicht definiert` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `nicht definiert` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `nicht definiert` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `nicht definiert` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `nicht definiert` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `nicht definiert` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `nicht definiert` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `nicht definiert` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `nicht definiert` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variablennamen | Typ | Standardwert |
|
||||
| ---------------------- | --------------------- | ------------ |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -5,15 +5,16 @@ sidebarDepth: 3
|
||||
|
||||
# Wie installiere ich 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.
|
||||
Castopod ist für eine einfache Installation konzipiert. Ob dediziertes oder
|
||||
Shared-Hosting, du kannst es auf den meisten PHP-MySQL-kompatiblen Webservern
|
||||
installieren.
|
||||
|
||||
::: tip Note
|
||||
|
||||
We've released official Docker images for Castopod!
|
||||
Wir haben offizielle Docker Images für Castopod veröffentlicht!
|
||||
|
||||
If you prefer using Docker, you may skip this and go straight to the
|
||||
[docker documentation](./docker.md) for Castopod.
|
||||
Wenn du Docker bevorzugst, kannst du die manuelle Anleitung überspringen und
|
||||
direkt zur [Docker-Dokumentation](./docker.md) für Castopod gehen.
|
||||
|
||||
:::
|
||||
|
||||
@ -22,65 +23,68 @@ If you prefer using Docker, you may skip this and go straight to the
|
||||
- PHP v8.1 oder höher
|
||||
- MySQL Version 5.7 oder höher oder MariaDB Version 10.2 oder höher
|
||||
- HTTPS-Unterstützung
|
||||
- An [ntp-synced clock](https://wiki.debian.org/NTP) to validate federation's
|
||||
incoming requests
|
||||
- Eine [ntp-synchronisierte Uhr](https://wiki.debian.org/NTP) um die eingehenden
|
||||
Anfragen zu überprüfen
|
||||
|
||||
### PHP v8.1 oder höher
|
||||
|
||||
PHP version 8.1 or higher is required, with the following extensions installed:
|
||||
PHP Version 8.1 oder höher ist erforderlich, wobei folgende Erweiterungen
|
||||
installiert sind:
|
||||
|
||||
- [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.
|
||||
- [gd](https://www.php.net/manual/en/image.installation.php) mit **JPEG**,
|
||||
**PNG** und **WEBP** Bibliotheken.
|
||||
- [exif](https://www.php.net/manual/en/exif.installation.php)
|
||||
|
||||
Additionally, make sure that the following extensions are enabled in your PHP:
|
||||
Stelle außerdem sicher, dass die folgenden Erweiterungen in deinem PHP aktiviert
|
||||
sind:
|
||||
|
||||
- json (enabled by default - don't turn it off)
|
||||
- xml (enabled by default - don't turn it off)
|
||||
- json (standardmäßig aktiviert - nicht ausschalten)
|
||||
- xml (standardmäßig aktiviert - nicht ausschalten)
|
||||
- [mysqlnd](https://php.net/manual/en/mysqlnd.install.php)
|
||||
|
||||
### MySQL compatible database
|
||||
### MySQL kompatible Datenbank
|
||||
|
||||
> We recommend using [MariaDB](https://mariadb.org).
|
||||
> Wir empfehlen [MariaDB](https://mariadb.org).
|
||||
|
||||
::: warning Warning
|
||||
|
||||
Castopod only works with supported MySQL 5.7 or higher compatible databases. It
|
||||
will break with the previous MySQL v5.6 for example as its end of life was on
|
||||
February 5, 2021.
|
||||
Castopod funktioniert nur mit unterstützten MySQL 5.7 oder höher kompatiblen
|
||||
Datenbanken. Es wird zum Beispiel mit dem vorherigen MySQL v5.6 nicht mehr
|
||||
funktionieren, dessen Lebensende am 5. Februar 2021 war.
|
||||
|
||||
:::
|
||||
|
||||
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.
|
||||
Du benötigst den Servernamen, den Datenbanknamen, den Benutzernamen und das
|
||||
Passwort, um den Installationsvorgang abzuschließen. Kontaktiere bitte den
|
||||
Administrator, falls du keinen Benutzeraccount hast.
|
||||
|
||||
#### Privileges
|
||||
#### Berechtigungen
|
||||
|
||||
User must have at least these privileges on the database for Castopod to work:
|
||||
`CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`, `INSERT`, `SELECT`, `UPDATE`,
|
||||
`REFERENCES`, `CREATE VIEW`.
|
||||
Benutzer müssen mindestens diese Berechtigungen in der Datenbank haben, damit
|
||||
Castopod funktioniert: `CREATE`, `ALTER`, `DELETE`, `EXECUTE`, `INDEX`,
|
||||
`INSERT`, `SELECT`, `UPDATE`, `REFERENCES`, `CREATE VIEW`.
|
||||
|
||||
### (Optional) FFmpeg v4.1.8 or higher for Video Clips
|
||||
### (Optional) FFmpeg v4.1.8 oder höher für Videoclips
|
||||
|
||||
[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:
|
||||
[FFmpeg](https://www.ffmpeg.org/) Version 4.1.8 oder höher ist erforderlich,
|
||||
wenn Du Videoclips generieren möchtest. Die folgenden Php-Erweiterungen sind
|
||||
nicht installiert: %s:
|
||||
|
||||
- **FreeType 2** library for
|
||||
- **FreeType 2** Bibliothek für
|
||||
[gd](https://www.php.net/manual/en/image.installation.php).
|
||||
|
||||
### (Optional) Other recommendations
|
||||
### (Optional) Weitere Empfehlungen
|
||||
|
||||
- Redis for better cache performances.
|
||||
- CDN for static files caching and better performances.
|
||||
- e-mail gateway for lost passwords.
|
||||
- Redis für bessere Cache-Leistungen.
|
||||
- CDN für das Caching statischer Dateien und bessere Leistungen.
|
||||
- E-Mail Server Anbindung für E-Mails zu verlorenen Passwörtern.
|
||||
|
||||
## Install instructions
|
||||
## Installationsanleitung
|
||||
|
||||
### Pre-requisites
|
||||
### Voraussetzungen
|
||||
|
||||
0. Get a Web Server with [requirements](#requirements) installed
|
||||
1. Create a MySQL database for Castopod with a user having access and
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ También se puede añadir una base de datos Redis como gestor de caché.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ También se puede añadir una base de datos Redis como gestor de caché.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# este contenedor es opcional
|
||||
# agregue esto si desea usar la funcionalidad de videoclips
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,8 +101,8 @@ También se puede añadir una base de datos Redis como gestor de caché.
|
||||
|
||||
```
|
||||
#castopod
|
||||
castopod.mi_dominio.com {
|
||||
reverse_proxy localhost:8080
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -148,34 +124,50 @@ También se puede añadir una base de datos Redis como gestor de caché.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Nombre de la variable | Tipo (`por defecto`) | Por defecto |
|
||||
| ---------------------------- | ---------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_URLBASE`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` o `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`HOST_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` o `"ssl"`] | `"tls"` |
|
||||
| Nombre de la variable | Tipo (`por defecto`) | Por defecto |
|
||||
| ------------------------------------- | ---------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_URLBASE`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` o `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`HOST_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` o `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/servidor web**
|
||||
|
||||
| Nombre de la variable | Tipo | Por defecto |
|
||||
| --------------------- | ------- | ----------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Nombre de la variable | Tipo | Por defecto |
|
||||
| ---------------------- | --------------------- | ----------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ de données Redis peut être ajoutée en tant que gestionnaire de cache.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ de données Redis peut être ajoutée en tant que gestionnaire de cache.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ de données Redis peut être ajoutée en tant que gestionnaire de cache.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -147,34 +123,50 @@ de données Redis peut être ajoutée en tant que gestionnaire de cache.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Par défaut |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Par défaut |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Nom de la variable | Type | Par défaut |
|
||||
| --------------------- | ------- | ---------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Nom de la variable | Type | Par défaut |
|
||||
| ---------------------- | --------------------- | ---------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -3,33 +3,34 @@ title: Authentication & Authorization
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# Authentication & Authorization
|
||||
# Authenticatie & Autorisatie
|
||||
|
||||
Castopod handles authentication and authorization using `codeigniter/shield`
|
||||
coupled with custom rules. Roles and permissions are defined at two levels:
|
||||
Castopod gebruikt voor de authenticatie en autorisatie `codeigniter/schild` met
|
||||
een aantal aangepaste regels. Rollen en permissies zijn gedefinieerd op twee
|
||||
niveaus:
|
||||
|
||||
1. [instance wide](#1-instance-wide-roles-and-permissions)
|
||||
1. [globaal: serverbreed](#1-instance-wide-roles-and-permissions)
|
||||
2. [per podcast](#2-per-podcast-roles-and-permissions)
|
||||
|
||||
## 1. Instance wide roles and permissions
|
||||
## 1. Globale rollen en rechten
|
||||
|
||||
### Instance roles
|
||||
### Globale rollen
|
||||
|
||||
<!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| role | description | permissions |
|
||||
| --------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
||||
| Super beheerder | Heeft de volledige controle over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
|
||||
| Beheerder | Beheert de inhoud van Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage |
|
||||
| Podcaster | Algemene gebruikers van Castopod. | admin.access |
|
||||
| rol | omschrijving | rechten |
|
||||
| ----------- | ------------------------------------------ | ------------------------------------------------------------------------------------------ |
|
||||
| Super admin | Heeft de volledige controle over Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
|
||||
| Manager | Beheert de inhoud van Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage |
|
||||
| Podcaster | Algemene gebruikers van Castopod. | admin.access |
|
||||
|
||||
<!-- AUTH-INSTANCE-ROLES-LIST:END -->
|
||||
|
||||
### Instance permissions
|
||||
### Globale rechten
|
||||
|
||||
<!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| permission | description |
|
||||
| recht | omschrijving |
|
||||
| ----------------------- | -------------------------------------------------------------------- |
|
||||
| admin.access | Kan toegang krijgen tot de beheeromgeving van Castopod. |
|
||||
| admin.settings | Kan toegang krijgen tot de instellingen van Castopod. |
|
||||
@ -43,45 +44,45 @@ coupled with custom rules. Roles and permissions are defined at two levels:
|
||||
|
||||
<!-- AUTH-INSTANCE-PERMISSIONS-LIST:END -->
|
||||
|
||||
## 2. Per podcast roles and permissions
|
||||
## 2. Per podcast rollen en permissies
|
||||
|
||||
### Per podcast roles
|
||||
### Per podcast rollen
|
||||
|
||||
<!-- AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| role | description | permissions |
|
||||
| --------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Beheerder | Heeft de volledige controle over podcast #{id}. | \* |
|
||||
| Redacteur | Beheert inhoud en publicaties van podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
|
||||
| Auteur | Beheert de inhoud van podcast #{id} maar kan deze niet publiceren. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips |
|
||||
| Gast | Algemene bijdrager van podcast #{id}. | view, episodes.view |
|
||||
| rol | omschrijving | rechten |
|
||||
| ------ | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Admin | Heeft de volledige controle over podcast #{id}. | \* |
|
||||
| Editor | Beheert inhoud en publicaties van podcast #{id}. | view, edit, manage-import, manage-persons, manage-platforms, manage-publications, manage-notifications, interact-as, episodes.view, episodes.create, episodes.edit, episodes.delete, episodes.manage-persons, episodes.manage-clips, episodes.manage-publications, episodes.manage-comments |
|
||||
| Author | Beheert de inhoud van podcast #{id} maar kan deze niet publiceren. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips |
|
||||
| Guest | Algemene bijdrager van podcast #{id}. | view, episodes.view |
|
||||
|
||||
<!-- AUTH-PODCAST-ROLES-LIST:END -->
|
||||
|
||||
### Per podcast permissions
|
||||
### Per aflevering rollen
|
||||
|
||||
<!-- AUTH-PODCAST-PERMISSIONS-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| permission | description |
|
||||
| recht | omschrijving |
|
||||
| ---------------------------- | -------------------------------------------------------------------------------------- |
|
||||
| view | Kan dashboard en analyses van podcast #{id} zien. |
|
||||
| view | Kan dashboard en statistieken van podcast #{id} zien. |
|
||||
| edit | Kan podcast #{id} wijzigen. |
|
||||
| delete | Kan podcast #{id} verwijderen. |
|
||||
| manage-import | Kan de geïmporteerde podcast #{id} synchroniseren. |
|
||||
| manage-persons | Kan abonnementen van podcast #{id} beheren. |
|
||||
| manage-subscriptions | Kan abonnementen van podcast #{id} beheren. |
|
||||
| manage-persons | Kan personen van podcast #{id} beheren. |
|
||||
| manage-subscriptions | Kan abonnees van podcast #{id} beheren. |
|
||||
| manage-contributors | Kan bijdragers van podcast #{id} beheren. |
|
||||
| manage-platforms | Kan platform links van podcast #{id} instellen of verwijderen. |
|
||||
| manage-publications | Kan podcast #{id} publiceren. |
|
||||
| manage-notifications | Kan meldingen bekijken en markeren als gelezen voor podcast #{id}. |
|
||||
| manage-notifications | Kan meldingen voor podcast #{id} bekijken en als gelezen markeren. |
|
||||
| interact-as | Kan als podcast #{id} handelen om te favorieten, te delen of te reageren op berichten. |
|
||||
| episodes.view | Kan dashboard en analyses van podcast #{id} zien. |
|
||||
| episodes.view | Kan dashboard en statistieken van podcast #{id} zien. |
|
||||
| episodes.create | Kan afleveringen voor podcast #{id} aanmaken. |
|
||||
| episodes.edit | Kan podcast #{id} wijzigen. |
|
||||
| episodes.delete | Kan podcast #{id} verwijderen. |
|
||||
| episodes.manage-persons | Kan abonnementen van podcast #{id} beheren. |
|
||||
| episodes.edit | Kan afleveringen van podcast #{id} wijzigen. |
|
||||
| episodes.delete | Kan afleveringen van podcast #{id} verwijderen. |
|
||||
| episodes.manage-persons | Kan personen in aflevering van podcast #{id} beheren. |
|
||||
| episodes.manage-clips | Kan videoclips of soundbites van podcast #{id} beheren. |
|
||||
| episodes.manage-publications | Kan podcast #{id} publiceren. |
|
||||
| episodes.manage-comments | Kan opmerkingen van aflevering van podcast van #{id} maken of verwijderen. |
|
||||
| episodes.manage-publications | Kan afleveringen van podcast #{id} publiceren. |
|
||||
| episodes.manage-comments | Kan reacties op afleveringen van podcast #{id} maken of verwijderen. |
|
||||
|
||||
<!-- AUTH-PODCAST-PERMISSIONS-LIST:END -->
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ Redis poate fi adăugată pentru cache.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ Redis poate fi adăugată pentru cache.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ Redis poate fi adăugată pentru cache.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ Redis poate fi adăugată pentru cache.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ läggas till som cachehanterare.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ läggas till som cachehanterare.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -126,7 +102,7 @@ läggas till som cachehanterare.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -148,34 +124,50 @@ läggas till som cachehanterare.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variabelt namn | Type (`default`) | Standard |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | sträng | `odefinierad` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `odefinierad` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` 或 `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` eller `"ssl"`] | `"tls"` |
|
||||
| Variabelt namn | Type (`default`) | Standard |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | sträng | `odefinierad` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `odefinierad` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` 或 `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` eller `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Typ | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Typ | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -42,29 +42,20 @@ can be added as a cache handler.
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -89,21 +80,6 @@ can be added as a cache handler.
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -125,7 +101,7 @@ can be added as a cache handler.
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -146,34 +122,50 @@ can be added as a cache handler.
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| Variable name | Type (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` or `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` or `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| Variable name | Type | Default |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| Variable name | Type | Default |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
@ -41,29 +41,20 @@ Castopod 在其自动构建期间会将 3 个 Docker 映像推送到 Docker Hub
|
||||
image: castopod/app:latest
|
||||
container_name: "castopod-app"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
- castopod-media:/var/www/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
CP_BASEURL: "http://castopod.example.com"
|
||||
CP_BASEURL: "https://castopod.example.com"
|
||||
CP_ANALYTICS_SALT: changeme
|
||||
CP_CACHE_HANDLER: redis
|
||||
CP_REDIS_HOST: redis
|
||||
networks:
|
||||
- castopod-app
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
web-server:
|
||||
image: castopod/web-server:latest
|
||||
container_name: "castopod-web-server"
|
||||
volumes:
|
||||
- castopod-media:/var/www/html/media
|
||||
networks:
|
||||
- castopod-app
|
||||
ports:
|
||||
- 8080:80
|
||||
- 8000:8000
|
||||
restart: unless-stopped
|
||||
|
||||
mariadb:
|
||||
@ -88,21 +79,6 @@ Castopod 在其自动构建期间会将 3 个 Docker 映像推送到 Docker Hub
|
||||
networks:
|
||||
- castopod-app
|
||||
|
||||
# this container is optional
|
||||
# add this if you want to use the videoclips feature
|
||||
video-clipper:
|
||||
image: castopod/video-clipper:latest
|
||||
container_name: "castopod-video-clipper"
|
||||
volumes:
|
||||
- castopod-media:/opt/castopod/public/media
|
||||
environment:
|
||||
MYSQL_DATABASE: castopod
|
||||
MYSQL_USER: castopod
|
||||
MYSQL_PASSWORD: changeme
|
||||
networks:
|
||||
- castopod-db
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
castopod-media:
|
||||
castopod-db:
|
||||
@ -124,7 +100,7 @@ Castopod 在其自动构建期间会将 3 个 Docker 映像推送到 Docker Hub
|
||||
```
|
||||
#castopod
|
||||
castopod.example.com {
|
||||
reverse_proxy localhost:8080
|
||||
reverse_proxy localhost:8000
|
||||
}
|
||||
```
|
||||
|
||||
@ -145,34 +121,50 @@ Castopod 在其自动构建期间会将 3 个 Docker 映像推送到 Docker Hub
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
|
||||
- **castopod/app**
|
||||
- **castopod/castopod** and **castopod/app**
|
||||
|
||||
| 变量名称 | 类型 (`default`) | Default |
|
||||
| ---------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` 或 `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` 或 `"ssl"`] | `"tls"` |
|
||||
| 变量名称 | 类型 (`default`) | Default |
|
||||
| ------------------------------------- | ----------------------- | ---------------- |
|
||||
| **`CP_BASEURL`** | string | `undefined` |
|
||||
| **`CP_MEDIA_BASEURL`** | ?string | `CP_BASEURL` |
|
||||
| **`CP_ADMIN_GATEWAY`** | ?string | `"cp-admin"` |
|
||||
| **`CP_AUTH_GATEWAY`** | ?string | `"cp-auth"` |
|
||||
| **`CP_ANALYTICS_SALT`** | string | `undefined` |
|
||||
| **`CP_DATABASE_HOSTNAME`** | ?string | `"mariadb"` |
|
||||
| **`CP_DATABASE_NAME`** | ?string | `MYSQL_DATABASE` |
|
||||
| **`CP_DATABASE_USERNAME`** | ?string | `MYSQL_USER` |
|
||||
| **`CP_DATABASE_PASSWORD`** | ?string | `MYSQL_PASSWORD` |
|
||||
| **`CP_DATABASE_PREFIX`** | ?string | `"cp_"` |
|
||||
| **`CP_CACHE_HANDLER`** | [`"file"` 或 `"redis"`] | `"file"` |
|
||||
| **`CP_REDIS_HOST`** | ?string | `"localhost"` |
|
||||
| **`CP_REDIS_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_REDIS_PORT`** | ?number | `6379` |
|
||||
| **`CP_REDIS_DATABASE`** | ?number | `0` |
|
||||
| **`CP_EMAIL_SMTP_HOST`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_FROM`** | ?string | `undefined` |
|
||||
| **`CP_EMAIL_SMTP_USERNAME`** | ?string | `"localhost"` |
|
||||
| **`CP_EMAIL_SMTP_PASSWORD`** | ?string | `null` |
|
||||
| **`CP_EMAIL_SMTP_PORT`** | ?number | `25` |
|
||||
| **`CP_EMAIL_SMTP_CRYPTO`** | [`"tls"` 或 `"ssl"`] | `"tls"` |
|
||||
| **`CP_ENABLE_2FA`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_FILE_MANAGER`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_ENDPOINT`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_SECRET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_REGION`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_BUCKET`** | ?string | `undefined` |
|
||||
| **`CP_MEDIA_S3_PROTOCOL`** | ?number | `undefined` |
|
||||
| **`CP_MEDIA_S3_PATH_STYLE_ENDPOINT`** | ?boolean | `undefined` |
|
||||
| **`CP_MEDIA_S3_KEY_PREFIX`** | ?string | `undefined` |
|
||||
| **`CP_DISABLE_HTTPS`** | ?[`0` or `1`] | `undefined` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_PHP_MEMORY_LIMIT`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
||||
- **castopod/web-server**
|
||||
|
||||
| 变量名称 | Type | 默认 |
|
||||
| --------------------- | ------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| 变量名称 | Type | 默认 |
|
||||
| ---------------------- | --------------------- | ------- |
|
||||
| **`CP_APP_HOSTNAME`** | ?string | `"app"` |
|
||||
| **`CP_MAX_BODY_SIZE`** | ?number (with suffix) | `512M` |
|
||||
| **`CP_TIMEOUT`** | ?number | `900` |
|
||||
|
22
modules/Admin/Language/da/AboutCastopod.php
Normal file
22
modules/Admin/Language/da/AboutCastopod.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?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' => 'About Castopod',
|
||||
'host_name' => 'Host name',
|
||||
'version' => 'Castopod version',
|
||||
'php_version' => 'PHP version',
|
||||
'os' => 'Operating System',
|
||||
'languages' => 'Languages',
|
||||
'update_database' => 'Update database',
|
||||
'messages' => [
|
||||
'databaseUpdateSuccess' => 'Database is up to date!',
|
||||
],
|
||||
];
|
55
modules/Admin/Language/da/Breadcrumb.php
Normal file
55
modules/Admin/Language/da/Breadcrumb.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?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 [
|
||||
'label' => 'breadcrumb',
|
||||
config('Admin')
|
||||
->gateway => 'Home',
|
||||
'podcasts' => 'podcasts',
|
||||
'episodes' => 'episodes',
|
||||
'subscriptions' => 'subscriptions',
|
||||
'contributors' => 'contributors',
|
||||
'pages' => 'pages',
|
||||
'settings' => 'settings',
|
||||
'theme' => 'theme',
|
||||
'about' => 'about',
|
||||
'add' => 'add',
|
||||
'new' => 'new',
|
||||
'edit' => 'edit',
|
||||
'persons' => 'persons',
|
||||
'publish' => 'publish',
|
||||
'publish-edit' => 'edit publication',
|
||||
'publish-date-edit' => 'edit publication date',
|
||||
'unpublish' => 'unpublish',
|
||||
'delete' => 'delete',
|
||||
'remove' => 'remove',
|
||||
'fediverse' => 'fediverse',
|
||||
'blocked-actors' => 'blocked actors',
|
||||
'blocked-domains' => 'blocked domains',
|
||||
'users' => 'users',
|
||||
'my-account' => 'my account',
|
||||
'change-password' => 'change password',
|
||||
'import' => 'feed import',
|
||||
'platforms' => 'platforms',
|
||||
'social' => 'social networks',
|
||||
'funding' => 'funding',
|
||||
'analytics' => 'analytics',
|
||||
'locations' => 'locations',
|
||||
'webpages' => 'web pages',
|
||||
'unique-listeners' => 'unique listeners',
|
||||
'players' => 'players',
|
||||
'listening-time' => 'listening time',
|
||||
'time-periods' => 'time periods',
|
||||
'soundbites' => 'soundbites',
|
||||
'video-clips' => 'video clips',
|
||||
'embed' => 'embeddable player',
|
||||
'notifications' => 'notifications',
|
||||
'suspend' => 'suspend',
|
||||
];
|
41
modules/Admin/Language/da/Charts.php
Normal file
41
modules/Admin/Language/da/Charts.php
Normal file
@ -0,0 +1,41 @@
|
||||
<?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 [
|
||||
'by_service_weekly' => 'Episode downloads by service (for the past week)',
|
||||
'by_player_weekly' => 'Episode downloads by player (for the past week)',
|
||||
'by_player_yearly' => 'Episode downloads by player (for the past year)',
|
||||
'by_device_weekly' => 'Episode downloads by device (for the past week)',
|
||||
'by_os_weekly' => 'Episode downloads by O.S. (for the past week)',
|
||||
'podcast_by_region' => 'Episode downloads by region (for the past week)',
|
||||
'unique_daily_listeners' => 'Daily unique listeners',
|
||||
'unique_monthly_listeners' => 'Monthly unique listeners',
|
||||
'by_browser' => 'Web pages usage by browser (for the past week)',
|
||||
'podcast_by_day' => 'Episode daily downloads',
|
||||
'podcast_by_month' => 'Episode monthly downloads',
|
||||
'episode_by_day' => 'Episode daily downloads (first 60 days)',
|
||||
'episode_by_month' => 'Episode monthly downloads',
|
||||
'episodes_by_day' =>
|
||||
'5 latest episodes downloads (during their first 60 days)',
|
||||
'by_country_weekly' => 'Episode downloads by country (for the past week)',
|
||||
'by_country_yearly' => 'Episode downloads by country (for the past year)',
|
||||
'by_domain_weekly' => 'Web pages visits by source (for the past week)',
|
||||
'by_domain_yearly' => 'Web pages visits by source (for the past year)',
|
||||
'by_entry_page' => 'Web pages visits by landing page (for the past week)',
|
||||
'podcast_bots' => 'Bots (crawlers)',
|
||||
'daily_listening_time' => 'Daily cumulative listening time',
|
||||
'monthly_listening_time' => 'Monthly cumulative listening time',
|
||||
'by_weekday' => 'By week day (for the past 60 days)',
|
||||
'by_hour' => 'By time of day (for the past 60 days)',
|
||||
'podcast_by_bandwidth' => 'Daily used bandwidth (in MB)',
|
||||
'total_storage_by_month' => 'Monthly storage (in MB)',
|
||||
'total_bandwidth_by_month' => 'Monthly used bandwidth (in MB)',
|
||||
'total_bandwidth_by_month_limit' => 'Limited to {totalBandwidth} per month',
|
||||
];
|
51
modules/Admin/Language/da/Common.php
Normal file
51
modules/Admin/Language/da/Common.php
Normal file
@ -0,0 +1,51 @@
|
||||
<?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',
|
||||
'more' => 'More',
|
||||
'no_data' => 'No data found!',
|
||||
'close' => 'Close',
|
||||
'edit' => 'Edit',
|
||||
'copy' => 'Copy',
|
||||
'copied' => 'Copied!',
|
||||
'home' => 'Home',
|
||||
'explicit' => 'Explicit',
|
||||
'powered_by' => 'Powered by {castopod}',
|
||||
'actions' => 'Actions',
|
||||
'pageInfo' => 'Page {currentPage} out of {pageCount}',
|
||||
'go_back' => 'Go back',
|
||||
'forms' => [
|
||||
'editor' => [
|
||||
'write' => 'Write',
|
||||
'preview' => 'Preview',
|
||||
'help' => 'Powered by markdown',
|
||||
],
|
||||
'multiSelect' => [
|
||||
'selectText' => 'Press to select',
|
||||
'loadingText' => 'Loading…',
|
||||
'noResultsText' => 'No results found',
|
||||
'noChoicesText' => 'No choices to choose from',
|
||||
'maxItemText' => 'Cannot add more items',
|
||||
],
|
||||
'upload_file' => 'Upload a file',
|
||||
'remote_url' => 'Remote URL',
|
||||
],
|
||||
'play_episode_button' => [
|
||||
'play' => 'Play',
|
||||
'playing' => 'Playing',
|
||||
],
|
||||
'size_limit' => 'Size limit: {0}.',
|
||||
'choose_interact' => 'Choose how to interact',
|
||||
'view' => 'View',
|
||||
];
|
264
modules/Admin/Language/da/Countries.php
Normal file
264
modules/Admin/Language/da/Countries.php
Normal file
@ -0,0 +1,264 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* ISO 3166 country codes
|
||||
*
|
||||
* @copyright 2020 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'AD' => 'Andorra',
|
||||
'AE' => 'United Arab Emirates',
|
||||
'AF' => 'Afghanistan',
|
||||
'AG' => 'Antigua and Barbuda',
|
||||
'AI' => 'Anguilla',
|
||||
'AL' => 'Albania',
|
||||
'AM' => 'Armenia',
|
||||
'AO' => 'Angola',
|
||||
'AQ' => 'Antarctica',
|
||||
'AR' => 'Argentina',
|
||||
'AS' => 'American Samoa',
|
||||
'AT' => 'Austria',
|
||||
'AU' => 'Australia',
|
||||
'AW' => 'Aruba',
|
||||
'AX' => 'Åland Islands',
|
||||
'AZ' => 'Azerbaijan',
|
||||
'BA' => 'Bosnia and Herzegovina',
|
||||
'BB' => 'Barbados',
|
||||
'BD' => 'Bangladesh',
|
||||
'BE' => 'Belgium',
|
||||
'BF' => 'Burkina Faso',
|
||||
'BG' => 'Bulgaria',
|
||||
'BH' => 'Bahrain',
|
||||
'BI' => 'Burundi',
|
||||
'BJ' => 'Benin',
|
||||
'BL' => 'Saint Barthélemy',
|
||||
'BM' => 'Bermuda',
|
||||
'BN' => 'Brunei Darussalam',
|
||||
'BO' => 'Bolivia, Plurinational State of',
|
||||
'BQ' => 'Bonaire, Sint Eustatius and Saba',
|
||||
'BR' => 'Brazil',
|
||||
'BS' => 'Bahamas',
|
||||
'BT' => 'Bhutan',
|
||||
'BV' => 'Bouvet Island',
|
||||
'BW' => 'Botswana',
|
||||
'BY' => 'Belarus',
|
||||
'BZ' => 'Belize',
|
||||
'CA' => 'Canada',
|
||||
'CC' => 'Cocos (Keeling) Islands',
|
||||
'CD' => 'Congo, the Democratic Republic of the',
|
||||
'CF' => 'Central African Republic',
|
||||
'CG' => 'Congo',
|
||||
'CH' => 'Switzerland',
|
||||
'CI' => "Côte d'Ivoire",
|
||||
'CK' => 'Cook Islands',
|
||||
'CL' => 'Chile',
|
||||
'CM' => 'Cameroon',
|
||||
'CN' => 'China',
|
||||
'CO' => 'Colombia',
|
||||
'CR' => 'Costa Rica',
|
||||
'CU' => 'Cuba',
|
||||
'CV' => 'Cape Verde',
|
||||
'CW' => 'Curaçao',
|
||||
'CX' => 'Christmas Island',
|
||||
'CY' => 'Cyprus',
|
||||
'CZ' => 'Czech Republic',
|
||||
'DE' => 'Germany',
|
||||
'DJ' => 'Djibouti',
|
||||
'DK' => 'Denmark',
|
||||
'DM' => 'Dominica',
|
||||
'DO' => 'Dominican Republic',
|
||||
'DZ' => 'Algeria',
|
||||
'EC' => 'Ecuador',
|
||||
'EE' => 'Estonia',
|
||||
'EG' => 'Egypt',
|
||||
'EH' => 'Western Sahara',
|
||||
'ER' => 'Eritrea',
|
||||
'ES' => 'Spain',
|
||||
'ET' => 'Ethiopia',
|
||||
'FI' => 'Finland',
|
||||
'FJ' => 'Fiji',
|
||||
'FK' => 'Falkland Islands (Malvinas)',
|
||||
'FM' => 'Micronesia, Federated States of',
|
||||
'FO' => 'Faroe Islands',
|
||||
'FR' => 'France',
|
||||
'GA' => 'Gabon',
|
||||
'GB' => 'United Kingdom',
|
||||
'GD' => 'Grenada',
|
||||
'GE' => 'Georgia',
|
||||
'GF' => 'French Guiana',
|
||||
'GG' => 'Guernsey',
|
||||
'GH' => 'Ghana',
|
||||
'GI' => 'Gibraltar',
|
||||
'GL' => 'Greenland',
|
||||
'GM' => 'Gambia',
|
||||
'GN' => 'Guinea',
|
||||
'GP' => 'Guadeloupe',
|
||||
'GQ' => 'Equatorial Guinea',
|
||||
'GR' => 'Greece',
|
||||
'GS' => 'South Georgia and the South Sandwich Islands',
|
||||
'GT' => 'Guatemala',
|
||||
'GU' => 'Guam',
|
||||
'GW' => 'Guinea-Bissau',
|
||||
'GY' => 'Guyana',
|
||||
'HK' => 'Hong Kong',
|
||||
'HM' => 'Heard Island and McDonald Islands',
|
||||
'HN' => 'Honduras',
|
||||
'HR' => 'Croatia',
|
||||
'HT' => 'Haiti',
|
||||
'HU' => 'Hungary',
|
||||
'ID' => 'Indonesia',
|
||||
'IE' => 'Ireland',
|
||||
'IL' => 'Israel',
|
||||
'IM' => 'Isle of Man',
|
||||
'IN' => 'India',
|
||||
'IO' => 'British Indian Ocean Territory',
|
||||
'IQ' => 'Iraq',
|
||||
'IR' => 'Iran, Islamic Republic of',
|
||||
'IS' => 'Iceland',
|
||||
'IT' => 'Italy',
|
||||
'JE' => 'Jersey',
|
||||
'JM' => 'Jamaica',
|
||||
'JO' => 'Jordan',
|
||||
'JP' => 'Japan',
|
||||
'KE' => 'Kenya',
|
||||
'KG' => 'Kyrgyzstan',
|
||||
'KH' => 'Cambodia',
|
||||
'KI' => 'Kiribati',
|
||||
'KM' => 'Comoros',
|
||||
'KN' => 'Saint Kitts and Nevis',
|
||||
'KP' => "Korea, Democratic People's Republic of",
|
||||
'KR' => 'Korea, Republic of',
|
||||
'KW' => 'Kuwait',
|
||||
'KY' => 'Cayman Islands',
|
||||
'KZ' => 'Kazakhstan',
|
||||
'LA' => "Lao People's Democratic Republic",
|
||||
'LB' => 'Lebanon',
|
||||
'LC' => 'Saint Lucia',
|
||||
'LI' => 'Liechtenstein',
|
||||
'LK' => 'Sri Lanka',
|
||||
'LR' => 'Liberia',
|
||||
'LS' => 'Lesotho',
|
||||
'LT' => 'Lithuania',
|
||||
'LU' => 'Luxembourg',
|
||||
'LV' => 'Latvia',
|
||||
'LY' => 'Libya',
|
||||
'MA' => 'Morocco',
|
||||
'MC' => 'Monaco',
|
||||
'MD' => 'Moldova, Republic of',
|
||||
'ME' => 'Montenegro',
|
||||
'MF' => 'Saint Martin (French part)',
|
||||
'MG' => 'Madagascar',
|
||||
'MH' => 'Marshall Islands',
|
||||
'MK' => 'Macedonia, the Former Yugoslav Republic of',
|
||||
'ML' => 'Mali',
|
||||
'MM' => 'Myanmar',
|
||||
'MN' => 'Mongolia',
|
||||
'MO' => 'Macao',
|
||||
'MP' => 'Northern Mariana Islands',
|
||||
'MQ' => 'Martinique',
|
||||
'MR' => 'Mauritania',
|
||||
'MS' => 'Montserrat',
|
||||
'MT' => 'Malta',
|
||||
'MU' => 'Mauritius',
|
||||
'MV' => 'Maldives',
|
||||
'MW' => 'Malawi',
|
||||
'MX' => 'Mexico',
|
||||
'MY' => 'Malaysia',
|
||||
'MZ' => 'Mozambique',
|
||||
'N/A' => 'Not Applicable (local IP…)',
|
||||
'NA' => 'Namibia',
|
||||
'NC' => 'New Caledonia',
|
||||
'NE' => 'Niger',
|
||||
'NF' => 'Norfolk Island',
|
||||
'NG' => 'Nigeria',
|
||||
'NI' => 'Nicaragua',
|
||||
'NL' => 'Netherlands',
|
||||
'NO' => 'Norway',
|
||||
'NP' => 'Nepal',
|
||||
'NR' => 'Nauru',
|
||||
'NU' => 'Niue',
|
||||
'NZ' => 'New Zealand',
|
||||
'OM' => 'Oman',
|
||||
'PA' => 'Panama',
|
||||
'PE' => 'Peru',
|
||||
'PF' => 'French Polynesia',
|
||||
'PG' => 'Papua New Guinea',
|
||||
'PH' => 'Philippines',
|
||||
'PK' => 'Pakistan',
|
||||
'PL' => 'Poland',
|
||||
'PM' => 'Saint Pierre and Miquelon',
|
||||
'PN' => 'Pitcairn',
|
||||
'PR' => 'Puerto Rico',
|
||||
'PS' => 'Palestine, State of',
|
||||
'PT' => 'Portugal',
|
||||
'PW' => 'Palau',
|
||||
'PY' => 'Paraguay',
|
||||
'QA' => 'Qatar',
|
||||
'RE' => 'Réunion',
|
||||
'RO' => 'Romania',
|
||||
'RS' => 'Serbia',
|
||||
'RU' => 'Russian Federation',
|
||||
'RW' => 'Rwanda',
|
||||
'SA' => 'Saudi Arabia',
|
||||
'SB' => 'Solomon Islands',
|
||||
'SC' => 'Seychelles',
|
||||
'SD' => 'Sudan',
|
||||
'SE' => 'Sweden',
|
||||
'SG' => 'Singapore',
|
||||
'SH' => 'Saint Helena, Ascension and Tristan da Cunha',
|
||||
'SI' => 'Slovenia',
|
||||
'SJ' => 'Svalbard and Jan Mayen',
|
||||
'SK' => 'Slovakia',
|
||||
'SL' => 'Sierra Leone',
|
||||
'SM' => 'San Marino',
|
||||
'SN' => 'Senegal',
|
||||
'SO' => 'Somalia',
|
||||
'SR' => 'Suriname',
|
||||
'SS' => 'South Sudan',
|
||||
'ST' => 'Sao Tome and Principe',
|
||||
'SV' => 'El Salvador',
|
||||
'SX' => 'Sint Maarten (Dutch part)',
|
||||
'SY' => 'Syrian Arab Republic',
|
||||
'SZ' => 'Swaziland',
|
||||
'TC' => 'Turks and Caicos Islands',
|
||||
'TD' => 'Chad',
|
||||
'TF' => 'French Southern Territories',
|
||||
'TG' => 'Togo',
|
||||
'TH' => 'Thailand',
|
||||
'TJ' => 'Tajikistan',
|
||||
'TK' => 'Tokelau',
|
||||
'TL' => 'Timor-Leste',
|
||||
'TM' => 'Turkmenistan',
|
||||
'TN' => 'Tunisia',
|
||||
'TO' => 'Tonga',
|
||||
'TR' => 'Turkey',
|
||||
'TT' => 'Trinidad and Tobago',
|
||||
'TV' => 'Tuvalu',
|
||||
'TW' => 'Taiwan, Province of China',
|
||||
'TZ' => 'Tanzania, United Republic of',
|
||||
'UA' => 'Ukraine',
|
||||
'UG' => 'Uganda',
|
||||
'UM' => 'United States Minor Outlying Islands',
|
||||
'US' => 'United States',
|
||||
'UY' => 'Uruguay',
|
||||
'UZ' => 'Uzbekistan',
|
||||
'VA' => 'Holy See (Vatican City State)',
|
||||
'VC' => 'Saint Vincent and the Grenadines',
|
||||
'VE' => 'Venezuela, Bolivarian Republic of',
|
||||
'VG' => 'Virgin Islands, British',
|
||||
'VI' => 'Virgin Islands, U.S.',
|
||||
'VN' => 'Viet Nam',
|
||||
'VU' => 'Vanuatu',
|
||||
'WF' => 'Wallis and Futuna',
|
||||
'WS' => 'Samoa',
|
||||
'YE' => 'Yemen',
|
||||
'YT' => 'Mayotte',
|
||||
'ZA' => 'South Africa',
|
||||
'ZM' => 'Zambia',
|
||||
'ZW' => 'Zimbabwe',
|
||||
];
|
28
modules/Admin/Language/da/Dashboard.php
Normal file
28
modules/Admin/Language/da/Dashboard.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?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 [
|
||||
'home' => 'Admin dashboard',
|
||||
'welcome_message' => 'Welcome to the admin area!',
|
||||
'podcasts' => [
|
||||
'title' => 'Podcasts',
|
||||
'not_found' => 'No published podcast',
|
||||
'last_published' => 'Last published on {lastPublicationDate}',
|
||||
],
|
||||
'episodes' => [
|
||||
'title' => 'Episodes',
|
||||
'not_found' => 'No published episode',
|
||||
'last_published' => 'Last published on {lastPublicationDate}',
|
||||
],
|
||||
'storage' => [
|
||||
'title' => 'Storage',
|
||||
'subtitle' => '{totalUploaded} out of {totalStorage}',
|
||||
],
|
||||
];
|
214
modules/Admin/Language/da/Episode.php
Normal file
214
modules/Admin/Language/da/Episode.php
Normal file
@ -0,0 +1,214 @@
|
||||
<?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}',
|
||||
'number_of_comments' => '{numberOfComments, plural,
|
||||
one {# comment}
|
||||
other {# comments}
|
||||
}',
|
||||
'all_podcast_episodes' => 'All podcast episodes',
|
||||
'back_to_podcast' => 'Go back to podcast',
|
||||
'edit' => 'Edit',
|
||||
'publish' => 'Publish',
|
||||
'publish_edit' => 'Edit publication',
|
||||
'publish_date_edit' => 'Edit publication date',
|
||||
'unpublish' => 'Unpublish',
|
||||
'publish_error' => 'Episode is already published.',
|
||||
'publish_edit_error' => 'Episode is already published.',
|
||||
'publish_cancel_error' => 'Episode is already published.',
|
||||
'publish_date_edit_error' => 'Episode has not been published yet, you cannot edit its publication date.',
|
||||
'publish_date_edit_future_error' => 'Episode\'s publication date can only be set to a past date! If you would like to reschedule it, unpublish it first.',
|
||||
'publish_date_edit_success' => 'Episode\'s publication date has been updated successfully!',
|
||||
'unpublish_error' => 'Episode is not published.',
|
||||
'delete' => 'Delete',
|
||||
'go_to_page' => 'Go to page',
|
||||
'create' => 'Add an episode',
|
||||
'publication_status' => [
|
||||
'published' => 'Published',
|
||||
'with_podcast' => 'Published',
|
||||
'scheduled' => 'Scheduled',
|
||||
'not_published' => 'Not published',
|
||||
],
|
||||
'with_podcast_hint' => 'To be published at the same time as the podcast',
|
||||
'list' => [
|
||||
'search' => [
|
||||
'placeholder' => 'Search for an episode',
|
||||
'clear' => 'Clear search',
|
||||
'submit' => 'Search',
|
||||
],
|
||||
'number_of_episodes' => '{numberOfEpisodes, plural,
|
||||
one {# episode}
|
||||
other {# episodes}
|
||||
}',
|
||||
'episode' => 'Episode',
|
||||
'visibility' => 'Visibility',
|
||||
'downloads' => 'Downloads',
|
||||
'comments' => 'Comments',
|
||||
'actions' => 'Actions',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' => 'Episode has been successfully created!',
|
||||
'editSuccess' => 'Episode has been successfully updated!',
|
||||
'publishSuccess' => '{publication_status, select,
|
||||
published {Episode successfully published!}
|
||||
scheduled {Episode publication successfully scheduled!}
|
||||
with_podcast {This episode will be published at the same time as the podcast.}
|
||||
other {This episode is not published.}
|
||||
}',
|
||||
'publishCancelSuccess' => 'Episode publication successfully cancelled!',
|
||||
'unpublishBeforeDeleteTip' => 'You must unpublish the episode before deleting it.',
|
||||
'scheduleDateError' => 'Schedule date must be set!',
|
||||
'deletePublishedEpisodeError' => 'Please unpublish the episode before deleting it.',
|
||||
'deleteSuccess' => 'Episode successfully deleted!',
|
||||
'deleteError' => 'Failed to delete episode {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteFileError' => 'Failed to delete {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
} file {file_path}. You may manually remove it from your disk.',
|
||||
'sameSlugError' => 'An episode with the chosen slug already exists.',
|
||||
],
|
||||
'form' => [
|
||||
'file_size_error' =>
|
||||
'Your file size is too big! Max size is {0}. Increase the `memory_limit`, `upload_max_filesize` and `post_max_size` values in your php configuration file then restart your web server to upload your file.',
|
||||
'audio_file' => 'Audio file',
|
||||
'audio_file_hint' => 'Choose an .mp3 or .m4a audio file.',
|
||||
'info_section_title' => 'Episode info',
|
||||
'cover' => 'Episode cover',
|
||||
'cover_hint' =>
|
||||
'If you do not set a cover, the podcast cover will be used instead.',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'title' => 'Title',
|
||||
'title_hint' =>
|
||||
'Should contain a clear and concise episode name. Do not specify the episode or season numbers here.',
|
||||
'permalink' => 'Permalink',
|
||||
'season_number' => 'Season',
|
||||
'episode_number' => 'Episode',
|
||||
'type' => [
|
||||
'label' => 'Type',
|
||||
'full' => 'Full',
|
||||
'full_hint' => 'Complete content (the episode)',
|
||||
'trailer' => 'Trailer',
|
||||
'trailer_hint' => 'Short, promotional piece of content that represents a preview of the current show',
|
||||
'bonus' => 'Bonus',
|
||||
'bonus_hint' => 'Extra content for the show (for example, behind the scenes info or interviews with the cast) or cross-promotional content for another show',
|
||||
],
|
||||
'premium_title' => 'Premium',
|
||||
'premium' => 'Episode must be accessible to premium subscribers only',
|
||||
'parental_advisory' => [
|
||||
'label' => 'Parental advisory',
|
||||
'hint' => 'Does the episode contain explicit content?',
|
||||
'undefined' => 'undefined',
|
||||
'clean' => 'Clean',
|
||||
'explicit' => 'Explicit',
|
||||
],
|
||||
'show_notes_section_title' => 'Show notes',
|
||||
'show_notes_section_subtitle' =>
|
||||
'Up to 4000 characters, be clear and concise. Show notes help potential listeners in finding the episode.',
|
||||
'description' => 'Description',
|
||||
'description_footer' => 'Description footer',
|
||||
'description_footer_hint' =>
|
||||
'This text is added at the end of each episode description, it is a good place to input your social links for example.',
|
||||
'additional_files_section_title' => 'Additional files',
|
||||
'additional_files_section_subtitle' =>
|
||||
'These files may be used by other platforms to provide better experience to your audience. See the {podcastNamespaceLink} for more information.',
|
||||
'location_section_title' => 'Location',
|
||||
'location_section_subtitle' => 'What place is this episode about?',
|
||||
'location_name' => 'Location name or address',
|
||||
'location_name_hint' => 'This can be a real or fictional location',
|
||||
'transcript' => 'Transcript (subtitles / closed captions)',
|
||||
'transcript_hint' => 'Only .srt are allowed.',
|
||||
'transcript_download' => 'Download transcript',
|
||||
'transcript_file' => 'Transcript file (.srt)',
|
||||
'transcript_remote_url' => 'Remote url for transcript',
|
||||
'transcript_file_delete' => 'Delete transcript file',
|
||||
'chapters' => 'Chapters',
|
||||
'chapters_hint' => 'File must be in JSON Chapters format.',
|
||||
'chapters_download' => 'Download chapters',
|
||||
'chapters_file' => 'Chapters file',
|
||||
'chapters_remote_url' => 'Remote url for chapters file',
|
||||
'chapters_file_delete' => 'Delete chapters file',
|
||||
'advanced_section_title' => 'Advanced Parameters',
|
||||
'advanced_section_subtitle' =>
|
||||
'If you need RSS tags that Castopod does not handle, set them here.',
|
||||
'custom_rss' => 'Custom RSS tags for the episode',
|
||||
'custom_rss_hint' => 'This will be injected within the ❬item❭ tag.',
|
||||
'block' => 'Episode should be hidden from public catalogues',
|
||||
'block_hint' =>
|
||||
'The episode show or hide status: toggling this on prevents the episode from appearing in Apple Podcasts, Google Podcasts, and any third party apps that pull shows from these directories. (Not guaranteed)',
|
||||
'submit_create' => 'Create episode',
|
||||
'submit_edit' => 'Save episode',
|
||||
],
|
||||
'publish_form' => [
|
||||
'back_to_episode_dashboard' => 'Back to episode dashboard',
|
||||
'post' => 'Your announcement post',
|
||||
'post_hint' =>
|
||||
"Write a message to announce the publication of your episode. The message will be broadcasted to all your followers in the fediverse and be featured in your podcast's homepage.",
|
||||
'message_placeholder' => 'Write your message…',
|
||||
'publication_date' => 'Publication date',
|
||||
'publication_method' => [
|
||||
'now' => 'Now',
|
||||
'schedule' => 'Schedule',
|
||||
'with_podcast' => 'Publish alongside podcast',
|
||||
],
|
||||
'scheduled_publication_date' => 'Scheduled publication date',
|
||||
'scheduled_publication_date_clear' => 'Clear publication date',
|
||||
'scheduled_publication_date_hint' =>
|
||||
'You can schedule the episode release by setting a future publication date. This field must be formatted as YYYY-MM-DD HH:mm',
|
||||
'submit' => 'Publish',
|
||||
'submit_edit' => 'Edit publication',
|
||||
'cancel_publication' => 'Cancel publication',
|
||||
'message_warning' => 'You did not write a message for your announcement post!',
|
||||
'message_warning_hint' => 'Having a message increases social engagement, resulting in a better visibility for your episode.',
|
||||
'message_warning_submit' => 'Publish anyways',
|
||||
],
|
||||
'publish_date_edit_form' => [
|
||||
'new_publication_date' => 'New publication date',
|
||||
'new_publication_date_hint' => 'Must be set to a past date.',
|
||||
'submit' => 'Edit publication date',
|
||||
],
|
||||
'unpublish_form' => [
|
||||
'disclaimer' =>
|
||||
"Unpublishing the episode will delete all the comments and posts associated with it and remove it from the podcast's RSS feed.",
|
||||
'understand' => 'I understand, I want to unpublish the episode',
|
||||
'submit' => 'Unpublish',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the episode will delete all media files, comments, video clips and soundbites associated with it.",
|
||||
'understand' => 'I understand, I want to delete the episode',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'embed' => [
|
||||
'title' => 'Embeddable player',
|
||||
'label' =>
|
||||
'Pick a theme color, copy the embeddable player to clipboard, then paste it on your website.',
|
||||
'clipboard_iframe' => 'Copy embeddable player to clipboard',
|
||||
'clipboard_url' => 'Copy address to clipboard',
|
||||
'dark' => 'Dark',
|
||||
'dark-transparent' => 'Dark transparent',
|
||||
'light' => 'Light',
|
||||
'light-transparent' => 'Light transparent',
|
||||
],
|
||||
];
|
23
modules/Admin/Language/da/EpisodeNavigation.php
Normal file
23
modules/Admin/Language/da/EpisodeNavigation.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?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 [
|
||||
'go_to_page' => 'View episode page',
|
||||
'dashboard' => 'Episode dashboard',
|
||||
'episode-view' => 'Home',
|
||||
'episode-edit' => 'Edit episode',
|
||||
'episode-persons-manage' => 'Manage persons',
|
||||
'embed-add' => 'Embeddable player',
|
||||
'clips' => 'Clips',
|
||||
'video-clips-list' => 'Video clips',
|
||||
'video-clips-create' => 'New video clip',
|
||||
'soundbites-list' => 'Soundbites',
|
||||
'soundbites-create' => 'New soundbite',
|
||||
];
|
32
modules/Admin/Language/da/Fediverse.php
Normal file
32
modules/Admin/Language/da/Fediverse.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?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 [
|
||||
'messages' => [
|
||||
'actorNotFound' => 'The account could not be found!',
|
||||
'blockActorSuccess' => '{actor} has been blocked!',
|
||||
'unblockActorSuccess' => 'Actor has been unblocked!',
|
||||
'blockDomainSuccess' => '{domain} has been blocked!',
|
||||
'unblockDomainSuccess' => '{domain} has been unblocked!',
|
||||
],
|
||||
'blocked_actors' => 'Blocked accounts',
|
||||
'blocked_domains' => 'Blocked domains',
|
||||
'block_lists_form' => [
|
||||
'handle' => 'Account handle',
|
||||
'handle_hint' => 'Input @username@domain account.',
|
||||
'domain' => 'Domain name',
|
||||
'submit' => 'Block!',
|
||||
],
|
||||
'list' => [
|
||||
'actor' => 'Account',
|
||||
'domain' => 'Domain name',
|
||||
'unblock' => 'Unblock',
|
||||
],
|
||||
];
|
14
modules/Admin/Language/da/Home.php
Normal file
14
modules/Admin/Language/da/Home.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?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',
|
||||
'no_podcast' => 'No podcast found',
|
||||
];
|
61
modules/Admin/Language/da/Install.php
Normal file
61
modules/Admin/Language/da/Install.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?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 [
|
||||
'manual_config' => 'Manual configuration',
|
||||
'manual_config_subtitle' =>
|
||||
'Create a `.env` file with your settings and refresh the page to continue installation.',
|
||||
'form' => [
|
||||
'instance_config' => 'Instance configuration',
|
||||
'hostname' => 'Hostname',
|
||||
'media_base_url' => 'Media base URL',
|
||||
'media_base_url_hint' =>
|
||||
'If you use a CDN and/or an external analytics service, you may set them here.',
|
||||
'admin_gateway' => 'Admin gateway',
|
||||
'admin_gateway_hint' =>
|
||||
'The route to access the admin area (eg. https://example.com/cp-admin). It is set by default as cp-admin, we recommend you change it for security reasons.',
|
||||
'auth_gateway' => 'Auth gateway',
|
||||
'auth_gateway_hint' =>
|
||||
'The route to access the authentication pages (eg. https://example.com/cp-auth). It is set by default as cp-auth, we recommend you change it for security reasons.',
|
||||
'database_config' => 'Database configuration',
|
||||
'database_config_hint' =>
|
||||
'Castopod needs to connect to your MySQL (or MariaDB) database. If you do not have these required info, please contact your server administrator.',
|
||||
'db_hostname' => 'Database hostname',
|
||||
'db_name' => 'Database name',
|
||||
'db_username' => 'Database username',
|
||||
'db_password' => 'Database password',
|
||||
'db_prefix' => 'Database prefix',
|
||||
'db_prefix_hint' =>
|
||||
"The prefix of the Castopod table names, leave as is if you don't know what it means.",
|
||||
'cache_config' => 'Cache configuration',
|
||||
'cache_config_hint' =>
|
||||
'Choose your preferred cache handler. Leave it as the default value if you have no clue what it means.',
|
||||
'cache_handler' => 'Cache handler',
|
||||
'cacheHandlerOptions' => [
|
||||
'file' => 'File',
|
||||
'redis' => 'Redis',
|
||||
'predis' => 'Predis',
|
||||
],
|
||||
'next' => 'Next',
|
||||
'submit' => 'Finish install',
|
||||
'create_superadmin' => 'Create your superadmin account',
|
||||
'email' => 'Email',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuperAdminSuccess' =>
|
||||
'Your superadmin account has been created successfully. Login to start podcasting!',
|
||||
'databaseConnectError' =>
|
||||
'Castopod could not connect to your database. Edit your database configuration and try again.',
|
||||
'writeError' =>
|
||||
"Couldn't create/write the `.env` file. You must create it manually by following the `.env.example` file template in the Castopod package.",
|
||||
],
|
||||
];
|
42
modules/Admin/Language/da/Navigation.php
Normal file
42
modules/Admin/Language/da/Navigation.php
Normal file
@ -0,0 +1,42 @@
|
||||
<?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 [
|
||||
'toggle_sidebar' => 'Toggle sidebar',
|
||||
'go_to_website' => 'Go to website',
|
||||
'go_to_admin' => 'Go to admin',
|
||||
'dashboard' => 'Dashboard',
|
||||
'admin' => 'Home',
|
||||
'podcasts' => 'Podcasts',
|
||||
'podcast-list' => 'All podcasts',
|
||||
'podcast-create' => 'New podcast',
|
||||
'podcast-import' => 'Import a podcast',
|
||||
'persons' => 'Persons',
|
||||
'person-list' => 'All persons',
|
||||
'person-create' => 'New person',
|
||||
'fediverse' => 'Fediverse',
|
||||
'fediverse-blocked-actors' => 'Blocked accounts',
|
||||
'fediverse-blocked-domains' => 'Blocked domains',
|
||||
'users' => 'Users',
|
||||
'user-list' => 'All users',
|
||||
'user-create' => 'New user',
|
||||
'pages' => 'Pages',
|
||||
'page-list' => 'All pages',
|
||||
'page-create' => 'New Page',
|
||||
'settings' => 'Settings',
|
||||
'settings-general' => 'General',
|
||||
'settings-theme' => 'Theme',
|
||||
'about' => 'About',
|
||||
'account' => [
|
||||
'my-account' => 'My account',
|
||||
'change-password' => 'Change password',
|
||||
'logout' => 'Logout',
|
||||
],
|
||||
];
|
19
modules/Admin/Language/da/Notifications.php
Normal file
19
modules/Admin/Language/da/Notifications.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?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' => 'Notifications',
|
||||
'reply' => '{actor_username} replied to your post',
|
||||
'favourite' => '{actor_username} favourited your post',
|
||||
'reblog' => '{actor_username} shared your post',
|
||||
'follow' => '{actor_username} started following you',
|
||||
'no_notifications' => 'No notifications',
|
||||
'mark_all_as_read' => 'Mark all as read',
|
||||
];
|
30
modules/Admin/Language/da/Page.php
Normal file
30
modules/Admin/Language/da/Page.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?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',
|
||||
'page' => 'Page',
|
||||
'all_pages' => 'All pages',
|
||||
'create' => 'New page',
|
||||
'go_to_page' => 'Go to page',
|
||||
'edit' => 'Edit page',
|
||||
'delete' => 'Delete page',
|
||||
'form' => [
|
||||
'title' => 'Title',
|
||||
'permalink' => 'Permalink',
|
||||
'content' => 'Content',
|
||||
'submit_create' => 'Create page',
|
||||
'submit_edit' => 'Save',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' => 'The page “{pageTitle}” was created successfully!',
|
||||
'editSuccess' => 'The page was successfully updated!',
|
||||
],
|
||||
];
|
21
modules/Admin/Language/da/Pager.php
Normal file
21
modules/Admin/Language/da/Pager.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?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 [
|
||||
'pageNavigation' => 'Page navigation',
|
||||
'first' => 'First',
|
||||
'previous' => 'Previous',
|
||||
'next' => 'Next',
|
||||
'last' => 'Last',
|
||||
'older' => 'Older',
|
||||
'newer' => 'Newer',
|
||||
'invalidTemplate' => '{0} is not a valid Pager template.',
|
||||
'invalidPaginationGroup' => '{0} is not a valid Pagination group.',
|
||||
];
|
65
modules/Admin/Language/da/Person.php
Normal file
65
modules/Admin/Language/da/Person.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?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 [
|
||||
'persons' => 'Persons',
|
||||
'all_persons' => 'All persons',
|
||||
'no_person' => 'Nobody found!',
|
||||
'create' => 'Create a person',
|
||||
'view' => 'View person',
|
||||
'edit' => 'Edit person',
|
||||
'delete' => 'Delete person',
|
||||
'messages' => [
|
||||
'createSuccess' => 'Person has been successfully created!',
|
||||
'editSuccess' => 'Person has been successfully updated!',
|
||||
'deleteSuccess' => 'Person has been removed!',
|
||||
],
|
||||
'form' => [
|
||||
'avatar' => 'Avatar',
|
||||
'avatar_size_hint' =>
|
||||
'Avatar must be squared and at least 400px wide and tall.',
|
||||
'full_name' => 'Full name',
|
||||
'full_name_hint' => 'This is the full name or alias of the person.',
|
||||
'unique_name' => 'Unique name',
|
||||
'unique_name_hint' => 'Used for URLs',
|
||||
'information_url' => 'Information URL',
|
||||
'information_url_hint' =>
|
||||
'Url to a relevant resource of information about the person, such as a homepage or third-party profile platform.',
|
||||
'submit_create' => 'Create person',
|
||||
'submit_edit' => 'Save person',
|
||||
],
|
||||
'podcast_form' => [
|
||||
'title' => 'Manage persons',
|
||||
'add_section_title' => 'Add persons to this podcast',
|
||||
'add_section_subtitle' => 'You may pick several persons and roles.',
|
||||
'persons' => 'Persons',
|
||||
'persons_hint' =>
|
||||
'You may select one or several persons with the same roles. You need to create the persons first.',
|
||||
'roles' => 'Roles',
|
||||
'roles_hint' =>
|
||||
'You may select none, one or several roles for a person.',
|
||||
'submit_add' => 'Add person(s)',
|
||||
'remove' => 'Remove',
|
||||
],
|
||||
'episode_form' => [
|
||||
'title' => 'Manage persons',
|
||||
'add_section_title' => 'Add persons to this episode',
|
||||
'add_section_subtitle' => 'You may pick several persons and roles.',
|
||||
'persons' => 'Persons',
|
||||
'persons_hint' =>
|
||||
'You may select one or several persons with the same roles. You need to create the persons first.',
|
||||
'roles' => 'Roles',
|
||||
'roles_hint' =>
|
||||
'You may select none, one or several roles for a person.',
|
||||
'submit_add' => 'Add person(s)',
|
||||
'remove' => 'Remove',
|
||||
],
|
||||
'credits' => 'Credits',
|
||||
];
|
30
modules/Admin/Language/da/Platforms.php
Normal file
30
modules/Admin/Language/da/Platforms.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?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' => 'Platforms',
|
||||
'home_url' => 'Go to {platformName} website',
|
||||
'submit_url' => 'Submit your podcast on {platformName}',
|
||||
'visible' => 'Display in podcast homepage?',
|
||||
'on_embed' => 'Display on embeddable player?',
|
||||
'remove' => 'Remove {platformName}',
|
||||
'submit' => 'Save',
|
||||
'messages' => [
|
||||
'updateSuccess' => 'Platform links have been successfully updated!',
|
||||
'removeLinkSuccess' => 'The platform link has been removed.',
|
||||
'removeLinkError' =>
|
||||
'The platform link could not be removed. Try again.',
|
||||
],
|
||||
'description' => [
|
||||
'podcasting' => 'The podcast ID on this platform',
|
||||
'social' => 'The podcast account ID on this platform',
|
||||
'funding' => 'Call to action message',
|
||||
],
|
||||
];
|
314
modules/Admin/Language/da/Podcast.php
Normal file
314
modules/Admin/Language/da/Podcast.php
Normal file
@ -0,0 +1,314 @@
|
||||
<?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',
|
||||
'no_podcast' => 'No podcast found!',
|
||||
'create' => 'Create podcast',
|
||||
'import' => 'Import podcast',
|
||||
'new_episode' => 'New Episode',
|
||||
'view' => 'View podcast',
|
||||
'edit' => 'Edit podcast',
|
||||
'publish' => 'Publish podcast',
|
||||
'publish_edit' => 'Edit publication',
|
||||
'delete' => 'Delete podcast',
|
||||
'see_episodes' => 'See episodes',
|
||||
'see_contributors' => 'See contributors',
|
||||
'go_to_page' => 'Go to page',
|
||||
'latest_episodes' => 'Latest episodes',
|
||||
'see_all_episodes' => 'See all episodes',
|
||||
'draft' => 'Draft',
|
||||
'messages' => [
|
||||
'createSuccess' => 'Podcast successfully created!',
|
||||
'editSuccess' => 'Podcast has been successfully updated!',
|
||||
'importSuccess' => 'Podcast has been successfully imported!',
|
||||
'deleteSuccess' => 'Podcast @{podcast_handle} successfully deleted!',
|
||||
'deletePodcastMediaError' => 'Failed to delete podcast {type, select,
|
||||
cover {cover}
|
||||
banner {banner}
|
||||
other {media}
|
||||
}.',
|
||||
'deleteEpisodeMediaError' => 'Failed to delete podcast episode {episode_slug} {type, select,
|
||||
transcript {transcript}
|
||||
chapters {chapters}
|
||||
image {cover}
|
||||
audio {audio}
|
||||
other {media}
|
||||
}.',
|
||||
'deletePodcastMediaFolderError' => 'Failed to delete podcast media folder {folder_path}. You may manually remove it from your disk.',
|
||||
'podcastFeedUpdateSuccess' => 'Successful update: {number_of_new_episodes, plural,
|
||||
one {# episode was}
|
||||
other {# episodes were}
|
||||
} added to the podcast!',
|
||||
'podcastFeedUpToDate' => 'Podcast is already up to date.',
|
||||
'podcastNotImported' => 'Podcast could not be updated as it was not imported.',
|
||||
'publishError' => 'This podcast is either already published or scheduled for publication.',
|
||||
'publishEditError' => 'This podcast is not scheduled for publication.',
|
||||
'publishCancelSuccess' => 'Podcast publication successfully cancelled!',
|
||||
'scheduleDateError' => 'Schedule date must be set!',
|
||||
],
|
||||
'form' => [
|
||||
'identity_section_title' => 'Podcast identity',
|
||||
'identity_section_subtitle' => 'These fields allow you to get noticed.',
|
||||
'cover' => 'Podcast cover',
|
||||
'cover_size_hint' => 'Cover must be squared and at least 1400px wide and tall.',
|
||||
'banner' => 'Podcast banner',
|
||||
'banner_size_hint' => 'Banner must have a 3:1 ratio and be at least 1500px wide.',
|
||||
'banner_delete' => 'Delete podcast banner',
|
||||
'title' => 'Title',
|
||||
'handle' => 'Handle',
|
||||
'handle_hint' =>
|
||||
'Used to identify the podcast. Uppercase, lowercase, numbers and underscores are accepted.',
|
||||
'type' => [
|
||||
'label' => 'Type',
|
||||
'episodic' => 'Episodic',
|
||||
'episodic_hint' => 'If episodes are intended to be consumed without any specific order. Newest episodes will be presented first.',
|
||||
'serial' => 'Serial',
|
||||
'serial_hint' => 'If episodes are intended to be consumed in sequential order. The oldest episodes will be presented first.',
|
||||
],
|
||||
'description' => 'Description',
|
||||
'classification_section_title' => 'Classification',
|
||||
'classification_section_subtitle' =>
|
||||
'These fields will impact your audience and competition.',
|
||||
'language' => 'Language',
|
||||
'category' => 'Category',
|
||||
'category_placeholder' => 'Select a category…',
|
||||
'other_categories' => 'Other categories',
|
||||
'parental_advisory' => [
|
||||
'label' => 'Parental advisory',
|
||||
'hint' => 'Does it contain explicit content?',
|
||||
'undefined' => 'undefined',
|
||||
'clean' => 'Clean',
|
||||
'explicit' => 'Explicit',
|
||||
],
|
||||
'author_section_title' => 'Author',
|
||||
'author_section_subtitle' => 'Who is managing the podcast?',
|
||||
'owner_name' => 'Owner name',
|
||||
'owner_name_hint' =>
|
||||
'For administrative use only. Visible in the public RSS feed.',
|
||||
'owner_email' => 'Owner email',
|
||||
'owner_email_hint' =>
|
||||
'Will be used by most platforms to verify the podcast ownership. Visible in the public RSS feed.',
|
||||
'publisher' => 'Publisher',
|
||||
'publisher_hint' =>
|
||||
'The group responsible for creating the show. Often refers to the parent company or network of a podcast. This field is sometimes labeled as ’Author’.',
|
||||
'copyright' => 'Copyright',
|
||||
'location_section_title' => 'Location',
|
||||
'location_section_subtitle' => 'What place is this podcast about?',
|
||||
'location_name' => 'Location name or address',
|
||||
'location_name_hint' => 'This can be a real place or fictional',
|
||||
'monetization_section_title' => 'Monetization',
|
||||
'monetization_section_subtitle' =>
|
||||
'Earn money thanks to your audience.',
|
||||
'premium' => 'Premium',
|
||||
'premium_by_default' => 'Episodes must be set as premium by default',
|
||||
'premium_by_default_hint' => 'Podcast episodes will be marked as premium by default. You can still choose to set some episodes, trailers or bonuses as public.',
|
||||
'op3' => 'Open Podcast Prefix Project (OP3)',
|
||||
'op3_hint' => 'Value your analytics data with OP3, an open-source and trusted third party analytics service. Share, validate and compare your analytics data with the open podcasting ecosystem.',
|
||||
'op3_enable' => 'Enable OP3 analytics service',
|
||||
'op3_enable_hint' => 'For security reasons, premium episodes\' analytics data will not be shared with OP3.',
|
||||
'payment_pointer' => 'Payment Pointer for Web Monetization',
|
||||
'payment_pointer_hint' =>
|
||||
'This is your where you will receive money thanks to Web Monetization',
|
||||
'advanced_section_title' => 'Advanced Parameters',
|
||||
'advanced_section_subtitle' =>
|
||||
'If you need RSS tags that Castopod does not handle, set them here.',
|
||||
'custom_rss' => 'Custom RSS tags for the podcast',
|
||||
'custom_rss_hint' => 'This will be injected within the ❬channel❭ tag.',
|
||||
'new_feed_url' => 'New feed URL',
|
||||
'new_feed_url_hint' => 'Use this field when you move to another domain or podcast hosting platform. By default, the value is set to the current RSS URL if the podcast is imported.',
|
||||
'old_feed_url' => 'Old feed URL',
|
||||
'update_feed' => 'Update feed',
|
||||
'update_feed_tip' => 'Import this podcast\'s latest episodes',
|
||||
'partnership' => 'Partnership',
|
||||
'partner_id' => 'ID',
|
||||
'partner_link_url' => 'Link URL',
|
||||
'partner_image_url' => 'Image URL',
|
||||
'partner_id_hint' => 'Your own partner ID',
|
||||
'partner_link_url_hint' => 'The generic partner link address',
|
||||
'partner_image_url_hint' => 'The generic partner image address',
|
||||
'status_section_title' => 'Status',
|
||||
'block' => 'Podcast should be hidden from public catalogues',
|
||||
'block_hint' =>
|
||||
'The podcast show or hide status: toggling this on prevents the entire podcast from appearing in Apple Podcasts, Google Podcasts, and any third party apps that pull shows from these directories. (Not guaranteed)',
|
||||
'complete' => 'Podcast will not be having new episodes',
|
||||
'lock' => 'Prevent podcast from being copied',
|
||||
'lock_hint' =>
|
||||
'The purpose is to tell other podcast platforms whether they are allowed to import this feed. A value of yes means that any attempt to import this feed into a new platform should be rejected.',
|
||||
'submit_create' => 'Create podcast',
|
||||
'submit_edit' => 'Save podcast',
|
||||
],
|
||||
'category_options' => [
|
||||
'uncategorized' => 'uncategorized',
|
||||
'arts' => 'Arts',
|
||||
'business' => 'Business',
|
||||
'comedy' => 'Comedy',
|
||||
'education' => 'Education',
|
||||
'fiction' => 'Fiction',
|
||||
'government' => 'Government',
|
||||
'health_and_fitness' => 'Health & Fitness',
|
||||
'history' => 'History',
|
||||
'kids_and_family' => 'Kids & Family',
|
||||
'leisure' => 'Leisure',
|
||||
'music' => 'Music',
|
||||
'news' => 'News',
|
||||
'religion_and_spirituality' => 'Religion & Spirituality',
|
||||
'science' => 'Science',
|
||||
'society_and_culture' => 'Society & Culture',
|
||||
'sports' => 'Sports',
|
||||
'technology' => 'Technology',
|
||||
'true_crime' => 'True Crime',
|
||||
'tv_and_film' => 'TV & Film',
|
||||
'books' => 'Books',
|
||||
'design' => 'Design',
|
||||
'fashion_and_beauty' => 'Fashion & Beauty',
|
||||
'food' => 'Food',
|
||||
'performing_arts' => 'Performing Arts',
|
||||
'visual_arts' => 'Visual Arts',
|
||||
'careers' => 'Careers',
|
||||
'entrepreneurship' => 'Entrepreneurship',
|
||||
'investing' => 'Investing',
|
||||
'management' => 'Management',
|
||||
'marketing' => 'Marketing',
|
||||
'non_profit' => 'Non-Profit',
|
||||
'comedy_interviews' => 'Comedy Interviews',
|
||||
'improv' => 'Improv',
|
||||
'stand_up' => 'Stand-Up',
|
||||
'courses' => 'Courses',
|
||||
'how_to' => 'How To',
|
||||
'language_learning' => 'Language Learning',
|
||||
'self_improvement' => 'Self-Improvement',
|
||||
'comedy_fiction' => 'Comedy Fiction',
|
||||
'drama' => 'Drama',
|
||||
'science_fiction' => 'Science Fiction',
|
||||
'alternative_health' => 'Alternative Health',
|
||||
'fitness' => 'Fitness',
|
||||
'medicine' => 'Medicine',
|
||||
'mental_health' => 'Mental Health',
|
||||
'nutrition' => 'Nutrition',
|
||||
'sexuality' => 'Sexuality',
|
||||
'education_for_kids' => 'Education for Kids',
|
||||
'parenting' => 'Parenting',
|
||||
'pets_and_animals' => 'Pets & Animals',
|
||||
'stories_for_kids' => 'Stories for Kids',
|
||||
'animation_and_manga' => 'Animation & Manga',
|
||||
'automotive' => 'Automotive',
|
||||
'aviation' => 'Aviation',
|
||||
'crafts' => 'Crafts',
|
||||
'games' => 'Games',
|
||||
'hobbies' => 'Hobbies',
|
||||
'home_and_garden' => 'Home & Garden',
|
||||
'video_games' => 'Video Games',
|
||||
'music_commentary' => 'Music Commentary',
|
||||
'music_history' => 'Music History',
|
||||
'music_interviews' => 'Music Interviews',
|
||||
'business_news' => 'Business News',
|
||||
'daily_news' => 'Daily News',
|
||||
'entertainment_news' => 'Entertainment News',
|
||||
'news_commentary' => 'News Commentary',
|
||||
'politics' => 'Politics',
|
||||
'sports_news' => 'Sports News',
|
||||
'tech_news' => 'Tech News',
|
||||
'buddhism' => 'Buddhism',
|
||||
'christianity' => 'Christianity',
|
||||
'hinduism' => 'Hinduism',
|
||||
'islam' => 'Islam',
|
||||
'judaism' => 'Judaism',
|
||||
'religion' => 'Religion',
|
||||
'spirituality' => 'Spirituality',
|
||||
'astronomy' => 'Astronomy',
|
||||
'chemistry' => 'Chemistry',
|
||||
'earth_sciences' => 'Earth Sciences',
|
||||
'life_sciences' => 'Life Sciences',
|
||||
'mathematics' => 'Mathematics',
|
||||
'natural_sciences' => 'Natural Sciences',
|
||||
'nature' => 'Nature',
|
||||
'physics' => 'Physics',
|
||||
'social_sciences' => 'Social Sciences',
|
||||
'documentary' => 'Documentary',
|
||||
'personal_journals' => 'Personal Journals',
|
||||
'philosophy' => 'Philosophy',
|
||||
'places_and_travel' => 'Places & Travel',
|
||||
'relationships' => 'Relationships',
|
||||
'baseball' => 'Baseball',
|
||||
'basketball' => 'Basketball',
|
||||
'cricket' => 'Cricket',
|
||||
'fantasy_sports' => 'Fantasy Sports',
|
||||
'football' => 'Football',
|
||||
'golf' => 'Golf',
|
||||
'hockey' => 'Hockey',
|
||||
'rugby' => 'Rugby',
|
||||
'running' => 'Running',
|
||||
'soccer' => 'Soccer',
|
||||
'swimming' => 'Swimming',
|
||||
'tennis' => 'Tennis',
|
||||
'volleyball' => 'Volleyball',
|
||||
'wilderness' => 'Wilderness',
|
||||
'wrestling' => 'Wrestling',
|
||||
'after_shows' => 'After Shows',
|
||||
'film_history' => 'Film History',
|
||||
'film_interviews' => 'Film Interviews',
|
||||
'film_reviews' => 'Film Reviews',
|
||||
'tv_reviews' => 'TV Reviews',
|
||||
],
|
||||
'publish_form' => [
|
||||
'back_to_podcast_dashboard' => 'Back to podcast dashboard',
|
||||
'post' => 'Your announcement post',
|
||||
'post_hint' =>
|
||||
"Write a message to announce the publication of your podcast. The message will be featured in your podcast's homepage.",
|
||||
'message_placeholder' => 'Write your message…',
|
||||
'submit' => 'Publish',
|
||||
'publication_date' => 'Publication date',
|
||||
'publication_method' => [
|
||||
'now' => 'Now',
|
||||
'schedule' => 'Schedule',
|
||||
],
|
||||
'scheduled_publication_date' => 'Scheduled publication date',
|
||||
'scheduled_publication_date_hint' =>
|
||||
'You can schedule the podcast release by setting a future publication date. This field must be formatted as YYYY-MM-DD HH:mm',
|
||||
'submit_edit' => 'Edit publication',
|
||||
'cancel_publication' => 'Cancel publication',
|
||||
'message_warning' => 'You did not write a message for your announcement post!',
|
||||
'message_warning_hint' => 'Having a message increases social engagement, resulting in a better visibility for your podcast.',
|
||||
'message_warning_submit' => 'Publish anyway',
|
||||
],
|
||||
'publication_status_banner' => [
|
||||
'draft_mode' => 'draft mode',
|
||||
'not_published' => 'This podcast is not yet published.',
|
||||
'scheduled' => 'This podcast is scheduled for publication on {publication_date}.',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' =>
|
||||
"Deleting the podcast will delete all episodes, media files, posts and analytics associated with it. This action is irreversible, you will not be able to retrieve them afterwards.",
|
||||
'understand' => 'I understand, I want the podcast to be permanently deleted',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'by' => 'By {publisher}',
|
||||
'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',
|
||||
'followers' => '{numberOfFollowers, plural,
|
||||
one {# follower}
|
||||
other {# followers}
|
||||
}',
|
||||
'posts' => '{numberOfPosts, plural,
|
||||
one {# post}
|
||||
other {# posts}
|
||||
}',
|
||||
'activity' => 'Activity',
|
||||
'episodes' => 'Episodes',
|
||||
'sponsor' => 'Sponsor',
|
||||
'funding_links' => 'Funding links for {podcastTitle}',
|
||||
'find_on' => 'Find {podcastTitle} on',
|
||||
'listen_on' => 'Listen on',
|
||||
];
|
37
modules/Admin/Language/da/PodcastImport.php
Normal file
37
modules/Admin/Language/da/PodcastImport.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?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 [
|
||||
'warning' =>
|
||||
'This procedure may take a long time. As the current version does not show any progress while it runs, you will not see anything updated until it is done. In case of timeout error, increase `max_execution_time` value.',
|
||||
'old_podcast_section_title' => 'The podcast to import',
|
||||
'old_podcast_section_subtitle' =>
|
||||
'Make sure you own the rights for this podcast before importing it. Copying and broadcasting a podcast without the proper rights is piracy and is liable to prosecution.',
|
||||
'imported_feed_url' => 'Feed URL',
|
||||
'imported_feed_url_hint' => 'The feed must be in xml or rss format.',
|
||||
'new_podcast_section_title' => 'The new podcast',
|
||||
'advanced_params_section_title' => 'Advanced parameters',
|
||||
'advanced_params_section_subtitle' =>
|
||||
'Keep the default values if you have no idea of what the fields are for.',
|
||||
'slug_field' => 'Field to be used to calculate episode slug',
|
||||
'description_field' =>
|
||||
'Source field used for episode description / show notes',
|
||||
'force_renumber' => 'Force episodes renumbering',
|
||||
'force_renumber_hint' =>
|
||||
'Use this if your podcast does not have episode numbers but wish to set them during import.',
|
||||
'season_number' => 'Season number',
|
||||
'season_number_hint' =>
|
||||
'Use this if your podcast does not have a season number but wish to set one during import. Leave blank otherwise.',
|
||||
'max_episodes' => 'Maximum number of episodes to import',
|
||||
'max_episodes_hint' => 'Leave blank to import all episodes',
|
||||
'lock_import' =>
|
||||
'This feed is protected. You cannot import it. If you are the owner, unprotect it on the origin platform.',
|
||||
'submit' => 'Import podcast',
|
||||
];
|
38
modules/Admin/Language/da/PodcastNavigation.php
Normal file
38
modules/Admin/Language/da/PodcastNavigation.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?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 [
|
||||
'go_to_page' => 'Go to podcast page',
|
||||
'dashboard' => 'Podcast dashboard',
|
||||
'podcast-view' => 'Home',
|
||||
'podcast-edit' => 'Edit podcast',
|
||||
'podcast-persons-manage' => 'Manage persons',
|
||||
'episodes' => 'Episodes',
|
||||
'episode-list' => 'All episodes',
|
||||
'episode-create' => 'New episode',
|
||||
'analytics' => 'Analytics',
|
||||
'podcast-analytics' => 'Audience overview',
|
||||
'podcast-analytics-webpages' => 'Web pages visits',
|
||||
'podcast-analytics-locations' => 'Locations',
|
||||
'podcast-analytics-unique-listeners' => 'Unique listeners',
|
||||
'podcast-analytics-players' => 'Players',
|
||||
'podcast-analytics-listening-time' => 'Listening time',
|
||||
'podcast-analytics-time-periods' => 'Time periods',
|
||||
'premium' => 'Premium',
|
||||
'subscription-list' => 'All subscriptions',
|
||||
'subscription-add' => 'Add subscription',
|
||||
'contributors' => 'Contributors',
|
||||
'contributor-list' => 'All contributors',
|
||||
'contributor-add' => 'Add contributor',
|
||||
'platforms' => 'External platforms',
|
||||
'platforms-podcasting' => 'Podcasting',
|
||||
'platforms-social' => 'Social networks',
|
||||
'platforms-funding' => 'Funding',
|
||||
];
|
58
modules/Admin/Language/da/Settings.php
Normal file
58
modules/Admin/Language/da/Settings.php
Normal file
@ -0,0 +1,58 @@
|
||||
<?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' => 'General settings',
|
||||
'instance' => [
|
||||
'title' => 'Instance',
|
||||
'site_icon' => 'Site icon',
|
||||
'site_icon_delete' => 'Delete site icon',
|
||||
'site_icon_hint' => 'Site icons are what you see on your browser tabs, bookmarks bar, and when you add a website as a shortcut on mobile devices.',
|
||||
'site_icon_helper' => 'Icon must be squared and at least 512px wide and tall.',
|
||||
'site_name' => 'Site name',
|
||||
'site_description' => 'Site description',
|
||||
'submit' => 'Save',
|
||||
'editSuccess' => 'Instance has been updated successfully!',
|
||||
'deleteIconSuccess' => 'Site icon has been remove successfully!',
|
||||
],
|
||||
'images' => [
|
||||
'title' => 'Images',
|
||||
'subtitle' => 'Here you can regenerate all images based on the originals that were uploaded. To be used if you find that some images are missing. This task may take a while.',
|
||||
'regenerate' => 'Regenerate images',
|
||||
'regenerationSuccess' => 'All images have been regenerated successfully!',
|
||||
],
|
||||
'housekeeping' => [
|
||||
'title' => 'Housekeeping',
|
||||
'subtitle' => 'Runs various housekeeping tasks. Use this feature if you ever encounter issues with media files or data integrity. These tasks may take a while.',
|
||||
'reset_counts' => 'Reset counts',
|
||||
'reset_counts_helper' => 'This option will recalculate and reset all data counts (number of followers, posts, comments, …).',
|
||||
'rewrite_media' => 'Rewrite media metadata',
|
||||
'rewrite_media_helper' => 'This option will delete all superfluous media files and recreate them (images, audio files, transcripts, chapters, …)',
|
||||
'rename_episodes_files' => 'Rename episode audio files',
|
||||
'rename_episodes_files_hint' => 'This option will rename all episodes audio files to a random string of characters. Use this if one of your private episodes link was leaked as this will effectively hide it.',
|
||||
'clear_cache' => 'Clear all cache',
|
||||
'clear_cache_helper' => 'This option will flush redis cache or writable/cache files.',
|
||||
'run' => 'Run housekeeping',
|
||||
'runSuccess' => 'Housekeeping has been run successfully!',
|
||||
],
|
||||
'theme' => [
|
||||
'title' => 'Theme',
|
||||
'accent_section_title' => 'Accent color',
|
||||
'accent_section_subtitle' => 'Choose the color to determine the look and feel of all public pages.',
|
||||
'pine' => 'Pine',
|
||||
'crimson' => 'Crimson',
|
||||
'amber' => 'Amber',
|
||||
'lake' => 'Lake',
|
||||
'jacaranda' => 'Jacaranda',
|
||||
'onyx' => 'Onyx',
|
||||
'submit' => 'Save',
|
||||
'setInstanceThemeSuccess' => 'Theme has been updated successfully!',
|
||||
],
|
||||
];
|
31
modules/Admin/Language/da/Soundbite.php
Normal file
31
modules/Admin/Language/da/Soundbite.php
Normal file
@ -0,0 +1,31 @@
|
||||
<?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 [
|
||||
'list' => [
|
||||
'title' => 'Soundbites',
|
||||
'soundbite' => 'Soundbite',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' => 'Soundbite has been successfully created!',
|
||||
'deleteSuccess' => 'Soundbite has been successfully removed!',
|
||||
],
|
||||
'form' => [
|
||||
'title' => 'New soundbite',
|
||||
'soundbite_title' => 'Soundbite title',
|
||||
'start_time' => 'Start at',
|
||||
'duration' => 'Duration',
|
||||
'submit' => 'Create soundbite',
|
||||
],
|
||||
'play' => 'Play soundbite',
|
||||
'stop' => 'Stop soundbite',
|
||||
'create' => 'New soundbite',
|
||||
'delete' => 'Delete soundbite',
|
||||
];
|
16
modules/Admin/Language/da/Validation.php
Normal file
16
modules/Admin/Language/da/Validation.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?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 [
|
||||
'min_dims' =>
|
||||
'{field} is either not an image, or it is not wide or tall enough.',
|
||||
'is_image_ratio' =>
|
||||
'{field} is either not an image or not of the right ratio.',
|
||||
];
|
72
modules/Admin/Language/da/VideoClip.php
Normal file
72
modules/Admin/Language/da/VideoClip.php
Normal file
@ -0,0 +1,72 @@
|
||||
<?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 [
|
||||
'list' => [
|
||||
'title' => 'Video clips',
|
||||
'status' => [
|
||||
'label' => 'Status',
|
||||
'queued' => 'queued',
|
||||
'queued_hint' => 'Clip is waiting to be processed.',
|
||||
'pending' => 'pending',
|
||||
'pending_hint' => 'Clip will be generated shortly.',
|
||||
'running' => 'running',
|
||||
'running_hint' => 'Clip is being generated.',
|
||||
'failed' => 'failed',
|
||||
'failed_hint' => 'Clip could not be generated: script failure.',
|
||||
'passed' => 'passed',
|
||||
'passed_hint' => 'Clip was generated successfully!',
|
||||
],
|
||||
'clip' => 'Clip',
|
||||
'duration' => 'Job duration',
|
||||
],
|
||||
'title' => 'Video clip: {videoClipLabel}',
|
||||
'download_clip' => 'Download clip',
|
||||
'create' => 'New video clip',
|
||||
'go_to_page' => 'Go to clip page',
|
||||
'retry' => 'Retry clip generation',
|
||||
'delete' => 'Delete clip',
|
||||
'logs' => 'Job logs',
|
||||
'messages' => [
|
||||
'alreadyExistingError' => 'The video clip you are trying to create already exists!',
|
||||
'addToQueueSuccess' => 'Video clip has been added to queue, awaiting to be created!',
|
||||
'deleteSuccess' => 'Video clip has been successfully removed!',
|
||||
],
|
||||
'format' => [
|
||||
'landscape' => 'Landscape',
|
||||
'portrait' => 'Portrait',
|
||||
'squared' => 'Squared',
|
||||
],
|
||||
'form' => [
|
||||
'title' => 'New video clip',
|
||||
'params_section_title' => 'Video clip parameters',
|
||||
'clip_title' => 'Clip title',
|
||||
'format' => [
|
||||
'label' => 'Choose a format',
|
||||
'landscape_hint' => 'With a 16:9 ratio, landscape videos are great for PeerTube, Youtube and Vimeo.',
|
||||
'portrait_hint' => 'With a 9:16 ratio, portrait videos are great for TikTok, Youtube shorts and Instagram stories.',
|
||||
'squared_hint' => 'With a 1:1 ratio, squared videos are great for Mastodon, Facebook, Twitter and LinkedIn.',
|
||||
],
|
||||
'theme' => 'Select a theme',
|
||||
'start_time' => 'Start at',
|
||||
'duration' => 'Duration',
|
||||
'trim_start' => 'Trim start',
|
||||
'trim_end' => 'Trim end',
|
||||
'submit' => 'Create video clip',
|
||||
],
|
||||
'requirements' => [
|
||||
'title' => 'Missing requirements',
|
||||
'missing' => 'You have missing requirements. Make sure to add all the required items to be allowed creating a video for this episode!',
|
||||
'ffmpeg' => 'FFmpeg',
|
||||
'gd' => 'Graphics Draw (GD)',
|
||||
'freetype' => 'Freetype library for GD',
|
||||
'transcript' => 'Transcript file (.srt)',
|
||||
],
|
||||
];
|
@ -80,7 +80,7 @@ return [
|
||||
'language' => 'Sprache',
|
||||
'category' => 'Kategorie',
|
||||
'category_placeholder' => 'Kategorie wählen...',
|
||||
'other_categories' => 'Andere Kategorieen',
|
||||
'other_categories' => 'Andere Kategorien',
|
||||
'parental_advisory' => [
|
||||
'label' => 'Hinweis an Eltern',
|
||||
'hint' => 'Enthält die Folge anstößige Inhalte?',
|
||||
|
@ -9,14 +9,14 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => 'About Castopod',
|
||||
'host_name' => 'Host name',
|
||||
'version' => 'Castopod version',
|
||||
'php_version' => 'PHP version',
|
||||
'os' => 'Operating System',
|
||||
'languages' => 'Languages',
|
||||
'update_database' => 'Update database',
|
||||
'title' => 'Over Castopod',
|
||||
'host_name' => 'Servernaam',
|
||||
'version' => 'Castopod versie',
|
||||
'php_version' => 'PHP versie',
|
||||
'os' => 'Besturingssystem',
|
||||
'languages' => 'Talen',
|
||||
'update_database' => 'Database bijwerken',
|
||||
'messages' => [
|
||||
'databaseUpdateSuccess' => 'Database is up to date!',
|
||||
'databaseUpdateSuccess' => 'Database is up-to-date!',
|
||||
],
|
||||
];
|
||||
|
@ -19,37 +19,37 @@ return [
|
||||
'pages' => 'paginas',
|
||||
'settings' => 'instellingen',
|
||||
'theme' => 'thema',
|
||||
'about' => 'about',
|
||||
'about' => 'over',
|
||||
'add' => 'toevoegen',
|
||||
'new' => 'nieuw',
|
||||
'edit' => 'bewerken',
|
||||
'persons' => 'personen',
|
||||
'publish' => 'publiceren',
|
||||
'publish-edit' => 'publicatie aanpassen',
|
||||
'publish-date-edit' => 'edit publication date',
|
||||
'publish-date-edit' => 'publicatiedatum bewerken',
|
||||
'unpublish' => 'publicatie ongedaan maken',
|
||||
'delete' => 'verwijder',
|
||||
'remove' => 'verwijder',
|
||||
'fediverse' => 'fediverse',
|
||||
'blocked-actors' => 'blocked actors',
|
||||
'blocked-domains' => 'blocked domains',
|
||||
'blocked-actors' => 'geblokkeerde actoren',
|
||||
'blocked-domains' => 'geblokkeerde domeinen',
|
||||
'users' => 'gebruikers',
|
||||
'my-account' => 'mijn account',
|
||||
'change-password' => 'wachtwoord wijzigen',
|
||||
'import' => 'feed importeren',
|
||||
'platforms' => 'platforms',
|
||||
'platforms' => 'platformen',
|
||||
'social' => 'sociale netwerken',
|
||||
'funding' => 'financiering',
|
||||
'analytics' => 'statistieken',
|
||||
'locations' => 'locaties',
|
||||
'webpages' => 'web pagina\'s',
|
||||
'webpages' => 'webpagina\'s',
|
||||
'unique-listeners' => 'unieke luisteraars',
|
||||
'players' => 'spelers',
|
||||
'listening-time' => 'afspeeltijd',
|
||||
'time-periods' => 'tijds blok',
|
||||
'soundbites' => 'geluidsbeet',
|
||||
'video-clips' => 'video clips',
|
||||
'embed' => 'integreerbare speler',
|
||||
'time-periods' => 'tijdspanne',
|
||||
'soundbites' => 'geluidsfragment',
|
||||
'video-clips' => 'videoclips',
|
||||
'embed' => 'embedbare speler',
|
||||
'notifications' => 'meldingen',
|
||||
'suspend' => 'suspend',
|
||||
'suspend' => 'opschorten',
|
||||
];
|
||||
|
@ -37,5 +37,5 @@ return [
|
||||
'podcast_by_bandwidth' => 'Dagelijks gebruikte bandbreedte (in MB)',
|
||||
'total_storage_by_month' => 'Maandelijkse opslagruimte (in MB)',
|
||||
'total_bandwidth_by_month' => 'Maandelijkse gebruikte bandbreedte (in MB)',
|
||||
'total_bandwidth_by_month_limit' => 'Limited to {totalBandwidth} per month',
|
||||
'total_bandwidth_by_month_limit' => 'Gelimiteerd tot {totalBandwidth} per maand',
|
||||
];
|
||||
|
@ -96,70 +96,70 @@ return [
|
||||
'GI' => 'Gibraltar',
|
||||
'GL' => 'Groenland',
|
||||
'GM' => 'Gambia',
|
||||
'GN' => 'Guinea',
|
||||
'GN' => 'Guinee',
|
||||
'GP' => 'Guadeloupe',
|
||||
'GQ' => 'Equatorial Guinea',
|
||||
'GQ' => 'Equatoriaal-Guinea',
|
||||
'GR' => 'Griekenland',
|
||||
'GS' => 'South Georgia and the South Sandwich Islands',
|
||||
'GS' => 'Zuid-Georgia en de Zuidelijke Sandwicheilanden',
|
||||
'GT' => 'Guatemala',
|
||||
'GU' => 'Guam',
|
||||
'GW' => 'Guinea-Bissau',
|
||||
'GW' => 'Guinee-Bissau',
|
||||
'GY' => 'Guyana',
|
||||
'HK' => 'Hong Kong',
|
||||
'HM' => 'Heard Island and McDonald Islands',
|
||||
'HM' => 'Heard- en MacDonaldeilanden',
|
||||
'HN' => 'Honduras',
|
||||
'HR' => 'Croatia',
|
||||
'HT' => 'Haiti',
|
||||
'HR' => 'Kroatië',
|
||||
'HT' => 'Haïti',
|
||||
'HU' => 'Hongarije',
|
||||
'ID' => 'Indonesia',
|
||||
'IE' => 'Ireland',
|
||||
'IL' => 'Israel',
|
||||
'ID' => 'Indonesië',
|
||||
'IE' => 'Ierland',
|
||||
'IL' => 'Israël',
|
||||
'IM' => 'Isle of Man',
|
||||
'IN' => 'India',
|
||||
'IO' => 'British Indian Ocean Territory',
|
||||
'IQ' => 'Iraq',
|
||||
'IR' => 'Iran, Islamic Republic of',
|
||||
'IS' => 'Iceland',
|
||||
'IT' => 'Italy',
|
||||
'IO' => 'Britse Gebieden in de Indische Oceaan',
|
||||
'IQ' => 'Irak',
|
||||
'IR' => 'Iran, Islamitische Republiek',
|
||||
'IS' => 'Ijsland',
|
||||
'IT' => 'Italië',
|
||||
'JE' => 'Jersey',
|
||||
'JM' => 'Jamaica',
|
||||
'JO' => 'Jordan',
|
||||
'JO' => 'Jordanië',
|
||||
'JP' => 'Japan',
|
||||
'KE' => 'Kenya',
|
||||
'KG' => 'Kyrgyzstan',
|
||||
'KH' => 'Cambodia',
|
||||
'KE' => 'Kenia',
|
||||
'KG' => 'Kirgizië',
|
||||
'KH' => 'Cambodja',
|
||||
'KI' => 'Kiribati',
|
||||
'KM' => 'Comoros',
|
||||
'KN' => 'Saint Kitts and Nevis',
|
||||
'KP' => "Korea, Democratic People's Republic of",
|
||||
'KR' => 'Korea, Republic of',
|
||||
'KW' => 'Kuwait',
|
||||
'KY' => 'Cayman Islands',
|
||||
'KZ' => 'Kazakhstan',
|
||||
'LA' => "Lao People's Democratic Republic",
|
||||
'KM' => 'Comoren',
|
||||
'KN' => 'Saint Kitts en Nevis',
|
||||
'KP' => "Korea, Democratische Volksrepubliek",
|
||||
'KR' => 'Zuid-Korea',
|
||||
'KW' => 'Koeweit',
|
||||
'KY' => 'Kaaimaneilanden',
|
||||
'KZ' => 'Kazachstan',
|
||||
'LA' => "Lao Democratische Volksrepubliek",
|
||||
'LB' => 'Lebanon',
|
||||
'LC' => 'Saint Lucia',
|
||||
'LC' => 'Sint Lucia',
|
||||
'LI' => 'Liechtenstein',
|
||||
'LK' => 'Sri Lanka',
|
||||
'LR' => 'Liberia',
|
||||
'LS' => 'Lesotho',
|
||||
'LT' => 'Lithuania',
|
||||
'LU' => 'Luxembourg',
|
||||
'LV' => 'Latvia',
|
||||
'LY' => 'Libya',
|
||||
'MA' => 'Morocco',
|
||||
'LT' => 'Litauen',
|
||||
'LU' => 'Luxemburg',
|
||||
'LV' => 'Letland',
|
||||
'LY' => 'Libië',
|
||||
'MA' => 'Marokko',
|
||||
'MC' => 'Monaco',
|
||||
'MD' => 'Moldova, Republic of',
|
||||
'MD' => 'Moldavië, Republiek',
|
||||
'ME' => 'Montenegro',
|
||||
'MF' => 'Saint Martin (French part)',
|
||||
'MG' => 'Madagascar',
|
||||
'MH' => 'Marshall Islands',
|
||||
'MK' => 'Macedonia, the Former Yugoslav Republic of',
|
||||
'MF' => 'Sint Maarten (Frans deel)',
|
||||
'MG' => 'Madagaskar',
|
||||
'MH' => 'Marshalleilanden',
|
||||
'MK' => 'Macedonië',
|
||||
'ML' => 'Mali',
|
||||
'MM' => 'Myanmar',
|
||||
'MN' => 'Mongolia',
|
||||
'MO' => 'Macao',
|
||||
'MP' => 'Northern Mariana Islands',
|
||||
'MN' => 'Mongolië',
|
||||
'MO' => 'Macau',
|
||||
'MP' => 'Noordelijke Mariana eilanden',
|
||||
'MQ' => 'Martinique',
|
||||
'MR' => 'Mauritania',
|
||||
'MS' => 'Montserrat',
|
||||
@ -200,51 +200,51 @@ return [
|
||||
'PY' => 'Paraguay',
|
||||
'QA' => 'Qatar',
|
||||
'RE' => 'Réunion',
|
||||
'RO' => 'Romania',
|
||||
'RS' => 'Serbia',
|
||||
'RU' => 'Russian Federation',
|
||||
'RO' => 'Roemenië',
|
||||
'RS' => 'Servië',
|
||||
'RU' => 'Russische Federatie',
|
||||
'RW' => 'Rwanda',
|
||||
'SA' => 'Saudi Arabia',
|
||||
'SB' => 'Solomon Islands',
|
||||
'SC' => 'Seychelles',
|
||||
'SD' => 'Sudan',
|
||||
'SE' => 'Sweden',
|
||||
'SA' => 'Saudi-Arabië',
|
||||
'SB' => 'Solomon-eilanden',
|
||||
'SC' => 'Seychellen',
|
||||
'SD' => 'Soedan',
|
||||
'SE' => 'Zweden',
|
||||
'SG' => 'Singapore',
|
||||
'SH' => 'Saint Helena, Ascension and Tristan da Cunha',
|
||||
'SI' => 'Slovenia',
|
||||
'SJ' => 'Svalbard and Jan Mayen',
|
||||
'SK' => 'Slovakia',
|
||||
'SL' => 'Sierra Leone',
|
||||
'SH' => 'Sint-Helena, Ascension en Tristan da Cunha',
|
||||
'SI' => 'Slovenië',
|
||||
'SJ' => 'Spitsbergen en Jan Mayen',
|
||||
'SK' => 'Slowakije',
|
||||
'SL' => 'Siërra Leone',
|
||||
'SM' => 'San Marino',
|
||||
'SN' => 'Senegal',
|
||||
'SO' => 'Somalia',
|
||||
'SO' => 'Somalië',
|
||||
'SR' => 'Suriname',
|
||||
'SS' => 'South Sudan',
|
||||
'ST' => 'Sao Tome and Principe',
|
||||
'SS' => 'Zuid-Soedan',
|
||||
'ST' => 'Sao Tomé en Principe',
|
||||
'SV' => 'El Salvador',
|
||||
'SX' => 'Sint Maarten (Dutch part)',
|
||||
'SY' => 'Syrian Arab Republic',
|
||||
'SX' => 'Sint Maarten (Nederlands deel)',
|
||||
'SY' => 'Syrië, Arabische Republiek',
|
||||
'SZ' => 'Swaziland',
|
||||
'TC' => 'Turks and Caicos Islands',
|
||||
'TD' => 'Chad',
|
||||
'TF' => 'French Southern Territories',
|
||||
'TC' => 'Turks- en Caicos-eilanden',
|
||||
'TD' => 'Tsjaad',
|
||||
'TF' => 'Franse Gebieden in de zuidelijke Indische Oceaan',
|
||||
'TG' => 'Togo',
|
||||
'TH' => 'Thailand',
|
||||
'TJ' => 'Tajikistan',
|
||||
'TJ' => 'Tadzjikistan',
|
||||
'TK' => 'Tokelau',
|
||||
'TL' => 'Timor-Leste',
|
||||
'TL' => 'Oost-Timor',
|
||||
'TM' => 'Turkmenistan',
|
||||
'TN' => 'Tunisia',
|
||||
'TN' => 'Tunesië',
|
||||
'TO' => 'Tonga',
|
||||
'TR' => 'Turkey',
|
||||
'TT' => 'Trinidad and Tobago',
|
||||
'TR' => 'Turkije',
|
||||
'TT' => 'Trinidad en Tobago',
|
||||
'TV' => 'Tuvalu',
|
||||
'TW' => 'Taiwan, Province of China',
|
||||
'TZ' => 'Tanzania, United Republic of',
|
||||
'UA' => 'Ukraine',
|
||||
'UG' => 'Uganda',
|
||||
'UM' => 'United States Minor Outlying Islands',
|
||||
'US' => 'United States',
|
||||
'TW' => 'Taiwan',
|
||||
'TZ' => 'Tanzania',
|
||||
'UA' => 'Oekraïne',
|
||||
'UG' => 'Oeganda',
|
||||
'UM' => 'Kleine afgelegen eilanden van de Verenigde Staten',
|
||||
'US' => 'Verenigde Staten',
|
||||
'UY' => 'Uruguay',
|
||||
'UZ' => 'Uzbekistan',
|
||||
'VA' => 'Holy See (Vatican City State)',
|
||||
|
@ -9,8 +9,8 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
return [
|
||||
'season' => '第 {seasonNumber} 季',
|
||||
'season_abbr' => '第 {seasonNumber} 季',
|
||||
'season' => '第 {seasonNumber} 节',
|
||||
'season_abbr' => '第 {seasonNumber} 节',
|
||||
'number' => '第 {episodeNumber} 集',
|
||||
'number_abbr' => '第 {episodeNumber} 集',
|
||||
'season_episode' => '第 {seasonNumber} 季第 {episodeNumber} 集',
|
||||
@ -55,7 +55,7 @@ return [
|
||||
}',
|
||||
'episode' => '剧集',
|
||||
'visibility' => '可见性',
|
||||
'downloads' => 'Downloads',
|
||||
'downloads' => '下载',
|
||||
'comments' => '评论',
|
||||
'actions' => '操作',
|
||||
],
|
||||
|
94
modules/Auth/Language/da/Auth.php
Normal file
94
modules/Auth/Language/da/Auth.php
Normal file
@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2022 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'instance_groups' => [
|
||||
'owner' => [
|
||||
'title' => 'Instance Owner',
|
||||
'description' => 'The Castopod owner.',
|
||||
],
|
||||
'superadmin' => [
|
||||
'title' => 'Super admin',
|
||||
'description' => 'Has complete control over Castopod.',
|
||||
],
|
||||
'manager' => [
|
||||
'title' => 'Manager',
|
||||
'description' => 'Manages Castopod\'s content.',
|
||||
],
|
||||
'podcaster' => [
|
||||
'title' => 'Podcaster',
|
||||
'description' => 'General users of Castopod.',
|
||||
],
|
||||
],
|
||||
'instance_permissions' => [
|
||||
'admin.access' => 'Can access the Castopod admin area.',
|
||||
'admin.settings' => 'Can access the Castopod settings.',
|
||||
'users.manage' => 'Can manage Castopod users.',
|
||||
'persons.manage' => 'Can manage persons.',
|
||||
'pages.manage' => 'Can manage pages.',
|
||||
'podcasts.view' => 'Can view all podcasts.',
|
||||
'podcasts.create' => 'Can create new podcasts.',
|
||||
'podcasts.import' => 'Can import podcasts.',
|
||||
'fediverse.manage-blocks' => 'Can block fediverse actors/domains from interacting with Castopod.',
|
||||
],
|
||||
'podcast_groups' => [
|
||||
'owner' => [
|
||||
'title' => 'Podcast Owner',
|
||||
'description' => 'The podcast owner.',
|
||||
],
|
||||
'admin' => [
|
||||
'title' => 'Admin',
|
||||
'description' => 'Has complete control of podcast #{id}.',
|
||||
],
|
||||
'editor' => [
|
||||
'title' => 'Editor',
|
||||
'description' => 'Manages content and publications of podcast #{id}.',
|
||||
],
|
||||
'author' => [
|
||||
'title' => 'Author',
|
||||
'description' => 'Manages content of podcast #{id} but cannot publish them.',
|
||||
],
|
||||
'guest' => [
|
||||
'title' => 'Guest',
|
||||
'description' => 'General contributor of the podcast #{id}.',
|
||||
],
|
||||
],
|
||||
'podcast_permissions' => [
|
||||
'view' => 'Can view dashboard and analytics of podcast #{id}.',
|
||||
'edit' => 'Can edit podcast #{id}.',
|
||||
'delete' => 'Can delete podcast #{id}.',
|
||||
'manage-import' => 'Can synchronize imported podcast #{id}.',
|
||||
'manage-persons' => 'Can manage subscriptions of podcast #{id}.',
|
||||
'manage-subscriptions' => 'Can manage subscriptions of podcast #{id}.',
|
||||
'manage-contributors' => 'Can manage contributors of podcast #{id}.',
|
||||
'manage-platforms' => 'Can set/remove platform links of podcast #{id}.',
|
||||
'manage-publications' => 'Can publish podcast #{id}.',
|
||||
'manage-notifications' => 'Can view and mark notifications as read for podcast #{id}.',
|
||||
'interact-as' => 'Can interact as the podcast #{id} to favourite, share or reply to posts.',
|
||||
'episodes.view' => 'Can view dashboards and analytics of podcast #{id}\'s episodes.',
|
||||
'episodes.create' => 'Can create episodes for podcast #{id}.',
|
||||
'episodes.edit' => 'Can edit episodes of podcast #{id}.',
|
||||
'episodes.delete' => 'Can delete episodes of podcast #{id}.',
|
||||
'episodes.manage-persons' => 'Can manage episode persons of podcast #{id}.',
|
||||
'episodes.manage-clips' => 'Can manage video clips or soundbites of podcast #{id}.',
|
||||
'episodes.manage-publications' => 'Can publish/unpublish episodes and posts of podcast #{id}.',
|
||||
'episodes.manage-comments' => 'Can create/remove episode comments of podcast #{id}.',
|
||||
],
|
||||
|
||||
// missing keys
|
||||
'code' => 'Your 6-digit code',
|
||||
|
||||
'notEnoughPrivilege' => 'You do not have sufficient permissions to access that page.',
|
||||
'set_password' => 'Set your password',
|
||||
|
||||
// Welcome email
|
||||
'welcomeSubject' => 'You\'ve been invited to {siteName}',
|
||||
'emailWelcomeMailBody' => 'An account was created for you on {domain}, click on the login link below to set your password. The link is valid for {numberOfHours} hours after this email was sent.',
|
||||
];
|
47
modules/Auth/Language/da/Contributor.php
Normal file
47
modules/Auth/Language/da/Contributor.php
Normal file
@ -0,0 +1,47 @@
|
||||
<?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 [
|
||||
'podcast_contributors' => 'Podcast contributors',
|
||||
'view' => "{username}'s contribution to {podcastTitle}",
|
||||
'add' => 'Add contributor',
|
||||
'add_contributor' => 'Add a contributor for {0}',
|
||||
'edit_role' => 'Update role for {0}',
|
||||
'edit' => 'Edit',
|
||||
'remove' => 'Remove',
|
||||
'list' => [
|
||||
'username' => 'Username',
|
||||
'role' => 'Role',
|
||||
],
|
||||
'form' => [
|
||||
'user' => 'User',
|
||||
'user_placeholder' => 'Select a user…',
|
||||
'role' => 'Role',
|
||||
'role_placeholder' => 'Select its role…',
|
||||
'submit_add' => 'Add contributor',
|
||||
'submit_edit' => 'Update role',
|
||||
],
|
||||
'delete_form' => [
|
||||
'title' => 'Remove {contributor}',
|
||||
'disclaimer' =>
|
||||
'You are about to remove {contributor} from contributors. They will not be able to access "{podcastTitle}" anymore.',
|
||||
'understand' => 'I understand, I want to remove {contributor} from "{podcastTitle}"',
|
||||
'submit' => 'Remove',
|
||||
],
|
||||
'messages' => [
|
||||
'editSuccess' => 'Role successfully changed!',
|
||||
'editOwnerError' => "You can't edit the podcast owner!",
|
||||
'removeOwnerError' => "You can't remove the podcast owner!",
|
||||
'removeSuccess' =>
|
||||
'You have successfully removed {username} from {podcastTitle}',
|
||||
'alreadyAddedError' =>
|
||||
"The contributor you're trying to add has already been added!",
|
||||
],
|
||||
];
|
18
modules/Auth/Language/da/MyAccount.php
Normal file
18
modules/Auth/Language/da/MyAccount.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?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 [
|
||||
'info' => 'My account info',
|
||||
'changePassword' => 'Change my password',
|
||||
'messages' => [
|
||||
'wrongPasswordError' => "You've entered the wrong password, try again.",
|
||||
'passwordChangeSuccess' => 'Password has been successfully changed!',
|
||||
],
|
||||
];
|
60
modules/Auth/Language/da/User.php
Normal file
60
modules/Auth/Language/da/User.php
Normal file
@ -0,0 +1,60 @@
|
||||
<?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 [
|
||||
'edit_role' => "Edit {username}'s role",
|
||||
'ban' => 'Ban',
|
||||
'unban' => 'Unban',
|
||||
'delete' => 'Delete',
|
||||
'create' => 'New user',
|
||||
'view' => "{username}'s info",
|
||||
'all_users' => 'All users',
|
||||
'list' => [
|
||||
'user' => 'User',
|
||||
'role' => 'Role',
|
||||
'banned' => 'Banned?',
|
||||
],
|
||||
'form' => [
|
||||
'email' => 'Email',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
'new_password' => 'New Password',
|
||||
'role' => 'Role',
|
||||
'roles' => 'Roles',
|
||||
'permissions' => 'Permissions',
|
||||
'submit_create' => 'Create user',
|
||||
'submit_edit' => 'Save',
|
||||
'submit_password_change' => 'Change!',
|
||||
],
|
||||
'delete_form' => [
|
||||
'title' => 'Delete {user}',
|
||||
'disclaimer' =>
|
||||
"You are about to delete {user} permanently. They will not be able to access the admin area anymore.",
|
||||
'understand' => 'I understand, I want to delete {user} permanently',
|
||||
'submit' => 'Delete',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' =>
|
||||
'User created successfully! A welcome email was sent to {username} with a login link, they will be prompted with a password reset upon first authentication.',
|
||||
'roleEditSuccess' =>
|
||||
"{username}'s roles have been successfully updated.",
|
||||
'banSuccess' => '{username} has been banned.',
|
||||
'unbanSuccess' => '{username} has been unbanned.',
|
||||
'editOwnerError' =>
|
||||
'{username} is the instance owner, one does not simply touch the owner…',
|
||||
'banSuperAdminError' =>
|
||||
'{username} is a superadmin, one does not simply ban a superadmin…',
|
||||
'deleteOwnerError' =>
|
||||
'{username} is the instance owner, one does not simply delete the owner…',
|
||||
'deleteSuperAdminError' =>
|
||||
'{username} is a superadmin, one does not simply delete a superadmin…',
|
||||
'deleteSuccess' => '{username} has been deleted.',
|
||||
],
|
||||
];
|
@ -9,46 +9,46 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
return [
|
||||
'edit_role' => "Edit {username}'s role",
|
||||
'edit_role' => "ویراش نقش {username}",
|
||||
'ban' => 'Ban',
|
||||
'unban' => 'Unban',
|
||||
'delete' => 'Delete',
|
||||
'create' => 'New user',
|
||||
'view' => "{username}'s info",
|
||||
'all_users' => 'All users',
|
||||
'delete' => 'حذف',
|
||||
'create' => 'کاربر جدید',
|
||||
'view' => "اطّلاعات {username}",
|
||||
'all_users' => 'تمامی کاربران',
|
||||
'list' => [
|
||||
'user' => 'User',
|
||||
'role' => 'Role',
|
||||
'user' => 'کاربر',
|
||||
'role' => 'نقش',
|
||||
'banned' => 'Banned?',
|
||||
],
|
||||
'form' => [
|
||||
'email' => 'Email',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
'new_password' => 'New Password',
|
||||
'role' => 'Role',
|
||||
'roles' => 'Roles',
|
||||
'permissions' => 'Permissions',
|
||||
'submit_create' => 'Create user',
|
||||
'submit_edit' => 'Save',
|
||||
'submit_password_change' => 'Change!',
|
||||
'email' => 'رایانامه',
|
||||
'username' => 'نامکاربری',
|
||||
'password' => 'گذرواژه',
|
||||
'new_password' => 'گذرواژهٔ جدید',
|
||||
'role' => 'نقش',
|
||||
'roles' => 'نقشها',
|
||||
'permissions' => 'اجازهها',
|
||||
'submit_create' => 'ایجاد کاربر',
|
||||
'submit_edit' => 'ذخیره',
|
||||
'submit_password_change' => 'تغییر!',
|
||||
],
|
||||
'delete_form' => [
|
||||
'title' => 'Delete {user}',
|
||||
'title' => 'حذف {user}',
|
||||
'disclaimer' =>
|
||||
"You are about to delete {user} permanently. They will not be able to access the admin area anymore.",
|
||||
'understand' => 'I understand, I want to delete {user} permanently',
|
||||
'submit' => 'Delete',
|
||||
'submit' => 'حذف',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuccess' =>
|
||||
'User created successfully! {username} will be prompted with a password reset upon first authentication.',
|
||||
'کاربر با موفّقیت ساخته شد! رایانامهٔ خوشآمدی به همراه پیوند ورود برای {username} فرستاده شد. در نخستین ورودش اعلانی برای بازنشانی گذرواژه دریافت خواهد کرد.',
|
||||
'roleEditSuccess' =>
|
||||
"{username}'s roles have been successfully updated.",
|
||||
'banSuccess' => '{username} has been banned.',
|
||||
'unbanSuccess' => '{username} has been unbanned.',
|
||||
'editOwnerError' =>
|
||||
'{username} is the instance owner, you cannot edit its roles.',
|
||||
'{username} مالک نمونه است. کسی به سادگی مالک را تغییر نمیدهد…',
|
||||
'banSuperAdminError' =>
|
||||
'{username} is a superadmin, one does not simply ban a superadmin…',
|
||||
'deleteOwnerError' =>
|
||||
|
62
modules/Install/Language/da/Install.php
Normal file
62
modules/Install/Language/da/Install.php
Normal file
@ -0,0 +1,62 @@
|
||||
<?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' => 'Castopod installer',
|
||||
'manual_config' => 'Manual configuration',
|
||||
'manual_config_subtitle' =>
|
||||
'Create a `.env` file with your settings and refresh the page to continue installation.',
|
||||
'form' => [
|
||||
'instance_config' => 'Instance configuration',
|
||||
'hostname' => 'Hostname',
|
||||
'media_base_url' => 'Media base URL',
|
||||
'media_base_url_hint' =>
|
||||
'If you use a CDN and/or an external analytics service, you may set them here.',
|
||||
'admin_gateway' => 'Admin gateway',
|
||||
'admin_gateway_hint' =>
|
||||
'The route to access the admin area (eg. https://example.com/cp-admin). It is set by default as cp-admin, we recommend you change it for security reasons.',
|
||||
'auth_gateway' => 'Auth gateway',
|
||||
'auth_gateway_hint' =>
|
||||
'The route to access the authentication pages (eg. https://example.com/cp-auth). It is set by default as cp-auth, we recommend you change it for security reasons.',
|
||||
'database_config' => 'Database configuration',
|
||||
'database_config_hint' =>
|
||||
'Castopod needs to connect to your MySQL (or MariaDB) database. If you do not have these required info, please contact your server administrator.',
|
||||
'db_hostname' => 'Database hostname',
|
||||
'db_name' => 'Database name',
|
||||
'db_username' => 'Database username',
|
||||
'db_password' => 'Database password',
|
||||
'db_prefix' => 'Database prefix',
|
||||
'db_prefix_hint' =>
|
||||
"The prefix of the Castopod table names, leave as is if you don't know what it means.",
|
||||
'cache_config' => 'Cache configuration',
|
||||
'cache_config_hint' =>
|
||||
'Choose your preferred cache handler. Leave it as the default value if you have no clue what it means.',
|
||||
'cache_handler' => 'Cache handler',
|
||||
'cacheHandlerOptions' => [
|
||||
'file' => 'File',
|
||||
'redis' => 'Redis',
|
||||
'predis' => 'Predis',
|
||||
],
|
||||
'next' => 'Next',
|
||||
'submit' => 'Finish install',
|
||||
'create_superadmin' => 'Create your Super Admin account',
|
||||
'email' => 'Email',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuperAdminSuccess' =>
|
||||
'Your superadmin account has been created successfully. Login to start podcasting!',
|
||||
'databaseConnectError' =>
|
||||
'Castopod could not connect to your database. Edit your database configuration and try again.',
|
||||
'writeError' =>
|
||||
"Couldn't create/write the `.env` file. You must create it manually by following the `.env.example` file template in the Castopod package.",
|
||||
],
|
||||
];
|
@ -9,13 +9,13 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => 'Castopod installer',
|
||||
'manual_config' => 'Manual configuration',
|
||||
'title' => 'نصب کنندهٔ کستوپاد',
|
||||
'manual_config' => 'پیکربندی دستی',
|
||||
'manual_config_subtitle' =>
|
||||
'Create a `.env` file with your settings and refresh the page to continue installation.',
|
||||
'form' => [
|
||||
'instance_config' => 'Instance configuration',
|
||||
'hostname' => 'Hostname',
|
||||
'instance_config' => 'پیکربندی نمونه',
|
||||
'hostname' => 'نام میزبان',
|
||||
'media_base_url' => 'Media base URL',
|
||||
'media_base_url_hint' =>
|
||||
'If you use a CDN and/or an external analytics service, you may set them here.',
|
||||
@ -28,28 +28,28 @@ return [
|
||||
'database_config' => 'Database configuration',
|
||||
'database_config_hint' =>
|
||||
'Castopod needs to connect to your MySQL (or MariaDB) database. If you do not have these required info, please contact your server administrator.',
|
||||
'db_hostname' => 'Database hostname',
|
||||
'db_name' => 'Database name',
|
||||
'db_username' => 'Database username',
|
||||
'db_password' => 'Database password',
|
||||
'db_prefix' => 'Database prefix',
|
||||
'db_hostname' => 'نام میزبان پایگاه داده',
|
||||
'db_name' => 'نام پایگاهداده',
|
||||
'db_username' => 'نام کاربری پایگاهداده',
|
||||
'db_password' => 'گذرواژهٔ پایگاهداده',
|
||||
'db_prefix' => 'پيشوند پايگاهداده',
|
||||
'db_prefix_hint' =>
|
||||
"The prefix of the Castopod table names, leave as is if you don't know what it means.",
|
||||
'cache_config' => 'Cache configuration',
|
||||
'cache_config' => 'پیکربندی انباره',
|
||||
'cache_config_hint' =>
|
||||
'Choose your preferred cache handler. Leave it as the default value if you have no clue what it means.',
|
||||
'cache_handler' => 'Cache handler',
|
||||
'cacheHandlerOptions' => [
|
||||
'file' => 'File',
|
||||
'redis' => 'Redis',
|
||||
'file' => 'پرونده',
|
||||
'redis' => 'ردیس',
|
||||
'predis' => 'Predis',
|
||||
],
|
||||
'next' => 'Next',
|
||||
'submit' => 'Finish install',
|
||||
'create_superadmin' => 'Create your superadmin account',
|
||||
'email' => 'Email',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
'next' => 'بعدی',
|
||||
'submit' => 'پایان نصب',
|
||||
'create_superadmin' => 'ایجاد ابرحساب مدیریتان',
|
||||
'email' => 'رایانامه',
|
||||
'username' => 'نامکاربری',
|
||||
'password' => 'گذرواژه',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuperAdminSuccess' =>
|
||||
|
@ -9,54 +9,54 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
return [
|
||||
'title' => 'Castopod installer',
|
||||
'manual_config' => 'Manual configuration',
|
||||
'title' => 'Castopod installatie',
|
||||
'manual_config' => 'Handmatige configuratie',
|
||||
'manual_config_subtitle' =>
|
||||
'Create a `.env` file with your settings and refresh the page to continue installation.',
|
||||
'Maak een `.env` bestand aan met je instellingen en vernieuw de pagina om door te gaan met de installatie.',
|
||||
'form' => [
|
||||
'instance_config' => 'Instance configuration',
|
||||
'hostname' => 'Hostname',
|
||||
'media_base_url' => 'Media base URL',
|
||||
'instance_config' => 'Instantie configuratie',
|
||||
'hostname' => 'Hostnaam',
|
||||
'media_base_url' => 'Media basis-URL',
|
||||
'media_base_url_hint' =>
|
||||
'If you use a CDN and/or an external analytics service, you may set them here.',
|
||||
'admin_gateway' => 'Admin gateway',
|
||||
'Als u een CDN en/of een externe statistiekenservice gebruikt, kunt u ze hier instellen.',
|
||||
'admin_gateway' => 'Admin pad',
|
||||
'admin_gateway_hint' =>
|
||||
'The route to access the admin area (eg. https://example.com/cp-admin). It is set by default as cp-admin, we recommend you change it for security reasons.',
|
||||
'auth_gateway' => 'Auth gateway',
|
||||
'De route naar toegang tot de admin omgeving (bijv. https://example.com/cp-admin). Het is standaard ingesteld als cp-admin, we raden je aan om het te wijzigen om veiligheidsredenen.',
|
||||
'auth_gateway' => 'Authenticatie pad',
|
||||
'auth_gateway_hint' =>
|
||||
'The route to access the authentication pages (eg. https://example.com/cp-auth). It is set by default as cp-auth, we recommend you change it for security reasons.',
|
||||
'database_config' => 'Database configuration',
|
||||
'De route voor toegang tot de authenticatiepagina\'s (bijv. https://example.com/cp-auth). Deze is standaard ingesteld als cp-auth, wij raden u aan deze om veiligheidsredenen te wijzigen.',
|
||||
'database_config' => 'Databaseconfiguratie',
|
||||
'database_config_hint' =>
|
||||
'Castopod needs to connect to your MySQL (or MariaDB) database. If you do not have these required info, please contact your server administrator.',
|
||||
'db_hostname' => 'Database hostname',
|
||||
'db_name' => 'Database name',
|
||||
'db_username' => 'Database username',
|
||||
'db_password' => 'Database password',
|
||||
'db_prefix' => 'Database prefix',
|
||||
'Castopod moet verbinding maken met uw MySQL (of MariaDB) database. Als u niet over de benodigde informatie beschikt, neem dan contact op met uw serverbeheerder.',
|
||||
'db_hostname' => 'Database hostnaam',
|
||||
'db_name' => 'Databasenaam',
|
||||
'db_username' => 'Database gebruikersnaam',
|
||||
'db_password' => 'Database wachtwoord',
|
||||
'db_prefix' => 'Database voorvoegsel',
|
||||
'db_prefix_hint' =>
|
||||
"The prefix of the Castopod table names, leave as is if you don't know what it means.",
|
||||
'cache_config' => 'Cache configuration',
|
||||
"Het voorvoegsel van de Castopod tabelnamen. Laat leeg indien je niet weet wat dit betekent.",
|
||||
'cache_config' => 'Cache-configuratie',
|
||||
'cache_config_hint' =>
|
||||
'Choose your preferred cache handler. Leave it as the default value if you have no clue what it means.',
|
||||
'Kies je gewenste cache-handler. Laat deze standaard waarde achter als je geen idee hebt wat het betekent.',
|
||||
'cache_handler' => 'Cache handler',
|
||||
'cacheHandlerOptions' => [
|
||||
'file' => 'File',
|
||||
'file' => 'Bestandsysteem',
|
||||
'redis' => 'Redis',
|
||||
'predis' => 'Predis',
|
||||
],
|
||||
'next' => 'Next',
|
||||
'submit' => 'Finish install',
|
||||
'create_superadmin' => 'Create your superadmin account',
|
||||
'email' => 'Email',
|
||||
'username' => 'Username',
|
||||
'password' => 'Password',
|
||||
'next' => 'Volgende',
|
||||
'submit' => 'Installatie voltooien',
|
||||
'create_superadmin' => 'Maak uw Super Admin account aan',
|
||||
'email' => 'E-mail',
|
||||
'username' => 'Gebruikersnaam',
|
||||
'password' => 'Wachtwoord',
|
||||
],
|
||||
'messages' => [
|
||||
'createSuperAdminSuccess' =>
|
||||
'Your superadmin account has been created successfully. Login to start podcasting!',
|
||||
'Uw superadmin account is aangemaakt. Log in om met podcasten te starten!',
|
||||
'databaseConnectError' =>
|
||||
'Castopod could not connect to your database. Edit your database configuration and try again.',
|
||||
'Castopod kon geen verbinding maken met uw database. Bewerk uw databaseconfiguratie en probeer het opnieuw.',
|
||||
'writeError' =>
|
||||
"Couldn't create/write the `.env` file. You must create it manually by following the `.env.example` file template in the Castopod package.",
|
||||
"Kon het `.env` bestand niet maken/schrijven. Je moet het handmatig aanmaken door het meegeleverde voorbeeld `.env.example` bestand te kopiëren en aan te passen.",
|
||||
],
|
||||
];
|
||||
|
34
modules/PremiumPodcasts/Language/da/PremiumPodcasts.php
Normal file
34
modules/PremiumPodcasts/Language/da/PremiumPodcasts.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2022 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'podcast_is_premium' => 'Podcast contains premium episodes',
|
||||
'episode_is_premium' => 'Episode is premium, only available to premium subscribers',
|
||||
'unlock_episode' => 'This episode is for premium subscribers only. Click to unlock it!',
|
||||
'banner_unlock' => 'This podcast contains premium episodes, only available to premium subscribers.',
|
||||
'banner_lock' => 'Podcast is unlocked, enjoy the premium episodes!',
|
||||
'subscribe' => 'Subscribe',
|
||||
'lock' => 'Lock',
|
||||
'unlock' => 'Unlock',
|
||||
'unlock_form' => [
|
||||
'title' => 'Premium content',
|
||||
'subtitle' => 'This podcast contains locked premium episodes! Do you have the key to unlock them?',
|
||||
'token' => 'Enter your key',
|
||||
'token_hint' => 'If you are subscribed to {podcastTitle}, you may copy the key that was sent to you via email and paste it here.',
|
||||
'submit' => 'Unlock all episodes!',
|
||||
'call_to_action' => 'Unlock all episodes of {podcastTitle}:',
|
||||
'subscribe_cta' => 'Subscribe now!',
|
||||
],
|
||||
'messages' => [
|
||||
'unlockSuccess' => 'Podcast was successfully unlocked! Enjoy the premium episodes!',
|
||||
'unlockBadAttempt' => 'Your key does not seem to be working…',
|
||||
'lockSuccess' => 'Podcast was successfully locked!',
|
||||
],
|
||||
];
|
100
modules/PremiumPodcasts/Language/da/Subscription.php
Normal file
100
modules/PremiumPodcasts/Language/da/Subscription.php
Normal file
@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @copyright 2022 Ad Aures
|
||||
* @license https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
|
||||
* @link https://castopod.org/
|
||||
*/
|
||||
|
||||
return [
|
||||
'podcast_subscriptions' => 'Podcast subscriptions',
|
||||
'add' => 'New subscription',
|
||||
'view' => 'View subscription',
|
||||
'edit' => 'Edit subscription',
|
||||
'regenerate_token' => 'Regenerate token',
|
||||
'suspend' => 'Suspend subscription',
|
||||
'resume' => 'Resume subscription',
|
||||
'delete' => 'Delete subscription',
|
||||
'status' => [
|
||||
'active' => 'Active',
|
||||
'suspended' => 'Suspended',
|
||||
'expired' => 'Expired',
|
||||
],
|
||||
'list' => [
|
||||
'number' => 'Number',
|
||||
'email' => 'Email',
|
||||
'expiration_date' => 'Expiration date',
|
||||
'unlimited' => 'Unlimited',
|
||||
'downloads' => 'Downloads',
|
||||
'status' => 'Status',
|
||||
],
|
||||
'form' => [
|
||||
'email' => 'Email',
|
||||
'expiration_date' => 'Expiration date',
|
||||
'expiration_date_hint' => 'The date and time at which the subscription expires. Leave empty for an unlimited subscription.',
|
||||
'submit_add' => 'Add subscription',
|
||||
'submit_edit' => 'Edit subscription',
|
||||
],
|
||||
'form_link_add' => [
|
||||
'link' => 'Subscription page link',
|
||||
'link_hint' => 'This will add a call to action in the website inviting listeners to subscribe to the podcast.',
|
||||
'submit' => 'Save link',
|
||||
],
|
||||
'suspend_form' => [
|
||||
'disclaimer' => 'Suspending the subscription will restrict the subscriber from having access to the premium content. You will still be able to lift the suspension afterwards.',
|
||||
'reason' => 'Reason',
|
||||
'reason_placeholder' => 'Why are you suspending the subscription?',
|
||||
"submit" => 'Suspend subscription',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' => 'Deleting {subscriber}\'s subscription will remove all analytics data associated with it.',
|
||||
'understand' => 'I understand, remove the subscription permanently',
|
||||
'submit' => 'Remove subscription',
|
||||
],
|
||||
'messages' => [
|
||||
'addSuccess' => 'New subscription added! A welcome email was sent to {subscriber}.',
|
||||
'addError' => 'Subscription could not be added.',
|
||||
'editSuccess' => 'Subscription expiry date was updated! An email was sent to {subscriber}.',
|
||||
'editError' => 'Subscription could not be edited.',
|
||||
'regenerateTokenSuccess' => 'Token regenerated! An email was sent to {subscriber} with the new token.',
|
||||
'regenerateTokenError' => 'Token could not be regenerated.',
|
||||
'deleteSuccess' => 'Subscription was removed! An email was sent to {subscriber}.',
|
||||
'deleteError' => 'Subscription could not be removed.',
|
||||
'suspendSuccess' => 'Subscription was suspended! An email was sent to {subscriber}.',
|
||||
'suspendError' => 'Subscription could not be suspended.',
|
||||
'resumeSuccess' => 'Subscription was resumed! An email was sent to {subscriber}.',
|
||||
'resumeError' => 'Subscription could not be resumed.',
|
||||
'linkSaveSuccess' => 'Subscription link was saved successfully! It will appear in the website as a Call To Action!',
|
||||
'linkRemoveSuccess' => 'Subscription link was removed successfully!',
|
||||
],
|
||||
'emails' => [
|
||||
'greeting' => 'Hey,',
|
||||
'token' => 'Your token: {0}',
|
||||
'unique_feed_link' => 'Your unique feed link: {0}',
|
||||
'how_to_use' => 'How to use?',
|
||||
'two_ways' => 'You have two ways of unlocking the premium episodes:',
|
||||
'import_into_app' => 'Copy your unique feed url inside your favourite podcast app (import it as a private feed to prevent exposing your credentials).',
|
||||
'go_to_website' => 'Go to {podcastWebsite}\'s website and unlock the podcast with your token.',
|
||||
'welcome_subject' => 'Welcome to {podcastTitle}',
|
||||
'welcome' => 'You have subscribed to {podcastTitle}, thank you and welcome aboard!',
|
||||
'welcome_token_title' => 'Here are your credentials to unlock the podcast\'s premium episodes:',
|
||||
'welcome_expires' => 'Your subscription was set to expire on {0}.',
|
||||
'welcome_never_expires' => 'Your subscription was set to never expire.',
|
||||
'reset_subject' => 'Your token was reset!',
|
||||
'reset_token' => 'Your access to {podcastTitle} has been reset!',
|
||||
'reset_token_title' => 'New credentials have been generated for you to unlock the podcast\'s premium episodes:',
|
||||
'edited_subject' => 'Your subscription has been updated!',
|
||||
'edited_expires' => 'Your subscription for {podcastTitle} was set to expire on {expiresAt}.',
|
||||
'edited_never_expires' => 'Your subscription for {podcastTitle} was set to never expire!',
|
||||
'suspended_subject' => 'Your subscription has been suspended!',
|
||||
'suspended' => 'Your subscription for {podcastTitle} has been suspended! You can no longer access the podcast\'s premium episodes.',
|
||||
'suspended_reason' => 'That is for the following reason: {0}',
|
||||
'resumed_subject' => 'Your subscription has been resumed!',
|
||||
'resumed' => 'Your subscription for {podcastTitle} has been resumed! You may access the podcast\'s premium episodes again.',
|
||||
'deleted_subject' => 'Your subscription has been removed!',
|
||||
'deleted' => 'Your subscription for {podcastTitle} has been removed! You no longer have access to the podcast\'s premium episodes.',
|
||||
'footer' => '{castopod} hosted on {host}',
|
||||
],
|
||||
];
|
@ -9,92 +9,92 @@ declare(strict_types=1);
|
||||
*/
|
||||
|
||||
return [
|
||||
'podcast_subscriptions' => 'Podcast subscriptions',
|
||||
'add' => 'New subscription',
|
||||
'view' => 'View subscription',
|
||||
'edit' => 'Edit subscription',
|
||||
'regenerate_token' => 'Regenerate token',
|
||||
'suspend' => 'Suspend subscription',
|
||||
'resume' => 'Resume subscription',
|
||||
'delete' => 'Delete subscription',
|
||||
'podcast_subscriptions' => 'Podcast abonnementen',
|
||||
'add' => 'Nieuw abonnement',
|
||||
'view' => 'Bekijk abonnement',
|
||||
'edit' => 'Bewerk abonnement',
|
||||
'regenerate_token' => 'Sleutel opnieuw genereren',
|
||||
'suspend' => 'Abonnement opschorten',
|
||||
'resume' => 'Abonnement hervatten',
|
||||
'delete' => 'Abonnement verwijderen',
|
||||
'status' => [
|
||||
'active' => 'Active',
|
||||
'suspended' => 'Suspended',
|
||||
'expired' => 'Expired',
|
||||
'active' => 'Actief',
|
||||
'suspended' => 'Opgeschort',
|
||||
'expired' => 'Verlopen',
|
||||
],
|
||||
'list' => [
|
||||
'number' => 'Number',
|
||||
'email' => 'Email',
|
||||
'expiration_date' => 'Expiration date',
|
||||
'unlimited' => 'Unlimited',
|
||||
'number' => 'Nummer',
|
||||
'email' => 'E-mail',
|
||||
'expiration_date' => 'Vervaldatum',
|
||||
'unlimited' => 'Onbeperkt',
|
||||
'downloads' => 'Downloads',
|
||||
'status' => 'Status',
|
||||
],
|
||||
'form' => [
|
||||
'email' => 'Email',
|
||||
'expiration_date' => 'Expiration date',
|
||||
'expiration_date_hint' => 'The date and time at which the subscription expires. Leave empty for an unlimited subscription.',
|
||||
'submit_add' => 'Add subscription',
|
||||
'submit_edit' => 'Edit subscription',
|
||||
'email' => 'E-mail',
|
||||
'expiration_date' => 'Vervaldatum',
|
||||
'expiration_date_hint' => 'De datum en tijd waarop het abonnement verloopt. Laat leeg voor een onbeperkt abonnement.',
|
||||
'submit_add' => 'Abonnement toevoegen',
|
||||
'submit_edit' => 'Bewerk abonnement',
|
||||
],
|
||||
'form_link_add' => [
|
||||
'link' => 'Subscription page link',
|
||||
'link_hint' => 'This will add a call to action in the website inviting listeners to subscribe to the podcast.',
|
||||
'submit' => 'Save link',
|
||||
'link' => 'Abonnementspagina link',
|
||||
'link_hint' => 'Dit zal een call-to-action toevoegen op de website die luisteraars uitnodigt om zich te abonneren op de podcast.',
|
||||
'submit' => 'Link opslaan',
|
||||
],
|
||||
'suspend_form' => [
|
||||
'disclaimer' => 'Suspending the subscription will restrict the subscriber from having access to the premium content. You will still be able to lift the suspension afterwards.',
|
||||
'reason' => 'Reason',
|
||||
'reason_placeholder' => 'Why are you suspending the subscription?',
|
||||
"submit" => 'Suspend subscription',
|
||||
'disclaimer' => 'Opschorting van het abonnement zorgt ervoor dat de abonnee geen toegang meer heeft tot premium inhoud. U kunt de opschorting op ieder moment opheffen.',
|
||||
'reason' => 'Reden',
|
||||
'reason_placeholder' => 'Waarom wilt u het abonnement onderbreken?',
|
||||
"submit" => 'Abonnement opschorten',
|
||||
],
|
||||
'delete_form' => [
|
||||
'disclaimer' => 'Deleting {subscriber}\'s subscription will remove all analytics data associated with it.',
|
||||
'understand' => 'I understand, remove the subscription permanently',
|
||||
'submit' => 'Remove subscription',
|
||||
'disclaimer' => 'Het verwijderen van het abonnement van {subscriber} zal alle statistieken ervan verwijderen.',
|
||||
'understand' => 'Ik begrijp het, verwijder het abonnement permanent',
|
||||
'submit' => 'Abonnement verwijderen',
|
||||
],
|
||||
'messages' => [
|
||||
'addSuccess' => 'New subscription added! A welcome email was sent to {subscriber}.',
|
||||
'addError' => 'Subscription could not be added.',
|
||||
'editSuccess' => 'Subscription expiry date was updated! An email was sent to {subscriber}.',
|
||||
'editError' => 'Subscription could not be edited.',
|
||||
'regenerateTokenSuccess' => 'Token regenerated! An email was sent to {subscriber} with the new token.',
|
||||
'regenerateTokenError' => 'Token could not be regenerated.',
|
||||
'deleteSuccess' => 'Subscription was removed! An email was sent to {subscriber}.',
|
||||
'deleteError' => 'Subscription could not be removed.',
|
||||
'suspendSuccess' => 'Subscription was suspended! An email was sent to {subscriber}.',
|
||||
'suspendError' => 'Subscription could not be suspended.',
|
||||
'resumeSuccess' => 'Subscription was resumed! An email was sent to {subscriber}.',
|
||||
'resumeError' => 'Subscription could not be resumed.',
|
||||
'linkSaveSuccess' => 'Subscription link was saved successfully! It will appear in the website as a Call To Action!',
|
||||
'linkRemoveSuccess' => 'Subscription link was removed successfully!',
|
||||
'addSuccess' => 'Nieuw abonnement toegevoegd! Er is een welkomstmail is naar {subscriber} gestuurd.',
|
||||
'addError' => 'Abonnement kon niet worden toegevoegd.',
|
||||
'editSuccess' => 'Abonnement vervaldatum is bijgewerkt! Er is een e-mail verzonden naar {subscriber}.',
|
||||
'editError' => 'Abonnement kon niet worden bijgewerkt.',
|
||||
'regenerateTokenSuccess' => 'Token vernieuwd! Er is een e-mail verzonden naar {subscriber} met de nieuwe gegevens.',
|
||||
'regenerateTokenError' => 'Token kon niet worden vernieuwd.',
|
||||
'deleteSuccess' => 'Abonnement is verwijderd! Er is een e-mail verzonden naar {subscriber}.',
|
||||
'deleteError' => 'Abonnement kon niet worden verwijderd.',
|
||||
'suspendSuccess' => 'Abonnement is opgeschort! Er is een e-mail verzonden naar {subscriber}.',
|
||||
'suspendError' => 'Abonnement kon niet opgeschort worden.',
|
||||
'resumeSuccess' => 'Abonnement is hervat! Er is een e-mail verzonden naar {subscriber}.',
|
||||
'resumeError' => 'Abonnement kon niet worden hervat.',
|
||||
'linkSaveSuccess' => 'Abonnementlink is succesvol opgeslagen! Het zal verschijnen op de website als een call-to-action!',
|
||||
'linkRemoveSuccess' => 'Abonnementlink is succesvol verwijderd!',
|
||||
],
|
||||
'emails' => [
|
||||
'greeting' => 'Hey,',
|
||||
'token' => 'Your token: {0}',
|
||||
'unique_feed_link' => 'Your unique feed link: {0}',
|
||||
'how_to_use' => 'How to use?',
|
||||
'two_ways' => 'You have two ways of unlocking the premium episodes:',
|
||||
'import_into_app' => 'Copy your unique feed url inside your favourite podcast app (import it as a private feed to prevent exposing your credentials).',
|
||||
'go_to_website' => 'Go to {podcastWebsite}\'s website and unlock the podcast with your token.',
|
||||
'welcome_subject' => 'Welcome to {podcastTitle}',
|
||||
'welcome' => 'You have subscribed to {podcastTitle}, thank you and welcome aboard!',
|
||||
'welcome_token_title' => 'Here are your credentials to unlock the podcast\'s premium episodes:',
|
||||
'welcome_expires' => 'Your subscription was set to expire on {0}.',
|
||||
'welcome_never_expires' => 'Your subscription was set to never expire.',
|
||||
'reset_subject' => 'Your token was reset!',
|
||||
'reset_token' => 'Your access to {podcastTitle} has been reset!',
|
||||
'reset_token_title' => 'New credentials have been generated for you to unlock the podcast\'s premium episodes:',
|
||||
'edited_subject' => 'Your subscription has been updated!',
|
||||
'edited_expires' => 'Your subscription for {podcastTitle} was set to expire on {expiresAt}.',
|
||||
'edited_never_expires' => 'Your subscription for {podcastTitle} was set to never expire!',
|
||||
'suspended_subject' => 'Your subscription has been suspended!',
|
||||
'suspended' => 'Your subscription for {podcastTitle} has been suspended! You can no longer access the podcast\'s premium episodes.',
|
||||
'suspended_reason' => 'That is for the following reason: {0}',
|
||||
'resumed_subject' => 'Your subscription has been resumed!',
|
||||
'resumed' => 'Your subscription for {podcastTitle} has been resumed! You may access the podcast\'s premium episodes again.',
|
||||
'deleted_subject' => 'Your subscription has been removed!',
|
||||
'deleted' => 'Your subscription for {podcastTitle} has been removed! You no longer have access to the podcast\'s premium episodes.',
|
||||
'footer' => '{castopod} hosted on {host}',
|
||||
'greeting' => 'Hoi,',
|
||||
'token' => 'Uw token: {0}',
|
||||
'unique_feed_link' => 'Uw persoonlijke feed: {0}',
|
||||
'how_to_use' => 'Gebruiksaanwijzing',
|
||||
'two_ways' => 'Je hebt twee manieren om toegang te krijgen tot de premium afleveringen:',
|
||||
'import_into_app' => 'Kopieer uw persoonlijke feed in je favoriete podcast app (importeer deze als een privé feed om te voorkomen dat je inloggegevens worden gedeeld).',
|
||||
'go_to_website' => 'Ga naar de website van {podcastWebsite} en krijgt toegang tot de podcast met uw persoonlijke token.',
|
||||
'welcome_subject' => 'Welkom bij {podcastTitle}',
|
||||
'welcome' => 'Je bent geabonneerd op {podcastTitle}, bedankt en welkom bij de club!',
|
||||
'welcome_token_title' => 'Hier zijn uw inloggegevens om toegang te krijgen tot de premium afleveringen van de podcast:',
|
||||
'welcome_expires' => 'Uw abonnement verloopt op {0}.',
|
||||
'welcome_never_expires' => 'Uw abonnement stopt niet automatisch.',
|
||||
'reset_subject' => 'Je token is vernieuwd!',
|
||||
'reset_token' => 'Uw toegang tot {podcastTitle} is gereset!',
|
||||
'reset_token_title' => 'Nieuwe inloggegevens zijn gegenereerd om toegang tot de premium afleveringen van de podcast te krijgen:',
|
||||
'edited_subject' => 'Uw abonnement is bijgewerkt!',
|
||||
'edited_expires' => 'Je abonnement voor {podcastTitle} vervalt op {expiresAt}.',
|
||||
'edited_never_expires' => 'Je abonnement voor {podcastTitle} is ingesteld om niet automatisch te verlopen!',
|
||||
'suspended_subject' => 'Uw abonnement is opgeschort!',
|
||||
'suspended' => 'Uw abonnement voor {podcastTitle} is opgeschort! U heeft niet langer toegang tot de premium afleveringen van de podcast.',
|
||||
'suspended_reason' => 'Dat is gebeurd om de volgende reden: {0}',
|
||||
'resumed_subject' => 'Uw abonnement is hervat!',
|
||||
'resumed' => 'Uw abonnement op {podcastTitle} is hervat! U heeft weer toegang tot de premium afleveringen van de podcast.',
|
||||
'deleted_subject' => 'Uw abonnement is beëindigd!',
|
||||
'deleted' => 'Uw abonnement op {podcastTitle} is verwijderd! U heeft niet langer toegang tot de premium afleveringen van de podcast.',
|
||||
'footer' => '{castopod} gehost op {host}',
|
||||
],
|
||||
];
|
||||
|
Loading…
x
Reference in New Issue
Block a user