🔧 Добавлен скрипт исправления продакшена
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
✨ Новый функционал: - scripts/fix-production-env.sh - автоматическое исправление .env для продакшена - make fix-production - команда для быстрого исправления 🎯 Что исправляет: - DJANGO_DEBUG=False (вместо True) - NEXT_PUBLIC_API_URL=http://links.shareon.kr (вместо localhost) - Правильные настройки для продакшена - Пересоздание БД с правильным паролем - Выполнение миграций - Создание суперпользователя 📝 Документация: - PRODUCTION_FIX.md - инструкция по исправлению проблем 🚨 Решает проблему: - password authentication failed for user links_user - undefined в API URL фронтенда - Неправильные настройки DEBUG режима
This commit is contained in:
4
Makefile
4
Makefile
@@ -112,6 +112,10 @@ deploy-full: ## Полное развертывание в продакшен с
|
||||
@echo "✅ Полное развертывание завершено!"
|
||||
@echo "🌐 Сайт доступен по адресу: https://links.shareon.kr"
|
||||
|
||||
fix-production: ## Исправление настроек продакшена
|
||||
@echo "🔧 Исправление настроек продакшена..."
|
||||
@./scripts/fix-production-env.sh
|
||||
|
||||
deploy: ## Развертывание в продакшен
|
||||
@echo "🚀 Развертывание в продакшен..."
|
||||
@$(DOCKER_COMPOSE) -f docker-compose.yml -f docker-compose.prod.yml down
|
||||
|
||||
114
PRODUCTION_FIX.md
Normal file
114
PRODUCTION_FIX.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# Быстрое исправление проблем продакшена
|
||||
|
||||
## 🚨 Проблема: password authentication failed
|
||||
|
||||
### Причина
|
||||
Неправильные настройки в `.env` файле:
|
||||
- `DJANGO_DEBUG=True` (должно быть False)
|
||||
- `NEXT_PUBLIC_API_URL=http://localhost:8000` (должно быть домен)
|
||||
- Возможно проблема с паролем БД
|
||||
|
||||
### ⚡ Быстрое решение
|
||||
|
||||
На сервере выполните:
|
||||
|
||||
```bash
|
||||
cd /opt/links
|
||||
git pull
|
||||
|
||||
# Автоматическое исправление
|
||||
make fix-production
|
||||
```
|
||||
|
||||
### 🔧 Ручное исправление
|
||||
|
||||
Если автоматическое не сработало:
|
||||
|
||||
```bash
|
||||
# 1. Остановить контейнеры
|
||||
make down
|
||||
|
||||
# 2. Создать правильный .env
|
||||
cat > .env << 'EOF'
|
||||
# Django настройки
|
||||
DJANGO_SECRET_KEY=lskjflSDJHFdSFYU7TYOREIFLUDJKFBNKLJSDHFP9Q234856QT80OUAEIYDWSF9PQ28345701784QRTEOYAGWDFLSBAPWO9I485Y
|
||||
DJANGO_DEBUG=False
|
||||
DJANGO_ALLOWED_HOSTS=links.shareon.kr,sharon.kr,localhost,127.0.0.1
|
||||
|
||||
# База данных PostgreSQL
|
||||
DATABASE_ENGINE=django.db.backends.postgresql
|
||||
DATABASE_NAME=links_db
|
||||
DATABASE_USER=links_user
|
||||
DATABASE_PASSWORD=links_OASDUIFH90324*ftye(guBJ;O234789SDgfu{
|
||||
DATABASE_HOST=db
|
||||
DATABASE_PORT=5432
|
||||
|
||||
# PostgreSQL настройки для контейнера
|
||||
POSTGRES_DB=links_db
|
||||
POSTGRES_USER=links_user
|
||||
POSTGRES_PASSWORD=links_OASDUIFH90324*ftye(guBJ;O234789SDgfu{
|
||||
|
||||
# Frontend настройки (ВАЖНО!)
|
||||
NEXT_PUBLIC_API_URL=http://links.shareon.kr
|
||||
|
||||
# Для продакшена
|
||||
DJANGO_SECURE_SSL_REDIRECT=False
|
||||
DJANGO_SECURE_HSTS_SECONDS=31536000
|
||||
DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS=True
|
||||
DJANGO_SECURE_HSTS_PRELOAD=True
|
||||
EOF
|
||||
|
||||
# 3. Удалить старые данные БД
|
||||
docker volume rm links_postgres_data
|
||||
|
||||
# 4. Пересобрать и запустить
|
||||
make build-prod
|
||||
make up-prod
|
||||
|
||||
# 5. Подождать запуска БД
|
||||
sleep 15
|
||||
|
||||
# 6. Выполнить миграции
|
||||
make migrate
|
||||
|
||||
# 7. Создать суперпользователя
|
||||
make superuser
|
||||
```
|
||||
|
||||
### ✅ Проверка
|
||||
|
||||
После исправления проверьте:
|
||||
|
||||
```bash
|
||||
# Быстрая проверка
|
||||
make check-nginx
|
||||
|
||||
# Проверка API
|
||||
curl http://links.shareon.kr/api/
|
||||
|
||||
# Проверка админки
|
||||
curl http://links.shareon.kr/admin/
|
||||
```
|
||||
|
||||
### 🎯 Результат
|
||||
|
||||
После исправления должно работать:
|
||||
- ✅ Сайт: http://links.shareon.kr
|
||||
- ✅ API: http://links.shareon.kr/api/
|
||||
- ✅ Админка: http://links.shareon.kr/admin/
|
||||
- ✅ Логин через фронтенд
|
||||
|
||||
### 🔍 Диагностика
|
||||
|
||||
Если проблемы остались:
|
||||
|
||||
```bash
|
||||
# Полная диагностика
|
||||
make check-nginx-full
|
||||
|
||||
# Логи контейнеров
|
||||
make logs
|
||||
|
||||
# Статус контейнеров
|
||||
make status
|
||||
```
|
||||
@@ -7,7 +7,7 @@ services:
|
||||
- DJANGO_SECURE_HSTS_SECONDS=31536000
|
||||
- DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS=True
|
||||
- DJANGO_SECURE_HSTS_PRELOAD=True
|
||||
- DJANGO_ALLOWED_HOSTS=links.shareon.kr,sharon.kr,localhost,127.0.0.1
|
||||
- DJANGO_ALLOWED_HOSTS=links.shareon.kr,shareon.kr,localhost,127.0.0.1
|
||||
restart: unless-stopped
|
||||
|
||||
frontend:
|
||||
|
||||
77
scripts/fix-production-env.sh
Executable file
77
scripts/fix-production-env.sh
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
# scripts/fix-production-env.sh - Исправление .env для продакшена
|
||||
|
||||
echo "🔧 Исправление .env файла для продакшена"
|
||||
echo "========================================"
|
||||
|
||||
# Создание правильного .env файла
|
||||
cat > .env << 'EOF'
|
||||
# Django настройки
|
||||
DJANGO_SECRET_KEY=lskjflSDJHFdSFYU7TYOREIFLUDJKFBNKLJSDHFP9Q234856QT80OUAEIYDWSF9PQ28345701784QRTEOYAGWDFLSBAPWO9I485Y
|
||||
DJANGO_DEBUG=False
|
||||
DJANGO_ALLOWED_HOSTS=links.shareon.kr,sharon.kr,localhost,127.0.0.1
|
||||
|
||||
# База данных PostgreSQL
|
||||
DATABASE_ENGINE=django.db.backends.postgresql
|
||||
DATABASE_NAME=links_db
|
||||
DATABASE_USER=links_user
|
||||
DATABASE_PASSWORD=links_OASDUIFH90324*ftye(guBJ;O234789SDgfu{
|
||||
DATABASE_HOST=db
|
||||
DATABASE_PORT=5432
|
||||
|
||||
# PostgreSQL настройки для контейнера
|
||||
POSTGRES_DB=links_db
|
||||
POSTGRES_USER=links_user
|
||||
POSTGRES_PASSWORD=links_OASDUIFH90324*ftye(guBJ;O234789SDgfu{
|
||||
|
||||
# Frontend настройки (ВАЖНО для продакшена!)
|
||||
NEXT_PUBLIC_API_URL=http://links.shareon.kr
|
||||
|
||||
# Для продакшена
|
||||
DJANGO_SECURE_SSL_REDIRECT=False
|
||||
DJANGO_SECURE_HSTS_SECONDS=31536000
|
||||
DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS=True
|
||||
DJANGO_SECURE_HSTS_PRELOAD=True
|
||||
|
||||
# Опциональные настройки
|
||||
# DJANGO_EMAIL_BACKEND=django.core.mail.backends.console.EmailBackend
|
||||
# DJANGO_EMAIL_HOST=
|
||||
# DJANGO_EMAIL_PORT=587
|
||||
# DJANGO_EMAIL_HOST_USER=
|
||||
# DJANGO_EMAIL_HOST_PASSWORD=
|
||||
# DJANGO_EMAIL_USE_TLS=True
|
||||
EOF
|
||||
|
||||
echo "✅ .env файл обновлен для продакшена"
|
||||
echo ""
|
||||
echo "🔄 Перезапуск контейнеров..."
|
||||
|
||||
# Остановка контейнеров
|
||||
make down
|
||||
|
||||
# Удаление старого volume с БД (если пароль изменился)
|
||||
echo "🗄️ Очистка старых данных БД..."
|
||||
docker volume rm links_postgres_data 2>/dev/null || true
|
||||
|
||||
# Пересборка и запуск
|
||||
echo "🏗️ Пересборка контейнеров..."
|
||||
make build-prod
|
||||
|
||||
echo "🚀 Запуск контейнеров..."
|
||||
make up-prod
|
||||
|
||||
echo "⏳ Ожидание запуска БД..."
|
||||
sleep 15
|
||||
|
||||
echo "🗄️ Выполнение миграций..."
|
||||
make migrate
|
||||
|
||||
echo "👤 Создание суперпользователя..."
|
||||
echo "Создайте суперпользователя для входа в админку:"
|
||||
make superuser
|
||||
|
||||
echo ""
|
||||
echo "✅ Готово! Проверьте работу:"
|
||||
echo "• Сайт: http://links.shareon.kr"
|
||||
echo "• API: http://links.shareon.kr/api/"
|
||||
echo "• Админка: http://links.shareon.kr/admin/"
|
||||
Reference in New Issue
Block a user