tech:server:dokuwiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

tech:server:dokuwiki [2026/07/28 10:10] – created vas_admintech:server:dokuwiki [2026/07/28 11:37] (current) – removed vas_admin
Line 1: Line 1:
-====== 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''. 
- 
-<code> 
-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 
-</code> 
- 
-После прохождения мастера установки контейнер нужно перезапустить — при старте он 
-удаляет ''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 ==== 
- 
-Права **иерархические и накопительные**, выбирается один уровень: 
- 
-<code> 
-none(0) → read(1) → edit(2) → create(4) → upload(8) → delete(16) → admin(255) 
-</code> 
- 
-Существенный нюанс, который легко понять неправильно: ''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|← Сервер]]