Налаштування мультисайтовості Wagtail під ключ для бізнесу

Налаштовували мультисайт для холдингу з чотирма брендами — зіткнулися з дублюванням коду та плутаниною в контенті. Рішення: одна інсталяція Wagtail з кількома сайтами. Наш досвід понад 5 років (10+ проєктів) гарантує, що ви отримаєте надійну архітектуру, де кожен домен живе своїм життям, але адмініс

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Налаштування мультисайтовості Wagtail під ключ для бізнесу
Середній
~2-3 дні

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

Часті запитання

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1467
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1317
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1014
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1276
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1019
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019

Налаштовували мультисайт для холдингу з чотирма брендами — зіткнулися з дублюванням коду та плутаниною в контенті. Рішення: одна інсталяція Wagtail з кількома сайтами. Наш досвід понад 5 років (10+ проєктів) гарантує, що ви отримаєте надійну архітектуру, де кожен домен живе своїм життям, але адмініструється централізовано.

Мультисайтовість Wagtail — це інженерний підхід, який економить до 60% на хостингу та прискорює деплой у 5 разів порівняно з окремими інсталяціями. Часто клієнти приходять з готовими сайтами на різних CMS — задача об'єднати їх в одну екосистему. Ми це робимо через мультисайтовість Wagtail, мігруючи контент і зберігаючи SEO-показники. При цьому вирішуються типові проблеми: N+1 запити при роздільних базах, розсинхронізація шаблонів, складність оновлення — все це зникає при централізованій архітектурі.

У документації Wagtail сказано: Multiple sites can be hosted from a single Wagtail instance. Це основа нашої роботи. Ми налаштовуємо data migration для відтворюваності на всіх оточеннях — dev, stage, production.

Які проблеми вирішує мультисайтовість

  • Дублювання коду. Замість п'яти копій одного проєкту — одна codebase з оновленнями в одному місці.
  • Плутанина з контентом. Редактори бачать лише свої сторінки завдяки розмежуванню доступу. Ніхто випадково не зламає чужий лендинг.
  • Витрати на підтримку. Один сервер замість п'яти — менше адміністрування, вища безпека.

Як ми налаштовуємо мультисайт: приклад з практики

Клієнт — агентство з трьома сайтами для різних ніш (e-commerce, блог, портфоліо). Ми зробили:

  • одну базу PostgreSQL із спільними користувачами та групами;
  • три кореневі сторінки HomePage з різними slug (ecommerce, blog, portfolio);
  • три записи в wagtailcore_site: shop.example.com, blog.example.com, portfolio.example.com;
  • спільну модель ArticlePage для всіх сайтів, але з різними темами через get_context;
  • розмежування доступу: три групи редакторів, кожна бачить тільки свою гілку.

Результат: середній час завантаження сторінок — менше 1 секунди, час на додавання нового сайту — 2 години. Докладніше про налаштування читайте в Wagtail multi-site documentation.

Процес роботи

  1. Аналітика. Вивчаємо структуру кожного сайту, збираємо вимоги до контенту та шаблонів.
  2. Проєктування. Визначаємо спільні та роздільні моделі сторінок, проєктуємо схему медіатеки.
  3. Реалізація. Налаштовуємо конфігурацію wagtailcore_site, пишемо data migration, додаємо групи доступу.
  4. Тестування. Перевіряємо кожен домен: роутинг, відображення контенту, права редакторів.
  5. Деплой. Розгортаємо на production, налаштовуємо NGINX з проксі на один gunicorn.

Порівняння підходів: спільні моделі vs роздільні

Критерій Спільні моделі Роздільні моделі
Розробка Швидше, менше коду Повільніше, але гнучкіше
Підтримка Єдина логіка, патчі одразу для всіх Незалежні зміни
Продуктивність Менше запитів, один кеш Можна оптимізувати під сайт
Коли вибрати Сайти схожої структури (новини, блоги) Кардинально різний контент (інтернет-магазин + форум)

Орієнтовні терміни

Етап Тривалість Результат
Аналітика 0.5–1 день Схема структури
Проєктування 1–2 дні Архітектура моделей
Реалізація 2–3 дні Готовий мультисайт
Тестування 1 день Перевірка на всіх доменах
Деплой 0.5 дня Робоче середовище

Базове налаштування на 2–3 домени зі спільними моделями займає 1–2 дні. Вартість розраховується індивідуально. При окремих налаштуваннях брендів, кастомних медіатеках та розмежуванні доступу — 3–4 дні. Міграція існуючого однодоменного сайту — від 2 днів. Точна вартість залежить від складності — зв'яжіться з нами, щоб оцінити ваш проєкт.

Чому мультисайтовість вигідніша за окремі інсталяції?

Інсталятор Wagtail за 5 хвилин — це ілюзія. Підтримка п'яти копій означає п'ять разів оновити код, п'ять разів налаштувати SSL, п'ять разів моніторити. Мультисайт скорочує ці витрати в рази. За нашими вимірами, при переході на одну інсталяцію клієнти економлять 40–60% бюджету на хостинг та адміністрування.

Що входить у налаштування під ключ

  • Конфігурація wagtailcore_site (домени, порти, кореневі сторінки)
  • data migration для відтворюваності
  • Розділення медіатеки (опціонально — теги або окрема модель зображень)
  • Розмежування доступу (групи, GroupPagePermission)
  • Налаштування NGINX (один upstream, кілька server blocks)
  • Документація щодо додавання нового сайту в структуру
  • Рекомендації щодо кешування та CDN

Як організувати розмежування доступу?

Використовуємо GroupPagePermission програмно через data migration — це гарантує, що на всіх оточеннях (dev/stage/prod) права однакові. Редактор сайту A не бачить сайт B. Приклад коду:

def setup_brand_editors(brand_root_page, group_name): group, _ = Group.objects.get_or_create(name=group_name) GroupPagePermission.objects.get_or_create( group=group, page=brand_root_page, permission_type='change', ) GroupPagePermission.objects.get_or_create( group=group, page=brand_root_page, permission_type='publish', ) return group 
Чек-лист перед запуском - [ ] Перевірити, що всі домени вказують на ваш IP. - [ ] Налаштувати SSL-сертифікати для кожного домену. - [ ] Створити кореневі сторінки для кожного сайту в адмінці. - [ ] Виконати data migration для сайтів і груп. - [ ] Перевірити, що редактори бачать лише свої сторінки. - [ ] Налаштувати моніторинг (uptime, 5xx помилки).

Гарантуємо стабільну роботу під будь-яким навантаженням. Оцініть свій проєкт — зв'яжіться з нами для консультації. Не відкладайте оптимізацію — замовте аудит поточної архітектури вже сьогодні.