All Projects → bahlo → serverless-podcast

bahlo / serverless-podcast

Licence: MIT license
[UNMAINTAINED] 📢 Easy, cheap podcast hosting using Serverless and S3

Programming Languages

HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to serverless-podcast

lambda-lite-js
a tiny FUNCITONAL LANGUAGE implemented by javascript. 一个函数式语言,使用 js 实现。
Stars: ✭ 77 (+413.33%)
Mutual labels:  lambda
podcast
🦆 Выпуски подкаста Goose&Duck
Stars: ✭ 19 (+26.67%)
Mutual labels:  podcast
podcatcher
A podcast client for the command line written in Ruby.
Stars: ✭ 39 (+160%)
Mutual labels:  podcast
lambda-example
Example REST service for a Lambda article I wrote
Stars: ✭ 23 (+53.33%)
Mutual labels:  lambda
s3-monitoring
No description or website provided.
Stars: ✭ 14 (-6.67%)
Mutual labels:  lambda
serverless-graalvm-demo
Sample serverless application written in Java compiled with GraalVM native-image
Stars: ✭ 132 (+780%)
Mutual labels:  lambda
serverless-image-rendering
Image delivery with AWS Lambda ⚡
Stars: ✭ 43 (+186.67%)
Mutual labels:  lambda
lambda-memory-performance-benchmark
Performance and cost benchmark tool for AWS Lambda on memory sizes 📈⏱
Stars: ✭ 60 (+300%)
Mutual labels:  lambda
lambda2js
Converts a C# expression tree (from Linq namespace) to a syntatically correct javascript code.
Stars: ✭ 51 (+240%)
Mutual labels:  lambda
terraform-lambda-fixed-ip
Provide a fixed IP (ElasticIP) to your AWS Lambdas
Stars: ✭ 20 (+33.33%)
Mutual labels:  lambda
jenkinsfile-runner-lambda
Run Jenkinsfiles in AWS Lambda
Stars: ✭ 52 (+246.67%)
Mutual labels:  lambda
terraform-aws-efs-backup
Terraform module designed to easily backup EFS filesystems to S3 using DataPipeline
Stars: ✭ 40 (+166.67%)
Mutual labels:  lambda
serverless-plugin-parcel
A Serverless framework plugin to bundle assets with Parcel (ES6/7 or Typescript)
Stars: ✭ 23 (+53.33%)
Mutual labels:  lambda
radioDaal
Radio Daal podcast website
Stars: ✭ 16 (+6.67%)
Mutual labels:  podcast
aws-backup-lambda
A utility AWS lambda function to manage EBS and RDS snapshot backups.
Stars: ✭ 60 (+300%)
Mutual labels:  lambda
lambda-runtime-pypy3.5
AWS Lambda Runtime for PyPy 3.5
Stars: ✭ 17 (+13.33%)
Mutual labels:  lambda
haskellweekly
Publishes curated news about the Haskell programming language.
Stars: ✭ 119 (+693.33%)
Mutual labels:  podcast
ooso
Java library for running Serverless MapReduce jobs
Stars: ✭ 25 (+66.67%)
Mutual labels:  lambda
lambda-ci
CI/CD for Lambda Functions with Jenkins
Stars: ✭ 20 (+33.33%)
Mutual labels:  lambda
tech1-temple-aws
AWS Proofs of Concepts repository. No Longer Supported
Stars: ✭ 32 (+113.33%)
Mutual labels:  lambda

serverless-podcast

Ever wanted to start podcasting? Now is your chance, it doesn't get easier than going serverless.

What you need

Setup

Local

  1. Run npm install
  2. Copy config.sample.yml to config.prod.yml and edit to your needs
  3. Run serverless deploy
  4. Run serverless invoke updateHTML to generate the HTML files (this is only needed after config changes).
  5. Run serverless invoke updatePublish to generate publish page (done at 00:00 every day)

AWS

  1. Enable Static Website Hosting (which is currently not possible with serverless) and set Index Document to index.html and Error Document to error.html.
  2. Create an IAM user with a policy (example below)
  3. Add the bucket URLs and credentials of the user to your config.prod.yml
  4. If you want to use a custom domain, you need to enable CORS (example below)

Example IAM policy

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket/*"
            ]
        }
    ]
}

Example CORS configuration

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>domain.com</AllowedOrigin>
        <AllowedMethod>POST</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
    </CORSRule>
</CORSConfiguration>

Usage

Go to http://mybucket.com/publish.html, fill out the fields and click publish. It's that easy.

License

This project is licensed under MIT, for more information see the LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].