Cette application est conçue pour partager des informations chiffrées entre organisations ou entre particuliers.
Hemmelig veut dire secret en Norvégien. Je ne vous avais jamais dit que je parlais Norvégien? C'est normal, ce n'est pas le cas.
Hemmelig accorde une grande priorité à la protection de votre vie privée et fera tout son possible pour la préserver.
Comment ça fonctionne?
Vous écrivez vos informations sensibles, l'heure d'expiration, le mot de passe facultatif et cliquez sur créer un lien secret. Vous partagez le lien secret. Le destinataire du lien l'ouvre, écrit le mot de passe facultatif et récupère les informations sensibles. Lorsqu'un lien secret est créé, il obtient sa clé de cryptage unique qui n'est pas enregistrée dans la base de données et ne fera qu'une partie de l'URL. Voici comment fonctionne le cryptage : encrypt(DATA, YOUR_UNIQUE_ENCRYPTION_KEY). Le cryptage du texte et des fichiers est effectué dans le client ; cela signifie que le serveur obtiendra les informations chiffrées et rien en clair.
⚡Caractéristiques
- Chiffrement côté client.
- Formatage du texte et téléchargement d'images en ligne (marquez le texte pour ouvrir la fenêtre contextuelle).
- Partage d’informations sensibles chiffrées.
- Téléchargement de fichiers chiffrés pour les utilisateurs connectés.
- Définir le nombre maximum de vues par secret.
- Protection par mot de passe.
- Restriction par adresse IP.
- QR Code.
- La clé cryptée fait partie de l'URL et n'est pas enregistrée dans la base de données pour une couche de sécurité supplémentaire.
- Il détectera si le secret est codé en base64 et ajoutera un bouton pour le convertir en texte brut lors de la lecture.
- Et bien d'autres options...
L'installation
- Créez votre docker-compose dans le dossier d'installation de l'application.
Par exemple si vous nommez votre dossier hemmelig, il faut le créer à la racine :
nano docker-compose.yml
- Collez ça dedans:
services:
hemmelig:
image: hemmeligapp/hemmelig:latest # Check the tags for what version to use
hostname: hemmelig
init: true
volumes:
- ./data/hemmelig/:/var/tmp/hemmelig/upload/files
- ./database/:/home/node/hemmelig/database/
environment:
- SECRET_LOCAL_HOSTNAME=0.0.0.0 # The local hostname for the fastify instance
- SECRET_PORT=3000 # The port number for the fastify instance
- SECRET_HOST=!changeme! # Used for i.e. set cors/cookies to your domain name
- SECRET_ROOT_USER=groot # User as the root admin user
- SECRET_ROOT_PASSWORD=iamroot # The admin user password (change this after signed in)
- SECRET_ROOT_EMAIL=groot@hemmelig.app # The email for the admin user
- SECRET_FILE_SIZE=4 # Set the total allowed upload file size in mb
- SECRET_FORCED_LANGUAGE=fr # Set the default language for the application
- SECRET_JWT_SECRET=!changeme! # Override this for the secret signin JWT tokens for log in
- SECRET_MAX_TEXT_SIZE=256 # The max text size for the secret. Is set in kb. i.e. 256 for 256kb
ports:
- '3000:3000'
restart: always
stop_grace_period: 1m
healthcheck:
test: 'wget -O /dev/null localhost:3000 || exit 1'
timeout: 5s
retries: 1
Veillez à changer impérativement les points suivants:
- SECRET_HOST=!changeme! => remplacez !changeme! par votre nom de domaine, par exemple: secret.belginux.com.
- SECRET_JWT_SECRET=!changeme! => remplacez !changeme! par une clé forte.
- Toujours à la racine du dossier de l'application, on va créer les dossiers data et database:
mkdir -p data/hemmelig database
- On appliques les bonnes permissions:
chown 1000:1000 data/hemmelig database
- On installe l'application:
docker-compose up -d
ou avec docker-compose V2:
docker compose up -d
- Rendez-vous sur votre nom de domaine:
https://domaine.com
ou
https://xxx.domaine.com
Informations du compte admin
Login:
groot
Mot de passe:
iamroot
Il va de soi qu'il faut impérativement créer un autre compte admin après la première connexion!
Astuce pour le formatage de texte
Lorsque vous tapez un texte, si vous le surligner, vois aurez accès à un menu de formatage.
Imaginons que je veuille mettre une image, je tape n'importe quoi, je le surligne, et je clic sur l'icône de l'image, je la sélectionne:
Le texte disparaît et à la place vous avez votre image: