====== DokuWiki ======
Файловая вики без БД — **источник истины** проекта. Страницы хранятся как
plain-text вики-разметка, что делает их пригодными для чтения и записи моделью
напрямую.
Публичный адрес: ''https://entrypoint.ve-playground.ai.zevgen.com''
(через [[tech:server:nginx|nginx]], внутри — ''127.0.0.1:8080'')
===== Версия и развёртывание =====
^ Параметр ^ Значение ^
| Образ | ''linuxserver/dokuwiki:version-2026-07-14'' |
| Контейнер | ''dokuwiki'' |
| Конфиг и данные | ''/opt/ve-playground/dokuwiki/config'' → ''/config'' |
| Сеть | ''ve-playground'' |
| Порт | ''127.0.0.1:8080:80'' |
Тег зафиксирован осознанно (не ''latest''). Immutable-эквивалент того же образа —
''2026-07-14-ls314''.
docker run -d \
--name dokuwiki \
--network ve-playground \
--restart unless-stopped \
-p 127.0.0.1:8080:80 \
-e PUID=1000 -e PGID=1000 -e TZ=Europe/Amsterdam \
-v /opt/ve-playground/dokuwiki/config:/config \
linuxserver/dokuwiki:version-2026-07-14
После прохождения мастера установки контейнер нужно перезапустить — при старте он
удаляет ''install.php'' (''Existing install found, deleting install.php'' в логе).
Без перезапуска файл остаётся доступен всем.
Настройки, выбранные при установке:
* ACL policy: **Public Wiki** — чтение всем, правка требует входа
* Лицензия: не показывать (внутренняя база знаний, не публикуемый контент)
* Отправка анонимной статистики: отключена
===== Пространства имён =====
^ Namespace ^ Назначение ^
| ''tech:'' | техническая документация, архитектура, эксплуатация |
| ''ai:claude:system-prompts:'' | ролевые промпты |
| ''projects:'' | результаты анализа: находки, алгоритмы, скрипты |
| ''originals:'' | сырые данные, конвенция ''originals:<сущность>:<тип>:<год>:<файл>'' |
| ''sandbox:'' | песочница, содержимое временное |
| ''wiki:'' | встроенная справка DokuWiki, не трогаем |
| ''playground:'' | артефакт мастера установки, рабочей нагрузки не несёт |
===== ACL =====
Пользователь ''claude'' — сервисная учётка, под которой работает модель через
[[tech:server:toolmesh|ToolMesh]].
^ Namespace ^ Право ^ Почему так ^
| ''tech:'' | None | документация + вложения |
| ''projects:'' | Upload | результаты работы, могут включать файлы |
| ''sandbox:'' | Upload | песочница |
| ''originals:qoe:csv:'' | Read | данные кладёт не модель |
| ''ai:claude:system-prompts:'' | **Read** | Для избежания перезаписи роли агента |
==== Уровни прав в DokuWiki ====
Права **иерархические и накопительные**, выбирается один уровень:
none(0) → read(1) → edit(2) → create(4) → upload(8) → delete(16) → admin(255)
Существенный нюанс, который легко понять неправильно: ''delete'' относится
**только к медиафайлам** (перезапись и удаление вложений). Текстовые страницы
удаляются уже на уровне ''edit'' — сохранением пустого содержимого. То есть для
защиты страницы от удаления недостаточно не давать ''delete''.
Файл на диске: ''/config/dokuwiki/conf/acl.auth.php'' (внутри контейнера).
==== Учётные записи ====
^ Логин ^ Назначение ^
| ''vas_admin'' | администратор вики (человек) |
| ''claude'' | сервисная учётка модели, работает через ToolMesh |
| ''evgeniy'' | учетка Евгения |
В ''remoteuser'' указан только ''claude'' — Remote API доступен ровно одной
сервисной учётке, а не всем аутентифицированным пользователям вики.
===== Remote API =====
^ Настройка ^ Значение ^ Что делает ^
| ''remote'' | включено | разрешает Remote API в принципе |
| ''remoteuser'' | ''claude'' | **ограничивает круг пользователей**, кому доступен API |
===== Ограничения по размеру =====
Практический порог одной страницы — примерно 14 КБ кириллицы либо 18 КБ латиницы.
Большие страницы читаются срезами, пишутся через композит ''chunked_save_page''
(см. [[tech:server:toolmesh]]).
''list_pages'' вызывается с ''depth: 0'' для получения полного дерева.
Загрузка медиа ограничена ''client_max_body_size 100M'' в nginx.
===== Известные вопросы =====
Однократно наблюдался сброс ACL к состоянию «только ''@ALL'' и ''@user''» при
сохранившихся пользователях, неймспейсах и настройках ''remote''. Причина не
установлена; контейнер и хост при этом не перезапускались, аудит ToolMesh не
содержит вызовов ''add_acl''/''delete_acl''. Подробности и что проверять при
повторении — [[tech:ops:incidents]].
----
[[tech:server|← Сервер]]