- Python 100%
| data | ||
| docs | ||
| overrides | ||
| .gitignore | ||
| mkdocs.yml | ||
| README.md | ||
| requirements.txt | ||
edu.samcs.ru — образовательный процесс ФПМИ МФТИ
Стек: MkDocs Material (статика) + Sveltia CMS (редактор) + Forgejo (git-хранилище для нетехнических редакторов) + SAMCS SSO (вход через Keycloak).
Сайт: https://edu.samcs.ru/
Git: https://edugit.samcs.ru/samcs-opt/edu.samcs.ru
Редактор: https://edu.samcs.ru/admin/
Структура
.
├── mkdocs.yml — конфиг MkDocs Material (FPMI брендинг, плагины)
├── requirements.txt — Python зависимости (mkdocs-material, mkdocs-macros-plugin)
├── data/
│ └── people.yml — канонические ФИО/контакты для подстановки {{ people.* }}
├── docs/
│ ├── index.md — главная страница
│ ├── getting-started.md — гайд для редакторов
│ ├── regulations/ — публичные регламенты
│ ├── methods/ — методички
│ ├── admin/ — Sveltia CMS entry point
│ └── assets/
│ ├── styles/ — кастомные CSS (FPMI цвета)
│ └── uploads/ — медиа, загруженные через CMS
└── overrides/ — кастомизация Material темы (если нужно)
Локальная разработка (для технических участников)
uv venv && source .venv/bin/activate
uv pip install -r requirements.txt
mkdocs serve # http://127.0.0.1:8000
(Используем uv — быстрее и удобнее pip. Если uv не установлен: curl -LsSf https://astral.sh/uv/install.sh | sh.)
Редактирование (для всех остальных)
→ см. docs/getting-started.md.
Кратко: открой https://edu.samcs.ru/admin/, залогинься через SAMCS SSO, редактируй, save. Каждое сохранение — коммит в этот git-репозиторий с твоим авторством.
Как меняются ФИО руководства / контакты
Один файл — data/people.yml. Меняешь там — обновляется на всех страницах, где использовалось {{ people.head.name }} и т.п. Один git-коммит → весь сайт пересобран.
Деплой (пайплайн)
- Источник правды: этот git-репо в Forgejo.
- Триггер: webhook от Forgejo при каждом push в
main. - Билд: на VM cloud.ru,
mkdocs build→ артефакт в/var/www/edu.samcs.ru/. - Раздача: Caddy
file_server→ https://edu.samcs.ru/.
Подробнее в infra/edu/README.md репо samcs-opt/work.samcs.ru.