Personal website gathering my activities on the internet.
The feed are regularly updated by fetching data from specified sources: RSS feed or Google spreadsheet.
- Create a sheet.
- Set sheet header (first row in the sheet) exactly as follows.
date | title | action | url | description | excluded | from_rss
This is required to access a sheet systematically.
- On GCP IAM console, create a service account.
- Generate a key for the service account with JSON format.
- Open the spreadsheet and paste service account mail(
foo@bar.iam.gserviceaccount.com) on Collaboration settings. - Create
.envwith the following contents on project root dir.
SHEET_ID='foo' # extracted from the sheet url.
GOOGLE_SERVICE_ACCOUNT_EMAIL='bar' # foo@bar.iam.gserviceaccount.com
GOOGLE_PRIVATE_KEY='baz' # copy "private_key" in json (downloaded on step.2)You can configure scheduled deployments via Github Actions easily. (See /.github/workflows)
To make actions work, save the following values in repository secrets.
VERCEL_TOKENPROJECT_IDORG_ID
VERCEL_TOKEN can be generated on Vercel dashboard. PROJECT_ID and ORG_ID can be found in .vercel/project.json which is generated after running vercel command locally.
# install packages
$ npm install
# generate .items.json which has the feed sources.
$ npm run build:items
# start local server
$ npm run devI recommend you deploy on static website hosting services such as Vercel, Netlify or Cloudflare Pages. Note that build commands are configured properly.
# build commands
$ npm run buildTo keep the feed fresh, you need to rebuild the app periodically.
MIT except for logo (/public/icon.*). Be sure to replace them when you fork this repo.
