Gardez les mots de passe et autres informations sensibles de vos boîtes de réception et de vos journaux de chat.
Note
Passez aux instructions d'installation.
Un secret en ligne est un lien qui ne peut être visualisé qu'une seule fois. Une URL à usage unique.
Essayez-le sur OneETimesCret.com!
Lorsque vous envoyez des informations sensibles aux gens comme les mots de passe et les liens privés par e-mail ou par chat, il y a des copies de ces informations stockées dans de nombreux endroits. Si vous utilisez à la place un lien oneTime, les informations persistent pour une seule visualisation, ce qui signifie qu'il ne peut pas être lu par quelqu'un d'autre plus tard. Cela vous permet d'envoyer des informations sensibles de manière sûre sachant qu'elle est vue par une seule personne. Pensez-y comme un message d'auto-destruction.
Il s'agit de la version activement développée et entretenue avec les fonctionnalités les plus récentes et les mises à jour de sécurité.
Ruby 3 sans node.js: v0.15.0
Ruby 2.7, 2.6 (héritage - non pris en charge): V0.12.1
Nous recommandons fortement d'utiliser la dernière version avec Ruby 3+ pour les meilleures performances, sécurité et ensembles de fonctionnalités. Les versions Ruby 2.x héritées sont fournies uniquement pour référence et doivent être évitées dans les environnements de production.
Il existe plusieurs façons d'exécuter OneTimesECret à l'aide de Docker. Choisissez la méthode qui convient le mieux à vos besoins:
Nous proposons des images prédéfinies sur le registre des conteneurs GitHub et le Docker Hub.
# Pull from GitHub Container Registry
docker pull ghcr.io/onetimesecret/onetimesecret:latest
# OR, pull from Docker Hub
docker pull onetimesecret/onetimesecret:latestSi vous préférez construire l'image vous-même:
git clone https://github.com/onetimesecret/onetimesecret.git
cd onetimesecret
docker build -t onetimesecret . Pour les environnements nécessitant un support multi-architecture:
git clone https://github.com/onetimesecret/onetimesecret.git
cd onetimesecret
docker buildx build --platform=linux/amd64,linux/arm64 . -t onetimesecretNous proposons également une version "Lite" de l'image Docker, qui est optimisée pour un déploiement plus rapide et une utilisation réduite des ressources. Pour utiliser la version Lite:
# Pull the lite image
docker pull ghcr.io/onetimesecret/onetimesecret-lite:latest
# OR, build it locally
docker build -f Dockerfile-lite -t onetimesecret:lite .Pour plus d'informations sur l'image Lite Docker, reportez-vous à la documentation Docker-Lite.md.
Quelle que soit la façon dont vous avez obtenu ou construit l'image, suivez ces étapes pour exécuter OneTimesECret:
Démarrez un conteneur Redis:
docker run -p 6379:6379 -d redis:bookwormDéfinir les variables environnementales essentielles:
export HOST=localhost:3000
export SSL=false
export [email protected]
export REDIS_URL=redis://host.docker.internal:6379/0
export RACK_ENV=production Remarque: La variable COLONEL définit l'e-mail du compte d'administration. C'est une combinaison ludique de "colonel" (quelqu'un en charge) et "noyau" (comme dans Linux), représentant l'administrateur système.
Exécutez le conteneur OneTimesECret:
docker run -p 3000:3000 -d --name onetimesecret
-e REDIS_URL= $REDIS_URL
-e COLONEL= $COLONEL
-e HOST= $HOST
-e SSL= $SSL
-e RACK_ENV= $RACK_ENV
onetimesecret/onetimesecret:latest Remarque: Remplacez onetimesecret/onetimesecret:latest avec le nom de votre image si vous l'avez construit localement.
OneTimesECret devrait désormais être exécuté et accessible sur http://localhost:3000 .
Ah oui, le paradoxe sudo classique! Voici ma tentative de gérer clairement cela:
Ce guide couvre l'installation manuellement de l'installation de OneEtimeSet, que vous travailliez avec un environnement de développement existant ou partez à partir d'un nouveau système.
Composants requis:
Tout d'abord, vérifiez si vous avez les dépendances requises:
ruby --version # Should be 3.1+
bundler --version # Should be 2.5.x
node --version # Should be 20+
pnpm --version # Should be 9.2+
redis-server -v # Should be 5+Pour une nouvelle installation de système, suivez ces étapes:
Important
Si vous commencez par un système minimal (comme un nouveau conteneur Debian), installez d'abord sudo :
# Only if starting as root on a minimal system
apt update && apt install -y sudoInstallez les dépendances du système:
# For Debian/Ubuntu systems:
sudo apt update
sudo apt install -y git curl build-essential libyaml-dev libffi-dev redis-server ruby3.1 ruby3.1-dev
# Install package managers
sudo gem install bundler
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
sudo npm install -g pnpm@latest
# Start Redis server
sudo service redis-server startRemarque: Si vous voyez des erreurs liées à l'audit lors de l'installation de PNPM avec Sudo, cela est normal dans les conteneurs ou les systèmes minimaux où les capacités d'audit sont limitées.
git clone https://github.com/onetimesecret/onetimesecret.git
cd onetimesecret # Install Ruby dependencies
bundle install
# Install Node.js dependencies
pnpm installgit rev-parse --short HEAD > .commit_hash.txt
cp -p ./etc/config.example.yaml ./etc/config.yamlVous pouvez exécuter l'application de deux manières:
Mieux pour la production ou le développement sans changements de frontend:
pnpm run build:localetc/config.yaml : :development :
:enabled : false # For production
RACK_ENV=production bundle exec thin -R config.ru -p 3000 start
# Or for backend development
RACK_ENV=development bundle exec thin -R config.ru -p 3000 startMeilleur pour le développement des frontends actifs avec rechargement en direct:
Activer le mode de développement dans etc/config.yaml :
:development :
:enabled : trueDémarrez le serveur principal:
RACK_ENV=development bundle exec thin -R config.ru -p 3000 startDémarrez le serveur de développement VITE (dans un terminal séparé):
pnpm run devLors de l'exécution en mode développement (option B), l'application utilise le serveur de développement de Vite pour le chargement des actifs dynamiques et le remplacement du module chaud. Voici comment cela fonctionne:
En mode développement ( development.enabled: true ), l'application charge dynamiquement les actifs à partir du serveur de développement VITE:
{{#frontend_development}}
< script type =" module " src =" {{ frontend_host }}/dist/main.ts " > </ script >
< script type =" module " src =" {{ frontend_host }}/dist/@vite/client " > </ script >
{{/frontend_development}} En mode de production ( development.enabled: false ), il utilise des actifs statiques prédéfinis:
{{^frontend_development}}
{{{vite_assets}}}
{{/frontend_development}}Cette configuration permet des fonctionnalités telles que le remplacement des modules HOT et des mises à jour instantanées pendant le développement du frontend, tout en garantissant des performances optimales dans la production.
OneETimesCret nécessite un fichier config.yaml pour toutes les installations. Les variables d'environnement peuvent être utilisées pour remplacer les paramètres spécifiques, mais le fichier config.yaml doit toujours être présent.
Créez le fichier de configuration:
cp -p ./etc/config.example.yaml ./etc/config.yaml Examiner et modifier ./etc/config.yaml selon les besoins. Au minimum, mettez à jour la clé secrète et sauvegardez en toute sécurité.
Le fichier ./etc/config.yaml est la méthode de configuration principale. Il utilise la syntaxe ERB pour incorporer des variables d'environnement, permettant une configuration flexible:
---
:site :
:host : <%= ENV['HOST'] || 'localhost:7143' %>
:domains :
:enabled : <%= ENV['DOMAINS_ENABLED'] || false %>Dans ce format:
HOST ) est définie, sa valeur sera utilisée. Domaines clés à configurer dans config.yaml :
Pour des configurations rapides ou des déploiements de conteneurs, vous pouvez utiliser des variables d'environnement pour remplacer config.yaml .
export HOST=localhost:3000
export SSL=false
export [email protected]
export REDIS_URL=redis://username:password@hostname:6379/0
export RACK_ENV=production Pour divers scénarios de déploiement, y compris les configurations Docker et le développement local, vous pouvez utiliser un fichier .env pour définir les variables d'environnement:
Créez le fichier .env:
cp -p .env.example .env Modifiez le fichier .env avec la configuration souhaitée.
L'utilisation dépend de votre configuration:
Pour le développement local, chargez les variables avant d'exécuter l'application:
set -a
source .env
set +a Pour les déploiements Docker, vous pouvez utiliser l'option --env-file :
docker run --env-file .env your-image-nameDans Docker-Compose, vous pouvez spécifier le fichier .env dans votre docker-compose.yml:
services :
your-service :
env_file :
- .envLe fichier .env est polyvalent et peut être utilisé dans divers scénarios de déploiement, offrant une flexibilité dans la façon dont vous gérez vos variables d'environnement.
config.yaml est toujours requis, même lors de l'utilisation de variables d'environnement..env , mais pas les deux, pour éviter la confusion.config.yaml , seules les valeurs littérales dans la configuration seront utilisées. Important
Utilisez une valeur sécurisée pour la clé SECRET en tant que variable d'environnement ou en tant que site.secret dans etc/config.yaml . Une fois défini, ne modifiez pas cette valeur. Créez et stockez une sauvegarde dans un emplacement hors site sécurisé. La modification du secret peut empêcher le décryptage des secrets existants.
Pour une liste complète des options de configuration disponibles, reportez-vous aux commentaires dans le fichier config.example.yaml .
Pour générer une clé secrète sécurisée et aléatoire 256 bits (32 octets), vous pouvez utiliser la commande suivante avec OpenSSL:
openssl rand -hex 32 Si OpenSSL n'est pas installé, vous pouvez utiliser la commande dd comme secours:
dd if=/dev/urandom bs=32 count=1 2> /dev/null | xxd -p -c 32 Remarque: Alors que la commande dd fournit une alternative raisonnable, l'utilisation d'OpenSSL est recommandée à des fins cryptographiques.
Si vous rencontrez l'erreur "Le nom du conteneur '/ OneTimesCret' est déjà utilisé":
# If the container already exists, you can simply start it again:
docker start onetimesecret
# OR, remove the existing container
docker rm onetimesecret Après avoir retiré le conteneur, vous pouvez à nouveau exécuter la commande docker run ordinaire.
Pour la configuration de Docker Compose, voir le repo Docker Compose dédié.
Pour fonctionner en mode débogage:
ONETIME_DEBUG=true bundle exec thin -e dev start Lors de l'exécution du serveur Vite en mode développement, il rechargera automatiquement lorsque les fichiers changent. Assurez-vous que RACK_ENV est défini sur development ou development.enabled dans etc/config est défini sur false .
Nous utilisons le cadre pre-commit pour maintenir la qualité du code. Pour le configurer:
Installer pré-engagement:
pip install pre-commitInstallez les crochets GIT:
pre-commit installCela garantira que les crochets de pré-engagement s'exécutent avant chaque engagement, aidant à maintenir la qualité et la cohérence du code.
Pour voir les couches d'une image et optimiser vos versions, utilisez:
docker history < image_id >Lors du déploiement en production, assurez-vous:
Exemple de déploiement de la production:
export HOST=example.com
export SSL=true
export [email protected]
export REDIS_URL=redis://username:password@hostname:6379/0
export RACK_ENV=production
docker run -p 3000:3000 -d --name onetimesecret
-e REDIS_URL= $REDIS_URL
-e COLONEL= $COLONEL
-e HOST= $HOST
-e SSL= $SSL
-e RACK_ENV= $RACK_ENV
onetimesecretAssurez-vous que toutes les informations sensibles sont correctement sécurisées et non exposées dans vos scripts ou environnement de déploiement.
Cette section donne un aperçu des services similaires à notre projet, mettant en évidence leurs fonctionnalités uniques et comment ils se comparent. Ces alternatives peuvent être utiles pour les utilisateurs à la recherche de fonctionnalités spécifiques ou à vouloir explorer différentes options dans le même domaine. En présentant ces informations, nous visons à donner à nos utilisateurs une vue complète des options disponibles dans l'espace de partage d'informations sécurisé.
Remarque: Notre conseiller juridique interne (codium-pr-agent-pro Bot) a suggéré d'ajouter cette introduction et de la clause de non-responsabilité à la fin.
| URL | Service | Description | Caractéristique distinctive |
|---|---|---|---|
| https://pwpush.com/ | Poussoir de mot de passe | Un outil qui utilise des cookies de navigateur pour vous aider à partager les mots de passe et autres informations sensibles. | Liens temporaires et auto-destructeurs pour le partage de mot de passe |
| https://scrt.link/en | Partager un secret | Un service qui vous permet de partager des informations sensibles de manière anonyme. Crucial pour les journalistes, les avocats, les politiciens, les dénonciateurs et les individus opprimés. | Partage de messages anonymes et auto-destructeurs |
| https://cryptgeon.com/ | Cryptgeon | Un service de partage de secrets et de mots de passe en toute sécurité. | Offre un générateur secret, un générateur de mots de passe et un coffre-fort secret |
| https://www.vanish.so/ | Disparaître | Un service de partage de secrets et de mots de passe en toute sécurité. | Messages d'auto-détruire avec un cryptage fort |
| https://password.link/en | Mot de passe.Link | Un service pour l'envoi et la réception solidement des informations sensibles. | Création de liens sécurisés pour le partage d'informations sensibles |
| https://sebsauvage.net/ | sebsauvage.net | Un site Web offrant diverses informations et services. | Logiciel pour récupérer les ordinateurs volés |
| https://www.sharesecret.co/ | Partage de partage | Un service pour partager en toute sécurité les mots de passe dans Slack et Email. | Partage de mot de passe sécurisé avec Slack et Intégration des e-mails |
| https://teampassword.com/ | TeamPassword | Un gestionnaire de mot de passe pour les équipes. | Gestion rapide, facile à utiliser et sécurisé par l'équipe |
| https://secretshare.io/ | Partage secrète | Un service pour partager les mots de passe en toute sécurité. | Engagement fort pour les données en transit et au repos |
| https://retriever.corgea.io/ | Retriever | Un service pour demander des secrets en toute sécurité. | Sécuriser la demande secrète et la récupération avec cryptage |
| https://winden.app/s | Se baisser | Un service de partage de secrets et de mots de passe en toute sécurité. | Transfère en toute sécurité les fichiers avec un cryptage de bout en bout |
| https://www.snote.app/ | Attaquer | Un espace de travail axé sur la confidentialité avec un cryptage de bout en bout. | Sécuriser la collaboration sur les projets, les tâches, les tâches et les fichiers partagés |
| https://www.burnafterreading.me/ | Brûler après avoir lu | Un service pour partager différents types d'informations sensibles. | Messages d'auto-diffusion avec cryptage en phrase de passe |
| https://pvtnote.com/en/ | Pvtnote | Un service pour envoyer des messages privés et auto-destructeurs. | Conception propre avec des messages autodestructions |
| https://k9crypt.xyz/ | K9crypt | Une plate-forme de messagerie sécurisée et anonyme. | Cryptage de bout en bout avec suppression de messages de 2 heures |
Résumé, récupéré et rassemblé par la commande cohere r +, formaté par Claude 3.5 Sonnet, et relexe par Github Copilot.
L'inclusion de ces services dans cette liste n'implique pas l'approbation. Les utilisateurs sont encouragés à mener leurs propres recherches et diligences raisonnables avant d'utiliser l'un des services énumérés, en particulier lors de la gestion des informations sensibles.