Как да поддържате уебсайт с Git Push: Автоматично синхронизиране в SPanel

Git Version Control в SPanel клонира публично или частно Git хранилище в директория на вашия акаунт, след което го поддържа синхронизиран. Можете да издърпвате нов код автоматично на всеки 3, 5 или 15 минути, да използвате webhook или ръчно да качвате актуализации.

Добавете изпълним .autodeploy скрипт в хранилището и SPanel ще го изпълнява след всяко издърпване, така че git push се превръща в същински деплоймент. С други думи, SPanel се грижи за целия процес, докато вие се фокусирате върху разработката на проекта.

Ето резюмето:

  • SPanel клонира от GitHub, GitLab, Bitbucket или локално хранилище през HTTPS или SSH.
  • Три режима на синхронизация покриват повечето нужди: планирани актуализации, актуализации, задействани от webhook при push, и ръчни актуализации.
  • Може да създадете .autodeploy скрипт, който да съдържа вашите команди за деплоймент; SPanel ще ги изпълни.
  • При неуспешно автоматично издърпване, SPanel изпраща имейл известие. Друг имейл пристига, когато автоматичните издърпвания заработят отново.
  • Можете да спрете синхронизирането, без да изтривате вече издърпаните файлове.

Защо автоматичното Git синхронизиране е важно

Много сайтове все още се актуализират посредством FTP клиенти. Грешките при този процес не са рядкост. Качвате 11 файла, забравяте 12-тия, и началната страница спира да работи. Няма логове, така че дори не знаете какво се е объркало.

При Git има логове: всяка промяна е commit, а връщането назад е една команда. Това, което Git не прави сам по себе си, е да постави тези commit-нати файлове на вашия live сървър. Това е функция на Git Version Control на SPanel. Благодарение на него, един git push запазва работата ви и я изпраща на сървъра ви.

Добавяте хранилището само веднъж. Чрез интерфейса на SPanel посочвате неговия URL, избирате клон, избирате как да се обработват издърпванията. Push-ването към този клон след това актуализира копието на сървъра според избрания от вас график, а .autodeploy скриптът се изпълнява след всяко издърпване, за да обработи всяка build стъпка.

Какво прави Git Deployment и какво не прави

Някои хора предполагат, че „Git deployment“ означава, че панелът изгражда проекта ви за вас. Това не е така. SPanel издърпва commit-натите файлове и след това, което е зададено в .autodeploy.

Обикновен HTML или PHP, който се доставя както е, може да не се нуждае от допълнителни стъпки. Ако сайтът ви се нуждае от npm install или команда за build на framework, тези команди трябва да дойдат от вас. Другото погрешно схващане е, че най-бързата опция с време, „Every 3 minutes“, е мигновена. За промени, които трябва да излязат в момента, в който push-нете, използвайте Webhook.

Как всъщност работи

Функцията pull казва на вашия сървър да вземе последната версия на вашия проект и да я синхронизира със сървърното копие. Клонът е една линия от историята на вашия проект, като main се използва за активния сайт, а staging за тестване.

SPanel клонира кода избрания от вас в Repository Path. Задавате кой Branch да проследява (main по подразбиране) и след това избирате режим на Automatic Pull & Deploy.

Опциите с време – Every 3 minutes, Every 5 minutes, Every 15 minutes – проверяват хранилището по график. Webhook обръща посоката: вашият Git доставчик казва на SPanel в момента, в който push-нете, и издърпването се случва тогава. Disabled оставя кода статичен, докато не го издърпате сами.

Как да поддържате уебсайт с Git Push: Автоматично синхронизиране в SPanel, Как всъщност работи

След всяко издърпване, ако има файл с име .autodeploy в основната папка на хранилището, SPanel го изпълнява. Скриптът трябва да започва с пътя към интерпретатор, като #!/bin/bash или #!/opt/remi/php84/root/usr/bin/php. Вътре са стъпките, които превръщат извлечените файлове в работещ сайт.

Къде SPanel е различен

В SPanel синхронизирането на кода е функция на панела, а не задача изискваща команди. Няма нужда от SSH, cron задачи или Git hook – клониране, график, клон и post-pull hook  са достъпни на един екран на всички управляеми VPS планове на NS1.

Два детайла са решаващи тук. Първо, частните хранилища се обработват в панела: изберете Private като Repository Type и SPanel показва PAT Token и SSH Authentication за сигурен достъп. Второ, неуспешната синхронизация е лесна за забелязване. Когато автоматично издърпване не мине, SPanel изпраща имейл на контактния адрес на акаунта. Когато издърпването успее при следващия опит, се изпраща известие за възстановяване, така че собственикът на акаунта знае, че всичко е наред.

Как да поддържате уебсайт с Git Push: Автоматично синхронизиране в SPanel, Къде SPanel е различен

Всяко хранилище, което добавите, попада в списъка Existing Repositories, където имате падащо меню Actions с опции за Pull & Deploy, Manage (където виждате логовете) и Remove.

Как да поддържате уебсайт с Git Push: Автоматично синхронизиране в SPanel, Къде SPanel е различен 2

Какво бихте правили без SPanel

Без панел използването на git е цяла верига, която изграждате и поддържате сами: SSH сесия, cron job или post-pull hook за задействане на всяко синхронизиране, deploy скрипт, който пишете на ръка, и собствен мониторинг, за да хванете евентуални грешки. Git Version Control ви дава всичко това в един екран, с вградени известия за неуспех и възстановяване.

Кой режим на синхронизация да изберете

Можете да използвате по един режим Automatic Pull & Deploy за всяко хранилище. Тази таблица показва как работят различните режими и за кои сценарии пасват най-добре.

РежимКак се задействаНай-добре заКомпромис
DisabledВие кликвате Pull & Deploy самиРазгръщания, които искате да контролирате ръчноНищо не се разгръща, докато не действате
Every 3 minutesПланирано издърпванеАктивни сайтове, нуждаещи се от бързи актуализацииМалко забавяне; не е мгновено
Every 5 minutesПланирано издърпванеОбщи активни проектиМалко забавяне
Every 15 minutesПланирано издърпванеРедки редакции, сайтове със съдържаниеНай-дългото чакане от опциите с време
WebhookДоставчикът пингва SPanel при pushМгновени разгръщания в момента, в който push-нетеИзисква настройка на webhook от страна на доставчика

Накратко: изберете Webhook, когато push трябва да стане активен незабавно, интервал с време, когато няколко минути забавяне е приемливо, и Disabled, когато искате да контролирате всяка синхронизация.

Ограничения и компромиси

Тази функция разгръща файлове; тя не проектира вашия сайт. SPanel няма да изгради проекта ви, да изпълни миграции на база данни или да рестартира услуги, освен ако вашият .autodeploy скрипт не му каже. Автоматичното разгръщане не ви спасява от лош commit – панелът само проверява дали издърпването е успешно, не дали кодът ви работи.

Режимите с време работят на базата на график. Дори Every 3 minutes оставя кратък прозорец между push и live, така че критични синхронизации трябва да използват Webhook или ръчно Pull & Deploy.

Настройката на Webhook също включва стъпка от страна на вашия Git доставчик, която е най-добре да бъде потвърдена от тяхната текуща документация. Пътят към интерпретатора във вашия .autodeploy файл също трябва да е валиден, иначе скриптът спира преди да започне.

Препоръчан работен процес и стъпки

Започнете на non-production клон: клонирайте кода, проследете staging и задайте Disabled, така че нищо да не се синхронизира, докато експериментирате. Задействайте ръчно Pull & Deploy, отворете Log и потвърдете, че файловете попадат където очаквате и че .autodeploy скриптът се изпълнява правилно.

След като този цикъл е чист, насочете второ хранилище или клон към production. Изберете Webhook за мгновени разгръщания, или интервал с време, ако няколко минути забавяне е добре, и използвайте PAT Token или SSH Authentication за частни хранилища, докато държите тайните извън синхронизираните файлове.

Ето стъпка по стъпка ръководство:

  1. В потребителския интерфейс на SPanel отворете Git Version Control.
  2. Прегледайте панела Existing Repositories и неговите колони: Name, Path, URL, Status, Branches и Actions.
  3. Кликнете Create a New Repository, за да отворите формата Create A New Repository.
  4. Въведете Repository Name (например my-awesome-project) и задайте Repository Path под home директорията на акаунта си, като използвате бутона Browse, ако е необходимо.
  5. Изберете Repository Type. За Private попълнете PAT Token или SSH Authentication.
  6. Поставете Repository URL (например https://github.com/user/repo.git) и задайте Branch (по подразбиране main).
  7. Изберете режим Automatic Pull & Deploy: Disabled, Every 3 minutes, Every 5 minutes, Every 15 minutes или Webhook.
  8. Кликнете Clone Repository. Хранилището се появява в Existing Repositories, където можете да използвате Pull & Deploy, Manage или Remove.

ЧЗВ

В: Изгражда ли SPanel моя проект или просто копира файловете?

О: Той копира commit-натите файлове при всяко издърпване и изпълнява build само ако предоставите такъв. Поставете вашите команди за build и deploy в изпълним .autodeploy скрипт в папката на хранилището и SPanel го изпълнява след всяко издърпване. Статичните сайтове не се нуждаят от такъв скрипт.

В: Колко бързо е автоматичното разгръщане след като push-на?

О: Това зависи от режима. Опциите с време издърпват по часовник – Every 3 minutes, Every 5 minutes или Every 15 minutes – така че push отива на живо в рамките на този прозорец. Webhook е различен: вашият Git доставчик уведомява SPanel в момента, в който push-нете, и издърпването се случва тогава.

В: Мога ли да синхронизирам частни GitHub или GitLab хранилища?

О: Да. Задайте Repository Type на Private във формата за създаване и SPanel показва PAT Token и SSH Authentication, така че да се свържете сигурно. Тази функционалност се поддържа от GitHub, GitLab, Bitbucket или самостоятелно хостван Git сървър, през HTTPS или SSH. Дръжте токена или ключа в тези полета на панела, а не в хранилището.

В: Какво се случва, ако автоматично издърпване се провали?

О: SPanel изпраща имейл на контактния адрес на акаунта, така че неуспешното синхронизиране не остава незабелязано. Имейл за възстановяване ще бъде изпратен, когато издърпванията започнат да работят отново. Тествайте тази функция, преди да разчитате на синхронизацията за вашия активен сайт.

В: Кой клон синхронизира SPanel?

О: Този, който зададете в полето Branch. По подразбиране е избран main. SPanel може да изброява и превключва клонове на добавено хранилище, така че можете да насочите production към main и тестово копие към друг клон. Промяната на проследения клон променя какво следващото издърпване разгръща, заради което тестването първо на non-production клон е по-безопасно.

В: Мога ли да премахна хранилище без да изтрия сайта си?

О: Да. Remove спира синхронизирането на кода, но не изтрива файловете, които вече са качени. Вашият сайт продължава да работи с тях. Ако искате и те да изчезнат, премахнете ги отделно през File Manager, след като спрете проследяването.

Заключение

Полезно е да комбинирате Git синхронизацията с останалата част от инструментите на SPanel, включително планирани задачи чрез Cron Job Manager и по-безопасни актуализации чрез WordPress Manager. Можете да поискате или гласувате за нови функции чрез борда Cloud Democracy на features.spanel.io. 

 

Борислав Тонев

Автор

Борислав е копирайтър с набито око за детайла и увлечение по информационните технологии, което датира от детството му. През годините, той е писал за огромно разнообразие от най-различни теми, но признава, че най-вълнуващото предизвикателство за него е да разбере как работи модерният онлайн свят и да предаде знанията си на читателите.

Напишете коментар

Задължително поле*