You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
3.5 KiB
121 lines
3.5 KiB
# Steps to Create and Deploy
|
|
|
|
## Set up local app
|
|
|
|
### Install Composer
|
|
|
|
- Make sure you have MAMP and Postgres installed and running
|
|
- Download comopser: https://getcomposer.org/composer-stable.phar
|
|
- In Terminal, run:
|
|
|
|
- `mv ~/Downloads/composer-stable.phar /usr/local/bin/composer`
|
|
- `chmod 755 /usr/local/bin/composer`
|
|
- `echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.bash_profile`
|
|
- `ls /Applications/MAMP/bin/php` and take note of the most recent version
|
|
- `echo 'export PATH="/Applications/MAMP/bin/php/php7.4.2/bin:$PATH"' >> ~/.bash_profile` substituting your latest version of php for `php7.4.2`
|
|
|
|
- close terminal window and open a new one
|
|
|
|
### Forking/Cloning This Repo
|
|
|
|
After forking and cloning this repo to your local machine:
|
|
|
|
- `cd` to repo dir
|
|
- run `composer install`
|
|
- run `cp .env.example .env`
|
|
|
|
### Connect to db
|
|
|
|
**Note:** in your terminal, if running psql gives you "command not found", run ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/psql /usr/local/bin/psql
|
|
|
|
Connect to psql and
|
|
|
|
```
|
|
CREATE DATABASE contacts;
|
|
\c contacts
|
|
CREATE TABLE people (id SERIAL, name VARCHAR(16), age INT);
|
|
INSERT INTO people (name, age) VALUES ('matt', 40);
|
|
```
|
|
|
|
Run `whoami` and take note over your computer's username (mine is `matthuntington`)
|
|
|
|
In `.env` file, adjust the following code block:
|
|
|
|
```
|
|
DB_CONNECTION=mysql
|
|
DB_HOST=127.0.0.1
|
|
DB_PORT=3306
|
|
DB_DATABASE=laravel
|
|
DB_USERNAME=root
|
|
DB_PASSWORD=
|
|
```
|
|
|
|
so it is:
|
|
|
|
```
|
|
DB_CONNECTION=pgsql
|
|
DB_HOST=localhost
|
|
DB_PORT=5432
|
|
DB_DATABASE=contacts
|
|
DB_USERNAME=matthuntington
|
|
DB_PASSWORD=
|
|
```
|
|
|
|
Instead of `matthuntington` insert your computer's username (what you found when running `whoami`)
|
|
|
|
### Start App
|
|
|
|
- run before the first time only: `php artisan key:generate`
|
|
|
|
- run `php artisan serve`
|
|
- go to http://localhost:8000/ to see that the app works
|
|
- if browser asks you to generate key, click the button
|
|
- go to http://localhost:8000/index.html to see the react app for `contacts`
|
|
|
|
## set up heroku
|
|
|
|
### in your terminal
|
|
|
|
1. run `heroku create` (take note of the app name for later)
|
|
1. run `heroku config:set LOG_CHANNEL=errorlog`
|
|
1. run `heroku config:set APP_KEY=$(php artisan --no-ansi key:generate --show)`
|
|
|
|
### in your browser
|
|
|
|
1. go to heroku.com in your browser and sign in
|
|
1. find this newly created heroku app in your list of available apps and click on it
|
|
1. go to resources
|
|
1. search for postgres and choose Heroku Postgres
|
|
1. choose "Hobby Dev - Free"
|
|
1. click provision
|
|
|
|
### in your terminal
|
|
|
|
1. in your terminal, if running `psql` gives you "command not found", run `ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/psql /usr/local/bin/psql`
|
|
1. run `heroku pg:psql`
|
|
1. once inside heroku's psql, run
|
|
1. `CREATE TABLE people (id SERIAL, name VARCHAR(16), age INT);`
|
|
1. `INSERT INTO people ( name, age ) VALUES ( 'Matt', 38 );`
|
|
1. `INSERT INTO people ( name, age ) VALUES ( 'Sally', 54 );`
|
|
1. `INSERT INTO people ( name, age ) VALUES ( 'Zanthar', 4892 );`
|
|
1. exit heroku psql with `\q`
|
|
1. run `git push heroku master`
|
|
1. run `heroku open` to see app (note this uses your heroku postgres database, which will have different data than your local db)
|
|
|
|
### Check your app on heroku
|
|
|
|
- `git push heroku master`
|
|
- `heroku open`
|
|
- go to `/index.html` to see the react app, the root will be default Laravel info.
|
|
|
|
## Rerunning local after initial set up
|
|
|
|
Open Postgres app and start the db
|
|
|
|
In terminal:
|
|
|
|
1. Go to repo root dir
|
|
1. Run `php artisan serve`
|
|
|
|
In Browser go to http://localhost:8000/index.html
|