diff --git a/devops/nginx/Dockerfile b/devops/nginx/Dockerfile
new file mode 100644
index 0000000..2a3adb9
--- /dev/null
+++ b/devops/nginx/Dockerfile
@@ -0,0 +1,3 @@
+FROM nginx:1.14.2
+
+COPY nginx.conf /etc/nginx/nginx.conf
\ No newline at end of file
diff --git a/devops/nginx/entrypoint.sh b/devops/nginx/entrypoint.sh
new file mode 100644
index 0000000..c3e2899
--- /dev/null
+++ b/devops/nginx/entrypoint.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+cat /nginx.conf > /etc/nginx/nginx.conf
+
+exec "$@"
\ No newline at end of file
diff --git a/devops/nginx/nginx.conf b/devops/nginx/nginx.conf
new file mode 100644
index 0000000..6c04403
--- /dev/null
+++ b/devops/nginx/nginx.conf
@@ -0,0 +1,49 @@
+worker_processes 1;
+
+events { worker_connections 1024; }
+
+http {
+ upstream client {
+ server frontend:3000;
+ }
+
+ server {
+ listen 80;
+ error_log /var/log/nginx/error.log;
+ access_log /var/log/nginx/access.log;
+ client_max_body_size 10M;
+
+ location / {
+ proxy_pass http://client;
+ proxy_set_header Host $host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header X-Forwarded-Ssl on; # Optional
+ proxy_set_header X-Forwarded-Port $server_port;
+ proxy_set_header X-Forwarded-Host $host;
+ # proxy_set_header X-Forwarded-Host $server_name;
+ }
+
+ location /api {
+ proxy_pass http://server:8000;
+ rewrite ^/api(.*)$ $1 break;
+ }
+
+ location /cable {
+ proxy_pass http://server:8000;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ # rewrite ^/cable(.*)$ $1 break;
+ }
+
+ location /socksjs-node {
+ proxy_pass http://server:8000;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ # rewrite ^/cable(.*)$ $1 break;
+ }
+ }
+}
\ No newline at end of file
diff --git a/devops/var/www/index.html b/devops/var/www/index.html
new file mode 100644
index 0000000..ee86e94
--- /dev/null
+++ b/devops/var/www/index.html
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+ Document
+
+
+
diff --git a/docker-compose.yml b/docker-compose.yml
index defb55c..919f0f1 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,6 +1,18 @@
version: "3.8"
services:
+ nginx:
+ build:
+ context: ./devops/nginx
+ depends_on:
+ - frontend
+ - server
+ volumes:
+ - ./devops/nginx/nginx.conf:/etc/nginx/nginx.conf
+ ports:
+ - 80:80
+ - 443:443
+
frontend:
build:
context: ./frontend
@@ -20,4 +32,4 @@ services:
- ./server:/usr/src/server
ports:
- 8000:8000
- command: ["python", "manage.py", "runserver"]
+ command: ["python", "manage.py", "runserver", "0.0.0.0:8000"]
diff --git a/frontend/src/api/index.ts b/frontend/src/api/index.ts
index 7ab3cc6..16565f1 100644
--- a/frontend/src/api/index.ts
+++ b/frontend/src/api/index.ts
@@ -7,10 +7,10 @@ import { JWT, getJWT, setHeaders, setJWT, wipeJWT } from '../utils/jwt'
const dev = process.env.NODE_ENV === 'development'
export const logIn = async (username: string, password: string) => {
- if (dev) return mockUser
+ // if (dev) return mockUser
try {
- const { data: jwt } = await axios.post(`/api/login`, {
+ const { data: jwt } = await axios.post(`/api/dj-rest-auth/login/`, {
username,
password,
})
diff --git a/frontend/src/app/CoreLayout.tsx b/frontend/src/app/CoreLayout.tsx
index 0a08ae5..4d6724a 100644
--- a/frontend/src/app/CoreLayout.tsx
+++ b/frontend/src/app/CoreLayout.tsx
@@ -1,4 +1,3 @@
-import React from 'react'
import { Layout } from 'antd'
import { useUserContext } from '../contexts/UserContext'
import { Login } from './pages/Login'
@@ -14,6 +13,7 @@ export const CoreLayout = () => {
const routes: NavRoute[] = [
{ exact: true, path: '/', label: 'Dashboard', component: Dashboard },
{ path: '/profile', label: 'Profile', component: Profile },
+ { path: '/login', label: 'Login', component: Login },
{ path: '/new/user', label: 'New User', component: NewUser },
]
diff --git a/frontend/src/app/forms/NewUser.tsx b/frontend/src/app/forms/NewUser.tsx
index eec15ab..f837b84 100644
--- a/frontend/src/app/forms/NewUser.tsx
+++ b/frontend/src/app/forms/NewUser.tsx
@@ -2,8 +2,6 @@ import { Button, Form, Input, Layout, message } from 'antd'
import axios from 'axios'
import { User } from '../../types'
-axios.defaults.baseURL = 'http://localhost:8080/'
-
type NewUserForm = Omit & {
password1: string
password2: string
@@ -19,7 +17,7 @@ export const NewUser = () => {
return
}
- axios.post(`/dj-rest-auth/registration`, user)
+ axios.post(`/dj-rest-auth/registration/`, user)
}
console.log('ASDFUASDJF')
@@ -28,14 +26,14 @@ export const NewUser = () => {
+
-
+
-
+
diff --git a/frontend/src/app/pages/Login.tsx b/frontend/src/app/pages/Login.tsx
index 74ab501..8aedaad 100644
--- a/frontend/src/app/pages/Login.tsx
+++ b/frontend/src/app/pages/Login.tsx
@@ -1,31 +1,32 @@
-import { FormEvent, useState } from 'react'
+import { Button, Form, Input } from 'antd'
+import { useForm } from 'antd/lib/form/Form'
import { useUserContext } from '../../contexts/UserContext'
+type Credentials = {
+ username: string
+ password: string
+}
+
export const Login = () => {
const { handleLogin } = useUserContext()
- const [username, setUsername] = useState('')
- const [password, setPassword] = useState('')
-
- const handleSubmit = (e: FormEvent) => {
- e.preventDefault()
+ const [form] = useForm()
+ const handleSubmit = ({ username, password }: Credentials) => {
handleLogin(username, password)
}
return (
-
+
+
+
+
+
+
+
+
)
}
diff --git a/frontend/src/contexts/UserContext.tsx b/frontend/src/contexts/UserContext.tsx
index 78ce753..19eaae9 100644
--- a/frontend/src/contexts/UserContext.tsx
+++ b/frontend/src/contexts/UserContext.tsx
@@ -12,7 +12,6 @@ import { useHistory } from 'react-router'
import { User } from '../types'
import { getLoggedInUser, logIn, logOut } from '../api'
-import axios from 'axios'
type Props = {
children: React.ReactNode
diff --git a/server/server/settings.py b/server/server/settings.py
index 43c4067..cbfd9a3 100644
--- a/server/server/settings.py
+++ b/server/server/settings.py
@@ -25,7 +25,7 @@ SECRET_KEY = 'ayr0nbsni^%h!xbeplx_v#b^cuj^adjg2*z7t@+ht7c=7*1u$e'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
-ALLOWED_HOSTS = []
+ALLOWED_HOSTS = ['server']
# Application definition