Пробуем запушить с ранером
Some checks failed
Deploy MES Core / deploy (push) Failing after 20s

This commit is contained in:
2026-03-27 21:38:06 +03:00
parent cd57d20e88
commit 91b0a6ff71
6 changed files with 143 additions and 21 deletions

View File

@@ -10,16 +10,24 @@ For the full list of settings and their values, see
https://docs.djangoproject.com/en/6.0/ref/settings/
"""
import os
from pathlib import Path
import environ
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
env = environ.Env()
environ.Env.read_env() # Читаем файл .env
# читаем переменную окружения
ENV_TYPE = os.getenv('ENV_TYPE', 'local')
# Настройки безопасности
# DEBUG будет True везде, кроме сервера
DEBUG = ENV_TYPE != 'server'
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
@@ -28,10 +36,13 @@ BASE_DIR = Path(__file__).resolve().parent.parent
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-9p*t_(vtwo144=u)ie8qzb31a8%i(&1w4$0vq#udautexj^vms'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
if not DEBUG:
# На сервере список хостов должен быть ограничен
ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS', 'localhost').split(',')
else:
# Для разработки разрешаем всё
ALLOWED_HOSTS = ['*']
# Application definition
@@ -61,7 +72,9 @@ ROOT_URLCONF = 'core.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
@@ -79,9 +92,38 @@ WSGI_APPLICATION = 'core.wsgi.application'
# Database
# https://docs.djangoproject.com/en/6.0/ref/settings/#databases
DATABASES = {
'default': env.db('DATABASE_URL', default='sqlite:///db.sqlite3')
}
if ENV_TYPE == 'server':
# Для Docker на удаленном сервере (максимальная защита через .env)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.getenv('DB_NAME'),
'USER': os.getenv('DB_USER'),
'PASSWORD': os.getenv('DB_PASS'),
'HOST': os.getenv('DB_HOST', 'db'),
'PORT': '5432',
}
}
elif ENV_TYPE == 'dev':
# Настройки для локальной разработки с внешней БД
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mes_system_db',
'USER': 'mes_admin',
'PASSWORD': '123',
'HOST': '192.168.1.90', # локальный сервер БД
'PORT': '5432',
}
}
else:
# Режим "на коленке"
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# Password validation
@@ -118,4 +160,23 @@ USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/6.0/howto/static-files/
# --- Статика и Медиа ---
STATIC_URL = 'static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'
MEDIA_URL = 'media/'
MEDIA_ROOT = BASE_DIR / 'media'
# Доверяем прокси-серверу передавать заголовки
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
# Список доверенных источников для CSRF (укажи свой IP и порт)
# CSRF_TRUSTED_ORIGINS = [
# "http://192.168.1.57:8085",
# "https://prodman.tertelius.space", # Если будет SSL/HTTPS
# "http://prodman.tertelius.space", # Если пока без SSL
# ]
CSRF_TRUSTED_ORIGINS = env.list('CSRF_ORIGINS', default=['http://localhost'])
print(f"--- РАБОТАЕМ НА БАЗЕ: {DATABASES['default']['NAME']} (HOST: {DATABASES['default'].get('HOST', 'localhost')}) ---")