Skip to content

An open source serverless content management system and static page generator

License

Notifications You must be signed in to change notification settings

torus-digital/torus_cms

Repository files navigation

logo

License Build Status contributions welcome Join the chat at https://gitter.im/torus_cms/community

Torus CMS is an open source micro service based serverless content management system (CMS) for building, managing and deploying static sites in a light, cost-effective way. It's mobile compatible and it provides a friendly GUI, allowing you to easily publish content from any device.

Torus CMS is standalone and can be added to any static site. There is no need to migrate your site, learn a new language or do any maintenance.

How it works

logo

Getting Started

Pre-requisites

  • Make sure you have node.js and npm installed. You can checkout this tutorial to install npm and node in mac, linux (debian/ubuntu).
  • Have an AWS account. If you don't have an AWS account, you can easily create one here. Don't worry, everything you do with this project will fall within the AWS free tier limit!

Steps

  1. Clone the git repository

  2. Go into the directory of the project cd torus_cms

  3. Install all dependencies by running npm install

  4. Install the amplify CLI if you havn't done so already npm install -g @aws-amplify/cli

  5. run the deplyment script node deployment-script.js

  6. Configure amplify by running amplify configure

  7. Create a file called .env withe the following variables

    AWS_ACCESS_KEY_ID=your-access-key
    AWS_SECRET_ACCESS_KEY=your-secret-access-key
    AWS_REGION=us-east-1
    AWS_ACCOUNT_NUMBER=your-aws-account-number
    
  8. To find your AWS account number, go to the AWS console support center image 18

  9. Initialize a new amplify project inside your react app amplify init init1 init2

  10. Add authentication amplify add auth use the default configuration

  11. Add an S3 storage bucket amplify add storage storage ** you can use the space bar to select multiple options

  12. Add a graphQL API amplify add api to easily store and retrieve data from dynamoDB api

  13. Set up hosting for the amplify app amplify hosting add

    1. Select dev
    2. For the name of the bucket, enter admin.your-domain.com replace your-domain.com with your domain.
  14. Re-run the deployment script. Add a -dev at the end of the name your sotrage bucket (e.g. yourstorage-bucket-dev). this assumes you named your environment dev.

  15. Make sure to change the nameservers in your domain's DNS settings to use the four nameservers from route 53. This step will vary depending on your domain name registrar. nameservers

  16. Add a two more variables to your .env file containing your API's invoke URL and your website's url.

REACT_APP_COPY_BUCKET_URL=your-invoke-url
REACT_APP_SITE_URL=http://your-domain.com
  1. Now your ready to publish your app. Run amplify publish

    1. Do you want to generate code for your newly created api? No
    2. Be a bit patient ...
  2. Your all set! now you can upload pictures and articles to your static site! login screen

  3. Instead of publishing the admin app you can also only publish the backend by running amplify push then you can run the app locally with npm start

About

An open source serverless content management system and static page generator

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published