Compare commits

...

6 Commits

Author SHA1 Message Date
6217b88a47 Обновить docker-compose.yml
Some checks failed
Build and push Docker image (Gitea) / build (push) Failing after 26m58s
2026-09-01 20:32:14 +07:00
cc16ceb582 fix: replace removed libgl1-mesa-glx with libgl1 in Dockerfile
Some checks failed
Build and push Docker image (Gitea) / build (push) Has been cancelled
2026-09-01 20:18:00 +07:00
4b5e5edf5b docs: update Docker information in README
Some checks failed
Build and push Docker image (Gitea) / build (push) Has been cancelled
2026-09-01 20:13:35 +07:00
dd49ff0a28 Обновить .gitea/workflows/docker-build.yml
Some checks failed
Build and push Docker image (Gitea) / build (push) Failing after 8m14s
2026-09-01 20:05:13 +07:00
64c15290d4 Обновить .github/workflows/docker-build.yml
Some checks failed
Build and push Docker image (Gitea) / build (push) Failing after 14s
2026-09-01 20:04:34 +07:00
7398982c85 Обновить .gitea/workflows/docker-build.yml
Some checks failed
Build and push Docker image (Gitea) / build (push) Failing after 16s
2026-09-01 20:00:39 +07:00
5 changed files with 47 additions and 21 deletions

View File

@@ -13,17 +13,17 @@ jobs:
- uses: docker/login-action@v3
with:
registry: git.byte-mate.ru
username: ${{ gitea.actor }}
password: ${{ secrets.GITEA_TOKEN }}
username: ${{ github.repository_owner }}
password: ${{ secrets.GIT_PASSWORD }}
- uses: docker/build-push-action@v6
with:
context: .
push: true
tags: |
git.byte-mate.ru/Coder/UfaHack2024:latest
git.byte-mate.ru/Coder/UfaHack2024:${{ gitea.sha }}
git.byte-mate.ru/coder/ufahack2024:latest
git.byte-mate.ru/coder/ufahack2024:${{ gitea.sha }}
# Notes:
# - Create the GITEA_TOKEN secret in the Gitea repository settings.
# - Create the GIT_PASSWORD secret in the Gitea repository settings.
# - A Gitea Actions runner must be registered on the server for this
# workflow to run.

View File

@@ -6,7 +6,7 @@ on:
env:
REGISTRY: ghcr.io
IMAGE_NAME: DrHo1y/UfaHack2024
IMAGE_NAME: drho1y/ufahack2024
jobs:
build:

View File

@@ -3,7 +3,7 @@ FROM python:3.10-slim
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends \
libgl1-mesa-glx \
libgl1 \
libglib2.0-0 \
&& rm -rf /var/lib/apt/lists/*

View File

@@ -50,6 +50,18 @@ UfaHack2024/
├── MyApplication6.rar # Android-клиент (Kotlin)
├── .gitignore
├── requirements.txt
├── server/
│ ├── __init__.py
│ └── server.py
├── Dockerfile
├── docker-compose.yml
├── .dockerignore
├── .github/
│ └── workflows/
│ └── docker-build.yml
├── .gitea/
│ └── workflows/
│ └── docker-build.yml
└── c4715817-515e-4815-aa0d-bfcc75d45388.jfif
```
@@ -68,24 +80,17 @@ python main.py
```
### Зависимости
Файл `requirements.txt` содержит лишь часть зависимостей (deepface, customtkinter, torch, torchvision). Для полной работы дополнительно установите:
- catboost
- opencv-python
- opencv-contrib-python
- pandas
- imutils
- mtcnn
Базовую установку можно выполнить командой:
```
Все необходимые зависимости (15 пакетов) перечислены в `requirements.txt`. Установка выполняется одной командой:
```bash
pip install -r requirements.txt
```
Затем доустановите недостающие пакеты из списка выше.
## Важные замечания
- Файлы `.cbm` (catboost_usa.cbm, catboost_ussr.cbm) **не включены** в репозиторий. Их необходимо обучить из блокнота `catboost.ipynb` или получить отдельно.
- Каталоги `data/` с фотографиями находятся в `.gitignore` и **не приложены** к репозиторию. В коде жёстко прописаны абсолютные пути вида `C://Users//fatik//PycharmProjects//UfaHack2024//data//...` — перед запуском требуется скорректировать пути под ваше окружение.
- `requirements.txt` неполон; список установки недостающих пакетов приведён выше.
- `requirements.txt` содержит все зависимости — см. раздел «Зависимости».
- Серверная часть (`PredictServer.py`) ожидает IP-адрес `192.168.120.240:12345` — измените под свою сеть.
## Приложение для Android
@@ -93,7 +98,7 @@ pip install -r requirements.txt
## Docker / локальная разработка
В репозитории добавлена конфигурация для запуска headless-сервера распознавания лиц в Docker-контейнере (без GUI).
В репозитории добавлена конфигурация для запуска headless-сервера распознавания лиц в Docker-контейнере (без GUI). Серверная часть находится в каталоге `server/` — это Python-скрипт без графического интерфейса, который может работать независимо от десктопного приложения.
### Быстрый старт
@@ -103,6 +108,22 @@ docker compose up --build
После сборки и запуска сервер будет доступен на порту `12345` (адрес `127.0.0.1:12345`).
### Ручной запуск (без docker compose)
Собрать образ:
```bash
docker build -t ufahack2024 .
```
Запустить контейнер:
```bash
docker run -p 12345:12345 -v ./models:/app/models ufahack2024
```
Контейнер запускает headless TCP-сервер из `server/server.py`, слушает порт 12345 и требует файлы `.cbm` в каталоге `./models/`. Логи выводятся в stdout. Для выполнения команд необходим установленный Docker CLI.
### Переменные окружения
| Переменная | По умолчанию | Описание |
@@ -116,11 +137,14 @@ docker compose up --build
- Файлы `.cbm` (catboost_usa.cbm и др.) **не включены** в репозиторий. Поместите их в каталог `./models/` на хосте перед запуском контейнера. Без них контейнер запустится, но распознавание будет недоступно (в логах появится предупреждение).
- Каталоги `./models/` и `./data/` создаются Docker автоматически, если их нет на хосте.
- Файл `.dockerignore` исключает из контекста сборки ненужные файлы (исходники блокнотов, Android-клиент, `.git` и др.).
### CI / CD
- **GitHub Actions** — при пуше в ветку `main` автоматически собирает образ и публикует его в `ghcr.io/DrHo1y/UfaHack2024`.
- **Gitea Actions** — аналогичный workflow для Gitea (требует зарегистрированного runner и секрета `GITEA_TOKEN`).
В репозитории определены два workflow-файла:
- **GitHub Actions** (`.github/workflows/docker-build.yml`) — при пуше в ветку `main` автоматически собирает образ и публикует его в `ghcr.io/drho1y/ufahack2024` (все символы в нижнем регистре). Аутентификация через `secrets.GITHUB_TOKEN`, теги — `:latest` и `:${{ github.sha }}`.
- **Gitea Actions** (`.gitea/workflows/docker-build.yml`) — публикует образ в `git.byte-mate.ru/coder/ufahack2024`. Аутентификация: имя пользователя `${{ github.repository_owner }}`, пароль из секрета `GIT_PASSWORD` (не `GITEA_TOKEN`). Требуется зарегистрированный Gitea Actions runner.
## Благодарности
Для обучения модели использовали [CatBoost](https://catboost.ai/)

View File

@@ -8,6 +8,8 @@ services:
PORT: "12345"
MODEL_DIR: "/app/models"
DATA_DIR: "/data"
NVIDIA_VISIBLE_DEVICE: ALL
runtime: nvidia
volumes:
- ./server:/app/server
- ./models:/app/models