2025-03-30 22:42:43 +03:00
|
|
|
|
# 🚀 Web Application with Docker, PostgreSQL & Flask
|
|
|
|
|
|
|
|
|
|
Простое веб-приложение с авторизацией, которое можно использовать как основу для собственного проекта.
|
|
|
|
|
|
|
|
|
|
## 🌟 Особенности проекта
|
|
|
|
|
|
|
|
|
|
- **Docker-ориентированный** (сборка через compose)
|
|
|
|
|
- **Безопасность**: секреты через ".env", healthcheck для БД
|
|
|
|
|
- **Автоматический деплой** через Git hooks
|
|
|
|
|
- **Логирование** операций деплоя
|
|
|
|
|
|
|
|
|
|
## 🛠 Технологический стек
|
|
|
|
|
|
|
|
|
|
- Frontend: Nginx со статическим html
|
|
|
|
|
- Backend: Python Flask
|
|
|
|
|
- DataBase: PostgreSQL
|
|
|
|
|
- Infrastructure: Docker, Docker Compose
|
|
|
|
|
- CI/CD: Git hooks
|
|
|
|
|
|
|
|
|
|
🔧 Архитектура проекта
|
|
|
|
|
Copy
|
2025-03-31 21:44:35 +03:00
|
|
|
|
container-web-app/
|
|
|
|
|
│
|
|
|
|
|
├── backend/
|
|
|
|
|
│ ├── requirements.txt
|
|
|
|
|
│ └── server.py
|
|
|
|
|
│
|
|
|
|
|
├── db/
|
|
|
|
|
│ └── init.sql
|
|
|
|
|
│
|
|
|
|
|
├── frontend/
|
|
|
|
|
│ ├── static/
|
|
|
|
|
│ └── index.html
|
|
|
|
|
│
|
|
|
|
|
├── nginx/
|
|
|
|
|
│ ├── ssl/
|
|
|
|
|
│ │ ├── domain.crt
|
|
|
|
|
│ │ ├── domain.conf
|
|
|
|
|
│ │ └── domain.key
|
|
|
|
|
│ └── nginx.conf
|
|
|
|
|
│
|
|
|
|
|
├── scripts/
|
|
|
|
|
│ └── post-receive
|
|
|
|
|
│
|
|
|
|
|
├── .env
|
|
|
|
|
├── docker-compose.yaml
|
|
|
|
|
└── README.md
|
2025-03-30 22:42:43 +03:00
|
|
|
|
🔒 Безопасность
|
|
|
|
|
Все секреты хранятся в .env (в git не коммитятся)
|
|
|
|
|
|
|
|
|
|
Healthcheck для мониторинга состояния PostgreSQL
|
|
|
|
|
|
|
|
|
|
## CI/CD:
|
|
|
|
|
|
|
|
|
|
Автоматический деплой через Git hooks
|
|
|
|
|
|
|
|
|
|
Скрипт деплоя с логированием (/var/log/deploy.log)
|
|
|
|
|
|
|
|
|
|
## Infrastructure as Code:
|
|
|
|
|
|
|
|
|
|
Полная воспроизводимость через Docker
|
|
|
|
|
|
|
|
|
|
Версионирование образов
|
|
|
|
|
|
|
|
|
|
## 📈 Дальнейшее развитие
|
|
|
|
|
- Добавить тесты (pytest)
|
|
|
|
|
|
|
|
|
|
- Настроить GitHub Actions для CI
|
|
|
|
|
|
|
|
|
|
- Реализовать балансировку нагрузки
|
|
|
|
|
|
|
|
|
|
- Добавить мониторинг (Prometheus + Grafana)
|