# Документация за деплоймънт

## Изисквания
- Python 3.8+
- MySQL 8.0+ или SQLite (за разработка)
- Уеб сървър с поддръжка на WSGI (напр. Nginx + Gunicorn)

## Инсталация

### 1. Клониране на репозиторията
```bash
git clone https://github.com/yourusername/license_plate_system_web.git
cd license_plate_system_web
```

### 2. Създаване на виртуална среда
```bash
python -m venv venv
source venv/bin/activate  # За Linux/Mac
# или
venv\Scripts\activate  # За Windows
```

### 3. Инсталиране на зависимостите
```bash
pip install -r requirements.txt
```

### 4. Конфигурация
Създайте файл `.env` в основната директория с следното съдържание:
```
SECRET_KEY=your_secure_secret_key
DB_USERNAME=your_db_username
DB_PASSWORD=your_db_password
DB_HOST=your_db_host
DB_PORT=3306
DB_NAME=license_plate_system
```

### 5. Инициализация на базата данни
За MySQL:
```bash
mysql -u root -p
```

```sql
CREATE DATABASE license_plate_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```

### 6. Стартиране на приложението в режим за разработка
```bash
python -m src.main
```

## Деплоймънт в производствена среда

### Използване на Gunicorn и Nginx

#### 1. Инсталиране на Gunicorn
```bash
pip install gunicorn
```

#### 2. Създаване на Systemd услуга
Създайте файл `/etc/systemd/system/license_plate_system.service`:

```
[Unit]
Description=License Plate Recognition System
After=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/path/to/license_plate_system_web
Environment="PATH=/path/to/license_plate_system_web/venv/bin"
EnvironmentFile=/path/to/license_plate_system_web/.env
ExecStart=/path/to/license_plate_system_web/venv/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 -m 007 "src.main:app"

[Install]
WantedBy=multi-user.target
```

#### 3. Конфигурация на Nginx
Създайте файл `/etc/nginx/sites-available/license_plate_system`:

```
server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
```

#### 4. Активиране на конфигурацията
```bash
sudo ln -s /etc/nginx/sites-available/license_plate_system /etc/nginx/sites-enabled/
sudo systemctl restart nginx
sudo systemctl start license_plate_system
sudo systemctl enable license_plate_system
```

## Сигурност
- Променете паролата на администраторския акаунт след първоначалния вход
- Използвайте HTTPS за защита на комуникацията
- Редовно архивирайте базата данни
- Обновявайте зависимостите за сигурност

## Мониторинг
- Проверявайте логовете на приложението: `/var/log/license_plate_system.log`
- Проверявайте логовете на Nginx: `/var/log/nginx/error.log`
- Настройте известия за системни грешки

## Поддръжка
- Редовно архивирайте базата данни
- Проверявайте за обновления на зависимостите
- Мониторирайте използването на дисково пространство за съхранение на изображения
