summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jan.tuomi@eficode.com>2020-02-05 11:55:43 +0200
committerJan Tuomi <jan.tuomi@eficode.com>2020-02-05 11:55:43 +0200
commit48a60c896d86de9bf76806ca60da35ef9f77259e (patch)
tree65b0dde0506dff1683866e2a5c651fc4aa9cc06b
parent81573cd2c7d7d7a5f7237c4283ba97a55300aa4d (diff)
Add prod env
-rw-r--r--.gitignore1
-rw-r--r--backend/knexfile.js16
-rw-r--r--backend/migrations/20200201154548_password-salt.js (renamed from backend/migrations/20200201145548_password-salt.js)0
-rw-r--r--docker-compose.prod.yml40
-rw-r--r--frontend/Dockerfile.prod14
-rw-r--r--frontend/default.conf45
-rw-r--r--frontend/public/index.html3
7 files changed, 118 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 3665dba..a80688f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
.pnp.js
db.json
node_modules/
+build/
diff --git a/backend/knexfile.js b/backend/knexfile.js
index 73d0a10..4984c40 100644
--- a/backend/knexfile.js
+++ b/backend/knexfile.js
@@ -17,4 +17,20 @@ module.exports = {
tableName: 'knex_migrations',
},
},
+ production: {
+ client: 'postgresql',
+ connection: {
+ host: process.env.DATABASE_HOST,
+ database: process.env.DATABASE_DB,
+ user: process.env.DATABASE_USER,
+ password: process.env.DATABASE_PASSWORD,
+ },
+ pool: {
+ min: 2,
+ max: 10,
+ },
+ migrations: {
+ tableName: 'knex_migrations',
+ },
+ },
};
diff --git a/backend/migrations/20200201145548_password-salt.js b/backend/migrations/20200201154548_password-salt.js
index 217b02b..217b02b 100644
--- a/backend/migrations/20200201145548_password-salt.js
+++ b/backend/migrations/20200201154548_password-salt.js
diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml
new file mode 100644
index 0000000..ae61e1d
--- /dev/null
+++ b/docker-compose.prod.yml
@@ -0,0 +1,40 @@
+version: "3.7"
+
+services:
+ db_prod:
+ image: postgres:12-alpine
+ tty: true
+ environment:
+ POSTGRES_PASSWORD: postgres
+ ports:
+ - 5432:5432
+ volumes:
+ - dbdata_prod:/var/lib/postgresql/data
+
+ backend_prod:
+ build: backend
+ command: npm start
+ tty: true
+ environment:
+ DATABASE_HOST: db_prod
+ DATABASE_DB: postgres
+ DATABASE_USER: postgres
+ DATABASE_PASSWORD: postgres
+ NODE_ENV: production
+ ports:
+ - 4000:4000
+ depends_on:
+ - db_prod
+
+ frontend_prod:
+ build:
+ context: frontend
+ dockerfile: Dockerfile.prod
+ tty: true
+ environment:
+ REACT_APP_API_BASE_URL: http://localhost:4000
+ ports:
+ - 3000:80
+
+volumes:
+ dbdata_prod:
diff --git a/frontend/Dockerfile.prod b/frontend/Dockerfile.prod
new file mode 100644
index 0000000..7c4d6d1
--- /dev/null
+++ b/frontend/Dockerfile.prod
@@ -0,0 +1,14 @@
+FROM node:12-alpine AS builder
+
+WORKDIR /app
+COPY package-lock.json package.json ./
+RUN npm ci
+COPY . ./
+ENV NODE_ENV=production
+RUN npm run build
+
+FROM nginx:alpine AS server
+
+WORKDIR /usr/share/nginx/html
+COPY default.conf /etc/nginx/conf.d/default.conf
+COPY --from=builder /app/build ./
diff --git a/frontend/default.conf b/frontend/default.conf
new file mode 100644
index 0000000..3856e3f
--- /dev/null
+++ b/frontend/default.conf
@@ -0,0 +1,45 @@
+server {
+ listen 80;
+ server_name localhost;
+
+ #charset koi8-r;
+ #access_log /var/log/nginx/host.access.log main;
+
+ location / {
+ root /usr/share/nginx/html;
+ #index index.html index.htm;
+ try_files $uri $uri/ /index.html;
+ }
+
+ #error_page 404 /404.html;
+
+ # redirect server error pages to the static page /50x.html
+ #
+ error_page 500 502 503 504 /50x.html;
+ location = /50x.html {
+ root /usr/share/nginx/html;
+ }
+
+ # proxy the PHP scripts to Apache listening on 127.0.0.1:80
+ #
+ #location ~ \.php$ {
+ # proxy_pass http://127.0.0.1;
+ #}
+
+ # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
+ #
+ #location ~ \.php$ {
+ # root html;
+ # fastcgi_pass 127.0.0.1:9000;
+ # fastcgi_index index.php;
+ # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
+ # include fastcgi_params;
+ #}
+
+ # deny access to .htaccess files, if Apache's document root
+ # concurs with nginx's one
+ #
+ #location ~ /\.ht {
+ # deny all;
+ #}
+} \ No newline at end of file
diff --git a/frontend/public/index.html b/frontend/public/index.html
index cc94d49..b41fd33 100644
--- a/frontend/public/index.html
+++ b/frontend/public/index.html
@@ -7,7 +7,8 @@
<meta name="theme-color" content="#000000" />
<meta http-equiv="Content-Security-Policy" content="default-src 'self' localhost:4000;
style-src 'self' 'unsafe-inline';
- img-src * data:;" />
+ img-src * data:;
+ script-src 'self' 'unsafe-inline';" />
<meta
name="description"
content="Web site created using create-react-app"