Skip to content

A computational system using Docker, buildpack to simplify the processing of all kind of tasks.

License

Notifications You must be signed in to change notification settings

comevback/UPC-node

Repository files navigation

UPC logo

UPC-node

(User-PC Computing System)

日本語版 | 中文版

A full-stack computational system using Docker, buildpack to simplify the processing of all kind of tasks.


Quick Start by Docker

curl -sSL https://raw.githubusercontent.com/comevback/UPC-node/main/start-docker.sh -o start-docker.sh &&
chmod +x start-docker.sh &&
./start-docker.sh

UPC logo

--

Demo

docker run command

  1. Start the React(frontend) API(backend) servers and Register-Server.
  2. Compress the directory of the task in to .zip file,
  3. Upload the compressed file on React website,
  4. Generate a image for this kind of task,
  5. Upload files and process,
  6. Download the results.

Features

This system allows users to easily operate Docker through a web browser. Here are its main features:

  • File Management: Upload and delete files.
  • Docker Image Creation: Create Docker images from uploaded files.
  • Task Processing: Perform various tasks on the backend.
  • Terminal Access: Execute commands directly from the web browser.
  • Server Management: Register and manage local or cloud servers.
  • Docker Deployment: Deploy the entire system with a single command.

In short, this system allows users to operate Docker from the web interface to create, pull, and delete Docker images. Additionally, through a panel, it helps users utilize Docker containers more quickly and easily.


Concepts


Architecture of the UPC system

Architecture of the UPC system The UPC system consisted three main components:

  1. UPC-Worker (backend server)
  2. User Interface (React frontend)
  3. Register Server (A cloud or local central server to manage the system)

Workflow of the UPC system

Workflow of the UPC system


Principle of accessing from outside by Frp

Frp Frp is a fast reverse proxy that allows you to expose a server(service) from a local network.

Frp forwards requests to internal services via a server with a Public IP.

Frp


Docker image auto generation Process

Docker image auto generation Process

The order to generate a Docker image in UPC system: Docker image gene demo


Usage


Deploy and run using Docker (recommended)

UPC logo

Script (copy&paste to your terminal to run):

  • Whole UPC system:
curl -sSL https://raw.githubusercontent.com/comevback/UPC-node/main/start-docker.sh -o start-docker.sh &&
chmod +x start-docker.sh &&
./start-docker.sh
  • Go-Server :
curl -sSL https://raw.githubusercontent.com/comevback/UPC-node/main/start-go-docker.sh -o start-go-docker.sh &&
chmod +x start-go-docker.sh &&
./start-go-docker.sh
  • Node-Server (deprecated):
curl -sSL https://raw.githubusercontent.com/comevback/UPC-node/main/start-api-docker.sh -o start-api-docker.sh &&
chmod +x start-api-docker.sh &&
./start-api-docker.sh
  • Frontend-service:
curl -sSL https://raw.githubusercontent.com/comevback/UPC-node/main/start-react-docker.sh -o start-react-docker.sh &&
chmod +x start-react-docker.sh &&
./start-react-docker.sh
  • Register-service:
curl -sSL https://raw.githubusercontent.com/comevback/UPC-node/main/start-register-docker.sh -o start-register-docker.sh &&
chmod +x start-register-docker.sh &&
./start-register-docker.sh

Deploy Project with Node.js

These instructions will get you a copy of the project up and running on your local machine for development.

Prerequisites

Installing

  1. Clone the repository:
git clone https://github.com/comevback/UPC-node.git
cd UPC-node
  1. Install dependencies for the all:
  • Linux/MacOS:
npm run install-all

or

chmod +x install.sh
./install.sh
  • Windows: (If you are using Windows, please use git bash or other kinds of bash)
chmod +x install.sh
./install.sh
  1. Run the setup scripts to change the ip address of backend server to your host ip address
chmod +x setArgs.sh
./setArgs.sh

Start by Node.js

If you want to use Database to store the registered service, create a .env file on register-server folder, and add a line as:

MongoURL={your-mongoDB-RUL}

otherwise the data will be loacl.

Run Frontend-Server Backend-Server and Register-Server at the same time:

npm start

Or run individual part:

  • Register-Server:
cd register-server
npm start
  • Backend-Server:
cd backend/UPC-nodejs
npm start
  • Frontend-Server:
cd frontend/upc-react
npm start

Contributing

Xu Xiang

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A computational system using Docker, buildpack to simplify the processing of all kind of tasks.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published