Skip to content
/ tmw Public

Пробуем наш workflow на VDS от TimeWeb - CDK

Notifications You must be signed in to change notification settings

DimaMinka/tmw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 

Repository files navigation

tmw - Пробуем наш workflow на VDS от TimeWeb - CDK

timeweb vds intro

Интро:

Знакомство с timeweb у меня произошло много лет назад, когда лишь начинал изучать веб разработку, и на самом деле все понравилось, но так как мои клиенты не из стран СНГ, работать вплотную мне так и не удалось. Но не так давно в RU сообществе WordPress, уважаемый мной человек Дмитрий (@beyondkayne), поведал о VDS timeweb, и предложил накидать свой конфиг, и я с радостью согласился.

Выбор конфига для WordPress + WooCommerce:

Для начала был приятно удивлен тем, что все конфигурации начинаются с двух ядер, может я что то и пропустил, но с одним ядром я и не нашел, а искал потому, что мне для простой установки два ядра и не надо. Дальше мне предложили взять 2 гигабайта виртуально памяти, от чего я отказался, так как для нескольких проектов мне и одного с головой, плюс для своих клиентов я всегда начинаю с 1 гигабайта. С диском не запаривался, логично что везде сегодня используют SSD, и в размере тоже не обделят.

Выбор OS - Ubuntu 18.04:

Уже давно работаю с этой OS, много использовал для изучения и экспериментов разные стек сервисы такие как:

  • EasyEngine
  • Serverpilot
  • Runcloud
  • Moss
  • Custom configs

Плюс в последнее время мы почти на всех серверах гоняем Runcloud, и Ubuntu нам подходит больше всех.

Server stack:

Что мы обычно используем на наших VDS:

  • Nginx
  • PHP72/PHP73
  • MariaDB
  • Redis
  • GIT/Atomic Deploy
  • Let's Encrypt
  • Fail2ban etc Все это и даже больше есть из коробки Runcloud, что мы и установим.

Установка:

В принципе кроме подключения через root к серваку, после создания сервера с образом Ubuntu, ничего и не надо.

  1. Подключаемся через ssh к серверу
  2. Запускаем скрипт установки конфига

конфиг получаем в веб панели Runcloud server init

Сам процесс забирает несколько минут, после завершения, я запускаю скритп с дополнительными пакетами и сервисами:

  • nano syntax highlighting
  • wp cli
  • adminer installer - run from your app public directory adminer.sh
  • srdb installer - run from your app public directory srdb.sh
  • zImageOptimizer - Simple bash script for lossless image optimizing - zio.sh
  • rcdk - Runcloud shell api wrapper - rcdk
  • jq - jq is a lightweight and flexible command-line JSON processor
  • yarn - yarn - fast, reliable, and secure dependency management
  • gulp - gulp is a toolkit for automating painful or time-consuming tasks in your development workflow
  • rocket-nginx - Rocket-Nginx is a Nginx configuration for the WordPress cache plugin WP-Rocket.

сервер готов и можно приступать к созданию проекта server dashboard

Создание проекта:

Я думаю большенство работают через панель, но я люблю автоматизировать процесс, мы не так давно создали shell wrapper для API Runcloud и теперь все это возможно:

  1. Создаю пользователя на сервере под проект для изоляции - rcdk sysusers create tmw
  2. Запускаю наш bundler, который запросит нужные данные о проекте, как имя для базы, юзера для проекта, стэк проекта, ssl etc. - rcdk bundle

проект готов вместе с базой и нужными настройками app list

Теперь я подключу свой репозиторий к GIT проекта на Runcloud, тут к сожелению надо руками будет создать ключ через веб панель для моего пользователя, и добавить его в репозиторий.

генерация ключа для GitHub repo deployment key

подключение репозитория к проекту runcloud app to git

На этом этапе код уже был переброшен к нам на сервер, и пришла пора собирать сам проект.

Настройка Atomic Deploy:

Atomic deployment позволят нам собирать проекты с мульти задачностью, логами, различными конфигами и симлинками.

  1. Перейду в менюшке в Atomic deploy и создам новый процесс:

создаем atomic deploy create atomic deployment atomic config

  1. Далее сам процесс конфига проекта через .env и custom-config.yml, тут будут указаны какие плагины/темы ставить и на какие проекты, данные базы и много другое.

секция настройки конфига atomic config

  1. Сам процесс сборки проекта будет настроен в deployment script, там тоже мы поколдовали, и надо лишь запусть bash wpi.sh

в зависимости от сложности проекта создаются разные конфиги сборки atomic deployment scripts

Процесс был запущен и сервер спулил последнюю версию кода и собрал весь проект, настроил WordPress по заданным сетапам в конфиге, и теперь можно уже логинится в админку.

процесс сборки с логами atomic config

Процесс настройки WordPress и плагинов:

  1. Активация всего добра, что было установлено

так выглядит конфиг проекта custom yml config

  1. Далее произведем нужные настройки во всех плагина, кеш, cloudflare, сео, вуу, закинем демо данные и в принципе сайт готов для тестов.

Похайпим скоростью:

Я прекрасно понимаю, что сервисы по проверкам скорости загрузки сайта это то еще дело, но клиенты любят видеть цифры, а еще больше требовать. Поэтому на завершение мы так же пробежимся по списку популярных:

Важно заметить, что были выполнены базовые настройки по оптимизации, и всегда есть над чем поработать и что доработать, но мне для обзора хватило с головой!

tools.pingdom.com tools.pingdom.com - germany

developers.google.com/speed/pagespeed/insights google page speed insights

gtmetrix.com gtmetrix.com - canada

www.webpagetest.org www.webpagetest.org - pragua

Итог:

В общем первое знакомство с VDS timeweb прошло более, чем приятно. Все очень удобно, быстро, просто. На сборку было потрачено не больше часа вместе с базовой настройкой оптимизации, стресс тесты не производил, так как это требует еще времени, которого нет. Хочу пожелать ребятам с timeweb продолжать радовать сообщество WordPress новыми продуктами и сервисами, хотелось бы больше автоматизации, API, интересных сборок под WordPress и конечно удачи! :)

Hello World!

About

Пробуем наш workflow на VDS от TimeWeb - CDK

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published