Qu’est-ce qu’Apache CouchDB ?

Apache CouchDB est un serveur de base de données gratuit et open-source qui utilise le même protocole de réplication Couch que celui utilisé par Tap Forms pour la synchronisation avec IBM Cloudant. Cela signifie que Tap Forms est capable de se synchroniser avec votre propre serveur hébergé à votre domicile ou à votre bureau sans encourir les frais d’un service de synchronisation externe basé sur le cloud.

Où puis-je me procurer CouchDB ?

Apache CouchDB peut être téléchargé à l’endroit suivant :

http://couchdb.apache.org

Installation de CouchDB

Cette rubrique vous guidera dans l’installation et la configuration d’Apache CouchDB sur un Mac. Pour les autres plates-formes, consultez le site web Apache CouchDB pour obtenir de l’aide.

  1. Sur le site web Apache CouchDB, cliquez sur le bouton “Download” en haut de la page.
  2. Cliquez sur le bouton pour télécharger CouchDB 2.1.1 (ou plus récent) pour Mac OS X (10.6+). Il est important de télécharger la version 2.1.1 ou plus récente.
  3. Dans le Finder, double-cliquez sur le fichier ZIP d’Apache-CouchDB pour le décompresser.
  4. Faites glisser le fichier Apache CouchDB.app dans votre dossier Applications.

Configuration

  1. Exécutez l’application Apache CouchDB.
  2. Ouvrez la page web d’administration de CouchDB. Elle devrait lancer votre navigateur web et vous amener automatiquement à la page d’administration. Vous la reconnaîtrez peut-être car elle ressemble beaucoup à l’IBM Cloudant Dashboard. Si elle ne se lance pas, vous pouvez sélectionner Open Admin Console dans le menu CouchDB qui s’affichera dans votre barre de menus.
  3. Vérifiez l’installation en cliquant sur Verify, puis sur Verify Installation. Vous devriez voir des coches à côté de chaque entrée.
  4. Cliquez sur Admin Party! puis créez un compte d’administrateur.
  5. Cliquez sur le bouton Create Admins pour ce faire. Donnez ensuite à l’administrateur un nom d’utilisateur et un mot de passe.
  6. Cliquez sur le bouton Save lorsque vous avez terminé.

Pour créer des utilisateurs réguliers non-administrateurs

Il n’est pas aussi simple de créer un utilisateur régulier avec CouchDB. Nous ne savons pas pourquoi ils n’ont pas une interface correcte pour la création d’utilisateurs réguliers, mais c’est assez simple quand on sait comment faire.

  1. Cliquez sur le bouton Bases de données dans la page d’administration de CouchDB.
  2. Cliquez sur la base de données _users. Si la base de données _users n’existe pas encore, assurez-vous d’avoir d’abord effectué le processus d’installation.
  3. Cliquez sur le bouton (+) et sélectionnez ensuite la fonction Nouveau doc. Un nouvel enregistrement sera créé pour vous dans la table _users avec une valeur par défaut.
  4. Supprimez la valeur par défaut.
  5. Copiez et collez le code suivant (y compris les accolades) dans l’enregistrement.
  6. Remplacez username aux deux endroits par le nom d’utilisateur que vous voulez créer. N’utilisez pas de caractères spéciaux dans le nom d’utilisateur. Juste des lettres et des chiffres. Pas d’espaces ni de ponctuation.
  7. Remplacez placer plaintext_mot_de_passe@ par un mot de passe correct.
{
    "_id": "org.couchdb.user:username",
    "name": "username",
    "type": "user",
    "roles": [],
    "password": "plaintext_password"
}
  1. Cliquez sur le bouton Create Document lorsque vous avez terminé. Le mot de passe sera automatiquement encodé dans un format plus sûr derived_key et salt lors de la création du document. Cela signifie que toute personne consultant la base de données _users ne sera pas en mesure de savoir quel est le mot de passe.

Configurer CouchDB pour une configuration à nœud unique

CouchDB 2.0 peut être utilisé dans une configuration à nœud unique et en grappe. La plupart des utilisateurs utiliseront une installation CouchDB 2.0 à un seul nœud. Pour des configurations plus avancées, consultez la documentation en ligne à l’adresse http://docs.couchdb.org/en/2.0.0/contents.html.

  1. Cliquez sur le bouton Setup. Il vous sera demandé de configurer CouchDB comme une instance à nœud unique ou de configurer un cluster.
  2. Cliquez sur le bouton Single-Node-Setup. Il vous sera demandé un nom d’utilisateur et un mot de passe d’administrateur. Choisissez-les bien et mémorisez-les. Vous pouvez également lier CouchDB à un port public, afin qu’il soit accessible dans votre réseau local ou au public.

Une fois que vous aurez fait cela, vous pourrez vous connecter à votre nouveau serveur CouchDB depuis l’intérieur de Tap Forms fonctionnant sur d’autres appareils.

Configuration de Tap Forms 5 pour Mac

  1. Lancez Tap Forms et ouvrez le document que vous souhaitez synchroniser.
  2. Cliquez sur Preferences dans le menu Tap Forms.
  3. Cliquez sur l’onglet Sync.
  4. Cliquez sur le bouton Cloudant & CouchDB.
  5. Cliquez sur le bouton contextuel Service Provider et choisissez Apache CouchDB.
  6. Entrez l’adresse IP de votre serveur CouchDB dans ce format : http://127.0.0.1:5984. Si vous utilisez votre serveur sur le même ordinateur que celui sur lequel Tap Forms est exécuté, utilisez l’adresse IP 127.0.0.1. N’oubliez pas d’ajouter un : suivi du numéro de port 5984 après l’adresse IP. Si votre base de données CouchDB se trouve sur un serveur différent, utilisez l’adresse IP de ce serveur à la place.
  1. Cochez la case Auto-Sync pour activer la synchronisation automatique.
  2. Cliquez sur le bouton Sign In pour vous connecter à votre nouveau serveur CouchDB. Le processus de synchronisation va maintenant commencer.

Configuration Tap Forms 5 pour iOS (pour la synchronisation du réseau local uniquement)

  1. Lancez Tap Forms sur votre appareil iOS et ouvrez le document que vous souhaitez synchroniser.
  2. Appuyez sur l’onglet Tools.
  3. Appuyez sur la fonction Sync Settings.
  4. Appuyez sur le bouton Cloud à l’extrême droite.
  5. Appuyez sur CouchDB à côté de l’option Cloud Service.
  6. Appuyez sur le champ Server et entrez l’adresse IP de votre serveur CouchDB dans ce format : http://0.0.0.0:5984. Remplacez le 0.0.0.0 par l’adresse IP réelle de votre propre serveur CouchDB. N’oubliez pas d’ajouter un : suivi du numéro de port 5984 après l’adresse IP.
  7. Appuyez sur Auto-Sync pour activer la fonction Auto-Sync.
  8. Appuyez sur le bouton Sign In pour vous connecter à votre base de données. Le processus de synchronisation va maintenant commencer.

Vos appareils Mac et iOS devraient maintenant se synchroniser avec votre serveur CouchDB. Vous n’avez plus rien à faire.

Facultatif, mais fortement recommandé : Configurez CouchDB pour qu’il accepte les connexions sécurisées SSL

Configurer CouchDB pour utiliser des connexions SSL est plus compliqué. Voir la page suivante dans la documentation de CouchDB pour plus d’informations :
“Comment configurer SSL (HTTPS) dans CouchDB” : https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=48203146

Si vous utilisez votre propre serveur CouchDB sur votre propre réseau ou même sur le même Mac que celui sur lequel vous exécutez les formulaires, vous pouvez générer un certificat SSL auto-signé pour permettre des connexions sécurisées au serveur CouchDB. Toutefois, pour être vraiment sûr, vous devez obtenir un certificat SSL auprès d’une autorité de certification valide.

Voici comment générer un certificat auto-signé :

  1. Lancez l’application Terminal
  2. Générer une clé privée en copiant et collant la ligne suivante dans la fenêtre de l’application Terminal. Appuyez sur la touche Retour après chaque ligne que vous copiez et collez.
openssl genrsa -out couchdb.key 2048
  1. Générer une demande de signature de certificat
openssl req -new -key couchdb.key -out couchdb.csr
  1. Après avoir entré la commande ci-dessus, votre Mac vous posera une série de questions. Voici un exemple :
Vous êtes sur le point d'être invité à saisir des informations qui seront incorporées
dans votre demande de certificat.
Ce que vous allez entrer est ce qu'on appelle un nom distinctif ou un DN.
Il existe un certain nombre de champs, mais vous pouvez en laisser certains vides
Pour certains champs, il y aura une valeur par défaut,
Si vous entrez "...", le champ sera laissé vide.
-----
Nom du pays (code de 2 lettres) [AU] : CA
Nom de l'État ou de la province (nom complet) [Some-State] : Alberta
Nom de la localité (par exemple, ville) [] : Calgary
Nom de l'organisation (par exemple, société) [Internet Widgits Pty Ltd] : Tap Zapp Software Inc.
Nom de l'unité organisationnelle (par exemple, section) [] :
Nom commun (par exemple, serveur FQDN ou VOTRE nom) [] : voyager.local
Adresse électronique [] :
Veuillez saisir les attributs "supplémentaires" suivants
à envoyer avec votre demande de certificat
Un mot de passe de défi [] :
Un nom de société facultatif [] :

La partie la plus importante des questions ci-dessus est la valeur nom commun. Comme mon ordinateur s’appelle Voyager, je mets voyager.local pour le paramètre Common Name. Vous pouvez connaître le nom de votre ordinateur en lançant l’application Preferences système et en cliquant sur le bouton du panneau de préférences Partage. La valeur que vous recherchez se trouve juste en dessous du paramètre Computer Name où il est écrit Computers on your local network can access your computer at : Voyager.local

  1. Créez le certificat autosigné en utilisant ce script shell :
#!/bin/bash
# Annuler l'erreur et suivre la trace.
set -e
set -x
# Utilisez un nom d'hôte court et ajoutez ".local" pour obtenir le nom
# Modifiez ceci si vous voulez utiliser un autre nom d'hôte.
HOSTNAME=$(nom d'hôte -s).local
# Supprimer les fichiers CouchDB
rm -rf couchdb*
# Créer une nouvelle clé
openssl genrsa -out couchdb.key 2048
# Créer une nouvelle RSE
COUNTRY="Votre code de pays, par exemple US, CA, DE, etc.
STATE="Votre État"
CITY="Votre ville"
ORGNAME="Votre nom d'organisation
openssl req -new -key couchdb.key -out couchdb.csr -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGNAME/CN=$HOSTNAME"
# Créer un nouveau certificat
openssl x509 -req -sha256 -days 735 -in couchdb.csr -out couchdb.crt -signkey couchdb.key -extfile <(printf "extendedKeyUsage = serverAuth \n subjectAltName=DNS:$HOSTNAME \n basicConstraints = CA:TRUE")

Définissez les variables COUNTRY, STATE, CITY et ORGNAME en fonction de vos propres informations.

  1. Copiez les fichiers couchdb.key et couchdb.crt à un endroit où CouchDB peut les trouver.

Configurer les paramètres dans CouchDB

  1. De retour sur la page web d’administration de CouchDB (Fauxton) sur votre ordinateur, cliquez sur le bouton Configuration.
  2. Cliquez sur le bouton Add Option.
  3. Entrez dans les options suivantes :
Section ssl
Nom cert_file
Valeur /Path/to/couchdb.crt
Section ssl
Nom key_file
Valeur /Path/to/couchdb.key

En suivant les instructions ci-dessus, j’ai constaté que je devais ajouter quelques paramètres supplémentaires pour éviter que CouchDB ne démarre pas après avoir modifié la configuration.

Section ssl
Nom ciphers
Valeur undefined
Section ssl
Nom secure_renegotiate
Valeur undefined
Section ssl
Nom tls_versions
Valeur undefined

Paramètres optionnels pour protéger l’accès à certaines fonctions de base qui renvoient des informations sur votre installation CouchDB, comme la liste des noms de bases de données.

Section chttpd
Nom require_valid_user
Valeur true
Section couch_httpd_auth
Nom require_valid_user
Valeur true

Il y a peut-être des valeurs plus appropriées, mais cela a fonctionné pour moi.

Le dernier paramètre doit être ajouté dans le fichier suivant (pour CouchDB 2.1.1) :

/Users/[votre nom d'utilisateur]/Bibliothèque/Préférences/couchdb2-local.ini

[daemons]
httpsd = {chttpd, start_link, [https]}

Une fois que vous avez configuré votre certificat SSL et votre clé, vous pouvez utiliser le nom de votre machine au lieu de l’adresse IP à l’intérieur de Tap Forms. Pour l’exemple ci-dessus, j’utiliserais https://voyager.local:6984 pour me connecter car Voyager est le nom de mon MacBook Pro.

Pour vous connecter d’iOS à votre serveur CouchDB via SSL

Avant de pouvoir vous connecter à votre serveur CouchDB en utilisant le nom de votre serveur (par exemple https://voyager.local:6984), vous devez d’abord installer le fichier couchdb.crt sur votre appareil iOS.

Pour installer le certificat SSL sur vos appareils iOS :

  1. Envoyez le fichier couchdb.crt de votre Mac à vos appareils iOS.
  2. Tapez dessus dans l’application Apple Mail.
  3. L’application Paramètres se lancera et vous serez dirigé vers l’écran Installer le profil.
  4. Suivez toutes les instructions pour installer le certificat sur votre appareil. Il y a beaucoup de tapes. Il vous sera peut-être demandé d’entrer le mot de passe de votre appareil à un moment donné.
  5. Allez à Settings > General > About > Certificate Trust Settings.
  6. Tapez sur Enable Full Trust For Root Certificates pour l’activer pour votre certificat.

Le certificat apparaîtra dans l’application Settings sous General > Profiles. Vous pouvez y avoir d’autres profils, mais celui de votre serveur CouchDB qui utilise un certificat SSL autosigné portera le nom de votre serveur. Dans mon cas, c’est voyager.local.

Vous pouvez maintenant utiliser https://voyager.local:6984 pour le nom du serveur dans l’écran des paramètres de synchronisation de Apache CouchDB dans les Formulaires 5. Utilisez bien sûr votre propre nom de serveur.

Pour vous connecter à votre serveur CouchDB à partir d’un autre Mac en utilisant SSL

  1. Copiez le fichier couchdb.crt sur tous vos Macs.
  2. Double-cliquez sur le fichier couchdb.crt dans le Finder. Il lancera l’application Keychain Access et l’y installera pour vous.
  3. Double-cliquez sur votre certificat dans l’application Keychain Access. Une fenêtre contenant les informations sur le certificat apparaîtra.
  4. Cliquez sur le triangle en haut pour développer la section Trust.
  5. Sélectionnez l’option Always Trust à côté de When using this certificate.

Pour vous connecter à votre serveur CouchDB à partir d’Internet

Les instructions ci-dessus vous aident à installer et à vous connecter à un serveur CouchDB fonctionnant sur un Mac dans votre réseau local. Si vous souhaitez pouvoir vous connecter à votre serveur CouchDB à partir d’Internet, vous devrez effectuer quelques opérations.

  1. Ouvrez un trou dans votre pare-feu pour permettre au trafic sur le port 6984 d’être acheminé vers votre Mac exécutant Apache CouchDB. La manière de procéder variera selon le type de routeur Internet dont vous disposez.
  2. Créez un nouveau certificat SSL pour qu’il utilise un nom de domaine pleinement qualifié. Par exemple : couchdb.votreentreprise.com. Vous pouvez soit générer un autre certificat autosigné, soit acheter un certificat SSL auprès d’une autorité de confiance, telle que GoDaddy.
  3. Configurez un service DNS pour résoudre couchdb.votreentreprise.com à l’adresse IP de votre réseau. Si vous avez une adresse IP dynamique fournie par votre FAI, vous pouvez utiliser un service gratuit comme http://freeddns.noip.com
  4. Configurez les formulaires Tap pour vous connecter à https://couchdb.yourcompany.com:6984 (utilisez le nom DNS que vous avez donné à votre serveur).
Last modified: Aug 08, 2020

Besoin d'aide supplémentaire avec ce sujet?
N’hésitez pas à nous contacter ici.

Était-ce utile?

Oui Non
Vous avez indiqué que ce sujet ne vous a pas été utile ...
Pouvez-vous SVP laisser un commentaire nous disant pourquoi? Merci!
Merci pour vos commentaires.