A comprehensive apartment management system with backend API, frontend dashboard, and database management.
- Docker and Docker Compose
- Git
- For GKE deployment: Google Cloud SDK (gcloud)
- For local K8s: kubectl and local Kubernetes cluster
Follow these steps to get your development environment set up and running.
git clone https://github.com/f-midterm/GKE-Project-ffinal.git
cd GKE-Project-ffinalCopy the example environment file and configure your credentials:
cp .env.example .envEdit .env and replace all example values with your actual configuration.
docker compose -f docker-compose.dev.yml up --build -ddocker compose -f docker-compose.dev.yml logs -fdocker compose -f docker-compose.dev.yml downOnce the services are running, access:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8080
- MySQL: localhost:3307
docker compose -f docker-compose.prod.yml up --build -ddocker compose -f docker-compose.prod.yml logs -fdocker compose -f docker-compose.prod.yml downOnce the services are running, access:
- Application: http://localhost
- Backend API: http://localhost:8080
- MySQL: localhost:3307
Deploy to Google Kubernetes Engine:
cd k8s-gcp
.\deploy.ps1The application will be deployed to your configured GKE cluster.
Deploy to local Kubernetes cluster with Prometheus and Grafana:
cd monitor
.\deploy-monitoring.ps1This installs Prometheus Operator CRDs and monitoring components.
cd ..\k8s
.\deploy.ps1This will automatically apply ServiceMonitor resources for metrics collection.
Access points:
- Application: http://localhost (via ingress)
- Prometheus: http://grafana.localhost
- Grafana: http://prometheus.localhost
.
├── backend/ # Spring Boot backend application
├── frontend/ # React frontend application
├── k8s/ # Local Kubernetes manifests
├── k8s-gcp/ # GKE deployment manifests
├── monitor/ # Prometheus/Grafana monitoring stack
├── docker-compose.dev.yml # Development environment
├── docker-compose.prod.yml # Production environment (local)
└── .env.example # Environment variables template
# Update deployment
cd k8s
.\update.ps1
# Delete deployment
cd k8s
.\delete_deploy.ps1
# Build images
cd k8s
.\build-images.ps1# Deploy monitoring
cd monitor
.\deploy-monitoring.ps1
# Delete monitoring
cd monitor
.\delete-monitoring.ps1- Never commit
.envfile to version control - Always change default credentials before production deployment
- Use proper secrets management for production (GitHub Secrets for GKE)
- Keep
.env.exampleupdated with new variables (use placeholder values only)