Быстрый старт
Для начала нужно принять одно решение: как именно запускать сам Openship (управляющий уровень, control plane). Всё остальное после этого одинаково.
| Если вы… | Запустите Openship как | Где будут работать ваши приложения |
|---|---|---|
Один, одна машина, без администрирования |
Настольное приложение (desktop app) |
Сервер, подключённый по SSH, или Openship Cloud |
Команда — или нужен push-to-deploy / хостинг приложений на своём сервере |
Self-hosted сервер ( |
На этом сервере (режим Compose) — или на другом сервере / Cloud (bare-режим) |
Не хочу ничего запускать самостоятельно |
Openship Cloud |
Управляемые песочницы, никакой настройки |
|
Совет
|
Работаете в одиночку? Используйте настольное приложение. Оно запускает управляющий уровень Openship на вашем компьютере только пока приложение открыто — никаких постоянно работающих процессов на сервере, никаких публичных точек доступа. Постоянно работающий сервер нужен лишь тогда, когда вам требуется push-to-deploy (CI/CD), командный доступ или хостинг приложений прямо на этом сервере — то есть всё то, что требует публичного и постоянно доступного эндпоинта. |
Одиночная работа — настольное приложение
Управляющий уровень работает локально и управляет серверами через SSH. Никакого входа, никакого терминала, никакой публичной поверхности — скачайте, откройте, готово:
| Платформа | Скачать |
|---|---|
macOS (Apple Silicon) |
|
macOS (Intel) |
|
Windows |
|
Linux |
Linux: chmod +x Openship.AppImage && ./Openship.AppImage. Если CLI уже установлен — openship install скачает и запустит приложение. Ссылки всегда указывают на последний релиз.
Из настольного приложения вы подключаете сервер (по SSH) или Openship Cloud и деплоите туда — само приложение не публикует ваши сервисы на ноутбуке.
Команда / постоянный сервер — self-hosted установка
Установите CLI (он включает API и дашборд), затем запустите openship — интерактивный мастер создаст первого администратора, настроит домен и зарегистрирует Openship как системную службу. Запустите снова в любое время для управления инстансом.
curl -fsSL https://get.openship.io | sh # установить (или: npm i -g openship — требуется Node 22+)
openship # пошаговая настройка, затем панель управления
Скрипт установки принесёт собственный Node, если версия на вашей системе ниже 22; установка через пакетный менеджер использует уже имеющийся Node.
Для CI и безголовых машин можно пропустить мастер и работать напрямую с openship up:
openship up # установить + запустить как фоновую службу (стартует и перезапускается автоматически)
openship up --public-url https://openship.example.com # + опубликовать дашборд на вашем домене (edge + TLS настраиваются автоматически)
openship up сам определяет режим запуска:
-
Linux с Docker → режим Compose (по умолчанию). Поднимает полный стек — Postgres, Redis, API, дашборд и контейнеризованный OpenResty edge на :80/:443 — из опубликованных образов. Именно этот режим размещает ваши приложения на том же сервере с автоматическими доменами и Let’s Encrypt TLS. Принудительно включить:
--compose. -
Везде в остальных случаях → bare-режим (macOS, Windows или Linux без Docker). Единственный лёгкий процесс со встроенной базой данных — постоянно работающий управляющий уровень, который деплоит приложения на удалённый сервер (SSH) или Cloud, как настольное приложение, но всегда доступен и требует авторизации. Принудительно включить:
--bare.
Self-hosted инстанс всегда требует авторизации (администратор, созданный при настройке). openship open открывает дашборд · openship stop останавливает службу · openship update обновляет · openship up --foreground запускает в прикреплённом режиме.
|
Примечание
|
Предварительные сборки (dev). Чтобы запустить CLI, собранный прямо из исходников — из ветки, тега или
Устанавливается как отдельная команда |
Задеплоить проект:
cd your-project
openship init # связать текущую директорию с проектом
openship deploy
Полное руководство по серверу и справочник CLI: openship.io/docs.
Есть два способа включить автодополнение по Tab для openship:
| Настройка | Компромисс | |
|---|---|---|
Статический файл (рекомендуется) |
|
Мгновенный старт оболочки. Нужно пересоздать файл после обновления, чтобы подхватить новые команды. |
Динамическая подгрузка |
добавить |
Всегда отражает текущую установленную версию. Добавляет небольшую задержку при каждом запуске нового сеанса. |
Статический файл:
openship completion bash > /etc/bash_completion.d/openship
openship completion zsh > ~/.zsh/completions/_openship
openship completion fish > ~/.config/fish/completions/openship.fish
Откройте новый терминал — готово.
Динамическая подгрузка (пример для zsh):
echo 'source <(openship completion zsh)' >> ~/.zshrc
Self-hosted стек находится в docker/docker-compose.yml и скачивает опубликованные образы из GitHub Container Registry (ghcr.io/oblien/*) — никаких инструментов сборки, никакой компиляции монорепозитория. Запускается из корня репозитория:
git clone https://github.com/oblien/openship.git && cd openship
cp .env.example .env # затем отредактировать
docker compose --env-file .env -f docker/docker-compose.yml up -d
Стек состоит из postgres + redis + api + dashboard + edge. edge — это OpenResty на :80/:443 как контейнер (network_mode: host) — маршрутизация и Let’s Encrypt, без установки на хост. Только Linux (хостовая сеть); на macOS/Windows используйте openship up (bare-режим). Контейнер api монтирует Docker-сокет хоста, чтобы управляющий уровень мог собирать и запускать ваши приложения как контейнеры хоста — через сокет он имеет привилегированный доступ к хосту, поэтому запускайте это только на доверенных машинах.
Обновление: зафиксируйте OPENSHIP_VERSION в .env для воспроизводимых загрузок, затем выполните docker compose --env-file .env -f docker/docker-compose.yml pull && … up -d. openship update работает только со стеком, установленным CLI, а openship up усвоит этот стек — не используйте ни то ни другое здесь. Сборка из исходников вместо этого: добавьте -f docker/docker-compose.build.yml … up -d --build.
Операции с хостом (захват :80/:443, почтовый движок, терминал хоста / сканирование портов) требуют SSH-канала контейнер→хост, который openship up настраивает автоматически, а этот путь — нет. Пять ручных шагов описаны в .env.example в разделе Host operations from the container, а ошибка, которую это вызывает, — в Troubleshooting → Host control channel. Всё остальное, включая деплои, работает и без этого.
|
Примечание
|
Корневой docker-compose.yml — это другой файл: он предназначен для SaaS / сборки из исходников управляющего уровня (собирает из исходников, публикует маркетинговый сайт, без edge/сокета). Он не размещает ваши приложения — используйте для этого docker/docker-compose.yml или openship up.
|
Как это работает
Укажите Openship источник — репозиторий GitHub, локальную папку или готовый артефакт — и он выполнит весь пайплайн от начала до конца:
-
Определение стека. Читает
package.json, конфиги фреймворков, lockfile-файлы, а такжеdocker-compose.yml/openship.json, чтобы определить стек, пакетный менеджер, команды сборки/запуска и порт. Конфигурационные файлы не обязательны;openship.jsonпереопределяет автоматические догадки, если вам нужен контроль. -
Сборка. На целевом сервере или локально на оркестраторе — в Docker-образ или голый релиз (bare release). Разрешённая конфигурация фиксируется в снимок состояния, поэтому повторные деплои и откаты воспроизводят ровно то, что было отправлено.
-
Запуск. В виде контейнера (публикуется только на loopback — никаких публичных портов) или как управляемый процесс хоста.
-
Маршрутизация и защита. Edge на OpenResty создаёт конфиг reverse-proxy для вашего домена и получает сертификат Let’s Encrypt (HTTP-01). Поскольку маршрутизация и TLS настраиваются уже после того, как приложение запущено, проблема с DNS или сертификатом отображается как «требуется действие» — она никогда не прерывает деплой и не роняет работающее приложение.
-
Push-to-deploy. Вебхук GitHub перезапускает пайплайн при каждом push в отслеживаемую ветку — пересобирает только те сервисы монорепозитория, которых затронул конкретный push.
Базами данных, доменами, SSL, CDN, почтой и резервными копиями управляете из одного места. (Push-to-deploy и публичные домены требуют постоянно работающего сервера или Cloud — у настольного/loopback-инстанса нет публичного эндпоинта для приёма вебхуков.)
Интерфейсы
Три способа работы с одним и тем же бэкендом:
-
Настольное приложение (desktop app) — полноценный GUI, логи в реальном времени, всё в один клик. Оптимально для одиночной работы.
-
Веб-дашборд (web dashboard) — тот же интерфейс в браузере, рассчитанный на команды.
-
CLI — удобен для скриптов и CI; также используется для установки и управления self-hosted инстансом.
MCP-эндпоинт (для AI-агентов) и REST API дополняют набор инструментов для автоматизации. В качестве MCP-инструментов экспонируются только маршруты, явно выбравшие это поведение; каждый вызов заново проверяет ваши права, а маршруты с учётными данными и токенами никогда не становятся инструментами. Полная документация на openship.io/docs.
|
Примечание
|
Документация активно пополняется. Если чего-то не хватает или что-то неясно, вклад в развитие будет очень кстати. |
Возможности
Встроенный CI/CD |
Push-to-deploy, preview-окружения, staging/prod процессы, откаты |
Любой стек |
Node, Python, Go, Rust, PHP, Ruby, Java, .NET, Docker, монорепозитории |
Полноценный бэкенд |
Postgres, MySQL, MongoDB, Redis, воркеры, WebSockets, хранилище |
Домены и SSL |
Автоматический Let’s Encrypt, wildcard-сертификаты, неограниченное число доменов, автопродление |
CDN |
Edge-кэширование, HTTP/3, сжатие Brotli, мгновенная очистка кэша |
Почтовый сервер |
Встроенный SMTP с DKIM/SPF/DMARC — без Mailgun или SES |
Резервные копии |
По расписанию, базы данных + тома, восстановление в один клик, экспорт в любое время |
Мониторинг в реальном времени |
Живые логи сборки, метрики контейнеров, география посетителей и распределение ответов по кодам — ~1,4 мкс на запрос, ноль записей в БД на запрос |
Масштабирование |
Автомасштабирование в Cloud, поддержка нескольких узлов при self-hosted установке |
Портативность |
Стандартные Docker-контейнеры — свободно переносите между провайдерами |
Docker Compose |
Деплой существующих compose-файлов как есть |
Деплой где угодно
-
Openship Cloud — управляемый, с автомасштабированием, без настройки
-
Любой VPS — Hetzner, DigitalOcean, Linode, OVH и другие
-
Выделенные серверы — bare metal, colocation, домашняя лаборатория
-
Несколько серверов — распределяйте нагрузку между машинами
Одинаковый интерфейс вне зависимости от места деплоя.
Статус
Основная часть готова к продакшену, разработка активно ведётся. Self-hosting бесплатен (без выставления счетов).
Что будет дальше: мультинодовые кластеры, интерфейс для балансировки нагрузки, приватная сеть, расширенный мониторинг и визуальные CI/CD-пайплайны.
Участие в разработке
См. CONTRIBUTING.md.
Безопасность
Обнаружили уязвимость? Мы рады вашему сообщению — раскрывайте её приватно, никогда не в публичных issue, PR или обсуждениях.
-
Сообщить здесь (предпочтительно): Сообщить об уязвимости — приватный GitHub advisory, видимый только вам и мейнтейнерам.
-
Область охвата, что включить в отчёт и процесс нашего ответа/раскрытия: SECURITY.md.
Добросовестные исследования безопасности разрешены в рамках нашей политики safe harbor; мы рады упоминать авторов достоверных первичных отчётов.
Лицензия
Openship — программное обеспечение с открытым исходным кодом, распространяемое под лицензией Apache 2.0.
Вы можете использовать, запускать, изменять, размещать у себя и распространять его — в том числе в коммерческих и закрытых продуктах — в соответствии с условиями лицензии Apache 2.0. Полный текст см. в LICENSE.