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 :
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.
- Sur le site web Apache CouchDB, cliquez sur le bouton “Download” en haut de la page.
- 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.
- Dans le Finder, double-cliquez sur le fichier ZIP d’Apache-CouchDB pour le décompresser.
- Faites glisser le fichier Apache CouchDB.app dans votre dossier Applications.
Configuration
- Exécutez l’application Apache CouchDB.
- 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. - Vérifiez l’installation en cliquant sur Verify, puis sur Verify Installation. Vous devriez voir des coches à côté de chaque entrée.
- Cliquez sur
Admin Party!
puis créez un compte d’administrateur. - Cliquez sur le bouton
Create Admins
pour ce faire. Donnez ensuite à l’administrateur un nom d’utilisateur et un mot de passe. - 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.
- Cliquez sur le bouton
Bases de données
dans la page d’administration de CouchDB. - 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. - 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. - Supprimez la valeur par défaut.
- Copiez et collez le code suivant (y compris les accolades) dans l’enregistrement.
- 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. - 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"
}
- Cliquez sur le bouton
Create Document
lorsque vous avez terminé. Le mot de passe sera automatiquement encodé dans un format plus sûrderived_key
etsalt
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.
- Cliquez sur le bouton
Setup
. Il vous sera demandé de configurer CouchDB comme une instance à nœud unique ou de configurer un cluster. - 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
- Lancez Tap Forms et ouvrez le document que vous souhaitez synchroniser.
- Cliquez sur
Preferences
dans le menu Tap Forms. - Cliquez sur l’onglet
Sync
. - Cliquez sur le bouton
Cloudant & CouchDB
. - Cliquez sur le bouton contextuel
Service Provider
et choisissezApache CouchDB
. - 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 IP127.0.0.1
. N’oubliez pas d’ajouter un:
suivi du numéro de port5984
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.
- Cochez la case
Auto-Sync
pour activer la synchronisation automatique. - 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)
- Lancez Tap Forms sur votre appareil iOS et ouvrez le document que vous souhaitez synchroniser.
- Appuyez sur l’onglet
Tools
. - Appuyez sur la fonction
Sync Settings
. - Appuyez sur le bouton
Cloud
à l’extrême droite. - Appuyez sur
CouchDB
à côté de l’option Cloud Service. - Appuyez sur le champ Server et entrez l’adresse IP de votre serveur CouchDB dans ce format :
http://0.0.0.0:5984
. Remplacez le0.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 port5984
après l’adresse IP. - Appuyez sur Auto-Sync pour activer la fonction Auto-Sync.
- 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é :
- Lancez l’application Terminal
- 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
- Générer une demande de signature de certificat
openssl req -new -key couchdb.key -out couchdb.csr
- 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
- 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.
- Copiez les fichiers
couchdb.key
etcouchdb.crt
à un endroit où CouchDB peut les trouver.
Configurer les paramètres dans CouchDB
- De retour sur la page web d’administration de CouchDB (Fauxton) sur votre ordinateur, cliquez sur le bouton
Configuration
. - Cliquez sur le bouton
Add Option
. - 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 :
- Envoyez le fichier
couchdb.crt
de votre Mac à vos appareils iOS. - Tapez dessus dans l’application Apple Mail.
- L’application Paramètres se lancera et vous serez dirigé vers l’écran Installer le profil.
- 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é.
- Allez à
Settings > General > About > Certificate Trust Settings
. - 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
- Copiez le fichier
couchdb.crt
sur tous vos Macs. - Double-cliquez sur le fichier
couchdb.crt
dans le Finder. Il lancera l’application Keychain Access et l’y installera pour vous. - Double-cliquez sur votre certificat dans l’application Keychain Access. Une fenêtre contenant les informations sur le certificat apparaîtra.
- Cliquez sur le triangle en haut pour développer la section
Trust
. - Sélectionnez l’option
Always Trust
à côté deWhen 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.
- 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.
- 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. - 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
- Configurez les formulaires Tap pour vous connecter à
https://couchdb.yourcompany.com:6984
(utilisez le nom DNS que vous avez donné à votre serveur).
Besoin d'aide supplémentaire avec ce sujet?
N’hésitez pas à nous contacter ici.