Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Was fehlt?

Es liegt in der Natur der Sache: Ein Wiki ist niemals fertig. Wir geben uns große Mühe, mit der Entwicklung Schritt zu halten; lassen Supportanfragen direkt in neue Artikel einfließen … aber auch wir sind nicht perfekt. Wenn du hier nicht fündig wirst: Nicht schmollen - Bescheid sagen! Unter hallo@uberspace.de steht dir unser Team gerne bereit. Hand drauf!

database:couchdb

CouchDB

CouchDB ist wie beispielsweise auch MongoDB eine Datenbank vom Schlag der aufstrebenden dokumentorientierten Datenbanken (oft auch als „NoSQL-Datenbanken“ bezeichnet).

Wir haben eine fertige Installation von CouchDB vorbereitet, die allerdings nicht als zentraler Daemon läuft. Der Hauptgrund dafür ist, dass wir in diesem Fall deine CouchDB-Daten nicht zu deiner Quota zählen könnten :-) … aber so oder so hast du mit einer komplett eigenen CouchDB-Instanz auch viel mehr Möglichkeiten und kannst auch die Serverkonfiguration selbst beeinflussen.

Da CouchDB sich an einen Netzwerkport bindet und natürlich nicht jeder den gleichen Port belegen kann, selektieren wir für dich beim Anlegen der Installation automatisch einen Port für dich und konfigurieren ihn vor. Außerdem richten wir dir direkt einen administrativen User ein, so dass CouchDB nur mittels Authentifizierung zu nutzen ist - standardmäßig arbeitet CouchDB nämlich ohne Authentifizierung, was im Rahmen von Shared Hosting wohl als fahrlässig zu betrachten sein dürfte.

Eine eigene CouchDB-Instanz hast du blitzschnell eingerichtet. Voraussetzung ist zunächst ein eigenes ~/service-Verzeichnis, damit du innerhalb deines Uberspaces eigene Daemons laufen lassen kannst. Was es damit genau auf sich hat, haben wir bereits an anderer Stelle dokumentiert. Hier daher nur in aller Kürze, falls du diesen Schritt nicht schon aus anderen Gründen absolviert hast:

[annette@amnesia ~]$ test -d ~/service || uberspace-setup-svscan 

Binnen weniger Sekunden ist dein ~/service-Verzeichnis fertig angelegt. Mit CouchDB geht es ähnlich schnell, wobei dir der dafür einzugebende Befehl uberspace-setup-couchdb am Ende deine persönliche Portnummer nennt sowie Benutzername und Passwort für den administrativen Zugang. Letzteres wird nirgendwo im Klartext gespeichert (in der couchdb.ini liegt das Passwort nur in Form eines Hashwerts vor); es ist also wichtig, dass du dir diese Daten irgendwo notierst, wo du sie wiederfindest. Und so sieht das aus:

[annette@amnesia ~]$ uberspace-setup-couchdb 
Creating the ~/couchdb database directory
Creating the ~/couchdb.ini configuration file
Creating the ~/etc/run-couchdb/run service run script
Creating the ~/etc/run-couchdb/log/run logging run script
Symlinking ~/etc/run-couchdb to ~/service/couchdb to start the service
Waiting for the service to start ... 1 2 started!

Congratulations - You can now reach your dedicated CouchDB installation!
Please note that your CouchDB uses the NON-standard port number 22080.
This allows running multiple instances of CouchDB on the same machine for different users.

Hostname: localhost
Portnum#: 22080
Username: annette_couchadmin
Password: 1gruneav5

Fertig! Deine CouchDB-Installation läuft jetzt als Service unter den daemontools - du kannst sie also mit den für solche Services üblichen Befehlen steuern, beispielsweise einen Neustart durchführen:

[annette@amnesia ~] svc -du ~/service/couchdb

Wie es mit der Anwendung von CouchDB weitergeht, kannst du dem CouchDB-Tutorial entnehmen. Die vollständige Dokumentation findest du im CouchDB-Guide. Viel Erfolg!

Das Futon-Webinterface

CouchDB bringt direkt von Haus aus integriert auch ein Webinterface mit. Nun nützt dir das vermutlich nicht sonderlich viel, weil deine CouchDB-Installation ja nur auf localhost läuft, also nicht von außen erreichbar ist. Wir nutzen insofern die Möglichkeit, HTTPS-Zugriffe durch den Apache abwickeln zu lassen und diese dann an CouchDB weiterzureichen. Was du dazu brauchst, ist eine simple .htaccess-Datei, die in etwa so aussehen sollte:

[annette@amnesia ~] cat > ~/html/.htaccess <<'__EOF__'
RewriteEngine on
RewriteCond %{HTTPS} on [OR]
RewriteCond %{ENV:HTTPS} on
RewriteRule ^couchdb/(.*) http://localhost:22080/$1 [P]
__EOF__

Die erste Zeile schaltet einfach nur die Verarbeitung von URLs ein. Die zweite und dritte Zeile sorgt dafür, dass die gleich folgende Regel nur dann greift, wenn du über die verschlüsselte HTTPS-Verbindung zugreifst - per unverschlüsseltem HTTP kommst du insofern von außen nicht an deine Datenbank dran. Die vierte Zeile schließlich schreibt alle Requests, die mit couchdb/… beginnen, auf deinen lokalen CouchDB-Port. Jenen CouchDB-Port musst du selbstverständlich auf deinen eigenen Port einstellen, den uberspace-setup-couchdb dir am Ende mitgeteilt hat.

Das Futon-Webinterface von CouchDB findet sich unter der URL /_utils/ - du erreichst es insofern über deine Proxy-Regel unter https://annette.amnesia.uberspace.de/couchdb/_utils/ (den User- und den Hostnamen musst du natürlich auf deine Werte anpassen).

Entfernen / Resetten

Falls Du CouchDB entfernen möchtest oder nochmal von vorn anfangen möchtest, bedenke dass daemontools erfordern, dass Dienste auf eine ganz bestimmte Art und Weise entfernt werden.

database/couchdb.txt · Zuletzt geändert: 2016/03/10 22:07 von uber