πŸ’Ύ Archived View for ychbn.flounder.online β€Ί posts β€Ί 2017-12-29-deploy-jekyll-blog.gmi captured on 2023-06-14 at 14:10:44. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-11-30)

-=-=-=-=-=-=-

Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ сайта c Jekyll Π½Π° FTP

date: 2017-12-29 02:30:40 +0300

Main

About

Contacts

Для Jekyll ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ хостинг Π±Π΅Π· использования Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, языков программирования ΠΈ Ρ‚.ΠΏ, Ρ‚.Π΅. хостинг статичных страниц.

БобствСнно, всС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ сайта Π² Ρ‚Π°ΠΊΠΎΠΌ случаС сводится ΠΊ Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π½Π° FTP.

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ докумСнтация jekyll:

To upload a Jekyll site to a web host using FTP, simply run the jekyll build
command and copy the contents of the generated _site folder to the root folder
of your hosting account. This is most likely to be the httpdocs or public_html
folder on most hosting providers.

Π’.Π΅. для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ свой сайт прямо Π½Π° ftp, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ `jekyll build`, послС Ρ‡Π΅Π³ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ `_site` Π½Π° FTP (ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ наимСнования ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ `httpdocs`, `htdocs`, `public_html`).

Π ΡƒΡ‡Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° FTP

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° FTP, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ

Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ Midnight Commander.

Для этого послС Π΅Π³ΠΎ запуска

АвтоматичСскоС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅

НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΊΠΎΠ΄ скрипта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ сайт Π½Π° ftp

хостСра автоматичСски.

__UPD 2018-09-27__

БСйчас я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π³Π΅ΠΌ `glynn`, ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ€aΡ‚ΡŒ

Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· _config.yml

#!/usr/bin/perl

use strict;
use warnings;
use Net::FTP;
use Net::FTP::Recursive;
use File::Path;
use Getopt::Long;

my $host = 'ftp.ezio.neolocation.net';
my $username = 'username';
my $password = 'password';
my $rootpath = '/htdocs';
my $backup = '';
my $backuppath = './backup';
my $contentpath = './_site';

GetOptions("host=s" => \$host,
           "username=s" => \$username,
           "password=s" => \$password,
           "rootpath=s" => \$rootpath,
           "backup" => \$backup,
           "backuppath=s" => \$backuppath,
           "contentpath=s" => \$contentpath);

sub backup {
    my ($connection,$backuppath, $rootpath) = @_;
    my $rmcount = File::Path::remove_tree($backuppath);
    mkdir $backuppath;
    chdir $backuppath;
    $connection->cwd($rootpath) or die "Cannot change working directory to $rootpath";
    $connection->rget();
    chdir '../';
    return $rmcount;
}

sub upload {
    my ($connection, $rootpath, $contentpath) = @_;
    $connection -> cwd($rootpath) or die "Cannot switch ftp directory to $rootpath";
    $connection -> rdelete();
    chdir $contentpath;
    $connection -> rput();
    return;
}

sub _connect {
    my ($host, $username, $password) = @_;
    my $ftp = Net::FTP::Recursive->new($host, Debug => 0) or die "Cannot connect to $host";
    $ftp->login($username, $password) or die "Cannot login to ftp";
    $ftp->binary();
    return $ftp;
}


my $ftp = _connect($host, $username, $password);

if ($backup) {
    backup($ftp, $backuppath, $rootpath);
}

upload($ftp, $rootpath, $contentpath);

$ftp->quit;

Π­Ρ‚ΠΎΡ‚ скрипт Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Jekyll- сайта ΠΈ

Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π±Π΅Π· указания слова "perl":

chmod +x deploy.pl

Если скрипт Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ `--backup`, Ρ‚ΠΎ сначала Π±ΡƒΠ΄Π΅Ρ‚ создан бэкап ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ(Ρ‚ΠΎΠΉ, Ρ‡Ρ‚ΠΎ Π½Π° ftp) Π² ΠΏΠ°ΠΏΠΊΡƒ `backup`, послС Ρ‡Π΅Π³ΠΎ удаляСт всС содСрТимоС ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ(`htdocs`) ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΡƒΠ΄Π° содСрТимоС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ `_site`.

НаимСнованиС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒΡΡ бэкап, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ: `--backuppath=backupfolder'.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ написан быстро ΠΈ грязно, Π½ΠΎ позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ запуском ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· jekyll Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ сайта:

./deploy.pl

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ сайт ΠΈ сразу ΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° ftp,

ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

jekyll build && ./deploy.pl