Welledge Academy

Welledge Academy Deployment Report

Overview

We are building a secure, self-contained learning platform for engineers.
The system will run entirely on a mini PC using Ubuntu Server and Docker containers.
This allows us to keep all data local, secure, and independent of expensive cloud services.


Components

  1. MongoDB (NoSQL Database)

    • Stores engineers' personal data:
      • Taken courses
      • Credentials
      • Education details
      • General information
    • Chosen because it handles flexible and complex data easily (good for fast-changing training data).
  2. S3-Compatible Storage (MinIO)

    • Used for storing course files (videos, documents).
    • MinIO provides the same API as AWS S3 but runs locally, so no cloud cost.
    • Keeps course data private and under our control.
  3. Authentication System

    • Local user authentication instead of depending on third-party services like Firebase.
    • This allows the system to run fully offline if needed.
  4. API Container

    • A Go-based backend API that connects to MongoDB and MinIO.
    • Handles business logic and data processing for the website.
  5. Website Container

    • A front-end that connects to the API.
    • Runs locally on the mini PC and is the only exposed service on the local network.
  6. Reverse Proxy (Optional)

    • Allows the website to be accessed securely from the internet if needed.
    • Uses HTTPS and controlled access.

Security Measures

  • Data Isolation:

    • MongoDB, MinIO, and the API are not accessible from the local network.
    • Only the website is accessible, and it communicates internally with the API.
  • Disk Encryption:

    • The mini PC’s hard drive will be fully encrypted.
    • Even if the device is stolen, the data is safe.
  • Password-Protected Server:

    • Access to the Ubuntu Server itself requires secure login credentials.
  • Local Hosting:

    • All client data stays inside their own infrastructure.
    • Reduces exposure to internet risks.

Why This Approach?

  1. Data Safety: Sensitive training and personal data never leave the client site.
  2. Cost Savings:
    • No AWS S3 storage fees.
    • No cloud database hosting fees.
  3. Offline Ready:
    • The system works even if the client has no internet.
  4. Simple Maintenance:
    • Docker Compose makes deployment easy.
    • Updates are as simple as loading a new container image.

Summary

This approach gives our clients:

  • A secure, cost-effective training system.
  • Full control over their data.
  • The ability to run entirely offline while still being able to enable internet access when required.
  • A modular design where each component (database, storage, API, website) is isolated and easy to maintain.

Cost Savings Estimation

What Costs We Are Avoiding (per client)

  1. Cloud Database (MongoDB)

    • Typical managed NoSQL database (like MongoDB Atlas or AWS DynamoDB)
      costs around $50–$100/month for moderate usage.
    • With ~1,000 users and growing data (training history, credentials),
      expect at least $75/month average over time.
  2. Cloud Storage (S3)

    • Courses (videos, PDFs, docs) require significant storage.
    • S3 cost estimate:
      • Storage: $0.023/GB/month.
      • Data transfer (downloads): ~$0.09/GB.
    • For training material (estimated ~500GB) and user downloads:
      • ~$50/month.
  3. Cloud Compute (API & Website Hosting)

    • A small cloud instance (AWS EC2 or equivalent) for API and web hosting:
      • Around $25–$30/month.
  4. Authentication (Firebase or similar)

    • Free tier limited, but for 1,000 active users:
      • Around $25/month for production features.

Cloud Cost Summary (per client)

  • MongoDB: $75/month
  • S3 Storage: $50/month
  • Compute Hosting: $25/month
  • Authentication: $25/month
    Total Cloud = ~$175/month (~$2,100/year)

Local System Cost (per client)

  • Mini PC (one-time): $400 (good hardware, SSD, enough RAM)
  • No recurring monthly costs except power (~$5/month).
  • Docker and Ubuntu Server are free.

5-Year Cost Comparison (per client)

  • Cloud: 5 years × $2,100/year = $10,500
  • Local System: ~$400 hardware + $300 power = $700

Estimated Savings Over 5 Years (per client)

$10,500 - $700 = $9,800 saved per client


Scaling Savings

  • 10 clients: 10 × $9,800 = $98,000 saved over 5 years
  • 100 clients: 100 × $9,800 = $980,000 saved over 5 years

Notes

  • If data usage grows significantly, cloud costs increase, making local hosting even cheaper.
  • Local system maintenance cost is minimal since we use Docker for simple updates.
  • This model scales well because each client runs their own self-contained system.