Installer Share a Secret avec Docker
Share a Secret

Installer Share a Secret avec Docker

Table des matières

Parfois on peut avoir besoin de partager des informations, sensibles ou non, un compose.yml, des informations de compte utilisateur, sans pour autant avoir envie de confier ses informations à un service en ligne. Et c'est pour ça que...

Aujourd’hui, nous allons parler de Share a Secret! Une application qui va transporter vos secrets par internet, en tout sécurité. Des options basiques, juste ce qu'il faut, et une application efficace et peu gourmande en ressources.

💡
Pour une efficacité maximale niveau sécurité, cette application nécessite du HTTPS. Reliez-là à un domaine/sous-domaine.

Share a Secret est une plateforme de partage de secrets open source et auto-hébergée.
Il vous permet de partager des informations en toute sécurité avec des personnes de confiance via un lien. Cela peut être n'importe quoi : un message, un mot de passe ou une information que vous souhaitez partager discrètement.
Une fois que vous avez saisi un secret, vous pouvez configurer le nombre de liens dont vous avez besoin et la durée pendant laquelle le secret sera disponible. Cela générera des liens que vous pourrez copier et donner à des personnes de confiance. Une fois qu’ils ont accédé au secret, le lien n’est plus valide.
Le secret est stocké dans la base de données à l’aide d’un cryptage AES symétrique 128 bits. La clé de déchiffrement fait partie de l'URL, ajoutant une couche de sécurité supplémentaire. Seule la personne disposant du lien peut déchiffrer le secret, garantissant ainsi sa transmission en toute sécurité au destinataire prévu. Cela signifie que même si quelqu'un accède au secret lui-même, il ne pourra pas le déchiffrer sans la clé spécifique dans l'URL.

⚡Caractéristiques

  • Décidez du nombre de lecture d'un lien.
  • Choisissez l'expiration d'un lien en temps.
  • Mode sombre | Mode clair.

💾 L'installation

  1. Créez votre compose.yml dans le dossier où vous comptez installer Share a Secret:
sudo nano compose.yml
  1. Collez ça dedans en prenant soin d'adapter les ports et les volumes suivant votre configuration:
version: '3.9'
services:
  app:
    image: ghcr.io/flo0807/share-a-secret:latest
    ports:
      - "4000:4000"
    environment:
      DATABASE_URL: "ecto://postgres:postgres@database/postgres"
      SECRET_KEY_BASE: "8mPet56WfICmlv5"
      PHX_HOST: "secret.mondomaine.com"
      PORT: 4000
    depends_on:
      - database
  database:
    image: postgres:latest
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres

volumes:
  postgres_data:

Veillez à changer:

  • SECRET_KEY_BASE: "8mPet56WfICmlv5" => Générez une clé de 64 caractères, par exemple et collez cette clé entre les parenthèses. Vous pouvez vous aider de ce petit utilitaire:
PwGen
Secure password generator
  • PHX_HOST: "secret.mondomaine.com" => Remplacez secret.mondomaine.com par votre domaine/sous-domaine ou encore par l'ip du serveur. Très important.

On va déployer l'application:

docker-compose up -d

ou avec docker-compose V2:

docker compose up -d

Nous allons exécuter les migrations de bases de données avant de pouvoir utiliser l'application, donc effectuez cette commande, toujours à la racine d'où vous installez Share a Secret:

docker compose run app  /app/bin/migrate

Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 4000 par défaut:

http://ip:4000/

ou votre domaine:

https://mondomaine.com

⚙️ Les options

Il y a deux options:

  • Number of links => Définir le nombre de fois que le lien peut-être utilisé avant expiration.
  • Expiration => Définir, en jours, l'expiration du lien.

🖼️ Thème

En haut à droite, partie Theme, vous aurez le choix entre le thème clair et sombre:

Ce qui donne:


zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.