Первый деплой
Этот сценарий проведёт вас от пустого воркспейса до живого HTTPS-адреса за несколько минут. Вы подключите Git-провайдера, выберете тип сервиса, зададите команды сборки и запуска и увидите, как пайплайн становится зелёным.
Порядок одинаков для любого рантайма — Node.js, Python, Go, Ruby, Rust, Elixir или Docker. Отличается только пара команд, которые вы вводите на третьем шаге.
Путь на пять минут#
- 1Подключите Git-провайдераВ панели откройте
Account → Git providersи авторизуйте GitHub, GitLab или Bitbucket. Дайте доступ к нужным репозиториям — список можно расширить или сузить позже без передеплоя. - 2Создайте сервисНажмите
New → Web Service, выберите репозиторий и ветку. Muerte Cloud просканирует дерево и предложит рантайм — поменяйте, если определение неверное. - 3Задайте команды сборки и запускаПодтвердите предложенные команды или отредактируйте их. Команда build создаёт артефакты, команда start поднимает процесс, который слушает
$PORT. Типовые значения — в таблице ниже. - 4Добавьте переменные окруженияВставьте файл
.envили введите значения по одному. Секреты шифруются на диске и не попадают в логи. Настроить их можно и позже, но большинству приложений нужен хотя быDATABASE_URL. - 5Создайте и наблюдайтеНажмите
Create service. Вкладка Deploys в реальном времени показывает логи сборки и рантайма. Когда health-check проходит, трафик переключается на новый инстанс, и адрес сервиса становится доступен по HTTPS.
Выбор типа сервиса#
Web-сервисы — самый частый выбор, но у Muerte Cloud есть ещё четыре типа для задач без входящего HTTP-трафика. Смотрите шпаргалку ниже или полный гайд по типам сервисов.
| Field | Description |
|---|---|
| Web Service | Постоянно работающий HTTP-процесс с публичным HTTPS-адресом. Деплои без простоя. |
| Static Site | Готовые HTML, CSS и JS, отдаваемые по HTTPS. Превью для PR — В разработке и пока недоступны. |
| Private Service | Доступен только внутри приватной сети воркспейса. Без публичного адреса, для внутренних API. |
| Background Worker | Постоянный процесс без входящего трафика. Обработчики очередей, пайплайны, чат-боты. |
| Cron Job | Запускает команду по расписанию. Оплата только за время каждого запуска. |
Команды сборки и запуска по рантаймам#
| Рантайм | Сборка | Запуск |
|---|---|---|
| Node.js | npm ci && npm run build | node dist/index.js |
| Python | pip install -r requirements.txt | gunicorn app.wsgi --bind 0.0.0.0:$PORT |
| Ruby | bundle install | bundle exec puma -b tcp://0.0.0.0:$PORT |
| Go | go build -o app ./cmd/server | ./app |
| Rust | cargo build --release | ./target/release/app |
| Elixir | mix deps.get --only prod && mix compile | mix phx.server |
| Docker | — (собирается Dockerfile) | — (используется CMD, можно переопределить) |
PORT при старте. Привяжите сервер к 0.0.0.0:$PORT — привязка к 127.0.0.1 или к жёстко заданному порту провалит health-check и отменит деплой.Минимальный пример на Node.js
import http from "node:http";
const port = Number(process.env.PORT ?? 8080);
http
.createServer((_, res) => res.end("ok"))
.listen(port, "0.0.0.0", () => {
console.log("listening on", port);
});Что происходит после нажатия Create#
Каждый деплой проходит один и тот же пайплайн из трёх стадий:
- 1СборкаЗависимости ставятся, артефакты собираются на отдельных build-мощностях. Результат упаковывается в неизменяемый образ.
- 2ЗапускНовый инстанс поднимает образ. Как только health-check проходит, трафик переключается с предыдущего инстанса одним шагом.
Полный разбор пайплайна — в разделе Как работают деплои.
Проверка, что сервис живой#
Когда вкладка Deploys показывает Live, сервис доступен по адресу https://<name>.muerte.app. Быстрые проверки:
# HTTP 200 и заголовки ответа
curl -I https://my-service.muerte.appЛоги сборки и рантайма — в реальном времени и с историей — доступны на вкладке Logs сервиса в панели.