Skip to content
This repository was archived by the owner on Nov 21, 2024. It is now read-only.

Commit af58791

Browse files
committed
fix(ci): Update source for correct deploy with postgres database
1 parent 6854385 commit af58791

13 files changed

+148
-37
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ A simple application demonstrating the basic usage of permissions with NestJS (J
2424
- copy `develop._env` to `develop.env` and set environments for use (on Windows copy with IDE)
2525
- run `npm install` to install project dependencies
2626
- run `npm build` to install project dependencies
27-
- run `npm run start` to fire up prod server (`npm run start:dev` - dev server)
27+
- run `npm run start:prod` to fire up prod server (`npm run start:dev` - dev server)
2828
- Open browser to [`http://localhost:5000/swagger`](http://localhost:5000/swagger)
2929

3030
### Users
@@ -35,7 +35,8 @@ A simple application demonstrating the basic usage of permissions with NestJS (J
3535
### Swagger
3636
- local: [`http://localhost:5000/swagger`](http://localhost:5000/swagger)
3737
- online on heroku: [`https://rucken-core-nestjs.herokuapp.com/swagger`](https://rucken-core-nestjs.herokuapp.com/swagger)
38-
- online on now: [`https://rucken-core-nestjs.now.sh/swagger`](https://rucken-core-nestjs.now.sh/swagger)
38+
- online on now with db sqlite: [`https://rucken-core-nestjs.now.sh/swagger`](https://rucken-core-nestjs.now.sh/swagger)
39+
- online on now with db postgres: [`https://rucken-core-nestjs-postgres.now.sh/swagger`](https://rucken-core-nestjs.now.sh/swagger)
3940
- apiKey template: ```JWT <token_generated_on_login>```
4041

4142
### Docs

README_DEV.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ npm run migrate:run
88

99
## Run with custom env file
1010
```bash
11-
./node_modules/.bin/cross-env NODE_ENV=postgres npm run clean
12-
./node_modules/.bin/cross-env NODE_ENV=postgres npm run migrate
1311
./node_modules/.bin/cross-env NODE_ENV=postgres npm run build
1412
./node_modules/.bin/cross-env NODE_ENV=postgres npm run start:dev
13+
./node_modules/.bin/cross-env NODE_ENV=postgres npm run start
1514
```

now.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
{
22
"alias": [
3-
"rucken-core-nestjs.now.sh"
3+
"rucken-nestjs.now.sh",
4+
"rucken-core-nestjs.now.sh",
5+
"rucken-core-nestjs-mongo.now.sh",
6+
"rucken-todo-nestjs.now.sh"
47
],
58
"env": {
9+
"NODE_ENV": "production",
10+
"NPM_CONFIG_PRODUCTION": "false",
611
"DEBUG": "@debug",
712
"DEMO": "true",
813
"DOMAIN": "@domain",

ormconfig.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ const load = require('dotenv').load;
33
const path = require('path');
44
const fs = require('fs');
55
const NODE_ENV = process.env.NODE_ENV || 'develop';
6+
const DB_SOURCE_EXT = process.env.DB_SOURCE_EXT || 'js';
67
// todo: wait resolve https://github.com/typeorm/typeorm/issues/2358
7-
// const dbSourceExt = NODE_ENV === 'develop' ? 'ts' : 'js';
8-
// const sourceRootKey = NODE_ENV === 'develop' ? 'sourceRoot' : 'outputPath';
9-
const dbSourceExt = 'ts';
10-
const sourceRootKey = 'sourceRoot';
8+
const sourceRootKey = (DB_SOURCE_EXT === 'ts' || NODE_ENV === 'develop') ? 'sourceRoot' : 'outputPath';
119
const nestCliConfig = JSON.parse(fs.readFileSync('.nestcli.json'));
1210
try {
1311
fs.accessSync(`${NODE_ENV}.env`);
@@ -33,15 +31,15 @@ const defaultApp = nestCliConfig.projects[defaultProject];
3331

3432
if (connectionString.protocol === 'sqlite') {
3533
const databaseUrl =
36-
(dbSourceExt === 'ts' ? './' : '../') +
34+
(DB_SOURCE_EXT === 'ts' ? './' : '../') +
3735
connectionString.hosts[0].name +
3836
(connectionString.path.length ? '/' + connectionString.path[0] : '');
3937
module.exports = {
4038
type: 'sqlite',
4139
database: databaseUrl,
42-
entities: [...libs, ...apps].map(lib => `${lib[sourceRootKey]}/**/entities/**/*.entity.${dbSourceExt}`),
43-
migrations: [...libs, ...apps].map(lib => `${lib[sourceRootKey]}/**/migrations/**/*.${dbSourceExt}`),
44-
subscribers: [...libs, ...apps].map(lib => `${lib[sourceRootKey]}/**/subscribers/**/*.${dbSourceExt}`),
40+
entities: [...libs, ...apps].map(lib => `${lib[sourceRootKey]}/**/entities/**/*.entity.${DB_SOURCE_EXT}`),
41+
migrations: [...libs, ...apps].map(lib => `${lib[sourceRootKey]}/**/migrations/**/*.${DB_SOURCE_EXT}`),
42+
subscribers: [...libs, ...apps].map(lib => `${lib[sourceRootKey]}/**/subscribers/**/*.${DB_SOURCE_EXT}`),
4543
logging: 'all',
4644
synchronize: false,
4745
cli: {
@@ -56,9 +54,9 @@ if (connectionString.protocol === 'sqlite') {
5654
username: connectionString.user,
5755
password: connectionString.password,
5856
database: connectionString.path[0],
59-
entities: [...libs, ...apps].map(lib => `${lib[sourceRootKey]}/**/entities/**/*.entity.${dbSourceExt}`),
60-
migrations: [...libs, ...apps].map(lib => `${lib[sourceRootKey]}/**/migrations/**/*.${dbSourceExt}`),
61-
subscribers: [...libs, ...apps].map(lib => `${lib[sourceRootKey]}/**/subscribers/**/*.${dbSourceExt}`),
57+
entities: [...libs, ...apps].map(lib => `${lib[sourceRootKey]}/**/entities/**/*.entity.${DB_SOURCE_EXT}`),
58+
migrations: [...libs, ...apps].map(lib => `${lib[sourceRootKey]}/**/migrations/**/*.${DB_SOURCE_EXT}`),
59+
subscribers: [...libs, ...apps].map(lib => `${lib[sourceRootKey]}/**/subscribers/**/*.${DB_SOURCE_EXT}`),
6260
logging: 'all',
6361
synchronize: false,
6462
cli: {

package-lock.json

Lines changed: 21 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"start:dev": "nodemon",
4848
"start:prod": "cross-env NODE_ENV=production ./node_modules/.bin/pm2 start dist/main.js --name demo",
4949
"start:hmr": "cross-env NODE_ENV=production node dist/main.hmr.js",
50-
"start": "./node_modules/.bin/pm2 start dist/main.js --name demo",
50+
"start": "node dist/main.js",
5151
"stop": "./node_modules/.bin/pm2 kill",
5252
"logs": "./node_modules/.bin/pm2 logs",
5353
"logs:flush": "./node_modules/.bin/pm2 flush",
@@ -57,11 +57,11 @@
5757
"webpack": "webpack --config webpack.config.js",
5858
"migrate:create": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js migration:create",
5959
"migrate:generate": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js migration:generate",
60-
"migrate": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js migration:run",
60+
"migrate": "cross-env DB_SOURCE_EXT=ts ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js migration:run",
6161
"docs": "./node_modules/.bin/typedoc --ignoreCompilerErrors --excludeExternals --out www/docs src",
6262
"md-to-html": "showdown makehtml -i README.md -o frontend/index.html",
6363
"frontend": "run-s md-to-html",
64-
"build": "run-s clean format docs migrate tsc frontend",
64+
"build": "run-s clean format docs tsc migrate frontend",
6565
"heroku-postbuild": "npm run build",
6666
"prepare:core": "rucken make-ts-list ./src/libs/core",
6767
"prepare:auth": "rucken make-ts-list ./src/libs/auth",

postgres-now.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"alias": [
3+
"rucken-core-nestjs-postgres.now.sh"
4+
],
5+
"env": {
6+
"NODE_ENV": "production",
7+
"NPM_CONFIG_PRODUCTION": "false",
8+
"DEBUG": "@debug",
9+
"DEMO": "true",
10+
"DOMAIN": "@domain",
11+
"PROTOCOL": "https",
12+
"JWT_SECRET_KEY": "@jwt_secret_key",
13+
"JWT_EXPIRATION_DELTA": "7 days",
14+
"JWT_AUTH_HEADER_PREFIX": "JWT",
15+
"FACEBOOK_CLIENT_ID": "@facebook_client_id",
16+
"FACEBOOK_CLIENT_SECRET": "@facebook_client_secret",
17+
"FACEBOOK_OAUTH_REDIRECT_URI": "@facebook_oauth_redirect_uri",
18+
"GOOGLE_CLIENT_ID": "@google_client_id",
19+
"GOOGLE_CLIENT_SECRET": "@google_client_secret",
20+
"GOOGLE_OAUTH_REDIRECT_URI": "@google_oauth_redirect_uri",
21+
"DATABASE_URL": "@postgres_database_url"
22+
}
23+
}

postgres._env

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
DEBUG=true
2+
DEMO=false
3+
NODE_MODULES_CACHE=false
4+
NPM_CONFIG_PRODUCTION=false
5+
DOMAIN=localhost
6+
PORT=5000
7+
EXTERNAL_PORT=5000
8+
JWT_SECRET_KEY=secret_key
9+
JWT_EXPIRATION_DELTA=7 days
10+
JWT_AUTH_HEADER_PREFIX=JWT
11+
12+
# https://developers.facebook.com/apps/<FACEBOOK_CLIENT_ID>/settings/basic/
13+
FACEBOOK_CLIENT_ID=
14+
FACEBOOK_CLIENT_SECRET=
15+
FACEBOOK_OAUTH_REDIRECT_URI={host}/auth/facebook/
16+
17+
# https://console.developers.google.com/apis/credentials/oauthclient/
18+
GOOGLE_CLIENT_ID=
19+
GOOGLE_CLIENT_SECRET=
20+
GOOGLE_OAUTH_REDIRECT_URI={host}/auth/google-plus/
21+
22+
#DATABASE_URL=sqlite://database/sqlitedb.db
23+
DATABASE_URL=postgres://USER:PASSWORD@HOST:1105/NAME
24+
#DATABASE_URL=sqlite://db.sqlite3
25+
#DATABASE_URL=oracle://USER:PASSWORD@HOST:1105/NAME
26+
#DATABASE_URL=mysql://USER:PASSWORD@HOST:1105/NAME
27+
#DATABASE_URL=redis://USER:PASSWORD@HOST:1105
28+
#DATABASE_URL=memcached://USER:PASSWORD@HOST:1105
29+
#DATABASE_URL=ocmem://HOST:1105/PATH

production._env

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
DEBUG=true
2+
DEMO=false
3+
NODE_MODULES_CACHE=false
4+
NPM_CONFIG_PRODUCTION=false
5+
DOMAIN=localhost
6+
PORT=5000
7+
EXTERNAL_PORT=5000
8+
JWT_SECRET_KEY=secret_key
9+
JWT_EXPIRATION_DELTA=7 days
10+
JWT_AUTH_HEADER_PREFIX=JWT
11+
12+
# https://developers.facebook.com/apps/<FACEBOOK_CLIENT_ID>/settings/basic/
13+
FACEBOOK_CLIENT_ID=
14+
FACEBOOK_CLIENT_SECRET=
15+
FACEBOOK_OAUTH_REDIRECT_URI={host}/auth/facebook/
16+
17+
# https://console.developers.google.com/apis/credentials/oauthclient/
18+
GOOGLE_CLIENT_ID=
19+
GOOGLE_CLIENT_SECRET=
20+
GOOGLE_OAUTH_REDIRECT_URI={host}/auth/google-plus/
21+
22+
DATABASE_URL=sqlite://database/sqlitedb.db
23+
#DATABASE_URL=postgres://USER:PASSWORD@HOST:1105/NAME
24+
#DATABASE_URL=sqlite://db.sqlite3
25+
#DATABASE_URL=oracle://USER:PASSWORD@HOST:1105/NAME
26+
#DATABASE_URL=mysql://USER:PASSWORD@HOST:1105/NAME
27+
#DATABASE_URL=redis://USER:PASSWORD@HOST:1105
28+
#DATABASE_URL=memcached://USER:PASSWORD@HOST:1105
29+
#DATABASE_URL=ocmem://HOST:1105/PATH

scripts/now-deploy.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
#!/bin/bash
2+
now rm rucken-core-nestjs -y
23
now --public
34
now alias
5+
now --local-config postgres-now.json --public
6+
now --local-config postgres-now.json alias
7+
read -p "Press any key to continue... " -n1 -s

scripts/version-bump.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ bump=`node_modules/.bin/conventional-recommended-bump -p angular`
55
echo ${1:-$bump}
66
npm --no-git-tag-version version ${1:-$bump} &>/dev/null
77
node_modules/.bin/conventional-changelog -i CHANGELOG.md -s -p ${2:-$preset}
8+
read -p "Press any key to continue... " -n1 -s

src/main.hmr.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,21 @@ async function bootstrap() {
4747
path.resolve(__dirname, '..', 'www'),
4848
path.resolve(__dirname, '..', 'frontend')
4949
];
50-
50+
Logger.log(NODE_ENV);
51+
const envFile = path.resolve(__dirname, '..', `${NODE_ENV}.env`);
5152
try {
52-
accessSync(`../${NODE_ENV}.env`);
53-
load({ path: `../${NODE_ENV}.env` });
54-
Logger.log(`env file: ${NODE_ENV}.env`, 'Main');
53+
accessSync(envFile);
54+
load({ path: envFile });
55+
Logger.log(`env file: ${envFile}`, 'Main');
5556
} catch (error) {
57+
Logger.log(`error on get env file: ${envFile}`, 'Main');
5658
try {
5759
accessSync(`.env`);
5860
load();
5961
Logger.log(`env file: .env`, 'Main');
60-
} catch (error) {}
62+
} catch (error) {
63+
Logger.log(`error on get env file: .env`, 'Main');
64+
}
6165
}
6266
const connectionString = new ConnectionString(process.env.DATABASE_URL);
6367
if (connectionString.protocol === 'sqlite') {
@@ -67,7 +71,7 @@ async function bootstrap() {
6771
(connectionString.path.length ? '/' + connectionString.path[0] : '');
6872
try {
6973
chmod(dbFile, 777);
70-
} catch (error) {}
74+
} catch (error) { }
7175
}
7276
const coreConfig: ICoreConfig = {
7377
...defaultCoreConfig,

src/main.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,21 @@ async function bootstrap() {
4949
path.resolve(__dirname, '..', 'www'),
5050
path.resolve(__dirname, '..', 'frontend')
5151
];
52-
52+
Logger.log(NODE_ENV);
53+
const envFile = path.resolve(__dirname, '..', `${NODE_ENV}.env`);
5354
try {
54-
accessSync(`../${NODE_ENV}.env`);
55-
load({ path: `../${NODE_ENV}.env` });
56-
Logger.log(`env file: ${NODE_ENV}.env`, 'Main');
55+
accessSync(envFile);
56+
load({ path: envFile });
57+
Logger.log(`env file: ${envFile}`, 'Main');
5758
} catch (error) {
59+
Logger.log(`error on get env file: ${envFile}`, 'Main');
5860
try {
5961
accessSync(`.env`);
6062
load();
6163
Logger.log(`env file: .env`, 'Main');
62-
} catch (error) {}
64+
} catch (error) {
65+
Logger.log(`error on get env file: .env`, 'Main');
66+
}
6367
}
6468
const connectionString = new ConnectionString(process.env.DATABASE_URL);
6569
if (connectionString.protocol === 'sqlite') {

0 commit comments

Comments
 (0)