From 6537071e028cf2c6063d5ed2d2e50455bb600f65 Mon Sep 17 00:00:00 2001 From: Nikulin Date: Wed, 12 Nov 2025 11:03:27 +0700 Subject: [PATCH 1/4] fix: ci, code-quality --- .github/workflows/ci.yml | 1 - .github/workflows/code-quality.yml | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a97e0d2..f771e85 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,7 +55,6 @@ jobs: run: | uv sync --all-extras --dev uv pip install -r tests/requirements-test.txt - uv add ruff - name: Create test environment file run: | diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 4046751..3d1df06 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -18,7 +18,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: "3.12" + python-version: "3.13" - name: Install uv uses: astral-sh/setup-uv@v3 @@ -64,7 +64,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: "3.12" + python-version: "3.13" - name: Install tools run: | @@ -80,4 +80,4 @@ jobs: - name: Check for complex functions run: | - xenon --max-absolute B --max-modules A --max-average A app/ \ No newline at end of file + xenon --max-absolute B --max-modules A --max-average A app/ From 51b624aa20fb3013008516001d4bcd776d7a1977 Mon Sep 17 00:00:00 2001 From: Nikulin Date: Wed, 12 Nov 2025 11:03:40 +0700 Subject: [PATCH 2/4] fix: command --- command | 1 + 1 file changed, 1 insertion(+) diff --git a/command b/command index 793dfc8..75a61a4 100644 --- a/command +++ b/command @@ -1,5 +1,6 @@ uvicorn app.main:app --host 0.0.0.0 --port 8080 docker compose up -d --build +docker compose -f docker-compose-prod.yml up -d --build docker compose down docker compose down -v From ee6207dc2dd297dd78d265603886788ba6807a8d Mon Sep 17 00:00:00 2001 From: Nikulin Date: Wed, 12 Nov 2025 11:04:13 +0700 Subject: [PATCH 3/4] feat: add docker-compose prod --- docker-compose-prod.yml | 93 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 docker-compose-prod.yml diff --git a/docker-compose-prod.yml b/docker-compose-prod.yml new file mode 100644 index 0000000..ad1e34f --- /dev/null +++ b/docker-compose-prod.yml @@ -0,0 +1,93 @@ +services: + app: + restart: always + image: ghcr.io/gooodh/fastapi_sqlalchemy_temp:latest + container_name: "app" + command: bash entrypoint.sh + ports: + - "8080:8080" + depends_on: + - db_postgres + + watchtower: + image: containrrr/watchtower + restart: always + volumes: + - /var/run/docker.sock:/var/run/docker.sock + command: + - --cleanup=true # Очистка старых неиспользуемых образов после обновления + - --interval=300 # Проверять обновления каждые 300 секунд (5 минут) + + + db_postgres: + image: postgres:15 + container_name: app_postgres_container + restart: always + env_file: + - .env + volumes: + - app_postgres:/var/lib/postgresql/data + ports: + - 5432:5432 + + pgadmin: + image: dpage/pgadmin4 + container_name: app_pgadmin_container + environment: + PGADMIN_DEFAULT_EMAIL: admin@pgadmin.com + PGADMIN_DEFAULT_PASSWORD: password + PGADMIN_LISTEN_PORT: 80 + ports: + - 15432:80 + volumes: + - app_pgadmin:/var/lib/pgadmin + depends_on: + - db_postgres + + loki: + image: grafana/loki:latest + container_name: "grafana_loki" + ports: + - "3100:3100" + volumes: + - ./loki-config.yml:/etc/loki/local-config.yml:ro + + grafana: + image: grafana/grafana:latest + container_name: "grafana" + ports: + - "3000:3000" + volumes: + - grafana_data:/var/lib/grafana + + promtail: + image: grafana/promtail:2.9.0 + container_name: promtail + volumes: + - /var/lib/docker/containers:/var/lib/docker/containers:ro + - /var/run/docker.sock:/var/run/docker.sock + - ./promtail-config.yaml:/etc/promtail/config.yml + command: -config.file=/etc/promtail/config.yml + privileged: true + depends_on: + - loki + + prometheus: + image: prom/prometheus:v2.52.0 + container_name: prometheus + ports: + - "9090:9090" + volumes: + - ./prometheus.yml:/etc/prometheus/prometheus.yml + - ./prometheus-data:/prometheus + command: + - '--config.file=/etc/prometheus/prometheus.yml' + - '--storage.tsdb.path=/prometheus' + - '--web.enable-lifecycle' + depends_on: + - loki + +volumes: + app_postgres: + app_pgadmin: + grafana_data: From 08a3915a4735eb440a29afd92d21d46913493f94 Mon Sep 17 00:00:00 2001 From: Nikulin Date: Wed, 12 Nov 2025 11:04:54 +0700 Subject: [PATCH 4/4] dell: bug report, feature request --- .github/ISSUE_TEMPLATE/bug_report.md | 38 ----------------------- .github/ISSUE_TEMPLATE/feature_request.md | 28 ----------------- 2 files changed, 66 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 748d1ea..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug Report -about: Создать отчет об ошибке -title: '[BUG] ' -labels: bug -assignees: '' ---- - -## Описание ошибки -Краткое и понятное описание ошибки. - -## Шаги для воспроизведения -1. Перейти к '...' -2. Нажать на '...' -3. Прокрутить вниз до '...' -4. Увидеть ошибку - -## Ожидаемое поведение -Описание того, что должно было произойти. - -## Фактическое поведение -Описание того, что произошло на самом деле. - -## Скриншоты -Если применимо, добавьте скриншоты для объяснения проблемы. - -## Окружение -- ОС: [например, Ubuntu 20.04] -- Python версия: [например, 3.12] -- Версия приложения: [например, 1.0.0] - -## Логи -``` -Вставьте соответствующие логи здесь -``` - -## Дополнительный контекст -Добавьте любой другой контекст о проблеме здесь. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index c454305..0000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -name: Feature Request -about: Предложить новую функциональность -title: '[FEATURE] ' -labels: enhancement -assignees: '' ---- - -## Описание функциональности -Краткое описание желаемой функциональности. - -## Мотивация -Объясните, зачем нужна эта функциональность. Какую проблему она решает? - -## Предлагаемое решение -Описание того, как вы видите реализацию этой функциональности. - -## Альтернативы -Описание альтернативных решений или функций, которые вы рассматривали. - -## Дополнительный контекст -Добавьте любой другой контекст или скриншоты о запросе функциональности здесь. - -## Приоритет -- [ ] Низкий -- [ ] Средний -- [ ] Высокий -- [ ] Критический \ No newline at end of file