AlmaLinux - Linux - Wiki

Installazione di Wiki.js su AlmaLinux 9

Introduzione

Wiki.js è un software wiki open source e leggero. È basato sul framework JavaScript Node.js. Può essere utilizzato per scrivere documentazione, wiki e contenuti web utilizzando un editor Markdown per sviluppatori e un editor WYSIWYG per persone non tecniche. Supporta più tipi di contenuto, inclusi diagrammi UML, espressioni matematiche che utilizzano la sintassi Tex o MathML e codice. Include più moduli per varie funzioni, tra cui analisi, autenticazione, registrazione, motori di ricerca di terze parti e più servizi di archiviazione per sincronizzare i tuoi contenuti.

Installazione database: PostgreSQL

Di default AlmaLinux ha nei suoi repository una versione vecchia di PostgreSQL, installiamo quindi i repository necessari per installare l’ultima versione disponibile (17.2)

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

procediamo con l’installazione dell’istanza del Database

# dnf install -y postgresql17 postgresql17-server

ed impostiamo l’avvio automatico dell’istanza PostgreSQL

# systemctl enable postgresql-17 && systemctl start postgresql-17

Una volta completata l’installazione, è possibile inizializzare il database PostgreSQL. Per farlo, si utilizza il seguente comando

# /usr/pgsql-17/bin/postgresql-17-setup initdb

Ora impostiamo una password per l’utente predefinito di Postgres. Per la massima sicurezza, assicurarsi di utilizzare una lunga stringa di lettere maiuscole, lettere minuscole, numeri e simboli. Proteggere il server del database è fondamentale per la sicurezza complessiva dell’applicazione. Utilizziamo il comando seguente per impostare la password, verrà chiesto di digitarla due volte.

# passwd postgres

Possiamo ora procedere con la creazione del database che verrà utilizzato dalla nostra istanza wiki.js

# sudo -i -u postgres psql

postgres=# CREATE DATABASE wikidb;
CREATE DATABASE
postgres=# CREATE USER wikiuser WITH ENCRYPTED PASSWORD 'password';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE wikidb TO wikiuser;
GRANT
postgres=# ALTER DATABASE wiki OWNER TO wikijs;
ALTER DATABASE
postgres=# \q

Installazione: Node.js

Con il seguente comando installiamo il repository che ci permetterà l’installazione della versione 22, supportata dalla versione 2.5.302 di Wiki.js

# curl -fsSL https://rpm.nodesource.com/setup_22.x | sudo bash -

2024-12-29 15:04:58 - Cleaning up old repositories...
2024-12-29 15:04:58 - Old repositories removed
2024-12-29 15:04:58 - Supported architecture: x86_64
2024-12-29 15:04:58 - dnf available, updating...
Node.js Packages for Linux RPM based distros - x86_64                725 kB/s | 426 kB     00:00
Metadata cache created.
2024-12-29 15:04:59 - Repository is configured and updated.
2024-12-29 15:04:59 - Run 'dnf install nodejs -y' to complete the installation.

ed installiamo il pacchetto

# sudo dnf install nodejs -y

con il seguente comando possiamo verificare la versione installata

# node --version
v22.12.0

Installazione: Wiki.js

Creiamo la directory dove scaricare il pacchetto di installazione e nella quale andremo a scompattare l’archivio

# mkdir -p /var/www/wikijs
# cd /var/www/wikijs
# wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
# tar xzf wiki-js.tar.gz

e, partendo dal file di configurazione config.sample.yml procediamo alla configurazione del database precedentemente creato

# cp config.sample.yml config.yml
# vi config.yml

[...]
host: localhost
port: 5432
user: wikiuser
pass: password
db: wikidb
ssl: false
[...]

Possiamo ora avviare manualmente wiki.js utilizzando il seguente comando

# node server

Loading configuration from /var/www/wikijs/config.yml... OK
2024-12-29T14:28:45.509Z [MASTER] info: =======================================
2024-12-29T14:28:45.510Z [MASTER] info: = Wiki.js 2.5.305 =====================
2024-12-29T14:28:45.510Z [MASTER] info: =======================================
2024-12-29T14:28:45.510Z [MASTER] info: Initializing...
2024-12-29T14:28:45.834Z [MASTER] info: Using database driver pg for postgres [ OK ]
2024-12-29T14:28:45.840Z [MASTER] info: Connecting to database...
(node:10369) [DEP0174] DeprecationWarning: Calling promisify on a function that returns a Promise is likely a mistake.
(Use `node --trace-deprecation ...` to show where the warning was created)
2024-12-29T14:28:45.859Z [MASTER] info: Database Connection Successful [ OK ]
2024-12-29T14:28:45.985Z [MASTER] warn: DB Configuration is empty or incomplete. Switching to Setup mode...
2024-12-29T14:28:45.986Z [MASTER] info: Starting setup wizard...
2024-12-29T14:28:46.056Z [MASTER] info: Starting HTTP server on port 3000...
2024-12-29T14:28:46.056Z [MASTER] info: HTTP Server on port: [ 3000 ]
2024-12-29T14:28:46.059Z [MASTER] info: HTTP Server: [ RUNNING ]
2024-12-29T14:28:46.059Z [MASTER] info: 🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻
2024-12-29T14:28:46.059Z [MASTER] info:
2024-12-29T14:28:46.059Z [MASTER] info: Browse to http://YOUR-SERVER-IP:3000/ to complete setup!
2024-12-29T14:28:46.059Z [MASTER] info:
2024-12-29T14:28:46.059Z [MASTER] info: 🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺

e collegandoci con il browser sarò possibile completare l’installazione creando l’utenza di accesso.

Creazione servizio systemd

Il processo di cui sopra per mantenere Wiki.js in esecuzione è temporaneo. Per rendere il processo permanente, dovremo creare un servizio systemd per Wiki.js per eseguirlo come servizio in background. Ciò consentirà a Wiki.js di funzionare durante i riavvii del sistema

# vi /etc/systemd/system/wikijs.service

[Unit]
Description=Wiki.js
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always

User=root
Environment=NODE_ENV=production
WorkingDirectory=/var/www/wikijs

[Install]
WantedBy=multi-user.target

Ricarichiamo il demone di sistema e abilitiamo il servizio Wiki.js

# systemctl daemon-reload
# systemctl enable wikijs
# systemctl start wikijs

Possiamo ora utilizzare wiki.js per creare i vari contenuti.