Come fare self-hosting di DokuWiki nel 2026: storage dei file, ACL e backup
Una guida pratica al self-hosting di DokuWiki che tratta Docker, porte, dati persistenti, TLS, sicurezza, backup e problemi che ne impediscono l'uso in produzione. Con verifiche.
Considera DokuWiki come un piccolo sistema, non come una Docker image. L'obiettivo rivolto agli utenti è chiaro: una wiki basata su file che non richiede un database; il deployment è accettabile solo quando puoi sostituire le credenziali di setup, modificare una pagina, caricare contenuti multimediali, applicare un'ACL, visualizzare una revisione e ripristinare una versione precedente.
Questa distinzione permette di individuare il problema che gli operatori incontrano dopo i test locali: i permessi dei file impediscono di salvare le pagine anche se l'interfaccia si carica. Inoltre, rende il piano di backup e upgrade abbastanza specifico da poter essere testato.
Porte, processi e servizi privati
Inizia dal network namespace di DokuWiki: il suo listener web è sulla porta 80, non su una porta dell'host copiata da un tutorial per laptop. Il requisito del runtime locale è un volume di configurazione persistente che contenga pagine, contenuti multimediali e ACL. Documenta la capacità prevista, i proprietari e lo scenario di errore invece di lasciare tutto come impostazione predefinita dell'immagine.
Dopo aver soddisfatto il requisito, esegui lo scenario completo — sostituisci le credenziali di setup, modifica una pagina, carica contenuti multimediali, applica un'ACL, visualizza una revisione e ripristina una versione precedente. Registra log e misurazioni per i metadati del filesystem, il volume dei contenuti multimediali, l'indicizzazione della ricerca e i processi PHP. Queste informazioni diventano la prima architettura verificata e rendono testabili gli spostamenti successivi tra il compute di Dockup e un server collegato.
Test di errore per DokuWiki
Un container in stato corretto è necessario, ma non sufficiente. L'indicatore a livello di servizio è il completamento corretto di “sostituisci le credenziali di setup, modifica una pagina, carica contenuti multimediali, applica un'ACL, visualizza una revisione e ripristina una versione precedente”, mentre i segnali di pressione più probabili sono i metadati del filesystem, il volume dei contenuti multimediali, l'indicizzazione della ricerca e i processi PHP.
Il controllo delle modifiche è importante perché plugin e template possono rimanere indietro rispetto alle release di DokuWiki, anche se i semplici file delle pagine restano leggibili. Conserva la vecchia immagine, testa le migrazioni su una copia dello stato e documenta se il rollback è supportato dopo lo spostamento dello schema. Se i permessi dei file impediscono di salvare le pagine anche se l'interfaccia si carica, individua il primo confine che differisce dall'ambiente funzionante.
Registra un deployment DokuWiki verificato
Una release candidate di DokuWiki merita di ricevere traffico quando completa uno scenario fisso: sostituisci le credenziali di setup, modifica una pagina, carica contenuti multimediali, applica un'ACL, visualizza una revisione e ripristina una versione precedente. Acquisisci il digest dell'immagine, la configurazione effettiva non segreta, l'origine pubblica e i timestamp relativi a quello scenario. I dati di test devono essere eliminabili, ma abbastanza realistici da esercitare lo stesso percorso seguito dagli utenti.
Eseguilo dopo aver sostituito il runtime, quindi ricrea il servizio a partire da pagine, contenuti multimediali, metadati, utenti, ACL e plugin. Il ripristino è riuscito quando tornano pagine, revisioni, contenuti multimediali, utenti, ACL e plugin e la pagina protetta resta protetta. Confronta le misurazioni delle risorse per i metadati del filesystem, il volume dei contenuti multimediali, l'indicizzazione della ricerca e i processi PHP con quelle della release precedente e analizza ogni variazione significativa prima della promozione.
Infine, esegui questo errore controllato: invia input innocuo vicino al limite di risorse o di formato associato a questo confine: i permessi dei file impediscono di salvare le pagine anche se l'interfaccia si carica. Verifica che DokuWiki spieghi l'errore, non danneggi lo stato esistente e riprenda a funzionare quando la condizione valida torna a essere soddisfatta. Salva un estratto del log anonimizzato e il tempo di ripristino. Nel loro insieme, queste verifiche coprono comportamento, durabilità e operatività, non soltanto l'uptime del processo.
Esegui la prima istanza con caratteristiche da produzione
Usa un comando che esponga ogni scelta importante. Questa configurazione di base collega DokuWiki al loopback dell'host, aggiunge i mount dei dati noti e fornisce la prima impostazione richiesta. Conferma il requisito locale prima dell'esposizione: un volume di configurazione persistente che contenga pagine, contenuti multimediali e ACL.
docker run -d \
--name dokuwiki \
--restart unless-stopped \
-p 127.0.0.1:80:80 \
-v dokuwiki-data:/config \
lscr.io/linuxserver/dokuwiki:latest
Sostituisci i tag mobili con una versione o un digest testato. Dopo l'avvio, controlla docker logs --tail 200 dokuwiki e conferma che il processo sia in ascolto sulla porta 80. Esegui quindi l'azione di acceptance di DokuWiki; una risposta dalla pagina principale non dimostra che lo scenario completo abbia esito positivo: sostituire le credenziali di setup, modificare una pagina, caricare contenuti multimediali, applicare un'ACL, visualizzare una revisione e ripristinare una versione precedente.
I volumi sono solo il primo livello di ripristino
Per DokuWiki, la sicurezza del redeploy inizia da pagine, contenuti multimediali, metadati, utenti, ACL e plugin. Monta /config prima del bootstrap, scrivi dati di esempio innocui e sostituisci il container per dimostrare che quel percorso sia effettivamente persistente. Testa il percorso sostituendo il container mentre i dati di esempio innocui sono ancora presenti; in questo modo puoi individuare i mount puntati a una directory troppo in alto o troppo in basso.
Testa poi il disaster recovery su un host vuoto. Quando necessario, usa un export del database coerente con l'applicazione e verifica che tornino pagine, revisioni, contenuti multimediali, utenti, ACL e plugin e che la pagina protetta resti protetta. La guida ai backup del database verificati con un ripristino offre un obiettivo più solido del semplice controllo dell'esistenza di un file di archivio.
Assegna a DokuWiki un indirizzo canonico
L'emissione del certificato TLS è solo metà del percorso di DokuWiki. Servi la wiki su HTTPS e imposta il suo URL base canonico. Invia internamente il traffico alla porta 80 e inoltra lo schema esterno, così gli URL generati e i cookie sicuri restano coerenti.
Esegui lo scenario completo di DokuWiki da una rete pulita, non soltanto dalla pagina principale. Un errore 502 o un problema con il certificato può essere isolato con la configurazione automatica del dominio e del TLS. Se il traffico raggiunge il processo e i permessi dei file impediscono di salvare le pagine anche se l'interfaccia si carica, diagnostica la condizione nel punto in cui si verifica invece di aggiungere altri redirect.
Chiudi l'accesso temporaneo al setup
Definisci il modello delle minacce in base all'azione eseguita da DokuWiki, non soltanto al suo form di login. In questo caso, l'errore ad alto rischio consiste nel lasciare aperte le impostazioni dell'installer o della registrazione. Implementa questo confine: rimuovi l'accesso all'installer, verifica la registrazione e conserva i file ACL insieme al contenuto delle pagine.
DokuWiki non prevede un secret di bootstrap obbligatorio in questa configurazione di base; proteggi invece l'account amministratore effettivo o l'autenticazione upstream. Non risolvere un errore di permessi eseguendo il container come root o montando indiscriminatamente l'host. Anche i limiti delle risorse fanno parte del security design quando gli utenti possono attivare i metadati del filesystem, il volume dei contenuti multimediali, l'indicizzazione della ricerca e i processi PHP.
Usa Dockup per il platform layer
Un template Dockup dovrebbe codificare immagine, porta 80, mount, timing dell'health check, dominio, TLS e distribuzione dei secret. Dockup dovrebbe preservare le impostazioni del runtime di DokuWiki mentre l'operatore conferma questo requisito locale: un volume di configurazione persistente che contenga pagine, contenuti multimediali e ACL. Lo stesso deployment può essere destinato ai server Dockup o alla capacità collegata del cliente.
Dopo che il percorso è attivo, applica l'impostazione pubblica e prova a sostituire le credenziali di setup, modificare una pagina, caricare contenuti multimediali, applicare un'ACL, visualizzare una revisione e ripristinare una versione precedente. Esegui il backup di pagine, contenuti multimediali, metadati, utenti, ACL e plugin e mantieni l'esercitazione di ripristino nel piano operativo; queste sono responsabilità di DokuWiki che restano visibili anche dopo il provisioning dell'infrastruttura.
Domande frequenti
Di cosa ha bisogno DokuWiki per un deployment in produzione?
Instrada il container DokuWiki sulla porta 80 attraverso un'unica origine HTTPS. Il requisito del runtime locale è un volume di configurazione persistente che contenga pagine, contenuti multimediali e ACL. Non considerare DokuWiki pronto finché non puoi sostituire le credenziali di setup, modificare una pagina, caricare contenuti multimediali, applicare un'ACL, visualizzare una revisione e ripristinare una versione precedente.
Quali dati di DokuWiki devono essere inclusi in un backup?
Rendi persistente /config e includi pagine, contenuti multimediali, metadati, utenti, ACL e plugin nello stesso manifest di ripristino. Un ripristino pulito di DokuWiki è riuscito solo quando tornano pagine, revisioni, contenuti multimediali, utenti, ACL e plugin e la pagina protetta resta protetta.
DokuWiki richiede HTTPS dietro un reverse proxy?
Usa HTTPS per l'origine pubblica di DokuWiki e mantieni la porta 80 nel percorso interno. Applica correttamente l'impostazione di DokuWiki: servi la wiki su HTTPS e imposta il suo URL base canonico. Per DokuWiki, HTTPS protegge le credenziali o i contenuti degli utenti durante il transito e mantiene coerente il comportamento client sensibile all'origine.
Come va testato un upgrade di DokuWiki?
Ripristina lo stato corrente di DokuWiki in un deployment isolato, applica la versione candidata e ripeti la transazione di acceptance. Presta particolare attenzione perché plugin e template possono rimanere indietro rispetto alle release di DokuWiki, anche se i semplici file delle pagine restano leggibili. Conserva la precedente immagine di DokuWiki finché non avrai compreso i confini della migrazione dei dati e del rollback.
