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
-
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).
- Stores engineers' personal data:
-
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.
-
Authentication System
- Local user authentication instead of depending on third-party services like Firebase.
- This allows the system to run fully offline if needed.
-
API Container
- A Go-based backend API that connects to MongoDB and MinIO.
- Handles business logic and data processing for the website.
-
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.
-
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?
- Data Safety: Sensitive training and personal data never leave the client site.
- Cost Savings:
- No AWS S3 storage fees.
- No cloud database hosting fees.
- Offline Ready:
- The system works even if the client has no internet.
- 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)
-
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.
- Typical managed NoSQL database (like MongoDB Atlas or AWS DynamoDB)
-
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.
-
Cloud Compute (API & Website Hosting)
- A small cloud instance (AWS EC2 or equivalent) for API and web hosting:
- Around $25–$30/month.
- A small cloud instance (AWS EC2 or equivalent) for API and web hosting:
-
Authentication (Firebase or similar)
- Free tier limited, but for 1,000 active users:
- Around $25/month for production features.
- Free tier limited, but for 1,000 active users:
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.