This guide documents the full development and deployment flow of the MarketPeak E-Commerce platform as a capstone project using Git for version control, Apache as the web server, AWS EC2 for cloud deployment as the production environment, a Linux environment for development, and backend enhancement using Django + Gunicorn.
MarketPeak simulates a real-world e-commerce deployment process. The focus is on DevOps practices like version control, server configuration, and CI/CD. Enhancements include a Django backend with Gunicorn.
- HTML/CSS, JS (Tooplate Template)
- Git & GitHub
- Apache (apache2)
- Amazon EC2 (Ubuntu Server)
- SSH, SCP
- Gunicorn & Django (for enhancement)
- Linux (Command Line Operations)
MarketPeak\_Ecommerce/
│
├── backend/ # Django backend (enhancement)
│ ├── marketpeak/ # Django project folder
│ └── templates/
│
├── frontend/ # HTML/CSS Static Template
│ └── index.html, etc.
├── .git/ # Git version control
├── README.md # Project documentation
└── .gitignore
mkdir MarketPeak_Ecommerce
cd MarketPeak_Ecommerce
git init- Download a template from Tooplate or similar.
- Extract files into
MarketPeak_Ecommerce. - Customise: Customised the website with new logo, brand color, text, etc.
git add .
git config --global user.name "daretechie"
git config --global user.email "daretechie@users.noreply.github.com"
git commit -m "Initial commit with basic e-commerce site structure"git remote add origin https://github.com/daretechie/MarketPeak_Ecommerce.git
git push -u origin main- Launch a new EC2 instance (Ubuntu Server).
- Allow ports: 22 (SSH), 80 (HTTP)
- Connected via SSH
ssh -i "MyKey.pem" ubuntu@44.203.38.56Option A – SSH Method:
ssh-keygen
cat ~/.ssh/id_rsa.pub- Add the key to GitHub SSH keys.
git clone git@github.com:daretechie/MarketPeak_Ecommerce.gitOption B – HTTPS Method:
git clone https://github.com/daretechie/MarketPeak_Ecommerce.gitsudo apt update -y
sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2sudo rm -rf /var/www/html/*
sudo cp -r ~/MarketPeak_Ecommerce/* /var/www/html/
sudo systemctl reload apache2git branch development
git checkout development- Make changes (e.g., update banner, fix links).
git add .
git commit -m "Update homepage layout"
git push origin development- Create a PR on GitHub.
- Review → Merge into
main.
cd MarketPeak_Ecommerce
git pull origin main
sudo systemctl reload apache2- Reload the browser → Confirm updates are live.
-
Full-featured online marketplace with:
- User registration/login
- Product listing & detail pages
- Cart & checkout
- Admin dashboard
-
Django backend with SQLite in dev
To add dynamic behavior:
- Added a Django backend (
marketpeakproject) - Configured Gunicorn and Nginx for WSGI serving
git clone git@github.com:daretechie/MarketPeak_Ecommerce.git
cd MarketPeak_Ecommercepython3 -m venv venv
source venv/bin/activatepip install -r backend/requirements.txtcd backend
python manage.py migrate
python manage.py runserverServe with Gunicorn:
gunicorn marketpeak.wsgi:application --bind 127.0.0.1:8001- SSH into your EC2 instance
ssh -i MyKey.pem ubuntu@44.203.38.56- Pull the latest changes
cd ~/MarketPeak_Ecommerce
git pull origin main-
(Optional) Collect static files
python manage.py collectstatic
-
Reload Apache
sudo systemctl reload apache2
✅ Your site should now reflect the new changes!
| Issue | Cause | Solution |
|---|---|---|
🔒 Permission denied on SSH key |
Incorrect permissions on private key | Run: chmod 400 MyKey.pem |
| 🔐 Git authentication failed | Wrong credentials or SSH misconfig | Re-add your SSH key or switch to HTTPS clone URL |
| 🌐 Apache default page still shows | Project files not copied correctly | Run: sudo cp -r ~/MarketPeak_Ecommerce/* /var/www/html/ |
| 🚫 Static files not loading | Static files not collected | Run: python manage.py collectstatic |
❌ CSRF verification failed when logging in |
Missing trusted IP/domain in settings | Add IP to CSRF_TRUSTED_ORIGINS in settings.py |
| 🔁 Gunicorn port already in use | Port conflict or zombie process | Run: lsof -i:8001, then kill -9 <PID> |
🐍 Gunicorn error: No module named 'marketpeak' |
Incorrect app name in command | Use: gunicorn marketpeak.wsgi:application |
| 🔄 Nginx/Gunicorn not restarting | Inactive or stale Gunicorn process | Run: pkill gunicorn then re-run the gunicorn command |
- Clone the repo
- Install Apache (or use Django dev server)
- Serve
frontend/or runpython manage.py runserverinbackend/
You can view the deployed MarketPeak E-Commerce site here: http://44.203.38.56/
- Repository: GitHub - MarketPeak_Ecommerce
- Submission Platform: Darey.io
- Author: daretechie
Deployed a full-stack e-commerce platform on AWS EC2 using Git for version control and Apache for production hosting. Implemented essential DevOps workflows such as SSH configuration, environment setup, and CI/CD practices(manual), laying the groundwork for modern infrastructure automation and scalability.








