πΎ Archived View for ychbn.flounder.online βΊ posts βΊ 2017-12-29-deploy-jekyll-blog.gmi captured on 2022-06-04 at 00:15:10. Gemini links have been rewritten to link to archived content
β¬ οΈ Previous capture (2021-11-30)
-=-=-=-=-=-=-
date: 2017-12-29 02:30:40 +0300
ΠΠ»Ρ 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, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ 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