Skip to content

This repository contains the design, code, and documentation for the My Private Cloud Reference Design, which is a project that implements a FULLY functioning Private Cloud using a cluster of Raspberry Pi 4's running on RaspbianOS, Docker, and Kubernetes that is all managed by a Port Application implmeneted using Spring Boot and Java 15.

markreha/myprivatecloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

My Private Cloud Reference Design

How to build a Private Cloud for about $500 that will fit in a Shoe Box

Introduction

Can you design and build a fully functioning Private Cloud Platform using a cluster of Raspberry PI’s using current Cloud Technologies?
I set out to answer this question.

This repository contains the design, code, and documentation for the My Private Cloud Reference Design, which is a project that implements a FULLY functioning Private Cloud using a cluster of Raspberry Pi 4's running on Raspbian OS, Docker, and Kubernetes that is all managed by a Portal Application implemented using Spring Boot and Java 15. By the way, there is nothing in this reference design that is specific to a Raspberry Pi 4. The Raspberry Pi 4 could easily be substitued for an Ubuntu Server running in a virtual machine. The research paper I wrote on this project can be found here.

Feel free to use this Reference Design to get started building your own Private Cloud!

A video demonstration can be seen here.
You can see how to build your own Private Cloud here.
You can find the User Guide here.

Features

  • Fully functioning Private Cloud:
    • Capable of running any number of Web Servers, common Web Stacks, Databases, and Tools. Examples include:
      • Web Servers: Nginx and Apache (can be used to host too)
      • Web Stacks: PHP (7.1 and 7.4), PHP 7.4 Laravel, Java Tomcat (8.5 and 9.0), ASP.NET Core 5.0
      • Databases: MySQL, PostgreSQL, MongoDB
      • Tools: Visual Studio Code, NodeJS Development Server
    • Deploy Web Sites, Java Spring and Spring Boot applications, PHP and PHP Laravel applications, Express, React, Angular applications
  • Cloud Management:
    • Web based Portal Application
    • Desktop based Lens Application (with Prometheus)
    • RealVNC and SSH for accessing the Master Node
  • Low cost:
    • A single Master Node and three Worker Node Cluster with Storage will cost about $500
  • Cloud Compute Resources are easily extendable:
    • You can add a new Worker Node in less then an hour and that will only cost about $75
  • Portal Application is easily extendable:
    • New Stacks can be easily added to the Catalog
    • You can add a new Stack with simple Portal database update and this can be done in just minutes
    • You can leverage your own custom Docker Images that you pushed to your Docker Hub repository
    • Communication with Kubernetes via a custom Java Cluster API that leverages the Fabric8 library
  • Portal Application is easy to use:
    • Go to the Register menu and register for your own account
    • Go to the Login menu and log into the application
    • Go to the Catalog menu:
      • Pick your Stack or Database
      • Click the Customize button
      • Give your Application a Name
      • Select between a Tiny, Medium, and Large Container Size (amount of CPU and RAM)
      • Click the Provision button
    • Go to the My Apps menu:
      • Click the Deploy button to deploy a compressed version of your application
      • Click the Go button to access your application

Portal Screenshots

View the JavaDoc.

Login
Admin
Catalog - Web Servers
Catalog - Web App Servers
Catalog - Databases
Catalog - Tools
My Deployed Apps

Hardware

Software

  • Raspberry Pi:
    • Raspbian OS (32-bit), Docker, Kubernetes
  • Portal Application:
    • Spring Boot, Thymeleaf, Bootstrap, Java 15, and MySQL 8.0 database
  • Other:
    • Lens (with Prometheus)
    • SQL Client (MySQL Workbench, DBeaver, and MongoDB Compass)

System Design

Logical Architecture
Physical Architecture
Building the Cluster
Building the Cluster
Final Cluster
Portal Database

Cloud Management and Monitoring

Lens - View Entire Cluster
Lens - View All Nodes
Lens - View All Pods
Manage Portal Users

Back to Top

Copyright @2021 On The Edge Software Consulting LLC

About

This repository contains the design, code, and documentation for the My Private Cloud Reference Design, which is a project that implements a FULLY functioning Private Cloud using a cluster of Raspberry Pi 4's running on RaspbianOS, Docker, and Kubernetes that is all managed by a Port Application implmeneted using Spring Boot and Java 15.

Resources

Stars

Watchers

Forks

Packages

No packages published