DatanodeDocs
Документация платформы

Одна песочница.
Не только для сайтов.

Datanode — изолированное рабочее пространство в браузере. Храните и редактируйте файлы, запускайте Python, Node.js, PHP и Bash, собирайте прототипы, тестируйте Telegram-ботов и публикуйте веб-проекты.

{ }Код и скрипты

Python, Node.js, PHP и Bash в изолированной среде.

Боты и API

Разработка интеграций, обработчиков и автоматизации.

Веб-публикация

Static, PHP, Node.js и Python на собственном домене.

Начало работы · около 2 минут

От Telegram до первой запущенной команды

Весь цикл проходит в браузере. VPS, SSH и ручная настройка Linux для старта не нужны.

  1. 1
    Откройте @datanodehostbot

    Нажмите Start. Бот создаст привязанный аккаунт и выдаст имя и ключ доступа. Это не публичный API-токен.

  2. 2
    Войдите в панель

    Откройте ссылку из бота, введите выданные данные и пройдите проверку Telegram или Authenticator, если она включена.

  3. 3
    Выберите профиль и запустите Sandbox

    Clean подходит для своей структуры; Static, Node.js, Python и PHP создают стартовые файлы. После запуска откроются Files, Editor и Terminal.

  4. 4
    Откройте VS Code в браузере

    Перейдите в Editor. Он работает с теми же файлами, что Files и Terminal, поэтому копировать проект не нужно.

  5. 5
    Запустите Python

    В Terminal выполните python3 --version, затем создайте hello.py и запустите python3 hello.py.

  6. 6
    Добавьте или импортируйте проект

    Загрузите файлы до 50 МБ, создайте их в Files или импортируйте публичный GitHub-репозиторий.

  7. 7
    Опубликуйте сайт, если это нужно

    В Domain выберите Files для Static/PHP или Worker HTTP для Node.js/Python, затем выполните показанную DNS-настройку.

i
Sandbox и публикация — разные вещи

Песочница подходит для кода, утилит и экспериментов. Домен нужен только тогда, когда результат должен открываться как веб-сайт.

Шаблоны

Выберите удобную отправную точку

Clean

Минимальная структура: src/, public/, assets/ и README.

</>Static

Готовые HTML, CSS и JavaScript для лендинга, портфолио или документации.

JSNode.js

Express-проект с маршрутами, API, статикой и package.json.

PyPython

Flask-приложение, requirements, шаблоны, статика и пример теста.

PHPPHP

Классический PHP-проект с публичной папкой, конфигурацией и bootstrap.

Профиль создаёт стартовые файлы, но не ограничивает проект: после создания можно менять структуру и использовать другие установленные инструменты.

Files

Управление проектом без FTP

Файловое дерево показывает содержимое workspace и поддерживает основные операции прямо в браузере.

СозданиеФайлы и вложенные папки
ЗагрузкаОдин или несколько файлов
Git importИмпорт публичного GitHub-репозитория
ОрганизацияПереименование, перемещение и удаление
ПоискБыстрый поиск по дереву
РедактированиеПереход к файлу в Editor
!
Сначала запустите песочницу

При остановленном Sandbox файлы и терминал недоступны. Само содержимое workspace при остановке сохраняется.

Editor

Полноценный редактор в браузере

Editor открывается на editor.datanode.host и работает с тем же workspace, что и Files и Terminal.

  • подсветка синтаксиса и работа с несколькими файлами;
  • поиск и навигация по проекту;
  • единые изменения: сохранённый файл сразу виден в Files и Terminal;
  • быстрое открытие конкретного файла из файлового дерева.
Terminal

Запускайте инструменты в изоляции

Терминал выполняет установленные программы внутри Bubblewrap-контейнера. Рабочая директория доступна как /workspace; временные файлы и кэши — как /tmp.

Примеры команд
python3 --version
node --version
php -v

python3 script.py

python3 -m pip install -r requirements.txt
npm install
Пример вывода runtime
$ python3 --version
Python 3.10.16
$ node --version
v24.13.0
$ php -r 'echo PHP_VERSION;'
8.4.23

Встроенные команды

pwd, cd, ls, tree, cat, head, tail, wc, du, mkdir, touch, rm, rmdir, mv, cp и clear.

!
Команда — не фоновый сервер

Один запуск ограничен по времени примерно 10 секундами и CPU-лимитом. Для ботов, серверов и других постоянных процессов используйте Воркеры.

Воркеры

Постоянные процессы в Sandbox

Воркеры запускают один долгоживущий процесс на workspace, перезапускают его по выбранной политике и сохраняют отдельный вывод. Sandbox должен оставаться запущенным.

ПроцессКоманда запускается в том же Bubblewrap-контуре, что Terminal и SSH.
КонтейнерDockerfile или Containerfile собирается через rootless Podman без доступа к host daemon.
Политика перезапускаon-failure, always или never.
Рабочий каталогОтносительный путь внутри /workspace.
Команда воркера для Telegram-бота
python3 bot.py
HTTP-приложение для собственного домена
# Node.js template
npm install
npm start

# Python template
python3 -m pip install -r requirements.txt
python3 app.py
i
Остановка Sandbox останавливает воркер

После повторного запуска Sandbox откройте Воркеры и запустите процесс снова, если его состояние запуска было сброшено.

Логи

Вывод воркера и события машины

Откройте Ещё → Логи. Вкладка объединяет stdout/stderr воркера и журнал действий Sandbox без смешивания с файлами проекта.

Вывод воркераВывод процесса или сборки контейнера с автоматической прокруткой.
События runtimeЗапуски, остановки, команды, операции с файлами, API, SSH и snapshots.
Фильтры источникаВоркер, Терминал, Файлы, API и SSH.
АвтообновлениеОбновление каждые четыре секунды; его можно отключить.
Снимки

Точки восстановления workspace

Каждый аккаунт может хранить до пяти снимков, скачать ZIP-копию, восстановить workspace или удалить ненужную точку.

  1. 1
    Создайте снимок

    Откройте Ещё → Снимки, укажите понятную метку и нажмите «Создать снимок».

  2. 2
    Восстановите при необходимости

    Воркер будет остановлен, а workspace атомарно заменён проверенным содержимым архива.

  3. 3
    Переустановите зависимости

    node_modules, vendor, виртуальные окружения, runtime-кэши и секретные .env-файлы намеренно не входят в снимок.

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

Доступ

Автоматизация через API и SSH

Публичный API

Создайте токен в Ещё → Доступ. Секрет показывается один раз; каждому токену назначаются отдельные scopes: account, storage, files, execute, logs, workers и snapshots.

Проверка аккаунта через API
export DATANODE_API_TOKEN='dn_live_...'

curl https://datanode.host/api/v1/account \
  -H "Authorization: Bearer $DATANODE_API_TOKEN"

API v1 предоставляет account, storage, files, files/content, execute, logs, worker и snapshots. Отзывайте неиспользуемые токены в разделе Доступ.

SSH по публичному ключу

Добавьте Ed25519, ECDSA P-256 или security-key public key. SSH использует тот же Bubblewrap-контур и workspace, не выдаёт host-root и запрещает forwarding.

Domain

Публикация веб-проекта

Раздел Domain связывает собственный домен со статическими файлами, PHP-проектом или HTTP-приложением, запущенным через Воркеры.

  1. 1
    Выберите источник

    Files публикует Static/PHP из выбранной папки. Worker HTTP направляет запросы в приложение Node.js или Python.

  2. 2
    Подготовьте проект

    Для Files добавьте index.html или index.php. Для Worker HTTP сохраните команду приложения в Воркеры и запустите её.

  3. 3
    Добавьте домен

    Укажите имя без протокола и создайте показанные в панели DNS-записи.

  4. 4
    Проверьте публикацию

    После DNS-проверки откройте домен. Для приложения индикатор HTTP endpoint должен перейти в состояние Ready.

i
Приватный endpoint приложения

В режиме Worker HTTP runtime передаёт DATANODE_HTTP_SOCKET и PORT. Стартовые Node.js и Python-шаблоны используют endpoint автоматически; собственное приложение должно слушать один из этих параметров.

Worker HTTP поддерживает обычные HTTP-запросы. WebSocket upgrade пока не проксируется; размер запроса ограничен 16 МБ, ответа — 32 МБ.

Сценарий

Разработка Telegram-ботов

Sandbox можно использовать для полного цикла работы с ботом: создать проект, установить библиотеку, проверить обработчики и запустить long polling как постоянный worker.

01Python

aiogram, python-telegram-bot или собственный HTTP-клиент.

02Node.js

grammY, Telegraf и другие npm-библиотеки.

03Логика

Команды, клавиатуры, обработка сообщений, API-интеграции и тесты.

Структура Python-бота
telegram-bot/
├── bot.py
├── handlers/
├── requirements.txt
├── .env.example
└── README.md

Безопасное хранение токена

Создайте настоящий .env через Files или Editor, добавьте его в .gitignore и храните в репозитории только .env.example без секретов. Стартовые Node.js и Python-шаблоны загружают .env автоматически.

Секретные .env, .env.local и другие .env.* исключаются из новых snapshots. .env.example, .env.sample и .env.template сохраняются; при восстановлении текущие секретные env-файлы остаются в workspace.

Запускайте бот через Воркеры

Сохраните команду python3 bot.py или node bot.js, выберите политику перезапуска и следите за процессом во вкладке Логи.

Возможности

Что ещё можно делать в Sandbox

АвтоматизацияСкрипты и обработка данных

Небольшие Python-, Node.js- и Bash-задачи, преобразование JSON/CSV, генераторы файлов.

APIКлиенты и интеграции

Проверка HTTP-запросов, прототипирование логики API и обработка ответов.

СборкаСборка фронтенда

npm-зависимости, генерация статики и подготовка файлов к публикации.

ОбучениеЭксперименты и обучение

Небольшие программы, алгоритмы, тесты библиотек и учебные проекты.

КонтентГенераторы и документация

Markdown, статические страницы, документация проекта и портфолио.

GitРабота с репозиториями

Импорт проекта, чтение кода, правки и локальная проверка.

Прозрачность

Как запрос доходит до Sandbox

Архитектура специально остаётся короткой: каждый слой отвечает за одну понятную задачу.

TelegramличностьGatewayTLS и маршрутизацияPanel/API/SSHсессия и доступSandboxBubblewrap или rootless-контейнерStorageworkspace аккаунта
i
Это не VM и не VPS

Terminal, Воркеры, выполнение через API и SSH работают без host-root. Системные каталоги доступны read-only; запись ограничена workspace и runtime-кэшами.

Подробности о сети, логах, удалении и бэкапах опубликованы на странице безопасности. Статус компонентов — на Status.

Важно знать

Границы окружения

/workspace

Постоянные файлы проекта. Они сохраняются между сессиями.

/tmp

Временное изолированное хранилище. Не используйте его для важных данных.

≈ 10 секунд

Типичный предел одной команды Terminal; также действует CPU-лимит.

Лимит аккаунта

Объём workspace зависит от квоты, указанной в вашей панели.

1 воркер

Один независимо управляемый постоянный процесс на workspace.

5 снимков

До пяти ручных точек восстановления; зависимости, кэши и секретные env-файлы исключаются.

  • песочница не имеет прямого доступа к файловой системе хоста;
  • системные директории подключены только для чтения;
  • доступ на изменение ограничен workspace, временной директорией и runtime-кэшами;
  • не публикуйте токены, пароли, приватные ключи и резервные коды.
Помощь

Если что-то не работает

Files или Terminal недоступны

Вернитесь на Main и запустите Sandbox. После перехода в состояние Online обновите нужную вкладку.

Команда завершилась по timeout

Разбейте задачу на короткие шаги. Dev-сервер, long polling или бесконечный цикл запускайте через Воркеры, а не Terminal.

Домен показывает пустой проект

Для Files проверьте выбранную папку и точку входа. Для Worker HTTP проверьте состояние worker, HTTP endpoint и последние логи. В обоих режимах DNS-проверка должна быть завершена.

Сайт не обновился после правки

Сохраните файл в Editor, убедитесь, что редактируется нужный workspace, и выполните жёсткое обновление страницы в браузере.

Воркер не запускается

Проверьте, что Sandbox Online, команда и рабочий каталог существуют. Для режима Контейнер проверьте Dockerfile, затем откройте Логи.

После восстановления не найдены зависимости

Это ожидаемо: снимки исключают каталоги зависимостей и кэши. Повторно выполните npm install, composer install или установку Python requirements.

SSH не подключается

Проверьте, что публичный ключ добавлен в разделе Доступ, а Sandbox находится в состоянии Online.

Datanode Docs

Документация соответствует текущим возможностям платформы.

План развития →