Быстрый старт
Первое окружение поднимается за несколько команд: опишите его во flake и отправьте через mev — платформа создаст изолированный контейнер с маршрутизацией по HTTPS, постоянным хранилищем и автоматическим засыпанием.
Что нужно заранее
- Оператор зарегистрировал ваш SSH-ключ в реестре платформы и выдал имя пользователя (например,
alice). Без этого пуш будет отклонён. - На локальной машине установлен
mev, и известен хост платформы — его передают флагом--host, переменнойMEV_HOSTили файлом/etc/mev/host.
Шаг 1. Описать окружение
Создайте каталог myenv/ с файлом flake.nix:
{
description = "Моё окружение на maximaster.dev";
# Входов нет: spec — это только данные, поэтому flake вычисляется
# под --pure-eval --restrict-eval.
outputs = _: {
mev = {
name = "alice/myenv"; # <owner>/<slug>
domains = {
"alice-myenv.dev.maximaster.ru" = { port = 80; };
};
users = [ "alice" ];
idle = "30m";
quota = "10G";
};
};
}Поле name задаёт явный <owner>/<slug>. Владелец (alice) должен быть в списке users и совпадать с именем того SSH-ключа, которым вы подключаетесь. Числовой идентификатор платформа выдаёт сама — указывать его во flake не нужно.
Полное описание опций — в справочнике окружения.
Шаг 2. Отправить flake
mev ./myenv --host dev.maximaster.rumev упаковывает каталог в tar-архив и передаёт его на хост по SSH. Там mevd проверяет схему, авторизует запрос и запускает согласование: выделяет id, создаёт ZFS-датасет с квотой, собирает образ контейнера через extra-container и регистрирует маршруты в Traefik.
Окружение создаётся остановленным (autoStart = false). Повторный mev push применяет изменения, не трогая данные.
Шаг 3. Открыть окружение по HTTPS
Сделайте первый HTTP-запрос к объявленному домену:
curl -fsS https://alice-myenv.dev.maximaster.ru/Traefik направит запрос на активатор пробуждения, который:
- Сверится с реестром (
/var/lib/env-wake/registry.json). - Запустит
systemctl start container@env<id>. - Дождётся готовности приложения.
- Проксирует запрос на адрес контейнера (
100.64.x.x:<port>).
Первый запрос идёт медленнее — это холодный старт. Дальше окружение отвечает мгновенно, пока снова не заснёт.
Шаг 4. Доступ по SSH
К любому окружению ведёт единый диспетчер хоста. Добавьте в ~/.ssh/config:
Host *.dev.maximaster.ru
ProxyCommand ssh proxy@dev.maximaster.ru %h
User aliceUser — ваше имя в реестре ключей платформы. Без него ssh подставит имя локального пользователя, и диспетчер откажет во входе.
Затем:
ssh alice-myenv.dev.maximaster.ruЕсли окружение спит, диспетчер разбудит его через управляющий сокет активатора ещё до установки соединения.
Шаг 5. Засыпание и пробуждение
Окружение засыпает само после простоя (idle, по умолчанию 30m). Любой HTTP-запрос или SSH-подключение будит его незаметно.
Проверить состояние:
mev status alice/myenvПосмотреть все свои окружения:
mev listДальше
- Описание окружения — полный справочник опций
mev: домены, лимиты ресурсов, секреты, бэкенд, режимы пробуждения. - CLI mev — все команды клиента.