Ako nasadiť Ghost v0.11 LTS na Fedore 25

Ghost je platforma na blogovanie s otvoreným zdrojom, ktorá si od svojho vydania v roku 2013 získava na popularite medzi vývojármi aj bežnými používateľmi. Zameriava sa na obsah a blogovanie. Najatraktívnejšia vec na Ghost je jeho jednoduchý, čistý a citlivý dizajn. Svoje blogové príspevky môžete písať z mobilného telefónu. Obsah pre Ghost je napísaný pomocou jazyka Markdown. Ghost sa perfektne hodí pre jednotlivcov alebo malé skupiny spisovateľov.

V tejto príručke budeme nastaviť a nasadiť bezpečné duch v0.11.x LTS blog na Fedora 25 VPS s použitím Poďme šifrovania , Certbot , Node.js , NPM , Nginx a MySQL .

Požiadavky

  • Zaregistrujte si (kúpte) názov domény.
  • Inštancia servera Fedora 25 s minimálne 1 GB RAM .
  • Používateľ sudo.
  • Pravdepodobne budete musieť otvoriť port 2368 pomocou semanage port -a -t http_port_t -p tcp 2368.

Predtým ako začneš

  1. Skontrolujte verziu Fedory:

    cat /etc/fedora-release
    # Fedora release 25 (Twenty Five)
    
  2. Vytvorte nového používateľa bez oprávnenia root :

    useradd -c "John Doe" johndoe && passwd johndoe
    
  3. Urobte z neho superužívateľa tak, že ho pridáte do wheelskupiny:

    usermod -aG wheel johndoe
    
  4. Prepnúť na nového používateľa:

    su - johndoe
    
  5. Aktualizujte softvér operačného systému:

    sudo dnf check-update || sudo dnf upgrade -y
    
  6. Nastavte časové pásmo:

    timedatectl list-timezones
    sudo timedatectl set-timezone 'Region/City'
    
  7. Nainštalujte vývojové nástroje:

    sudo dnf install @development-tools -y
    
  8. Nainštalujte textový editor Vim a Wget:

    sudo dnf install -y vim wget
    
  9. V prípade potreby reštartujte systém:

    sudo shutdown -r now
    

Nainštalujte Certbot

NOTE: Before starting this step, ensure that you have set DNS records for your domain.

Na získanie certifikátu SSL/TLS pre náš blog Ghost použijeme Let's Encrypt CA a EFF 's Certbot . Nezabudnite nahradiť všetky inštancie domény názvom vašej domény.blog.domain.tld

  1. Nainštalujte softvér na správu certifikátov Certbot (predtým Let's Encrypt client ) vytvorený v jazyku Python:

    sudo dnf install -y certbot
    
  2. Skontrolujte verziu Certbotu:

    certbot --version
    # certbot 0.14.1
    
  3. Získajte certifikát RSA pomocou samostatnej metódy overenia (doplnku):

    sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email [email protected] --no-eff-email --agree-tos
    
    # IMPORTANT NOTES:
    #  - Congratulations! Your certificate and chain have been saved at 
       /etc/letsencrypt/live/blog.domain.tld/fullchain.pem.
    #  Your cert will expire on YYYY-MM-DD. . . .
    #  . . .
    

    Po vykonaní predchádzajúcich krokov bude váš certifikát a súkromný kľúč v /etc/letsencrypt/live/blog.domain.tldadresári.

Nainštalujte Node.js a NPM

NOTE: Ghost currently supports Node.js versions 4.5+ and 6.9+ only.

Ghost je postavený na Node.js. Chystáme sa nainštalovať odporúčanú verziu pre Ghost, ktorá je v6 Boron LTSv čase písania tohto článku.

  1. Stiahnite si a nainštalujte Node.js v6 LTS:

    curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
    sudo dnf install -y nodejs
    
  2. Skontrolujte verziu Node.js a NPM:

    node -v && npm -v
    # v6.11.2
    # 3.10.10
    

Nainštalujte MySQL

V predvolenom nastavení je Ghost nakonfigurovaný na používanie databázy SQLite, ktorá nevyžaduje žiadnu konfiguráciu.

Alternatívne je možné Ghost použiť aj s databázou MySQL zmenou konfigurácie databázy. Najprv musíte vytvoriť databázu a používateľa, potom môžete zmeniť existujúcu konfiguráciu sqlite3.

  1. Stiahnite si a nainštalujte najnovšiu verziu MySQL (aktuálne 5.7 ) z oficiálneho úložiska MySQL Dnf:

    cd /tmp
    
    # Adding the MySQL dnf Repository
    wget https://dev.mysql.com/get/mysql57-community-release-fc25-10.noarch.rpm
    sudo dnf install -y mysql57-community-release-fc25-10.noarch.rpm
    
    # Installing MySQL
    sudo dnf install -y mysql-community-server
    
  2. Skontrolujte verziu MySQL:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using  EditLine wrapper
    
  3. Spustite MySQL Server a skontrolujte jeho stav:

    sudo systemctl start mysqld.service
    sudo systemctl status mysqld.service
    
  4. MySQL verzie 5.7 alebo vyššej generuje dočasné náhodné heslo pre rootpoužívateľa MySQL po inštalácii a heslo je uložené v súbore denníka chýb MySQL, ktorý sa nachádza na adrese /var/log/mysqld.log. Ak ho chcete odhaliť, použite nasledujúci príkaz:

    sudo grep 'temporary password' /var/log/mysqld.log
    
  5. Spustite mysql_secure_installationskript, aby ste trochu zabezpečili databázu:

    NOTE: Password Validation Plugin is installed and enabled, so your new password for root user needs to be strong (one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters). If you want to relax that or disable plugin completely (not recommended) consult the official MySQL documentation for how to do that.

    sudo mysql_secure_installation
    
  6. Prihláste sa do MySQL ako užívateľ root:

    mysql -u root -p
    # Enter password:
    
  7. Vytvorte novú databázu MySQL a používateľa:

    create database dbname;
    grant all on dbname.* to 'user' identified by 'password';
    
  8. Ukončite MySQL:

    exit
    

Nainštalujte NGINX

  1. Stiahnite si a nainštalujte NGINX:

    sudo dnf install -y nginx
    
  2. Verify that it is installed by checking the NGINX version:

    sudo nginx -v
    # nginx version: nginx/1.10.2
    
  3. Check status, enable and start NGINX service (daemon):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Create /etc/nginx/ssl directory and generate a new Diffie-Hellman (DH) parameters:

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. Create log directory for blog.domain.tld virtual host:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. Configure NGINX as a HTTP(S) reverse proxy server:

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Paste the following in /etc/nginx/conf.d/ghost.conf:

    # domain: blog.domain.tld
    # public: /var/www/ghost
    
    upstream ghost_app {
        server 127.0.0.1:2368;
        keepalive 32;
    }
    
    server {
        listen [::]:80;
        listen 80;
        listen [::]:443 ssl http2;
        listen 443 ssl http2;
    
        server_name blog.domain.tld;
        root /var/www/ghost;
    
        error_log /var/log/nginx/blog.domain.tld/error.log;
        access_log /var/log/nginx/blog.domain.tld/access.log;
    
        client_max_body_size 100M;
    
        ssl_certificate /etc/letsencrypt/live/blog.domain.tld/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/blog.domain.tld/privkey.pem;
        ssl_dhparam ssl/dhparams-2048.pem;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;
    
        ssl_buffer_size 4K;
    
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50M;
        ssl_session_tickets off;
    
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/letsencrypt/live/blog.domain.tld/chain.pem;
    
        resolver 8.8.8.8 8.8.4.4 valid=300s;
    
        location / {
            proxy_pass http://ghost_app;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_hide_header X-Powered-By;
    
            proxy_http_version 1.1;
            proxy_set_header Connection "";
        }
    }
    
  8. Save and test NGINX configuration for syntax errors:

    sudo nginx -t
    
  9. Reload NGINX configuration:

    sudo systemctl reload nginx.service
    

Install Ghost

NOTE: If you want to host multiple Ghost blogs on same VPS, each Ghost instance must be running on a separate port.

  1. Create document root directory:

    sudo mkdir -p /var/www/
    
  2. Create a new ghost user:

    sudo useradd -c 'Ghost application' ghost
    
  3. Download Ghost:

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
    
  4. Unzip Ghost into the /var/www/ghost directory (recommended install location):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Move to the new ghost directory:

    cd /var/www/ghost
    
  6. Change the ownership of the /var/www/ghost directory:

    sudo chown -R ghost:ghost .
    
  7. Switch to new ghost user:

    sudo su - ghost
    
  8. Prejdite do koreňového adresára dokumentu /var/www/ghost:

    cd /var/www/ghost
    
  9. Nainštalujte Ghost iba s produkčnými závislosťami. Po dokončení sa Ghost nainštaluje:

    npm install --production
    
  10. Konfigurácia Duch zmenou url, maila databasevlastníctvo výrobných objektov dovnútra config.jssúboru:

    cp config.example.js config.js
    vim /var/www/ghost/config.js
    
    
    var path = require('path'),
        config;
    
    config = {
    // ### Production
    // When running Ghost in the wild, use the production environment.
    // Configure your URL and mail settings here
    production: {
        url: 'https://blog.domain.tld',
        mail: {
            transport: 'SMTP',
            options: {
                service: 'Mailgun',
                auth: {
                    user: '',
                    pass: ''
                }
            }
        },
        database: {
            client: 'mysql',
            connection: {
                host: '127.0.0.1',
                user: 'your_database_user',
                password: 'your_database_password',
                database: 'your_database_name',
                charset: 'utf8'
            },
            debug: false
        },
        // . . .
        // . . .
    

    NOTE: You should configure mail settings also. Consult the official Ghost documentation on how to do that.

  11. Spustite Ghost v produkčnom prostredí:

    npm start --production
    

    Ghost bude teraz bežať. Front-end blogu aj rozhranie správcu sú zabezpečené pomocou HTTPS a funguje aj HTTP/2. Môžete otvoriť prehliadač a navštíviť stránku na adrese https://blog.domain.tld. Nezabudnite ho nahradiť blog.domain.tldnázvom vašej domény.

  12. Ukončite proces Ghost stlačením CTRL+ Ca opustite používateľa Ghost späť na používateľa bez oprávnenia root , ktorého ste vytvorili na začiatku:

    exit
    

Spustenie Ghost ako systémovej služby

Ak zatvoríte reláciu terminálu so svojím VPS, váš blog tiež prestane fungovať. To nie je dobré. Aby sme tomu zabránili, použijeme systemd. Náš blog bude fungovať 24 hodín denne, 7 dní v týždni.

  1. Vytvorte ghost.servicesúbor systémovej jednotky. Spustite sudo sudo vim /etc/systemd/system/ghost.servicea skopírujte/prilepte obsah nižšie:

    [Unit]
    Description=Ghost - the professional publishing platform
    Documentation=https://docs.ghost.org/v0.11.11/docs
    After=network.target
    
    [Service]
    Type=simple
    # Edit WorkingDirectory, User and Group as needed
    WorkingDirectory=/var/www/ghost
    User=ghost
    Group=ghost
    ExecStart=/usr/bin/npm start --production
    ExecStop=/usr/bin/npm stop --production
    Restart=always
    SyslogIdentifier=Ghost
    
    [Install]
    WantedBy=multi-user.target
    
  2. Povoliť a spustiť ghost.service:

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. Skontrolujte ghost.servicestav:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. Prejdite na https://blog.domain.tld/ghost/a vytvorte používateľa správcu Ghost. Urobte to čo najskôr!

Záver

To je všetko. Teraz máme plne funkčný blog Ghost. Váš server doručuje obsah cez HTTP/2, ak to klient podporuje. Ak chcete zmeniť predvolenú tému Ghost s názvom Casper na vlastnú, môžete si tému stiahnuť a rozbaliť do /var/www/ghost/content/themespriečinka a vybrať ju cez rozhranie správcu Ghost, ktoré sa nachádza na adrese https://blog.domain.tld/ghost.


Ako nainštalovať MODX Revolution na Ubuntu 16.04 LAMP VPS

Ako nainštalovať MODX Revolution na Ubuntu 16.04 LAMP VPS

Používate iný systém? MODX Revolution je rýchly, flexibilný, škálovateľný, bezplatný a open source podnikový systém správy obsahu (CMS) napísaný i

Ako nainštalovať MODX Revolution na FreeBSD 11 FAMP VPS

Ako nainštalovať MODX Revolution na FreeBSD 11 FAMP VPS

Používate iný systém? MODX Revolution je rýchly, flexibilný, škálovateľný, open source podnikový systém správy obsahu (CMS) napísaný v PHP. To i

Nainštalujte WordPress na OpenBSD 6.2

Nainštalujte WordPress na OpenBSD 6.2

Úvod WordPress je dominantný redakčný systém na internete. Poháňa všetko od blogov až po zložité webové stránky s dynamickým obsahom

Vytvorenie blogu Jekyll na CentOS 7

Vytvorenie blogu Jekyll na CentOS 7

Používate iný systém? Jekyll je dobrou alternatívou k WordPress. Nevyžaduje žiadne databázy a pracuje s jazykom, ktorý mnohí poznajú

Ako nainštalovať MODX Revolution na CentOS 7 LAMP VPS

Ako nainštalovať MODX Revolution na CentOS 7 LAMP VPS

Používate iný systém? MODX Revolution je rýchly, flexibilný, škálovateľný, bezplatný a open source podnikový systém správy obsahu (CMS) napísaný i

Inštalácia Fork CMS na CentOS 7

Inštalácia Fork CMS na CentOS 7

Používate iný systém? Fork je open source CMS napísaný v PHP. Zdrojový kód Forks je hostený na GitHub. Táto príručka vám ukáže, ako nainštalovať Fork CM

Ako nainštalovať Neos CMS na CentOS 7

Ako nainštalovať Neos CMS na CentOS 7

Neos je inovatívny open source systém na správu obsahu, ktorý je skvelý na vytváranie a úpravu online obsahu. S ohľadom na autorov a redaktorov, Neo

Ako nasadiť Ghost v0.11 LTS na CentOS 7.3

Ako nasadiť Ghost v0.11 LTS na CentOS 7.3

Používate iný systém? Ghost je open source platforma na blogovanie, ktorá si od roku 201 získava na popularite medzi vývojármi aj bežnými používateľmi.

Inštalácia Fork CMS na Fedora 28

Inštalácia Fork CMS na Fedora 28

Používate iný systém? Fork je open source CMS napísaný v PHP. Zdrojový kód Forks je hostený na GitHub. Táto príručka vám ukáže, ako nainštalovať Fork CM

Ako nainštalovať SilverStripe CMS na FreeBSD 11 FAMP VPS

Ako nainštalovať SilverStripe CMS na FreeBSD 11 FAMP VPS

Používate iný systém? SilverStripe je flexibilný a rozšíriteľný, open source podnikový systém správy obsahu (CMS) napísaný v PHP. Je to ľahké

Ako nasadiť Ghost v0.11 LTS na Fedore 25

Ako nasadiť Ghost v0.11 LTS na Fedore 25

Používate iný systém? Ghost je open source platforma na blogovanie, ktorá si od roku 201 získava na popularite medzi vývojármi aj bežnými používateľmi.

Ako nasadiť viacero stránok Wordpress pomocou Virtualmin a Ansible na Ubuntu 16.04

Ako nasadiť viacero stránok Wordpress pomocou Virtualmin a Ansible na Ubuntu 16.04

Bežným používaním virtuálneho servera Vultr je hosťovanie webových stránok Wordpress. Táto príručka vám ukáže, ako automatizovať konfiguráciu virtuálneho servera od začiatku

Nastavenie platformy Ghost Professional Publishing Platform na OpenBSD 6

Nastavenie platformy Ghost Professional Publishing Platform na OpenBSD 6

Ghost je najnovší a najväčší počiatok konkurenčného WordPressu. Vývoj tém sa dá rýchlo a ľahko naučiť, pretože vývojári Ghost sa rozhodli použiť obe th

Nainštalujte a nakonfigurujte blog Ghost v1.0.0 na Ubuntu 16.04

Nainštalujte a nakonfigurujte blog Ghost v1.0.0 na Ubuntu 16.04

Ghost je moderná, open source publikačná platforma postavená na Node.js s administračným klientom Ember.js, JSON API a tematickým API založeným na Handlebars.js. Ghos

Ako nainštalovať MODX Revolution na Fedora 26 LAMP VPS

Ako nainštalovať MODX Revolution na Fedora 26 LAMP VPS

Používate iný systém? MODX Revolution je rýchly, flexibilný, škálovateľný, bezplatný a open source podnikový systém správy obsahu (CMS) napísaný i

Ako nainštalovať Dotclear na Debian 9 (Stretch)

Ako nainštalovať Dotclear na Debian 9 (Stretch)

Používate iný systém? Dotclear je veľmi jednoduchý blogovací nástroj. Je to open source a ľahko sa používa. Tento návod prejde inštaláciou na

Ako nainštalovať SilverStripe CMS na Fedora 26 LAMP VPS

Ako nainštalovať SilverStripe CMS na Fedora 26 LAMP VPS

Používate iný systém? SilverStripe je flexibilný a rozšíriteľný bezplatný a open source podnikový systém správy obsahu (CMS) napísaný v PHP. ja

Inštalácia Fork CMS na Ubuntu 16.04 LTS

Inštalácia Fork CMS na Ubuntu 16.04 LTS

Používate iný systém? Fork je open source CMS napísaný v PHP. Zdrojový kód Forks je hostený na GitHub. Táto príručka vám ukáže, ako nainštalovať Fork CM

Ako nasadiť Ghost na Debiane 8.7

Ako nasadiť Ghost na Debiane 8.7

Používate iný systém? Ghost je platforma na blogovanie s otvoreným zdrojom, ktorá si od svojho vydania v roku 2013 získava na popularite medzi vývojármi a bežnými používateľmi. ja

Ako nainštalovať Typesetter CMS na CentOS 7

Ako nainštalovať Typesetter CMS na CentOS 7

Typesetter je open source CMS napísaný v PHP zameraný na jednoduché použitie s True WYSIWYG editáciou a plochým ukladaním súborov. V tomto článku budeme inštalovať

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac