docs: change vitepress with astro's starlight
- change language keys to kebab-case - add new languages to docs: ca, de, es, sr-latn, zh-hans
|
@ -3,10 +3,11 @@
|
|||
"projectOwner": "adaures",
|
||||
"repoType": "gitlab",
|
||||
"repoHost": "https://code.castopod.org",
|
||||
"files": ["README.md", "docs/src/index.md"],
|
||||
"files": ["README.md", "docs/src/content/docs/en/index.mdx"],
|
||||
"imageSize": 100,
|
||||
"commit": false,
|
||||
"contributorsPerLine": 7,
|
||||
"wrapperTemplate": "\n<table class=\"all-contributors-table\">\n <tbody><%= bodyContent %> </tbody>\n<%= tableFooterContent %></table>\n\n",
|
||||
"contributors": [
|
||||
{
|
||||
"login": "yassinedoghri",
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
}
|
||||
},
|
||||
"extensions": [
|
||||
"astro-build.astro-vscode",
|
||||
"bmewburn.vscode-intelephense-client",
|
||||
"bradlc.vscode-tailwindcss",
|
||||
"breezelin.phpstan",
|
||||
|
@ -49,6 +50,7 @@
|
|||
"runem.lit-plugin",
|
||||
"streetsidesoftware.code-spell-checker",
|
||||
"stylelint.vscode-stylelint",
|
||||
"unifiedjs.vscode-mdx",
|
||||
"wayou.vscode-todo-highlight",
|
||||
"yzhang.markdown-all-in-one"
|
||||
]
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
---
|
||||
title: Development setup
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# Setup your development environment
|
||||
|
||||
## Introduction
|
||||
|
@ -56,7 +51,7 @@ to help you kickstart your contribution.
|
|||
analytics.salt="DEV_ANALYTICS_SALT"
|
||||
|
||||
cache.handler="redis"
|
||||
cache.redis.host = "redis"
|
||||
cache.redis.host="redis"
|
||||
|
||||
# You may not want to use redis as your cache handler
|
||||
# Comment/remove the two lines above and uncomment
|
||||
|
@ -78,15 +73,16 @@ to help you kickstart your contribution.
|
|||
#media.s3.pathStyleEndpoint=true
|
||||
```
|
||||
|
||||
> _NB._ You can tweak your environment by setting more environment variables
|
||||
> in your custom `.env` file. See the `env` for examples or the
|
||||
> [!NOTE]
|
||||
> You can tweak your environment by setting more environment variables in
|
||||
> your custom `.env` file. See the `env` for examples or the
|
||||
> [CodeIgniter4 User Guide](https://codeigniter.com/user_guide/index.html)
|
||||
> for more info.
|
||||
|
||||
3. (for docker desktop) Add the repository you've cloned to docker desktop's
|
||||
`Settings` > `Resources` > `File Sharing`
|
||||
|
||||
### 2. (recommended) Develop inside the app Container with VSCode
|
||||
### 2. (recommended) Develop inside the app container with VSCode
|
||||
|
||||
If you're working in VSCode, you can take advantage of the `.devcontainer/`
|
||||
folder. It defines a development environment (dev container) with preinstalled
|
||||
|
@ -137,7 +133,7 @@ required services will be loaded automagically! 🪄
|
|||
```
|
||||
|
||||
For more info, see
|
||||
[VSCode Remote Containers](https://code.visualstudio.com/docs/remote/containers)
|
||||
[Developing inside a Container](https://code.visualstudio.com/docs/devcontainers/containers)
|
||||
|
||||
### 3. Start hacking
|
||||
|
||||
|
@ -180,7 +176,7 @@ You do not wish to use the VSCode devcontainer? No problem!
|
|||
|
||||
```
|
||||
|
||||
> The `docker-compose up -d` command will boot 4 containers in the
|
||||
> The `docker-compose up -d` command will boot 5 containers in the
|
||||
> background:
|
||||
>
|
||||
> - `castopod_app`: a php based container with Castopod requirements
|
||||
|
@ -191,6 +187,7 @@ You do not wish to use the VSCode devcontainer? No problem!
|
|||
> persistent data
|
||||
> - `castopod_phpmyadmin`: a phpmyadmin server to visualize the mariadb
|
||||
> database.
|
||||
> - `castopod_s3`: a mock s3 server to work on the s3 fileManager
|
||||
|
||||
2. Run any command inside the containers by prefixing them with
|
||||
`docker-compose run --rm app`:
|
||||
|
@ -221,15 +218,12 @@ You do not wish to use the VSCode devcontainer? No problem!
|
|||
composer install
|
||||
```
|
||||
|
||||
::: info Note
|
||||
|
||||
The php dependencies aren't included in the repository. Composer will check
|
||||
the `composer.json` and `composer.lock` files to download the packages with
|
||||
the right versions. The dependencies will live under the `vendor/` folder.
|
||||
For more info, check out the
|
||||
[Composer documentation](https://getcomposer.org/doc/).
|
||||
|
||||
:::
|
||||
> [!NOTE]
|
||||
> The php dependencies aren't included in the repository. Composer will check
|
||||
> the `composer.json` and `composer.lock` files to download the packages with
|
||||
> the right versions. The dependencies will live under the `vendor/` folder.
|
||||
> For more info, check out the
|
||||
> [Composer documentation](https://getcomposer.org/doc/).
|
||||
|
||||
2. Install javascript dependencies with [pnpm](https://pnpm.io/)
|
||||
|
||||
|
@ -237,14 +231,12 @@ You do not wish to use the VSCode devcontainer? No problem!
|
|||
pnpm install
|
||||
```
|
||||
|
||||
::: info Note
|
||||
|
||||
The javascript dependencies aren't included in the repository. Pnpm will
|
||||
check the `package.json` and `pnpm-lock.yaml` files to download the packages
|
||||
with the right versions. The dependencies will live under the `node_module`
|
||||
folder. For more info, check out the [PNPM documentation](https://pnpm.io/).
|
||||
|
||||
:::
|
||||
> [!NOTE]
|
||||
> The javascript dependencies aren't included in the repository. Pnpm will
|
||||
> check the `package.json` and `pnpm-lock.yaml` files to download the
|
||||
> packages with the right versions. The dependencies will live under the
|
||||
> `node_module` folder. For more info, check out the
|
||||
> [PNPM documentation](https://pnpm.io/motivation).
|
||||
|
||||
3. Generate static assets:
|
||||
|
||||
|
@ -257,21 +249,15 @@ You do not wish to use the VSCode devcontainer? No problem!
|
|||
pnpm run build:svg
|
||||
```
|
||||
|
||||
::: info Note
|
||||
|
||||
The static assets generated live under the `public/assets` folder, it
|
||||
includes javascript, styles, images, fonts, icons and svg files.
|
||||
|
||||
:::
|
||||
> [!NOTE]
|
||||
> The static assets generated live under the `public/assets` folder, it
|
||||
> includes javascript, styles, images, fonts, icons and svg files.
|
||||
|
||||
### Initialize and populate database
|
||||
|
||||
::: tip Tip
|
||||
|
||||
You may skip this section if you go through the install wizard (go to
|
||||
`/cp-install`).
|
||||
|
||||
:::
|
||||
> [!TIP]
|
||||
> You may skip this section if you go through the install wizard (go to
|
||||
> `/cp-install`).
|
||||
|
||||
1. Build the database with the migrate command:
|
||||
|
||||
|
@ -377,15 +363,19 @@ more insights.
|
|||
|
||||
## Known issues
|
||||
|
||||
### Allocation failed - JavaScript heap out of memory
|
||||
|
||||
This happens when running `pnpm install`.
|
||||
|
||||
👉 By default, docker might not have access to enough RAM. Allocate more memory
|
||||
and run `pnpm install` again.
|
||||
|
||||
### (Linux) Files created inside container are attributed to root locally
|
||||
|
||||
You may use Linux user namespaces to fix this on your machine:
|
||||
|
||||
::: info Note
|
||||
|
||||
Replace "username" with your local username
|
||||
|
||||
:::
|
||||
> [!NOTE]
|
||||
> Replace "username" with your local username
|
||||
|
||||
1. Go to `/etc/docker/daemon.json` and add:
|
||||
|
169
CONTRIBUTING.md
|
@ -1,4 +1,167 @@
|
|||
# Contributing guidelines
|
||||
# Contributing to Castopod
|
||||
|
||||
You may find the contributing guidelines in the
|
||||
[Castopod documentation website](https://docs.castopod.org/contributing/guidelines.html).
|
||||
Love Castopod and want to help? Thanks so much, there's something to do for
|
||||
everybody!
|
||||
|
||||
> [!NOTE]
|
||||
> Castopod follows the [all contributors](https://allcontributors.org/)
|
||||
> specification in an effort to **recognize any kind of contribution**, not just
|
||||
> code!
|
||||
> If you've made a contribution and do not appear in the
|
||||
> [contributors](../index.md#contributors-✨) list, please
|
||||
> [let us know](../index.md#contact) so we can correct our mistake! 🙂
|
||||
|
||||
Please take a moment to review this document in order to make the contribution
|
||||
process easy and effective for everyone involved.
|
||||
|
||||
Following these guidelines helps to communicate that you respect the time of the
|
||||
developers managing and developing this open source project. In return, they
|
||||
should reciprocate that respect in addressing your issue or assessing patches
|
||||
and features.
|
||||
|
||||
## Translating Castopod
|
||||
|
||||
We use [Crowdin](https://translate.castopod.org/) to manage translation files
|
||||
for [Castopod](https://code.castopod.org/), the
|
||||
[documentation](https://docs.castopod.org/) and the
|
||||
[landing](https://castopod.org/) websites.
|
||||
|
||||
Whether you'd like to correct a translation error, validate new translations or
|
||||
include your language to Castopod, head into the
|
||||
[crowdin project](https://translate.castopod.org/) to get started.
|
||||
|
||||
> [!NOTE]
|
||||
> To prevent degrading user experience, new languages are included to Castopod
|
||||
> when they reach a certain threshold (~90%).
|
||||
|
||||
## Using the issue tracker
|
||||
|
||||
The [issue tracker](https://code.castopod.org/adaures/castopod/-/issues) is the
|
||||
preferred channel for [bug reports](#bug-reports),
|
||||
[features requests](#feature-requests) and
|
||||
[submitting pull requests](#pull-requests).
|
||||
|
||||
## ⚠️ Security issues and vulnerabilities
|
||||
|
||||
If you encounter any security issue or vulnerability in the Castopod source,
|
||||
please contact us directly by email at
|
||||
[security@castopod.org](mailto:security@castopod.org)
|
||||
|
||||
## Bug reports
|
||||
|
||||
A bug is a _demonstrable problem_ that is caused by the code in the repository.
|
||||
Good bug reports are extremely helpful - thank you!
|
||||
|
||||
Guidelines for bug reports:
|
||||
|
||||
1. **Use the issue search** — check if the issue has already been
|
||||
reported.
|
||||
|
||||
2. **Check if the issue has been fixed** — try to reproduce it using the
|
||||
latest `main` branch in the repository.
|
||||
|
||||
3. **Isolate the problem** — ideally create a
|
||||
[reduced test case](https://css-tricks.com/reduced-test-cases/) and a live
|
||||
example.
|
||||
|
||||
A good bug report shouldn't leave others needing to chase you up for more
|
||||
information. Please try to be as detailed as possible in your report. What is
|
||||
your environment? What steps will reproduce the issue? What browser(s) and OS
|
||||
experience the problem? What would you expect to be the outcome? All these
|
||||
details will help people to fix any potential bugs.
|
||||
|
||||
> [!NOTE]
|
||||
> [Issue templates](https://docs.gitlab.com/ee/user/project/description_templates.html#using-the-templates)
|
||||
> have been created for this project. You may use them to help you follow those
|
||||
> guidelines.
|
||||
|
||||
## Feature requests
|
||||
|
||||
Feature requests are welcome. But take a moment to find out whether your idea
|
||||
fits with the scope and aims of the project. It's up to _you_ to make a strong
|
||||
case to convince the project's developers of the merits of this feature. Please
|
||||
provide as much detail and context as possible.
|
||||
|
||||
## Pull requests
|
||||
|
||||
Good pull requests - patches, improvements, new features - are a fantastic help.
|
||||
They should remain focused in scope and avoid containing unrelated commits.
|
||||
|
||||
**Please ask first** before embarking on any significant pull request (e.g.
|
||||
implementing features, refactoring code, porting to a different language),
|
||||
otherwise you risk spending a lot of time working on something that the
|
||||
project's developers might not want to merge into the project.
|
||||
|
||||
Please adhere to the coding conventions used throughout a project (indentation,
|
||||
accurate comments, etc.) and any other requirements (such as test coverage).
|
||||
|
||||
Adhering to the following process is the best way to get your work included in
|
||||
the project:
|
||||
|
||||
1. [Fork](https://docs.gitlab.com/ee/gitlab-basics/fork-project.html) the
|
||||
project, clone your fork, and configure the remotes:
|
||||
|
||||
```bash
|
||||
# Clone your fork of the repo into the current directory
|
||||
git clone https://code.castopod.org/<your-username>/castopod.git
|
||||
|
||||
# Navigate to the newly cloned directory
|
||||
cd castopod
|
||||
|
||||
# Assign the original repo to a remote called "upstream"
|
||||
git remote add upstream https://code.castopod.org/adaures/castopod.git
|
||||
```
|
||||
|
||||
2. If you cloned a while ago, get the latest changes from upstream:
|
||||
|
||||
```bash
|
||||
git checkout main
|
||||
git pull upstream main
|
||||
```
|
||||
|
||||
3. Create a new topic branch (off the `main` branch) to contain your feature,
|
||||
change, or fix:
|
||||
|
||||
```bash
|
||||
git checkout -b <topic-branch-name>
|
||||
```
|
||||
|
||||
4. Commit your changes in logical chunks. Please adhere to these
|
||||
[git commit message guidelines](https://conventionalcommits.org/) or your
|
||||
code is unlikely be merged into the main project. Use Git's
|
||||
[interactive rebase](https://help.github.com/articles/about-git-rebase/)
|
||||
feature to tidy up your commits before making them public.
|
||||
|
||||
5. Locally merge (or rebase) the upstream dev branch into your topic branch:
|
||||
|
||||
```bash
|
||||
git pull [--rebase] upstream main
|
||||
```
|
||||
|
||||
6. Push your topic branch up to your fork:
|
||||
|
||||
```bash
|
||||
git push origin <topic-branch-name>
|
||||
```
|
||||
|
||||
7. [Open a Pull Request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#new-merge-request-from-a-fork)
|
||||
with a clear title and description.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> By submitting a patch, you agree to allow the project owners to license your
|
||||
> work under the terms of the
|
||||
> [GNU AGPLv3](https://code.castopod.org/adaures/castopod/-/blob/develop/LICENSE.md).
|
||||
|
||||
## Collaborating guidelines
|
||||
|
||||
There are few basic rules to ensure high quality of the project:
|
||||
|
||||
- Before merging, a PR requires at least two approvals from the collaborators
|
||||
unless it's an architectural change, a large feature, etc. If it is, then at
|
||||
least 50% of the core team have to agree to merge it, with every team member
|
||||
having a full veto right. (i.e. every single one can block any PR)
|
||||
- A PR should remain open for at least two days before merging (does not apply
|
||||
for trivial contributions like fixing a typo). This way everyone has enough
|
||||
time to look into it.
|
||||
|
||||
You are always welcome to discuss and propose improvements to this guideline.
|
||||
|
|
26
README.md
|
@ -31,12 +31,9 @@ please contact us directly by email at
|
|||
|
||||
Contributions are always welcome!
|
||||
|
||||
See the
|
||||
[contribution guidelines](https://docs.castopod.org/contributing/guidelines) for
|
||||
ways to get started.
|
||||
See the [contribution guidelines](./CONTRIBUTING.md) for ways to get started.
|
||||
|
||||
> **Note**
|
||||
>
|
||||
> [!Important]
|
||||
> **Any** contribution made on a repository other than
|
||||
> [the original repository](https://code.castopod.org/adaures/castopod) will not
|
||||
> be accepted.
|
||||
|
@ -49,7 +46,8 @@ Thanks goes to these wonderful people
|
|||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
|
||||
<table class="all-contributors-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>
|
||||
|
@ -59,7 +57,7 @@ Thanks goes to these wonderful people
|
|||
<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><br />
|
||||
<tr>
|
||||
<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> <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/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>
|
||||
|
@ -68,7 +66,7 @@ Thanks goes to these wonderful people
|
|||
<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>
|
||||
</tr>
|
||||
</tr><br />
|
||||
<tr>
|
||||
<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>
|
||||
<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>
|
||||
|
@ -77,7 +75,7 @@ Thanks goes to these wonderful people
|
|||
<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>
|
||||
</tr>
|
||||
</tr><br />
|
||||
<tr>
|
||||
<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>
|
||||
<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>
|
||||
|
@ -86,7 +84,7 @@ Thanks goes to these wonderful people
|
|||
<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://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><br />
|
||||
<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>
|
||||
|
@ -95,7 +93,7 @@ Thanks goes to these wonderful people
|
|||
<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><br />
|
||||
<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>
|
||||
|
@ -104,7 +102,7 @@ Thanks goes to these wonderful people
|
|||
<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><br />
|
||||
<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>
|
||||
|
@ -113,7 +111,7 @@ Thanks goes to these wonderful people
|
|||
<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>
|
||||
</tr><br />
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/KrzysztofDomanczyk"><img src="https://avatars.githubusercontent.com/u/75178474?v=4?s=100" width="100px;" alt="KrzysztofDomanczyk"/><br /><sub><b>KrzysztofDomanczyk</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/NeoluxConsulting"><img src="https://secure.gravatar.com/avatar/6e745565356330c1e29a85d52bffdaa1?s=80&d=identicon?s=100" width="100px;" alt="Guy Martin"/><br /><sub><b>Guy Martin</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=NeoluxConsulting" title="Bug reports">🐛</a> <a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</a></td>
|
||||
|
@ -121,6 +119,8 @@ Thanks goes to these wonderful people
|
|||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<!-- markdownlint-restore -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
|
|
|
@ -127,13 +127,13 @@ class App extends BaseConfig
|
|||
'fr',
|
||||
'pl',
|
||||
'de',
|
||||
'pt-BR',
|
||||
'nn-NO',
|
||||
'pt-br',
|
||||
'nn-no',
|
||||
'es',
|
||||
'zh-Hans',
|
||||
'zh-hans',
|
||||
'ca',
|
||||
'br',
|
||||
'sr-Latn',
|
||||
'sr-latn',
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
+ fr/***
|
||||
+ pl/***
|
||||
+ de/***
|
||||
+ pt-BR/***
|
||||
+ nn-NO/***
|
||||
+ pt-br/***
|
||||
+ nn-no/***
|
||||
+ es/***
|
||||
+ zh-Hans/***
|
||||
+ zh-hans/***
|
||||
+ ca/***
|
||||
+ br/***
|
||||
+ sr-Latn/***
|
||||
+ sr-latn/***
|
||||
- **
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
<?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',
|
||||
];
|
|
@ -1,30 +0,0 @@
|
|||
<?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',
|
||||
];
|
|
@ -1,33 +0,0 @@
|
|||
<?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',
|
||||
];
|
|
@ -1,37 +0,0 @@
|
|||
<?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',
|
||||
],
|
||||
];
|
|
@ -1,20 +0,0 @@
|
|||
<?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',
|
||||
];
|
|
@ -1,17 +0,0 @@
|
|||
<?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.',
|
||||
],
|
||||
];
|
|
@ -1,53 +0,0 @@
|
|||
<?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',
|
||||
];
|
|
@ -1,40 +0,0 @@
|
|||
<?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',
|
||||
];
|
|
@ -1 +1 @@
|
|||
<svg viewBox="0 0 24 24" fill="currentColor" width="1em" height="1em"><path d="M16.455 10.658c0 1.09-.705 2.244-2.098 3.443a13.447 13.447 0 0 1-2.381 1.62 14.102 14.102 0 0 1-2.381-1.629c-1.4-1.2-2.106-2.353-2.106-3.443 0-1.346.887-2.298 2.106-2.298.558 0 .888.054 1.263.238.22.1.412.237.577.403l.541.55.532-.55a2.07 2.07 0 0 1 .586-.421c.366-.166.678-.22 1.254-.22 1.209.018 2.107.988 2.107 2.307Z" clip-rule="evenodd"/><path d="M22 3.915v16.17A1.911 1.911 0 0 1 20.085 22H3.915A1.911 1.911 0 0 1 2 20.085V3.915C2 2.855 2.854 2 3.915 2h8.066c.267 0 .503.107.68.282a.986.986 0 0 1 .281.68v2.807a.962.962 0 0 1-1.922 0V3.923H4.83a.919.919 0 0 0-.916.916v14.346c0 .51.413.915.916.915h14.346a.914.914 0 0 0 .916-.915V4.839a.942.942 0 0 0-.275-.649s-.214-.206-.48-.252c-.032-.008-.07-.008-.07-.008-.03 0-.061-.007-.09-.007h-2.504a.967.967 0 0 1-.96-.962c0-.526.434-.961.96-.961h3.41A1.907 1.907 0 0 1 22 3.915Z"/></svg>
|
||||
<svg fill="currentColor" viewBox="0 0 24 24" width="1em" height="1em"><path d="M16.455 10.658c0 1.09-.705 2.244-2.098 3.443a13.447 13.447 0 0 1-2.381 1.62 14.102 14.102 0 0 1-2.381-1.629c-1.4-1.2-2.106-2.353-2.106-3.443 0-1.346.887-2.298 2.106-2.298.558 0 .888.054 1.263.238.22.1.412.237.577.403l.541.55.532-.55a2.07 2.07 0 0 1 .586-.421c.366-.166.678-.22 1.254-.22 1.209.018 2.107.988 2.107 2.307Z" clip-rule="evenodd"/><path d="M22 3.915v16.17A1.911 1.911 0 0 1 20.085 22H3.915A1.911 1.911 0 0 1 2 20.085V3.915C2 2.855 2.854 2 3.915 2h8.066c.267 0 .503.107.68.282a.986.986 0 0 1 .281.68v2.807a.962.962 0 0 1-1.922 0V3.923H4.83a.919.919 0 0 0-.916.916v14.346c0 .51.413.915.916.915h14.346a.914.914 0 0 0 .916-.915V4.839a.942.942 0 0 0-.275-.649s-.214-.206-.48-.252c-.032-.008-.07-.008-.07-.008-.03 0-.061-.007-.09-.007h-2.504a.967.967 0 0 1-.96-.962c0-.526.434-.961.96-.961h3.41A1.907 1.907 0 0 1 22 3.915Z"/></svg>
|
Before Width: | Height: | Size: 915 B After Width: | Height: | Size: 915 B |
|
@ -1 +1 @@
|
|||
<svg viewBox="0 0 24 24" fill="currentColor" width="1em" height="1em"><path fill="currentColor" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10s10-4.48 10-10S17.52 2 12 2m4.64 6.8c-.15 1.58-.8 5.42-1.13 7.19c-.14.75-.42 1-.68 1.03c-.58.05-1.02-.38-1.58-.75c-.88-.58-1.38-.94-2.23-1.5c-.99-.65-.35-1.01.22-1.59c.15-.15 2.71-2.48 2.76-2.69a.2.2 0 0 0-.05-.18c-.06-.05-.14-.03-.21-.02c-.09.02-1.49.95-4.22 2.79c-.4.27-.76.41-1.08.4c-.36-.01-1.04-.2-1.55-.37c-.63-.2-1.12-.31-1.08-.66c.02-.18.27-.36.74-.55c2.92-1.27 4.86-2.11 5.83-2.51c2.78-1.16 3.35-1.36 3.73-1.36c.08 0 .27.02.39.12c.1.08.13.19.14.27c-.01.06.01.24 0 .38"/></svg>
|
||||
<svg fill="currentColor" viewBox="0 0 24 24" width="1em" height="1em"><path fill="currentColor" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10s10-4.48 10-10S17.52 2 12 2m4.64 6.8c-.15 1.58-.8 5.42-1.13 7.19c-.14.75-.42 1-.68 1.03c-.58.05-1.02-.38-1.58-.75c-.88-.58-1.38-.94-2.23-1.5c-.99-.65-.35-1.01.22-1.59c.15-.15 2.71-2.48 2.76-2.69a.2.2 0 0 0-.05-.18c-.06-.05-.14-.03-.21-.02c-.09.02-1.49.95-4.22 2.79c-.4.27-.76.41-1.08.4c-.36-.01-1.04-.2-1.55-.37c-.63-.2-1.12-.31-1.08-.66c.02-.18.27-.36.74-.55c2.92-1.27 4.86-2.11 5.83-2.51c2.78-1.16 3.35-1.36 3.73-1.36c.08 0 .27.02.39.12c.1.08.13.19.14.27c-.01.06.01.24 0 .38"/></svg>
|
Before Width: | Height: | Size: 622 B After Width: | Height: | Size: 622 B |
|
@ -83,8 +83,7 @@
|
|||
height: 0;
|
||||
width: 0;
|
||||
border-style: solid;
|
||||
border-color: hsl(var(--color-text-muted)) transparent transparent
|
||||
transparent;
|
||||
border-color: hsl(var(--color-text-muted)) transparent transparent;
|
||||
border-width: 5px;
|
||||
position: absolute;
|
||||
right: 11.5px;
|
||||
|
@ -94,8 +93,7 @@
|
|||
}
|
||||
|
||||
.choices[data-type*="select-one"].is-open::after {
|
||||
border-color: transparent transparent hsl(var(--color-text-muted))
|
||||
transparent;
|
||||
border-color: transparent transparent hsl(var(--color-text-muted));
|
||||
margin-top: -7.5px;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
# build output
|
||||
dist/
|
||||
# generated types
|
||||
.astro/
|
||||
|
||||
# dependencies
|
||||
node_modules/
|
||||
|
||||
# logs
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
|
||||
# environment variables
|
||||
.env
|
||||
.env.production
|
||||
|
||||
# macOS-specific files
|
||||
.DS_Store
|
|
@ -1,4 +1,4 @@
|
|||
image: node:16
|
||||
image: node:20
|
||||
|
||||
stages:
|
||||
- build
|
||||
|
@ -6,25 +6,29 @@ stages:
|
|||
|
||||
.documentation-setup:
|
||||
before_script:
|
||||
- corepack enable
|
||||
- corepack prepare pnpm@latest-9 --activate
|
||||
- pnpm config set store-dir .pnpm-store
|
||||
- cd docs
|
||||
- chmod +x ./scripts/i18n-filter.sh
|
||||
- ./scripts/i18n-filter.sh src
|
||||
- npm install
|
||||
- pnpm install
|
||||
|
||||
cache:
|
||||
key:
|
||||
files:
|
||||
- docs/package-lock.json
|
||||
- docs/pnpm-lock.yaml
|
||||
paths:
|
||||
- docs/node_modules
|
||||
- .pnpm-store
|
||||
|
||||
# This job only serves for validating that the docs builds correctly on all non deployment branches
|
||||
build:
|
||||
extends: .documentation-setup
|
||||
stage: build
|
||||
script:
|
||||
- npm run build
|
||||
- pnpm run build
|
||||
except:
|
||||
- develop
|
||||
- main
|
||||
- beta
|
||||
- alpha
|
||||
|
@ -36,12 +40,13 @@ build-production:
|
|||
name: production
|
||||
url: https://docs.castopod.org/
|
||||
script:
|
||||
- npm run build
|
||||
- pnpm run build --outDir=docs/.dist/$CI_COMMIT_REF_SLUG --base=$CI_COMMIT_REF_SLUG
|
||||
artifacts:
|
||||
paths:
|
||||
- docs/.vitepress/dist
|
||||
- docs/dist/$CI_COMMIT_REF_SLUG
|
||||
expire_in: 30 mins
|
||||
only:
|
||||
- develop
|
||||
- main
|
||||
- beta
|
||||
- alpha
|
||||
|
@ -54,10 +59,10 @@ deploy:
|
|||
variables:
|
||||
HOST: $DOCS_HOST
|
||||
USER: $DOCS_USER
|
||||
TEMP_DIRECTORY: $DOCS_TEMP_DIRECTORY
|
||||
DIRECTORY: $DOCS_DIRECTORY
|
||||
TEMP_DIRECTORY: $DOCS_TEMP_DIRECTORY/$CI_COMMIT_REF_SLUG/
|
||||
DIRECTORY: $DOCS_DIRECTORY/$CI_COMMIT_REF_SLUG/
|
||||
SSH_PORT: 3242
|
||||
SOURCE_FOLDER: "docs/.vitepress/dist/"
|
||||
SOURCE_FOLDER: "docs/dist/$CI_COMMIT_REF_SLUG/"
|
||||
before_script:
|
||||
# install rsync for file transfers
|
||||
- apt-get update && apt-get install rsync -y
|
||||
|
@ -71,6 +76,7 @@ deploy:
|
|||
- rsync -avzuh -e "ssh -p $SSH_PORT" $SOURCE_FOLDER $USER@$HOST:$TEMP_DIRECTORY --progress
|
||||
- ssh $USER@$HOST -p $SSH_PORT "rsync -rtv $TEMP_DIRECTORY $DIRECTORY"
|
||||
only:
|
||||
- develop
|
||||
- main
|
||||
- beta
|
||||
- alpha
|
||||
|
|
|
@ -1,280 +0,0 @@
|
|||
import { defineConfig } from "vitepress";
|
||||
|
||||
export default defineConfig({
|
||||
srcDir: "src",
|
||||
|
||||
head: [
|
||||
["link", { rel: "icon", type: "image/x-icon", href: "/favicon.ico" }],
|
||||
["link", { rel: "canonical", href: "https://docs.castopod.org/" }],
|
||||
["meta", { name: "robots", content: "index, follow" }],
|
||||
["meta", { property: "og:type", content: "website" }],
|
||||
[
|
||||
"meta",
|
||||
{
|
||||
property: "og:image",
|
||||
content: "https://docs.castopod.org/images/open-graph.jpg",
|
||||
},
|
||||
],
|
||||
["meta", { property: "og:image:type", content: "image/jpeg" }],
|
||||
["meta", { property: "og:image:width", content: "1200" }],
|
||||
["meta", { property: "og:image:height", content: "630" }],
|
||||
[
|
||||
"meta",
|
||||
{
|
||||
property: "og:image:alt",
|
||||
content:
|
||||
"Castopod mascot waving hello and holding a browser showcasing the Castopod documentation.",
|
||||
},
|
||||
],
|
||||
["meta", { property: "og:url", content: "https://docs.castopod.org/" }],
|
||||
["meta", { name: "twitter:site", content: "@castopod" }],
|
||||
["meta", { name: "twitter:card", content: "summary_large_image" }],
|
||||
["meta", { name: "twitter:creator", content: "@ad_aures" }],
|
||||
[
|
||||
"script",
|
||||
{
|
||||
defer: "defer",
|
||||
"data-domain": "docs.castopod.org",
|
||||
src: "https://analytics.castopod.org/js/plausible.js",
|
||||
},
|
||||
],
|
||||
],
|
||||
|
||||
locales: {
|
||||
"/": {
|
||||
lang: "en",
|
||||
title: "Castopod documentation",
|
||||
description:
|
||||
"Check out the Castopod documentation! Install your own free & open-source podcast host, help make it better by contributing, or simply learn more about Castopod!",
|
||||
},
|
||||
"/fr/": {
|
||||
lang: "fr",
|
||||
title: "Documentation Castopod",
|
||||
description:
|
||||
"Castopod est une plateforme d’hébergement gratuite & open-source conçue pour les podcasteurs qui veulent échanger et interagir avec leur public.",
|
||||
},
|
||||
"/pt-BR/": {
|
||||
lang: "pt-BR",
|
||||
title: "Documentação Castopod",
|
||||
description:
|
||||
"Castopod é uma plataforma de hospedagem de código livre & aberto feita para podcasters que querem se envolver e interagir com seu público.",
|
||||
},
|
||||
"/nn-NO/": {
|
||||
lang: "nn-NO",
|
||||
title: "Castopod dokumentasjon",
|
||||
description:
|
||||
"Castopod er ei open og gratis løysing for dei som vil køyra si eiga podkasting-plattform, og for podkastarar som vil engasjera og samhandla med publikum.",
|
||||
},
|
||||
},
|
||||
|
||||
themeConfig: {
|
||||
logo: "/images/castopod-icon.svg",
|
||||
lastUpdated: "Last Updated",
|
||||
repo: "https://code.castopod.org/adaures/castopod",
|
||||
docsDir: "docs/src",
|
||||
docsBranch: "develop",
|
||||
editLinks: true,
|
||||
locales: {
|
||||
"/": {
|
||||
label: "English",
|
||||
selectText: "Languages",
|
||||
repoLabel: "Source code",
|
||||
nav: [
|
||||
{
|
||||
text: "Home",
|
||||
link: "https://castopod.org/",
|
||||
},
|
||||
{
|
||||
text: "Blog",
|
||||
link: "https://blog.castopod.org/",
|
||||
},
|
||||
{
|
||||
text: "Github",
|
||||
link: "https://github.com/ad-aures/castopod",
|
||||
},
|
||||
],
|
||||
sidebar: {
|
||||
"/": getGuideSidebarEn(),
|
||||
},
|
||||
},
|
||||
"/fr/": {
|
||||
label: "Français",
|
||||
selectText: "Langues",
|
||||
repoLabel: "Code source",
|
||||
nav: [
|
||||
{
|
||||
text: "Accueil",
|
||||
link: "https://castopod.org/",
|
||||
},
|
||||
{
|
||||
text: "Blog",
|
||||
link: "https://blog.castopod.org/",
|
||||
},
|
||||
{
|
||||
text: "Github",
|
||||
link: "https://github.com/ad-aures/castopod",
|
||||
},
|
||||
],
|
||||
sidebar: {
|
||||
"/": getGuideSidebarFr(),
|
||||
},
|
||||
},
|
||||
"/pt-BR/": {
|
||||
label: "Português do Brasil",
|
||||
selectText: "Línguas",
|
||||
repoLabel: "Código fonte",
|
||||
nav: [
|
||||
{
|
||||
text: "Início",
|
||||
link: "https://castopod.org/",
|
||||
},
|
||||
{
|
||||
text: "Blogue",
|
||||
link: "https://blog.castopod.org/",
|
||||
},
|
||||
{
|
||||
text: "Github",
|
||||
link: "https://github.com/ad-aures/castopod",
|
||||
},
|
||||
],
|
||||
sidebar: { "/pt-BR/": getGuideSidebarPtBR() },
|
||||
},
|
||||
"/nn-NO/": {
|
||||
label: "Norsk nynorsk",
|
||||
selectText: "Språk",
|
||||
repoLabel: "Kildekode",
|
||||
nav: [
|
||||
{
|
||||
text: "Heim",
|
||||
link: "https://castopod.org/",
|
||||
},
|
||||
{
|
||||
text: "Blogg",
|
||||
link: "https://blog.castopod.org/",
|
||||
},
|
||||
{
|
||||
text: "Github",
|
||||
link: "https://github.com/ad-aures/castopod",
|
||||
},
|
||||
],
|
||||
sidebar: { "/nn-NO/": getGuideSidebarNnNO() },
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
function getGuideSidebarEn() {
|
||||
return [
|
||||
{
|
||||
text: "Introduction",
|
||||
link: "/",
|
||||
},
|
||||
{
|
||||
text: "Getting started",
|
||||
children: [
|
||||
{ text: "Install", link: "/getting-started/install" },
|
||||
{
|
||||
text: "Docker",
|
||||
link: "/getting-started/docker",
|
||||
},
|
||||
{ text: "Security", link: "/getting-started/security" },
|
||||
{ text: "Update", link: "/getting-started/update" },
|
||||
{ text: "Auth", link: "/getting-started/auth" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Contributing",
|
||||
children: [
|
||||
{ text: "Guide", link: "/contributing/guidelines" },
|
||||
{ text: "Dev Setup", link: "/contributing/setup-development" },
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
function getGuideSidebarFr() {
|
||||
return [
|
||||
{
|
||||
text: "Introduction",
|
||||
link: "/fr/",
|
||||
},
|
||||
{
|
||||
text: "Commencer",
|
||||
children: [
|
||||
{ text: "Installer", link: "/fr/getting-started/install" },
|
||||
{
|
||||
text: "Docker",
|
||||
link: "/fr/getting-started/docker",
|
||||
},
|
||||
{ text: "Sécurité", link: "/fr/getting-started/security" },
|
||||
{ text: "Mise à jour", link: "/fr/getting-started/update" },
|
||||
{ text: "Authentification", link: "/fr/getting-started/auth" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Contributing",
|
||||
children: [
|
||||
{ text: "Guide", link: "/fr/contributing/guidelines" },
|
||||
{ text: "Dev Setup", link: "/fr/contributing/setup-development" },
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
function getGuideSidebarPtBR() {
|
||||
return [
|
||||
{
|
||||
text: "Introdução",
|
||||
link: "/pt-BR/",
|
||||
},
|
||||
{
|
||||
text: "Começando",
|
||||
children: [
|
||||
{ text: "Instalar", link: "/pt-BR/getting-started/install" },
|
||||
{
|
||||
text: "Docker",
|
||||
link: "/pt-BR/getting-started/docker",
|
||||
},
|
||||
{ text: "Segurança", link: "/pt-BR/getting-started/security" },
|
||||
{ text: "Atualizar", link: "/pt-BR/getting-started/update" },
|
||||
{ text: "Autenticação", link: "/pt-BR/getting-started/auth" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Contributing",
|
||||
children: [
|
||||
{ text: "Guide", link: "/pt-BR/contributing/guidelines" },
|
||||
{ text: "Dev Setup", link: "/pt-BR/contributing/setup-development" },
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
function getGuideSidebarNnNO() {
|
||||
return [
|
||||
{
|
||||
text: "Introduksjon",
|
||||
link: "/nn-NO/",
|
||||
},
|
||||
{
|
||||
text: "Starter",
|
||||
children: [
|
||||
{ text: "Installer", link: "/nn-NO/getting-started/install" },
|
||||
{
|
||||
text: "Docker",
|
||||
link: "/nn-NO/getting-started/docker",
|
||||
},
|
||||
{ text: "Sikkerhet", link: "/nn-NO/getting-started/security" },
|
||||
{ text: "Oppdaterer", link: "/nn-NO/getting-started/update" },
|
||||
{ text: "Autentisering", link: "/pt-BR/getting-started/auth" },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Contributing",
|
||||
children: [
|
||||
{ text: "Guide", link: "/nn-NO/contributing/guidelines" },
|
||||
{ text: "Dev Setup", link: "/nn-NO/contributing/setup-development" },
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
import Theme from "vitepress/theme";
|
||||
import "./tailwind.css";
|
||||
|
||||
export default {
|
||||
...Theme,
|
||||
};
|
|
@ -1,2 +0,0 @@
|
|||
@tailwind components;
|
||||
@tailwind utilities;
|
|
@ -0,0 +1,58 @@
|
|||
# Castopod Docs
|
||||
|
||||
[![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build)
|
||||
|
||||
```sh
|
||||
pnpm create astro@latest -- --template starlight
|
||||
```
|
||||
|
||||
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/starlight/tree/main/examples/basics)
|
||||
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/starlight/tree/main/examples/basics)
|
||||
|
||||
> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun!
|
||||
|
||||
## 🚀 Project Structure
|
||||
|
||||
Inside of your Astro + Starlight project, you'll see the following folders and
|
||||
files:
|
||||
|
||||
```
|
||||
.
|
||||
├── public/
|
||||
├── src/
|
||||
│ ├── assets/
|
||||
│ ├── content/
|
||||
│ │ ├── docs/
|
||||
│ │ └── config.ts
|
||||
│ └── env.d.ts
|
||||
├── astro.config.mjs
|
||||
├── package.json
|
||||
└── tsconfig.json
|
||||
```
|
||||
|
||||
Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory.
|
||||
Each file is exposed as a route based on its file name.
|
||||
|
||||
Images can be added to `src/assets/` and embedded in Markdown with a relative
|
||||
link.
|
||||
|
||||
Static assets, like favicons, can be placed in the `public/` directory.
|
||||
|
||||
## 🧞 Commands
|
||||
|
||||
All commands are run from the root of the project, from a terminal:
|
||||
|
||||
| Command | Action |
|
||||
| :------------------------ | :----------------------------------------------- |
|
||||
| `npm install` | Installs dependencies |
|
||||
| `npm run dev` | Starts local dev server at `localhost:4321` |
|
||||
| `npm run build` | Build your production site to `./dist/` |
|
||||
| `npm run preview` | Preview your build locally, before deploying |
|
||||
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
|
||||
| `npm run astro -- --help` | Get help using the Astro CLI |
|
||||
|
||||
## 👀 Want to learn more?
|
||||
|
||||
Check out [Starlight’s docs](https://starlight.astro.build/), read
|
||||
[the Astro documentation](https://docs.astro.build), or jump into the
|
||||
[Astro Discord server](https://astro.build/chat).
|
|
@ -0,0 +1,191 @@
|
|||
import { defineConfig } from "astro/config";
|
||||
import starlight from "@astrojs/starlight";
|
||||
|
||||
import tailwind from "@astrojs/tailwind";
|
||||
|
||||
const site = "https://docs.castopod.org/";
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
site,
|
||||
base: "/docs",
|
||||
integrations: [
|
||||
starlight({
|
||||
title: "Castopod Docs",
|
||||
description:
|
||||
"Check out the Castopod documentation! Install your own free & open-source podcast host, help make it better by contributing, or simply learn more about Castopod!",
|
||||
logo: {
|
||||
src: "./src/assets/castopod-logo-inline.svg",
|
||||
replacesTitle: true,
|
||||
},
|
||||
favicon: "/favicon.ico",
|
||||
customCss: [
|
||||
"@fontsource/inter/400.css",
|
||||
"@fontsource/inter/600.css",
|
||||
"@fontsource/rubik/700.css",
|
||||
"./src/styles/tailwind.css",
|
||||
],
|
||||
head: [
|
||||
{
|
||||
tag: "meta",
|
||||
attrs: {
|
||||
property: "og:type",
|
||||
content: "website",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "meta",
|
||||
attrs: {
|
||||
property: "og:image",
|
||||
content: site + "open-graph.jpg?v=1",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "meta",
|
||||
attrs: { property: "og:image:type", content: "image/jpeg" },
|
||||
},
|
||||
{ tag: "meta", attrs: { property: "og:image:width", content: "1200" } },
|
||||
{ tag: "meta", attrs: { property: "og:image:height", content: "630" } },
|
||||
{
|
||||
tag: "meta",
|
||||
attrs: {
|
||||
property: "og:image:alt",
|
||||
content:
|
||||
"Castopod mascot waving hello and holding a browser showcasing the Castopod documentation.",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "meta",
|
||||
attrs: { property: "og:url", content: "https://docs.castopod.org/" },
|
||||
},
|
||||
{ tag: "meta", attrs: { name: "twitter:site", content: "@castopod" } },
|
||||
{
|
||||
tag: "meta",
|
||||
attrs: { name: "twitter:card", content: "summary_large_image" },
|
||||
},
|
||||
{
|
||||
tag: "meta",
|
||||
attrs: { name: "twitter:creator", content: "@ad_aures" },
|
||||
},
|
||||
{
|
||||
tag: "script",
|
||||
attrs: {
|
||||
src: "https://analytics.castopod.org/js/plausible.js",
|
||||
"data-domain": "docs.castopod.org",
|
||||
defer: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
defaultLocale: "en",
|
||||
locales: {
|
||||
en: {
|
||||
label: "English",
|
||||
},
|
||||
ca: {
|
||||
label: "Català",
|
||||
},
|
||||
de: {
|
||||
label: "Deutsch",
|
||||
},
|
||||
es: {
|
||||
label: "Español",
|
||||
},
|
||||
fr: {
|
||||
label: "Français",
|
||||
},
|
||||
"nn-no": {
|
||||
label: "Norsk nynorsk",
|
||||
lang: "nn-NO",
|
||||
},
|
||||
"pt-br": {
|
||||
label: "Português do Brasil",
|
||||
lang: "pt-BR",
|
||||
},
|
||||
"sr-latn": {
|
||||
label: "Srpski",
|
||||
lang: "sr-Latn",
|
||||
},
|
||||
"zh-hans": {
|
||||
label: "中文",
|
||||
lang: "zh-Hans",
|
||||
},
|
||||
},
|
||||
social: {
|
||||
discord: "https://castopod.org/chat",
|
||||
"x.com": "https://twitter.com/castopod",
|
||||
mastodon: "https://podlibre.social/@Castopod",
|
||||
gitlab: "https://code.castopod.org/adaures/castopod",
|
||||
github: "https://github.com/ad-aures/castopod",
|
||||
},
|
||||
sidebar: [
|
||||
{
|
||||
label: "Instroduction",
|
||||
link: "/",
|
||||
translations: {
|
||||
fr: "Installer",
|
||||
"pt-br": "Instalar",
|
||||
"nn-no": "Installer",
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Getting started",
|
||||
translations: {
|
||||
fr: "Commencer",
|
||||
"pt-br": "Começando",
|
||||
"nn-no": "Starter",
|
||||
},
|
||||
items: [
|
||||
// Each item here is one entry in the navigation menu.
|
||||
{
|
||||
label: "Install",
|
||||
link: "/getting-started/install/",
|
||||
translations: {
|
||||
fr: "Installer",
|
||||
"pt-br": "Instalar",
|
||||
"nn-no": "Installer",
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Docker",
|
||||
link: "/getting-started/docker/",
|
||||
},
|
||||
{
|
||||
label: "Security",
|
||||
link: "/getting-started/security/",
|
||||
translations: {
|
||||
fr: "Sécurité",
|
||||
"pt-br": "Segurança",
|
||||
"nn-no": "Sikkerhet",
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Update",
|
||||
link: "/getting-started/update/",
|
||||
translations: {
|
||||
fr: "Mise à jour",
|
||||
"pt-br": "Atualizar",
|
||||
"nn-no": "Oppdaterer",
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Auth",
|
||||
link: "/getting-started/auth/",
|
||||
translations: {
|
||||
fr: "Authentification",
|
||||
"pt-br": "Autenticação",
|
||||
"nn-no": "Autentisering",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
editLink: {
|
||||
baseUrl:
|
||||
"https://code.castopod.org/adaures/castopod/-/edit/develop/docs/",
|
||||
},
|
||||
}),
|
||||
tailwind({
|
||||
applyBaseStyles: false,
|
||||
}),
|
||||
],
|
||||
});
|
|
@ -1,21 +1,28 @@
|
|||
{
|
||||
"name": "castopod-docs",
|
||||
"version": "0.0.0-development",
|
||||
"description": "Castopod documentation using vitepress",
|
||||
"main": "index.js",
|
||||
"name": "civil-chasm",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"dev": "vitepress --port=3050",
|
||||
"build": "vitepress build",
|
||||
"serve": "vitepress serve"
|
||||
"dev": "astro dev",
|
||||
"start": "astro dev",
|
||||
"build": "astro check && astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro",
|
||||
"prepare": "astro telemetry disable"
|
||||
},
|
||||
"author": {
|
||||
"name": "Yassine Doghri",
|
||||
"email": "yassine@doghri.fr",
|
||||
"url": "https://code.castopod.org/yassine"
|
||||
},
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"devDependencies": {
|
||||
"tailwindcss": "^3.2.7",
|
||||
"vitepress": "^0.22.4"
|
||||
"dependencies": {
|
||||
"@astrojs/check": "^0.7.0",
|
||||
"@astrojs/starlight": "^0.22.4",
|
||||
"@astrojs/starlight-tailwind": "^2.0.2",
|
||||
"@astrojs/tailwind": "^5.1.0",
|
||||
"@fontsource/inter": "^5.0.18",
|
||||
"@fontsource/rubik": "^5.0.20",
|
||||
"astro": "^4.8.6",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"cssnano": "^7.0.1",
|
||||
"postcss-preset-env": "^9.5.13",
|
||||
"sharp": "^0.33.4",
|
||||
"tailwindcss": "^3.4.3",
|
||||
"typescript": "^5.4.5"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
module.exports = {
|
||||
plugins: [
|
||||
require("autoprefixer"),
|
||||
require("cssnano"),
|
||||
require("postcss-preset-env")({
|
||||
stage: 3,
|
||||
features: { "nesting-rules": false },
|
||||
}),
|
||||
],
|
||||
};
|
|
@ -1,5 +0,0 @@
|
|||
/* eslint-disable */
|
||||
|
||||
module.exports = {
|
||||
plugins: [require("tailwindcss")],
|
||||
};
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
@ -1,7 +1,13 @@
|
|||
public
|
||||
contributing
|
||||
getting-started
|
||||
index.md
|
||||
fr
|
||||
pt-BR
|
||||
nn-NO
|
||||
assets
|
||||
styles
|
||||
env.d.ts
|
||||
content/config.ts
|
||||
content/docs/en
|
||||
content/docs/ca
|
||||
content/docs/de
|
||||
content/docs/es
|
||||
content/docs/fr
|
||||
content/docs/nn-no
|
||||
content/docs/pt-br
|
||||
content/docs/sr-latn
|
||||
content/docs/zh-hans
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"label": "Getting Started",
|
||||
"position": 2
|
||||
}
|
|
@ -1,300 +0,0 @@
|
|||
---
|
||||
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://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> <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/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>
|
||||
</tr>
|
||||
<tr>
|
||||
<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>
|
||||
<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>
|
||||
</tr>
|
||||
<tr>
|
||||
<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>
|
||||
<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://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>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/KrzysztofDomanczyk"><img src="https://avatars.githubusercontent.com/u/75178474?v=4?s=100" width="100px;" alt="KrzysztofDomanczyk"/><br /><sub><b>KrzysztofDomanczyk</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/NeoluxConsulting"><img src="https://secure.gravatar.com/avatar/6e745565356330c1e29a85d52bffdaa1?s=80&d=identicon?s=100" width="100px;" alt="Guy Martin"/><br /><sub><b>Guy Martin</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=NeoluxConsulting" title="Bug reports">🐛</a> <a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</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
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 147 KiB |
|
@ -0,0 +1,7 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 261 50">
|
||||
<style>
|
||||
@media (prefers-color-scheme: dark) {
|
||||
svg { background-color: white; }
|
||||
}
|
||||
</style>
|
||||
<g clip-path="url(#a)"><path fill="#2A2D7C" d="M96.9 15.975v22.95h-6.1l-.675-1.625a10.875 10.875 0 0 1-6.925 2.5 11.699 11.699 0 0 1-12.05-12.3A11.65 11.65 0 0 1 83.2 15.35c2.554-.01 5.03.874 7 2.5l.825-1.775 5.875-.1Zm-7.5 11.5a5.15 5.15 0 1 0-10.275 0 5.15 5.15 0 1 0 10.275 0Zm36.725-19.75V38.95h-5.85l-.75-1.7a10.549 10.549 0 0 1-6.925 2.5 11.702 11.702 0 0 1-12.1-12.25 11.699 11.699 0 0 1 12.1-12.25c2.013-.018 3.99.537 5.7 1.6V7.725h7.825ZM118.8 27.5a5.152 5.152 0 0 0-5.137-5.509 5.151 5.151 0 0 0-5.138 5.509 5.152 5.152 0 0 0 5.138 5.509A5.15 5.15 0 0 0 118.8 27.5Zm45.925-11.525v22.95h-6.1L158 37.3a10.823 10.823 0 0 1-6.925 2.5A11.677 11.677 0 0 1 139 27.5a11.61 11.61 0 0 1 .763-4.706 11.612 11.612 0 0 1 6.564-6.633 11.626 11.626 0 0 1 4.698-.811 10.87 10.87 0 0 1 7 2.5l.825-1.775 5.875-.1Zm-7.5 11.5a5.152 5.152 0 0 0-5.137-5.509 5.151 5.151 0 0 0-5.138 5.509 5.152 5.152 0 0 0 5.138 5.509 5.15 5.15 0 0 0 5.137-5.509Zm12.2 1.625V16h7.9v12.75c0 2.5 1.3 3.85 3.425 3.85s3.375-1.45 3.375-3.85V16h7.9v13.1c0 6.425-4.5 10.6-11.275 10.6s-11.325-4.175-11.325-10.6Zm42.225-13.2v7.225h-3.075c-2.8 0-3.975 1.225-3.975 4.15V38.95h-7.9V16h5.3l1.225 2.5a7.675 7.675 0 0 1 6.325-2.65l2.1.05ZM238 27.275a14.703 14.703 0 0 1-.15 2.075H220.7a4.476 4.476 0 0 0 4.8 4 4.628 4.628 0 0 0 4.15-2.15h7.85a12.497 12.497 0 0 1-13.868 8.866A12.5 12.5 0 0 1 213 27.5a12.5 12.5 0 1 1 25-.2v-.025ZM220.85 25h9.275a4.6 4.6 0 0 0-4.625-3.55 4.425 4.425 0 0 0-4.65 3.55Zm29.5 14.7c-6.25 0-10-3.3-10-8.275h7.5a2.347 2.347 0 0 0 1.638 2.415 2.35 2.35 0 0 0 1.037.085c1.15 0 2.25-.575 2.25-1.775s-1.725-1.7-3.925-2.05c-3.6-.625-8.35-1.7-8.35-7.275 0-4.6 3.925-7.5 9.8-7.5 5.875 0 9.65 3.125 9.725 7.775h-7.5c0-1.475-.975-2.15-2.5-2.15s-2.125.625-2.125 1.675 1.75 1.625 3.925 2c3.625.65 8.45 1.4 8.45 7.225 0 4.8-4.05 7.925-10.15 7.925l.225-.075ZM.5 0v50h50V0H.5Zm33.35 31.65a9.6 9.6 0 0 1-6.275 9 9.75 9.75 0 0 1-3.325.6 9.6 9.6 0 0 1-3.325-18.6 2.5 2.5 0 0 1 3.3 1.525A2.5 2.5 0 0 1 22.7 27.5a4.454 4.454 0 0 0 3.1 8.35 4.4 4.4 0 0 0 2.9-4.175v-13.7a4.1 4.1 0 0 0-8.2 0 2.5 2.5 0 0 1-5 0 9.225 9.225 0 0 1 18.45 0l-.1 13.675Z"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h260v50H0z" transform="translate(.5)"/></clipPath></defs></svg>
|
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 8.1 KiB |
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"label": "Getting Started",
|
||||
"position": 2
|
||||
}
|
|
@ -1,87 +0,0 @@
|
|||
---
|
||||
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
|
||||
|
||||
### Rolloù an istañs
|
||||
|
||||
<!-- AUTH-INSTANCE-ROLES-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| roll | 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 |
|
||||
| Podkaster | General users of Castopod. | admin.access |
|
||||
|
||||
<!-- AUTH-INSTANCE-ROLES-LIST:END -->
|
||||
|
||||
### Aotreoù war an istañs
|
||||
|
||||
<!-- AUTH-INSTANCE-PERMISSIONS-LIST:START - Do not remove or modify this section -->
|
||||
|
||||
| aotre | 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 | Gallout a ra enporzhiañ podkastoù. |
|
||||
| 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 -->
|
||||
|
||||
| roll | description | permissions |
|
||||
| ---------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Merour·ez | Has complete control of podcast #{id}. | \* |
|
||||
| Embanner | 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 |
|
||||
| Aozer·ez | Manages content of podcast #{id} but cannot publish them. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips |
|
||||
| Kouviad·ez | 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 -->
|
||||
|
||||
| aotre | 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 -->
|
|
@ -1,300 +0,0 @@
|
|||
---
|
||||
sidebarDepth: 2
|
||||
---
|
||||
|
||||
# Donemat 👋
|
||||
|
||||
[![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">Staliañ<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>
|
||||
|
||||
## Perzhioù
|
||||
|
||||
- 🌱 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
|
||||
- 💸 Arc'hantaouiñ :
|
||||
- 🔗 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)!
|
||||
|
||||
## Perak Castopod ?
|
||||
|
||||
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.
|
||||
|
||||
### Kod an dereadegezh
|
||||
|
||||
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://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> <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/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>
|
||||
</tr>
|
||||
<tr>
|
||||
<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>
|
||||
<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>
|
||||
</tr>
|
||||
<tr>
|
||||
<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>
|
||||
<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://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>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/KrzysztofDomanczyk"><img src="https://avatars.githubusercontent.com/u/75178474?v=4?s=100" width="100px;" alt="KrzysztofDomanczyk"/><br /><sub><b>KrzysztofDomanczyk</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/NeoluxConsulting"><img src="https://secure.gravatar.com/avatar/6e745565356330c1e29a85d52bffdaa1?s=80&d=identicon?s=100" width="100px;" alt="Guy Martin"/><br /><sub><b>Guy Martin</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=NeoluxConsulting" title="Bug reports">🐛</a> <a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</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!
|
||||
|
||||
## Darempred
|
||||
|
||||
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>
|
||||
|
||||
## Aotre
|
||||
|
||||
[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
|
|
@ -1,302 +0,0 @@
|
|||
---
|
||||
sidebarDepth: 2
|
||||
---
|
||||
|
||||
# Benvinguts 👋
|
||||
|
||||
[![release-badge]][release] [![license-badge]][license] [![contributions-badge]][contributions] [![semantic-release-badge]][semantic-release] [![crowdin-badge]][crowdin] [![discord-badge]][discord] [![stars-badge]][stars]
|
||||
|
||||
Castopod és una plataforma d'allotjament gratuïta i de codi obert creada per a
|
||||
podcasters que volen involucrar i interactuar amb el seu públic.
|
||||
|
||||
Castopod és fàcil d'instal·lar i s'ha creat amb
|
||||
[CodeIgniter4](https://codeigniter.com/), un marc PHP potent amb una empremta
|
||||
molt petita.
|
||||
|
||||
<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">Instal·lar<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>
|
||||
|
||||
## Característiques
|
||||
|
||||
- 🌱 Gratis i de codi obert (llicència AGPL v3)
|
||||
- 🔐 Centrat en la sobirania de les dades: el vostre contingut, audiència
|
||||
i estadístiques us pertanyen, i només a vosaltres
|
||||
- 🪄 Funcions de podcasting 2.0: GUID, bloqueigos, transcripcions,
|
||||
finançament, capítols, geo-localització, persones, fragments d'àudio, …
|
||||
- 💬 Xarxa social integrada:
|
||||
- 🚀 Castopod forma part de Fediverse, una xarxa social descentralitzada
|
||||
- ❤️ Creeu publicacions, compartiu-les, afegiu-hi com a preferits i
|
||||
comenteu episodis
|
||||
- 📈 Estadístiques integrades:
|
||||
- ⚖️ Complint amb GDPR / CCPA / LGPD
|
||||
- 🪙 Mesura d'audiència segons l'estàndard IABv2
|
||||
- 🏡 Estadístiques locals, sense cap tercer implicat
|
||||
- 📢 Eines de màrqueting integrades:
|
||||
- ✅ Preparada per a SEO (metaetiquetes de gràfics oberts, JSON-LD, …)
|
||||
- 📱 PWA: instal·lable pels oients com a aplicació autònoma
|
||||
- 🎨 Colors del tema personalitzables
|
||||
- 🎬 Genereu videoclips d'episodis preparats per compartir
|
||||
- 🔉 Genera fragments d'àudio de cada episodi
|
||||
- ▶️ Reproductor incrustable, per incrustar els episodis a qualsevol
|
||||
lloc web
|
||||
- 💸 Monetització:
|
||||
- 🔗 Enllaços de finançament
|
||||
- 📲 Anuncis per escoltar-fent-clic
|
||||
- 🤝 Integració amb value4value i WebMonetization
|
||||
- 💎 Premium podcasts
|
||||
- 📡 Publiqueu els vostres episodis a tot arreu amb RSS:
|
||||
- 📱 A tots els directoris i aplicacions: Podcast Index, Apple Podcasts,
|
||||
Spotify, Google Podcasts, Deezer, Podcast Addict, Podfriend, …
|
||||
- ⚡ Emeteu els vostres episodis a l'instant amb WebSub
|
||||
- 📥 Importació de podcasts: moveu el vostre podcast existent a Castopod
|
||||
- 📤 Traieu el vostre podcast fora de Castopod
|
||||
- 🔀 Multi-podcast: allotgeu tants programes com vulgueu en un mateix lloc
|
||||
- 👥 Multi-usuari: afegiu col·laboradors i definiu rols
|
||||
- 🌎 Suport i18n: traduït a l'anglès, català, espanyol, xinès, francès,
|
||||
polonès, alemany, portuguès brasiler ... i
|
||||
[més per venir](https://translate.castopod.org)!
|
||||
|
||||
## Motivació
|
||||
|
||||
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.
|
||||
|
||||
## Comparació amb altres solucions
|
||||
|
||||
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 altres plataformes de podcast
|
||||
|
||||
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 es pot auto-allotjar i és la única solució que us permet mantenir el
|
||||
control total sobre el que produïu. A més, com que és de codi obert, fins i
|
||||
tot podeu personalitzar-lo com vulgueu.
|
||||
|
||||
- Castopod és l'única solució que actualment integra tant una xarxa social
|
||||
descentralitzada amb ActivityPub com moltes de les funcions de podcasting 2.0,
|
||||
amb l'esperança de salvar la bretxa entre les dues.
|
||||
|
||||
## Col·laborar
|
||||
|
||||
Love Castopod and would like to help? Take a look at the following documentation
|
||||
to get you started.
|
||||
|
||||
### Codi de conducta
|
||||
|
||||
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.
|
||||
|
||||
### Guia de col·laboració
|
||||
|
||||
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.
|
||||
|
||||
## Col·laboradors ✨
|
||||
|
||||
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://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> <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/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>
|
||||
</tr>
|
||||
<tr>
|
||||
<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>
|
||||
<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>
|
||||
</tr>
|
||||
<tr>
|
||||
<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>
|
||||
<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://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>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/KrzysztofDomanczyk"><img src="https://avatars.githubusercontent.com/u/75178474?v=4?s=100" width="100px;" alt="KrzysztofDomanczyk"/><br /><sub><b>KrzysztofDomanczyk</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/NeoluxConsulting"><img src="https://secure.gravatar.com/avatar/6e745565356330c1e29a85d52bffdaa1?s=80&d=identicon?s=100" width="100px;" alt="Guy Martin"/><br /><sub><b>Guy Martin</b></sub></a><br /><a href="https://code.castopod.org/adaures/castopod/issues?author_username=NeoluxConsulting" title="Bug reports">🐛</a> <a href="https://code.castopod.org/adaures/castopod/commits/master" title="Code">💻</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!
|
||||
|
||||
## Contacte
|
||||
|
||||
You may reach us for help or ask any question you have on:
|
||||
|
||||
- [Discord](https://castopod.org/discord) (per a la interacció directa amb
|
||||
desenvolupadors i la comunitat)
|
||||
- [Seguiment d'incidències](https://code.castopod.org/adaures/castopod/-/issues)
|
||||
(per a sol·licituds de noves funcionalitats i informes d'errors)
|
||||
|
||||
Alternatively, you can follow us on social media platforms to get news about
|
||||
Castopod:
|
||||
|
||||
- [podlibre.social](https://podlibre.social/@Castopod) (instància de Mastodon)
|
||||
- [Twitter](https://twitter.com/castopod)
|
||||
- [LinkedIn](https://linkedin.com/company/castopod)
|
||||
- [Facebook](https://www.facebook.com/castopod)
|
||||
|
||||
## Patrocinadors
|
||||
|
||||
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>
|
||||
|
||||
## Llicència
|
||||
|
||||
[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
|
|
@ -0,0 +1,7 @@
|
|||
import { defineCollection } from "astro:content";
|
||||
import { docsSchema, i18nSchema } from "@astrojs/starlight/schema";
|
||||
|
||||
export const collections = {
|
||||
docs: defineCollection({ schema: docsSchema() }),
|
||||
i18n: defineCollection({ type: "data", schema: i18nSchema() }),
|
||||
};
|
|
@ -0,0 +1,85 @@
|
|||
---
|
||||
title: Autenticação & Autorização
|
||||
---
|
||||
|
||||
Castopod lida com autenticação e autorização usando `codeigniter/shield`
|
||||
juntamente com regras personalizadas. Papéis e permissões são definidos em dois
|
||||
níveis:
|
||||
|
||||
1. [toda instância](#1-instance-wide-roles-and-permissions)
|
||||
2. [por podcast](#2-per-podcast-roles-and-permissions)
|
||||
|
||||
## Papéis e permissões para toda a instância
|
||||
|
||||
### Cargos de instância
|
||||
|
||||
{/* 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 */}
|
||||
|
||||
### Permissões da instância
|
||||
|
||||
{/* 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. Por funções de podcast e permissões
|
||||
|
||||
### Por cargos de podcast
|
||||
|
||||
{/* 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 */}
|
||||
|
||||
### Por permissões de podcast
|
||||
|
||||
{/* 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 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\}. |
|
||||
|
||||
{/* AUTH-PODCAST-PERMISSIONS-LIST:END */}
|
|
@ -1,10 +1,7 @@
|
|||
---
|
||||
title: Official Docker images
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# Official Docker images
|
||||
|
||||
Castopod pushes 3 Docker images to the Docker Hub during its automated build
|
||||
process:
|
||||
|
|
@ -1,21 +1,20 @@
|
|||
---
|
||||
title: Inštalácia
|
||||
sidebarDepth: 3
|
||||
title: How to install Castopod?
|
||||
---
|
||||
|
||||
# How to install Castopod?
|
||||
import { Aside } from "@astrojs/starlight/components";
|
||||
|
||||
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
|
||||
<Aside>
|
||||
|
||||
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.
|
||||
|
||||
:::
|
||||
</Aside>
|
||||
|
||||
## Requirements
|
||||
|
||||
|
@ -46,14 +45,6 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> 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.
|
||||
|
@ -115,13 +106,13 @@ want to generate Video Clips. The following extensions must be installed:
|
|||
2. Follow the instructions on your screen.
|
||||
3. Začať podcastovať!
|
||||
|
||||
::: info Note
|
||||
<Aside>
|
||||
|
||||
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.
|
||||
|
||||
:::
|
||||
</Aside>
|
||||
|
||||
### Using CLI
|
||||
|
||||
|
@ -226,13 +217,35 @@ 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
|
||||
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>
|
||||
<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>
|
|
@ -2,8 +2,6 @@
|
|||
title: Zabezpečenie
|
||||
---
|
||||
|
||||
# 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).
|
|
@ -1,9 +1,8 @@
|
|||
---
|
||||
title: Update
|
||||
sidebarDepth: 3
|
||||
title: How to update Castopod?
|
||||
---
|
||||
|
||||
# How to update Castopod?
|
||||
import { Aside } from "@astrojs/starlight/components";
|
||||
|
||||
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
|
||||
|
@ -36,12 +35,12 @@ improvements ⚡.
|
|||
- Remove all files except `.env` and `public/media`
|
||||
- Copy the new files from the downloaded package into your server
|
||||
|
||||
::: info Note
|
||||
<Aside>
|
||||
|
||||
You may need to reset files permissions as during the install process.
|
||||
Check [Security Concerns](./security.md).
|
||||
|
||||
:::
|
||||
</Aside>
|
||||
|
||||
4. Update your database schema from your `Castopod Admin` > `About` page or by
|
||||
running:
|
||||
|
@ -54,7 +53,7 @@ improvements ⚡.
|
|||
`Housekeeping`
|
||||
6. ✨ Enjoy your fresh instance, you're all done!
|
||||
|
||||
::: info Note
|
||||
<Aside>
|
||||
|
||||
Releases may come with additional update instructions (see
|
||||
[releases page](https://code.castopod.org/adaures/castopod/-/releases)).
|
||||
|
@ -62,7 +61,7 @@ Releases may come with additional update instructions (see
|
|||
- 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)
|
||||
|
||||
:::
|
||||
</Aside>
|
||||
|
||||
## Fully Automated updates
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
---
|
||||
title: 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 |
|
||||
| --------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------ |
|
||||
| Dreistmerour·ez | Ur c'hontroll klok en deus war Castopod. | admin.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
|
||||
| Merour·ez | Merañ a ra endalc'had Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage |
|
||||
| Podkaster | Implijerien·ezed kustum 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 | Gallout a ra gwelet taolenn-stur Castopod. |
|
||||
| admin.settings | Gallout a ra gwelet arventennoù Castopod. |
|
||||
| users.manage | Gallout a ra ober war-dro implijerien·ezed Castopod. |
|
||||
| persons.manage | Gallout a ra merañ an emellerien·ezed. |
|
||||
| pages.manage | Gallout a ra merañ ar pajennoù. |
|
||||
| podcasts.view | Gallout a ra gwelet an holl bodkastoù. |
|
||||
| podcasts.create | Gallout a ra krouiñ podkastoù nevez. |
|
||||
| podcasts.import | Gallout a ra enporzhiañ podkastoù. |
|
||||
| fediverse.manage-blocks | Gallout a ra mirout aktourien·ezed pe domanioù ar Fediverse ouzh kaout darempredoù gant 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 |
|
||||
| ---------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Merour·ez | Ur c'hontroll klok en deus war ar podkast #\{id\}. | \* |
|
||||
| Embanner | Merañ a ra endalc'had hag embannadurioù ar podkast #\{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 |
|
||||
| Aozer·ez | Merañ a ra endalc'had ar podkast #\{id\} met ne c'hall ket embann anezho. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips |
|
||||
| Kouviad·ez | Perzhiad·ez eus ar podkast #\{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 | Gallout a ra gwelet taolenn-stur ha muzulioù heklev ar podkast #\{id\}. |
|
||||
| edit | Gallout a ra kemmañ ar podkast #\{id\}. |
|
||||
| delete | Gallout a ra lemel ar podkast #\{id\}. |
|
||||
| manage-import | Gallout a ra sinkronekaat ar podkast enporzhiet #\{id\}. |
|
||||
| manage-persons | Gallout a ra merañ koumanantoù ar podkast #\{id\}. |
|
||||
| manage-subscriptions | Gallout a ra merañ koumanantoù ar podkast #\{id\}. |
|
||||
| manage-contributors | Gallout a ra merañ perzhidi ha perzhiadezed ar podkast #\{id\}. |
|
||||
| manage-platforms | Gallout a ra ouzhpennañ pe lemel liammoù etrezek savennoù diavaez evit ar podkast #\{id\}. |
|
||||
| manage-publications | Gallout a ra embann ar podkast #\{id\}. |
|
||||
| manage-notifications | Gallout a ra gwelet kemennoù ar podkast #\{id\} ha lakaat anezho evel lennet. |
|
||||
| interact-as | Gallout a ra ober traoù gant identelezh ar podkast #\{id\}: ouzhpennañ ur gemennadenn d'ar re garetañ, rannañ anezhi pe respont dezhi. |
|
||||
| episodes.view | Gallout a ra gwelet taolennoù-stur ha muzulioù heklev rannoù ar podkast #\{id\}. |
|
||||
| episodes.create | Gallout a ra krouiñ rannoù evit podkast #\{id\}. |
|
||||
| episodes.edit | Gallout a ra kemmañ rannoù ar podkast #\{id\}. |
|
||||
| episodes.delete | Gallout a ra lemel rannoù ar podkast #\{id\}. |
|
||||
| episodes.manage-persons | Gallout a ra merañ emellerien·ezed ar podkast #\{id\}. |
|
||||
| episodes.manage-clips | Gallout a ra merañ klipoù video pe tennadoù son ar podkast #\{id\}. |
|
||||
| episodes.manage-publications | Gallout a ra embann pe diembann rannoù ha kemennadennoù ar podkast #\{id\}. |
|
||||
| episodes.manage-comments | Gallout a ra krouiñ/lemel evezhiadennoù evit rannoù ar podkast #\{id\}. |
|
||||
|
||||
{/* AUTH-PODCAST-PERMISSIONS-LIST:END */}
|
|
@ -1,10 +1,7 @@
|
|||
---
|
||||
title: Official Docker images
|
||||
sidebarDepth: 3
|
||||
---
|
||||
|
||||
# Official Docker images
|
||||
|
||||
Castopod pushes 3 Docker images to the Docker Hub during its automated build
|
||||
process:
|
||||
|
|
@ -1,21 +1,20 @@
|
|||
---
|
||||
title: Staliañ
|
||||
sidebarDepth: 3
|
||||
title: Penaos staliañ Castopod?
|
||||
---
|
||||
|
||||
# Penaos staliañ Castopod?
|
||||
import { Aside } from "@astrojs/starlight/components";
|
||||
|
||||
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
|
||||
<Aside>
|
||||
|
||||
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.
|
||||
|
||||
:::
|
||||
</Aside>
|
||||
|
||||
## Requirements
|
||||
|
||||
|
@ -46,14 +45,6 @@ Additionally, make sure that the following extensions are enabled in your PHP:
|
|||
|
||||
> 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.
|
||||
|
@ -115,13 +106,13 @@ want to generate Video Clips. The following extensions must be installed:
|
|||
2. Follow the instructions on your screen.
|
||||
3. Kregiñ da bodkastiñ!
|
||||
|
||||
::: info Note
|
||||
<Aside>
|
||||
|
||||
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.
|
||||
|
||||
:::
|
||||
</Aside>
|
||||
|
||||
### Using CLI
|
||||
|
||||
|
@ -226,13 +217,35 @@ 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
|
||||
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>
|
||||
<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>
|