Skip to content
See the projected impacts of climate change for where you live.
TSQL Other
  1. TSQL 99.9%
  2. Other 0.1%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
data
db
routes
.dockerignore
.gitignore
.prettierrc.json
Dockerfile
MANUAL_SETUP.md
Procfile
README.md
app.js
docker-compose.yml
package.json
yarn.lock

README.md

ClimateFuture API

This is the API server that powers climatefuture.io. The frontend code is at kevinsqi/climatefuture-client.

Setup

Go here and create an API key: https://developers.google.com/maps/documentation/geocoding/start#get-a-key

Create a .env file that contains the following:

GOOGLE_MAPS_PLATFORM_KEY=<your api key>

If not using docker-compose to run in development, see MANUAL_SETUP.md to see how to set server up with locally running postgres/postgis.

Running

You'll need Docker installed. In this directory, run:

docker-compose build
docker-compose up

Common dev tasks

Shell into database:

yarn db:shell

Create a new migration and update the DB snapshot:

node_modules/.bin/knex --knexfile ./db/knexfile.js migrate:make [MIGRATION_NAME]
# ...make changes to the migration file...
docker exec -it climatefuture_server_1 yarn run db:migrate
docker exec climatefuture_postgres_1 pg_dump -U climatefuture_user climatefuture > db/init.sql

Common prod tasks

Shell into database:

dokku postgres:connect climatefuture

Running migrations in production:

docker exec -e NODE_ENV=production climatefuture.web.1 yarn run db:migrate

Clearing cached acis_responses table:

dokku postgres:connect climatefuture
delete from acis_responses;

Deploying to production

SSH setup:

Deploying:

  • SSH into dokku droplet: ssh root@climatefuture.io
  • Create app: dokku apps:create climatefuture
  • Create postgres plugin if it doesn't exist: sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git
  • Create postgres service with postgis image:
    • export POSTGRES_IMAGE="mdillon/postgis"
    • export POSTGRES_IMAGE_VERSION=latest
    • dokku postgres:create climatefuture
    • dokku postgres:connect climatefuture and CREATE EXTENSION postgis;
  • Link postgres to application (this sets DATABASE_URL env var): dokku postgres:link climatefuture climatefuture
  • Add dokku remote: git remote add dokku dokku@climatefuture.io:climatefuture
  • Push to dokku: git push dokku master
  • Load up DB schema and seed data:
    • dokku enter climatefuture
    • cd server
    • yarn run db:load
  • Add domains: dokku domains:add climatefuture api.climatefuture.io
  • Add env vars (find in 1password "ClimateFuture"): dokku config:set climatefuture GOOGLE_MAPS_PLATFORM_KEY=<key>
You can’t perform that action at this time.