V

vps_service

주제

가상 서버 호스팅 서비스

프로젝트 개요

저희 프로젝트를 간략히 설명하자면 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.
   git clone http://khuhub.khu.ac.kr/2020105655/vps_service
  1. Install npm packages frontend, backend.
   cd frontend
   npm install
   cd ..
   cd backend
   npm install
   cd ..
  1. Build frontend react app.
  cd frontend
  npm run build
  1. Create new file named .env at ./backend and enter info as below.
  2. .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=
  1. 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;
  }
  1. Run the scripts.
   cd backend
   npm start

Demo

https://vps.pinkjelly.cat