Installare NextCloud su Qnap

This post is also available in: English (Inglese)

Per quanto possa sembrare folle, sono riuscito ad installare NextCloud su Qnap. Vediamo come e con quali limiti. 

Nextcloud si installa agevolmente su Ubuntu Server ma una installazione su di un server “normale” non avrebbe usufruito della tutela dei dati che un Qnap eroga nativamente.

Qnap nasce come dispositivo dedicato a contenere backup ed a proteggere dati. Nella versione più recente implementa anche funzioni di “**snapshot” garantendo un ulteriore resilienza in caso di attacco da parte di ramsomware. Per un utente domestico è esattamente il posto giusto in cui installare qualcosa su cui poi metterà suoi dati privati, da condividere o meno.

Qnap nella semplice versione a 2 dischi (io possiedo il 251+) supporta il Raid1 e supporta il ** backup differenziale di se stesso, in modo che sia possibile ripristinare la situazione a giorni addietro nel caso qualcuno fosse riuscito ad accedere al file system e ad alterare i dati cifrandoli o peggio.

L’istallazione di NextCloud su Qnap è comunque una sfida. Qnap ha un suo OS proprietario, non open, che pur essendo un fork di Linux segue la logica di una azienda cinese privata votata al mercato. Il supporto esiste ma è sostanzialmente via User Blog o simili.

Il risultato ottenuto con fatica è stato, per me eccellente.

Vediamo come ho fatto e che scelte ho fatto.

  1. Il mio 251+ monta un processore 4 core Intel con 2.2 Ghz di targa, la memoria RAM nativamente a 2 Gb la si può portare a 16 Gb usando non certificati moduli Kingston acquistabili a prezzo abbordabile separatamente. Il 4Core ed i 16 Gb di ram rendono il Qnap 251+ utilizzabile come storage, cloud server ed molto altro, sino a gruppi di 10/15 persone di cui 4/5 anche in concorrenza tra loro. Le funzioni di **“snapshotting” sono disponibili da 1 Gb di RAM minimo a salire, mentre la parte di Nextcloud  pretende dai 4 ai 6 Gb di RAM a dipendenza delle funzionalità implementate.
  2. Altri requisiti minimi applicativi sono i seguenti: 
    1. Un router di buona qualità ampiamente configurabile, io uso un FritzBox 7490.
    1. Una linea internet con minimo 20/30 Mbit in upload.
    1. Una idea chiara della configurazione del Qnap e delle necessità di NextCloud in termini di porte aperte e di quali servizi abilitare.
    1. Un proprio nome dominio con qualche casella di posta, la configurazione di un DDNS per chi non ha un indirizzo pubblico fisso ed il relativo record nel DNS del dominio.
    1. La scelta di tra installare su Docker o su VM, io ho scelto la VM per sentirmi più libero e per poter sfruttare la funzione di snapshot nativa oltre che del QTS (l’operating system di Qnap) anche del software di virtualizzazione su cui gira la VM con Ubuntu e Nextcloud.
    1. La scelta del fornitore della VM, la sua reperibilità e la sua presenza in rete. Io ho provato: La app di terze parti sul Qnap Store EU (varie..), una istanza Docker, la VM di Daniel Hansoon. Ho scelto https://www.hanssonit.se e ne sono felice. Daniel si è dimostrato un serio professionista sempre presente e sempre paziente. La sua VM e il suo scripting di installazione sono super professionali, molto flessibili e molto curati. Ottimo lavoro Daniel.
    1. La lettura paziente di tutta la documentazione tra Qnap e NextCloud per comprendere i requisiti architetturali ed applicativi e potersela cavare con solo due o tre tentativi… prima di iniziare….

A cosa si deve prestare attenzione? 

Chi acquista un Qnap probabilmente non ha in mente la parte di virtualizzazione che a detta di molti non è molto stabile. Qnap si usa per il backup e per il file system condiviso all’interno di un ufficio o sulla rete locale in casa. Il supporto di Time Machine per gli utenti Mac è buono ed io lo uso da anni. L’anima di Qnap è dunque essere un NAS prima di tutto. In termini di gestione ormai lo si puo accedere anche dall’esterno via il servizio Ddns proprietario e le relative utility mobile da smartphone. 

Il suo grosso limite è che maggiore sono le funzionalità che si installano o a cui si vuole accedere dall’esterno maggiori sono le necessità di indirizzare correttamente le richieste ai servizi ed agli IP della rete interna. Questa parte della configurazione pretende conoscenze approfondite.

Il mio router, pur che buono, espone su internet un indirizzo pubblico e dinamico assegnatomi dal mio operatore e da questo riporta all’interno le porte assegnate ed aperte. 

Ovviamente la regola di base delle porte è tutto chiuso, aprite sempre solo lo stretto indispensabile. 

Quando le applicazioni sono però ospitate su più IP le cose si complicano. L’indirizzo IP del Qnap non può essere lo stesso della VM su cui girano Ubuntu e NextCloud, in fase di configurazione si deve pertanto assegnarne uno nuovo, suggerisco vivamente statico. Inoltre, su questo nuovo IP vanno aperte alcune porte prima ancora di effettuare l’installazione della VM perché lo script di “install” pretende di scaricare librerie ed aggiornamenti da vari repository pubblici e deve dunque essere connesso alla rete internet.

Ecco che in assenza di un Reverse Proxy (il Qnap non lo ha nativo) si deve poter assegnare a singole porte esterne univoche redirezioni sulla rete interna. In pratica due servizi interni su ip diversi tra loro non possono insistere sulle stesse porte, fuori possono e devono essere richiesti solo su porte diverse tra loro. Se uno espone (ed è questo il caso) due web server su IP diversi li deve distinguere fuori su porte diverse tra loro. Pertanto il web server di NextCloud ed altri servizi che eventualmente si possono sovrapporre debbono stare su porte diverse. Questo è forse il requisito ed il limite architetturale più forte da tenere in considerazione.

Se fossimo in un ambiente IT non domestico si avrebbe un reverse proxy o si avrebbero diversi IP pubblici per i diversi IP interni, ma in un ambiente SOHO non è proprio facile avere tutte queste risorse.

Lo script di Daniel è estremamente ricco e permette in fase di “Install” di fare molte cose, assegnare un indirizzo IP statico sulla rete privata, installare la parte di TLS/Https ed i relativi certificati, con anche i servizi di update da Letsencrypt per il rinnovo trimestrale. Installare varie applicazioni terze per aumentare la security del sistema, (ad esempio Failban). Configurare l’update di Ubuntu e di Nextcloud con Cron e nel caso il reboot della VM. 

NextCloud permette l’installazione di decine di app anche in seguito ma l’installazione su Qnap è poco amichevole suggerisco a chi vi prova di installare il minimo sindacale ed in seguito e solo dopo avere preparato l’ambiente procedere al resto della installazione.

Cose da cui stare lontani:

  1. Se scegliete la stessa VM che ho scelto io NON cambiate il layout della tastiera sulla vm (inglese) ed eseguite lo script con la certezza di poter digitare correttamente i caratteri cambiate quello del vs client …
  2. Per una installazione in produzione e condivisa, vi serve un vs dominio ed un po’ di comprensione della configurazione di DNS, DDNS se avete WAN IP dinamico e mail.
  3. NON fate troppe prove di installazione certificati con Letsencrypt, vi è una non abuse policy dunque non esagerate o rimarrete fermi un giro (a me è successo) 
  4. Porte aperte 80 e 443 sul router esterno e verificate UPNP e cosa state già chiedendo di fare al Qnap, non ci debbono essere sovrapposizioni.
  5. Abbiate Ram a sufficienza, ecco perche andare verso i 16 Gb pur non ufficialmente supportati dal 251+, la mia VM se ne beve da sola ben 6!.

NextCloud supporta molto di più di quanto appare, dal password manager sino ad una versione di Office Libra online con funzioni di Groupware, andate per gradi e non tutto secondo me è congruo giri sulla VM di QNAP.

Alcuni link su cui potete trovare altri riferimenti.

Il mio Qnap, i rate limits di Letsencrypt, la suite office di Nextcloud Collabora Online, la memoria Ram che ho usato io per andare a 16 Gb 2 blocchi da 8 non certificata da Qnap e non garantita da me, non incolpatemi se poi installati sul vs Qnap non funziona, cercate conferme anche in rete. Il mio Fritz Router con connettività interna a Gigabit 🙂 , cosa è un reverse proxy .

Potrebbero interessarti anche...