Synchronisation des notes Obsidian auto-hébergée (gratuitement)

· 7min · Juicecat

Lorsqu’on recherche une nouvelle application de prise de notes, on peut facilement se sentir dépassé. Il existe d’innombrables options et elles semblent toutes avoir des fonctionnalités similaires. Certains grands acteurs de la communauté de la prise de notes incluent :

Personnellement, j'ai fini par choisir une application appelée Obsidian. Jusqu’à présent, ça a été génial. Il possède toutes les fonctionnalités que je considère comme non négociables : vue graphique, liaison entre notes, multiplateforme et synchronisation hors ligne. Le seul défaut majeur d'Obsidian est que pour utiliser les fonctionnalités de synchronisation, vous devez payer 8 $ par mois pour utiliser leur service. C'est bien et tout, mais j'ai trouvé un moyen de le faire gratuitement, qui prend également en charge le cryptage E2E. Laissez-moi vous montrer comment je l'ai fait.

Configurer un compte AWS (niveau gratuit)

Afin d'être réellement « gratuit », nous utiliserons un compte AWS gratuit. Vous pouvez également utiliser d'autres fournisseurs de cloud comme Oracle Azure, mais AWS est mon choix.

Après avoir créé votre compte, accédez à la barre de recherche en haut de la page, recherchez EC2, puis cliquez dessus.index.md-1.png

Ensuite, sélectionnez cas à gauche et cliquez sur le gros bouton orange Instance de lancement en haut à droite. Conservez tous les paramètres par défaut, puis (si vous n'en avez pas déjà un), créez une paire de clés SSH. Cela téléchargera un fichier se terminant par .pem. Gardez-le en sécurité et ne le partagez pas. C'est ainsi que vous accéderez désormais à votre serveur.

Ensuite, sous les paramètres réseau, assurez-vous d'appuyer à la fois sur Allow HTTP traffic from internet et Allow HTTPS traffic from internet. Sinon, votre serveur ne sera pas accessible.index.md-2.png

Le dernier paramètre à configurer est le stockage. Le niveau gratuit d'AWS permet 20 Go de stockage, je vous recommande donc de définir votre stockage au maximum (20 Go). Terminez la création et soumettez vos configurations, et vous serez redirigé vers le tableau de bord ec2. Vous devriez maintenant voir votre nouvelle instance ec2 :!index.md-3.png

Cliquez sur l'ID d'instance et copiez l'adresse IP publique mise en évidence ci-dessous :index.md-4.png

C'est l'adresse IP que nous utiliserons pour nous connecter. Ouvrez maintenant un terminal et accédez à l'endroit où vous avez téléchargé votre fichier .pem . Modifiez les autorisations du fichier avec chmod 400 <file>.pem, puis connectez-vous à votre instance avec ssh -i <file>.pem ec2-user@<ip>, où <ip> est l'adresse IP publique que vous avez copiée à la dernière étape.

Configuration de la VM

Maintenant que nous avons accès à notre machine, nous devons installer quelques dépendances :

yum install git -y && amazon-linux-extras install docker

Ensuite, activez Docker en tant que service :

systemctl start docker && systemctl enable docker

Ensuite, clonez this repo qui contient un fichier docker-compose qui configurera un proxy inverse et un conteneur CouchDB :

git clone https://github.com/vrtmrz/self-hosted-livesync-server.git

Accédez à ce répertoire et modifiez le docker-ccompose.yml. Remplacez le caddy_handle_path_1 de /e=_/* par quelque chose comme /randomword/* index.md-5.png.

Ensuite, allez dans conf/local.ini et modifiez authentication_redirect: de la même manière, en utilisant le même mot que vous avez choisi pour le premier changement.

Revenez au répertoire racine du projet, créez un fichier .env et créez quelques variables d'environnement : ! index.md-6.png

Gérer les requêtes DNS

Maintenant que l’image est construite, il faut lui donner un joli nom de domaine. Ce tutoriel suppose que vous possédez déjà un domaine. J'utilise CloudFlare pour gérer mon DNS, mais cela fonctionnera avec le fournisseur DNS que vous utilisez. Si vous n'êtes pas sûr, vérifiez auprès du registraire auprès duquel vous avez acheté le domaine. Vous souhaiterez ajouter un enregistrement A sur le même sous-domaine que celui que vous avez écrit dans le fichier .env , et vous souhaiterez qu'il pointe vers l'adresse IP publique de votre instance EC2 lors des étapes précédentes. index.md-7.png

Si vous utilisez CloudFlare, assurez-vous de désélectionner l'option proxy

Construction et configuration

Tout est construit maintenant. Connectez-vous à nouveau à votre instance EC2 avec SSH et entrez le répertoire racine du projet dans lequel nous travaillions précédemment. Démarrez le service avec :

docker-compose -f docker-compose.yml start

Votre service est maintenant opérationnel et il ne vous reste plus qu'à accéder à votre instance CouchDB. Dans un navigateur, accédez à hxxps://domain/randomword/_utils, où <randomword> est le mot que vous avez choisi à la place de e=_ et <domain> est le même que celui que vous avez spécifié dans le fichier .env. Connectez-vous à l'aide des informations d'identification de votre fichier .env et vous devriez être accueilli par un écran qui ressemble à ceci :index.md-8.png

En haut de l'écran, sélectionnez Create Database et nommez-le comme vous le souhaitez. Sélectionnez une base de données non partitionnée.

L'utiliser avec Obsidian

Maintenant tout est mis en place. Il vous suffit de pointer votre obsidienne vers elle. Dans Obsidian, téléchargez le plugin communautaire Self-Hosted LiveSync : Paramètres>Plugins communautaires>Parcouririndex.md-9.png

Installez-le et activez-le, puis sur votre page de paramètres, vous devriez voir un onglet supplémentaire en bas à gauche. Allez-y : index.md-10.png

Appuyez sur l'emoji satellite et remplissez les champs avec vos informations. Pour URI, vous devrez insérer https://<yourdomain>.com/<randomword> Notez qu'il n'y a pas de barre oblique à la fin. Pour nom d'utilisateur et mot de passe, mettez ce que vous avez écrit dans le fichier .env . Nom de la base de données est la base de données que vous avez créée sur l'instance CouchDB.

Pour le chiffrement E2E, sélectionnez le curseur End to End Encryption et créez une phrase secrète. Cela créera un mot de passe principal que vous pourrez utiliser pour crypter vos notes. Appliquez vos paramètres et appuyez sur le gros bouton rouge Envoyer en bas du panneau.

E2E est important car si quelqu'un parvenait à accéder à votre instance de base de données, il trouverait toutes vos notes en texte clair. L'activation de ce chiffrement chiffre vos notes avant de quitter votre ordinateur afin que l'instance de base de données ne voie jamais vos notes, uniquement des déchets brouillés :index.md-11.png.

Ensuite, appuyez sur l'emoji d'échange et sélectionnez LiveSync (ou le timing de synchronisation que vous préférez).index.md-12.png

L'utilisation de LiveSync vous offrira cette fonctionnalité. Pas très utile, mais très cool.

#Conclusion

Désormais, sur n'importe quel appareil que vous souhaitez synchroniser, répétez simplement la dernière section. J'ai inclus ci-dessous une image du déroulement du flux de base lors de la synchronisation si vous êtes intéressé. En outre, il convient de mentionner que le niveau gratuit d'AWS est limité à 750 heures de calcul par mois (je crois), cela pourrait donc être une raison pour laquelle vous effectuez une synchronisation périodique au lieu de LiveSync. index.md-13.png


Tags