ENERGOSKAN DEVELOPMENT PORTAL · АДМИНИСТРИРОВАНИЕ

Проекты

Раздел описывает создание, хранение, запуск, публикацию, резервное копирование и удаление проектов пользователей.

Назначение

Проект — отдельное рабочее приложение внутри пространства пользователя. По умолчанию пользователи не видят проекты друг друга.

Хранение проектов

/data/vibe-students/<пользователь>/<проект>

Внутри Docker-контейнера тот же каталог доступен как:

/home/student/workspace/<проект>

Создание проекта

При создании проекта портал выполняет следующие действия:

  1. проверяет имя проекта;
  2. выбирает шаблон;
  3. создаёт каталог в Workspace пользователя;
  4. копирует файлы шаблона;
  5. создаёт служебные метаданные;
  6. назначает владельца и права доступа;
  7. показывает проект в панели;
  8. делает его доступным в VS Code.

Метаданные проекта

Основные настройки проекта хранятся в файле .portal-meta.json.

{
  "owner": "admin",
  "publish": {
    "enabled": true
  },
  "visibility": "owner",
  "autosleep": true,
  "port": 3002
}

Шаблоны

Шаблоны проектов находятся в каталоге:

/opt/dev-portal/templates

Шаблон задаёт исходную структуру проекта, технологический стек, стартовые файлы и служебные настройки.

Перед изменением шаблона необходимо:

  1. создать резервную копию;
  2. проверить отсутствие секретов;
  3. создать тестовый проект;
  4. проверить его запуск в контейнере;
  5. убедиться, что существующие проекты не затронуты.

Работа в VS Code

Пользователь открывает проект в собственной среде VS Code. Файлы проекта физически сохраняются на сервере в пользовательском Workspace.

/home/student/workspace

Запуск проекта

Команда запуска зависит от технологического стека проекта. Для Node.js обычно используется:

cd /home/student/workspace/<проект>
npm install
npm start

Проверка процессов внутри контейнера:

docker ps
docker exec -it vibe-<пользователь> sh
ps aux

Публикация

Публикация создаёт доступную для просмотра версию приложения. Это не заменяет полноценный производственный деплой и должна использоваться как контролируемая публикация или предпросмотр.

Публикация должна учитывать:

Автоматическая остановка

Параметр autosleep разрешает автоматически останавливать неактивный проект для экономии ресурсов.

"autosleep": true

Доступ к проектам

Базовый режим — проект виден только владельцу. Совместный доступ должен назначаться явно администратором.

Удаление и архивирование

Проекты не следует удалять безвозвратно сразу. Сначала их необходимо перемещать в архив или каталог удалённых проектов.

/data/vibe-students/<пользователь>/.deleted

Перед удалением необходимо проверить:

  1. владельца проекта;
  2. наличие важных данных и файлов;
  3. наличие Git-репозитория;
  4. наличие резервной копии;
  5. остановку процессов проекта;
  6. отсутствие активной публикации.

Резервное копирование

Для важных проектов рекомендуется хранить отдельную резервную копию и контрольную сумму архива.

tar -czf project-backup.tar.gz /data/vibe-students/<пользователь>/<проект>
sha256sum project-backup.tar.gz > project-backup.tar.gz.sha256

Диагностика

find /data/vibe-students -mindepth 2 -maxdepth 2 -type d
docker ps -a
journalctl -u vibe-panel.service -n 100 --no-pager

Правила администратора

  1. Не изменять пользовательские проекты без резервной копии.
  2. Не хранить файлы .env и токены в Git.
  3. Не запускать два проекта на одном порту.
  4. Не предоставлять доступ к чужому проекту без явного решения.
  5. Перед удалением останавливать процессы и публикацию.
  6. После изменения шаблона создавать тестовый проект.