{"id":13659269,"url":"https://github.com/onetimesecret/onetimesecret","last_synced_at":"2026-05-19T01:06:39.527Z","repository":{"id":6668431,"uuid":"7913195","full_name":"onetimesecret/onetimesecret","owner":"onetimesecret","description":"Keep passwords and other sensitive information out of your inboxes and chat logs.","archived":false,"fork":false,"pushed_at":"2025-05-06T18:38:57.000Z","size":22528,"stargazers_count":2345,"open_issues_count":91,"forks_count":400,"subscribers_count":46,"default_branch":"develop","last_synced_at":"2025-05-06T18:41:52.995Z","etag":null,"topics":["chat","email","messaging","onetime","onetimesecret","privacy","secrets"],"latest_commit_sha":null,"homepage":"https://onetimesecret.com/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/onetimesecret.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"support/delete_old_secrets","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["onetimesecret","delano"]}},"created_at":"2013-01-30T11:21:31.000Z","updated_at":"2025-05-06T18:37:18.000Z","dependencies_parsed_at":"2024-03-14T18:52:03.946Z","dependency_job_id":"bcf1ba02-f73d-4918-834d-60ea599fc4f4","html_url":"https://github.com/onetimesecret/onetimesecret","commit_stats":{"total_commits":2031,"total_committers":6,"mean_commits":338.5,"dds":0.03200393894633191,"last_synced_commit":"45c60cd62378677459a02c78a22e5f386fad57dd"},"previous_names":[],"tags_count":117,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onetimesecret%2Fonetimesecret","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onetimesecret%2Fonetimesecret/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onetimesecret%2Fonetimesecret/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onetimesecret%2Fonetimesecret/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onetimesecret","download_url":"https://codeload.github.com/onetimesecret/onetimesecret/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254069048,"owners_count":22009476,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","email","messaging","onetime","onetimesecret","privacy","secrets"],"created_at":"2024-08-02T05:01:06.926Z","updated_at":"2025-11-28T15:05:03.682Z","avatar_url":"https://github.com/onetimesecret.png","language":"Ruby","funding_links":["https://github.com/sponsors/onetimesecret","https://github.com/sponsors/delano"],"categories":["Ruby","Ruby (8)","privacy"],"sub_categories":[],"readme":"# Onetime Secret - Secure One-Time Message Sharing\n\n*Keep passwords and other sensitive information out of your inboxes and chat logs.*\n\n\u003e [!WARNING]\n\u003e **Development Branch**: You're viewing the `develop` branch with active development and unreleased features. This branch may be unstable or contain work-in-progress code. For stable releases and production use, check out the [`main` branch](https://github.com/onetimesecret/onetimesecret/tree/main).\n\n\n## What is a One-Time Secret?\n\nA onetime secret is a link that can be viewed only once. A single-use URL.\n\nTry it out on [OnetimeSecret.com](https://onetimesecret.com/)\n\nWhen you send sensitive info like passwords via email or chat, copies persist in many places. Onetime links self-destruct after viewing, ensuring only the intended recipient sees the information.\n\n## Quick Start with Docker\n\n\u003e [!IMPORTANT]\n\u003e **Upgrading from v0.22.x?** See [Redis Migration Guide](./docs/redis-migration.md) for database consolidation options (optional until v1.0).\n\n**1. Start Redis:**\n```bash\ndocker run -p 6379:6379 -d redis:bookworm\n```\n\n**2. Generate and store a persistent secret key:**\n```bash\n# First, generate a persistent secret key and store it\nopenssl rand -hex 32 \u003e .ots_secret\nchmod 600 .ots_secret\necho \"Secret key saved to .ots_secret (keep this file secure!)\"\n\n# Now run the container using the key\ndocker run -p 3000:3000 -d \\\n  -e REDIS_URL=redis://host.docker.internal:6379/0 \\\n  -e SECRET=\"$(cat .ots_secret)\" \\\n  -e HOST=localhost:3000 \\\n  -e AUTH_REQUIRED=false \\\n  -e SSL=false \\ # ⚠️ WARNING: Set SSL=true for production deployments\n  onetimesecret/onetimesecret:v0.23.0\n```\n\n**3. Access:** http://localhost:3000\n\n### Upgrading to v0.23+\n\n\u003e **For existing installations**: Your current setup will continue working without changes. Redis data migration is optional until v1.0.\n\nStarting with v0.23, OneTime Secret uses Redis database 0 for all models by default (previously distributed across multiple databases). This improves compatibility with Redis-as-a-Service providers and support for connection pooling.\n\n**New installations**: No action needed - automatically uses the optimized setup.\n\n**Existing installations**: See the [Redis Data Migration Guide](./docs/redis-migration.md) for migration options and timeline.\n\n\n## Configuration\n\n### UI Controls\n\n**Disable Web Interface** (`UI_ENABLED=false`):\n- Shows minimal explanation page instead of full interface\n- Useful for maintenance or API-only deployments\n\n**Require Authentication** (`AUTH_REQUIRED=true`):\n- Homepage secret creation requires login\n- Maintains site navigation while restricting access\n\n\n### Essential Settings\n\nCreate `./etc/config.yaml` from the example:\n```bash\ncp -p ./etc/defaults/config.defaults.yaml ./etc/config.yaml\n```\n\nKey configuration areas:\n- **Authentication**: Enable/disable login requirements\n- **Email**: SMTP or SendGrid setup\n- **UI settings**: Customize user experience\n- **Billing** (optional): Stripe integration for paid plans — see [docs/billing/stripe-configuration.md](./docs/billing/stripe-configuration.md)\n\n### Environment Variables\n\nCommon overrides:\n```bash\nHOST=your-domain.com\nSSL=true\nSECRET=your-secure-random-key\nREDIS_URL=redis://host:6379/0\nAUTH_REQUIRED=true\nPASSPHRASE_REQUIRED=true\nPASSWORD_GEN_LENGTH=8\nTTL_OPTIONS='1800 43200 86400 259200'  # 30m, 12h, 24h, 3d\n```\n\n\u003e **Important**: Generate a secure SECRET key and back it up safely:\n\u003e ```bash\n\u003e openssl rand -hex 32\n\u003e ```\n\n## Installation Options\n\n### Docker Images\n\n**Pre-built images:**\n```bash\n# GitHub Container Registry\ndocker pull ghcr.io/onetimesecret/onetimesecret:latest\n\n# Docker Hub\ndocker pull onetimesecret/onetimesecret:latest\n\n# Lite version (smaller, optimized)\ndocker pull ghcr.io/onetimesecret/onetimesecret-lite:latest\n```\n\n**Build locally:**\n```bash\ngit clone https://github.com/onetimesecret/onetimesecret.git\ncd onetimesecret\ndocker build -t onetimesecret .\n```\n\n### Manual Installation\n\n**System Requirements:**\n- Ruby 3.4+\n- Redis 5+\n- Node.js 22+ (for development)\n- 1GB RAM, 2 CPU cores minimum\n\n**Quick setup:**\n```bash\ngit clone https://github.com/onetimesecret/onetimesecret.git\ncd onetimesecret\nbundle install\ncp ./etc/config.example.yaml ./etc/config.yaml\n# Edit config.yaml as needed\nRACK_ENV=production bundle exec thin -R config.ru -p 3000 start\n```\n\n\u003e **For detailed installation instructions**, including system setup, troubleshooting, and advanced configuration, see [INSTALL.md](./INSTALL.md).\n\n## Development\n\n### Frontend Development Mode\n\nFor active development with live reloading:\n\n1. Enable development mode in `etc/config.yaml`:\n```yaml\n:development:\n  :enabled: true\n  :frontend_host: 'http://localhost:5173'\n```\n\n2. Start servers:\n```bash\n# Terminal 1: Main server\nRACK_ENV=development bundle exec thin -R config.ru -p 3000 start\n\n# Terminal 2: Vite dev server\npnpm run dev\n```\n\n### Docker Compose\n\nFor complete setup with dependencies:\n[Docker Compose repo](https://github.com/onetimesecret/docker-compose/)\n\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/onetimesecret/onetimesecret/issues)\n- **Documentation**: Check `docs/` directory for detailed guides\n- **Security**: Review `SECURITY.md` for security considerations\n\n### Production Deployments\n\nSee [Dockerfile](./Dockerfile)\n\n## AI Development Assistance\n\nThis version of Familia was developed with assistance from AI tools. The following tools provided significant help with architecture design, code generation, and documentation:\n\n- **Claude (Desktop, Code Max plan, Sonnet 4, Opus 4.1)** - Interactive development sessions, debugging, architecture design, code generation, and documentation\n- **Google Gemini** - Refactoring suggestions, code generation, and documentation.\n- **GitHub Copilot** - Code completion and refactoring assistance\n- **Qodo Merge Pro** - Code review and QA improvements\n\nI remain responsible for all design decisions and the final code. I believe in being transparent about development tools, especially as AI becomes more integrated into our workflows as developers.\n\n\n## Similar Services\n\nThis section provides an overview of services similar to our project, highlighting their unique features and how they compare. These alternatives may be useful for users looking for specific functionalities or wanting to explore different options in the same domain. By presenting this information, we aim to give our users a comprehensive view of the available options in the secure information sharing space.\n\n**Note:** Our in-house legal counsel ([codium-pr-agent-pro bot](https://github.com/onetimesecret/onetimesecret/pull/610#issuecomment-2333317937)) suggested adding this introduction and the disclaimer at the end.\n\n| URL                                | Service            | Description                                                                                                                                                     | Distinctive Feature                                               |\n| ---------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |\n| \u003chttps://protonurl.ch/\u003e            | protonURL          | A simple and secure tool to share secret, confidential, or non-confidential content via a self-destructing link.                                                | Temporary, self-destructing links for sensitive content with strong encryption and available in 15 languages |\n| \u003chttps://pwpush.com/\u003e              | Password Pusher    | A tool that uses browser cookies to help you share passwords and other sensitive information.                                                                   | Temporary, self-destructing links for password sharing            |\n| \u003chttps://scrt.link/en\u003e             | Share a Secret     | A service that allows you to share sensitive information anonymously. Crucial for journalists, lawyers, politicians, whistleblowers, and oppressed individuals. | Anonymous, self-destructing message sharing                       |\n| \u003chttps://cryptgeon.com/\u003e           | Cryptgeon          | A service for sharing secrets and passwords securely.                                                                                                           | Offers a secret generator, password generator, and secret vault   |\n| \u003chttps://www.vanish.so/\u003e           | Vanish             | A service for sharing secrets and passwords securely.                                                                                                           | Self-destructing messages with strong encryption                  |\n| \u003chttps://password.link/en\u003e         | Password.link      | A service for securely sending and receiving sensitive information.                                                                                             | Secure link creation for sensitive information sharing            |\n| \u003chttps://www.sharesecret.co/\u003e      | ShareSecret        | A service for securely sharing passwords in Slack and email.                                                                                                    | Secure password sharing with Slack and email integration          |\n| \u003chttps://teampassword.com/\u003e        | TeamPassword       | A password manager for teams.                                                                                                                                   | Fast, easy-to-use, and secure team password management            |\n| \u003chttps://secretshare.io/\u003e          | Secret Share       | A service for sharing passwords securely.                                                                                                                       | Strong encryption for data in transit and at rest                 |\n| \u003chttps://retriever.corgea.io/\u003e     | Retriever          | A service for requesting secrets securely.                                                                                                                      | Secure secret request and retrieval with encryption               |\n| \u003chttps://winden.app/s\u003e             | Winden             | A service for sharing secrets and passwords securely.                                                                                                           | Securely transfers files with end-to-end encryption               |\n| \u003chttps://www.snote.app/\u003e           | SNote              | A privacy-focused workspace with end-to-end encryption.                                                                                                         | Secure collaboration on projects, to-dos, tasks, and shared files |\n| \u003chttps://www.burnafterreading.me/\u003e | Burn After Reading | A service for sharing various types of sensitive information.                                                                                                   | Self-destructing messages with diceware passphrase encryption     |\n| \u003chttps://pvtnote.com/en/\u003e          | PvtNote            | A service for sending private, self-destructing messages.                                                                                                       | Clean design with self-destructing messages                       |\n| \u003chttps://k9crypt.xyz/\u003e             | K9Crypt            | A secure and anonymous messaging platform.                                                                                                                      | End-to-end encryption with 2-hour message deletion                |\n\n*Summarized, fetched, and collated by [Cohere Command R+](https://cohere.com/blog/command-r-plus-microsoft-azure), formatted by [Claude 3.5 Sonnet](https://www.anthropic.com/news/claude-3-5-sonnet), and proofread by [GitHub Copilot](https://github.com/features/copilot).*\n\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE.txt) file for details.\n\n## Community \u0026 Support\n\n[![Latest Release](https://img.shields.io/github/v/release/onetimesecret/onetimesecret)](https://github.com/onetimesecret/onetimesecret/releases/latest)\n[![Docker Pulls](https://img.shields.io/docker/pulls/onetimesecret/onetimesecret)](https://hub.docker.com/r/onetimesecret/onetimesecret)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/onetimesecret/onetimesecret/ci.yml)](https://github.com/onetimesecret/onetimesecret/actions)\n[![License](https://img.shields.io/github/license/onetimesecret/onetimesecret)](LICENSE)\n\n\n- [Report Issues](https://github.com/onetimesecret/onetimesecret/issues)\n- [Security Issues](mailto:security@onetimesecret.com) (email)\n- [Try it Live](https://ca.onetimesecret.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonetimesecret%2Fonetimesecret","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonetimesecret%2Fonetimesecret","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonetimesecret%2Fonetimesecret/lists"}