StuRa:Server/Ghost: Unterschied zwischen den Versionen

Aus Wiki StuRa HTW Dresden
Zur Navigation springen Zur Suche springen
K (PaulRiegel verschob die Seite Server/ghost nach Server/Ghost)
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
<s>
Zum Testen wurde für das [[Referat Öffentlichkeitsarbeit]] im Zusammenwirken mit dem [[Bereich Administration Rechentechnik]] eine Instanz [[Server/Ghost]] erstellt.
Host: [[srs100034]]


; pauschale Aktualisierung (auf die Schnelle)
----
<code>pkg update && pkg upgrade -y</code>


; Aktivierung zum Zugriff per SSH
: <code>adduser stura</code>
: <code>sysrc sshd_enable=YES</code>
: <code>service sshd start</code>


; Erstellung Account ''pv''
: <code>usermod -aG sudo stura</code>
: <code>adduser</code>
<pre>
Username: pv
Full name: PV
Uid (Leave empty for default):
Login group [pv]:
Login group is pv. Invite pv into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh git-shell zsh rzsh nologin) [sh]: zsh
Home directory [/home/pv]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username  : pv
Password  : *****
Full Name  : PV
Uid        : 1001
Class      :
Groups    : pv wheel
Home      : /home/pv
Home Mode  :
Shell      : /usr/local/bin/zsh
Locked    : no
OK? (yes/no): yes
adduser: INFO: Successfully added (pv) to the user database.
Add another user? (yes/no): no
Goodbye!
</pre>


; Erstellung Account ''rj''
: <code>su - stura</code>
: <code>adduser</code>
<pre>
Username: rj
Full name: RJ
Uid (Leave empty for default):
Login group [rj]:
Login group is rj. Invite rj into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh git-shell zsh rzsh nologin) [sh]: zsh
Home directory [/home/rj]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username  : rj
Password  : *****
Full Name  : RJ
Uid        : 1002
Class      :
Groups    : rj wheel
Home      : /home/rj
Home Mode  :
Shell      : /usr/local/bin/zsh
Locked    : no
OK? (yes/no): yes
adduser: INFO: Successfully added (rj) to the user database.
Add another user? (yes/no): no
Goodbye!
</pre>


; Installation der benötigten Pakete
----
: <code>pkg install -y nginx node8 npm-node8 bash python3 sudo mariadb102-server</code>
<!--
<pre>
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 17 package(s) will be affected (of 0 checked):


New packages to be INSTALLED:
: <code>sudo apt update && sudo apt upgrade -y</code>
nginx: 1.14.0_10,2
node8: 8.11.3_2
npm-node8: 5.10.0
bash: 4.4.23
python3: 3_3
sudo: 1.8.23_2
mariadb102-server: 10.2.16_1
c-ares: 1.14.0_1
libuv: 1.22.0
icu: 62.1_2,1
gmake: 4.2.1_2
python36: 3.6.6_1
libxml2: 2.9.7
libedit: 3.1.20170329_2,1
unixODBC: 2.3.6
mariadb102-client: 10.2.16_1
libiconv: 1.14_11


Number of packages to be installed: 17
: <code>sudo apt install -y nginx</code>


The process will require 460 MiB more space.
: <code>sudo ufw allow 'Nginx Full'</code>
69 MiB to be downloaded.
[ghost] [1/17] Fetching nginx-1.14.0_10,2.txz: 100%  419 KiB 428.7kB/s    00:01   
[ghost] [2/17] Fetching node8-8.11.3_2.txz: 100%    4 MiB  1.1MB/s    00:04   
[ghost] [3/17] Fetching npm-node8-5.10.0.txz: 100%    3 MiB  1.8MB/s    00:02   
[ghost] [4/17] Fetching bash-4.4.23.txz: 100%    1 MiB  1.5MB/s    00:01   
[ghost] [5/17] Fetching python3-3_3.txz: 100%    1 KiB  1.1kB/s    00:01   
[ghost] [6/17] Fetching sudo-1.8.23_2.txz: 100%  670 KiB 685.6kB/s    00:01   
[ghost] [7/17] Fetching mariadb102-server-10.2.16_1.txz: 100%  31 MiB  2.7MB/s    00:12   
[ghost] [8/17] Fetching c-ares-1.14.0_1.txz: 100%  122 KiB 124.6kB/s    00:01   
[ghost] [9/17] Fetching libuv-1.22.0.txz: 100%  98 KiB 100.1kB/s    00:01   
[ghost] [10/17] Fetching icu-62.1_2,1.txz: 100%    9 MiB  3.3MB/s    00:03   
[ghost] [11/17] Fetching gmake-4.2.1_2.txz: 100%  379 KiB 388.2kB/s    00:01   
[ghost] [12/17] Fetching python36-3.6.6_1.txz: 100%  15 MiB  3.9MB/s    00:04   
[ghost] [13/17] Fetching libxml2-2.9.7.txz: 100%  818 KiB 837.9kB/s    00:01   
[ghost] [14/17] Fetching libedit-3.1.20170329_2,1.txz: 100%  126 KiB 128.6kB/s    00:01   
[ghost] [15/17] Fetching unixODBC-2.3.6.txz: 100%  454 KiB 465.0kB/s    00:01   
[ghost] [16/17] Fetching mariadb102-client-10.2.16_1.txz: 100%    1 MiB  1.5MB/s    00:01   
[ghost] [17/17] Fetching libiconv-1.14_11.txz: 100%  601 KiB 615.4kB/s    00:01   
Checking integrity... done (0 conflicting)
[ghost] [1/17] Installing c-ares-1.14.0_1...
[ghost] [1/17] Extracting c-ares-1.14.0_1: 100%
[ghost] [2/17] Installing libuv-1.22.0...
[ghost] [2/17] Extracting libuv-1.22.0: 100%
[ghost] [3/17] Installing icu-62.1_2,1...
[ghost] [3/17] Extracting icu-62.1_2,1: 100%
[ghost] [4/17] Installing libedit-3.1.20170329_2,1...
[ghost] [4/17] Extracting libedit-3.1.20170329_2,1: 100%
[ghost] [5/17] Installing libiconv-1.14_11...
[ghost] [5/17] Extracting libiconv-1.14_11: 100%
[ghost] [6/17] Installing node8-8.11.3_2...
[ghost] [6/17] Extracting node8-8.11.3_2: 100%
[ghost] [7/17] Installing gmake-4.2.1_2...
[ghost] [7/17] Extracting gmake-4.2.1_2: 100%
[ghost] [8/17] Installing python36-3.6.6_1...
[ghost] [8/17] Extracting python36-3.6.6_1: 100%
[ghost] [9/17] Installing libxml2-2.9.7...
[ghost] [9/17] Extracting libxml2-2.9.7: 100%
[ghost] [10/17] Installing unixODBC-2.3.6...
[ghost] [10/17] Extracting unixODBC-2.3.6: 100%
[ghost] [11/17] Installing mariadb102-client-10.2.16_1...
[ghost] [11/17] Extracting mariadb102-client-10.2.16_1: 100%
[ghost] [12/17] Installing nginx-1.14.0_10,2...
===> Creating groups.
Using existing group 'www'.
===> Creating users
Using existing user 'www'.
[ghost] [12/17] Extracting nginx-1.14.0_10,2: 100%
[ghost] [13/17] Installing npm-node8-5.10.0...
[ghost] [13/17] Extracting npm-node8-5.10.0: 100%
[ghost] [14/17] Installing bash-4.4.23...
[ghost] [14/17] Extracting bash-4.4.23: 100%
[ghost] [15/17] Installing python3-3_3...
[ghost] [15/17] Extracting python3-3_3: 100%
[ghost] [16/17] Installing sudo-1.8.23_2...
[ghost] [16/17] Extracting sudo-1.8.23_2: 100%
[ghost] [17/17] Installing mariadb102-server-10.2.16_1...
===> Creating groups.
Creating group 'mysql' with gid '88'.
===> Creating users
Creating user 'mysql' with uid '88'.
[ghost] [17/17] Extracting mariadb102-server-10.2.16_1: 100%
Message from node8-8.11.3_2:


Note: If you need npm (Node Package Manager), please install www/npm.
: <code>sudo apt install -y mysql-server</code>
Message from python36-3.6.6_1:


===========================================================================
Passwort (g…oll) für ''root'' von MySQL gesetzt


Note that some standard Python modules are provided as separate ports
: <code>sudo apt install -y curl</code>
as they require additional dependencies. They are available as:


py36-gdbm      databases/py-gdbm@py36
: <code>curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash</code>
py36-sqlite3    databases/py-sqlite3@py36
py36-tkinter    x11-toolkits/py-tkinter@py36


===========================================================================
: <code>sudo apt install -y nodejs</code>
Message from mariadb102-client-10.2.16_1:


************************************************************************
: <code>sudo npm i -g ghost-cli</code>


MariaDB respects hier(7) and doesn't check /etc and /etc/mysql for
: <code>sudo mkdir -p /var/www/ghost</code>
my.cnf. Please move existing my.cnf files from those paths to
/usr/local/etc and /usr/local/etc/mysql.


************************************************************************
: <code>sudo chown `whoami`:`whoami` /var/www/ghost</code>
Message from nginx-1.14.0_10,2:


===================================================================
: <code>sudo chmod 775 /var/www/ghost</code>
Recent version of the NGINX introduces dynamic modules support.  In
FreeBSD ports tree this feature was enabled by default with the DSO
knob.  Several vendor's and third-party modules have been converted
to dynamic modules.  Unset the DSO knob builds an NGINX without
dynamic modules support.


To load a module at runtime, include the new `load_module'
: <code>cd /var/www/ghost && ghost install && cd -</code>
directive in the main context, specifying the path to the shared
<pre>
object file for the module, enclosed in quotation marks. When you
✔ Checking system Node.js version
reload the configuration or restart NGINX, the module is loaded in.
✔ Checking logged in user
It is possible to specify a path relative to the source directory,
✔ Checking current folder permissions
or a full path, please see
✔ Checking operating system compatibility
https://www.nginx.com/blog/dynamic-modules-nginx-1-9-11/ and
✔ Checking for a MySQL installation
http://nginx.org/en/docs/ngx_core_module.html#load_module for
✔ Checking memory availability
details.
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v1.25.3
✔ Finishing install process
? Enter your blog URL: http://ghost.stura-dresden.de
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost_prod
✔ Configuring Ghost
✔ Setting up instance
Running sudo command: useradd --system --user-group ghost
Running sudo command: chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
? Do you wish to set up "ghost" mysql user? Yes
✔ Setting up "ghost" mysql user
? Do you wish to set up Nginx? Yes
✔ Creating nginx config file at /var/www/ghost/system/files/ghost.stura-dresden.de.conf
Running sudo command: ln -sf /var/www/ghost/system/files/ghost.stura-dresden.de.conf /etc/nginx/sites-available/ghost.stura-dresden.de.conf
Running sudo command: ln -sf /etc/nginx/sites-available/ghost.stura-dresden.de.conf /etc/nginx/sites-enabled/ghost.stura-dresden.de.conf
Running sudo command: nginx -s reload
✔ Setting up Nginx
? Do you wish to set up SSL? Yes
Uh-oh! It looks like your domain isn't set up correctly yet. Because of this, SSL setup won't work correctly.Once you've set up your domain and pointed it at this server's IP, try running `ghost setup ssl` again.
✔ Setting up SSL
? Do you wish to set up Systemd? Yes
✔ Creating systemd service file at /var/www/ghost/system/files/ghost_ghost-stura-dresden-de.service
Running sudo command: ln -sf /var/www/ghost/system/files/ghost_ghost-stura-dresden-de.service /lib/systemd/system/ghost_ghost-stura-dresden-de.service
Running sudo command: systemctl daemon-reload
✔ Setting up Systemd
Running sudo command: /var/www/ghost/current/node_modules/.bin/knex-migrator-migrate --init --mgpath /var/www/ghost/current
✔ Running database migrations
? Do you want to start Ghost? Yes
Running sudo command: systemctl is-active ghost_ghost-stura-dresden-de
✔ Ensuring user is not logged in as ghost user
✔ Checking if logged in user is directory owner
✔ Checking current folder permissions
Running sudo command: systemctl is-active ghost_ghost-stura-dresden-de
✔ Validating config
✔ Checking folder permissions
✔ Checking file permissions
✔ Checking content folder ownership
✔ Checking memory availability
Running sudo command: systemctl start ghost_ghost-stura-dresden-de
✔ Starting Ghost
Running sudo command: systemctl is-enabled ghost_ghost-stura-dresden-de
Running sudo command: systemctl enable ghost_ghost-stura-dresden-de --quiet
✔ Starting Ghost
You can access your publication at http://ghost.stura-dresden.de
Next, go to to your admin interface at http://ghost.stura-dresden.de/ghost/ to complete the setup of your publication


Default path for the NGINX dynamic modules is
Ghost uses direct mail by default
To set up an alternative email method read our docs at https://docs.ghost.org/docs/mail-config
</pre>


/usr/local/libexec/nginx.
; Anpassung der Konfiguration für das Versenden von Mails
===================================================================
: <code>diff /var/www/ghost/config.production.created-by-install-gui /var/www/ghost/config.production.json</code>
Message from mariadb102-server-10.2.16_1:
<pre>
17c17,21
<    "transport": "Direct"
---
>    "transport": "SMTP",
>    "options": {
>        "host": "mail.stura.htw-dresden.de",
>        "port": 25
>    }
</pre>
: <code>cd /var/www/ghost && ghost restart && cd -</code>


************************************************************************
----


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
: <code>ghost setup ssl</code>
!!                                                                    !!
<pre>
!! The default InnoDB storage engine is no longer XtraDB, check your  !!
? Enter your email (used for Let's Encrypt notifications) cert@stura.htw-dresden.de
!! configuration and switch it to InnoDB                              !!
!!                                                                    !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
Remember to run mysql_upgrade (with the optional --datadir=<dbdir> flag)
the first time you start the MySQL server after an upgrade from an
earlier version.
 
MariaDB respects hier(7) and doesn't check /etc and /etc/mysql for
my.cnf. Please move existing my.cnf files from those paths to
/usr/local/etc and /usr/local/etc/mysql.
 
This port does NOT include the mytop perl script, this is included in
the MariaDB tarball but the most recent version can be found in the
databases/mytop port
 
************************************************************************
</pre>
</pre>
-->
; Einrichten von MariaDB
: <code>service mysql-server onestart</code>
<!--
<pre>
<pre>
Installing MariaDB/MySQL system tables in '/var/db/mysql' ...
Running sudo command: mkdir -p /etc/letsencrypt
/usr/local/libexec/mysqld: Undefined symbol "fdatasync"
? Password [hidden]
 
Installation of system tables failed!  Examine the logs in
/var/db/mysql for more information.
 
The problem could be conflicting information in an external
my.cnf files. You can ignore these by doing:
 
    shell> /usr/local/bin/mysql_install_db --defaults-file=~/.my.cnf
 
You can also try to start the mysqld daemon with:
 
    shell> /usr/local/libexec/mysqld --skip-grant-tables --general-log &
 
and use the command line tool /usr/local/bin/mysql
to connect to the mysql database and look at the grant tables:
 
    shell> /usr/local/bin/mysql -u root mysql
    mysql> show tables;
 
Try 'mysqld --help' if you have problems with paths.  Using
--general-log gives you a log in /var/db/mysql that may be helpful.
 
The latest information about mysql_install_db is available at
https://mariadb.com/kb/en/installing-system-tables-mysql_install_db
You can find the latest source at https://downloads.mariadb.org and
the maria-discuss email list at https://launchpad.net/~maria-discuss
 
Please check all of the above before submitting a bug report
at http://mariadb.org/jira
 
/usr/local/etc/rc.d/mysql-server: WARNING: failed precmd routine for mysql
</pre>
</pre>
-->
: <code>service mysql-server onestart</code>
<pre>
<pre>
Starting mysql.
Running sudo command: ./acme.sh --install --home /etc/letsencrypt
Running sudo command: /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain ghost.stura-dresden.de --webroot /var/www/ghost/system/nginx-root --reloadcmd "nginx -s reload" --accountemail cert@stura.htw-dresden.de
Running sudo command: openssl dhparam -out /etc/nginx/snippets/dhparam.pem 2048
Running sudo command: mv /tmp/ssl-params.conf /etc/nginx/snippets/ssl-params.conf
✔ Creating ssl config file at /var/www/ghost/system/files/ghost.stura-dresden.de-ssl.conf
Running sudo command: ln -sf /var/www/ghost/system/files/ghost.stura-dresden.de-ssl.conf /etc/nginx/sites-available/ghost.stura-dresden.de-ssl.conf
Running sudo command: ln -sf /etc/nginx/sites-available/ghost.stura-dresden.de-ssl.conf /etc/nginx/sites-enabled/ghost.stura-dresden.de-ssl.conf
Running sudo command: nginx -s reload
✔ Setting up SSL
</pre>
</pre>
: <code>sysrc mysql_enable=YES</code>
 
----


<!--
<!--

Version vom 4. August 2018, 20:38 Uhr

Zum Testen wurde für das Referat Öffentlichkeitsarbeit im Zusammenwirken mit dem Bereich Administration Rechentechnik eine Instanz Server/Ghost erstellt.


adduser stura
usermod -aG sudo stura
su - stura

sudo apt update && sudo apt upgrade -y
sudo apt install -y nginx
sudo ufw allow 'Nginx Full'
sudo apt install -y mysql-server

Passwort (g…oll) für root von MySQL gesetzt

sudo apt install -y curl
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash
sudo apt install -y nodejs
sudo npm i -g ghost-cli
sudo mkdir -p /var/www/ghost
sudo chown `whoami`:`whoami` /var/www/ghost
sudo chmod 775 /var/www/ghost
cd /var/www/ghost && ghost install && cd -
✔ Checking system Node.js version
✔ Checking logged in user
✔ Checking current folder permissions
✔ Checking operating system compatibility
✔ Checking for a MySQL installation
✔ Checking memory availability
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v1.25.3
✔ Finishing install process
? Enter your blog URL: http://ghost.stura-dresden.de
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost_prod
✔ Configuring Ghost
✔ Setting up instance
Running sudo command: useradd --system --user-group ghost
Running sudo command: chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
? Do you wish to set up "ghost" mysql user? Yes
✔ Setting up "ghost" mysql user
? Do you wish to set up Nginx? Yes
✔ Creating nginx config file at /var/www/ghost/system/files/ghost.stura-dresden.de.conf
Running sudo command: ln -sf /var/www/ghost/system/files/ghost.stura-dresden.de.conf /etc/nginx/sites-available/ghost.stura-dresden.de.conf
Running sudo command: ln -sf /etc/nginx/sites-available/ghost.stura-dresden.de.conf /etc/nginx/sites-enabled/ghost.stura-dresden.de.conf
Running sudo command: nginx -s reload
✔ Setting up Nginx
? Do you wish to set up SSL? Yes
Uh-oh! It looks like your domain isn't set up correctly yet. Because of this, SSL setup won't work correctly.Once you've set up your domain and pointed it at this server's IP, try running `ghost setup ssl` again.
✔ Setting up SSL
? Do you wish to set up Systemd? Yes
✔ Creating systemd service file at /var/www/ghost/system/files/ghost_ghost-stura-dresden-de.service
Running sudo command: ln -sf /var/www/ghost/system/files/ghost_ghost-stura-dresden-de.service /lib/systemd/system/ghost_ghost-stura-dresden-de.service
Running sudo command: systemctl daemon-reload
✔ Setting up Systemd
Running sudo command: /var/www/ghost/current/node_modules/.bin/knex-migrator-migrate --init --mgpath /var/www/ghost/current
✔ Running database migrations
? Do you want to start Ghost? Yes
Running sudo command: systemctl is-active ghost_ghost-stura-dresden-de
✔ Ensuring user is not logged in as ghost user
✔ Checking if logged in user is directory owner
✔ Checking current folder permissions
Running sudo command: systemctl is-active ghost_ghost-stura-dresden-de
✔ Validating config
✔ Checking folder permissions
✔ Checking file permissions
✔ Checking content folder ownership
✔ Checking memory availability
Running sudo command: systemctl start ghost_ghost-stura-dresden-de
✔ Starting Ghost
Running sudo command: systemctl is-enabled ghost_ghost-stura-dresden-de
Running sudo command: systemctl enable ghost_ghost-stura-dresden-de --quiet
✔ Starting Ghost
You can access your publication at http://ghost.stura-dresden.de
Next, go to to your admin interface at http://ghost.stura-dresden.de/ghost/ to complete the setup of your publication

Ghost uses direct mail by default
To set up an alternative email method read our docs at https://docs.ghost.org/docs/mail-config
Anpassung der Konfiguration für das Versenden von Mails
diff /var/www/ghost/config.production.created-by-install-gui /var/www/ghost/config.production.json
17c17,21
<     "transport": "Direct"
---
>     "transport": "SMTP",
>     "options": {
>         "host": "mail.stura.htw-dresden.de",
>         "port": 25
>     }
cd /var/www/ghost && ghost restart && cd -

ghost setup ssl
? Enter your email (used for Let's Encrypt notifications) cert@stura.htw-dresden.de
Running sudo command: mkdir -p /etc/letsencrypt
? Password [hidden]
Running sudo command: ./acme.sh --install --home /etc/letsencrypt
Running sudo command: /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain ghost.stura-dresden.de --webroot /var/www/ghost/system/nginx-root --reloadcmd "nginx -s reload" --accountemail cert@stura.htw-dresden.de
Running sudo command: openssl dhparam -out /etc/nginx/snippets/dhparam.pem 2048
Running sudo command: mv /tmp/ssl-params.conf /etc/nginx/snippets/ssl-params.conf
✔ Creating ssl config file at /var/www/ghost/system/files/ghost.stura-dresden.de-ssl.conf
Running sudo command: ln -sf /var/www/ghost/system/files/ghost.stura-dresden.de-ssl.conf /etc/nginx/sites-available/ghost.stura-dresden.de-ssl.conf
Running sudo command: ln -sf /etc/nginx/sites-available/ghost.stura-dresden.de-ssl.conf /etc/nginx/sites-enabled/ghost.stura-dresden.de-ssl.conf
Running sudo command: nginx -s reload
✔ Setting up SSL