diff --git a/7project/report.md b/7project/report.md index b3f9602..83cf28d 100644 --- a/7project/report.md +++ b/7project/report.md @@ -79,6 +79,14 @@ The workflow works in the following way: etc.). - Deployment Chart (charts/myapp-chart/): Helm chart to deploy the application to Kubernetes. +### Other services deployed in the cluster + +- Longhorn: distributed storage system providing persistent volumes for the database and other services +- Prometheus + Grafana: monitoring stack collecting metrics from the app and cluster, visualized in Grafana dashboards +- MariaDB operator: manages the MariaDB cluster based on Custom resources, creates Databases, users, handles backups +- RabbitMQ operator: manages RabbitMQ cluster based on Custom resources +- Cloudflare Tunnel: allows public access to backend API running in the private cluster, providing HTTPS + ### Technologies Used - Backend: Python, FastAPI, FastAPI Users, SQLAlchemy, Pydantic, Alembic, Celery @@ -202,10 +210,10 @@ bash upgrade_database.sh ### 5) Run backend +Before running the backend, make sure to set the necessary environment variables. Either by setting them in your shell +or by setting them in run configuration in your IDE. ```bash cd backend - -#TODO: set env variables uvicorn app.app:fastApi --reload --host 0.0.0.0 --port 8000 ``` @@ -258,7 +266,7 @@ via GitHub actions and Helm chart. Frontend files are deployed to Cloudflare pag ### Setup Cluster -Deployment should work on any Kubernetes cluster. However, we are using 4 TalosOS virtual machines (1 control plane, 3 +Deployment should work on any Kubernetes cluster. However, we are using 5 TalosOS virtual machines (1 control plane, 4 workers) running on top of Proxmox VE. diff --git a/7project/src/README.md b/7project/src/README.md index 0ddd934..48a1538 100644 --- a/7project/src/README.md +++ b/7project/src/README.md @@ -1,23 +1,14 @@ ## Folder structure - `src/` - - `backend/` - - `alembic/` - database migrations - - `app/` - main application code - - `tests/` - tests - - `docker-compose.test.yml` - docker compose for testing database - - `Dockerfile` - production Dockerfile - - `main.py` - App entrypoint - - `requirements.txt` - Python dependencies - - `test_locally.sh` - script to run tests with temporary database + - `backend/` - Python FastAPI backend application. Described in separate [README](./backend/README.md). - `charts/` - - `myapp-chart/` - Helm chart for deploying the application, supports prod and dev environments - - `frontend/` - React frontend application - - `tofu/` - Terraform/OpenTofu services deployment configurations - - `modules/` - separated modules for different services - - `main.tf` - main deployment configuration - - `variables.tf` - deployment variables - - `terraform.tfvars.example` - example variables file + - `myapp-chart/` - Helm chart for deploying the application, supports prod and dev environments. Described in + separate [README](./charts/README.md). + - `frontend/` - React frontend application. Described in separate + [README](./frontend/README.md). + - `tofu/` - Terraform/OpenTofu services deployment configurations. Described in separate + [README](./tofu/README.md). - `compose.yaml` - Docker Compose file for local development - `create_migration.sh` - script to create new Alembic database migration - `upgrade_database.sh` - script to upgrade database to latest Alembic revision \ No newline at end of file diff --git a/7project/src/backend/README.md b/7project/src/backend/README.md new file mode 100644 index 0000000..29e3aef --- /dev/null +++ b/7project/src/backend/README.md @@ -0,0 +1,23 @@ +# Backend + +This directory contains the backend code for the project. It is built using Python and FastAPI framework and with +database migrations support using Alembic. + +## Directory structure + +- `alembic/` - database migrations +- `app/` - main application code + - `api/` - API endpoints - routers/controllers with request handling logic + - `core/` - core application logic - database session management, security + - `models/` - database models + - `schemas/` - Endpoint schemas + - `services/` - utilities for various tasks + - `workers/` - background tasks + - `app.py` - FastAPI startup script + - `celery_app.py` - Celery startup script +- `tests/` - tests +- `docker-compose.test.yml` - docker compose for testing database +- `Dockerfile` - production Dockerfile +- `main.py` - App entrypoint +- `requirements.txt` - Python dependencies +- `test_locally.sh` - script to run tests with temporary database \ No newline at end of file