Быстрый старт
Разверните зашифрованную изолированную контейнерную среду на собственном сервере. Без облачных аккаунтов и SaaS-зависимостей. Всё работает на оборудовании, которое вы контролируете.
Введение
Ключевые концепции
Репозиторий (repo) — это один зашифрованный файл на диске. Перемещайте его, создавайте резервные копии, форкайте. Это просто файл. При монтировании он становится папкой с выделенным Docker-демоном и данными вашего приложения внутри.
Думайте о репозитории как о USB-накопителе. Это нечто в ваших руках, и когда вы подключаете его, он становится видимым и доступным для системы. Ваши приложения и данные полностью портативны. Подключи и запусти на любой машине у любого облачного провайдера.
Два инструмента, две роли:
- rdc = CLI на вашем ноутбуке (TypeScript, устанавливается глобально)
- renet = оркестратор на сервере (Go-бинарник, управляет демонами/сетями/изоляцией)
- RDC автоматически устанавливает renet во время
config machine setup. Ручная настройка на сервере не требуется.
Архитектура описывает модель безопасности. rdc vs renet объясняет, какой инструмент когда использовать.
1. Установка CLI
curl -fsSL https://www.rediacc.com/install.sh | bash
rdc doctor # Проверка: Node, SSH-ключ, renet, Docker
Windows, Alpine, Arch: см. Установка. Полные системные требования: Требования.
2. Настройка SSH-ключа
rdc подключается по SSH. Сервер должен доверять вашему открытому ключу, прежде чем rdc сможет к нему подключиться.
# Сгенерировать ключ (пропустите, если он уже есть)
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519
# Скопировать открытый ключ на сервер (потребуется ввести пароль)
ssh-copy-id -i ~/.ssh/id_ed25519 user@your-server-ip
# Указать rdc, какой ключ использовать
rdc config ssh set --key ~/.ssh/id_ed25519
Теперь каждая команда rdc аутентифицируется с помощью этого ключа. Без паролей.
3. Добавление сервера
rdc config machine add --name my-server --ip 192.168.1.100 --user muhammed
rdc config machine setup --name my-server # Устанавливает renet + создаёт хранилище данных
Что происходит: сканируется ключ хоста SSH, загружается бинарник renet, на сервере инициализируется зашифрованное хранилище данных. Готово к созданию репозиториев.
Размер хранилища, Ceph RBD, облачные провайдеры: Настройка машины. Ошибки SSH: Устранение неполадок.
4. Файл конфигурации
rdc config show # Удобочитаемая сводка
cat ~/.config/rediacc/rediacc.json # Исходный JSON: машины, репозитории, хранилища, SSH-ключ
Один файл = одно окружение. Скопируйте его на другой ноутбук, и всё готово к работе.
Работа с репозиторием
1. Создание репозитория
rdc repo create --name my-app -m my-server --size 2G # Создать зашифрованный репозиторий на 2 ГБ
Создаёт зашифрованный том, монтирует его и запускает Docker-демон. Репозиторий регистрируется в вашей конфигурации и готов к использованию.
Изменение размера, удаление, валидация: Репозитории.
2. Применение шаблона
rdc repo template list # Показать встроенные шаблоны
rdc repo template apply --name app-postgres -m my-server -r my-app # Развернуть docker-compose.yml + Rediaccfile
Шаблоны предоставляют docker-compose.yml, Rediaccfile и вспомогательные файлы. Без шаблона (или собственного compose-файла) запускать нечего.
3. Запуск репозитория
rdc repo up --name my-app -m my-server # Выполнить Rediaccfile up()
rdc repo list -m my-server # Список всех репозиториев на машине
rdc repo status --name my-app -m my-server # Состояние монтирования, Docker, размер, шифрование
repo up автоматически монтирует при необходимости. Дополнительные флаги не требуются.
4. VS Code
rdc vscode connect -m my-server -r my-app # Открывает VS Code через SSH внутри песочницы репозитория
Вы редактируете файлы внутри зашифрованного тома. docker ps показывает только контейнеры этого репозитория. Сохраняйте, запускайте compose up, итерируйте.
5. rdc repo up vs renet dev up
rdc repo up | renet dev up | |
|---|---|---|
| Где запускаете | На вашем ноутбуке (CLI) | Внутри песочницы VS Code |
| Что делает | SSH -> автомонтирование -> выполнение Rediaccfile up() | Выполняет Rediaccfile up() напрямую |
| Сценарий использования | CI/CD, автоматизация, удалённые операции | Внутренний цикл разработчика |
| Изоляция | Оркестрация снаружи | Уже внутри песочницы |
Демонстрационный процесс: rdc repo template apply -> rdc vscode connect -m my-server -r my-app -> редактирование docker-compose.yml -> renet dev up -> приложение работает -> итерация.
Структура Rediaccfile: Сервисы. Когда какой инструмент использовать: rdc vs renet.
6. Модель изоляции
- Универсальный пользователь (
rediacc): одинаковый UID на каждой машине. Перенесите репозиторий на другой сервер, и владение файлами просто работает. Никаких проблем сchown. - Отдельный Docker-демон для каждого репозитория: каждый репозиторий получает собственный изолированный Docker-демон.
docker psпоказывает только контейнеры ЭТОГО репозитория. - Песочница Landlock + OverlayFS: оболочка VS Code ограничена файловой системой. Вы не можете читать другие репозитории. Записи в
$HOMEиспользуют оверлеи для каждого репозитория.
Как работает изоляция: Архитектура. Жизненный цикл Rediaccfile: Сервисы.
7. Терминал, синхронизация и туннель
Терминал:
rdc term connect -m my-server -r my-app # SSH в песочницу репозитория
rdc term connect -m my-server -r my-app -c "curl localhost:3000" # Выполнить команду и выйти
rdc term connect -m my-server # SSH на машину (без песочницы)
Синхронизация файлов (rsync через SSH):
rdc repo sync upload -m my-server -r my-app --local ./src # Отправить локальные файлы в репозиторий
rdc repo sync download -m my-server -r my-app --local ./backup # Скачать файлы из репозитория
rdc repo sync download -m my-server -r my-app --local ./backup --dry-run # Предварительный просмотр
Туннель (SSH-проброс порта к контейнеру):
rdc repo tunnel -m my-server -r my-app # Автоопределение контейнера и порта
rdc repo tunnel -m my-server -r my-app --port 5432 # Туннель к Postgres
rdc repo tunnel -m my-server -r my-app --port 5432 --local 15432 # Свой локальный порт
Запустите туннель -> откройте localhost:3000 в браузере -> живое приложение с удалённого сервера.
Синхронизация, терминал, подробности VS Code: Инструменты.
Форк и резервное копирование
1. Гранд и форк репозиториев
rdc repo fork --parent my-app -m my-server --tag experiment --up # Мгновенный CoW-клон + запуск
rdc repo list -m my-server # Показывает: my-app (grand) + my-app:experiment (fork)
rdc repo delete --name my-app:experiment -m my-server # Удалить форк, гранд не затронут
Мгновенное клонирование без копирования. CoW (copy-on-write). Микросекунды, данные не копируются. Блоки разделяются, пока одна из сторон не выполнит запись.
Сценарии использования:
- AI / ML: форк продакшен-датасета, запуск эксперимента, отмена или продвижение
- DevOps: форк -> тестирование миграции -> удаление при неудаче, продвижение при успехе
- Резервное копирование: форк = мгновенный снимок, отправка во внешнее хранилище
Жизненный цикл форков, кросс-машинные форки: Репозитории.
2. Отправка на другую машину
# Отправить репозиторий на другую машину
rdc repo push --name my-app -m my-server --to backup-server
# Отправить и автоматически развернуть на целевой машине
rdc repo push --name my-app -m my-server --to backup-server --up
# Отправить с CRIU-чекпоинтом (живая миграция, сохранение состояния памяти)
rdc repo push --name my-app -m my-server --to new-server --checkpoint --up
# Отправить на новую машину (автоматическое создание через облачного провайдера)
rdc repo push --name my-app -m my-server --to new-server --provision linode --up
3. Отправка в облачное хранилище (OneDrive, Google Drive, S3)
# Импортировать конфигурацию rclone как бэкенд хранилища
rdc config storage import --file ~/rclone.conf
# Список доступных хранилищ
rdc storage list
# Отправить репозиторий в облачное хранилище
rdc repo push --name my-app -m my-server --to my-s3-backup
# Список резервных копий в хранилище
rdc repo backup list --from my-s3-backup -m my-server
--to автоматически определяет, является ли цель машиной или бэкендом хранилища. Работает с любым провайдером, поддерживаемым rclone: S3, R2, B2, OneDrive, Google Drive, SFTP и т.д.
4. Получение с удалённого источника
# Получить репозиторий с облачной машины на локальный сервер
rdc repo pull --name my-app -m my-local-server --from cloud-server
# Получить из облачного хранилища
rdc repo pull --name my-app -m my-local-server --from my-s3-backup
# Получить и сразу запустить
rdc repo pull --name my-app -m my-local-server --from my-s3-backup --up
Зачем pull? Ваша локальная машина за NAT. Облако не может отправить данные вам. Но вы можете обратиться к облаку. Pull доставляет репозиторий домой.
Полный цикл: создание на dev -> отправка в облако -> получение на production -> --up. Один репозиторий, любая машина, любое облако.
Планирование, автоматическое резервное копирование, восстановление: Резервное копирование и восстановление.
Прокси и SSL
1. Конфигурация инфраструктуры
rdc config infra set -m my-server # Настроить: базовый домен, публичные IP, диапазоны портов
rdc config infra show -m my-server # Просмотр конфигурации
rdc config infra push -m my-server # Отправить конфигурацию прокси на удалённый сервер
Как работает маршрутизация:
- Traefik автоматически обнаруживает контейнеры через метки
rediacc.service_nameиrediacc.service_port - Маршруты:
{service}-{networkId}.{baseDomain}-> IP контейнера:порт - SSL: Let’s Encrypt через Cloudflare DNS-01 challenge (автопродление, wildcard-сертификаты)
2. Шаблон прокси
rdc repo template apply --name proxy -m my-server -r infra # Развернуть прокси в репозитории
rdc repo up --name infra -m my-server # Запустить Traefik
Теперь Traefik маршрутизирует внешний трафик ко всем репозиториям на этой машине. Каждый контейнер автоматически получает HTTPS-эндпоинт.
# Перейдите на https://my-app.example.com -> маршрутизация к контейнеру
# TCP/UDP-проброс для баз данных:
# rediacc.tcp_ports=3306,5432 -> автоматически выделенные внешние порты
Правила маршрутизации, DNS, настройка TLS: Сеть.
Дальнейшие шаги
- Руководство по миграции - Перенос существующих проектов в репозитории Rediacc
- Мониторинг - Состояние машины, контейнеры, сервисы, диагностика
- Справочник CLI - Полный справочник команд
- Шпаргалка - Быстрый поиск команд
- Устранение неполадок - Решения для распространённых проблем
- Правила Rediacc - Лучшие практики Rediaccfile и чеклист развёртывания