Go to file
semantic-release-bot 14733105e6 chore(release): 1.0.0-alpha.1 [skip ci]
# 1.0.0-alpha.1 (2020-10-16)

### Bug Fixes

* add public/media folder to castopod bundle ([8053d35](8053d3521b)), closes [#52](https://code.podlibre.org/podlibre/castopod/issues/52)
* add where condition to get episode count without deleted episodes ([7661734](7661734ed2)), closes [#67](https://code.podlibre.org/podlibre/castopod/issues/67)
* comment all cache clean after page update to prevent analytics cache deletion ([e6197a4](e6197a4972))
* correct chart data ([4d3e9c8](4d3e9c8c02))
* correct percona compatibility issue ([e53f819](e53f819264))
* correct php-fpm issues ([1ef55d7](1ef55d7315))
* correct referrer bug ([ed69b2f](ed69b2f500))
* correction for servers with low int precision ([31b7828](31b7828e77))
* declare typed properties in PHPDoc for php<7.4 ([14dd44d](14dd44d03d)), closes [#23](https://code.podlibre.org/podlibre/castopod/issues/23)
* escape generated feed tag values and remove new lines from public pages meta description ([6238a43](6238a43863)), closes [#57](https://code.podlibre.org/podlibre/castopod/issues/57) [#46](https://code.podlibre.org/podlibre/castopod/issues/46)
* fix layout bugs in admin and update translation files ([a834171](a83417180c)), closes [#40](https://code.podlibre.org/podlibre/castopod/issues/40)
* minor corrections ([13be386](13be386842))
* move analytics to helper ([d311917](d31191732e))
* re-order graph values ([35f633b](35f633b4c7))
* remove required for other_categories field and add podcast_id to latest podcasts query ([5417be0](5417be0049))
* rename issue_templates labels ([9f00305](9f00305844))
* rename MyAccount controller file ([e109df3](e109df3004)), closes [#60](https://code.podlibre.org/podlibre/castopod/issues/60)
* reorder fields as composite primary keys for analytics tables ([9660aa9](9660aa97c8))
* replace website key for webpages in breadcrumb translate file ([50e32ff](50e32ff756))
* set episode duration translation to hardcoded english ([c39efc9](c39efc9489)), closes [#64](https://code.podlibre.org/podlibre/castopod/issues/64)
* set episode guid upon episode creation ([ad8b153](ad8b153f2a)), closes [#48](https://code.podlibre.org/podlibre/castopod/issues/48)
* update purgecss content path for php helper files ([eb70bb4](eb70bb4f70)), closes [#59](https://code.podlibre.org/podlibre/castopod/issues/59)
* **install:** redirect to input baseUrl after instance config ([2426af7](2426af7de8)), closes [#53](https://code.podlibre.org/podlibre/castopod/issues/53)
* **platforms:** display platform link only when visible is toggled on ([6e503c8](6e503c8d61)), closes [#39](https://code.podlibre.org/podlibre/castopod/issues/39)
* sort episodic podcasts by season ([d7b6794](d7b6794f68))
* update .htaccess for shared hosting config ([2379826](2379826352))
* update iso-369 language table seeder ([0c90db4](0c90db44c4))
* **package.json:** update destination of postcss generation scripts ([21413f8](21413f8af3))
* use slash instead of backslash to call layout ([a80adb2](a80adb2295))

### Features

* add alternate rss feed link tag to podcast page head ([a973c09](a973c097d5)), closes [#35](https://code.podlibre.org/podlibre/castopod/issues/35)
* add analytics and unknown useragents ([ec92e65](ec92e65aa4))
* add breadcrumb in admin area ([7fb1de2](7fb1de2cf3)), closes [#17](https://code.podlibre.org/podlibre/castopod/issues/17)
* add french translation ([196920d](196920d62f))
* add install wizard form to bootstrap database and create the first superadmin user ([cba871c](cba871c5df)), closes [#2](https://code.podlibre.org/podlibre/castopod/issues/2)
* add ISO 3166 country codes ([97cd94b](97cd94b474))
* add map analytics, add episodes analytics, clean analytics page layout, translate countries ([07eae83](07eae83a00))
* add npm for js dependencies + move src/ files to root folder ([cbb83a6](cbb83a6f30))
* add pages table to store custom instance pages (eg. legal-notice, cookie policy, etc.) ([9c224a8](9c224a8ac6)), closes [#24](https://code.podlibre.org/podlibre/castopod/issues/24)
* add platform models ([a333d29](a333d29196))
* add platforms form in podcast settings ([043f49c](043f49c784))
* add platforms tables ([ce59344](ce5934419a))
* add unique listeners analytics ([3a49258](3a4925816f))
* add user permissions and basic groups to handle authorizations ([d58e518](d58e51874a)), closes [#3](https://code.podlibre.org/podlibre/castopod/issues/3) [#18](https://code.podlibre.org/podlibre/castopod/issues/18)
* create optimized & resized images upon upload ([02e4441](02e4441f98)), closes [#6](https://code.podlibre.org/podlibre/castopod/issues/6)
* display legal disclaimer and warning on podcast import page ([2f07992](2f07992e55)), closes [#34](https://code.podlibre.org/podlibre/castopod/issues/34)
* edit + delete podcast and episode ([ac5f0c7](ac5f0c7328))
* enhance admin ui with responsive design and ux improvements ([2d44b45](2d44b457a0)), closes [#31](https://code.podlibre.org/podlibre/castopod/issues/31) [#9](https://code.podlibre.org/podlibre/castopod/issues/9)
* enhance ui using javascript in admin area ([c0e66d5](c0e66d5f70))
* import podcast from an rss feed url ([9a5d5a1](9a5d5a15b4)), closes [#21](https://code.podlibre.org/podlibre/castopod/issues/21)
* set podcast / episode description in the pages description meta tag ([1c4a504](1c4a50442b)), closes [#44](https://code.podlibre.org/podlibre/castopod/issues/44)
* update analytics so to meet IABv2 requirements ([03e23a2](03e23a28bf)), closes [#10](https://code.podlibre.org/podlibre/castopod/issues/10)
* **cache:** add podcast and episode pages to cache + clear them after insert or update ([da0f047](da0f047281))
* **categories:** create model, entity, migrations and seeds ([f73b042](f73b042cc0))
* **devcontainer:** add devcontainer settings for dev environment ([69e7266](69e7266736))
* **episodes:** add create form and view pages for episode ([f3b2c8b](f3b2c8b84f)), closes [#1](https://code.podlibre.org/podlibre/castopod/issues/1)
* **episodes:** add migrations, model and entity for episodes table ([0444821](044482174e))
* **podcast:** create a podcast using form ([1202ba3](1202ba3545))
* **podcast-form:** update routes and redirect to podcast page ([12ce905](12ce905799))
* **public-ui:** adapt public podcast and episode pages to wireframes ([40a0535](40a0535fc1)), closes [#30](https://code.podlibre.org/podlibre/castopod/issues/30) [#13](https://code.podlibre.org/podlibre/castopod/issues/13)
* **rss:** generate rss feed from podcast entity ([c815ecd](c815ecd664))
* **users:** add myth-auth to handle users crud + add admin gateway only accessible by login ([c63a077](c63a077618)), closes [#11](https://code.podlibre.org/podlibre/castopod/issues/11)
* minor corrections to some tables ([3bf9420](3bf9420b59))
* write id3v2 tags to episode's audio file ([4651d01](4651d01a84))

### Reverts

* use basic input file for episodes audio files instead of button for better UX ([d5f22fb](d5f22fbb38))
2020-10-16 15:26:13 +00:00
.devcontainer fix: declare typed properties in PHPDoc for php<7.4 2020-10-15 14:41:26 +00:00
.gitlab/issue_templates fix: rename issue_templates labels 2020-10-15 14:42:18 +00:00
app fix: replace website key for webpages in breadcrumb translate file 2020-10-15 20:22:33 +00:00
docs docs: add gitlab issue templates, code of conduct and contributing files 2020-10-15 14:42:18 +00:00
public style: update 404 and 500 error pages to use tailwindcss and Castopod mascot 2020-10-15 14:42:24 +00:00
tests refactor: add php_codesniffer to define castopod's coding style based on psr-1 2020-10-15 14:41:22 +00:00
writable feat: add npm for js dependencies + move src/ files to root folder 2020-10-15 14:05:36 +00:00
.babelrc refactor: update js files to typescript and replace parcel with rollup 2020-10-15 14:41:12 +00:00
.browserslistrc refactor: update js files to typescript and replace parcel with rollup 2020-10-15 14:41:12 +00:00
.editorconfig refactor: add php_codesniffer to define castopod's coding style based on psr-1 2020-10-15 14:41:22 +00:00
.env.example refactor: update install logic and add missing cache config step 2020-10-15 14:42:13 +00:00
.eslintrc.json refactor: update js files to typescript and replace parcel with rollup 2020-10-15 14:41:12 +00:00
.gitignore ci(release): automate castopod versioned releases using semantic-release 2020-10-16 15:17:08 +00:00
.gitlab-ci.yml ci(release): automate castopod versioned releases using semantic-release 2020-10-16 15:17:08 +00:00
.phpcs.xml refactor: add php_codesniffer to define castopod's coding style based on psr-1 2020-10-15 14:41:22 +00:00
.prettierrc.json docs: add gitlab issue templates, code of conduct and contributing files 2020-10-15 14:42:18 +00:00
.releaserc.json ci(release): automate castopod versioned releases using semantic-release 2020-10-16 15:17:08 +00:00
.rsync-filter refactor: update install logic and add missing cache config step 2020-10-15 14:42:13 +00:00
.stylelintrc.json refactor: update js files to typescript and replace parcel with rollup 2020-10-15 14:41:12 +00:00
.svgo.icons.yml feat: enhance ui using javascript in admin area 2020-10-15 14:41:09 +00:00
.svgo.yml feat: add platforms form in podcast settings 2020-10-15 14:41:39 +00:00
AUTHORS.md docs(authors): set authors info as list 2020-10-15 14:05:37 +00:00
CHANGELOG.md chore(release): 1.0.0-alpha.1 [skip ci] 2020-10-16 15:26:13 +00:00
CODE_OF_CONDUCT.md docs: add gitlab issue templates, code of conduct and contributing files 2020-10-15 14:42:18 +00:00
CONTRIBUTING.md docs: add gitlab issue templates, code of conduct and contributing files 2020-10-15 14:42:18 +00:00
DEPENDENCIES.md docs: add gitlab issue templates, code of conduct and contributing files 2020-10-15 14:42:18 +00:00
Dockerfile feat: create optimized & resized images upon upload 2020-10-15 14:41:45 +00:00
INSTALL.md fix: replace website key for webpages in breadcrumb translate file 2020-10-15 20:22:33 +00:00
LICENSE docs: add GNU AGPLv3 LICENSE file 2020-10-15 14:01:39 +00:00
README.md docs: add gitlab issue templates, code of conduct and contributing files 2020-10-15 14:42:18 +00:00
builds feat(episodes): add create form and view pages for episode 2020-10-15 14:40:47 +00:00
commitlint.config.js feat: enhance ui using javascript in admin area 2020-10-15 14:41:09 +00:00
composer.json chore(release): 1.0.0-alpha.1 [skip ci] 2020-10-16 15:26:13 +00:00
composer.lock feat: add alternate rss feed link tag to podcast page head 2020-10-15 14:42:03 +00:00
docker-compose.yml feat: add npm for js dependencies + move src/ files to root folder 2020-10-15 14:05:36 +00:00
env feat: add npm for js dependencies + move src/ files to root folder 2020-10-15 14:05:36 +00:00
package-lock.json chore(release): 1.0.0-alpha.1 [skip ci] 2020-10-16 15:26:13 +00:00
package.json chore(release): 1.0.0-alpha.1 [skip ci] 2020-10-16 15:26:13 +00:00
phpunit.xml.dist refactor(auth): change contributor's role logic to have it included in the users_podcasts table 2020-10-15 14:41:14 +00:00
postcss.config.js feat: enhance ui using javascript in admin area 2020-10-15 14:41:09 +00:00
prepare-release.sh ci(release): automate castopod versioned releases using semantic-release 2020-10-16 15:17:08 +00:00
rollup.config.js refactor: update js files to typescript and replace parcel with rollup 2020-10-15 14:41:12 +00:00
spark feat(episodes): add create form and view pages for episode 2020-10-15 14:40:47 +00:00
tailwind.config.js fix: update purgecss content path for php helper files 2020-10-15 14:42:30 +00:00
tsconfig.json refactor: update js files to typescript and replace parcel with rollup 2020-10-15 14:41:12 +00:00

README.md

Castopod

Castopod is an open-source podcast hosting solution for everyone. Whether you are a beginner, an amateur or a professional, you will get everything you need: create, upload, publish, manage server subscriptions (WebSub embedded server), connect to the usual directories (Apple, Google, Spotify…), connect to the Fediverse (ActivityPub, Mastodon, Pleroma…) and measure your audience (IAB 2.0 compliant) so that you can monetize your content. Take back control: interact with your audience on your plateform (like, share, comment), the social network IS the podcast. Of course you may also export to proprietary social networks(Twitter, Instagram, Youtube, Facebook). Castopod can be hosted on any PHP/MySQL server: Unzip it and you and other podcasters are ready to broadcast professionally.

Free

Castopod is a free and open-source solution (AGPL v3). Whether you choose to install it on your own server or have it hosted by a professional, all your data and analytics belong to you and you only.

Social Media

Castopod is a part of Fediverse (Mastodon, Pleroma, PixelFed, PeerTube…). Podcasters and their audience can post, subscribe, like, comment and share natively. Millions of users already on Fediverse will be able to interact seamlessly.

Flexible

Castopod is compatible with all Podcasts players and platforms (it can automatically generate an RSS feed). Moreover Podcasters can choose to publish on Castopod while keeping their existing hosting solution (it can automatically generate posts from an existing RSS feed).

Castopod Users


Documentation

You can check castopod's documentation for setting up a development environment.

Support

Castopod was funded through the NGI0 Discovery Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825322.