Merge branch 'backend-docker' into 'master'
[New] Readme 추가 See merge request !7
Showing
2 changed files
with
110 additions
and
0 deletions
... | @@ -95,8 +95,31 @@ exports.removeDockerfile = async (req, res) => { | ... | @@ -95,8 +95,31 @@ exports.removeDockerfile = async (req, res) => { |
95 | return sendError(res, 500, error.message) | 95 | return sendError(res, 500, error.message) |
96 | } | 96 | } |
97 | } | 97 | } |
98 | + | ||
98 | exports.listImage = async (req, res) => { | 99 | exports.listImage = async (req, res) => { |
100 | + const id = req.decoded.id | ||
101 | + if (!id) { | ||
102 | + return sendError(res, 401, 'InvalidToken') | ||
103 | + } | ||
104 | + try{ | ||
105 | + let dockerfiles = await Dockerfile.findAndCountAll({ | ||
106 | + where: { | ||
107 | + userId: id | ||
108 | + }, | ||
109 | + order: [ | ||
110 | + ['createdAt', 'desc'] | ||
111 | + ] | ||
112 | + }) | ||
99 | 113 | ||
114 | + const result = { | ||
115 | + count: dockerfiles.count, | ||
116 | + data: dockerfiles.rows | ||
117 | + } | ||
118 | + return sendResponse(res, result, 200) | ||
119 | + } catch(error) { | ||
120 | + logging('image', 'error', { code: 500, message: error.message }, req) | ||
121 | + return sendError(res, 500, error.message) | ||
122 | + } | ||
100 | } | 123 | } |
101 | exports.buildImage = async (req, res) => { | 124 | exports.buildImage = async (req, res) => { |
102 | 125 | ||
... | @@ -104,6 +127,7 @@ exports.buildImage = async (req, res) => { | ... | @@ -104,6 +127,7 @@ exports.buildImage = async (req, res) => { |
104 | exports.removeImage = async (req, res) => { | 127 | exports.removeImage = async (req, res) => { |
105 | 128 | ||
106 | } | 129 | } |
130 | + | ||
107 | exports.listContainer = async (req, res) => { | 131 | exports.listContainer = async (req, res) => { |
108 | 132 | ||
109 | } | 133 | } | ... | ... |
readme.md
0 → 100644
1 | +# 주제 | ||
2 | +가상 서버 호스팅 서비스 | ||
3 | + | ||
4 | +## 프로젝트 개요 | ||
5 | +저희 프로젝트를 간략히 설명하자면 VPS를 제공하는 서비스입니다. | ||
6 | +VPS는 Virtual Private Server의 약자로 가상 사설 서버를 의미합니다. | ||
7 | +가상화 기술을 사용하여 하나의 물리적 서버를 여러 개의 가상 서버로 나누어주는 것을 가상 사설 서버라고 합니다. | ||
8 | +흔히 가상 사설 서버를 클라우드 서버라고 부르며 아마존, Microsoft가 VPS 산업에 뛰어들면서 시장의 규모와 기술 연구 수준이 폭발적으로 증가하고 있습니다. | ||
9 | +저희는 사용자가 개인 서버를 손쉽게 만들고 관리할 수 있도록 도와주는 서비스를 개발했습니다. | ||
10 | + | ||
11 | +## 프로젝트 목표 | ||
12 | +- Dockerfile만 업로드 하면 손쉽게 가상 서버를 구축할 수 있도록 함 | ||
13 | +- 직접 클라우드를 제공하는 서비스를 만들어 클라우드 컴퓨팅에 대해 학습 | ||
14 | +- 수업 시간에 배운 Docker 활용 | ||
15 | + | ||
16 | +## 사용된 기술 | ||
17 | +- React | ||
18 | +- Node.js express | ||
19 | +- Nginx | ||
20 | +- MySQL | ||
21 | +- Docker SDK | ||
22 | + | ||
23 | +## 구현 기능 | ||
24 | +- 회원가입, 사용자 로그인/로그아웃, 사용자 인증 | ||
25 | +- Dockerfile 업로드, 관리, 삭제 | ||
26 | +- Docker Image Build, 관리, 삭제 | ||
27 | +- Docker Container Create, Start/Stop, 관리, 삭제 | ||
28 | + | ||
29 | +## 설치 방법 | ||
30 | +1. Clone the repository. | ||
31 | + ```bash | ||
32 | + git clone http://khuhub.khu.ac.kr/2020105655/vps_service | ||
33 | + ``` | ||
34 | +2. Install npm packages frontend, backend. | ||
35 | + ```bash | ||
36 | + cd frontend | ||
37 | + npm install | ||
38 | + cd .. | ||
39 | + cd backend | ||
40 | + npm install | ||
41 | + cd .. | ||
42 | + ``` | ||
43 | +3. Build frontend react app. | ||
44 | + ```bash | ||
45 | + cd frontend | ||
46 | + npm run build | ||
47 | + ``` | ||
48 | +4. Create new file named `.env` at ./backend and enter info as below. | ||
49 | +- .env.example 파일 참조 | ||
50 | + ``` | ||
51 | + PORT=3000 | ||
52 | + MYSQL_USERNAME=root | ||
53 | + MYSQL_PASSWORD= | ||
54 | + MYSQL_DATABASE= | ||
55 | + MYSQL_HOST=127.0.0.1 | ||
56 | + MYSQL_PORT=3306 | ||
57 | + CORS_ALLOWED_URL={YOUR URL} | ||
58 | + INITIAL_ADMIN_ID= | ||
59 | + INITIAL_ADMIN_PW= | ||
60 | + JWT_KEY= | ||
61 | + ``` | ||
62 | +5. Edit nginx config file. | ||
63 | + ``` | ||
64 | + server { | ||
65 | + server_name {YOUR URL}; | ||
66 | + | ||
67 | + root /{YOUR DIR}/vps_service/frontend/build; | ||
68 | + | ||
69 | + location /api/ { | ||
70 | + proxy_pass http://127.0.0.1:3000/; | ||
71 | + proxy_set_header X-Real-IP $remote_addr; | ||
72 | + proxy_set_header Host $http_host; | ||
73 | + } | ||
74 | + | ||
75 | + location / { | ||
76 | + try_files $uri $uri/ /index.html; | ||
77 | + } | ||
78 | + ``` | ||
79 | +6. Run the scripts. | ||
80 | + ```bash | ||
81 | + cd backend | ||
82 | + npm start | ||
83 | + ``` | ||
84 | + | ||
85 | +## Demo | ||
86 | +https://vps.pinkjelly.cat |
-
Please register or login to post a comment