Обзор платформы
Simple Env - общая инфраструктура, на которой держатся все курсы факультета (Django, Enterprise
и остальные)
Логин один и тот же для любого курса, сервисы - тоже общие, эта страница - краткая карта: что
где лежит и зачем
Теория
Что такое Simple Env
Кластер, на котором развёрнуты сервисы, общие для всех курсов: git-хостинг, портал с заданиями
и баллами, доска задач, отчёты о качестве кода
Сдача заданий и автогрейдинг у любого курса устроены одинаково - через эти сервисы
Сервисы, с которыми работает студент
| Сервис | Адрес | Для чего |
|---|---|---|
| Homarr | home.simple-env.site | Единая домашняя страница - плитки-ссылки на остальные сервисы |
| Gitea | gitea.simple-env.site | Репозитории, Pull Request, автогрейдинг через Actions |
| Classroom | classroom.simple-env.site | Задания, рубрика по каждому заданию, баллы |
| Planka | planka.simple-env.site | Kanban-доска команды/проекта |
| SonarQube | sonarqube.simple-env.site | Отчёт о качестве кода - линт, покрытие тестами, code smells |
Как именно сдавать код через Gitea (токен вместо пароля, автогрейдинг на push) - разобрано в курсовой теме «Git и Gitea»
Что работает "за кадром"
Кроме сервисов из таблицы, в платформе есть автоматизация (например, n8n - шлёт уведомления о
результатах грейдинга), Nexus (реестр Docker-образов и кеш PyPI/npm для CI) и Keycloak - сервис
единого входа
Заходить в них напрямую не нужно - они работают сами, без участия студента
Когда появится командный проект
Позже, когда сформируют команды, добавится ещё один пайплайн - деплой самого проекта
На каждый git push в проектном репозитории: прогон тестов → анализ SonarQube → сборка
Docker-образа → сканирование уязвимостей (Trivy) → деплой в кластер → приложение доступно по
https://project-NN.simple-env.site
Это отдельный пайплайн, не тот же самый, что для индивидуальных заданий из примера выше
Подробности - в «Сервисы платформы» и разделе для проектной части
Единый вход
Все сервисы из таблицы используют один и тот же аккаунт - логин и пароль одни на всё, заходить
в каждый сервис отдельно и повторно вводить пароль не нужно
Как устроен сам первый вход и смена пароля - в статье «Первый вход»
Примеры
Типичный путь задания от постановки до балла:
Classroom (задание, рубрика)
↓
Работаешь в своей IDE, коммитишь
↓
git push → Gitea (репозиторий, Actions)
↓
Actions прогоняет автогрейдер → балл уходит в Classroom
↓
Смотришь балл и разбор ошибок - в Classroom
Смотришь качество кода (если курс это проверяет) - в SonarQube
Ведёшь задачи команды - в Planka
Проверь себя
1. Нужен ли отдельный логин/пароль для каждого сервиса платформы?
Нет - один аккаунт (единый вход) работает во всех сервисах платформы
2. Где смотреть баллы за задания?
В Classroom (classroom.simple-env.site) - там же видна рубрика по каждому заданию
3. Что делает Homarr?
Это единая домашняя страница - плитки-ссылки на остальные сервисы платформы, чтобы не помнить адреса всех сервисов по отдельности
4. Нужно ли студенту самому заходить в n8n или Keycloak?
Нет - n8n работает в фоне (автоматизация уведомлений), а Keycloak - это то, что происходит "под капотом" при входе в любой другой сервис, отдельно заходить в него не нужно
5. Пайплайн для индивидуальных заданий и пайплайн для командного проекта - это одно и то же?
Нет - у индивидуальных заданий пайплайн проще (Gitea Actions прогоняет тесты и шлёт балл в Classroom), а у командного проекта - отдельный, с сборкой Docker-образа и деплоем в кластер
Итог / чек-лист
- Simple Env - общая инфраструктура для всех курсов, сервисы и вход одинаковы независимо от курса
- Сервисы студента - Homarr (домашняя страница), Gitea (репозитории и автогрейдинг), Classroom (задания и баллы), Planka (kanban), SonarQube (качество кода)
- Вход единый - один аккаунт на все сервисы (подробнее - «Первый вход»)
- n8n, Nexus и Keycloak работают в фоне - отдельно заходить в них не нужно
- У командного проекта (появится позже) - свой пайплайн деплоя, отдельный от автогрейдинга индивидуальных заданий
Дополнительно
- «Первый вход» - как получить логин/пароль и зайти в сервисы платформы в первый раз
- «Git и Gitea» - токен вместо пароля для git, как устроен автогрейдинг на push
- «Сервисы платформы» - подробный разбор каждого сервиса (Quality Gate в SonarQube, колонки в Planka, кеш Nexus и т.д.)