Ricerca nel sito web

Come installare Wiki.js con Apache2 Reverse Proxy su Ubuntu 22.04


In questa pagina

  1. Prerequisiti
  2. Installazione di Node.js
  3. Installazione del database PostgreSQL
  4. Installazione di Wiki.js
  5. Configurazione di Apache2 come proxy inverso
  6. Configurazione dell'installazione di Wiki.js
  7. Conclusione

Wiki.js è un software wiki gratuito e open source basato su Node.js, Git e Markdown. È rilasciato sotto la licenza AGPL-v3 e progettato per prestazioni e conservazione delle risorse di sistema. Wiki.js è un potente software Wiki che può essere installato ovunque sul tuo sistema; puoi installarlo sul tuo sistema operativo o utilizzare servizi cloud come Heroku e anche distribuire Wiki.js sui tuoi ambienti container come Docker e Kubernetes.

Wiki.js è compatibile con il database PostgreSQL e fornisce oltre 50 integrazioni per autenticazione aggiuntiva, sistemi di registrazione, motori di ricerca, rendering e archiviazione. È un potente software Wiki costruito su interfacce belle e intuitive per il dashboard e le pagine di amministrazione. è un software wiki completamente personalizzabile per documentare il tuo stack tecnologico.

In questa guida installerai e configurerai Wiki.js su un server Ubuntu 22.04, utilizzando PostgreSQL come database predefinito e Apache2 come proxy inverso. Inoltre, avrai una connessione HTTPS/SSL sicura sulla tua installazione Wiki.js. Al termine, avrai un Wiki.js completamente funzionante e protetto sul tuo sistema Ubuntu.

Prerequisiti

Per completare questa guida avrai bisogno innanzitutto dei seguenti requisiti:

  • Un server Ubuntu 22.04.
  • Un utente non root con privilegi root/amministratore.
  • Un nome di dominio puntava all'indirizzo IP del tuo server Ubuntu.

Installazione di Node.js

Prima di installare Wiki.js, devi installare le dipendenze richieste da Wiki.js.

Wiki.js è un software wiki scritto principalmente in JavaScript, quindi in questo primo passaggio installerai il runtime JavaScript Node.js. Il repository Ubuntu predefinito fornisce il pacchetto Node.js, ma per questa guida utilizzerai il repository Nodesource per installare Node.js.

Esegui il comando curl seguente per aggiungere il repository Nodesource al tuo sistema Ubuntu. Al momento della stesura di questo articolo, Wiki.js richiedeva almeno Node.js v8 e versioni successive. E per questa guida installerai la versione LTS di Node.js v16.

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -

Ora puoi installare il pacchetto Node.js utilizzando il comando apt riportato di seguito.

sudo apt install nodejs

Al termine dell'installazione, controlla e verifica la versione di Node.js utilizzando il comando seguente. Dovresti vedere la versione LTS di Node.js v16 sullo schermo del tuo terminale.

node --version
npm --version

Installazione del database PostgreSQL

Il WIki.js predefinito supporta più RDBMS come PostgreSQL, MySQL/MariaDB e SQLite (predefinito), ma il database consigliato per la produzione è PostgreSQL. Installerai il pacchetto PostgreSQL sul sistema Ubuntu, quindi creerai il database e l'utente per Wiki.js.

Per iniziare, esegui il seguente comando apt per installare il database PostgreSQL sul tuo server. Immettere Y per confermare l'installazione e premere INVIO per continuare e l'installazione avrà inizio.

sudo apt install postgresql postgresql-common

Al termine dell'installazione, esegui il seguente comando systemctl per controllare e verificare il servizio PostgreSQL. E dovresti vedere che il servizio PostgreSQL è abilitato, il che significa che si avvierà automaticamente all'avvio del sistema. E lo stato attuale del servizio PostgreSQL è "Attivo".

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Accedi alla console PostgreSQL utilizzando il comando seguente per creare il database e l'utente PostgreSQL.

sudo -u postgres psql

Esegui il comando seguente dalla tua console PostgreSQL per creare un nuovo database e un nuovo utente per Wiki.js. In questo esempio, stiamo creando un database "wikijs" e l'utente "wiki" con la password "wikijspassword".

CREATE DATABASE wikijs;
CREATE USER wiki WITH ENCRYPTED PASSWORD 'wikijspassword';
GRANT ALL PRIVILEGES ON DATABASE wikijs TO wiki;

Ora puoi usare "Ctrl+d" per uscire dalla console PostgreSQL, o semplicemente usare il comando "\q" per uscire.

Installazione di Wiki.js

Ora installerai Wiki.js manualmente sul tuo sistema Ubuntu. Attraverso questa guida, creerai un utente di sistema per Wiki.js, scaricherai il codice sorgente di Wiki.js, configurerai Wiki.js con il database PostgreSQL e, infine, eseguirai Wiki.js come servizio systemd.

Innanzitutto, esegui il comando seguente per creare un nuovo utente per Wiki.js. In questo esempio, stiamo creando un nuovo utente di sistema denominato "wiki" con la directory home predefinita "/opt/wikijs" e poiché si tratta di un utente di sistema, stanno disabilitando l'accesso alla shell.

sudo useradd -r -d /opt/wikijs -s /usr/sbin/nologin wiki

Ora scarica il codice sorgente Wiki.js utilizzando il comando wget seguente.

wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz

Una volta terminato il download, crea una nuova directory "/opt/wikijs" ed estrai il codice sorgente Wiki.js al suo interno. Dovresti vedere che il codice sorgente di Wiki.js è disponibile nella directory di installazione "/opt/wikijs".

mkdir -p /opt/wikijs
tar xzf wiki-js.tar.gz -C /opt/wikijs

Per configurare Wiki.js con il database PostgreSQL, copierai la configurazione di esempio predefinita "config.sample.yml" e la modificherai utilizzando il tuo editor di testo.

Esegui il comando seguente per copiare il file di configurazione Wiki.js di esempio in "/opt/wikijs/config.yml". Quindi, modifica il nuovo file "/opt/wikijs/config.yml" utilizzando l'editor nano.

cp /opt/wikijs/config.sample.yml /opt/wikijs/config.yml
nano /opt/wikijs/config.yml

Modificare la configurazione predefinita come di seguito.

In questo esempio, eseguiremo Wiki.js sulla porta TCP predefinita "3000". Assicurati di modificare il nome, l'utente e la password del database PostgreSQL. Nell'opzione "bindIP", cambia in localhost o "127.0.0.1". Per la configurazione del log di Wiki.js, utilizzeremo il livello predefinito "info" con il formato "json".

# default port wikijs will run
port: 3000
# PostgreSQL database details
db:
  type: postgres
  host: localhost
  port: 5432
  user: wiki
  pass: wikijspassword
  db: wikijs
  ssl: false
# bind wikijs to localhost only
bindIP: 127.0.0.1
# setup log and the format
loglevel: info
logFormat: json

Salva e chiudi il file quando hai finito.

Ora esegui il comando chown seguente per modificare la proprietà della directory di installazione di Wiki.js "/opt/wikijs" nell'utente "wiki".

sudo chown -R wiki:wiki /opt/wikijs

In questo esempio, eseguiremo Wiki.js come servizio systemd. Quindi, devi creare un nuovo file di servizio systemd per Wiki.js.

Esegui il comando seguente per creare un nuovo file di servizio systemd "/etc/systemd/system/wikijs.service".

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

Aggiungere la seguente configurazione al file.

[Unit]
Description=Wiki.js
After=network.target postgresql.service
[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=wiki
Environment=NODE_ENV=production
WorkingDirectory=/opt/wikijs
[Install]
WantedBy=multi-user.target

Salva e chiudi il file quando hai finito.

Successivamente, esegui il comando seguente per ricaricare il gestore di sistema e applicare il nuovo file di servizio "wikijs.service"

sudo systemctl daemon-reload

Ora puoi avviare e abilitare il servizio "wikijs" utilizzando il seguente comando.

sudo systemctl start wikijs
sudo systemctl enable wikijs

Infine, controlla e verifica il servizio "wikijs" utilizzando il seguente comando. Ora dovresti vedere che il servizio "wikijs" è in esecuzione sulla porta TCP predefinita "3000" con PostgreSQL come database predefinito.

sudo systemctl status wikijs

Configurazione di Apache2 come proxy inverso

In questo esempio, Wiki.js è ora in esecuzione sulla porta TCP "3000". Per esporre a reti esterne o Internet, è meglio impostare il proxy inverso davanti a Wiki.js e applicare HTTPS/SSL sopra per proteggere eventuali credenziali e accesso. Utilizzerai anche Apache2 come proxy inverso per Wiki.js.

Esegui il comando apt seguente per installare il pacchetto Apache2. Inserisci Y per confermare l'installazione e premi INVIO per continuare e l'installazione avrà inizio.

sudo apt install apache2

Al termine dell'installazione, esegui il comando "ufw" di seguito per aprire le porte HTTP e HTTPS sul tuo sistema Ubuntu. Quindi, verifica l'elenco delle regole UFW.

sudo ufw allow "Apache Full"
sudo ufw status

Successivamente, abilita alcuni moduli Apache2 utilizzando il seguente comando. Utilizzerai questi moduli per configurare il proxy inverso Apache2.

sudo a2enmod proxy proxy_http ssl remoteip http2

Ora crea una nuova configurazione dell'host virtuale Apache2 "/etc/apache2/sites-available/wikijs.conf" utilizzando il seguente comando.

sudo nano /etc/apache2/sites-available/wikijs.conf

Aggiungere la seguente configurazione al file. In questo esempio, utilizzeremo il dominio "wiki.howtoforge.local" per l'installazione di Wiki.js e i certificati SSL di letsencrypt. Assicurati di modificare il nome di dominio e il percorso dei certificati SSL.

<VirtualHost *:80>
    ServerName wiki.howtoforge.local
    # Comment to prevent HTTP to HTTPS redirect
    Redirect permanent / https://wiki.howtoforge.local
    ErrorLog /var/log/apache2/wiki.howtoforge.local-error.log
    CustomLog /var/log/apache2/wiki.howtoforge.local-access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName wiki.howtoforge.local
    ProxyPreserveHost On
    ProxyPass "/" "http://127.0.0.1:3000/"
    ProxyPassReverse "/" "http://127.0.0.1:3000/"
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/wiki.howtoforge.local/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/wiki.howtoforge.local/privkey.pem
    Protocols h2 http/1.1
    # Enable only strong encryption ciphers and prefer versions with forwarding Secrecy
    SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5
    SSLHonorCipherOrder on
    # Disable insecure SSL and TLS versions
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
    ErrorLog /var/log/apache2/wiki.howtoforge.local-error.log
    CustomLog /var/log/apache2/wiki.howtoforge.local-access.log combined
</VirtualHost>
</IfModule>

Salva e chiudi il file quando hai finito.

Successivamente, attiva il file host virtuale "wikijs.conf" utilizzando il seguente comando.

sudo a2ensite wikijs.conf

Controlla e verifica la configurazione di Aache2 utilizzando il comando seguente. se ricevi un messaggio di output come "Sintassi OK", significa che la configurazione di Apache2 è pronta. Quindi, riavvia il servizio Apache2 per applicare le nuove modifiche.

sudo apachectl configtest
sudo systemctl restart apache2

Configurazione dell'installazione di Wiki.js

Apri il tuo browser web e visita il nome del dominio della tua installazione Wiki.js (ad esempio: https://wiki.howtoforge.local/).

Inserisci il nuovo indirizzo email, la password e l'URL del sito dell'amministratore per l'installazione di Wiki.js. Quindi, fai clic sul pulsante "INSTALLA" per avviare l'installazione.

Al termine dell'installazione, vedrai la pagina di accesso di Wiki.js. inserisci l'e-mail e la password dell'amministratore e fai clic su "Accedi".

Ora vedrai il messaggio di benvenuto da Wiki.js. Fai clic sul pulsante "CREA HOME PAGE" per impostare la pagina indice predefinita per il tuo Wiki.js.

Scegli l'editor che desideri utilizzare. In questo esempio utilizzeremo l'editor Markdown.

Inserisci il titolo, la descrizione e gli altri. Quindi fare clic su "OK".

Digita la pagina dell'indice dei dettagli per il tuo Wiki.js e fai clic su "CREA" per confermare.

E dovresti vedere la home page predefinita del Wiki.js che hai appena creato.

Per accedere alla dashboard di amministrazione di Wiki.js, fai clic sull'icona delle impostazioni dell'ingranaggio in alto a sinistra. Dovresti vedere la dashboard di amministrazione di Wiki.js qui sotto.

Conclusione

In questo tutorial, hai configurato Wiki.js sul database PostgreSQL e sul proxy inverso Apache2, in esecuzione sull'ultimo server Ubuntu 22.04. Hai anche protetto il tuo Wiki.js con un firewall UFW e SSL/HTTPS abilitato sul proxy inverso Apache. Alla fine, hai anche configurato la home page o l'indice predefinito per la tua installazione Wiki.js.

Puoi creare contenuti aggiuntivi e impostare categorie per il tuo progetto Wiki. Puoi anche aggiungere alcuni moduli al tuo Wiki.js per estenderne le funzionalità o impostare nuovi temi per Wiki.js.

Articoli correlati: