This repository contains step-by-step instructions for deploying a 3-tier web application across three Linux virtual machines:
- Web Tier β Nginx reverse proxy
- Application Tier β Python Flask app served by Gunicorn
- Database Tier β PostgreSQL
The documentation is split into sections for easier navigation.
Section | File | Description |
---|---|---|
0 & 1 β Topology & Common Preparation | common.md | Network layout, IP assignments, and base setup for all VMs. |
2 β Database VM Setup | database.md | Install and configure PostgreSQL, create database, user, and schema. |
3 β Application VM Setup | app.md | Deploy Flask app with Gunicorn, configure systemd service, connect to DB. |
4 β Web VM Setup | nginx.md | Configure Nginx reverse proxy to forward requests to the App tier. |
5 β Verification & Troubleshooting | verification.md | End-to-end testing and debugging tips. |
.
βββ README.md # Main index (this file)
βββ common.md # Section 1
βββ database.md # Section 2
βββ app.md # Section 3
βββ nginx.md # Section 4
βββ verification.md # Section 5
- Follow common.md to prepare all VMs.
- Configure the database.md on the DB VM.
- Deploy the app.md on the App VM.
- Set up the nginx.md on the Web VM.
- Run tests from verification.md to ensure everything works.
- All steps assume RHEL/Rocky/AlmaLinux 9 or similar.
- SELinux is kept enforcing.
- Firewalld is used for network security.
If youβd like, I can also make this README.md
include direct GitHub-style section anchors so clicking a link jumps directly to a section in the respective file. That makes it even easier for students to navigate. Would you like me to do that?