Nový web – migrácia na wordpress

Možno ste si všimli, že môj web trochu zmenil podobu. Rozhodol som sa prejsť z jekyll na WordPress, najmä kvôli väčším možnostiam, pluginom a lepšej podpore viacerých jazykov. Stará stránka bola trochu chaotická – niečo bolo po anglicky, niečo po slovensky.

Pocta môjmu starému webu na Jekyll

Je to zaujímavé, pretože si možno spomeniete, že som WordPress párkrát rituálne zmazal. (Rituálne zmazanie sa oproti obyčajnému zmazaniu vyznačuje tým, že sa pritom nadáva a počas mazania je potrebné mať svedkov). Faktom je, že som vôbec nevedel, že WordPress je podobný ako Čínska reštaurácia – všetko je super, len sa nesmieš pozrieť do kuchyne (v prípade WordPressu na zdrojáky).

Názor som zmenil po veľmi pozitívnej skúsenosti s používaním WordPressu na webe Paralelnej Polis. Hlavne nový vizuálny editor blogov je veľmi pekný. Do toho som bol za barom v Bitcoin Coffee, keď sa vedľa mňa odohrávala WordPress Academy, tak som si povedal, že to stojí za pokus. Mimochodom, ak sa chcete naučiť robiť s wordpressom, wpacademy odporúčam už len z toho, čo som počul v diaľke, ale popri tom som ako barista robil kávy, pomáhal niekomu upgradovať Trezor a diskutoval o double-spend útokoch.

Poďme však na moju skúsenosť s migráciou.

Pluginy

Keď som začínal s WordPressom, najviac mi chýbalo to, že som nevedel, ktoré pluginy použiť. Na každú funkcionalitu má WordPress nejaký plug-in, problém je, že väčšinou ich je veľa. Vďaka Peťovi Nemčokovi z Webikon, čo sú profíci som sa učil robiť s WordPressom na stránke Paralelná Polis, ktorú sme tak trochu uťapkali spolu. Chvíľu trvalo, kým sme našli všetko, čo sme potrebovali.

Takže som postupom času našiel nejaké pekné plug-iny na ktoré som si zvykol:

  • Free & Simple Contact Form Plugin – Pirateforms
  • Google Tag Manager for WordPress – odporúčam používať Google Tag Manager na spravovanie vecí ako Facebook Pixel, Google Analytics a podobne – ak ich chcete používať
  • Polylang – na viacjazyčné weby
  • UpdraftPlus – Backup/restore – zálohujte často!
  • Facebook Open Graph – na opengraph tagy pre sharovanie na sociálnych sieťach
  • AMP for WordPress
  • Instagram Feed WD – kúlový instagram feed tu dole. Tento plugin nie je až taký super ako väčšina ostatných pluginov, ale z instagram pluginov asi najlepší
  • Public Post Preview – dá sa zdieľať link s článkom ešte skôr ako sa článok zverejní, ale aj mimo ľudí, ktorí majú užívateľov. Môžete používať na zdieľanie postu právnikovi predtým ako napíšete nasratý kontroverzný článok 🙂
  • Easy WordPress SMTP – aby maily išli cez SMTP nie cez mail() z PHP
  • Elementor – umožňuje vytvárať rôzne elementy, kompatibilný s väčšinou tém (na tejto stránke nepoužívam, používa iba Paralelná Polis)
  • The Events Calendar – tiež používa iba Paralelná Polis na zobrazovanie udalostí. Pravdupovediac, tento kalendár je asi najlepší zo všetkých zlých možností, ktoré sme našli. Napríklad nie je možné prihlásiť sa k odberu privátnych udalostí cez jedno URL, takže ak niekto v Polis zarezervuje priestor na nejakú privátnu udalosť, nevidíme to v kalendári bez toho, aby sme udalosť zverejnili.
  • Camptix – plug-in na predaj lístkov na akcie. Tiež nie je úplne najlepší, ale podarilo sa nám zintegrovať platobnú bránu na kryptomeny, dá sa tam špecifikovať počet lístkov, aj keď user-experience by mohla byť oveľa lepšia
  • Blubrry PowerPress – používam ja na podcasty. Import neprebehol až tak jednoducho ako by som čakal, ale nakoniec všetko dobre dopadlo a blogposty som nakoniec dokázal premeniť na RSS feed.
  • CyberSyn – import z RSS. Použil som na migráciu z Jekyll, viď nižšie
  • Header Footer Code Manager – ak chcete pridať nejaký HTML kód mimo Google Tag managera

Migrácia z Jekyll

Jekyll je generátor statického webu, čo sa mi páči z pohľadu bezpečnosti. Používame ho aj na stránke Citadelo, čo samozrejme dáva zmysel – firma, ktorá sa primárne zaoberá bezpečnosťou robí trochu iné rozhodnutia ako hipsterský blog. Aj napriek tomu verím, že moja účasť v Hacktrophy mi pomôže vychytať prípadné bugy skôr ako zlí hackeri. Zatiaľ to vždy zafungovalo. K bezpečnosti sa ešte dostanem nižšie.

Na migráciu som použil skript a návod od Davida Lyncha :). Skript som musel upraviť kvôli novým riadkom, ktoré robili šarapatu pri importe, podcastom a videám. Na import som skúšal viaceré pluginy, nakoniec zafungoval CyberSyn. Čo bolo trochu ťažšie bolo zachovať URL – nie u všetkých sa mi to podarilo, ale v nastaveniach wordpressu som zachoval podobnú schému (kategória/dátum/slug), akurát v Jekylle som slug menil manuálne a ten sa nepreniesol, takže som ho musel ručne prepísať. Našťastie som importoval len posledných 100 článkov, takže stačilo trošku cut&pastovať. Problém bol aj s časovými zónami, čo je problém ak píšem články okolo polnoci, tak keď nesedí časová zóna, trafím sa do iného dňa, čo pokazilo dátumy. Nakoniec som polnočné články presunul na ôsmu hodinu ráno.

Zároveň bolo treba opraviť nejaké obrázky, aj keď niektoré sa preniesli.

Migrácia podcastu by mala ísť tiež cez RSS, ale keďže dané články som už importol inak, tak rýchlejšia cesta bola prekopírovať MP3 a URL dať v PowerPress Podcast plug-ine pod každý článok. Vyzerá, že všetko funguje.

Bezpečnosť

Zabezpečenie wordpressu pomocou .htaccess, oskenovanie cez wpscan.

Nastavenie bezpečnosti – všetko ide cez HTTPS vďaka letsencrypt. Ako webserver používam nginx, takže vytunenie nastavenia SSL protokolu:

ssl_dhparam /etc/ssl/certs/dhparam.pem;

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DHE+AES128:!ADH:!AECDH:!MD5;
ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 30s;

Pár bezpečnostných hlavičiek:

add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header Referrer-Policy "strict-origin-when-cross-origin";
add_header X-XSS-Protection "1; mode=block";

server_tokens off;

Skontrolovať cez službu Security Headers a SSL Labs Test. Nemusí to byť dokonalé, ale ani netreba podporovať storočné browsre a nechať si tak dieru.

Ostatné je na hackeroch z Hacktrophy, čiže aj na vás.

Dúfam, že sa vám nový web páči, je to zatiaľ veľmi málo prispôsobená téma z nového WordPressu 5 – Twentynineteen. Postupne sa bude trochu meniť, pretože teraz konečne dokážem spraviť to, čo som doteraz nevedel efektívne urobiť – ukázať vám všetky projekty, na ktorých participujem, prezentovať vám informácie o kryptomenách, biohackingu, travel hackingu, investovaní, hackovaní a podobne.

Keďže sa momentálne venujem prevažne neziskovým aktivitám, budem rád, ak ma podporíte.

5 odpovedí na “Nový web – migrácia na wordpress”

Ahoj,
zaujimalo by ma, preco si sa rozhodol pre “Contact Form & SMTP Plugin for WordPress by PirateForms” miesto “CF7” ,
a tiez “Open Graph for Facebook, Google+ and Twitter Card Tags” miesto “Yoast”.
Urcite si si robil vyskum, co je najlepsie pouzit, tak som zvedavy co ta presvedcilo 🙂

Zdravím,
Díky za tip na pluginy.
Co se týká wordpressu. Pokud by chtěl někdo zjednodušit praci. Koukněte sem https://roots.io/
Umožňuje to vyhodit zakladni WP instalaci z repozitáře a pomoci composeru (PHP package manager) nainstalovat pluginy.
V podstatě docílite toho udělat automation deploy přes Capistrano, což se mi teď nedávno povedlo :-).
Plugin Timber je taky dobry, pouziva Twig template language pro PHP. Dobre na lepši strukturu šablon
Sage theme vam umožní použít basic Layout. Takže nemusite vkladat header a footer do každé template 😉

Skoro som neveril vlastnym ociam, ked citam ten nadpis, ze zrovna ty podlahnes WP 🙂 A cakal som hned nejake “specialne” nastavenia (nenechat default admin URL, znemoznit najst verziu wp, zoznam a verzie pluginov,… )

Zo zvedavosti, ako mas zautomatizovane aktualizacie a notifikacie, ked sa najde bezpecnostny problem v plugine ?

Používam Sucuri plugin, wpscan (ručne), hardening som ešte trochu updatol od posledného blogu a pridal som basic auth na /wp-admin. Veľmi neverím na security by obscurity, teda to, že vidno verziu wordpressu mi je viac-menej jedno (security updaty sa aj tak aplikujú automaticky v nových verziách WP).

Komentáre sú zakázané.