Initial commit: setup deploy workflow
Some checks failed
Deploy timelaps / deploy (push) Failing after 1s

This commit is contained in:
ack
2026-04-19 09:46:18 +03:00
parent b60f469aff
commit 4b6a0f9c96
7 changed files with 202 additions and 0 deletions

57
nginx/default.conf Normal file
View File

@@ -0,0 +1,57 @@
# Описываем группу серверов, куда Nginx будет перекидывать запросы.
# 'web' — это имя сервиса из нашего docker-compose.yml.
upstream django_app {
server web:8000;
}
server {
# Слушаем стандартный 80-й порт (HTTP).
listen 80;
# Список имен, на которые будет откликаться сервер.
# Если зайти по другому IP, Nginx может выдать ошибку.
server_name shiftflow.tertelius.space 192.168.1.108 localhost;
# Увеличиваем лимит загрузки (по умолчанию в Nginx всего 1МБ).
# 100М — чтобы ты мог спокойно грузить тяжелые чертежи или фото станков.
client_max_body_size 100M;
# Включаем Gzip-сжатие. Nginx будет сжимать текстовые файлы перед отправкой,
# что ускорит загрузку интерфейса, особенно на слабом интернете.
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
# Главный блок: всё, что не статика, летит в Django.
location / {
proxy_pass http://django_app;
# Передаем оригинальный домен/IP (нужно для ALLOWED_HOSTS в Django).
proxy_set_header Host $host;
# Передаем реальный IP пользователя (чтобы в логах видеть, кто зашел).
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Передаем протокол (http или https).
# КРИТИЧНО для CSRF защиты, чтобы Django не ругался при входе в админку.
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
# Раздача статики (CSS, JS, картинки интерфейса).
# Nginx сам лезет в папку, не беспокоя Django — это очень быстро.
location /static/ {
# Путь ВНУТРИ контейнера Nginx (куда мы примонтировали волюм).
alias /app/staticfiles/;
# Заставляем браузер кэшировать стили на 30 дней, чтобы не качать их каждый раз.
expires 30d;
add_header Cache-Control "public, no-transform";
}
# Раздача медиа-файлов (чертежи, фото продукции).
location /media/ {
alias /app/media/;
expires 30d;
add_header Cache-Control "public, no-transform";
}
}