Update readme with instructions for future production install
This commit is contained in:
parent
809f07504d
commit
9800e5de70
131
README.md
131
README.md
|
@ -21,7 +21,9 @@ An attempt at a viable alternative to Goodreads (currently lacking a name—idea
|
||||||
- [Mirror Repo on GitHub](https://github.com/Alamantus/book-tracker)
|
- [Mirror Repo on GitHub](https://github.com/Alamantus/book-tracker)
|
||||||
- Gets changes from GitLab pushed to it so people who prefer GitHub can contribute there as well. Pull requests and issues created here will also be addressed.
|
- Gets changes from GitLab pushed to it so people who prefer GitHub can contribute there as well. Pull requests and issues created here will also be addressed.
|
||||||
|
|
||||||
## Installation
|
## Development
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
To develop, you'll need to know how to use a terminal or shell on your computer.
|
To develop, you'll need to know how to use a terminal or shell on your computer.
|
||||||
|
|
||||||
|
@ -37,14 +39,137 @@ Then run use [Yarn](https://yarnpkg.com) to install the dependencies:
|
||||||
yarn
|
yarn
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Alternatively, you can use the NPM that's included with Node:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
This install process will compile the sass into CSS at `public/css/index.css` after the dependencies are installed.
|
||||||
|
In the future, this postinstall process will also set up the database tables.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
After everything's installed, run the "start" NPM script to build and serve the front end:
|
After everything's installed, run the "start" NPM script to build and serve the front end:
|
||||||
|
|
||||||
```
|
```
|
||||||
npm run start
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
Included in the `start` process is the sass compilation process again, so if you'd like to skip that process each time
|
||||||
|
you start the server, you can instead use the `start-server` process like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm run start-server
|
||||||
```
|
```
|
||||||
|
|
||||||
Then use your browser to navigate to http://localhost:1234 to view the website.
|
Then use your browser to navigate to http://localhost:1234 to view the website.
|
||||||
|
|
||||||
It's early days, so this segment will definitely change later as the project gets more complex.
|
When you make a change, you need to stop the server with `Ctrl+C` and re-run the script.
|
||||||
|
|
||||||
|
It's early days, so this segment will definitely change later as the project gets more complex.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Production
|
||||||
|
|
||||||
|
This is totally not yet ready, but I want to use this space to block out what how I would like the installation process
|
||||||
|
to go for people installing the app.
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
|
- NodeJS v8.14+
|
||||||
|
- NPM v6.4.1+
|
||||||
|
- NGINX
|
||||||
|
- PostgreSQL 11+
|
||||||
|
|
||||||
|
### Recommendations
|
||||||
|
|
||||||
|
- Use a Debian 9 server for stability. Ubuntu should also work just fine.
|
||||||
|
- Use the default apt packages for the requirements
|
||||||
|
- Use Git to download the project for installation and easy upgrading
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
Here's a step-by-step installation process so you can get a grasp of what you need to do from a brand new
|
||||||
|
Debian 9 installation (not included in steps). Ubuntu installation should be more or less exactly the same.
|
||||||
|
|
||||||
|
#### Step 1: Install Requirements
|
||||||
|
|
||||||
|
Install the requirements with the following commands (note: you may need to use `sudo` for each of these commands):
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install nodejs nginx postgres-11
|
||||||
|
```
|
||||||
|
|
||||||
|
And optionally (but recommended):
|
||||||
|
```
|
||||||
|
sudo apt install git
|
||||||
|
```
|
||||||
|
|
||||||
|
Follow any instructions during each of the installations to get the programs set up correctly.
|
||||||
|
|
||||||
|
NGINX may require additional setup, so check through [this page](https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-9) for different things that might be good to do.
|
||||||
|
|
||||||
|
PostgreSQL will need a database created, so do that and make a user that can access it that's not the root user.
|
||||||
|
|
||||||
|
#### Step 2: Download the Project
|
||||||
|
|
||||||
|
You can set up the project folder in any location on your server, but these instructions will set it up in
|
||||||
|
the current user's home folder using Git like so:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd ~
|
||||||
|
git clone https://gitlab.com/Alamantus/book-tracker.git && cd book-tracker
|
||||||
|
```
|
||||||
|
|
||||||
|
This will download the entire project source code into a `book-tracker` folder.
|
||||||
|
|
||||||
|
#### Step 3: Configure the Project
|
||||||
|
|
||||||
|
Next, There are some configurations you need to set up. Rename the `config.example.json` to `config.json` like so:
|
||||||
|
|
||||||
|
```
|
||||||
|
mv config.example.json config.json
|
||||||
|
```
|
||||||
|
|
||||||
|
And edit its contents with the correct data for your server using your text editor of choice. Here is what
|
||||||
|
the `config.example.json` looks like with some explanations of each field:
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"port": 3000 # the port that the server will serve the app from.
|
||||||
|
"dbhost": "localhost" # Where the postgres server is
|
||||||
|
"dbport": 5432 # What port the postgres server uses
|
||||||
|
"dbname": "book-tracker" # The name of the database book-tracker will use to make tables and store data in
|
||||||
|
"dbuser": "root" # The username with access to your postgres database
|
||||||
|
"dbpass": "password" # The password for the username above
|
||||||
|
... # more to come
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Step 4: Install the Project
|
||||||
|
|
||||||
|
You will then need to install the project.
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
This will install all of the dependencies, compile all of the Sass into usable CSS, set up the database and tables in PostgreSQL,
|
||||||
|
and do any other things that need to be done to get the project set up and usable.
|
||||||
|
|
||||||
|
#### Step 5: Run it!
|
||||||
|
|
||||||
|
Run the following to start the server:
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
Then it'll be running on your server's localhost at the port you specified in the config!
|
||||||
|
|
||||||
|
#### Step 6: Set up an NGINX reverse proxy
|
||||||
|
|
||||||
|
Set up a reverse proxy to your localhost:proxy. This'll have to get filled in later.
|
||||||
|
|
Loading…
Reference in New Issue