diff options
| author | Jan Tuomi <jan.tuomi@eficode.com> | 2020-02-05 11:55:43 +0200 |
|---|---|---|
| committer | Jan Tuomi <jan.tuomi@eficode.com> | 2020-02-05 11:55:43 +0200 |
| commit | 48a60c896d86de9bf76806ca60da35ef9f77259e (patch) | |
| tree | 65b0dde0506dff1683866e2a5c651fc4aa9cc06b | |
| parent | 81573cd2c7d7d7a5f7237c4283ba97a55300aa4d (diff) | |
Add prod env
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | backend/knexfile.js | 16 | ||||
| -rw-r--r-- | backend/migrations/20200201154548_password-salt.js (renamed from backend/migrations/20200201145548_password-salt.js) | 0 | ||||
| -rw-r--r-- | docker-compose.prod.yml | 40 | ||||
| -rw-r--r-- | frontend/Dockerfile.prod | 14 | ||||
| -rw-r--r-- | frontend/default.conf | 45 | ||||
| -rw-r--r-- | frontend/public/index.html | 3 |
7 files changed, 118 insertions, 1 deletions
@@ -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" |
