Skip to content
/ web-template Public template

Opinionated template for building modern and scalable web projects.

Notifications You must be signed in to change notification settings

enijar/web-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Web Template

Opinionated template for building modern and scalable web projects.

Install

npx degit enijar/web-template project-name
cd project-name

Getting Started

Set up ENV_VARS:

cp client/.env.example client/.env
cp server/.env.example server/.env

Start app in development mode:

nvm use # uses supported Node version for this project
npm install
npm start

Production Build

Set up ENV_VARS:

cp client/.env.example client/.env
cp server/.env.example server/.env

Build app in production mode:

nvm use # uses supported Node version for this project
npm install
npm run build

Run app in production:

# Install PM2 globally to manage the server process
npm add -g pm2
pm2 start --name app server/build/index.js

NGINX config:

server {
    server_name _;
    listen 80;
    listen [::]:80;
    client_max_body_size 500m;

    index index.html;
    root /var/www/project-name/client/build;

    location / {
        try_files $uri $uri/ /index.html =404;
    }

    location ~ ^/(api|trpc) {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_pass http://localhost:3000;
    }
}

About

Opinionated template for building modern and scalable web projects.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published