Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
/abuPublic

Abu CMS is a Serverless Headless CMS

License

NotificationsYou must be signed in to change notification settings

kdcio/abu

Repository files navigation

Open-source serverless headless CMS. Deployed in AWS infrastructure.

Models

AbuCMS is an easy to use content manager making them available via API.

  • Bring your data anywhere - Central location for all your content. Accessible to anywhere via REST API.
  • Zero-cost - As long you are within the AWS free-tier limit, you'll be paying $0 forever. Even if you go above the free-tier, cost will be minimal and it will be a pay-per-use model.
  • No servers needed - Services used are all serverless technologies which means you don't have to worry about performance, scalability, security and cost.

Infrastructure

Infrastructure

Requirements

Local Development

You'll needdocker installed for runninglocal dynamodb.

  1. Clone this project and install packages

    git clone https://github.com/kdcio/abu.gitcd abuyarn
  2. Createconfig/dev.yml and addPROJECT_NAME,REGION andPROFILE.

    PROJECT_NAME:myproject.comREGION:ap-southeast-1PROFILE:devFIRST_USER_EMAIL:juan@myproject.com

    PROJECT_NAME will be referenced in all resources used in AWS. It must be unique with only letters and numbers. It should also be unique for S3 bucket name and cognito pool client domain usage. I recommend using a subdomain likeadmin-dev.myproject.com.

    REGION is theAWS Region you want your application to be deployed.

    PROFILE is used by AWS CLI to identify who you are. Here's how you configurenamed profiles.

  3. Run local setup script

    yarn setup:local

    This will create cognito resources in your AWS account and then run a local dynamodb.

    A temporary password will be sent to your email.

    Note that the script will append config variables toconfig/dev.yml andpackages/cms/.env (this file will be created automatically).

  4. Run the API, CMS and S3 usingconcurrently

    yarn start

    You can also run them separatelyyarn start:api andyarn start:cms for easier debugging.

Here are the services that will be running:

  1. http://localhost:8060/ - CMS
  2. http://localhost:8061/ - API
  3. http://localhost:8062/ - DynamoDB local
  4. http://localhost:8063/ -DynamoDB manager
  5. http://localhost:8064/ - S3 local

Deployment using S3 and CloudFront without domain name

  1. Clone this project and install packages

    git clone https://github.com/kdcio/abu.gitcd abuyarn
  2. Createconfig/prod.yml and addPROJECT_NAME,REGION andPROFILE.

    PROJECT_NAME:admin.myproject.comUPLOAD_BUCKET:admin-upload.myproject.comREGION:ap-southeast-1PROFILE:my-production-profileFIRST_USER_EMAIL:juan@myproject.com

    PROJECT_NAME will be referenced in all resources used in AWS. It must be unique with only letters and numbers. It should also be unique for S3 bucket name and cognito pool client domain usage. I recommend using a subdomain likeadmin.myproject.com.

    UPLOAD_BUCKET will be an S3 bucket to host file uploads.

    REGION is theAWS Region you want your application to be deployed.

    PROFILE is used by AWS CLI to identify who you are. Here's how you configurenamed profiles.

  3. Run deploy script

    yarn deploy prod

    The script will take about 20 minutes to finish to provisioning everything.

    Here's a list of AWS resources that will be provisioned:

    • CMS Website Stack
      • CloudFront
      • S3
    • API Stack
      • Lambda
      • API Gateway
      • CloudWatch
    • Upload Stack
      • CloudFront
      • S3
      • Lambda Edge
    • User Management Stack
      • Cognito
    • Database Stack
      • DynamoDB

    All of the stacks will use CloudFormation and S3 for deployment.

    A temporary password will be sent to your email.

    Note that the script will append config variables toconfig/prod.yml andpackages/cms/.env.production.local (this file will be created automatically).

    If all goes well, the script should output where you can find the CMS.

    Enjoy!!!


[8]ページ先頭

©2009-2025 Movatter.jp