Многие пользователи при установке Odoo через Docker на Synology сталкиваются с тем, что страница управления базами данных или страница логина выглядит как «текст на белом фоне» без CSS-стилей. В консоли браузера при этом видны ошибки 500 (Internal Server Error) для всех статических файлов.

Стили css на странице управления базами данных Odoo отсутствуют
Стили css на странице управления базами данных Odoo отсутствуют

В этой статье мы разберем пошаговый путь отладки — от простых прав доступа до поиска конфликтов в модулях.


1. Проблема: «Голый» HTML и ошибка 500

Симптомы:

  • Интерфейс Odoo отображается некорректно (нет стилей).

  • Прямой доступ по IP (например, http://192.168.x.x:8069) работает частично, но менеджер баз данных полностью «развален».

  • В консоли разработчика (F12) десятки ошибок 500 при попытке загрузить bootstrap.css, web.assets_common.js и т.д.

Консоль показывает десятки ошибок 500 при загрузке страницы
Консоль показывает десятки ошибок 500 при загрузке страницы

2. Шаг 1: Правильное монтирование данных

Часто Docker-контейнер хранит данные во внутренних скрытых томах. Для стабильной работы и управления файлами (кэшем стилей) лучше вынести их в обычную папку на Synology.

Что сделать: В файле compose.yaml замените системные тома на прямые пути к папкам вашего NAS:

YAML

services:

  web:

    image: odoo:18.0

    volumes:

      - /volume1/docker/odoo/data:/var/lib/odoo # Папка для сессий и стилей

      - /volume1/docker/odoo/addons:/mnt/extra-addons # Ваши модули

      - /volume1/docker/odoo/config:/etc/odoo # Файл odoo.conf

Если база уже была создана во внутреннем томе, её нужно предварительно скопировать через SSH командой sudo docker cp.

sudo docker cp odoo-web-1:/var/lib/odoo/. /volume1/docker/odoo/data/

3. Шаг 2: Битва с правами доступа (Synology + Docker)

Odoo должна иметь возможность записывать файлы в папку data, чтобы генерировать CSS-кэш.

Настройка через File Station:

  1. ПКМ на папку data → СвойстваРазрешения.

  2. Дайте группе Everyone права на «Чтение и Запись».

  3. Важно: Установите галочку «Применить к данной папке, подпапкам и файлам».

Настройка через SSH (самый надежный метод):

Внутри Docker пользователь Odoo обычно имеет UID 101. Если владельцем файлов в папке data является root, Odoo не сможет создать стили. Выполните в терминале:

sudo chown -R 101:101 /volume1/docker/odoo/data

4. Шаг 3: Конфигурация odoo.conf и Proxy Mode

Если вы заходите в Odoo по прямому локальному IP, а не через домен с HTTPS, настройка proxy_mode может блокировать загрузку стилей.

Что проверить в odoo.conf:

  • Если заходите через IP:8069: установите proxy_mode = False.

  • Если заходите через Reverse Proxy (например, через Synology Application Portal): установите proxy_mode = True.

5. Шаг 4: Главная ловушка Odoo 18 — версии модулей

Это самая неочевидная причина ошибки 500. В версии 18.0 Odoo ввела строгую проверку манифестов. Если в папку addons попал модуль от версии 17.0, менеджер баз данных «упадет» при сканировании списка.

Как найти виновника: Загляните в журнал (лог) контейнера. Если вы видите ошибку: ValueError: Invalid version '17.0.1.0.1'. Modules should have a version in format 18.0.x.y

Решение:

  1. Найдите в папке addons модуль, на который ругается система (например, l10n_ru).

  2. Либо удалите его, если он несовместим.

  3. Либо откройте файл manifest.py внутри этого модуля и вручную исправьте версию на 18.0.1.0.1.

6. Итоговый чек-лист после исправлений

После выполнения всех шагов:

  1. Перезапустите проект в Container Manager.

  2. Очистите кэш браузера (Ctrl + F5).

  3. Если на странице логина вёрстка есть, а в менеджере БД нет — проверьте еще раз лог на наличие ошибок ValueError: Invalid version.


Результат: Odoo получает доступ к файловой системе, корректно считывает манифесты модулей и успешно отдает CSS-стили браузеру.

Успешное отображение стилей
Успешное отображение стилей