In questo progetto, andremo a scoprire come realizzare la nostra Wiki personale, self-hosted, tramite il software Wiki.js in esecuzione su un Raspberry Pi con Docker, ma la guida è valida per qualsiasi dispositivo che esegua una distribuzione GNU/Linux basata su Debian (Ubuntu, Raspberry Pi OS, ecc.).

Wiki.js è un software libero, open-source e conseguentemente gratuito che puoi installare facilmente tramite Docker per realizzare una sorta di Wikipedia personale, dedicata ad archiviare e organizzare determinate informazioni.

Il tool vanta vanta un considerevole numero di funzionalità come ad esempio l’autenticazione a due fattori, un ottimo editor visivo, il supporto al markdown e molto altro ancora, permettendoci di andare a gestire efficacemente un qualsiasi contenuto, esattamente nello stile di Wikipedia.

Ovviamente, per questo progetto, sfrutteremo Docker, poiché ci semplificherà tantissimo l’installazione. Se già non lo avessi installato, ti invitiamo a seguire questa guida su come installare Docker.

Requisiti

Per poter eseguire su Docker questo software, è necessario almeno un Raspberry Pi 2 (ARMv7). Il modello originale di Raspberry Pi (il primo, per intenderci), non è supportato, poiché ha architettura ARMv6 e le immagini docker di Wiki.js vengono realizzate solo a partire da ARMv7 in poi.

Se non stai utilizzando un Raspberry Pi ma un VPS con Linux o qualsiasi altro sistema operativo che supporti Docker (Windows, macOS) e vuoi installare Wiki.js, non si segnalano problemi poiché per l’architettura x86_64 c’è sempre l’immagine disponibile.

Conseguentemente, consigliamo di avere:

  • Almeno 2 vCPU (così da avere qualcosa che possa reggere un po’ di carico e non sia troppo lento)
  • 2 GB di RAM (ma in generale, se sarà un tool parecchio usato da vari utenti in contemporanea, anche di più)
  • Almeno 8 GB di spazio liberi, così da poter archiviare al meglio i dati dell’applicazione, oltre allo spazio richiesto da Docker.
  • Connettività ad internet e se vuoi che sia accessibile pubblicamente, nel caso di una connessione a Internet domestica, assicurati che il tuo ISP permetta di effettuare il port forwarding sul tuo indirizzo IP pubblico (questa cosa di solito non è fattibile su connessioni 4G/5G, salvo contratti particolari con IP pubblico statico). Dovrai aprire anche le porte necessarie sul tuo modem/router ed eventuali firewall aggiuntivi all’interno della tua rete.

Installazione di Wiki.js su Raspberry Pi (GNU/Linux)

Grazie all’utilizzo di Docker, l’installazione di Wiki.js sarà semplicissima e richiederà pochissimi passaggi. Daremo per scontato che tu lo abbia installato, come anticipato poco sopra, dove ti abbiamo fornito il link alla relativa guida.

Preparazione del sistema per l’installazione

1. Come sempre, prima di installare Wiki.js, accertiamoci che il nostro sistema sia aggiornato.

Per farlo, eseguiamo i seguenti due comandi concatenati all’interno del terminale.

sudo apt update && sudo apt upgrade -y

2. Una volta completato l’aggiornamento, creiamo una directory in cui memorizzare il nostro file di Docker Compose.

sudo mkdir -p /opt/stacks/wikijs

3. Una volta creata la directory, entriamoci, per iniziare a scrivere il file di configurazione per Docker:

cd /opt/stacks/wikijs

Scrivere il file di Docker Compose per Wiki.js

4. Creiamo il file di Docker Compose che ci consentirà di lanciare un’istanza di Wiki.js con il database PostgreSQL sul nostro Raspberry Pi.

Eseguiamo quindi il seguente comando:

sudo nano /opt/stacks/wikijs/docker-compose.yml

5. All’interno di questo file, andremo ad inserire le seguente righe, avendo cura di sostituire <PASSWORD-WIKIJS> con la password da assegnare all’utente del database PostgreSQL per Wiki.js. Puoi recuperare il contenuto da inserire in questo file qua, qualora avessi problemi con quanto specificato di seguito:

version: "3"
services:

  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: wiki
      POSTGRES_PASSWORD: <PASSWORD-WIKIJS>
      POSTGRES_USER: wikijs
    logging:
      driver: "none"
    restart: unless-stopped
    volumes:
      - db-data:/var/lib/postgresql/data

  wiki:
    image: ghcr.io/requarks/wiki:2
    depends_on:
      - db
    environment:
      DB_TYPE: postgres
      DB_HOST: db
      DB_PORT: 5432
      DB_USER: wikijs
      DB_PASS: <PASSWORD-WIKIJS>
      DB_NAME: wiki
    restart: unless-stopped
    ports:
      - "80:3000"

volumes:
  db-data:

6. Come puoi notare, rimapperemo la porta 80 con la porta 3000 all’interno del container docker. Attenzione: se hai nginx / apache2 / lighttpd (per esempio se hai installato Pi-Hole, hai un web server o quant’altro possa impegnare la porta 80 che è utilizzata dal protocollo HTTP) dovresti cambiare porta, per esempio potresti mettere 3000:3000 al posto di 80:3000, così da non avere conflitti.

Dopo aver completato le modifiche al file di Docker Compose, salviamo e usciamo premendo CTRL+ X, e poi il tasto ENTER.

Avviare Wiki.js con Docker

Per avviare questo software sul tuo sistema GNU/Linux, ti basterà digitare il seguente comando, dando per scontato che lo eseguirai partendo da /opt/stacks/wikijs/:

docker compose up -d

Al primo avvio, Docker scaricherà l’ultima versione di Wiki.js considerata stabile, al momento dovrebbe essere la 2.5, dopodiché recupererà l’immagine Docker per eseguire PostgreSQL e inizializzerà il database.

Questo processo può richiedere diversi minuti. Al termine, dovremo riuscire a collegarci tramite il nostro browser web preferito, sulla porta 80 (http) per accedere a Wiki.js o a qualsiasi altra porta tu abbia scelto al punto 6.

Primo avvio ed accesso a Wiki.js

Se hai un firewall attivo sul sistema, assicurati che la porta 80/tcp (ad esempio se utilizzi UFW, il comando è: sudo ufw allow http, o comunque sudo ufw allow <porta>/tcp, es: sudo ufw allow 3000/tcp) sia aperta.

Dopodiché, collegati con il tuo browser a http://<INDIRIZZO-IP-DEL-DISPOSITIVO>:<PORTA-SCELTA>/. Se hai potuto utilizzare la porta 80, puoi digitare direttamente: http://<INDIRIZZO-IP-DEL-DISPOSITIVO>/ poiché si dà per sottintesa.

Se non conosci l’IP del tuo dispositivo, puoi recuperarlo con:

hostname -I

7. Al primo accesso all’interfaccia web di Wiki.js, ci verrà chiesto di inserire alcune informazioni.

Per prima cosa, inseriremo un’e-mail per l’account amministratore, che utilizzeremo anche per accedere.

Successivamente, digiteremo una password che dovrà essere piuttosto robusta, soprattutto se abbiamo intenzione di esporre questo servizio pubblicamente.

Infine, dovremo impostare un URL per la Wiki che stiamo creando. Se possiedi un dominio (es: risposteinformatiche.it) puoi creare un record DNS che punti all’indirizzo IP pubblico del dispositivo su cui hai installato Wiki.js e andarlo a compilare in questo campo.

Una volta inserite le informazioni necessarie e deciso se vuoi abilitare o meno la telemetria, procedi cliccando sul tasto “Install” per completare l’installazione/configurazione iniziale di Wiki.js.

8. Una volta cliccato il tasto “Install“, dovremo attendere diversi minuti nei quali Wiki.js finalizzerà l’installazione. Si tratterà solo di attendere, ma al suo completamento, ci verrà richiesto di effettuare il login tramite l’indirizzo e-mail e la password che avevamo scelto al punto 7.

Ora potremo esplorare la dashboard di amministrazione e iniziare a creare i vari contenuti sul nostro nuovo wiki self-hosted! Come prima cosa ci verrà consigliato di realizzare una homepage, in ogni caso, invito caldamente a visionare la documentazione per capire bene il funzionamento delle varie sezioni.

È tutto! Se hai riscontrato problemi lascia pure un commento qui sotto, alternativamente, dai pure un’occhiata ai nostri altri progetti e tutorial per il mondo GNU/Linux!

Rispondi