Налаштування деплою сайту на 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 днів