Ako nasadiť Ghost v0.11 LTS na Ubuntu 16.04

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 Ubuntu 16.04 LTS VPS pomocou Poďme šifrovania , Certbot , Node.js , NPM , Nginx a MySQL .

Požiadavky

  • Zaregistrujte si (kúpte) názov domény.
  • Inštancia servera Ubuntu 16.04 s minimálne 1 GB RAM .
  • Používateľ sudo.

Predtým ako začneš

  1. Vytvorte nový používateľský účet typu non-root :

    adduser johndoe --gecos "John Doe"
    
  2. Urobte z neho superužívateľa tak, že ho pridáte do sudoskupiny:

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

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

    sudo apt update && sudo apt upgrade -y
    
  5. Nastavte časové pásmo:

    sudo dpkg-reconfigure tzdata
    
  6. Nainštalujte potrebné nástroje:

    sudo apt install -y build-essential zip unzip vim nano openssl wget curl git apt-transport-https
    
  7. 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 apt update
    sudo apt install -y software-properties-common
    sudo add-apt-repository -y ppa:certbot/certbot
    sudo apt update
    sudo apt install -y certbot
    
  2. Skontrolujte verziu Certbotu:

    certbot --version
    # certbot 0.14.2
    
  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 -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt install -y nodejs
    
  2. Skontrolujte verziu Node.js a NPM:

    node -v && npm -v
    # v6.11.1
    # 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 MySQL:

    sudo apt install -y mysql-server
    

    NOTE: During the installation, you will be prompted for MySQL "root" user password. You should set a secure password for the MySQL "root" user.

  2. Skontrolujte verziu MySQL:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper
    
  3. Skontrolujte, či sa spustil a beží démon MySQL:

    sudo systemctl status mysql.service
    sudo systemctl is-enabled mysql.service
    
  4. Spustite mysql_secure_installationskript, aby ste trochu zabezpečili databázu:

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

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

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

    exit
    

Nainštalujte NGINX

  1. Stiahnite si a nainštalujte najnovšiu hlavnú verziu NGINX z oficiálneho úložiska NGINX:

    wget https://nginx.org/keys/nginx_signing.key
    sudo apt-key add nginx_signing.key
    rm nginx_signing.key
    sudo -s
    printf "deb https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \ndeb-src https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \n" >> /etc/apt/sources.list.d/nginx_mainline.list
    exit
    sudo apt update
    sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
    
  2. Overte, či je nainštalovaný skontrolovaním verzie NGINX:

    sudo nginx -v
    # nginx version: nginx/1.13.3
    
  3. Skontrolujte stav, povoľte a spustite službu NGINX (démon):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Vytvorte /etc/nginx/ssladresár a vygenerujte novú skupinu Diffie-Hellman ( DH ):

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. Vytvorte adresár denníka pre blog.domain.tldvirtuálneho hostiteľa:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. Nakonfigurujte NGINX ako HTTP ( S ) reverzný proxy server:

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Vložte nasledovné do /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 default_server;
        listen 80 default_server;
        listen [::]:443 ssl http2 default_server;
        listen 443 ssl http2 default_server;
    
        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 TLSv1.3;
        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. Uložte a otestujte konfiguráciu NGINX na chyby syntaxe:

    sudo nginx -t
    
  9. Znova načítať konfiguráciu NGINX:

    sudo systemctl reload nginx.service
    

Nainštalujte Ghost

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

  1. Vytvorte koreňový adresár dokumentu:

    sudo mkdir -p /var/www/
    
  2. Vytvoriť nového ghostpoužívateľa:

    sudo adduser --shell /bin/bash --gecos 'Ghost application' --disabled-password ghost
    
  3. Stiahnite si Ghost:

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.10/Ghost-0.11.10.zip -o ghost.zip
    
  4. Rozbaľte Ghost do /var/www/ghostadresára (odporúčané umiestnenie inštalácie):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Presun do nového ghostadresára:

    cd /var/www/ghost
    
  6. Zmeňte vlastníctvo /var/www/ghostadresára:

    sudo chown -R ghost:ghost .
    
  7. Prepnúť na nového ghostpoužívateľa:

    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 databasevlastnosť productionobjektu 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. Vypnite proces Ghost stlačením CTRL+ Ca opustite používateľa Ghost späť na používateľa root:

    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 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.9
    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