📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Addio Google Workspace, ho trovato DI MEGLIO.

morrolinux18:01

Transcription

Google Workspace, cioè Gmail, Drive, Meet e Calendar. Questi sono forse i servizi con cui Google raccoglie più informazioni su di noi, al di là del motore di ricerca. Oggi vi spiego come ho rimpiazzato buona parte di questi con alternative più rispettose per la privacy e, in alcuni casi, perfino migliori. Voglio parlarvi di Nextcloud, l'alternativa Open Source a Google Workspace, e in particolare di come installare la propria istanza in Self-hosting, argomento che non ho mai trattato prima.

Fermi, fermi, fermi! Sento già i più attenti che dicono: "Ma ne hai già parlato un paio d'anni fa?". In realtà sì, ma lo installavo su un Raspberry con DietPi, in maniera abbastanza raffazzonata, senza HTTPS o qualunque genere di accortezza. Oggi facciamo le cose per bene e il metodo che vi mostrerò funziona ovunque. Ma prima, facciamo un breve recap di perché Nextcloud è così figo.

Questa è un'istanza che ho installato così, per l'occasione. Questa è la homepage, tra virgolette, e potete personalizzare che cosa si vede qui, non solo con le cose integrate, ma anche tramite widget esterni di terze parti. Quindi immaginate di avere un'integrazione con un altro servizio in cui magari vi fa comparire qualcosa sulla Dashboard. L'ho paragonato a Google Workspace perché, a tutti gli effetti, ha un'alternativa per ciascuno di quei prodotti. Ad esempio, la sincronizzazione dei file, a cui possiamo accedere anche tramite l'interfaccia web, chiaramente con una marcia in più. Secondo me, prima di tutto perché supportano la sincronizzazione con i client nativi Linux, cosa che Google non ci dà dopo tanti anni. E poi perché all'interno di ogni cartella puoi creare un file README in cui metti una descrizione e puoi modificarla in qualunque momento. Se hai dei collaboratori, puoi inserire una breve descrizione per ogni cartella, in modo da aiutarli a capire che cosa dovrebbe stare dove.

I file sono versionati e qui ci sono tutte le versioni. Se adesso faccio un'altra modifica, la salvo e appena la salvo... Ed eccolo qua! Quindi, a questo punto, posso tornare indietro alla versione precedente. Voilà! Oppure all'ultima versione. E voilà! Ma soprattutto, su questo documento ci possono lavorare più utenti e quindi, ovviamente, viene scritto chi ha fatto cosa in ogni momento. Insomma, da questo punto di vista siamo davvero molto al completo.

E poi c'è la parte foto, che diciamo si potrebbe sostituire a Google Photo, anche se per quello utilizzo altre cose. Mi trovo meglio con Immich, specialmente per l'app mobile. Naturalmente, abbiamo una rubrica di contatti e un calendario, anche questi sincronizzabili su iOS e Android tramite CalDAV. È del tutto simile a quella di Google Calendar. L'unica carenza, secondo me, è che manca un'applicazione mobile piacevole da usare come Google Calendar. Poi abbiamo le note, che non sono semplici note .txt, ma supportano lo styling. C'è una To-do list, ci sono tante altre cose. Ma la cosa interessante è che questo elenco di applicazioni che vedete qui non è esaustivo, perché può popolarsi all'infinito, potenzialmente, andando a installare le applicazioni e i plugin di terze parti.

Qui ho fatto qualche esempio. Potete installare le integrazioni per le suite di produttività, tipo OnlyOffice, se volete stare sull'Open Source, così come integrare Nextcloud con la vostra piattaforma di Project Management, oppure definire degli Hook e dei workflow. Vediamo dopo un esempio, o integrare servizi di storage di terze parti come Dropbox, Amazon S3 e via dicendo, all'interno di Nextcloud, per potervi accedere e quindi aggregare dati da più sorgenti in un unico punto, cosa che faccio anche, tra l'altro, con gli RSS. Se, ad esempio, vado qui in Applicazioni, questo è sostanzialmente il software store di Nextcloud. Questo è il vero punto di forza di questa piattaforma, perché qui potete trovare tutte le integrazioni del mondo. Ad esempio, Draw.io, vi piace Draw.io? A me un sacco! Perfetto, posso integrarlo all'interno di Nextcloud. Oppure plugin da mettere sul cruscotto, che sarebbe la Dashboard iniziale, integrazioni con vari CRM, con Twitter, Resty, Zimbra, sono tutti nomi famosi. O ancora, integrazione con DocuSign, chi è che non lo conosce? Oppure questa per convertire automaticamente i file multimediali che carichiamo in un altro formato, ad esempio per risparmiare spazio di archiviazione. Questo sfrutta il meccanismo dei workflow per intercettare degli eventi, come un nuovo file è stato creato, e di conseguenza fare una serie di operazioni in base alla tipologia di file, in base a dove sta, eccetera eccetera. Immaginate anche le varie integrazioni con vari software gestionali. La cosa si riduce a: ho il client di sincronizzazione sul PC, trascino questo file dentro la cartella sincronizzata e lui nel backend si accorge di che cosa è successo e fa le cose che deve fare.

La cosa incredibile è che è tutto Open Source, quindi possiamo facilmente scrivere personalizzazioni su misura per noi, anche basandoci su altre estensioni simili a quello che vogliamo fare noi, che non fanno esattamente quello che vogliamo fare noi, proprio in pieno spirito Open Source. C'è anche un'integrazione per Jira. Guarda, e poi continua. Abbiamo un CAD viewer, abbiamo roba per visualizzare le coordinate GPS, abbiamo qualsiasi cosa, qualsiasi cosa. E vedete, è proprio questo il punto di forza. Mappe mentali, ce l'abbiamo. Autenticazione con OpenID, ce l'abbiamo. Un'app per organizzare i turni di lavoro, ce l'abbiamo. Un'app per gestire le finanze, perché no? Sostanzialmente, Nextcloud diventa la cosa di contorno a un intero ecosistema di applicazioni e integrazioni che possono davvero contribuire a rendere il vostro ambiente unico al mondo.

Nextcloud è uno strumento molto potente, ma può essere un po' complicato da installare per i meno esperti. Perciò, voglio suggerirvi tre modi per installare Nextcloud, a seconda del vostro livello. Il primo consiste nell'installarlo sul vostro server domestico, seguendo la guida di questo video. In questo modo, avrete controllo totale sui vostri dati e su ciò che potete fare con Nextcloud, ed è anche la soluzione più laboriosa, ma se avete le basi, non è nulla di così complesso.

Oppure, potete installare Nextcloud con un click, grazie alla soluzione web hosting di Infomaniak, di cui vi parlo meglio dopo. Questo accelera parecchio le cose, ma avete comunque per le mani un server esposto pubblicamente, con tutte le accortezze che ne derivano per mantenerlo in sicurezza.

La terza opzione è di usare direttamente kDrive e la suite di Infomaniak. Questi servizi sono Open Source anche essi, ma interamente gestiti da Infomaniak. Questo significa che potete accedere ai vostri file da qualsiasi luogo, senza dovervi mai preoccupare di manutenzioni o aggiornamenti o dei backup, dato che Infomaniak li mantiene su tre diversi supporti in due diversi data center. Infomaniak, che ha sponsorizzato questa porzione di video, è un'azienda svizzera con 30 anni di esperienza nel settore e un profondo impegno verso la privacy e la sostenibilità ambientale. Giusto il mese scorso ho anche visitato i loro nuovi data center, dove il calore generato viene riciclato per scaldare le abitazioni circostanti, progetto molto figo che vi consiglio di vedere se vi siete persi il video. Comunque, vi lascio un link in descrizione per provare kDrive e il loro servizio di hosting, e se l'avete già provato, fatemi sapere che ne pensate.

Questo potrebbe essere il modo più semplice in assoluto per installare Nextcloud e metterlo in HTTPS. Tutto ciò che vi occorre è questo docker-compose di 28 righe, che vi lascio, tra l'altro, allegato in descrizione. Tutto ciò che dovete fare è creare una cartellina, chiamatela Nextcloud, chiamatela come volete, ci mettete dentro questo docker-compose, installate Docker, e poi date `docker compose up -d`. Lui si scarica tutto quello che deve scaricare. La maggior parte di quello che serve è già preconfigurato. Noi dobbiamo solo configurare l'HTTPS.

Quindi, mentre scarica, ora vi faccio vedere cosa serve. Prima di tutto, vi serve un dominio. Generalmente si acquistano per pochi euro all'anno, ma potete anche utilizzarne uno gratuito con DuckDNS, semplicemente facendo l'accesso con il vostro account Google, GitHub o Twitter. Io qui utilizzerò l'account Google e vi trovate in una schermata simile a questa. Qui andate a creare un sottodominio duckdns.org, ad esempio morro.duckdns.org. Qualche bastardo si è già preso morro.duckdns.org. A morro.duckdns.org, allora è doppiamente bastardo perché non sono io. Ok, sono riuscito a prendere morro con gli zeri al posto delle o, perché quello non era ancora stato preso. E qui andiamo a impostare l'indirizzo IP del server che esegue Nextcloud. Nel mio caso, è un indirizzo IP locale, perché questo server io non voglio esporlo pubblicamente, voglio solo che giri tra le mura di casa, così è più sicuro. E se voglio accedere da fuori, accedo tramite una VPN. Tanto con WireGuard è semplicissimo, c'ho già fatto un video. E se non vi piace WireGuard, perché ad esempio non potete aprire le porte, potete sempre usare Tailscale. Ci devo ancora fare un video, ma ci penserò. Se io avessi noleggiato un server VPS in cloud con un indirizzo IP pubblico, qui avrei messo l'indirizzo di quel server.

Nel frattempo, Docker ha finito di avviare lo stack e quindi posso visitare l'indirizzo IP di questo server alla porta 81 con un browser, dove mi trovo davanti il login di Nginx Proxy Manager. Le credenziali di default sono admin@example.com e la password è `changeme` (cambiami in inglese, è tutto attaccato). Ma queste credenziali, in realtà, dovete cambiarle subito. Quindi, morro, morro, anche la password la cambiamo subito. Password corrente e nuova password.

Ora non mi resta che ottenere i certificati SSL. Vado qui, Aggiungi un certificato SSL. Il nome, come dominio, devo specificare quello che ho registrato su DuckDNS. E visto che voglio potenzialmente puntare a qualsiasi sottodominio di questa cosa qui, richiederò anche per `*.morro.duckdns.org`, dominio wildcard. Ora, se siete su un server VPS esposto pubblicamente, bla bla bla, potete semplicemente controllare la raggiungibilità del server e, se tutto va bene, spuntare questo e andare avanti. Ma nel mio caso, il server non sarà raggiungibile perché è dietro le mura di casa. Quindi, facciamo una cosa più astuta: utilizziamo un altro meccanismo chiamato DNS Challenge. Vi faccio vedere come funziona. Spuntiamo "Usa DNS Challenge", scegliamo il provider. Come vedete, ce ne sono numerosi, potete usare qualunque di questi. Ad esempio, se aveste registrato un nome dominio su OVH, avreste potuto usare anche OVH. Fortunatamente, c'è anche DuckDNS. E tutto ciò che ci occorre è compilare questo campo con il nostro token per l'autenticazione su DuckDNS. Dove si trova? Beh, si trova nella pagina principale, quella che abbiamo avuto sotto gli occhi per tutto il tempo, esattamente qui. Io spero di essermi ricordato di oscurarlo, quindi lo copiamo. Occhio a non prendere degli spazi in più, perché sennò non funziona, e lo andiamo a incollare esattamente qui. Tempo di propagazione, mettiamo 120 secondi, perché può essere abbastanza lento. E finalmente premiamo Salva.

Ora, questa roba qua impiegherà, appunto, circa 2 minuti e potrebbe fallire al primo tentativo. Non vi preoccupate, può essere che il tempo di propagazione sia ancora più lungo, quindi potete riprovare e prima o poi funzionerà. E voilà, finalmente siete riusciti a ottenere il certificato SSL. Ora non ci resta che aggiungere un proxy host. Quindi, andiamo sotto Host, Proxy Hosts, Aggiungi Proxy Host. E specifichiamo che per, che so, `nextcloud.morro.duckdns.org`, mi faccio una redirezione a `http://localhost` alla porta 11000. Questa era quella che era configurata all'interno del docker-compose. Qui puntiamo WebSocket support e Block Common Exploits. Nella sezione SSL, andiamo a selezionare il certificato che abbiamo ottenuto in precedenza. Forza SSL e HTTP/2 support. Nei parametri avanzati, non è strettamente obbligatorio, ma perché funzioni bene, consigliano sulla Wiki ufficiale di inserire queste cose qui. Anche questo ve lo lascio in descrizione. Salviamo e voilà, con Nginx Proxy Manager abbiamo finito.

Questo non è l'unico modo per usare Nginx Proxy Manager. In realtà, c'è un modo molto più elegante di esporre i container in HTTPS, solo che qui con l'immagine all-in-one non era applicabile. Ma se vi interessa l'argomento, l'ho trattato in maggior dettaglio nel mio nuovo corso Docker per comuni mortali. Se siete alle prime armi con Docker e con il mondo del self-hosting, vi lascio un link in descrizione per approfondire.

L'ultimo passaggio sarà visitare sempre l'indirizzo IP del server, però la porta 8080, HTTPS, bla bla bla, 8080. Questo ovviamente ci dà un warning perché è un certificato self-signed. Quindi, va bene, dobbiamo premere questo qui e questo qui. So che sembra brutto, ma è descritto nella procedura ufficiale, è proprio il modo ufficiale per farlo all'inizio. E qui, attenzione, perché genera una passphrase casuale. Questa salvatela da qualche parte, perché vi servirà ogni volta per accedere a questa dashboard di controllo di Nextcloud. Anzi, tant'è vero che ora, se premete Nextcloud login, ve la chiede la prima cosa. Quindi, salvatela in un posto sicuro. Ovviamente, andiamo e da qui in poi, sostanzialmente, è tutto in discesa. Si apre questa schermata in cui dobbiamo soltanto inserire il dominio, sempre lo stesso di prima, chiaramente. Submit Domain. Lui fa un piccolo controllo e voilà, fatto.

Ora non dovete fare altro che selezionare quali container volete, cioè Nextcloud è in realtà modulare. Tolgo le spunte a qualsiasi cosa, perché è solo una demo. Salva i cambiamenti. E qui, occhio, perché se non spuntate questa roba, vi installa la versione precedente. Quindi, Ok, Download and start containers. E ora non ci resta che aspettare. C'è anche scritto qui, comunque, potrebbe volerci dai 5 ai 10 minuti o giù di lì, perché sono diversi gigabyte da scaricare. Sostanzialmente, Nextcloud ha fatto una cosa un po' strana con il kit AIO, cioè hanno questa immagine all-in-one che in realtà è un'immagine singola che poi va a creare tutti i vari container, come abbiamo visto, on demand, secondo la configurazione dell'utente. Serve a semplificare la gestione e l'installazione dello stack Nextcloud, ma a differenza di un classico stack su docker-compose, per esempio, non avete elencati nel docker-compose tutti i container che state utilizzando, semplicemente avete il master container, così lo chiamano, e poi lui va ad avviare tutti gli altri, li tiene aggiornati, li stoppa. Non mi fa impazzire questa cosa, ma è senza dubbio il modo più semplice in assoluto per gestire un'istanza Nextcloud. Ho detto che sarebbe stato il modo più semplice in assoluto, o no? Non il più elegante, forse, ma è una procedura ufficiale, insieme a Nginx Proxy Manager, è il modo più semplice in assoluto per mettere su Nextcloud con HTTPS.

Dopo alcuni minuti, dovreste cominciare a vedere questo, e dobbiamo aspettare che tutti i pallini diventino verdi. Ma diamo gli altri 5-10 minuti. Comunque, nel frattempo che aspettiamo, una cosa che possiamo fare è leggere i log di questi container man mano che partono. Ad esempio, Redis è già in esecuzione. Ma se andiamo a leggere qui... Ok, perfetto, niente, non ci sono errori. Ma mi ero puntato questo warning da installazioni su altre macchine, in cui Redis diceva: "Attenzione, perché il memory overcommit must be enabled, altrimenti potrebbero scazzare delle cose". Perfetto. Se doveste vedere questa roba nei log del container Redis, tutto ciò che dovete fare è eseguire sull'host il comando `sysctl vm.overcommit_memory=1`. Questo lo attiva al volo, con `sudo` magari davanti e azzeccando la password, mi raccomando. Questo l'attiva al volo, ma non è persistente al prossimo riavvio di sistema. Quindi, per renderlo persistente, dovete fare questa roba qua. Dovete andare a scrivere sotto `/etc/sysctl.d/` un file con all'interno questa roba qua, e potete farlo con questo oneliner che vi lascio in descrizione. Ma sicuramente qualcosa mi dimenticherò, forse di dire che vi lascio tutto in descrizione.

Comunque, nel frattempo, lui ha finito anche la configurazione dei container. Mi dà uno username e una password per accedere a Nextcloud, stavolta proprio il pannello Nextcloud. E guardate che bellezza, che pulizia! Sta già funzionando tutto. Non abbiamo warning, non abbiamo avvisi del tipo "Attenzione, il certificato SSL self-signed", bla bla bla. No, funziona tutto perfettamente. Sono sul mio `nextcloud.morro.duckdns.org` di questa rete. Se ci provate da casa vostra, non riuscirete, perché questo punta a un indirizzo IP locale. Da fuori casa funziona solo se sono collegato alla VPN di casa mia. Comunque, niente, il resto è come al solito. Conoscete già Nextcloud, ve ne ho parlato in un video che andò piuttosto bene, quindi è molto probabile che l'abbiate già visto. Questa è la versione 3.0, quindi ci sono degli aggiornamenti. Non sono ancora andato a vedere cosa cambia nel concreto, ma la cosa più importante per me è che, a differenza di Google Drive, la parte Drive di Nextcloud è integrata nativamente con Linux. Abbiamo un client nativo che supporta tutte le funzionalità che desideri. Infatti, io ho anche una cartella Nextcloud sincronizzata su questo computer con il client di sincronizzazione ufficiale, che ti mette il pallino di diversi colori a seconda dello stato di sincronizzazione. La cartella si chiama, per ragioni storiche, e lo stato di sincronizzazione lo vedo qui in alto. Apri la finestra principale. Voilà, tutto sincronizzato. E vai, easy.

Ok, tirando le somme, per me la cosa più difficile da cui non riesco proprio a staccarmi è il calendario. Paradossalmente, è una di quelle cose che io utilizzo tantissimo da smartphone e non c'è, secondo me, un'applicazione all'altezza di Google Calendar. Non tanto per le funzionalità, ma per l'esperienza utente, proprio. Cioè, vorrei poter tappare e trascinare un evento per spostarlo sul calendario. Vorrei poter inserire un evento alle 3:30 e non alle 3 o alle 4:00. Il calendario di Android Open Source è legnoso. Per il resto, Nextcloud è veramente una figata. Lo sto utilizzando sempre di più da quando ho iniziato il mio distacco da Google, e mi fa piacere constatare che non sono l'unico. Anche tante aziende lo utilizzano internamente, perché si integra molto bene con i processi aziendali interni. Ricordate il discorso sulle integrazioni, plugin, eccetera eccetera, sul fatto che tutto l'ecosistema è Open Source? Quella è tanta roba. Paradossalmente, per un utente normale, standard, questa roba sarebbe impensabile, perché gestirsi la propria infrastruttura... Vomito. Ma secondo me, noi che siamo informatici veri, che vogliono capire quello che stanno facendo e gestire la propria infrastruttura, beh, insomma, un'istanza Nextcloud ci vuole.

[Musica]