CLI, автоматизация и API
MQXX CLI позволяет зарегистрировать аккаунт, создать репозиторий и настроить SSH — всё одной командой из любого терминала. Без предварительной настройки ключей.
mqxx CLI
Регистрация, создание репозитория и управление прямо из терминала. Одна команда — полный онбординг.
CI/CD Pipeline
SSH-команды и REST API для автоматического создания репозитория при деплое нового сервиса.
REST API
Полноценный HTTP API для управления репозиториями, синхронизацией и настройками.
Безопасность
Magic-link аутентификация, HMAC-токены, PoW-проверка. Никаких паролей.
Shell-скрипты
Инициализация репо через bash без веб-интерфейса. Поддержка SSH-ключей из файла.
Установка mqxx CLI
Единый bash-скрипт curl | sh для Linux/macOS и готовые .exe бинарники для Windows.
Установка mqxx CLI
CLI-инструмент для управления MQXX из командной строки. Работает на Linux, macOS и Windows.
# Linux / macOS (автоустановка)
curl -sSL https://mqxx.ru/install.sh | sh
# Или скачайте бинарник напрямую:
# https://mqxx.ru/releases/latest/mqxx-linux-amd64
# https://mqxx.ru/releases/latest/mqxx-darwin-arm64
# https://mqxx.ru/releases/latest/mqxx-windows-amd64.exe
# Проверка установки
mqxx --version # mqxx 2.0.0Регистрация и создание репозитория
Если аккаунта нет — он создаётся автоматически. Если есть — создаётся только репозиторий. Всё через одну команду, без предварительной настройки ключей.
# Создать репозиторий (регистрация при необходимости)
mqxx init myrepo --email you@example.com
# SSH-ключ подхватится автоматически из ~/.ssh/id_ed25519.pub
# или укажите явно:
mqxx init myrepo --email you@example.com --ssh-key ~/.ssh/id_rsa.pub
# Импорт существующего репозитория (GitHub/GitLab/etc)
mqxx import my-project --url https://github.com/user/repo.git
# Только регистрация (без создания репо)
mqxx register --email you@example.com
- CLI отправляет запрос на сервер с email и именем репо
- На email приходит ссылка подтверждения (15 мин)
- После клика — аккаунт создан, репо инициализирован, SSH ключ добавлен
- CLI автоматически делает
git initиgit remote add origin
$ mqxx init myapi --email dev@example.com
┌──────────────────────────────────────────┐
│ MQXX Init │
│ Repository: myapi │
│ Email: dev@example.com │
│ Server: mqxx.ru │
└──────────────────────────────────────────┘
🔑 Using SSH key: ~/.ssh/id_ed25519.pub
✉️ Email sent to dev@example.com
(Новый аккаунт — будет создан после подтверждения)
⏳ Waiting for confirmation....
✅ Confirmed!
🔗 Git remote 'origin' added
🚀 Remote URL:
ssh://git@mqxx.ru:2222/dev/myapi.git
git push -u origin masterСписок репозиториев
# После initы сессия сохраняется в ~/.config/mqxx/mqxx_ru.json
mqxx list
# Вывод:
# 📦 Repositories for @dev:
# myapi 2.3KB ssh://git@mqxx.ru:2222/dev/myapi.git
# backend 14.7MB ssh://git@mqxx.ru:2222/dev/backend.gitИнформация о сервере
mqxx info
# ┌──────────────────────────────┐
# │ Server Info │
# │ Host: mqxx.ru │
# │ SSH Port: 2222 │
# │ Git URL: ssh://git@mqxx.ru:2222/{owner}/{repo}.git
# └──────────────────────────────┘Переменные окружения
# Сохраните, чтобы не вводить каждый раз
export MQXX_SERVER=mqxx.ru
export MQXX_EMAIL=you@example.com
export MQXX_SSH_KEY=~/.ssh/id_ed25519.pub
export MQXX_CLI_TOKEN=<token из ~/.config/mqxx/mqxx_ru.json>Создание репозитория через SSH (без CLI)
Если CLI не установлен — репозиторий можно создать SSH-командой (требуется добавленный ключ):
ssh -p 2222 git@mqxx.ru init <repo-name>Облачная синхронизация (Cloud Sync)
MQXX поддерживает автоматическое резервное копирование ваших репозиториев в облако. Бекап создается в виде сжатого архива .tar.gz, полностью сохраняя историю коммитов.
Все архивы сохраняются в корневую папку /MQXX на вашем Яндекс Диске. Структура:
/MQXX/username/project.git.tar.gzОсобенности:
- Авто-создание папок: Система сама создаст нужные каталоги на Диске.
- Отказоустойчивость: Если настроено несколько облаков (например, S3 и Яндекс), сбой одного не помешает загрузке в другое.
- Управление в профиле: Вы можете видеть статус синхронизации и переходить к настройкам прямо со страницы своего профиля.
REST API
Все операции доступны через HTTP API. Аутентификация — через cookie-сессию после входа на mqxx.ru.
# ── Аутентификация ─────────────────────────────────────────────
# Запросить magic link
POST /api/auth/request
{"email": "you@example.com"}
# Проверить сессию
GET /api/auth/session
# Выход
POST /api/auth/logout
# ── CLI сессии ──────────────────────────────────────────────────
# Инициировать CLI сессию (создать аккаунт + репо)
POST /api/cli/init
{"email": "you@...", "repo_name": "myrepo", "ssh_pub_key": "ssh-ed25519 AAAA..."}
# Опрашивать статус
GET /api/cli/poll/:token
# Информация о сервере
GET /api/cli/info
# Список репозиториев
GET /api/cli/repos (X-CLI-Token: <token>)
# ── Репозитории ─────────────────────────────────────────────────
GET /api/repositories # Список (auth required)
POST /api/repositories # Создать {"name": "myrepo"}
POST /api/repositories/import # Импорт {"name": "...", "url": "..."}
DELETE /api/repositories/:owner/:name # Удалить
PATCH /api/repositories/:owner/:name/visibility # Видимость
# ── Просмотр кода ───────────────────────────────────────────────
GET /api/repositories/:owner/:name/files?path=/&ref=main
GET /api/repositories/:owner/:name/content?path=README.md&ref=main
GET /api/repositories/:owner/:name/commits
GET /api/repositories/:owner/:name/branches
GET /api/repositories/:owner/:name/archive?format=zip
# ── Синхронизация ───────────────────────────────────────────────
# Запустить ручную синхронизацию репозитория
POST /api/repositories/:owner/:name/sync
# Статус подключения (активно/провайдеры)
GET /api/sync/status
# Отключить провайдера
POST /api/sync/disconnect
# ── Комьюнити ───────────────────────────────────────────────────
# Список тредов обсуждений
GET /api/community/threads
# Создать новый тред (auth required)
POST /api/community/threads
{"title": "...", "content": "..."}
# ── Статус ──────────────────────────────────────────────────────
GET /api/status # Общая статистика (repo count, users)
GET /api/health # Проверка работоспособности
GitHub Actions — зеркало на MQXX
name: Mirror to MQXX
on:
push:
branches: [main]
jobs:
mirror:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.MQXX_SSH_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -p 2222 mqxx.ru >> ~/.ssh/known_hosts
- name: Push to MQXX
run: |
git remote add mqxx ssh://git@mqxx.ru:2222/${{ github.repository }}.git
git push mqxx main --forceBash-скрипт деплоя нового сервиса
#!/bin/bash
set -e
SERVICE="my-api"
MQXX_HOST="git@mqxx.ru"
MQXX_PORT="2222"
echo "🚀 Создание репозитория на MQXX..."
ssh -p $MQXX_PORT $MQXX_HOST init $SERVICE
echo "📦 Инициализация локального репо..."
git init .
git remote add origin ssh://$MQXX_HOST:$MQXX_PORT/$SERVICE.git
echo "📤 Первый коммит..."
git add .
git commit -m "feat: initial commit"
git push -u origin master
echo "✅ Готово! Репозиторий $SERVICE создан."