This shared Google Drive folder serves as the backend for this sample webpage.
Quick links: Github / NPM / Dockerhub / Heroku
npm i google-drive-cms
npm i
npm start
Note: The local demo app connects to a remote backend deployed on Heroku. To run your own backend and connect to your own Google Drive, you will need to create your own API credentials by following the steps in the next section.
- Go to Google Cloud Platform Console
- Create a new project
- Double check that your new project is selected (dropdown in top left)
- Go to APIs and Services
- Enable Google Drive API
- Enable Google Sheets API
- Go to Credentials
- "Create Credentials" > "Service account"
- Choose a name and email for the account
- Skip step 2
- Give your primary google account admin rights to manage this service account
- Select the Service account you just created
- Go to the KEYS tab
- "ADD KEY" > Create new key
- Use key type "JSON" and download the credentials
.json
file - Rename the file to
credentials.json
and move it to/secret/credentials.json
in this repo.
const GoogleDriveCMS = require('google-drive-cms')
const cms = new GoogleDriveCMS();
cms.getDoc('1UC7Ah...').then(console.log);
node node_modules/google-drive-cms/express.js
Get the image on Docker Hub.
# pull from docker hub
docker pull nathanbabcock/google-drive-cms
# or build locally:
docker build . -t nathanbabcock/google-drive-cms
# run container, passing in CLIENT_EMAIL and PRIVATE_KEY
docker run \
--name google-drive-cms \
--restart=always \
--log-opt max-size=100m \
--log-opt max-file=5 \
-e CLIENT_EMAIL=your-client-email-here@npm-drive-cms.iam.gserviceaccount.com \
-e PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n entire private keyfile here \n-----END PRIVATE KEY-----\n" \
-v cache:/usr/src/app/cache \
-p 80:80 \
-d \
nathanbabcock/google-drive-cms