Настройка деплоя сайта на DigitalOcean (Droplet/App Platform)

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка деплоя сайта на DigitalOcean (Droplet/App Platform)
Средняя
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Настройка деплоя сайта на DigitalOcean (Droplet/App Platform)

DigitalOcean предлагает два пути: Droplet (VPS с полным контролем) и App Platform (PaaS с автодеплоем из Git). Популярен у стартапов и небольших команд за простоту и предсказуемые цены.

App Platform — быстрый старт

# .do/app.yaml
name: myapp
region: fra

services:
  - name: web
    github:
      repo: user/myapp
      branch: main
      deploy_on_push: true
    build_command: npm run build
    run_command: node server.js
    environment_slug: node-js
    instance_count: 2
    instance_size_slug: basic-xxs
    http_port: 3000
    envs:
      - key: DATABASE_URL
        scope: RUN_TIME
        type: SECRET
        value: "${db.DATABASE_URL}"

  - name: worker
    github:
      repo: user/myapp
      branch: main
    run_command: node worker.js
    instance_count: 1

databases:
  - name: db
    engine: PG
    version: "16"
    size: db-s-1vcpu-1gb
# Деплой через CLI
doctl apps create --spec .do/app.yaml
doctl apps update APP_ID --spec .do/app.yaml

Droplet: ручная настройка

# Создать дроплет через CLI
doctl compute droplet create myapp \
    --size s-2vcpu-4gb \
    --image ubuntu-22-04-x64 \
    --region fra1 \
    --ssh-keys KEY_ID \
    --user-data-file cloud-init.yaml
# cloud-init.yaml
#cloud-config
packages:
  - nginx
  - php8.3-fpm
  - php8.3-pgsql
  - composer
  - certbot
  - python3-certbot-nginx

runcmd:
  - curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
  - apt-get install -y nodejs
  - systemctl enable nginx php8.3-fpm

Автодеплой через GitHub Actions + Droplet

# .github/workflows/deploy.yml
jobs:
  deploy:
    steps:
      - name: Deploy to Droplet
        uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.DROPLET_IP }}
          username: deploy
          key: ${{ secrets.SSH_KEY }}
          script: |
            cd /var/www/myapp
            git fetch origin main && git reset --hard origin/main
            composer install --no-dev
            npm ci && npm run build
            php artisan migrate --force
            php artisan config:cache
            sudo systemctl reload php8.3-fpm

Managed Kubernetes (DOKS)

# Создать кластер
doctl kubernetes cluster create myapp-cluster \
    --region fra1 \
    --node-pool "name=worker-pool;size=s-2vcpu-4gb;count=3"

# Получить kubeconfig
doctl kubernetes cluster kubeconfig save myapp-cluster

# Деплой через kubectl
kubectl apply -f k8s/

Spaces (S3-совместимое хранилище)

# Загрузить статику
s3cmd sync ./dist/ s3://myapp-assets/ \
    --host=fra1.digitaloceanspaces.com \
    --host-bucket=%(bucket)s.fra1.digitaloceanspaces.com \
    --access_key=$SPACES_KEY \
    --secret_key=$SPACES_SECRET \
    --delete-removed \
    --add-header="Cache-Control:public, max-age=31536000"

Load Balancer

doctl compute load-balancer create \
    --name myapp-lb \
    --region fra1 \
    --forwarding-rules "entry_protocol:https,entry_port:443,target_protocol:http,target_port:80,certificate_id:CERT_ID" \
    --droplet-ids "DROPLET_ID_1,DROPLET_ID_2" \
    --health-check "protocol:http,port:80,path:/health,check_interval_seconds:10,response_timeout_seconds:5"

Срок реализации

  • App Platform из Git: 4–8 часов
  • Droplet + Nginx + деплой: 1–2 дня
  • DOKS (Kubernetes): 3–5 дней