Встановлення та налаштування Wagtail (Django)

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Встановлення та налаштування Wagtail (Django)
Середня
від 1 робочого дня до 3 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Встановлення та налаштування Wagtail (Django)

Wagtail вимагає Python 3.8+, Django 4.2+. Для production — PostgreSQL, Redis (кеш/черга), Gunicorn/uWSGI, Nginx.

Створення проекту

pip install wagtail
wagtail start myproject
cd myproject
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

requirements.txt

# requirements/base.txt
wagtail>=5.2
django>=4.2
psycopg2-binary>=2.9
pillow>=10.0
django-storages[boto3]>=1.14
django-redis>=5.4
gunicorn>=21.0
whitenoise>=6.5
wagtailmetadata>=4.0
wagtail-color-panel>=1.4

# requirements/dev.txt
-r base.txt
django-debug-toolbar>=4.2
django-extensions>=3.2
factory-boy>=3.3

# requirements/production.txt
-r base.txt
sentry-sdk>=1.35

settings/production.py

from .base import *
import os

DEBUG = False
SECRET_KEY = os.environ['SECRET_KEY']

ALLOWED_HOSTS = [os.environ.get('DOMAIN', 'mysite.com')]

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME':     os.environ['DB_NAME'],
        'USER':     os.environ['DB_USER'],
        'PASSWORD': os.environ['DB_PASSWORD'],
        'HOST':     os.environ.get('DB_HOST', 'localhost'),
        'PORT':     os.environ.get('DB_PORT', '5432'),
        'CONN_MAX_AGE': 60,
    }
}

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': os.environ.get('REDIS_URL', 'redis://localhost:6379/1'),
        'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient'},
        'TIMEOUT': 3600,
    }
}

# Статика через WhiteNoise або S3
STORAGES = {
    'default': {
        'BACKEND': 'storages.backends.s3boto3.S3Boto3Storage',
    },
    'staticfiles': {
        'BACKEND': 'whitenoise.storage.CompressedManifestStaticFilesStorage',
    },
}

AWS_STORAGE_BUCKET_NAME = os.environ['AWS_BUCKET']
AWS_S3_REGION_NAME      = os.environ.get('AWS_REGION', 'eu-west-1')
AWS_S3_CUSTOM_DOMAIN    = os.environ.get('CDN_DOMAIN')

WAGTAILIMAGES_MAX_IMAGE_PIXELS = 128 * 1024 * 1024  # 128MP

Docker Compose

version: '3.8'
services:
  web:
    build: .
    command: gunicorn myproject.wsgi:application --bind 0.0.0.0:8000 --workers 3
    volumes:
      - .:/app
    env_file: .env
    depends_on:
      - db
      - redis

  db:
    image: postgres:15
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: myproject
      POSTGRES_USER: myproject
      POSTGRES_PASSWORD: secret

  redis:
    image: redis:7-alpine
    volumes:
      - redis_data:/data

  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./staticfiles:/var/www/static

volumes:
  postgres_data:
  redis_data:

Dockerfile

FROM python:3.12-slim
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1
WORKDIR /app
RUN apt-get update && apt-get install -y libpq-dev gcc && rm -rf /var/lib/apt/lists/*
COPY requirements/production.txt .
RUN pip install --no-cache-dir -r production.txt
COPY . .
RUN python manage.py collectstatic --noinput
EXPOSE 8000

Команди управління

python manage.py migrate
python manage.py collectstatic
python manage.py rebuild_references_index    # індекс зв'язків
python manage.py wagtail_update_image_renditions  # пересоздання трансформацій
python manage.py search_garbage_collect      # очистка пошуку

Встановлення Wagtail з PostgreSQL та S3 для production — 4–8 годин.