MarshHub Cloud — контейнерный хостинг

Статик-хостинг — это прошлый уровень.
Теперь запускай настоящие приложения.

Грузишь любой проект с Dockerfile — Python, Node.js, Go, что угодно. Собирается, запускается в изолированном контейнере, живёт на своём адресе https://имя.marsdot.uz с автоматическим HTTPS.

bash — ~/my-python-app
$ marshub cloud deploy
Упаковываем проект...
Собираем контейнер...
✓ Готово!
Адрес:  https://my-python-app.marsdot.uz

Как работает

Три шага от кода до живого сайта

Не нужны сервера, конфиги Nginx, SSL-сертификаты и CI/CD. Весь инфраструктурный слой уже сделан за тебя.

01 — добавь Dockerfile
Dockerfile в корне проекта

Любой язык — Python, Node.js, Go, Rust, PHP. Приложение должно слушать порт из переменной $PORT. Больше никаких требований.

FROM python:3.12-slim
02 — одна команда
Запусти деплой

В папке с проектом — одна команда. MarshHub упаковывает код, собирает образ, запускает контейнер с лимитами ресурсов.

marshub cloud deploy
03 — готово
Твой адрес готов

Получаешь постоянный адрес имя.marsdot.uz с HTTPS. Можно поделиться, сдать проект, показать на демо.

https://имя.marsdot.uz

Возможности

Всё нужное — без лишних сложностей

Инфраструктура на Docker + Caddy, своя серверная Mars — никаких зарубежных облаков, никаких сюрпризов с оплатой.

Автоматический HTTPS

Каждый поддомен получает TLS-сертификат автоматически. Никаких certbot, никаких Let's Encrypt вручную.

Изолированные контейнеры

Каждое приложение — в своём контейнере с лимитами CPU и памяти. Твой дашборд не влияет на чужой бот.

Любой язык, любой стек

Есть Dockerfile — значит запустится. Python Flask, Node.js Express, FastAPI, Go HTTP, Bun — всё что умеет слушать порт.

Живые логи

Смотришь логи в реальном времени через CLI. Что упало, почему не стартует — видно сразу без SSH и sudo.

Рестарт одной командой

Задеплоил обновление или что-то зависло — marshub cloud restart сразу помогает.

Вход через Mars ID

Тот же Telegram-логин, что и везде в Mars. Никаких новых паролей. Доступ привязан к аккаунту ученика или учителя.

Требования

Один Dockerfile — и всё

MarshHub Cloud не диктует фреймворк или язык. Единственное требование — приложение читает переменную окружения PORT и слушает на ней.

Dockerfile в корне — MarshHub найдёт его сам
Слушай $PORT — не хардкодь 5000 или 8080, читай из env
Любой язык — если Docker умеет собрать, Cloud умеет запустить
Публичный образ — или собирай с нуля, оба варианта работают
Читать документацию →
Dockerfile
# Python Flask — пример минимального Dockerfile
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
# Читаем PORT из переменной окружения
ENV PORT=8000
CMD ["python", "-m", "flask", "run",
     "--host=0.0.0.0", "--port=$PORT"]

CLI-команды

Полный контроль из терминала

Пять команд — и больше ничего не нужно. Деплой, список, логи, рестарт, удаление.

marshub cloud — справка
$  marshub cloud deploy
  [--name имя]
Задеплоить текущую папку. Если не указать --name, имя сгенерируется автоматически.
$  marshub cloud ls Список всех твоих запущенных приложений — имя, статус, адрес.
$  marshub cloud logs <имя> Логи приложения в реальном времени (stderr + stdout).
$  marshub cloud restart <имя> Перезапустить контейнер без переборки образа.
$  marshub cloud rm <имя> Остановить и удалить приложение.

Уровни MarshHub

Cloud открывается после статик-уровня

MarshHub — это прогрессия. Сначала учишься публиковать HTML-сайты, потом переходишь к настоящим серверным приложениям.

Предыдущий уровень
Static Hosting

Публикуй HTML, CSS, JS файлы. Командой marshub deploy — сайт живёт на имя.marshub.uz. Это твоя первая публикация.

Нужно опубликовать хотя бы один статический сайт
Текущий уровень
Cloud — контейнеры

Настоящие серверные приложения: API, ботов, FastAPI, Flask, Express. Dockerfile → контейнер → имя.marsdot.uz.

Открыто после первого статик-деплоя

Оба уровня работают через Mars ID — тот же Telegram-логин, что и на marshub.uz

Готов задеплоить первое приложение?

Войди через Mars ID, установи CLI — и одна команда сделает всё остальное. Твой проект получит постоянный адрес с HTTPS.

быстрый старт
$ npm install -g marshub
$ marshub login
✓ Вошёл как @твой_telegram
$ marshub cloud deploy
https://my-app.marsdot.uz