Toggle navigation
Toggle navigation
This project
Loading...
Sign in
정민우
/
vps_service
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
정민우
2021-06-10 22:44:56 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
ceb54dc34b7014e1ca3499ab5a5327cbeada457e
ceb54dc3
1 parent
d1048004
[New] Readme 추가
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
110 additions
and
0 deletions
backend/controllers/dockerController.js
readme.md
backend/controllers/dockerController.js
View file @
ceb54dc
...
...
@@ -95,8 +95,31 @@ exports.removeDockerfile = async (req, res) => {
return
sendError
(
res
,
500
,
error
.
message
)
}
}
exports
.
listImage
=
async
(
req
,
res
)
=>
{
const
id
=
req
.
decoded
.
id
if
(
!
id
)
{
return
sendError
(
res
,
401
,
'InvalidToken'
)
}
try
{
let
dockerfiles
=
await
Dockerfile
.
findAndCountAll
({
where
:
{
userId
:
id
},
order
:
[
[
'createdAt'
,
'desc'
]
]
})
const
result
=
{
count
:
dockerfiles
.
count
,
data
:
dockerfiles
.
rows
}
return
sendResponse
(
res
,
result
,
200
)
}
catch
(
error
)
{
logging
(
'image'
,
'error'
,
{
code
:
500
,
message
:
error
.
message
},
req
)
return
sendError
(
res
,
500
,
error
.
message
)
}
}
exports
.
buildImage
=
async
(
req
,
res
)
=>
{
...
...
@@ -104,6 +127,7 @@ exports.buildImage = async (req, res) => {
exports
.
removeImage
=
async
(
req
,
res
)
=>
{
}
exports
.
listContainer
=
async
(
req
,
res
)
=>
{
}
...
...
readme.md
0 → 100644
View file @
ceb54dc
# 주제
가상 서버 호스팅 서비스
## 프로젝트 개요
저희 프로젝트를 간략히 설명하자면 VPS를 제공하는 서비스입니다.
VPS는 Virtual Private Server의 약자로 가상 사설 서버를 의미합니다.
가상화 기술을 사용하여 하나의 물리적 서버를 여러 개의 가상 서버로 나누어주는 것을 가상 사설 서버라고 합니다.
흔히 가상 사설 서버를 클라우드 서버라고 부르며 아마존, Microsoft가 VPS 산업에 뛰어들면서 시장의 규모와 기술 연구 수준이 폭발적으로 증가하고 있습니다.
저희는 사용자가 개인 서버를 손쉽게 만들고 관리할 수 있도록 도와주는 서비스를 개발했습니다.
## 프로젝트 목표
-
Dockerfile만 업로드 하면 손쉽게 가상 서버를 구축할 수 있도록 함
-
직접 클라우드를 제공하는 서비스를 만들어 클라우드 컴퓨팅에 대해 학습
-
수업 시간에 배운 Docker 활용
## 사용된 기술
-
React
-
Node.js express
-
Nginx
-
MySQL
-
Docker SDK
## 구현 기능
-
회원가입, 사용자 로그인/로그아웃, 사용자 인증
-
Dockerfile 업로드, 관리, 삭제
-
Docker Image Build, 관리, 삭제
-
Docker Container Create, Start/Stop, 관리, 삭제
## 설치 방법
1.
Clone the repository.
```bash
git clone http://khuhub.khu.ac.kr/2020105655/vps_service
```
2.
Install npm packages frontend, backend.
```bash
cd frontend
npm install
cd ..
cd backend
npm install
cd ..
```
3.
Build frontend react app.
```bash
cd frontend
npm run build
```
4.
Create new file named
`.env`
at ./backend and enter info as below.
-
.env.example 파일 참조
```
PORT=3000
MYSQL_USERNAME=root
MYSQL_PASSWORD=
MYSQL_DATABASE=
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
CORS_ALLOWED_URL={YOUR URL}
INITIAL_ADMIN_ID=
INITIAL_ADMIN_PW=
JWT_KEY=
```
5.
Edit nginx config file.
```
server {
server_name {YOUR URL};
root /{YOUR DIR}/vps_service/frontend/build;
location /api/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
}
location / {
try_files $uri $uri/ /index.html;
}
```
6.
Run the scripts.
```bash
cd backend
npm start
```
## Demo
https://vps.pinkjelly.cat
Please
register
or
login
to post a comment