Запуск¶
Запуск с помощью Docker Compose¶
-
Создайте файл docker-compose.yml.
version: '3.9' services: postgres_db: image: postgres:16-alpine container_name: postgres restart: unless-stopped security_opt: - no-new-privileges read_only: true tmpfs: - /run/postgresql - /tmp environment: POSTGRES_DB: ${DATABASE_NAME} POSTGRES_USER: ${DATABASE_USER} POSTGRES_PASSWORD: ${DATABASE_PASSWORD} volumes: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" web: image: cr.yandex/crp8p3a3l1ri2431n3ce/protector/protector-backend-poc:latest container_name: web restart: unless-stopped environment: - SECRET_KEY=${SECRET_KEY} - DEBUG=${DEBUG} - DATABASE_NAME=${DATABASE_NAME} - DATABASE_USER=${DATABASE_USER} - DATABASE_PASSWORD=${DATABASE_PASSWORD} - DATABASE_HOST=${DATABASE_HOST} - DATABASE_PORT=${DATABASE_PORT} volumes: - static_volume:/app/static - media_volume:/app/media depends_on: - postgres_db nginx: image: nginx:alpine container_name: nginx restart: unless-stopped security_opt: - no-new-privileges read_only: true tmpfs: - /run:mode=770,size=1k,uid=101,gid=101 - /tmp - /var/cache/nginx/ ports: - "80:80" - "443:443" volumes: - static_volume:/app/static - media_volume:/app/media - ./nginx/default.conf:/etc/nginx/conf.d/default.conf - ./nginx/fullchain.pem:/etc/nginx/certs/fullchain.pem - ./nginx/privkey.pem:/etc/nginx/certs/privkey.pem depends_on: - web protector-ui: image: cr.yandex/crp8p3a3l1ri2431n3ce/protector/protector-ui:latest container_name: protector-ui restart: unless-stopped security_opt: - no-new-privileges read_only: false tmpfs: - /run:mode=770,size=1k,uid=101,gid=101 - /tmp - /var/cache/nginx/ volumes: - ./conf.cfg:/usr/share/nginx/html/config/conf.cfg volumes: postgres_data: static_volume: media_volume:
Примечание
В случае отсутствия сертификатов и использования обычного HTTP, в файле docker-compose.yml следует закомментировать выделенные строчки:
-
Создайте файл .env.
Пример файла .env:
SECRET_KEY=your-super-secret-key DEBUG=True DATABASE_NAME=django_db DATABASE_USER=django_user DATABASE_PASSWORD= your-super-secret-password DATABASE_HOST=postgres_db DATABASE_PORT=5432
-
Создайте файл nginx.conf. Для этого:
a. Создайте директорию /opt/cryptex/nginx/.
mkdir -p /opt/cryptex/nginx/
b. Внутри созданной папки создайте файл nginx.conf.
Пример файла nginx.conf:
server { listen 80; server_name _; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name _; client_max_body_size 2048M; ssl_certificate /etc/nginx/certs/fullchain.pem; ssl_certificate_key /etc/nginx/certs/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location /static/ { alias /app/static/; } location /media/ { alias /app/media/; } location / { proxy_pass http://protector-ui:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location ^~ /api/ { proxy_pass http://web:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location ^~ /schema/ { proxy_pass http://web:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location ^~ /swagger/ { proxy_pass http://web:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
Примечание
В случае отсутствия сертификатов и использования обычного HTTP, в файле nginx.conf следует закомментировать строчки, связанные с HTTPS:
listen 443 ssl; ssl_certificate /etc/ssl/certs/ssl-cert/fullchain1.pem; # managed by Certbot ssl_certificate_key /etc/ssl/certs/ssl-cert/privkey1.pem; # managed by Certbot if ($scheme != "https") { return 301 https://$host$request_uri; }
-
Перейдите в директорию, в которой располагается файл docker-compose.yml, и запустите Систему.
docker-compose up -d