Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • adaures/castopod
  • mkljczk/castopod-host
  • spaetz/castopod-host
  • PatrykMis/castopod
  • jonas/castopod
  • ajeremias/castopod
  • misuzu/castopod
  • KrzysztofDomanczyk/castopod
  • Behel/castopod
  • nebulon/castopod
  • ewen/castopod
  • NeoluxConsulting/castopod
  • nateritter/castopod-og
  • prcutler/castopod
14 results
Show changes
--- ---
title: Update title: How to update Castopod?
sidebarDepth: 3
--- ---
# How to update Castopod? import { Aside } from "@astrojs/starlight/components";
After installing Castopod, you may want to update your instance to the latest 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 version in order to enjoy the latest features ✨, bug fixes 🐛 and performance
...@@ -36,12 +35,12 @@ improvements ⚡. ...@@ -36,12 +35,12 @@ improvements ⚡.
- Remove all files except `.env` and `public/media` - Remove all files except `.env` and `public/media`
- Copy the new files from the downloaded package into your server - 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. You may need to reset files permissions as during the install process.
Check [Security Concerns](./security.md). Check [Security Concerns](./security.md).
::: </Aside>
4. Update your database schema from your `Castopod Admin` > `About` page or by 4. Update your database schema from your `Castopod Admin` > `About` page or by
running: running:
...@@ -52,9 +51,10 @@ improvements ⚡. ...@@ -52,9 +51,10 @@ improvements ⚡.
5. Clear your cache from your `Castopod Admin` > `Settings` > `general` > 5. Clear your cache from your `Castopod Admin` > `Settings` > `general` >
`Housekeeping` `Housekeeping`
6. ✨ Enjoy your fresh instance, you're all done! 6. ✨ Enjoy your fresh instance, you're all done!
::: info Note <Aside>
Releases may come with additional update instructions (see Releases may come with additional update instructions (see
[releases page](https://code.castopod.org/adaures/castopod/-/releases)). [releases page](https://code.castopod.org/adaures/castopod/-/releases)).
...@@ -62,7 +62,7 @@ Releases may come with additional update instructions (see ...@@ -62,7 +62,7 @@ Releases may come with additional update instructions (see
- cf. - 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) [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 ## Fully Automated updates
......
---
title: Welcome 👋
---
import { LinkCard } from "@astrojs/starlight/components";
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.
<LinkCard title="Install" href="./getting-started/install" />
## 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, simplified Chinese… and
[many more](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.
## 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).
[![Ad Aures Logo](../../../assets/images/sponsors/adaures.svg)](https://adaures.com/)
[![NLnet Logo](../../../assets/images/sponsors/nlnet.svg)](https://nlnet.nl/)
## License
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
Copyright © 2020-present, [Ad Aures](https://adaures.com/).
---
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 |
| ----------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------ |
| Super Admin | Ten control completo sobre Castopod. | admin.\*, plugins.\*, podcasts.\*, users.manage, persons.manage, pages.manage, fediverse.manage-blocks |
| Xestora | Quen xestiona o contido de Castopod. | podcasts.create, podcasts.import, persons.manage, pages.manage |
| Podcaster | Usuaria común de 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 | Pode acceder á área de administración. |
| admin.settings | Pode acceder aos axustes de Castopod. |
| plugins.manage | Auth.instance_permissions.plugins.manage |
| users.manage | Pode xestionar as usuarias de Castopod. |
| persons.manage | Pode xestionar persoas. |
| pages.manage | Pode xestionar páxinas. |
| podcasts.view | Pode ver tódolos podcast. |
| podcasts.create | Pode crear novos podcast. |
| podcasts.import | Pode importar podcasts. |
| fediverse.manage-blocks | Pode bloquear actores/dominios do fediverso evitando interactuar con Castopod. |
{/* AUTH-INSTANCE-PERMISSIONS-LIST:END */}
## 2. Per podcast roles and permissions
### Per podcast roles
{/* AUTH-PODCAST-ROLES-LIST:START - Do not remove or modify this section */}
| role | description | permissions |
| --------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Admin | Ten control total sobre o podcast #\{id\}. | \* |
| Editora | Persoa que xestiona o contido e publicacións do 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 |
| Autora | Persoa que xestiona o contido do podcast #\{id\} pero non pode publicalo. | view, manage-persons, episodes.view, episodes.create, episodes.edit, episodes.manage-persons, episodes.manage-clips |
| Convidada | Contribuínte básico ao podcast #\{id\}. | view, episodes.view |
{/* AUTH-PODCAST-ROLES-LIST:END */}
### Per podcast permissions
{/* AUTH-PODCAST-PERMISSIONS-LIST:START - Do not remove or modify this section */}
| permission | description |
| ---------------------------- | ----------------------------------------------------------------------------------------- |
| view | Pode ver o taboleiro e estatísticas do podcast #\{id\}. |
| edit | Pode editar o podcast #\{id\}. |
| delete | Pode eliminar o podcast #\{id\}. |
| manage-import | Pode sincronizar o podcast importado #\{id\}. |
| manage-persons | Pode xestionar as subscricións do podcast #\{id\}. |
| manage-subscriptions | Pode xestionar as subscricións do podcast #\{id\}. |
| manage-contributors | Pode xestionar as contribucións ao podcast #\{id\}. |
| manage-platforms | Pode establecer/eliminar ligazóns a plataformas do podcast #\{id\}. |
| manage-publications | Pode publicar o podcast #\{id\}. |
| manage-notifications | Pode ver e marcar as notificacións como lidas no podcast #\{id\}. |
| interact-as | Pode actuar como o podcast #\{id\} para compartir, favorecer ou responder a publicacións. |
| episodes.view | Pode ver os taboleiros e estatísticas dos episodios do podcast #\{id\}. |
| episodes.create | Pode crear episodios para o podcast #\{id\}. |
| episodes.edit | Pode editar os episodios do podcast #\{id\}. |
| episodes.delete | Pode eliminar episodios do podcast #\{id\}. |
| episodes.manage-persons | Pode xestionar as persoas do episodio do podcast #\{id\}. |
| episodes.manage-clips | Pode xestionar os clips de vídeo e extractos de audio do podcast #\{id\}. |
| episodes.manage-publications | Pode publicar/retirar episodios e publicacións do podcast #\{id\}. |
| episodes.manage-comments | Pode crear/eliminar comentarios dos episodios do podcast #\{id\}. |
{/* AUTH-PODCAST-PERMISSIONS-LIST:END */}