Skip to content

m0rsecode/next-postgres

Repository files navigation

next-postgres

This is a example of a forum web application with posts, comments and server side rendering.

It is deployed here.

screen shot 2017-07-31 at 1 13 27 am

Library breakdown

🐨 This code is for you to take! My only hope is that it is helpful. Below are deploy steps where you can deploy your own to Heroku.

Why is this useful?

  • The entire stack is written in JavaScript.
  • Test concepts before bringing them over to real work.
  • Server side rendering made simple.
  • Speed at Hackathons.

Mobile apps with JavaScript

I also built a React Native application with Expo that sends network requests to a deployed version of this application. Below are steps to deploy your own).

Setup: Prerequisites

  • Use Homebrew.
  • Install Postgres: brew install postgres.
  • Install Node 6+: brew install node.

Setup: Quick newbies guide to Postgres

  • On OSX, to run Postgres:
pg_ctl -D /usr/local/var/postgres start
  • Postgres config is stored in ./config.js.
  • Local database: testdb.
  • Username and password as test.

First time Postgres instructions.

# Enter Postgres console
psql postgres

# Create a new user for yourself
CREATE ROLE yourname WITH LOGIN PASSWORD 'yourname';

# Allow yourself to create databases
ALTER ROLE yourname CREATEDB;

# Exit Postgres console
\q

# Log in as your new user.
psql postgres -U yourname

# Create a database named: testdb.
# If you change this, update config.js
CREATE DATABASE testdb;

# Give your self privileges
GRANT ALL PRIVILEGES ON DATABASE testdb TO yourname;

# List all of your databases
\list

# Connect to your newly created DB as a test
\connect testdb

# Exit Postgres console
\q

You wont return here unless you drop tables. You can also use a GUI if you like.

Setup: Run locally

In the root directory run these commands:

npm install
npm install -g sequelize-cli
sequelize db:migrate
npm run dev

You can now visit localhost:8000 in a browser.

Deploy: Setup Heroku

Install Heroku.

npm install -g heroku-cli
heroku login
heroku create

Heroku will give you a unique address, like ours: guarded-coast-67601.herokuapp.com.

Already have a heroku app to deploy to?

heroku git:remote -a name-of-your-heroku-app

Deploy: Configure Postgres and environment variables on Heroku

Go to https://data.heroku.com, add a datastore, pick Postgres.

You will receive database, host, password, port, and username values. Here is how you set them:

# Set variables
heroku config:set PRODUCTION_DATABASE=NAME_PROVIDED_FROM_HEROKU
heroku config:set PRODUCTION_HOST=HOST_PROVIDED_FROM_HEROKU
heroku config:set PRODUCTION_PASSWORD=PASSWORD_PROVIDED_FROM_HEROKU
heroku config:set PRODUCTION_PORT=PORT_PROVIDED_FROM_HEROKU
heroku config:set PRODUCTION_USERNAME=USERNAME_PROVIDED_FROM_HEROKU

# See all of your variables
heroku config

Set a secret for cookie-session:

heroku config:set PRODUCTION_SECRET=PICK_A_SECRET

Deploy

git push heroku master

append --force if necessary.

Questions?

Feel free to slang any feels to @meanjim.

About

An example application using React 16/NextJS + Emotion 8 and Sequelize 4/Postgres, then deployed to Heroku

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%