Ospitare BookStack su un VPS gestito significa custodire la vostra documentazione su una macchina tutta vostra, che i nostri team tengono aggiornata e supervisionano giorno e notte. BookStack è un software libero con licenza MIT, semplice da far girare: PHP, MySQL o MariaDB e un server web, senza Docker. Questa guida segue la sua documentazione ufficiale: l'installazione, HTTPS, i dati, le e-mail, la sicurezza, i backup e gli aggiornamenti.
Di Simon Vasconcelos Lee
Pubblicato il 13 novembre 2026Lettura: 11 minuti
public.APP_URL: i link e i cookie sicuri ne dipendono..env, public/uploads, storage/uploads e themes, e custodite con cura APP_KEY.BookStack è una piattaforma di documentazione pensata per restare semplice: il suo README punta a una presa in mano immediata, con semplici nozioni di elaborazione testi. I vostri team vi scrivono le loro procedure, la loro documentazione e la loro base di conoscenza, in un browser, in italiano se lo desiderano.
Il progetto assume le proprie scelte: il suo README precisa che BookStack non è concepito come una piattaforma estensibile verso altri usi, e resta fedele alla documentazione. Il suo rendering PDF passa da dompdf, senza altra installazione, con capacità limitate; il progetto documenta altri motori con EXPORT_PDF_COMMAND.
BookStack è pubblicato con licenza MIT da Dan Brown e dai collaboratori del progetto. Autorizza qualsiasi uso, qualsiasi modifica e qualsiasi distribuzione, a una condizione: conservare la nota di copyright e il testo della licenza in ogni copia del software. Le FAQ del progetto precisano che questa attribuzione riguarda il codice che condividete: nulla vi obbliga a mostrare il nome o il logo di BookStack sulla vostra istanza.
Il progetto mantiene una sola versione, libera e gratuita: non propone un'edizione enterprise, e non ha un hosting ufficiale, né il progetto di aprirne uno. Vende invece piani di assistenza, che contribuiscono al suo finanziamento insieme alle donazioni e agli sponsor. BookStack si installa quindi sul vostro server, senza alcuna licenza da acquistare.
| Elemento | Versione richiesta | Precisazione |
|---|---|---|
| PHP | 8.2 o successivo | Estensioni curl, dom, gd, iconv, mbstring, mysqlnd, openssl, pdo, pdo_mysql, tokenizer, xml e zip |
| Database | MySQL 8.0 o successivo, MariaDB 10.6 o successivo | Un solo database, di cui BookStack gestisce da sé lo schema |
| Composer | 2.2 o successivo | Per le dipendenze PHP |
| Git | Nessuna versione precisata | Per recuperare il codice e applicare gli aggiornamenti |
| Server web | Compatibile con PHP | Apache o Nginx, radice web sulla cartella public |
Docker resta facoltativo. Il progetto non pubblica un'immagine ufficiale: le installazioni in container vengono da progetti comunitari, LinuxServer.io e solidnerd. Questa guida segue la via ufficiale, PHP e MySQL direttamente sul server, che non richiede nulla di più.
La documentazione esclude l'hosting PHP condiviso: BookStack richiede un server che amministrate voi. Non indica né la memoria né il processore necessari. Su un VPS gestito, descrivetici il vostro uso, il numero di persone e il volume di immagini e allegati, e vi raccomandiamo la taglia adatta.
Il progetto propone due vie: uno script per Ubuntu, il più breve su un server nuovo, e un'installazione manuale per tutti gli altri casi.
| Sistema | Che cosa installa lo script |
|---|---|
| Ubuntu 26.04 | Apache, MySQL 8.4 e PHP 8.5 |
| Ubuntu 24.04 | Apache, MySQL 8.0 e PHP 8.3 |
| Ubuntu 22.04 | Apache, MySQL 8.0 e PHP 8.4 |
wget https://codeberg.org/bookstack/devops/raw/branch/main/scripts/installation-ubuntu-24.04.sh
chmod a+x installation-ubuntu-24.04.sh
sudo ./installation-ubuntu-24.04.sh
Questi script sono riservati a un sistema appena installato: possono sovrascrivere una configurazione web esistente. Lasciano inoltre da parte due temi, le impostazioni delle e-mail e la sicurezza del sistema, da prevedere a parte.
Lo script installa BookStack in /var/www/bookstack. Quello di Ubuntu 26.04 chiede il dominio e l'indirizzo dell'account amministratore, poi mostra alla fine una password generata a caso, assente dal suo log: annotatela. Con un altro script, prendete nota delle credenziali mostrate alla fine e cambiate qualsiasi accesso predefinito fin dal primo accesso.
Cominciate dal database: un database e un utente limitato a quel database. Lo script del progetto procede così, con la password che preferite al posto di change-me:
sudo mysql -u root --execute="CREATE DATABASE bookstack;"
sudo mysql -u root --execute="CREATE USER 'bookstack'@'localhost' IDENTIFIED BY 'change-me';"
sudo mysql -u root --execute="GRANT ALL ON bookstack.* TO 'bookstack'@'localhost';FLUSH PRIVILEGES;"
Recuperate poi il ramo release, impostate i permessi che la documentazione indica per /var/www/bookstack, poi installate le dipendenze:
cd /var/www
sudo git clone https://source.bookstackapp.com/bookstack.git --branch release --single-branch bookstack
sudo chown -R $USER:www-data /var/www/bookstack
sudo chmod -R 755 /var/www/bookstack
sudo chmod -R 775 /var/www/bookstack/storage /var/www/bookstack/bootstrap/cache /var/www/bookstack/public/uploads
cd bookstack
composer install --no-dev
cp .env.example .env
sudo chmod 640 .env
Compilate il database e l'indirizzo in .env:
APP_URL=https://docs.example.com
DB_HOST=localhost
DB_DATABASE=bookstack
DB_USERNAME=bookstack
DB_PASSWORD=change-me
php artisan key:generate
php artisan migrate
Puntate infine la radice web sulla cartella public: DocumentRoot su Apache, root su Nginx. Senza Apache, o quando i file .htaccess sono disattivati, aggiungete le regole di riscrittura degli indirizzi: il progetto pubblica degli esempi per Apache e per Nginx.
Un'installazione manuale si apre con l'account admin@admin.com e la password password. Cambiate l'indirizzo e la password fin dal primo accesso.
I visitatori arrivano sulle porte 80 e 443, con il nome di dominio del server. Create per questo nome dei record A e AAAA, poi richiedete il certificato: lo script di Ubuntu 26.04 configura Apache sulla sola porta 80, e la pagina di installazione lascia HTTPS a voi. Certbot installa il certificato Let's Encrypt, adatta Apache e rinnova il certificato in autonomia. Con Nginx, sostituite --apache con --nginx.
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
sudo certbot --apache -d docs.example.com
Portate poi l'indirizzo in HTTPS nel .env. APP_URL deve corrispondere esattamente all'indirizzo di visita, prefisso compreso: uno scarto si nota da stili assenti, icone enormi e menu rotti. Un indirizzo in https attiva da sé i cookie sicuri.
APP_URL=https://docs.example.com
Se esistono già delle pagine, i loro link conservano il vecchio indirizzo nel database. Salvate il database, poi lanciate il comando del progetto:
php artisan bookstack:update-url http://docs.example.com https://docs.example.com
BookStack si serve dalla radice di un dominio o di un sottodominio, e la documentazione descrive anche un'installazione in una sottocartella, come example.com/bookstack. Se un reverse proxy si aggiunge davanti ad Apache, dichiarate il suo indirizzo in APP_PROXIES: senza di esso, il registro di audit e la limitazione della frequenza vedono l'indirizzo del proxy al posto di quello dei visitatori. La documentazione riserva APP_PROXIES="*" alla diagnostica.
| Percorso | Che cosa contiene |
|---|---|
| Il database MySQL o MariaDB | Tutti i dati dell'applicazione, compreso il contenuto delle vostre pagine |
.env | La configurazione, con APP_KEY e le credenziali del database e del server e-mail |
public/uploads | Le immagini, con l'archiviazione predefinita |
storage/uploads | Gli allegati, protetti dai permessi di BookStack |
themes | Le vostre personalizzazioni del tema, se presenti |
Mantenete nel tempo la stessa APP_KEY e salvatela. BookStack la usa per cifrare in particolare i segreti dell'autenticazione a due fattori: cambiarla può rompere queste funzioni, e dalla versione 26.09 l'applicazione restituisce un errore se manca.
Con l'archiviazione predefinita, il server web serve direttamente le immagini, il che è veloce, e chiunque ne conosca l'indirizzo può aprirle. Per una documentazione interna, la scelta si fa in STORAGE_TYPE:
| <code>STORAGE_TYPE</code> | Immagini | Accesso |
|---|---|---|
local | public/uploads/images | Servite direttamente dal server web |
local_secure | storage/uploads/images | Riservate alle persone connesse, salvo accesso pubblico attivato |
local_secure_restricted | storage/uploads/images | In base ai permessi della pagina, l'opzione più onerosa |
s3 | Un bucket compatibile con S3 | Immagini rese pubbliche al caricamento |
Per i file pesanti, tre impostazioni vanno armonizzate: FILE_UPLOAD_SIZE_LIMIT nel .env, post_max_size e upload_max_filesize in php.ini, e client_max_body_size con Nginx, che vale 1 MB per impostazione predefinita.
Altre due impostazioni contano per una documentazione viva: ogni pagina conserva 100 revisioni per impostazione predefinita (REVISION_LIMIT), e il cestino conserva gli elementi eliminati per 30 giorni (RECYCLE_BIN_LIFETIME).
BookStack invia e-mail per la conferma degli indirizzi, la password dimenticata, gli inviti e le notifiche. Da un VPS Simafri, l'invio passa da un relay SMTP autenticato, sulla porta 587: l'indirizzo di un account di posta che avete già, oppure Simafri Suite.
MAIL_DRIVER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_ENCRYPTION=tls
MAIL_USERNAME=bookstack@example.com
MAIL_PASSWORD=change-me
MAIL_FROM=bookstack@example.com
MAIL_FROM_NAME=BookStack
Verificate il risultato in «Settings», «Maintenance», con l'azione «Send a Test Email», che mostra gli errori incontrati. Un errore durante un invito compare a schermo, mentre un errore di notifica resta nel log dell'applicazione.
Per impostazione predefinita, BookStack invia e-mail e webhook durante la richiesta, il che può rallentare le pagine. Per passare in background, scrivete QUEUE_CONNECTION=database nel .env e fate girare un servizio, con l'esempio che la documentazione fornisce per un'installazione Ubuntu tramite script:
[Unit]
Description=BookStack Queue Worker
[Service]
User=www-data
Group=www-data
Restart=always
ExecStart=/usr/bin/php /var/www/bookstack/artisan queue:work --sleep=3 --tries=1 --max-time=3600
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable bookstack-queue.service
sudo systemctl start bookstack-queue.service
La documentazione sulla sicurezza fornisce una lista da riprendere fin dall'installazione:
public, soprattutto se BookStack vive sotto /var/www.APP_URL, affinché gli indirizzi generati dal sistema non possano essere manipolati.L'autenticazione a due fattori si impone poi per ruolo. Iscrivetevi anche alla mailing list di sicurezza del progetto, per ricevere i suoi avvisi. L'indirizzo /status serve a un monitoraggio: risponde 200 quando tutto va bene, e un codice di errore pari o superiore a 400 in caso contrario.
PHP conta quanto BookStack. Il progetto ha pubblicato il 21 ottobre 2026 un avviso su un aggiornamento critico di PHP, corretto nelle versioni 8.5.12, 8.4.27, 8.3.36 e 8.2.35. Ubuntu pubblica queste correzioni con i propri numeri di pacchetto, come 8.3.6-0ubuntu0.24.04.13 per Ubuntu 24.04.
Per i vostri contenuti, mantenete attivo il filtraggio predefinito e riservate il suo allentamento alle istanze in cui scrivono solo persone di fiducia. Se un account amministratore va perso, php artisan bookstack:create-admin ne crea un altro, e php artisan bookstack:reset-mfa toglie l'autenticazione a due fattori a un utente.
Un backup completo riunisce il database e i quattro percorsi di file propri della vostra istanza. Le esportazioni di contenuto servono ad altro: la documentazione precisa che non sostituiscono un backup.
sudo mysqldump -u root bookstack > bookstack.backup.sql
tar -czvf bookstack-files-backup.tar.gz .env public/uploads storage/uploads themes
La prima riga riguarda un'installazione tramite script, dove il root di MySQL si connette con sudo; altrove, scrivete mysqldump -u bookstack -p bookstack. Riponete questi due file a parte, preferibilmente su un'altra macchina. L'archivio contiene .env, quindi APP_KEY e le vostre password: trattatelo come un segreto.
Su una macchina nuova, installate BookStack senza lanciare php artisan migrate, un passaggio da commentare nello script se lo usate, poi ripristinate il database e i file, conservando l'APP_KEY d'origine:
sudo mysql -u root bookstack < bookstack.backup.sql
tar -xvzf bookstack-files-backup.tar.gz
Se la versione installata è più recente del backup, lanciate poi php artisan migrate. Ripristinate i diritti di scrittura del server web sulle cartelle ripristinate. Se l'indirizzo è cambiato, correggete APP_URL e lanciate bookstack:update-url.
Salvate il database e i file prima di ogni aggiornamento, poi, dalla cartella di BookStack:
git pull origin release
composer install --no-dev
php artisan migrate
php artisan cache:clear
php artisan config:clear
php artisan view:clear
Lo script per Ubuntu 26.04 installa BookStack senza Composer. La pagina degli aggiornamenti propone allora, in beta, ./bookstack-system-cli download-vendor al posto di composer install --no-dev. Questo stesso strumento sa salvare e ripristinare, ma il progetto non lo considera ancora pronto per la produzione: provatelo prima di fidarvene.
La documentazione mantiene un elenco di indicazioni proprie di ogni versione, da leggere per la versione desiderata. Alcuni esempi:
APP_KEY diventa obbligatoria.storage/fonts deve restare scrivibile dal server web, altrimenti le esportazioni PDF possono fallire.Le falle si correggono in versioni di manutenzione, come la 26.09.3 dell'11 novembre 2026: le immagini e i disegni di una pagina in bozza o nel cestino restavano accessibili e modificabili, e la bozza personale di un redattore poteva diventare visibile ad altre persone.
Il self-hosting richiede di occuparsi del server oltre che dell'applicazione. Su un VPS gestito, i nostri team prendono in carico il server e seguono la vostra istanza in modo proattivo; BookStack resta il vostro software, con le sue impostazioni e i suoi dati.
| Argomento | I nostri team | Voi |
|---|---|---|
| Il server | Aggiornamenti del sistema e della sicurezza, interventi sul server compresi | Il momento più adatto alla vostra attività |
| La supervisione | Server seguito 24 ore su 24, 7 giorni su 7, con intervento senza attendere la vostra chiamata | I vostri utenti, i loro ruoli e i vostri contenuti |
| BookStack | Monitoraggio proattivo: errori, rallentamenti e spazio su disco individuati, correzione raccomandata | La sua installazione, i suoi aggiornamenti e le sue impostazioni, che applicate voi o il vostro assistente IA |
| I backup | Ogni notte, cifrati e conservati fuori dalla macchina; ripristino compreso | La richiesta di ripristino, quando ne avete bisogno |
| La migrazione | Il vostro server attuale migrato, in omaggio | Il momento del passaggio |
Se preferite che i nostri team intervengano nell'applicazione stessa, questa prestazione si fattura a ore o a forfait, con un preventivo comunicato prima dell'intervento.
Con un VPS gestito Simafri, i nostri team tengono aggiornato il server della vostra istanza BookStack, lo sorvegliano giorno e notte e intervengono senza attendere la vostra chiamata; seguono anche la vostra istanza in modo proattivo e vi raccomandano le correzioni utili, che applicate voi o il vostro assistente IA. I backup sono cifrati ogni notte e conservati fuori dalla macchina, il loro ripristino è compreso e la migrazione del vostro server attuale è in omaggio.
Sì. BookStack ha licenza MIT, che autorizza qualsiasi uso, e il progetto mantiene una sola versione, senza edizione enterprise. Propone anche piani di assistenza a pagamento, che restano facoltativi. Resta il costo del server che lo fa girare.
Su un Ubuntu 26.04, 24.04 o 22.04 appena installato, scaricate lo script di installazione del progetto, rendetelo eseguibile e lanciatelo con sudo. Installa Apache, MySQL e PHP. Su una macchina già in servizio, seguite l'installazione manuale, perché lo script può sovrascrivere una configurazione web esistente.
No. Le installazioni in container vengono da progetti comunitari, LinuxServer.io e solidnerd. La via ufficiale installa BookStack direttamente sul server, con PHP, MySQL o MariaDB e un server web, a mano o tramite lo script per Ubuntu.
PHP 8.2 o successivo, MySQL 8.0 o MariaDB 10.6 o successivo, Composer 2.2 o successivo, Git e un server web compatibile con PHP. Il progetto non indica né la memoria né il processore, ed esclude l'hosting PHP condiviso.
Un'installazione manuale si apre con admin@admin.com e la password password, da cambiare fin dal primo accesso. Lo script per Ubuntu 26.04 mostra alla fine una password generata a caso. In caso di perdita di accesso, php artisan bookstack:create-admin crea un nuovo amministratore.
Esportate il database con mysqldump, e archiviate .env, public/uploads, storage/uploads e themes. Conservate l'APP_KEY d'origine durante un ripristino, e riponete il tutto fuori dalla macchina. Le esportazioni di contenuto di BookStack non sostituiscono questo backup.
Compilate MAIL_DRIVER, MAIL_HOST, MAIL_PORT, MAIL_ENCRYPTION, MAIL_USERNAME, MAIL_PASSWORD, MAIL_FROM e MAIL_FROM_NAME nel file .env, poi lanciate Send a Test Email in Settings, Maintenance. Da un VPS Simafri, l'invio passa da un relay SMTP autenticato, sulla porta 587.
Un VPS gestito copre il server: sistema, sicurezza, supervisione e backup. I nostri team seguono anche la vostra istanza in modo proattivo e vi raccomandano le correzioni utili, che applicate voi. Un intervento nell'applicazione si fattura a ore o a forfait.
Simafri
Parliamo del vostro progetto
Diteci in due parole ciò che vi serve: vi rispondiamo rapidamente.
Grazie! La tua richiesta è stata inviata. Ti risponderemo a breve.
Preferite l'email? Scriveteci a support@simafri.com.