Mantenga contraseñas y otra información confidencial fuera de sus bandejas de entrada y registros de chat.
Nota
Saltar a las instrucciones de instalación.
Un secreto de tiempo en el tiempo es un enlace que solo se puede ver una vez. Una URL de un solo uso.
¡Pruébelo en onetimesecret.com!
Cuando envía información confidencial de personas como contraseñas y enlaces privados por correo electrónico o chat, hay copias de esa información almacenada en muchos lugares. Si usa un enlace en tiempo, la información persiste para una sola visualización, lo que significa que otra persona no puede leerlo más tarde. Esto le permite enviar información confidencial de una manera segura sabiendo que solo la ve una sola persona. Piense en ello como un mensaje autodestructivo.
Esta es la versión desarrollada y mantenida activamente con las características más recientes y actualizaciones de seguridad.
Ruby 3 sin nodo.js: V0.15.0
Ruby 2.7, 2.6 (Legado - No compatible): V0.12.1
Recomendamos encarecidamente usar el último lanzamiento con Ruby 3+ para el mejor rendimiento, seguridad y conjunto de funciones. Las versiones Legacy Ruby 2.x se proporcionan solo como referencia y deben evitarse en entornos de producción.
Hay múltiples formas de ejecutar OneTimesCret usando Docker. Elija el método que mejor se adapte a sus necesidades:
Ofrecemos imágenes preconstruidas tanto en GitHub Container Registry como en Docker Hub.
# Pull from GitHub Container Registry
docker pull ghcr.io/onetimesecret/onetimesecret:latest
# OR, pull from Docker Hub
docker pull onetimesecret/onetimesecret:latestSi prefiere construir la imagen usted mismo:
git clone https://github.com/onetimesecret/onetimesecret.git
cd onetimesecret
docker build -t onetimesecret . Para entornos que requieren soporte de arquitectura múltiple:
git clone https://github.com/onetimesecret/onetimesecret.git
cd onetimesecret
docker buildx build --platform=linux/amd64,linux/arm64 . -t onetimesecretTambién ofrecemos una versión "lite" de la imagen Docker, que está optimizada para una implementación más rápida y un uso reducido de recursos. Para usar la versión 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 .Para obtener más información sobre la imagen de Lite Docker, consulte la documentación Docker-Lite.md.
Independientemente de cómo haya obtenido o construyó la imagen, siga estos pasos para ejecutar OneTimesCret:
Comience un contenedor Redis:
docker run -p 6379:6379 -d redis:bookwormEstablecer variables de entorno esencial:
export HOST=localhost:3000
export SSL=false
export [email protected]
export REDIS_URL=redis://host.docker.internal:6379/0
export RACK_ENV=production Nota: La variable COLONEL establece el correo electrónico de la cuenta de administrador. Es una combinación lúdica de "coronel" (alguien a cargo) y "kernel" (como en Linux), que representa al administrador del sistema.
Ejecute el contenedor OneTimesCret:
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 Nota: Reemplace onetimesecret/onetimesecret:latest con el nombre de su imagen si lo construyó localmente.
OneTimesCret ahora debería estar ejecutándose y accesible en http://localhost:3000 .
¡Ah, sí, la clásica paradoja de sudo! Aquí está mi intento de manejar esto claramente:
Esta guía cubre la instalación de OneTimesCret manualmente, ya sea que esté trabajando con un entorno de desarrollo existente o que comience desde un sistema nuevo.
Componentes requeridos:
Primero, verifique si tiene las dependencias requeridas:
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+Para una nueva instalación del sistema, siga estos pasos:
Importante
Si comienza con un sistema mínimo (como un recipiente de Debian fresco), instale sudo primero:
# Only if starting as root on a minimal system
apt update && apt install -y sudoInstalar dependencias del sistema:
# 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 startNota: Si ve errores relacionados con la auditoría al instalar PNPM con sudo, esto es normal en contenedores o sistemas mínimos donde las capacidades de auditoría son limitadas.
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.yamlPuede ejecutar la aplicación de dos maneras:
Lo mejor para la producción o el desarrollo sin cambios 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 startLo mejor para el desarrollo activo de frontend con recarga en vivo:
Habilitar el modo de desarrollo en etc/config.yaml :
:development :
:enabled : trueInicie el servidor principal:
RACK_ENV=development bundle exec thin -R config.ru -p 3000 startInicie el servidor VITE DEV (en un terminal separado):
pnpm run devAl ejecutar en modo de desarrollo (opción B), la aplicación utiliza el servidor Dev de Vite para la carga de activos dinámicos y el reemplazo del módulo caliente. Así es como funciona:
En modo de desarrollo ( development.enabled: true ), la aplicación carga activos dinámicamente desde el servidor VITE DEV:
{{#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 el modo de producción ( development.enabled: false ), utiliza activos estáticos previos a la construcción:
{{^frontend_development}}
{{{vite_assets}}}
{{/frontend_development}}Esta configuración permite características como reemplazo del módulo caliente y actualizaciones instantáneas durante el desarrollo frontend, al tiempo que garantiza un rendimiento óptimo en la producción.
OneTimesCret requiere un archivo config.yaml para todas las instalaciones. Las variables de entorno se pueden usar para anular la configuración específica, pero el archivo config.yaml siempre debe estar presente.
Crea el archivo de configuración:
cp -p ./etc/config.example.yaml ./etc/config.yaml Revise y edite ./etc/config.yaml según sea necesario. Como mínimo, actualice la clave secreta y la respalde de forma segura.
El archivo ./etc/config.yaml es el método de configuración principal. Utiliza la sintaxis ERB para incorporar variables de entorno, permitiendo una configuración flexible:
---
:site :
:host : <%= ENV['HOST'] || 'localhost:7143' %>
:domains :
:enabled : <%= ENV['DOMAINS_ENABLED'] || false %>En este formato:
HOST ), se utilizará su valor. Áreas clave para configurar en config.yaml :
Para configuraciones rápidas o implementaciones de contenedores, puede usar variables de entorno para anular Configuración 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 Para varios escenarios de implementación, incluidas las configuraciones de Docker y el desarrollo local, puede usar un archivo .env para establecer variables de entorno:
Crea el archivo .env:
cp -p .env.example .env Edite el archivo .env con su configuración deseada.
El uso depende de su configuración:
Para el desarrollo local, cargue las variables antes de ejecutar la aplicación:
set -a
source .env
set +a Para las implementaciones de Docker, puede usar la opción --env-file :
docker run --env-file .env your-image-nameEn Docker-Compose, puede especificar el archivo .env en su docker-compose.yml:
services :
your-service :
env_file :
- .envEl archivo .env es versátil y puede usarse en varios escenarios de implementación, ofreciendo flexibilidad en la forma en que administra sus variables de entorno.
config.yaml , incluso cuando se usa variables de entorno..env , pero no ambos, para evitar confusiones.config.yaml , solo se utilizarán los valores literal en la configuración. Importante
Use un valor seguro para la clave SECRET como una variable de entorno o como site.secret Secret en etc/config.yaml . Una vez establecido, no cambie este valor. Cree y almacene una copia de seguridad en una ubicación segura fuera del sitio. Cambiar el secreto puede evitar el descifrado de los secretos existentes.
Para obtener una lista completa de las opciones de configuración disponibles, consulte los comentarios en el archivo config.example.yaml .
Para generar una clave secreta segura y aleatoria de 256 bits (32 bytes), puede usar el siguiente comando con OpenSSL:
openssl rand -hex 32 Si OpenSSL no está instalado, puede usar el comando dd como alojamiento:
dd if=/dev/urandom bs=32 count=1 2> /dev/null | xxd -p -c 32 Nota: Si bien el comando dd proporciona una alternativa razonable, se recomienda usar OpenSSL para fines criptográficos.
Si encuentra el error "el nombre del contenedor '/onetimesecret' ya está en uso":
# If the container already exists, you can simply start it again:
docker start onetimesecret
# OR, remove the existing container
docker rm onetimesecret Después de quitar el contenedor, puede ejecutar el comando regular docker run nuevamente.
Para la configuración de Docker Compose, consulte el repositorio de composición de Docker dedicado.
Para ejecutarse en modo de depuración:
ONETIME_DEBUG=true bundle exec thin -e dev start Al ejecutar el servidor VITE en modo de desarrollo, se volverá a cargar automáticamente cuando los archivos cambien. Asegúrese de que RACK_ENV esté configurado en development o development.enabled etc/config se establece en false .
Utilizamos el marco pre-commit para mantener la calidad del código. Para configurarlo:
Instalar precomisco:
pip install pre-commitInstale los ganchos de git:
pre-commit installEsto asegurará que los ganchos previos al comercio se ejecuten antes de cada compromiso, ayudando a mantener la calidad y consistencia del código.
Para ver las capas de una imagen y optimizar sus compilaciones, use:
docker history < image_id >Al desplegar en la producción, asegúrese de:
Ejemplo de implementación de producción:
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
onetimesecretAsegúrese de que toda la información confidencial esté correctamente asegurada y no esté expuesta en sus scripts o entorno de implementación.
Esta sección proporciona una descripción general de los servicios similares a nuestro proyecto, destacando sus características únicas y cómo se comparan. Estas alternativas pueden ser útiles para los usuarios que buscan funcionalidades específicas o desean explorar diferentes opciones en el mismo dominio. Al presentar esta información, nuestro objetivo es brindar a nuestros usuarios una vista integral de las opciones disponibles en el espacio seguro para compartir información.
Nota: Nuestro asesor legal interno (BOTUM-PR-AGENT-PRO BOT) sugirió agregar esta introducción y el descargo de responsabilidad al final.
| Url | Servicio | Descripción | Característica distintiva |
|---|---|---|---|
| https://pwpush.com/ | Presionador de contraseña | Una herramienta que utiliza cookies de navegador para ayudarlo a compartir contraseñas y otra información confidencial. | Enlaces temporales de autodestrucción para compartir contraseñas |
| https://scrt.link/en | Compartir un secreto | Un servicio que le permite compartir información confidencial de forma anónima. Crucial para periodistas, abogados, políticos, denunciantes e individuos oprimidos. | Compartir mensajes anónimos y autodestructivos |
| https://cryptgeon.com/ | Criptgeon | Un servicio para compartir secretos y contraseñas de forma segura. | Ofrece un generador secreto, generador de contraseñas y bóveda secreta |
| https://www.vanish.so/ | Desaparecer | Un servicio para compartir secretos y contraseñas de forma segura. | Mensajes autodestructores con un cifrado fuerte |
| https://password.link/en | Contraseña. Link | Un servicio para enviar y recibir información de forma segura. | Creación de enlaces seguros para compartir información confidencial |
| https://sebsauvage.net/ | SebSouvage.net | Un sitio web que ofrece diversas información y servicios. | Software para recuperar computadoras robadas |
| https://www.sharesecret.co/ | ShareseCret | Un servicio para compartir de forma segura contraseñas en holgura y correo electrónico. | Compartir contraseñas seguras con holgura e integración de correo electrónico |
| https://teampassword.com/ | Pasada de equipo | Un administrador de contraseñas para equipos. | Gestión de contraseña de equipo rápida, fácil de usar y segura |
| https://secretshare.io/ | Participación secreta | Un servicio para compartir contraseñas de forma segura. | Cifrado fuerte para datos en tránsito y en reposo |
| https://retriever.corgea.io/ | Perdiguero | Un servicio para solicitar secretos de forma segura. | Secrita solicitud y recuperación secreta con cifrado |
| https://winden.app/s | Enlazarse | Un servicio para compartir secretos y contraseñas de forma segura. | Transfiere de forma segura archivos con cifrado de extremo a extremo |
| https://www.snote.app/ | Escabullido | Un espacio de trabajo centrado en la privacidad con cifrado de extremo a extremo. | Seguro colaboración en proyectos, tareas, tareas y archivos compartidos |
| https://www.burnafterreading.me/ | Quemar después de leer | Un servicio para compartir varios tipos de información confidencial. | Mensajes autodestructores con cifrado de frase de pases de Diceware |
| https://pvtnote.com/en/ | Pvtnote | Un servicio para enviar mensajes privados y autodestructores. | Diseño limpio con mensajes autodestructores |
| https://k9crypt.xyz/ | K9Crypt | Una plataforma de mensajería segura y anónima. | Cifrado de extremo a extremo con eliminación de mensajes de 2 horas |
Resumido, obtenido y recopilado por el comando cohere R+, formateado por el soneto Claude 3.5, y revisado por GitHub Copilot.
La inclusión de estos servicios en esta lista no implica el respaldo. Se alienta a los usuarios a realizar su propia investigación y diligencia debida antes de usar cualquiera de los servicios enumerados, especialmente al manejar información confidencial.