Wikijs installeren op Rocky Linux

Wiki.js is een open-source wiki software, geschreven in JavaScript en draaiend op de Node.js runtime, het wordt vrijgegeven onder de APGL-v3 licentie. Wiki.js is een lichtgewicht, en krachtige wiki software met een mooie en intuïtieve gebruikersinterface, het is ontworpen voor het moderne web. Wiki.js is zeer uitbreidbare wiki software en geschikt voor verschillende soorten documenten en implementaties, het kan gebruikt worden door zowel technische als niet-technische mensen.

Wiki.js wordt ondersteund door verschillende soorten modules om de mogelijkheden uit te breiden en er een krachtige en uitbreidbare wiki software van te maken. Enkele opmerkelijke en standaard Wiki.js functies zie je hieronder:

  • Ondersteuning van meerdere databases (PostgreSQL, MySQL, SQLite, en MSSQL Server).
  • Meerdere editors, waaronder Markdown voor ontwikkelaars, WYSIWYG voor niet-technische mensen, code, en Tabular (Excel-achtig)
  • Ingebouwde op databases gebaseerde zoekmachine, ook ondersteuning voor een andere zoekmachine zoals Apache Solr, Elasticsearch, enz.
  • Ondersteunt meerdere gegevensopslag voor back-up, zoals Git, sFTP, AWS S3, Google Drive, Dropbox, enz.

In deze gids leer je hoe je Wiki.js op de Rocky Linux server kunt installeren. Je installeert Wiki.js met de nieuwste LTS versie van Node.js, gebruikt PostgreSQL als hoofddatabank, en gebruikt de Nginx webserver als reverse proxy.

Vereisten

  • Een Rotsachtig Linux systeem. Zorg ervoor dat alle pakketten en repositories bijgewerkt zijn tot de nieuwste versie
  • Een root gebruiker of een gebruiker met root rechten. Je zult deze gebruiker gebruiken om nieuwe pakketten te installeren en systeemconfiguraties te bewerken.

Nodejs installeren op Rocky Linux

Eerst zul je Node.js installeren op Rocky Linux. En standaard biedt de AppStream repository meerdere Node.js LTS versies aan.

1. Controleer de repository module voor‘nodejs‘ door het volgende commando uit te voeren.

sudo dnf module list nodejs

Je zult meerdere versies van de Node.js module zien.

Controleer de Node.js repository module Rocky Linux

2. Schakel de‘nodejs:14‘ repository module in met het onderstaande commando.

sudo dnf module enable nodejs:14

Typ‘y‘ om de‘nodejs:14‘ repository module in te schakelen.

Schakel repository module nodejs:14 Rocky Linux in

3. Voer vervolgens het volgende commando uit om Node.js en npm pakketten te installeren.

sudo dnf install nodejs npm

Typ‘y‘ en druk op‘Enter‘ om de installatie te bevestigen.

Installeren van Node.js en NPM pakketten

4. Als de installatie voltooid is, voer je het volgende commando uit om de versies van Node.js en npm te controleren.

node --version
npm --version

Je ziet een soortgelijke uitvoer als hieronder.

# Node.js version
v14.17.3

# NPM version
6.14.13

Installeren van de PostgreSQL databank

Voor dit stadium installeer je PostgreSQL uit de officiële PostgreSQL repository. Voor productie is het aan te bevelen PostgreSQL te gebruiken als de hoofddatabank voor Wiki.js.

1. Voer nu het volgende commando uit om de PostgreSQL repository aan het Rocky Linux systeem toe te voegen.

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

PostgreSQL repository toevoegen

2. Schakel de standaard Rocky Linux PostgreSQL repository uit met het volgende commando.

sudo dnf module -qy disable postgresql

3. Voer vervolgens het onderstaande commando uit om de PostgreSQL 13 op de Rocky Linux server te installeren.

sudo dnf install postgresql13-server

Typ‘y‘ en druk op‘Enter‘ om de installatie voort te zetten.

PostgreSQL installeren op Rocky Linux

4. Als de PostgreSQL installatie voltooid is, voer je het volgende commando uit om de PostgreSQL databank te initialiseren, de PostgreSQL dienst te starten en in te schakelen.

Initialiseer de PostgreSQL databank met het onderstaande commando.

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

Schakel de PostgreSQL in om automatisch te starten bij het opstarten van het systeem met het onderstaande commando.

sudo systemctl enable postgresql-13

Start nu de PostgreSQL dienst en controleer zijn status met het volgende commando.

sudo systemctl start postgresql-13
sudo systemctl status postgresql-13

Als je PostgreSQL dienst draait, zie je de berichtuitvoer als‘active (running)‘ zoals de schermafdruk hieronder.

Initialiseer PostgreSQL en start de PostgreSQL dienst

Maak een nieuwe database en gebruiker

Na de installatie van de PostgreSQL server maak je een nieuwe database en gebruiker voor de Wiki.js installatie.

1. Voer het volgende commando uit om in te loggen in de PostgreSQL shell.

sudo -u postgres psql

2. Maak een nieuwe PostgreSQL gebruikersnaam‘wiki‘ met het wachtwoord‘wikijspassworddb‘ met de volgende query.

CREATE USER wiki WITH 
CREATEDB
PASSWORD 'wikijspassworddb';

3. Maak nu een nieuwe databanknaam‘wikidb‘ en maak de gebruiker‘wiki‘ eigenaar van de databank met de onderstaande PostgreSQL query.

CREATE DATABASE wikidb OWNER wiki;

Typ nu‘\q‘ om de PostgreSQL shell te verlaten.

Maak PostgreSQL Database en gebruiker voor Wiki.js

Optioneel kun je de gebruiker en de database verifiëren met de onderstaande query’s.

# Check available users
\du

# Display list of databases
\l

Controleer gebruikers en databases PostgreSQL

Wiki.js downloaden en instellen

Voor deze gids zul je Wiki.js als een dienst draaien, en wel als een niet-root gebruiker.

1. Voer het onderstaande commando uit om een nieuwe gebruiker‘wiki‘ aan te maken voor de Wiki.js installatie.

sudo adduser --system --user-group --no-create-home --shell /sbin/nologin wiki

2. Maak een nieuwe directory‘/var/wiki’ en verander de werkdirectory daarin. Voer dan het wget commando uit om de laatste stabiele versie van de broncode van Wiki.js te downloaden.

mkdir -p /var/wiki; cd /var/wiki/
wget https://github.com/Requarks/wiki/releases/download/2.5.201/wiki-js.tar.gz

Maak een nieuwe gebruiker aan en download Wiki.js broncode

Als het downloadproces voltooid is, pak je de Wiki.js broncode uit met het onderstaande tar commando.

tar -xf wiki-js.tar.gz

3. Kopieer vervolgens de Wiki.js voorbeeldconfiguratie naar ‘config.yml’ en bewerk het met nano.

cp config.sample.yml config.yml
nano config.yml

Verander de details van de databasenaam, gebruiker, en wachtwoord zoals hieronder.

db:
  type: postgres

  # PostgreSQL / MySQL / MariaDB / MS SQL Server only:
  host: localhost
  port: 5432
  user: wiki
  pass: wikijspassworddb
  db: wikidb
  ssl: false

Zet de ‘#’ voor de SQLite opslagmogelijkheid zoals hieronder.

  # SQLite only:
  #storage: path/to/database.sqlite

Verander de optie‘bindIP‘ in‘127.0.0.1‘ om de Wiki.js alleen op lokaal IP uit te voeren.

# ---------------------------------------------------------------------
# IP address the server should listen to
# ---------------------------------------------------------------------
# Leave 0.0.0.0 for all interfaces

bindIP: 127.0.0.1

Sla de configuratie op en sluit af door op de‘Ctrl+x‘ toets te drukken, typ‘y‘ en druk dan op‘Enter‘.

4. Vervolgens is het belangrijkste dat je het eigendom van de map‘/var/wiki‘ verandert in gebruiker en groep‘wiki‘ met het onderstaande commando.

sudo chown -R wiki:wiki /var/wiki

Wiki.js configureren

Wiki.js instellen als een Systemd dienst

1. Om een nieuw systemd dienstbestand aan te maken, verander je de werkdirectory in ‘/etc/systemd/system’ en maak je met nano een nieuw dienstbestand ‘wikijs.service’ aan.

cd /etc/systemd/system/
sudo nano wikijs.service

Kopieer en plak de volgende configuratie.

[Unit]
Description=Wiki.js
After=network.target postgresql-13.service

[Service]
Type=simple
ExecStart=/bin/node server
Restart=always
# Consider creating a dedicated user for Wiki.js here:
User=wiki
Group=wiki
Environment=NODE_ENV=production
WorkingDirectory=/var/wiki

[Install]
WantedBy=multi-user.target

Druk op‘Ctrl+x‘, typ‘y‘ en druk dan op‘Enter‘ om de configuratie op te slaan en af te sluiten.

2. Herlaad de‘systemd-manager‘ om een nieuwe dienstconfiguratie toe te passen.

sudo systemctl daemon-reload

3. Schakel vervolgens de dienst‘wikijs‘ in om bij het opstarten van het systeem te draaien met het onderstaande commando.

sudo systemctl enable wikijs

Wiki.js draaien als een dienst

4. Start de‘wikijs‘ dienst en controleer zijn status met het volgende commando.

sudo systemctl start wikijs
sudo systemctl status wikijs

Nu zul je zien dat de wikijs.service actief is en draait op het Rocky Linux systeem.

Start en controleer de status van de Wiki.js dienst

Installeren en instellen van Nginx als omgekeerde proxy voor Wiki.js

Voor deze stap installeer en configureer je de Nginx webserver als een omgekeerde proxy voor Wiki.js. Als je de Nginx webserver op je server geïnstalleerd hebt, ga dan naar stap nummer 2 voor het configureren van de Nginx serverblokken.

1. Om de Nginx webserver te installeren, voer je het onderstaande dnf commando uit.

sudo dnf install nginx

Typ‘y‘ om te bevestigen en de Nginx webserver te installeren.

Installing Nginx Web Server

2. Als de installatie voltooid is, verander je de werkdirectory in ‘/etc/nginx/conf.d’ en maak je met nano een nieuwe Nginx serverblok configuratie‘wikijs.conf‘.

cd /etc/nginx/conf.d/
sudo nano wikijs.conf

Kopieer en plak de volgende configuratie, en let erop dat je de waarde van de‘server_name‘ optie verandert met je domeinnaam.

server {
    listen 80;

    server_name wiki.domain-name.io;

    charset utf-8;
    client_max_body_size 50M;

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_next_upstream error timeout http_502 http_503 http_504;
    }

}

Druk op‘Ctrl+x‘, typ‘y‘ en druk dan op‘Enter‘ om de configuratie op te slaan en af te sluiten.

3. Test vervolgens de Nginx configuratie en controleer of er geen fout optreedt, schakel dan de Nginx dienst in.

sudo nginx -t
sudo systemctl enable nginx

Nginx instellen als reverse proxy voor Wiki.js

4. Start nu en controleer de status van de Nginx dienst door het volgende commando uit te voeren.

sudo systemctl start nginx
sudo systemctl enable nginx

Je zult zien dat de uitvoer van de Nginx dienst‘active (running)‘ is zoals hieronder.

Start Nginx Service en controleer de status

Wikijs beveiligen met SSL Letsencrypt

Voor deze stap zul je de Wiki.js installatie beveiligen met de SSL Letsencrypt.

1. Voer het volgende commando uit om de certbot en certbot-nginx plugin te installeren.

sudo dnf install certbot python3-certbot-nginx

2. Nadat de installatie voltooid is, genereer je een nieuw SSL Letsencrtypt voor de radicale domeinnaam met het onderstaande certbot commando.

sudo certbot --nginx --agree-tos --email [email protected] -d wiki.domain-name.io

En hieronder worden je enkele vragen gesteld.

  • Een e-mail adres: wanneer het SSL certificaat verloopt, krijg je een bericht naar dit e-mail adres.
  • Letsencrypt TOS (Terms of Service): typ ‘A’ om akkoord te gaan.
  • E-mail delen met EFF: je kunt ‘N’ kiezen voor nee.
  • Automatisch doorverwijzen van HTTP naar HTTPS: kies nummer ‘2’ om automatisch doorverwijzen in te schakelen.

Als het proces voltooid is, zie je dat de SSL certificaten beschikbaar zijn in de‘/etc/letsencrypt/live/wiki.domain-name.io‘ directory. En je Nginx server blokken configuratie is veranderd met aanvullende configuratie van letsencrypt.

Wiki.js Admin en standaard Homepage instellen

Open je web browser en typ het URL adres van je Wiki.js installatie in de adresbalk.

https://wiki.domain-name.io/

1. Je wordt doorgestuurd naar de HTTPS verbinding en je ziet de volgende pagina.

Wiki.js maak admin account aan en stel site-url in

Typ de gegevens van de Administrator account met je e-mail adres en wachtwoord, typ dan je domein van Wiki.js als de site URL en klik dan op de ‘INSTALL’ knop.

Wacht tot de installatie van Wiki.js voltooid is.

2. En als de installatie voltooid is, word je doorgestuurd naar de Wiki.js login pagina zoals hieronder.

Wiki.js login pagina

Typ je beheerders email adres en wachtwoord, en klik dan op de‘Log In‘ knop.

3. En je krijgt het welkomstbericht van Wiki.js te zien.

Wiki.js Maak startpagina

Klik op de knop‘+ CREATE HOME PAGE‘ om een nieuwe startpagina voor je wiki te maken.

4. Kies de editor zoals je die prettig vindt en klik op die editor. Voor dit voorbeeld gebruiken we de‘Markdown‘ editor.

Wiki.js kies editor

5. Typ in de‘Page Properties‘ pop-up een gedetailleerde titel en een korte beschrijving van je startpagina. En laat het pad als standaard‘home‘ staan.

Pagina-eigenschappen Wiki.js

Klik op‘Ok‘ om de configuratie van de paginageigenschappen te bevestigen.

6. Typ de inhoud van je startpagina, en klik dan op de‘CREATE‘ knop om op te slaan.

Maak een nieuwe homepage Wiki.js

7. Nu word je doorverwezen naar je Wiki.js startpagina zoals hieronder.

Wiki.js startpagina

Conclusie

Gefeliciteerd! Nu heb je met succes je Wiki met Wiki.js gemaakt op de Rocky Linux server. De Wiki.js draait nu met de laatste stabiele versie van Node.js, de database PostgreSQL, en de Nginx reverse proxy. Ook is hij beveiligd met SSL Letsencrypt. Voor de volgende stap kun je naar behoefte enkele extra modules toevoegen, zoals analytics, authenticatie, logging, en code/tekst editors. En je bent klaar om documentatie over je projecten te schrijven.