Repolode
shingrus

shingrus/1time.io

Self-hosted, zero-knowledge sharing of one-time passwords, API keys, text and encrypted files via self-destructing links.

Open-source alternative to:OneTimeSecretPassword Pusher

Stars
88
Forks
18
Open issues
2
Last commit
2 days ago

What is it?

1time is a secret-sharing service that lets you send passwords, API keys, sensitive text, and encrypted files through links that are deleted after they are read. Secrets are encrypted in the browser with AES-256-GCM before upload, and the encryption key lives in the URL fragment, which is never sent to the server, so the operator cannot read stored data.

The project includes a Go backend with Redis storage, an Astro static frontend, and a Node.js CLI published as @1time/cli for piping secrets from a terminal. It also ships a Chrome extension that shares selected text, and built-in generators for passwords, passphrases, API keys and WiFi passwords. Files are stored as encrypted blobs on disk.

Self-hosting uses Docker Compose with multi-arch images for amd64 and arm64, and a systemd-based deployment script is included for Ubuntu and Debian VMs. Links can be set to allow one view by default, with a small fixed limit available for text and files.

Key features

  • 01Browser-side AES-256-GCM encryption with the key kept in the URL fragment
  • 02Encrypted file sharing with one-time download links
  • 03Command-line tool for sending and reading secrets from pipes and terminals
  • 04Built-in password, passphrase, API key and WiFi password generators
  • 05Docker Compose self-hosting with Redis persistence and nginx frontend

Use cases

  • Sending database credentials or API keys to a teammate without leaving them in chat history
  • Scripting secret handoff in DevOps pipelines via the CLI
  • Hosting a private one-time secret service for an internal team
  • Sharing an encrypted file that should be downloaded only once

Quick start

  1. 1

    Install the CLI from npm

    npm install -g @1time/cli
  2. 2

    Send a secret from the terminal

    printf 'postgres://user:pass@host/db' | 1time send
  3. 3

    Read a secret using its link

    1time read 'https://1time.io/v/#...'

Things to know

  • The Docker Compose self-host option requires you to set up your own HTTPS reverse proxy and configure APP_HOSTNAME.

In collections

Topics

FAQ

What is 1time.io?
Self-hosted, zero-knowledge sharing of one-time passwords, API keys, text and encrypted files via self-destructing links. 1time is a secret-sharing service that lets you send passwords, API keys, sensitive text, and encrypted files through links that are deleted after they are read. Secrets are encrypted in the browser with AES-256-GCM before upload, and the encryption key lives in the URL fragment, which is never sent to the server, so the operator cannot read stored data.
Is 1time.io free to use? What license does it have?
1time.io is open source under the MIT license. Check the license terms before using it in commercial products.
Is 1time.io still maintained?
Actively maintained. The last commit to 1time.io was on Nov 5, 2026.
What can I use 1time.io for?
Sending database credentials or API keys to a teammate without leaving them in chat history Scripting secret handoff in DevOps pipelines via the CLI Hosting a private one-time secret service for an internal team Sharing an encrypted file that should be downloaded only once
How do I install 1time.io?
Install the CLI from npm: npm install -g @1time/cli Send a secret from the terminal: printf 'postgres://user:pass@host/db' | 1time send Read a secret using its link: 1time read 'https://1time.io/v/#...'
Where can I get 1time.io?
The source code and installation instructions are on GitHub: https://github.com/shingrus/1time.io

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects