Skip to main content

Vault de prise de note

Project description

znote : Client de prise de notes sécurisé

znote est une application de prise de notes en ligne de commande fonctionnant sur un modèle client-serveur. L'accent est mis sur la sécurité, avec un chiffrement de bout-en-bout des communications et des données, garantissant que seul l'utilisateur peut accéder au contenu de ses notes.

Fonctionnalités

  • Sécurité Renforcée : Chiffrement de bout-en-bout (E2EE) avec une architecture hybride RSA-4096/AES-256.
  • Signatures Numériques : Chaque message est signé pour garantir son intégrité et son authenticité.
  • Gestion Complète des Notes : Créez, éditez, consultez, listez et supprimez des notes.
  • Éditeur Intégré : Un éditeur de texte simple est intégré directement dans le terminal pour une expérience fluide.
  • Workspaces (Espaces de travail) : Organisez vos notes dans des espaces de travail distincts.
  • Synchronisation de Fichiers : Envoyez (push) un fichier local pour créer une note, ou téléchargez (pull) une note dans un fichier.
  • Channels de Diffusion : Partagez et synchronisez des fichiers sur plusieurs postes via des "channels".
  • Protection par Mot de Passe : Protégez l'accès à des notes spécifiques avec un mot de passe.
  • Recherche : Retrouvez du contenu rapidement grâce à une fonction de recherche dans toutes vos notes.
  • Stockage en base : Pour l'instant les notes sont stockées en clair dans la base. A voir pour rajouter le support du chiffrement côté serveur.

Installation

Assurez-vous d'avoir Python et pip installés. Le projet est disponible sur Pypi.

pip install zpp_note

Côté serveur

Le serveur est le cœur de l'application. Il gère les comptes utilisateurs, stocke les données chiffrées et répond aux requêtes des clients.

Premier Lancement

  1. Initialiser le serveur : Cette commande vous guidera pour créer le fichier de configuration config.toml.

    znote_server --init
    
  2. Créer un utilisateur :

    znote_server --create_user --username mon_user --password "mon_mot_de_passe"
    
  3. Lancer le serveur :

    znote_server
    

Utilisation du Serveur

Lancement du serveur : Pour démarrer le serveur en mode normal, exécutez simplement :

znote_server

Le serveur tournera en arrière-plan, en attente de connexions.

Options de Lancement du Serveur

Option Description Exemple d'utilisation
--init Lance un assistant interactif pour configurer le fichier config.toml du serveur. znote_server --init
--config <chemin> Spécifie un chemin personnalisé pour le fichier de configuration. znote_server --config /etc/znote/server.toml
--create_user Un drapeau pour activer la création d'un nouvel utilisateur. Doit être utilisé avec username et password. znote_server --create_user --username admin --password "secret"
--username <nom> Spécifie le nom d'utilisateur pour la création. ... --username admin
--password <mdp> Spécifie le mot de passe pour la création. ... --password "un_mot_de_passe_solide"

Détail du fichier de config

server:
  verbose: true               #Afficher les logs
  host: 127.0.0.1             #Ip d'écoute
  port: 40017                 #Port d'écoute
  key_size: 2048              #Taille de la clé RSA
  key_otp: JFSWY3DPEHPK3PXP   #Clé OTP pour le démarrage
  data_dir:                   #Chemin vers la base SQLite
  working_dir:                #Emplacement des fichiers de l'application

Côté client

Le client est l'interface en ligne de commande pour interagir avec vos notes.

Premier Lancement

  1. Initialiser le client (dans un autre terminal) :

    znote --init
    

    Assurez-vous que les informations du serveur (host, port) correspondent.

  2. Connectez-vous :

    znote login
    

Options Générales du Client

Option Description Exemple d'utilisation
--init Lance un assistant interactif pour configurer le config.toml du client. znote --init
--config <chemin> Spécifie un chemin personnalisé pour le fichier de configuration. znote --config ~/.znote_perso.toml
--info Affiche les informations de connexion de base (host, port) sans se connecter. znote --info

Commandes du Client

La syntaxe générale est znote <commande> [arguments...].

Commande Description Exemple d'utilisation
login Ouvre une session sécurisée avec le serveur. Demande le nom d'utilisateur et le mot de passe. znote login
logout Met fin à la session actuelle et invalide le token. znote logout
status Affiche l'état de la connexion, le workspace actif et le nombre de notes. znote status
list Liste toutes les notes dans le workspace actuel. znote list
add <nom_note> Crée une nouvelle note et ouvre l'éditeur de texte intégré. znote add "Ma première note"
edit <nom_note> Ouvre une note existante dans l'éditeur de texte. znote edit "Ma première note"
view <nom_note> Affiche le contenu d'une note directement dans le terminal. znote view "Courses à faire"
remove <nom_note> Supprime une note de manière permanente. znote remove "Vieille note"
info <nom_note> Affiche les métadonnées d'une note (date de création/modification, créateur, etc.). znote info "Ma première note"
find "<pattern>" Recherche un mot ou une phrase dans le contenu de toutes les notes du workspace. znote find "réunion importante"
protect <nom_note> Définit un mot de passe pour une note spécifique. L'accès à la note nécessitera ce mot de passe. znote protect
pull <nom_note> [fichier] Télécharge le contenu d'une note et le sauvegarde dans un fichier local. Si le nom de fichier n'est pas donné, il est déduit du titre. znote pull "Rapport" rapport.txt
push <fichier> [nom_note] Envoie le contenu d'un fichier local pour créer une nouvelle note. Si le nom de la note n'est pas donné, il est déduit du nom de fichier. znote push rapport_final.md "Rapport Final"
workspace Affiche la liste des workspaces disponibles et indique celui qui est actif. znote workspace
workspace <nom_ws> Change le workspace actif. znote workspace "Projets"
workspace <nom_ws> --create Crée un nouveau workspace. znote workspace "Archives" --create
workspace <nom_ws> --remove Supprime un workspace. znote workspace "Archives" --remove

Commandes des Channels

La fonctionnalité de "channel" permet de synchroniser des fichiers entre plusieurs postes.

Commande Description Exemple d’utilisation
channel Liste tous les channels disponibles sur le serveur. znote channel
channel <nom> --detail Affiche les informations détaillées d'un channel (hash, date de modification...). znote channel mon-canal --detail
channel <nom> --tree Affiche l'arborescence et la liste des fichiers contenus dans le channel. znote channel mon-canal --tree
publish <channel> <fichier> Publie un fichier sur un channel. Si le fichier existe déjà, il est mis à jour. znote publish mon-canal ./rapport.pdf
publish <channel> --purge Supprime les fichiers du channel qui ne sont pas présents dans la publication actuelle. znote publish mon-canal --purge
fetch <channel> (<path>) Récupère (télécharge) tous les fichiers d'un channel dans le répertoire local. znote fetch mon-canal
fetch <channel> --force Force le téléchargement et l'écrasement des fichiers locaux même s'ils existent déjà. znote fetch mon-canal --force
fetch <channel> --purge Supprime les fichiers locaux qui ne sont pas présent dans le channel. znote fetch mon-canal --purge
diff <channel> Compare le répertoire local avec le contenu du channel et affiche les différences (fichiers nouveaux, modifiés ou à supprimer). znote diff mon-canal

Détail du fichier de config

client:
  verbose: true               #Afficher les logs
  host: 127.0.0.1             #Ip du serveur
  port: 40017                 #Port du serveur
  key_size: 2048              #Taille de la clé RSA
  key_otp: JFSWY3DPEHPK3PXP   #Clé OTP pour le démarrage
  working_dir:                #Emplacement des fichiers de l'application

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

znote-1.2.7.tar.gz (32.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

znote-1.2.7-py3-none-any.whl (34.3 kB view details)

Uploaded Python 3

File details

Details for the file znote-1.2.7.tar.gz.

File metadata

  • Download URL: znote-1.2.7.tar.gz
  • Upload date:
  • Size: 32.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: nexus/0.5.0 CPython/3.12.10 Windows/11

File hashes

Hashes for znote-1.2.7.tar.gz
Algorithm Hash digest
SHA256 2fb3f3365c56bcb050070624419bfe7cb3f9c7883e829dcc1ef1f6589da29279
MD5 c7bfc42a30fde6cf5e312fb767c8d866
BLAKE2b-256 c6f616707312abf74b07bc8ea18a989b0d0bc48170ded3863b406bd0007ec2a6

See more details on using hashes here.

File details

Details for the file znote-1.2.7-py3-none-any.whl.

File metadata

  • Download URL: znote-1.2.7-py3-none-any.whl
  • Upload date:
  • Size: 34.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: nexus/0.5.0 CPython/3.12.10 Windows/11

File hashes

Hashes for znote-1.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 2e789c8a232e7652d9d3a72bd8a17f3562e1bcec81c51e2bc059d69dedc8665e
MD5 d4c4316778b5ced131a4246e2d81ef48
BLAKE2b-256 4b49d56829442c2ae166744731d4570a55b5ce51bdc48749f4128b4cf645cbaa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page