Ricerca nel sito web

Come installare Apache CouchDB NoSQL Database Server su Debian 11


Su questa pagina

  1. Prerequisiti
  2. Passaggio 1 - Installa le utilità
  3. Passaggio 2 - Aggiungi il repository CouchDB
  4. Passaggio 3 - Installa CouchDB
  5. Passaggio 4 - Verificare l'installazione di CouchDB
  6. Passaggio 5 - Accedi a CouchDB
  7. Passaggio 6 - Operazioni di base sul database utilizzando l'interfaccia CouchDB
    1. Crea database
    2. Crea documento
    3. Elimina documento

    1. Crea database
    2. Crea documento
    3. Crea documenti in blocco
    4. Leggi documento
    5. Modifica documento
    6. Elimina documento
    7. Visualizza dati

    Apache CouchDB è un database NoSQL open source sviluppato da Apache Software Foundation. Ogni database è una raccolta di documenti in formato JSON. Ogni documento è composto da una serie di campi e allegati. Viene fornito con un'API riposante che ti consente di creare, modificare ed eliminare documenti di database. Supporta due modalità: autonoma e in cluster. Se lo stai utilizzando su un singolo server, puoi utilizzare la modalità autonoma. La modalità cluster è utile se si utilizza più di un server.

    Questo tutorial ti insegnerà come installare Apache CouchDB Database Server su un server Debian 11. Imparerai anche come eseguire alcune operazioni di base sul database e accedere a CouchDB tramite un URL pubblico utilizzando il server web Caddy.

    Prerequisiti

    • A server running Debian 11.

    • Sudo package is installed.

      $ apt install sudo
      
    • A non-root user with sudo privileges.

    • Everything is updated.

      $ sudo apt update && sudo apt upgrade
      
    • A fully qualified domain name (FQDN), like, couchdb.example.com to access CouchDB over a public URL with HTTPS.

    Passaggio 1: installare le utilità

    Prima di procedere con l'installazione, è necessario installare alcuni strumenti che saranno necessari per il tutorial. Eseguire il seguente comando per installarli.

    $ sudo apt install -y curl apt-transport-https gnupg nano lsb-release 
    

    Passaggio 2: aggiungi il repository CouchDB

    Il primo passaggio consiste nell'importare la chiave GPG di CouchDB. Eseguire il comando seguente per importare la chiave.

    $ curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1
    

    Aggiungi il repository CouchDBs all'elenco dei repository di sistema.

    $ echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ `lsb_release -cs` main" \
        | sudo tee /etc/apt/sources.list.d/couchdb.list >/dev/null
    

    Aggiorna l'elenco dei repository di sistema.

    $ sudo apt update
    

    Passaggio 3: installa CouchDB

    Esegui il seguente comando per installare CouchDB.

    $ sudo apt install couchdb -y
    

    Il programma di installazione di CouchDB ti chiederà automaticamente di configurare le impostazioni di base. Nel primo passaggio, ti chiederà se desideri utilizzarlo in una singola configurazione del server o in più nodi. Poiché lo stiamo installando su un singolo server, mantieni l'opzione selezionata e premi Invio per continuare.

    Successivamente, ti verrà chiesto di impostare un nome per il cookie. Scegli il nome che desideri.

    Successivamente, ti verrà chiesto di impostare un indirizzo vincolante per il servizio CouchDBs. Poiché lo stiamo installando su un server e sarà necessario accedervi tramite un pannello di controllo dell'interfaccia utente, impostare 0.0.0.0 come indirizzo di collegamento. Se hai intenzione di limitare l'accesso al server CouchDB a un indirizzo IP, utilizzalo.

    Successivamente, ti verrà chiesto di creare una password amministratore per il suo account amministratore predefinito.

    Ti verrà chiesto di verificare nuovamente la password.

    Premere Invio per completare il processo di installazione.

    Passaggio 4: verificare l'installazione di CouchDB

    Per verificare se l'installazione è andata a buon fine, eseguire il seguente comando.

    $ curl http://127.0.0.1:5984/
    

    Restituirà un output in formato JSON con informazioni su CouchDB.

    {"couchdb":"Welcome","version":"3.2.2","git_sha":"d5b746b7c","uuid":"7a20b1eadd803f1c0d77fb9617c7f3de","features":["access-ready","partitioned","pluggable-storage-engines","reshard","scheduler"],"vendor":{"name":"The Apache Software Foundation"}}
    

    L'output della shell non è formattato. Ecco come appare sulla formattazione.

    {
       "couchdb":"Welcome",
       "version":"3.2.2",
       "git_sha":"d5b746b7c",
       "uuid":"7a20b1eadd803f1c0d77fb9617c7f3de",
       "features":[
          "access-ready",
          "partitioned",
          "pluggable-storage-engines",
          "reshard",
          "scheduler"
       ],
       "vendor":{
          "name":"The Apache Software Foundation"
       }
    }
    

    Puoi anche accedervi via web visitando l'URL http://:5984/. Ma prima di farlo, dobbiamo aprire la porta nel nostro firewall. Supponendo che tu stia utilizzando Uncomplicated Firewall(ufw), esegui il seguente comando per aprire la porta.

    $ sudo ufw allow 5984/tcp
    

    Apri l'URL http://:5984 nel tuo browser. Vedrai la seguente schermata. Il seguente output è stato catturato su Firefox. In altri browser, vedrai semplicemente l'output non elaborato che hai ottenuto nel tuo terminale.

    Passaggio 5: accedi a CouchDB

    CouchDB viene fornito con una GUI basata sul Web chiamata Fauxton per gestire e creare database. Puoi accedervi tramite l'URL http://:5984/_utils/. Avvia l'URL nel tuo browser preferito e vedrai la seguente schermata di accesso.

    Inserisci admin come nome utente e la password creata in precedenza. Premere il pulsante Accedi per continuare. Successivamente, verrai indirizzato alla dashboard di CouchDB.

    Qui vedrai due database che sono stati creati durante l'installazione. Il database _users come previsto gestisce le informazioni per gli utenti della piattaforma CouchDB e il database _replicator contiene informazioni su eventuali database o operazioni di replica.

    Vedrai anche una barra laterale con tutti i tipi di opzioni che puoi utilizzare con CouchDB.

    Passaggio 6: operazioni di base sul database utilizzando l'interfaccia CouchDB

    L'interfaccia Fauxton di CouchDB ci consente di eseguire operazioni CRUD di base (creare, leggere, aggiornare ed eliminare). Cominciamo con la creazione di un nuovo database.

    Crea banca dati

    Per creare un nuovo database, fare clic sul collegamento Crea database nella schermata principale. Si aprirà il seguente pop-up.

    Immettere il nome del database che si desidera creare e fare clic sul pulsante Crea.

    Questo creerà un nuovo database e aprirà la seguente schermata.

    Crea documento

    Ora che abbiamo un database, creiamo un documento al suo interno. Fai clic sul pulsante Crea documento per iniziare. Otterrai la seguente schermata del nuovo documento precompilata con un oggetto JSON e un _id con un identificatore univoco globale (GUID).

    Aggiungiamo alcuni dati aggiungendo altri campi nel modo seguente. Se desideri modificare il valore del campo _id , puoi farlo ma solo prima di creare il documento. Non è possibile modificarne il valore dopo che il documento è stato creato. Tuttavia, puoi modificare altri campi in qualsiasi momento.

    {
      "_id": "0b4ad0d607479c09bb9121b146007363",
      "Name": "Navjot Singh",
      "role": "writer",
      "skills": "linux"
    }
    

    Fai clic sul pulsante Crea documento quando hai finito di aggiungere i campi per salvare il nuovo documento. Verrai riportato alla seguente pagina Tutti i documenti.

    Per visualizzare il contenuto dei documenti, è possibile fare clic sul collegamento JSON {}.

    Per modificare il documento, puoi fare clic sull'icona della matita mostrata a destra o tornare alla visualizzazione Metadati e fare clic sul collegamento del documento. Modificare i valori di uno qualsiasi degli elementi e fare clic su Salva documento per terminarlo.

    Elimina documento

    Per eliminare il documento, fai clic sul segno di spunta davanti al documento e seleziona il pulsante Elimina in alto come mostrato di seguito.

    Passaggio 7: operazioni di base sul database utilizzando la riga di comando

    Sebbene l'utilizzo dell'interfaccia web sia un modo più semplice di utilizzare CouchDB, è possibile ottenere una maggiore efficienza eseguendo le stesse operazioni tramite la riga di comando.

    Crea banca dati

    Prima di iniziare a creare il nostro database, definiamo una variabile per l'URL da connettere. Useremo una semplice autenticazione con testo normale per i nostri esempi. Poiché avremo bisogno di autenticare ogni comando, è meglio usare una variabile predefinita per esso. Puoi utilizzare localhost o 127.0.0.1 per connetterti all'installazione di CouchDB.

    $ HOST="http://admin::5984"
    

    Nota: l'utilizzo di una password in testo semplice non è il metodo migliore e non dovrebbe essere utilizzato negli ambienti di produzione. Puoi consultare la documentazione ufficiale di CouchDB per metodi di autenticazione più sicuri.

    Ora che abbiamo definito l'URL dell'host, proviamo a creare un altro database utilizzando il seguente comando.

    $ curl -X PUT $HOST/another_db
    

    Il nome del database è another_db. E dobbiamo fornire la password dell'amministratore per il comando.

    Crea documento

    Per creare un documento, eseguire il seguente comando.

    $ curl -X POST -d '{"todo":"task 1", "done":false}' $HOST/another_db -H "Content-Type:application/json"
    

    Il flag -X indica che stiamo eseguendo un'operazione HTTP POST. Il flag -H specifica il tipo di contenuto che stiamo inviando, ovvero JSON qui. E il flag -d specifica il contenuto JSON effettivo che stiamo aggiungendo.

    Il comando precedente genererà automaticamente un ID per il documento. Genererà il seguente output che indica che il comando ha avuto successo.

    {"ok":true,"id":"0b4ad0d607479c09bb9121b14600c6ee","rev":"1-2fc1d70532433c39c9f61480607e3681"}
    

    Come puoi vedere, è stato generato automaticamente un ID per il documento. Se desideri specificare un ID personalizzato, puoi farlo nel modo seguente.

    $ curl -X POST -d '{"_id":"random_task", "todo":"task 2", "done":false}' $HOST/another_db -H "Content-Type:application/json"
    {"ok":true,"id":"random_task","rev":"1-bceeae3c4a9154c87db1649473316e44"}
    

    Crea documenti in blocco

    Puoi anche aggiungere documenti in blocco.

    $ curl -X POST -d '{"docs": [{"todo":"task 3", "done":false}, {"todo":"task 4", "done":false}]}' $HOST/another_db/_bulk_docs -H "Content-Type:application/json"
    

    Come puoi vedere, quando inseriamo più documenti, il corpo del POST contiene un oggetto con un campo docs. Questo campo contiene una matrice di documenti da inserire nel database. Durante l'inserimento di un singolo documento, la richiesta POST è stata inviata al database ($HOST/another_db). Ma quando abbiamo bisogno di inserire più documenti, la richiesta deve essere inviata all'URL $HOST/another_db/_bulk_docs.

    Riceverai un output simile.

    [{"ok":true,"id":"0b4ad0d607479c09bb9121b14600cb04","rev":"1-778fd61f8f460d0c1df1bb174279489d"},{"ok":true,"id":"0b4ad0d607479c09bb9121b14600d9ef","rev":"1-dc9e84861bba58e5cfefeed8f5133636"}]
    

    Qui puoi vedere che l'output contiene l'ID per i due nuovi documenti.

    Leggi Documento

    Per leggere un documento dal database, è necessario specificarne l'ID. Esegui il seguente comando per recuperare il documento random_task. Poiché abbiamo utilizzato una richiesta HTTP POST per aggiungere dati, ha senso che per recuperarli sia necessario utilizzare una richiesta GET.

    $ curl -X GET $HOST/another_db/random_task
    

    Riceverai il seguente output.

    {"_id":"random_task","_rev":"1-bceeae3c4a9154c87db1649473316e44","todo":"task 2","done":false}
    

    Qui, annota il campo _rev del documento. Questo campo è utile quando è necessario modificare o eliminare un documento.

    Modifica documento

    Per modificare un documento, devi utilizzare il campo _rev. Qualsiasi richiesta che non includa il campo _rev viene automaticamente rifiutata da CouchDB durante la modifica. Poiché CouchDB aggiorna l'intero documento, l'intero documento deve essere inviato nel corpo della richiesta durante l'operazione di modifica.

    Aggiorniamo il documento random_task utilizzando il seguente comando.

    $ curl -X PUT -d '{"_rev":"1-bceeae3c4a9154c87db1649473316e44", "todo":"task 2", "done":true}' $HOST/another_db/random_task
    

    Assicurati di sostituire il valore del campo _rev con il valore ottenuto quando hai letto il documento. Dovrebbe corrispondere al valore nel documento effettivo.

    Riceverai un output simile a quello qui sotto.

    {"ok":true,"id":"random_task","rev":"2-4cc3dfb6e76befd665faf124b36b7f1c"}
    

    Se noti, i dati dei campi rev sono cambiati. Qualsiasi ulteriore modifica al documento richiederà l'utilizzo di questo nuovo valore rev.

    Elimina documento

    Per eliminare un documento, dovrai specificare l'ID e il valore rev aggiornato. Cancelliamo il documento random-task.

    $ curl -X DELETE $HOST/another_db/random_task?rev=2-4cc3dfb6e76befd665faf124b36b7f1c
    

    Assicurati di far corrispondere il valore del campo rev nel comando con il valore nel tuo documento effettivo. Otterrai un output simile al seguente.

    {"ok":true,"id":"random_task","rev":"3-07d6cde68be2a559497ec263045edc9d"}
    

    Visualizza dati

    Controlliamo l'elenco di tutti i database sul server.

    $  curl -X GET $HOST/_all_dbs
    

    Elenca tutti i documenti in un particolare database.

    $ curl -X GET $HOST/another_db/_all_docs
    

    Passo 8 - Installa Caddy Server

    Finora, abbiamo effettuato l'accesso a CouchDB utilizzando l'indirizzo IP del server. C'è un metodo semplice se vuoi sostituirlo con il tuo nome di dominio e utilizzare SSL davanti ad esso per renderlo più sicuro. Per il nostro tutorial, utilizzeremo Caddy Server poiché è leggero e funziona con una configurazione minima e viene fornito con la creazione SSL integrata.

    Eseguire il seguente comando per installare alcuni pacchetti richiesti da Caddy. Potrebbero essere già installati sul tuo server.

    $ sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
    

    Installa la chiave GPG di Caddy e aggiungi il repository ufficiale all'elenco dei repository Debian.

    $ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
    $ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
    

    Installa il server Caddy.

    $ sudo apt update
    $ sudo apt install caddy
    

    Eseguire il seguente comando per verificare l'installazione.

    $ caddy version
    v2.5.1 h1:bAWwslD1jNeCzDa+jDCNwb8M3UJ2tPa8UZFFzPVmGKs=
    

    Passaggio 9: configurare Caddy

    Per configurare Caddy in modo che funzioni come server proxy inverso, è necessario configurare Caddyfile. Apri il Caddyfile per la modifica.

    $ sudo nano /etc/caddy/Caddyfile
    

    Sostituisci il codice in esso contenuto con il seguente codice.

    couchdb.example.com {
            reverse_proxy localhost:5984
    
            tls 
    
            log {
                    output file /var/log/caddy/couchdb.log
            }
    }
    

    Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

    Esegui il validatore Caddy per verificare eventuali problemi.

    $ caddy validate --adapter caddyfile --config /etc/caddy/Caddyfile
    

    Se ricevi errori relativi alla formattazione, esegui il seguente comando per correggerlo.

    $ sudo caddy fmt --overwrite /etc/caddy/Caddyfile
    

    Eseguire nuovamente il validatore.

    Riavvia il server Caddy per implementare le modifiche.

    $ sudo systemctl restart caddy
    

    Ora puoi accedere a CouchDB tramite l'URL https://couchdb.example.com/_utils/ nel tuo browser.

    Conclusione

    Hai imparato come installare il server del database Apache CouchDB su una macchina Debian 11. Hai anche imparato come eseguire operazioni di database di base tramite la riga di comando e l'interfaccia utente di Fauxton. E, ultimo ma non meno importante, hai anche imparato come esporre l'interfaccia utente di Fauxton su Internet utilizzando Caddy come server proxy inverso. Se hai domande, pubblicale nei commenti qui sotto.