radiator

所属分类:云计算
开发工具:Elixir
文件大小:737KB
下载次数:0
上传日期:2021-08-03 11:19:06
上 传 者sh-1993
说明:  播客托管和发布|点燃火焰的火花
(Podcast Hosting & Publishing | The spark that lights the fire)

文件列表:
radiator-develop (0, 2020-11-03)
radiator-develop\.dockerignore (161, 2020-11-03)
radiator-develop\.drone.yml (1885, 2020-11-03)
radiator-develop\.formatter.exs (170, 2020-11-03)
radiator-develop\.iex.exs (1455, 2020-11-03)
radiator-develop\CONTRIBUTING.md (2468, 2020-11-03)
radiator-develop\Dockerfile (3582, 2020-11-03)
radiator-develop\LICENSE (1064, 2020-11-03)
radiator-develop\assets (0, 2020-11-03)
radiator-develop\assets\.babelrc (55, 2020-11-03)
radiator-develop\assets\css (0, 2020-11-03)
radiator-develop\assets\css\app.css (4482, 2020-11-03)
radiator-develop\assets\js (0, 2020-11-03)
radiator-develop\assets\js\app.js (493, 2020-11-03)
radiator-develop\assets\js\socket.js (2224, 2020-11-03)
radiator-develop\assets\package-lock.json (309600, 2020-11-03)
radiator-develop\assets\package.json (894, 2020-11-03)
radiator-develop\assets\postcss.config.js (176, 2020-11-03)
radiator-develop\assets\static (0, 2020-11-03)
radiator-develop\assets\static\favicon.ico (1258, 2020-11-03)
radiator-develop\assets\static\images (0, 2020-11-03)
radiator-develop\assets\static\images\placeholder_female_avatar.png (21024, 2020-11-03)
radiator-develop\assets\static\images\placeholder_icecream.png (25587, 2020-11-03)
radiator-develop\assets\static\images\placeholder_male_avatar.png (18229, 2020-11-03)
radiator-develop\assets\static\images\placeholder_recording.png (23227, 2020-11-03)
radiator-develop\assets\tailwind.config.js (11213, 2020-11-03)
radiator-develop\assets\webpack.config.js (2317, 2020-11-03)
radiator-develop\config (0, 2020-11-03)
radiator-develop\config\config.exs (3091, 2020-11-03)
radiator-develop\config\dev.exs (2935, 2020-11-03)
radiator-develop\config\prod.exs (293, 2020-11-03)
radiator-develop\config\releases.exs (1444, 2020-11-03)
radiator-develop\config\test.exs (1383, 2020-11-03)
radiator-develop\docker-compose (0, 2020-11-03)
... ...

# Radiator ” Radiator is the 100% open source podcast hosting project for the next century of the internet. [![Build Status](https://cloud.drone.io/api/badges/podlove/radiator/status.svg)](https://cloud.drone.io/podlove/radiator) ## Status We are still in an exploration phase. Technically the foundation for hosting a podcast with a valid RSS feed is there but it's very simplistic and missing features left and right. Using this in production is not recommended yet as breaking changes will occur without prior notice. ## Built With - [Phoenix Framework][phoenix] — the backend API (currently both GraphQL and REST endpoints) and (currently) admin interface - [PostgreSQL][pgsql] — main data store - [Minio][minio] — private cloud storage for audio and image files - [Vue.js][vuejs] — JavaScript framework ## Development **Docker Deployment** If you just want to take a look at the project, you can deploy a ready-to-run stack with [docker-compose](https://docs.docker.com/compose/): ```shell git clone https://github.com/podlove/radiator cd radiator/docker-compose docker-compose up ``` Then access the following services: | Service | URL | | -------- | ---------------------------------- | | Radiator | http://localhost:4000 | | Minio | http://localhost:9000 | | MailHog | http://localhost:8025 | | GraphiQL | http://localhost:4000/api/graphiql | For full deployment and options please see [radiator-deploy](https://github.com/podlove/radiator-deploy) This compose file stores its persistent data in docker volumes, so to cleanly reset you need to delete them after a `docker-compose down` with `docker volume rm rad_minio_config rad_minio_data rad_psql_db` **Minio Setup** - [Install minio][minio-setup] - [Install minio client][minio-client-setup] - start minio and take note of the AccessKey and SecretKey in the startup notice (for example manually `minio server ./data`) - configure minio client: ```shell mc config host add radiator http://127.0.0.1:9000 ``` - setup minio: ```shell mc mb radiator/radiator mc mb radiator/radiator-test mc policy set public radiator/radiator ``` **Phoenix Setup** ```shell git clone https://github.com/podlove/radiator.git cd radiator # start postgres # set minio access keys in config/config.exs # config :ex_aws, # access_key_id: "", # secret_access_key: "", # json_codec: Jason mix deps.get mix ecto.create mix ecto.migrate cd assets && npm install cd .. mix phx.server ``` Seed database with data for development (unless you did `mix ecto.reset`, it runs seeds automatically): ```shell mix run priv/repo/seeds.exs ``` Creates: - "ACME" network - user "admin" with password "password" Download UserAgent database for tracking: ```shell mix ua_inspector.download --force ``` ## Migrations during development During the early stages of development we _edit_ existing migrations to keep them readable instead of adding new ones as you would expect in a live system. So whenever you pull an update that changed a migration, you need to: ```shell mix ecto.reset env MIX_ENV=test mix ecto.reset ``` ## API At the moment both GraphQL and REST endpoints are available. The aim is to provide a full GraphQL api as primary target and some basic REST endpoints for quick usecases. ### GraphQL Entrypoint: `/api/graphql` Open http://localhost:4000/api/graphiql for schema and documentation exploration. For calls that need authentication, make sure to put the token gotten from a ```GraphQL mutation { authenticatedSession( username_or_email: "admin", password: "password" ) { token } } ``` request into the `Authorization: Bearer ` header. ### REST The REST API has not been updated in a long time and is probably out of order. For now, use GraphQL if you can. Follows [HAL][hal]+json specification. Entrypoint: `/api/rest/v1` Some endpoints: - `/api/rest/v1/podcasts` - `/api/rest/v1/podcasts/:podcast_id` - `/api/rest/v1/podcasts/:podcast_id/episodes` - `/api/rest/v1/podcasts/:podcast_id/episodes/:episode_id` - `/api/rest/v1/files` ## Admin Interface At `http://localhost:4000/admin/podcasts` you will find a simple admin interface to manage podcasts and episodes. There is no concept of users yet, so there is no registration, login or any kind of authentication. Network Edit Podcast ## License Radiator is [MIT Licensed][license]. [phoenix]: https://phoenixframework.org/ [minio]: https://minio.io/ [minio-setup]: https://docs.minio.io/docs/minio-quickstart-guide.html [minio-client-setup]: https://docs.minio.io/docs/minio-client-quickstart-guide.html [pgsql]: https://www.postgresql.org/ [hal]: http://stateless.co/hal_specification.html [license]: https://github.com/podlove/radiator/blob/master/LICENSE [vuejs]: https://vuejs.org/

近期下载者

相关文件


收藏者