Linux Терминал Сервер
Полноценный Ubuntu-терминал прямо в браузере — не симуляция, не WebContainer, не WSL. Это Docker-контейнер, изолированный по пользователю, работающий на Ubuntu 22.04 с bash, apt, sudo, всем вашим toolchain (Node, Python, Go и т.д.) и предустановленным roqueos-cli для управления десктопом RoqueOS прямо из shell.

Чем он отличается
- 🐧 Настоящий Ubuntu 22.04 с Linux-ядром хоста (не симуляция)
- 👤 Изолирован по пользователю — у каждого логина свой контейнер, постоянная домашняя директория, отдельные процессы
- 🔐 Sudo без пароля внутри контейнера (вы root СВОЕЙ среды, без влияния на других)
- 💾 Постоянная домашняя директория в Docker-томе — находится в
/data/roqueos/users/<your-id>/, переживает сессии - 🛠️ Предустановленные пакеты: Node.js 22, Python 3, Go, Rust toolchain, Git, curl, wget, htop, vim, nano, jq, build-essential
- 🌐 Доступ к сети полный — можно запустить HTTP-сервер, скачать файл, подключиться к внешней БД
- 🤖
roqueos-cliпредустановлен — вызывает десктоп RoqueOS (notifications, открыть apps, создать файл)
Как открыть
Launchpad → Terminal. Первый раз ~5с на spin up контейнера (потом мгновенно). Несколько инстансов OK — открывайте сколько нужно.
Реальные случаи использования
Быстрый скрипт обслуживания:
# Очистить /tmp от старых логов + уведомить когда закончится
find /tmp -name "*.log" -mtime +7 -delete
roqueos-cli notify "Очистка OK" "Логи > 7 дней удалены"Setup нового проекта:
cd ~/projects
git clone https://github.com/your/project
cd project
yarn install
yarn dev & # запустить в фоне
roqueos-cli open-url "http://localhost:5173" # открыть в Roque BrowserCron мониторинга:
crontab -e
# Вставить:
0 9 * * * df -h | awk '$5+0 > 80 {system("roqueos-cli notify \"Диск заполнен\" \"" $6 " " $5 "\"")}'Ad-hoc pipeline:
# Стрим лога сервера + автоматический алерт если появится "ERROR"
docker logs -f roqueos-server 2>&1 | \
grep --line-buffered ERROR | \
xargs -I{} roqueos-cli notify "Ошибка RoqueOS" "{}"roqueos-cli — управление десктопом из shell
Тот же CLI, что использует RoqueClaw. Запустите roqueos-cli --help в Terminal для полного справочника — это источник истины.
6 канонических действий:
roqueos-cli notify <title> <message> # Уведомление на десктоп
roqueos-cli open-app <appId> # Открыть приложение (finder, vscode, browser и др.)
roqueos-cli open-url <url> # Открыть URL в Roque Browser
roqueos-cli create-file <path> # Создать файл, читая содержимое из stdin
roqueos-cli run-terminal <command> # Выполнить команду + вернуть stdout
roqueos-cli show-dialog <message> [--type X] # Модал confirm/alert/infoПрактические примеры:
# Уведомление
roqueos-cli notify "Заголовок" "Сообщение"
# Открыть приложение RoqueOS
roqueos-cli open-app finder
# Открыть URL в Roque Browser
roqueos-cli open-url "https://github.com"
# Создать файл в Finder (читает stdin)
echo "Заметки совещания..." | roqueos-cli create-file "/home/user/notes/reuniao.md"
# Выполнить команду + вернуть вывод как уведомление
roqueos-cli run-terminal "df -h"
# Модал подтверждения (ждёт ответа)
roqueos-cli show-dialog "Удалить 50GB старых логов?" --type confirmСинтаксис использует позиционные аргументы (не флаги
--title/--message). Если ваша версия CLI отличается, обновите черезapt-get install --reinstall roqueos-cliвнутри контейнера.
Полная документация: RoqueClaw + CLI.
Общий файловая система
Файлы в /home/user/ Terminal — ТЕ ЖЕ, что появляются в Finder и VS Code. Всё в синхронизации:
- Сохранить код в VS Code → появляется в
lsTerminal - Создать папку в Finder →
cdработает в Terminal wgetскачивает в Terminal → появляется в Finder в Roque Browser

Ресурсы контейнера
| Ресурс | По умолчанию |
|---|---|
| Память RAM | 2 GB (настраивается через env CONTAINER_MEMORY_LIMIT) |
| CPU | 2 ядра общие |
| Диск | Выделенный Docker-том |
| Сеть | Bridge roqueos-network (доступ к другим контейнерам сервера) |
| Образ | roqueribeiro1988/roqueos-server-ubuntu:latest (Ubuntu 22.04) |
Горячие клавиши xterm.js
| Сочетание | Действие |
|---|---|
Ctrl+Shift+C | Копировать выделение |
Ctrl+Shift+V | Вставить |
Ctrl+Shift++ / Ctrl+- | Увеличить/уменьшить размер шрифта |
Ctrl+Shift+F | Поиск в буфере |
Ctrl+L (bash) | Очистить терминал |
Ctrl+D | Logout / закрыть shell |
Ctrl+R | Обратный поиск по истории bash |
Touch input на мобильных поддержан нативно (xterm.js определяет).
Персистентность между сессиями
/home/user/ (и любые подпапки) персистируются между закрытиями приложения, рестартами контейнера, апдейтами RoqueOS Server (install.sh --update). Теряется только если вручную удалить Docker-том roqueos-userdata-<uid> или пересоздать сервер с нуля (docker compose down -v).
Установка дополнительных пакетов
sudo apt update
sudo apt install -y <package>Пакеты остаются в контейнере вашего пользователя — другие пользователи того же сервера их не видят. Хорошая практика: записать в /home/user/.bashrc какие пакеты установлены, чтобы переустановить, если контейнер однажды будет пересоздан.
Разница с xterm напрямую / WSL
| Аспект | RoqueOS Terminal | WSL / xterm локальный |
|---|---|---|
| Setup | 0с (уже запущен) | Установить Linux + dist + setup |
| Доступ | Любой залогиненный браузер | Только ваша машина |
| Multi-device | ✅ телефон видит ту же home | ❌ |
| Персистентность | Docker-том сервера | Локальный диск |
| Изоляция | Контейнер per-user | Общая |
| Производительность | Сервер↔браузер задержка | Нативно |
См. также
- Интегрированный VS Code — code-server с extensions, Git, debugger
- App Store Docker — установить Plex/Nextcloud/etc одним кликом
- Containers Manager — управлять Docker-контейнерами через UI
- RoqueClaw + CLI — автоматизировать dev-задачи через естественный язык