Si të instaloni serverin e bazës së të dhënave Apache CouchDB NoSQL në Debian 11


Apache CouchDB është një bazë të dhënash NoSQL me burim të hapur e zhvilluar nga Apache Software Foundation. Çdo bazë të dhënash është një koleksion dokumentesh në formatin JSON. Çdo dokument përbëhet nga një numër fushash dhe bashkëngjitjesh. Ajo vjen me një API qetësuese që ju lejon të krijoni, modifikoni dhe fshini dokumentet e bazës së të dhënave. Ai mbështet dy mënyra - të pavarura dhe të grumbulluara. Nëse e përdorni në një server të vetëm, mund të përdorni modalitetin e pavarur. Modaliteti i grupuar ndihmon nëse jeni duke përdorur më shumë se një server.

Ky tutorial do t'ju mësojë se si të instaloni serverin e bazës së të dhënave Apache CouchDB në një server Debian 11. Ju gjithashtu do të mësoni se si të kryeni disa operacione bazë të bazës së të dhënave dhe të hyni në CouchDB përmes një URL publike duke përdorur serverin në internet Caddy.

Parakushtet

  • 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.

Hapi 1 - Instaloni Utilities

Përpara se të vazhdojmë me instalimin, duhet të instalojmë disa mjete që do të kërkohen për tutorialin. Drejtoni komandën e mëposhtme për t'i instaluar ato.

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

Hapi 2 - Shtoni depon e CouchDB

Hapi i parë është të importoni çelësin GPG të CouchDBs. Ekzekutoni komandën e mëposhtme për të importuar çelësin.

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

Shtoni depon e CouchDBs në listën e depove të sistemit.

$ 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

Përditësoni listën e depove të sistemit.

$ sudo apt update

Hapi 3 - Instaloni CouchDB

Drejtoni komandën e mëposhtme për të instaluar CouchDB.

$ sudo apt install couchdb -y

Instaluesi i CouchDB do t'ju kërkojë automatikisht të konfiguroni cilësimet bazë. Në hapin e parë, do t'ju pyesë nëse dëshironi ta përdorni në një konfigurim të vetëm serveri ose në nyje të shumta. Meqenëse po e instalojmë në një server të vetëm, mbajeni opsionin të zgjedhur dhe shtypni Enter për të vazhduar.

Më pas, do t'ju kërkohet të vendosni një emër cookie. Zgjidhni cilindo emër që dëshironi.

Më pas, do t'ju kërkohet të vendosni një adresë detyruese për shërbimin CouchDBs. Meqenëse, ne po e instalojmë atë në një server dhe do të duhet ta aksesojmë atë nëpërmjet një paneli kontrolli UI, cakto 0.0.0.0 si adresë detyruese. Nëse po planifikoni të kufizoni aksesin në serverin CouchDB në një adresë IP, atëherë përdorni atë.

Më pas, do t'ju kërkohet të krijoni një fjalëkalim administratori për llogarinë e tij të paracaktuar admin.

Do t'ju kërkohet të verifikoni përsëri fjalëkalimin.

Shtypni Enter për të përfunduar procesin e instalimit.

Hapi 4 - Verifikoni instalimin e CouchDB

Për të verifikuar nëse instalimi ishte i suksesshëm, ekzekutoni komandën e mëposhtme.

$ curl http://127.0.0.1:5984/

Ai do të kthejë një dalje të formatuar JSON me informacion rreth 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"}}

Dalja e guaskës është e paformatuar. Ja se si duket në formatim.

{
   "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"
   }
}

Ju gjithashtu mund ta përdorni atë nëpërmjet ueb-it duke vizituar URL-në http://:5984/. Por, përpara se ta bëjmë këtë, duhet të hapim portin në murin tonë të zjarrit. Duke supozuar se po përdorni Firewall të pakomplikuar (ufw), ekzekutoni komandën e mëposhtme për të hapur portin.

$ sudo ufw allow 5984/tcp

Hapni URL-në http://:5984 në shfletuesin tuaj. Do të shihni ekranin e mëposhtëm. Prodhimi i mëposhtëm u kap në Firefox. Në shfletues të tjerë, thjesht do të shihni daljen e papërpunuar që keni marrë në terminalin tuaj.

Hapi 5 - Hyni në CouchDB

CouchDB dërgohet me një GUI të bazuar në ueb të quajtur Fauxton për të menaxhuar dhe krijuar bazat e të dhënave. Mund ta aksesoni atë nëpërmjet URL-së http://:5984/_utils/. Hapni URL-në në shfletuesin tuaj të preferuar dhe do të shihni ekranin e mëposhtëm të hyrjes.

Fut admin si emrin e përdoruesit dhe fjalëkalimin e krijuar më parë. Shtypni butonin Identifikohu për të vazhduar. Më pas, do të çoheni në panelin e kontrollit të CouchDB.

Këtu do të shihni dy baza të të dhënave që janë krijuar gjatë instalimit. Baza e të dhënave _users siç pritej trajton informacionin për përdoruesit e platformës CouchDB dhe baza e të dhënave _replicator përmban informacione për çdo bazë të dhënash ose operacion replikues.

Do të shihni gjithashtu një shirit anësor me të gjitha llojet e opsioneve që mund të përdorni me CouchDB.

Hapi 6 - Operacionet bazë të bazës së të dhënave duke përdorur ndërfaqen CouchDB

Ndërfaqja CouchDBs Fauxton na lejon të kryejmë operacionet bazë CRUD (krijimi, leximi, përditësimi dhe fshirja). Le të fillojmë me krijimin e një databaze të re.

Krijo bazën e të dhënave

Për të krijuar një bazë të dhënash të re, klikoni lidhjen Krijo bazën e të dhënave në ekranin kryesor. Do të hapë dritaren e mëposhtme.

Futni emrin e bazës së të dhënave që dëshironi të krijoni dhe klikoni butonin Krijo.

Kjo do të krijojë një bazë të dhënash të re dhe do të hapë ekranin e mëposhtëm.

Krijo dokument

Tani që kemi një bazë të dhënash, le të krijojmë një dokument në të. Klikoni butonin Krijo dokument për të filluar. Do të merrni ekranin e ri të dokumentit të mëposhtëm të mbushur paraprakisht me një objekt JSON dhe një _id me një identifikues unik global (GUID).

Le të shtojmë disa të dhëna duke shtuar disa fusha të tjera në mënyrën e mëposhtme. Nëse dëshironi të ndryshoni vlerën e fushës _id , mundeni, por vetëm përpara se të krijoni dokumentin. Ju nuk mund ta ndryshoni vlerën e tij pasi të jetë krijuar dokumenti. Megjithatë, mund të modifikoni fusha të tjera në çdo kohë.

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

Klikoni butonin Krijo dokument kur të keni mbaruar së shtuari fushat për të ruajtur dokumentin e ri. Do të ktheheni në faqen e mëposhtme Të gjitha dokumentet.

Për të parë përmbajtjen e dokumenteve, mund të klikoni në lidhjen {} JSON.

Për të redaktuar dokumentin, mund të klikoni në ikonën e lapsit të shfaqur në të djathtë ose të ktheheni te pamja Metadata dhe të klikoni lidhjen e dokumentit. Ndryshoni vlerat e ndonjë prej artikujve dhe klikoni Ruaj dokumentin për ta përfunduar atë.

Fshi dokumentin

Për të fshirë dokumentin, klikoni në shenjën përpara dokumentit dhe zgjidhni butonin e fshirjes sipër siç tregohet më poshtë.

Hapi 7 - Operacionet bazë të bazës së të dhënave duke përdorur Commandline

Ndërsa përdorimi i ndërfaqes në internet është një mënyrë më e thjeshtë për të përdorur CouchDB, efikasitet më i madh mund të arrihet duke kryer të njëjtat operacione nëpërmjet linjës së komandës.

Krijo bazën e të dhënave

Para se të fillojmë të krijojmë bazën tonë të të dhënave, le të përcaktojmë një variabël për lidhjen e URL-së. Ne do të përdorim vërtetim të thjeshtë me tekst të thjeshtë për shembujt tanë. Meqenëse do të na duhet të vërtetojmë çdo komandë, është më mirë të përdorim një variabël të paracaktuar për të. Ju mund të përdorni localhost ose 127.0.0.1 për t'u lidhur me instalimin e CouchDB.

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

Shënim: Përdorimi i një fjalëkalimi me tekst të thjeshtë nuk është metoda më e mirë dhe nuk duhet të përdoret në mjediset e prodhimit. Ju mund të kontrolloni dokumentacionin zyrtar të CouchDBs për metoda më të sigurta të vërtetimit.

Tani që kemi përcaktuar URL-në e hostit, le të përpiqemi të krijojmë një bazë të dhënash tjetër duke përdorur komandën e mëposhtme.

$ curl -X PUT $HOST/another_db

Emri i bazës së të dhënave është another_db. Dhe ne duhet të japim fjalëkalimin e administratorit për komandën.

Krijo dokument

Për të krijuar një dokument, ekzekutoni komandën e mëposhtme.

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

Flamuri -X tregon se ne jemi duke kryer një operacion HTTP POST. Flamuri -H specifikon se çfarë lloji të përmbajtjes po shtyjmë që është JSON këtu. Dhe flamuri -d specifikon përmbajtjen aktuale JSON që po shtojmë.

Komanda e mësipërme do të gjenerojë automatikisht një ID për dokumentin. Do të gjenerojë daljen e mëposhtme që tregon se komanda ishte e suksesshme.

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

Siç mund ta shihni, një ID për dokumentin u krijua automatikisht. Nëse dëshironi të specifikoni një ID të personalizuar, mund ta bëni këtë në mënyrën e mëposhtme.

$ 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"}

Krijoni dokumente në masë

Ju gjithashtu mund të shtoni dokumente në masë.

$ 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"

Siç mund ta shihni, kur ne jemi duke futur dokumente të shumta, trupi POST përmban një objekt me një fushë docs. Kjo fushë përmban një sërë dokumentesh që do të futen në bazën e të dhënave. Gjatë futjes së një dokumenti të vetëm, kërkesa POST u dërgua në bazën e të dhënave ($HOST/another_db). Por kur na duhet të fusim disa dokumente, kërkesa duhet të dërgohet në URL-në $HOST/another_db/_bulk_docs.

Do të merrni një rezultat të ngjashëm.

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

Këtu mund të shihni se dalja përmban ID-në për dy dokumentet e reja.

Lexoni Dokumentin

Për të lexuar një dokument nga baza e të dhënave, duhet të specifikoni ID-në e tij. Ekzekutoni komandën e mëposhtme për të tërhequr dokumentin detyrë_random. Meqenëse kemi përdorur një kërkesë HTTP POST për të shtuar të dhëna, ka kuptim që për t'i rikthyer ato, do t'ju duhet të përdorni një kërkesë GET.

$ curl -X GET $HOST/another_db/random_task

Do të merrni daljen e mëposhtme.

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

Këtu, shënoni fushën _rev të dokumentit. Kjo fushë është e dobishme kur ju duhet të redaktoni ose fshini një dokument.

Redakto dokumentin

Për të redaktuar një dokument, duhet të përdorni fushën _rev. Çdo kërkesë që nuk përfshin fushën _rev refuzohet automatikisht nga CouchDB gjatë redaktimit. Meqenëse CouchDB përditëson të gjithë dokumentin, i gjithë dokumenti duhet të dërgohet në trupin e kërkesës gjatë operacionit të redaktimit.

Le të përditësojmë dokumentin random_task duke përdorur komandën e mëposhtme.

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

Sigurohuni që të zëvendësoni vlerën e fushës _rev me vlerën që keni marrë kur lexoni dokumentin. Duhet të përputhet me vlerën në dokumentin aktual.

Do të merrni një dalje të ngjashme me atë më poshtë.

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

Nëse vini re, të dhënat e fushave rev kanë ndryshuar. Çdo ndryshim i mëtejshëm në dokument do t'ju kërkojë të përdorni këtë vlerë të re rev.

Fshi dokumentin

Për të fshirë një dokument, do t'ju duhet të specifikoni ID-në dhe vlerën e përditësuar rev. Le të fshijmë dokumentin detyrë të rastësishme.

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

Sigurohuni që të përputhet vlera e fushës rev në komandë me vlerën në dokumentin tuaj aktual. Do të merrni rezultate të ngjashme si më poshtë.

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

Shiko të dhënat

Le të kontrollojmë listën e të gjitha bazave të të dhënave në server.

$  curl -X GET $HOST/_all_dbs

Listoni të gjitha dokumentet nën një bazë të dhënash të veçantë.

$ curl -X GET $HOST/another_db/_all_docs

Hapi 8 - Instaloni serverin Caddy

Deri më tani, ne kemi hyrë në CouchDB duke përdorur adresën IP të serverit. Ekziston një metodë e lehtë nëse dëshironi ta zëvendësoni me emrin e domenit tuaj dhe të përdorni SSL përpara tij për ta bërë atë më të sigurt. Për tutorialin tonë, ne do të përdorim Caddy Server pasi është i lehtë dhe funksionon me konfigurim minimal dhe vjen me krijimin e integruar SSL.

Ekzekutoni komandën e mëposhtme për të instaluar disa paketa të kërkuara nga Caddy. Ato mund të jenë instaluar tashmë në serverin tuaj.

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

Instaloni çelësin Caddys GPG dhe shtoni depon zyrtare në listën e depove të Debians.

$ 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

Instaloni serverin Caddy.

$ sudo apt update
$ sudo apt install caddy

Drejtoni komandën e mëposhtme për të verifikuar instalimin.

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

Hapi 9 - Konfiguro Caddy

Për të konfiguruar Caddy që të funksionojë si një server proxy të kundërt, duhet të konfiguroni Caddyfile. Hapni Caddyfile për redaktim.

$ sudo nano /etc/caddy/Caddyfile

Zëvendësoni kodin në të me kodin e mëposhtëm.

couchdb.example.com {
        reverse_proxy localhost:5984

        tls 

        log {
                output file /var/log/caddy/couchdb.log
        }
}

Ruani skedarin duke shtypur Ctrl + X dhe duke futur Y kur ju kërkohet.

Ekzekutoni vërtetuesin Caddy për të kontrolluar për ndonjë problem.

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

Nëse keni ndonjë gabim në lidhje me formatimin, ekzekutoni komandën e mëposhtme për ta rregulluar atë.

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

Ekzekutoni përsëri verifikuesin.

Rinisni serverin Caddy për të zbatuar ndryshimet.

$ sudo systemctl restart caddy

Tani mund të hyni në CouchDB përmes URL-së https://couchdb.example.com/_utils/ në shfletuesin tuaj.

konkluzioni

Ju keni mësuar se si të instaloni serverin e bazës së të dhënave Apache CouchDB në një makinë Debian 11. Ju gjithashtu mësuat se si të kryeni operacionet bazë të bazës së të dhënave nëpërmjet linjës së komandës dhe UI Fauxton. Dhe së fundi, por jo më pak e rëndësishmja, mësuat gjithashtu se si të ekspozoni Fauxton UI në internet duke përdorur Caddy si një server proxy të kundërt. Nëse keni ndonjë pyetje, postojini ato në komentet më poshtë.