8.9 KiB
8.9 KiB
🚀 SETUP.md — Первичная настройка Окнардии
Версия: 0.2.0 | Дата: 16.04.2026
Этот документ описывает пошаговую настройку проекта для разработки и деплоя.
📋 Предварительные требования
- Python: 3.12+
- Django: 6.0+
- MariaDB/MySQL: 5.7+ или 8.0+
- Redis (опционально, для кеширования): 6.0+
- Poetry (для управления зависимостями)
На macOS:
# Установка зависимостей (если не установлены)
brew install mariadb-connector-c
brew install redis # опционально
🔑 Шаг 1: Конфигурация секретов
1.1 Создайте файл my_secret.py
cd oknardia/oknardia
cp my_secret.py.template my_secret.py
nano my_secret.py # отредактируйте значения
Что нужно заполнить:
- IP адреса и хосты (MY_HOST_HOME2, MY_DATABASE_HOST_DEV2)
- Пароль БД (MY_DATABASE_PASSWORD_DEV)
- Email credentials (MY_EMAIL_HOST_USER_DEV, MY_EMAIL_HOST_PASSWORD_DEV)
- Пути к файлам (MY_MEDIA_ROOT_DEV2, MY_STATIC_ROOT_DEV2)
- SECRET_KEY (сгенерируйте новый!)
1.2 (Опционально) Создайте файл .env.local
cd /path/to/project
cp .env.example .env.local
nano .env.local # отредактируйте значения
Примечание: либо используйте my_secret.py, либо .env.local, выбирайте удобный способ.
🗄️ Шаг 2: Настройка БД
2.1 Создайте БД и пользователя
# Подключитесь к MySQL
mysql -u root -p
# В MySQL консоли:
CREATE DATABASE django_oknardia_dev;
CREATE USER 'web'@'localhost' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON django_oknardia_dev.* TO 'web'@'localhost';
FLUSH PRIVILEGES;
EXIT;
2.2 Выполните миграции
cd /path/to/project/oknardia
python manage.py migrate
2.3 Создайте суперпользователя
python manage.py createsuperuser
📦 Шаг 3: Установка зависимостей
Вариант 1: Poetry (рекомендуется)
# Установите poetry (если не установлен)
curl -sSL https://install.python-poetry.org | python3 -
# Установите зависимости
poetry install
# Активируйте виртуальное окружение
poetry shell
Вариант 2: pip (классический способ)
python -m venv venv
source venv/bin/activate # На Windows: venv\Scripts\activate
pip install -r requirements.txt
🏃 Шаг 4: Запуск разработки
4.1 Запустите локальный сервер
cd oknardia
python manage.py runserver
Откройте браузер: http://127.0.0.1:8000
4.2 Запустите задачи Celery (опционально)
celery -A oknardia worker -l info
📁 Шаг 5: Создание необходимых директорий
# Статика и медиа файлы
mkdir -p public/media
mkdir -p public/static
mkdir -p public/static/img/_flap.cfg
mkdir -p public/static/img/_miniflap.cfg
# Логи
mkdir -p logs
# Сгенерируйте статику
python manage.py collectstatic --noinput
🧪 Шаг 6: Тестирование
# Запустите тесты
python manage.py test
# С покрытием (если установлен coverage)
coverage run --source='.' manage.py test
coverage report
🔐 Шаг 7: Проверка безопасности
7.1 Django встроенная проверка
python manage.py check --deploy
7.2 Проверка на утечки секретов
# Установите инструмент
pip install truffleHog
# Проверьте репозиторий
truffleHog filesystem . --json
✅ Проверка готовности
Убедитесь, что все работает:
# 1. Статус БД
python manage.py dbshell < /dev/null && echo "✓ Database OK"
# 2. Статус приложений Django
python manage.py check && echo "✓ Django OK"
# 3. Статус файлов
test -d public/media && test -d public/static && echo "✓ Directories OK"
# 4. Тесты
python manage.py test 2>&1 | tail -5
🚀 Развертывание на продакшене
Для разных хостов
Masterhost VDS:
# Установка окружения
export DJANGO_SECRET_KEY="your-production-key"
export DATABASE_PASSWORD="production-db-password"
export DATABASE_HOST="localhost"
export DEBUG="False"
# Запуск через uWSGI + Nginx
uwsgi --ini config/oknardia.ini
Docker (рекомендуется):
docker build -t oknardia:latest .
docker run -d \
-e DJANGO_SECRET_KEY="..." \
-e DATABASE_PASSWORD="..." \
-p 8000:8000 \
oknardia:latest
🛠️ Полезные команды
# Управление миграциями
python manage.py makemigrations # Создать миграцию
python manage.py migrate # Применить миграции
python manage.py migrate --fake-initial # Подделать первую миграцию
# Управление данными
python manage.py shell # Интерпретатор Python с контекстом Django
python manage.py dumpdata > backup.json # Резервная копия данных
python manage.py loaddata backup.json # Восстановление данных
# Статика и медиа
python manage.py collectstatic # Собрать статику для продакшена
python manage.py findstatic # Найти файлы статики
# Администрирование
python manage.py createsuperuser # Создать администратора
python manage.py changepassword username # Изменить пароль
# Очистка
python manage.py clearsessions # Удалить старые сессии
python manage.py remove_stale_contenttypes # Удалить устаревшие типы контента
# Служебные
python manage.py check # Проверить конфигурацию
python manage.py check --deploy # Проверка для продакшена
📚 Дополнительные ресурсы
- Django документация
- AGENTS.md — архитектура и конвенции проекта
- README.md — основная информация о проекте
- SECURITY_AUDIT_REPORT.md — отчёт безопасности
❓ Решение проблем
Проблема: mysqlclient не устанавливается на macOS
Решение:
brew install mariadb-connector-c
pip install mysqlclient
# или
brew unlink mariadb-connector-c # после установки
Проблема: ModuleNotFoundError: No module named 'oknardia'
Решение:
# Убедитесь, что находитесь в правильной директории
cd /path/to/project/oknardia
python manage.py runserver
Проблема: OperationalError: (2002, "Can't connect to local MySQL server")
Решение:
# Проверьте, что MySQL запущен
# macOS:
brew services start mariadb
# Linux:
sudo systemctl start mysql
# Проверьте credentials в my_secret.py или .env
Проблема: миграции не применяются
Решение:
# Проверьте статус миграций
python manage.py showmigrations
# Примените все миграции
python manage.py migrate --run-syncdb
# Если проблема в конкретной миграции
python manage.py migrate app_name 0001 --fake
python manage.py migrate app_name
🤝 Общие вопросы
Q: Где хранятся секреты?
A: В my_secret.py (в .gitignore) или переменных окружения (.env)
Q: Как запустить проект без интернета? A: Установите все зависимости заранее, используйте локальное хранилище медиа
Q: Как работает система рейтинга? A: Смотрите AGENTS.md, раздел "Система рейтинга и ранжирования"
Версия документа: 1.0
Последнее обновление: 16.04.2026
Автор: GitHub Copilot