This is the code for my personal website. The project uses React, Redux, and has a Node API which talks to a Redis database.
I use my site to experiment with things, share stuff I've figured out, and allow people to reach-out to me. So if you're interested in anything I do, get in touch!
Ensure redis is installed (brew install redis
).
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true yarn install --frozen-lockfile
yarn dev
yarn dev
will set all necessary environment variables needed to run the application.
A debugger can be attached to debug server-side code.
If components have changed, snapshot tests may need to be updated. Backstop js visual regression tests may also need to be updated.
To update jest snapshots:
npx jest -u
To update backstopJS snapshots:
./scripts/docker/prepare.sh
./scripts/docker/run-tests.sh --update
./scripts/docker/clean-up.sh'
- The first will setup the docker image and container. If they already exist this will be super fast.
- The second will copy the project over, setup dependencies, build and run, and take screenshots. Failed screenshots will be copied back to your machine.
- The third simply stops the docker container.
Any changes resulting from these commands should be verified and checked in.
The following environment variables should be set up
Env var | Reason | Value |
---|---|---|
GSUITE_APP_PASSWORD | To send emails from your Gmail account | The password generated to access yout G-Suite account |
GSUITE_EMAIL | To send emails from your Gmail account | Your G-Suite email address |
FLICKR_API_KEY | To pull images from the showcase album | Your Flickr API key |
NODE_ENV | Makes the magic happen | production |
REDIS_URL | To access the redis database. | If no URL is provided, the server will connect to a local redis instance. |
SECRET_API_KEY | Used to make admin API requests | Anything secret and impossible to guess |
SESSION_SECRET | Used to sign cookies | Anything secret and impossible to guess |
To host this on Heroku, you will need to add the Heroku-redis Add-on. Doing so will create a the REDIS_URL environment variable required to connect to the DB. The server code will automatically use this connection if present instead of connecting to a local instance.
Contributions are welcome. Please fork and submit a PR if you want to add or change a feature.