Гид по технологиям

Как развернуть статический сайт на DigitalOcean App Platform

• 8 min read • DevOps • Обновлено 04 Dec 2025
Развернуть статический сайт на DigitalOcean App Platform
Развернуть статический сайт на DigitalOcean App Platform

Быстрые ссылки

  • Создание сайта
  • Подключение DigitalOcean к репозиторию
  • Настройка приложения
  • Деплой приложения
  • Управление приложением
  • Добавление домена
  • Резюме

Логотип DigitalOcean

App Platform — это Platform-as-a-Service (PaaS) от DigitalOcean. Он позволяет отправлять код в продакшен без ручной настройки инфраструктуры. Платформа подключается к репозиториям GitHub и GitLab и автоматически собирает и деплоит проекты.

App Platform появился в октябре 2020 года и позиционируется как полностью управляемое решение с поддержкой популярных языков, автоматическим HTTPS и возможностями горизонтального и вертикального масштабирования.

Зачем использовать App Platform

  • Быстрая публикация статических сайтов (и простых бэкендов) без знания Docker и Kubernetes.
  • Интеграция с Git: автоматические сборки при пушах/мерджах.
  • Включённый TLS/HTTPS и управление доменами.
  • Бесплатный начальный план для экспериментов и малого трафика.

Важно: App Platform удобен для статических сайтов и простых сервисов. Для большого масштаба, сложных сетевых требований или тонкой настройки инфраструктуры может потребоваться полноценный Kubernetes или VPS.

Создание сайта

В этом руководстве мы используем бесплатный Starter-план для развертывания статического сайта без управляемой инфраструктуры. На бесплатном плане можно разместить до трёх сайтов. Дополнительные сайты можно добавить при переходе на платный план или оплатив отдельный сайт — цена указывается в интерфейсе (в исходном руководстве — $3/мес за сайт в примере).

App Platform поддерживает популярные генераторы статических сайтов: Gatsby, Hugo, Jekyll и другие. Можно также использовать чистые HTML/CSS без процесса сборки.

Мы будем работать с минимальным Jekyll-сайтом для примера. Если вы хотите повторить шаги, можно форкнуть пример из репозитория DigitalOcean. Готовый сайт должен быть закоммичен в репозиторий на GitHub или GitLab.

Минимальная структура репозитория для Jekyll

  • _config.yml
  • index.md или index.html
  • Gemfile (при необходимости сборки локально)

Если вы используете другой генератор — укажите соответствующую команду сборки в настройках приложения позже.

Подключение DigitalOcean к репозиторию

  1. Войдите в свою учётную запись DigitalOcean.
  2. В левой боковой панели нажмите “Apps”.
  3. Нажмите кнопку “Launch Your App”.

Скриншот: расположение App Platform в UI DigitalOcean

Далее необходимо подключить App Platform к вашему аккаунту GitHub или GitLab. Выберите соответствующую кнопку и следуйте инструкциям для авторизации и предоставления доступа к репозиториям. После успешной авторизации вы вернётесь в интерфейс DigitalOcean.

Скриншот создания приложения в App Platform

После подключения выберите репозиторий из выпадающего списка. Если репозиторий не отображается, проверьте права доступа (DigitalOcean должен иметь право чтения репо). При необходимости воспользуйтесь подсказками по ссылке внизу экрана.

Скриншот выбора репозитория

Настройка приложения

На следующем экране дайте приложению имя — оно будет отображаться в UI DigitalOcean. Часто удобно использовать имя репозитория.

Выберите регион (датацентр) для деплоя. В момент написания примера поддерживались регионы New York, Amsterdam и Frankfurt — обычно выбирайте ближайший к вашим пользователям.

Скриншот выбора региона и имени приложения

Выберите ветку репозитория для деплоя. По умолчанию используется:

master

Вы можете изменить её на ветку для предрелиза (например:

staging

или

test

).

Скриншот выбора ветки для деплоя

Опция “Autodeploy code changes” управляет автоматическим деплоем при изменениях в выбранной ветке. Если опция включена, App Platform будет автоматически запускать новую сборку при каждом мёрдже или пуше. При отключённом автодеплое придётся запускать деплой вручную.

Когда вы нажмёте “Next”, платформа просканирует репозиторий и попытается определить тип приложения и команду сборки. В нашем случае App Platform обнаружил Jekyll и автоматически заполнил команду сборки. Команду можно изменить при необходимости, а также задать переменные окружения, доступные на этапе сборки.

Скриншот обнаружения типа приложения и команды сборки

Совет: если используется приватный гем или приватный пакет, добавьте соответствующие секреты/ключи в переменные окружения до сборки.

Деплой приложения

Нажмите “Next” для финализации деплоя. Подтвердите уровень (tier) App Platform: для экспериментов выберите бесплатный Starter-план или переключитесь на платный при необходимости. Проверьте отображаемую ежемесячную стоимость.

Нажмите “Launch Starter App” для запуска деплоя.

Скриншот выбора плана App Platform

Деплой может занять несколько минут: платформа собирает сайт (в нашем случае запускается Jekyll) и затем деплоит собранные файлы на свою инфраструктуру. Ход сборки и деплоя будет отображаться в панели проекта.

Процесс сборки и деплоя

В итоге вы увидите сообщение “Deployed successfully” и получите ссылку “Live App”. Платформа присвоит случайный поддомен вида:

<имя>.ondigitalocean.app

На примере мы видим стандартную стартовую страницу Jekyll.

Скриншот стартовой страницы Jekyll после деплоя

Управление приложением

После деплоя в панели можно наблюдать и управлять приложением. Вкладка “Overview” показывает время последнего деплоя и основные показатели состояния.

Скриншот панели App Platform — Overview

Вкладка “Insights” показывает графики метрик, включая CDN throughput и другие показатели. Вкладка “Deployments” хранит историю сборок и логи. Изначально будет запись “initial deployment”.

Скриншот вкладки Insights и Deployments

Чтобы проверить процесс обновления, измените файл в репозитории, выполните коммит и пуш в ветку, указанную для деплоя. Если включён автодеплой, платформа автоматически обнаружит изменение и запустит новую сборку.

Добавление домена

App Platform поддерживает использование пользовательских доменов. Поддомен ondigitalocean.app подойдёт для тестов, но для продакшена лучше привязать собственный домен.

Перейдите в “Settings” приложения и нажмите “Edit” рядом с разделом Domains. Кнопка “Add Domain” откроет форму для ввода вашего домена.

Скриншот страницы настроек App Platform

Следуйте подсказкам: если вы используете nameserver DigitalOcean — DNS-записи добавятся автоматически. В противном случае скопируйте предложенные DNS-записи и добавьте их в панели регистратора домена.

Скриншот добавления домена в App Platform

После корректного разрешения DNS домен будет прикреплён к приложению, и DigitalOcean автоматически выпустит сертификат SSL для HTTPS.

Важно: DNS-пропагация может занять от нескольких минут до 24 часов в зависимости от регистратора.

Проверка и отладка

  • В разделе “Deployments” смотрите логи сборки и деплоя.
  • В “Insights” проверяйте метрики трафика и ошибок.
  • Для получения интерактивного доступа к компоненту используйте консоль в панели (если доступно).

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

Безопасность и конфиденциальность

  • Переменные окружения: храните секреты в секции Environment Variables, не в коде.
  • HTTPS: App Platform автоматически выдаёт сертификат, но при использовании внешнего DNS убедитесь, что запись указывает на App Platform.
  • Логи: не публикуйте секреты в логах сборки.

Примечание по GDPR: если вы обрабатываете персональные данные, проверьте соглашение с DigitalOcean и настройки хранения данных. Для соответствия локальным требованиям рассмотрите регион выделенного хоста или обработку данных в регионах с нужной юрисдикцией.

Когда App Platform не подойдёт — примеры

  • Нужна низкоуровневая конфигурация сети (например, специфичные VPC или приватные соединения между сервисами с тонкой политикой).
  • Высокая нагрузка с критичными SLO, где требуется кастомная оптимизация контейнеров и автоскейлинг на уровне кластера.
  • Очень специфичные требования к CI/CD, которые нельзя выразить в доступных настройках App Platform.

В таких случаях рассмотрите собственный Kubernetes, managed Kubernetes (EKS/GKE/AKS) или виртуальные машины (VPS).

Альтернативные подходы

  • Развёртывание статического сайта на S3 + CloudFront (AWS) — гибкость CDN и кастомизация, но больше управленческой работы.
  • Netlify / Vercel — аналогичные PaaS решения, ориентированные на фронтенд: удобны для Jamstack и управления фронтом.
  • Хостинг на VPS (DigitalOcean Droplet) с ручной установкой Nginx — полный контроль, но больше рутинной работы.

Мини-методология развертывания (шаги)

  1. Подготовить репозиторий: проверяем структуру и команду сборки локально.
  2. Подключить репозиторий к App Platform и выбрать ветку.
  3. Настроить среду: переменные окружения, секреты.
  4. Запустить деплой и проверять логи.
  5. Привязать домен и проверить HTTPS.
  6. Настроить мониторинг и оповещения по важным событиям.

Чек-листы по ролям

Разработчик:

  • Репозиторий содержит корректную команду сборки.
  • Отсутствуют секреты в коде.
  • Локально сборка проходит без ошибок.

DevOps / инженер по платформе:

  • Подключён GitHub/GitLab с нужными правами.
  • Настроены переменные окружения и секреты.
  • Проверены DNS-записи и SSL.
  • Налашены базовые оповещения.

Продакт / менеджер:

  • Утверждён выбор региона.
  • Понято поведение автодеплоя и процесс отката.
  • Проверены требования к соответствию (GDPR и др.).

Решение — дерево для выбора платформы (Mermaid)

flowchart TD
  A[Нужен хостинг для сайта или простого API?] --> B{Требуется низкоуровневый контроль?}
  B -- Да --> C[Использовать VPS или Kubernetes]
  B -- Нет --> D{Нужен быстрый деплой из Git?}
  D -- Да --> E[App Platform / Netlify / Vercel]
  D -- Нет --> F[Хостинг на S3 + CDN или собственный сервер]
  C --> G[Больше контроля, больше работы]
  E --> H[Меньше операционной работы, быстро]
  F --> I[Подход для статичных сайтов с CDN]

Критерии приёмки

  • Приложение развёрнуто и доступно по HTTPS на назначенном домене.
  • Последний деплой завершён успешно и отображается в разделе Deployments.
  • Все необходимые переменные окружения и секреты заданы и работают.
  • Логи сборки не содержат ошибок, которые влияют на функциональность.

Тестовые сценарии / Acceptance

  1. Пуш в ветку master: приложение должно автоматически задеплоиться (при включённом Autodeploy).
  2. Изменение контента: новые страницы отображаются на Live App в течение нескольких минут.
  3. Добавление домена: после настройки DNS сайт доступен по вашему домену и HTTPS.
  4. Ошибка сборки: лог сборки содержит диагностическую информацию для исправления.

Глоссарий (1‑строчное определение)

  • PaaS: платформа как услуга, где провайдер управляет инфраструктурой.
  • CDN: сеть доставки контента, кэширует ваши файлы по миру.
  • DNS: система доменных имён, переводит домен в IP/целевые записи.
  • TLS/SSL: протоколы шифрования для HTTPS.

Рекомендации по безопасности

  • Храните API-ключи и секреты только в окружении App Platform.
  • Ограничьте доступ к репозиторию и используйте двуфакторную аутентификацию.
  • Регулярно просматривайте логи сборок и обращайте внимание на утечки секретов.

Советы по оптимизации статического сайта

  • Минимизируйте и объединяйте CSS/JS, используйте оптимизированные изображения.
  • Включите заголовки кэширования и сжатие на уровне сборки (если поддерживается).
  • Используйте CDN для уменьшения латентности глобальных пользователей.

Миграция с другого хостинга на App Platform

  1. Экспортируйте контент и проверьте совместимость сборки.
  2. Настройте репозиторий и команду сборки в App Platform.
  3. Привяжите домен и проверьте DNS.
  4. Переключите трафик после успешного тестирования на новом домене/APPLICATION.

Заключение

DigitalOcean App Platform — удобный инструмент для быстрого развертывания статических сайтов и простых сервисов из Git-репозитория. Он автоматизирует сборку, деплой и управление сертификатами, позволяя сосредоточиться на коде. Для сложных инфраструктурных задач или требований высокой кастомизации стоит оценивать альтернативы — VPS, Kubernetes или специализированные PaaS (Netlify, Vercel).

Краткое объявление (для рассылки):

DigitalOcean App Platform позволяет быстро развернуть сайт прямо из Git: подключите репозиторий, настройте ветку и автодеплой, затем привяжите домен и получите HTTPS. Идеально для небольших сайтов и экспериментальных проектов.


Важно: эта статья описывает базовый сценарий развертывания статического сайта; если ваше приложение использует внешние сервисы (базы данных, очереди), потребуется дополнительно настроить компоненты и права доступа.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро