7.9 KiB
7.9 KiB
Обзор созданных файлов Docker Setup
🐳 Docker файлы
dbapp/Dockerfile
Универсальный Dockerfile для dev и prod окружений.
- Multi-stage build для оптимизации
- Установка GDAL, PostGIS, PostgreSQL клиента
- Использование uv для управления зависимостями
- Non-root пользователь для безопасности
- Healthcheck для мониторинга
dbapp/entrypoint.sh
Скрипт инициализации контейнера.
- Ожидание готовности PostgreSQL
- Автоматические миграции
- Сбор статики (только prod)
- Запуск runserver (dev) или Gunicorn (prod)
dbapp/.dockerignore
Исключения для Docker build.
- Исключает ненужные файлы из образа
- Уменьшает размер образа
- Ускоряет сборку
🔧 Docker Compose файлы
docker-compose.yaml
Development окружение.
- PostgreSQL с PostGIS
- Django с development server
- TileServer GL
- Код монтируется как volume (live reload)
- DEBUG=True
docker-compose.prod.yaml
Production окружение.
- PostgreSQL с PostGIS
- Django с Gunicorn
- TileServer GL
- Nginx reverse proxy
- Код копируется в образ
- DEBUG=False
- Оптимизированные настройки
🌐 Nginx конфигурация
nginx/conf.d/default.conf
HTTP конфигурация для production.
- Проксирование к Django
- Раздача статики и медиа
- Оптимизированные таймауты
- Кэширование статики
nginx/conf.d/ssl.conf.example
HTTPS конфигурация (пример).
- SSL/TLS настройки
- Редирект с HTTP на HTTPS
- Security headers
- Оптимизированные SSL параметры
nginx/ssl/.gitkeep
Директория для SSL сертификатов.
- Поместите сюда fullchain.pem и privkey.pem
🗺️ TileServer GL
tiles/README.md
Инструкция по настройке TileServer GL.
- Как добавить тайлы
- Примеры конфигурации
- Использование в Django/Leaflet
- Где взять тайлы
tiles/config.json.example
Пример конфигурации TileServer GL.
- Настройки путей
- Форматы и качество
- Домены
tiles/.gitignore
Исключения для git.
- Игнорирует большие .mbtiles файлы
- Сохраняет примеры конфигурации
🔐 Переменные окружения
.env.dev
Переменные для development.
- DEBUG=True
- Простые пароли для локальной разработки
- Настройки БД для dev
.env.prod
Шаблон переменных для production.
- DEBUG=False
- Требует изменения SECRET_KEY и паролей
- Настройки для production
🛠️ Утилиты
Makefile
Удобные команды для работы с Docker.
make dev-up- запуск devmake prod-up- запуск prodmake migrate- миграцииmake backup- backup БД- И многое другое
generate_secret_key.py
Генератор Django SECRET_KEY.
python generate_secret_key.py
📚 Документация
QUICKSTART.md
Быстрый старт.
- Минимальные команды для запуска
- Development и Production
- Основные команды
DOCKER_README.md
Подробная документация.
- Полное описание структуры
- Все команды с примерами
- Troubleshooting
- Backup и восстановление
DOCKER_SETUP.md
Полное руководство.
- Обзор всей системы
- Конфигурация
- Безопасность
- Мониторинг
DEPLOYMENT_CHECKLIST.md
Чеклист для деплоя.
- Пошаговая инструкция
- Проверка безопасности
- Настройка production
- Troubleshooting
FILES_OVERVIEW.md
Этот файл.
- Описание всех созданных файлов
- Назначение каждого файла
📝 Обновленные файлы
.gitignore
Обновлен для Docker.
- Исключает .env файлы
- Исключает логи и backup
- Исключает временные файлы
🎯 Как использовать
Для начала работы:
- Прочитайте QUICKSTART.md
- Выберите окружение (dev или prod)
- Скопируйте соответствующий .env файл
- Запустите с помощью Makefile
Для деплоя:
- Прочитайте DEPLOYMENT_CHECKLIST.md
- Следуйте чеклисту пошагово
- Используйте DOCKER_README.md для справки
Для настройки TileServer:
- Прочитайте tiles/README.md
- Добавьте .mbtiles файлы
- Настройте config.json (опционально)
📊 Структура проекта
.
├── Docker конфигурация
│ ├── dbapp/Dockerfile
│ ├── dbapp/entrypoint.sh
│ ├── dbapp/.dockerignore
│ ├── docker-compose.yaml
│ └── docker-compose.prod.yaml
│
├── Nginx
│ ├── nginx/conf.d/default.conf
│ ├── nginx/conf.d/ssl.conf.example
│ └── nginx/ssl/.gitkeep
│
├── TileServer GL
│ ├── tiles/README.md
│ ├── tiles/config.json.example
│ └── tiles/.gitignore
│
├── Переменные окружения
│ ├── .env.dev
│ └── .env.prod
│
├── Утилиты
│ ├── Makefile
│ └── generate_secret_key.py
│
└── Документация
├── QUICKSTART.md
├── DOCKER_README.md
├── DOCKER_SETUP.md
├── DEPLOYMENT_CHECKLIST.md
└── FILES_OVERVIEW.md
✅ Что было сделано
- ✅ Создан универсальный Dockerfile (один для dev и prod)
- ✅ Настроен entrypoint.sh с автоматической инициализацией
- ✅ Созданы docker-compose.yaml для dev и prod
- ✅ Настроен Nginx для production
- ✅ Добавлена поддержка TileServer GL
- ✅ Созданы .env файлы для разных окружений
- ✅ Добавлен Makefile с удобными командами
- ✅ Написана подробная документация
- ✅ Создан чеклист для деплоя
- ✅ Добавлены утилиты (генератор SECRET_KEY)
🚀 Следующие шаги
- Запустите development окружение
- Протестируйте все функции
- Подготовьте production окружение
- Следуйте DEPLOYMENT_CHECKLIST.md
- Настройте мониторинг и backup
💡 Полезные ссылки
- Django Documentation: https://docs.djangoproject.com/
- Docker Documentation: https://docs.docker.com/
- PostGIS Documentation: https://postgis.net/documentation/
- TileServer GL: https://github.com/maptiler/tileserver-gl
- Nginx Documentation: https://nginx.org/en/docs/